
This thesis explores the possibilities of utilizing RELAX NG schemata in the process of editing XML documents. The ultimate goal of this thesis is to prototype a system supporting user while editing XML document with bound RELAX NG schema inside the Eclipse IDE. Such a system comprises two major components -- an integration of RELAX NG validator and an autocompletion engine. Design of the autocompletion engine represents the main contribution of this thesis, because similar systems are almost exclusively implemented in closed-source commercial editors as of 2009. The first chapter is a brief introduction into XML while emphasizing XML schema languages. A comparison is of three major schema languages -- DTD, W3C XML Schema and RELAX NG. Furthermore, options of exploiting information from schema by the XML editor are discussed. In the end of the chapter an overview of basic RELAX NG patterns used throughout this thesis is given. The second chapter describes implementation of the autocompletion engine. It reasons about appropriate in-memory representation of the XML documents and RELAX NG schemas and presents basic principles of pattern-inference for individual elements. The main output of the chapter is an algorithm proposal for generating possible completions based on given XML document nodes and RELAX NG schema of the document. The goal of the final third chapter is integrating RELAX NG validator and the autocompletion engine inside the Eclipse IDE. It starts by describing two basic aspects of Eclipse Platform -- the OSGi Service Platform dynamic module system and the extension point mechanism. Then the implementation of individual plug-ins and their integration with existing XML editing infrastructure is described.
XML; RELAX NG; Eclipse
XML; RELAX NG; Eclipse
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
