The Browser War continued (2/6) - exploring XML
The Browser War continued: XML support in IE and Mozilla
Mozilla 5 alpha The mozilla group has recently released the Milestone 12 version of their browser. This browser uses XML internally as well as for Web documents.
Mozilla uses the expat XML Parser, written in C by James Clark. Expat is the foundation for everything XML-related in mozilla, for both inner workings and XML document support.
XML for browser-internal dataConfiguration data such as user preferences and bookmarks are stored in RDF (Resource Description Framework), an XML standard for expressing semantic networks. XML is also used for data exchange with a server for SmartBrowsing services. The user interface is expressed in XUL (XML-based User Interface Language) and then displayed by the rendering engine, similar to HTML for the documents.
AuroraAurora is the codename for the browser's internal datastore, which uses XML in the form of RDF, the Resource Description Framework. The browser needs to store quite a bite of local and user information, both persistent and transient, in the form of
- history of visited Web pages
- search results
- information on file systems
- FTP locations
- Web site maps
SmartBrowsingNetscape and Alexa have pioneered the concept of smart browsing, where the user types keywords instead of cryptic URLs into the location bar, and receives additonal information on Web pages such as a list of related sites. The communications between client and server is also encoded in XML, making a good example of XML as a communications protocol format sent over standard HTTP, bypassing Internet-unfriendly protocols such as COM, CORBA or Java RMI.
XULXUL stands for "XML-based user interface language." It is an XML-based language for describing the contents of windows and dialogs. XUL has language constructs for all of the typical dialog controls, as well as for widgets like toolbars, trees, progress bars, and menus. Where HTML describes the contents of a single document, XUL describes the contents of an entire window (which could itself contain multiple HTML documents). This mechanism is a very helpful tool for cross-platform support because it allows one user interface described in XUL to be rendered by platform-specific implementations of the XUL engine, on different platforms.
XML document supportMozilla also supports the use of XML as a document format, albeit in a different way than Internet Explorer. Both browsers support XML formatted with CSS, but while IE supports XSL Mozilla evolves into the direction of CSS2. Mozilla M12 supports:
- XML with links to external CSS stylesheets
- Advanced CSS2 features - tables, positioning, visual effects
- XML Namespaces
- HTML elements included using the HTML namespace
- Simple XML links
- DOM Level 1 access
XSLT in MozillaMozilla M12 doesn't offer out-of-the-box XSLT support. The group added hooks to enable you to call an external XSLT engine, and Eric Krock from Netscape informed me that an external developer is developing just such an engine on an open source basis. So the ability exists to plug in an XSLT engine to Mozilla if you wish. They will evaluate "officially" adding XSLT support in the future.
Eric invites you to join the development: "Keep in mind that since Mozilla is completely free and open source, anyone who wants to make this happen sooner is welcome to get involved and contribute the necessary source. An XSLT newsgroup has just been started on mozilla.org, and we'll be happy to provide everything necessary for anyone who wishes to set up their own project (project area, Bugzilla components, etc.). Look at the excellent work Roger Sidje & co. have done on MathML to see how quickly this approach can produce results. Please convey to your readers my formal invitation to start an XSLT project on mozilla.org."
If you, like me, want to use that stuff rather than implement it, we can only hope that somebody will pick this up soon.
SoapboxNetscape and mozilla.org claim full standards support for HTML 4.0, CSS1, DOM1, and XML. I am sure a detailed examination of this will show up in the HTML and DHTML sections at WebReference real soon now. Curently XSL is out of scope for Mozilla version 5. Even if you feel like fiddling with the code base to plug in XSLT support, you end up with your personal version of the browser, increasing the number of variations out there with different features, and different bugs. Proliferation continues....
Created: Jan. 17, 2000
Revised: Jan. 17, 2000