by Fabio Vitali
XMLC is a modular browser for XML documents. It is the result of a project born initially to display generic extensions of HTML on Web browsers, and later became a browser for arbitrary XML documents. This activity, which began as a simple student project at the New Jersey Institute of Technology (USA) in 1996, has now become an important enterprise, involving faculty and graduate students of the University of Bologna with additional support from the DaimlerChrysler research centre in Berlin.
The World Wide Web has developed in an idiosyncratic, difficult-to-predict fashion. For instance, the Web community has valued the development of standards and protocols over that of functionalities. This has lead to the creation of some dozens of different languages and protocols that are necessary to master the task of creating satisfactory websites.
In our opinion this richness of languages is clear evidence that while, on the one hand, there exists the possibility of implementing a large number of interesting functionalities, on the other hand, unfortunately the Web does not enforce or even encourage their use. This is left up to the willingness and awareness of individual authors of Web pages and sites.
The XML family represents a considerable advancement over previous languages and standards. The possibility given by XML to define a syntax (ie, a Document Type Definition, or DTD) tailored for ones own document classes, and to use standard XML tools to create, verify and exchange data is a real bonus. Additionally, XSL adds much to XML in terms of reach and flexibility, including a mapping language that can be used to transform one XML document into another.
Our long-term aim is to create an environment that, while relying on several existing Web languages and protocols, can provide fundamental and substantial hypertext functionalities in a streamlined and easy way. Currently we are concentrating on browsing and displaying hypertext data.
In order to provide flexible support for the special rendering needs that authors often have, we propose the use of displets. Displets are software modules (currently Java classes) that are associated with each element of an XML document and provide the rendering behaviour for that element. Support for the most common element types is provided (for instance, text elements and paragraphs) but, at any time, it is possible to add new modules enabling specialised rendering semantics for specific needs.
Our implementation of displets is based on the XMLC prototype. XMLC can be considered as a very general architecture to provide very sophisticated functionalities to documents created in the XML format. However, the architecture of XMLC can be fruitfully used for more than visualisation, as it provides an extremely general way to associate behaviours with XML elements, and thus to produce active documents that perform computations, enact goals, produce results. In fact, the XMLC prototype uses XSL styles to associate XML elements of the source document with Java classes that can be displayed within a generic applet, the XML Manager. Furthermore, these classes can be made to respond to events, and to be activated in any manner decided by their implementers.
We have applied the displet approach to hypertext functionalities, implementing full support for XPath, XPointer and XLink, the tripartite hypertextual architecture of XML, and also in software engineering applications, providing displets for Z specifications, UML schema, finite state machines in the StateMate form, and Petri nets.
In our opinion, XMLC is the most customizable and expandable architecture for displaying XML documents. Full information on the XMLC browser and references to additional literature can be found on our website.
XMLC website: http://www.cs.unibo.it/projects/displets/
Fabio Vitali University of Bologna
Tel: +39 051 2094 872