XML In Mozilla
Guha
This document provides an overview of the plans for XML in Mozilla.
Background
There are two broad categories of use for XML.
- Documents.
- Data. For data, RDF build on top of XML makes most sense.
Tim BL has a really good
document on this.
Look here for more information on this distinction.
For more on RDF in Mozilla look here.
This figure shows the (planned) architecture for XML in Mozilla.
The arrows represent C/Java/Javascript APIs.
Whats Happening with XML in Mozilla
Process
There is a "steering group" that is going to provide guidance
on what to do and how to proceed with XML in Mozilla. This
group includes Tim Bray, Jon Bosak, James Clark, Dan Connolly, Nisheeth Ranjan,
Greg Kostello, Rick Gessner and Guha. Send email to Guha (guha@netscape.com).
XML Parser
Mozilla uses James Clark's expat parser (the same parser that is
used in pearl). You will find it in ns/modules/xml/expat.
Any module within Mozilla can use the parser. The APIs for the
parser can be found at expat/xmlparse/xmlparse.h.
ns/modules/xml/glue/ is the glue code that gets used in
invoking the parser.
DOM Structure
ns/modules/xml/xmldom/ builds a persistent tree structure (the
DOM structure) on top of this.
There is work going on to expose the APIs to the parser and to the DOM
- via javascript
- to any plugin
StyleSheets
The Mozilla source out there can currently
display XML pages using CSS, XML-Link and elements from
the html namespace. Jon Bosak, Bill Smith, Joe Alfonso and Jeff Suttor
have helped set up some nice examples :
- TocView.xml
- disability.xml
There is a huge repository of xml documents at docs.sun.com. The goal
is to make all of these nicely browsable using existing standards.
Laurent Therond
is working on this.
Coming soon : documentation on doing XML with CSS in Mozilla.
We (some of the culprits named above) are working on an "Style Sheet
Plugin" API. Depending on the type of style sheet being
used (e.g., CSS, XSL, DSL...) different pieces of code get invoked.
Other
We are working on separating out the XML parser, Netlib, glue code
and RDF module from the rest of Mozilla so that it can be used
anywhere (e.g., in a server).
Some folks (Chris Hamlin, et. al.) are looking at doing MathML.
Some folks are organizing
to do XML based vector graphics in Mozilla.
Standards
The Mozilla browser is not a shipping product. Some of the technologies
we are using (such as XML Link and RDF) are still going through
the standards process. We will track the standard (i.e., the implementation
will change as the standard changes).