Goal
The xsbrowser wants to communicate the meaning of XML documents.
Function
The xsbrowser (XML Schema browser) is able to document or instantiate a given DTD (REC-xml-19980210) or XML schema (REC-xmlschema-1-20010502). The xsbrowser aims at creating a human readable document model from a given DTD or XML schema. The user needn't understand the DTD / XML Schema syntax. As a main feature, the xsbrowser exploits human readable material contained in DTD comments and XML Schema documentation and presents it to the user who is interested in the meaning of XML documents. Only human readable material converts syntactical markup into meaningful (semantic) markup. The xsbrowser allows navigating an XML document model and creating valid XML instance documents using an HTML browser. Enumerated values are listed in a select box, i.e. completely structured and coded XML documents can be created by pure means of a computer mouse!
Requirements
A Web browser that supports Javascript and Java applets. The Web browser needn't support XML!
Contact
Ralf Schweiger, Simon Hoelzer, Joerg Rieger, Dirk Rudolf
Icons
URI | Uniform Resource Identifier of the DTD or XML schema. A future version of the xsbrowser will allow to load an XML document. The URI must be relative to the xsbrowser.
| Navigate the de-referenced XML document structure represented by the DTD or XML schema. Presents human readable material (DTD comments, XS documentation) to the user.
| Create a valid XML instance document by navigating the XML node tree and entering text into leaf nodes. Presents already entered instances to the user (instance management).
| Blind out optional parts of the XML document indicated by the icon's transparent node. The result is an irreducible document structure.
| XML source (text and markup) of the created XML document. Might be used for copy and paste.
| List of test resources. Try it! You can change the file example.html in order to create your own list of XML resources (DTDs / XML schemas).
| xsbrowser documentation.
Documentation
A main feature of the xsbrowser is that it exploits human readable material contained in DTD comments and XML Schema documentation. XML Schema documentation is unambigiously related to specific tags, attributes, values and other model concepts. This is not true for DTD comments. The model concepts described in a DTD comment consequently need to be highlighted by quotes or parentheses. See example/wahl.dtd. Documentation might contain any text, even HTML or XML. The xsbrowser creates links to external documentation: <documentation source="URI"/>. See example/xcpg.xsd.
Navigation
The user can navigate the XML node tree. The XPath expression in the middle frame identifies the selected XML node. Anonymous repeating groups (repeating choice, repeating sequence) are represented by the location steps _choice and _sequence. The user can navigate up to any ancestor of the selected node by clicking onto the corresponding XPath location step. The lower left frame links to the child nodes of the selected XML node (down navigation). If the down navigation is unambigious the xsbrowser automatically navigates down until it needs a user decision (choice, selection of an instance).
Editing
If the user navigates down to a leaf node of the XML node tree (attribute, text node) the xsbrowser offers HTML forms for data entry. Empty nodes are automatically removed (implicit deletion function).
Architecture
Limitations
The xsbrowser supports all basic XML Schema concepts. Some advanced XML Schema concepts (REC-xmlschema-0-20010502) are not yet implemented. Other limitations derive from the fact that Java applets (see architecture) have only limited access to Internet resources (applet security). It is possible to overcome these limitations with a Web server and an applet-servlet-communication. A future version of the xsbrowser will address these limitations.
Future developments
Improvement of navigation (navigation to descendants and between siblings, history etc). Improvement of user guidance (mark nodes that are completely entered etc). Additional editing functions (deletion of nodes etc). Complete XML Schema support (links to external parts etc). Improvement of documentation (avoid duplicates, language support etc). Improvement of error management (validation of user input etc). Addition of a flexible and distributed back end system (search etc). Load engine for XML documents with or without a link to a DTD / XML schema (xml2xs schematizer etc).