Now that the first working draft of EXI [1] has been released, I was wondering how people (especially Daniel) feel about adding it to libxml. Read the primer for a quick overview of EXI.
By and large I think that EXI is a good format, where they have managed to address many different concerns with a simple design. The major issues that I came across are: First, the EXI implementation should be an independent parser (and generator) front-end. It should emmanate SAX events, so that we can seamlessly use SAX, DOM, and xmlReader for EXI documents. Hopefully this will also allow us to use all the other XML technologies (XPath, XML Schema, XSLT, etc.) that libxml supports. I do not know the details of libxml well enough to evaluate if this is indeed the case. Second, EXI has some built-in datatypes that are like the XML Schema datatypes. Obviously, some code should be reused here. Third, EXI supports a schema-informed grammar, which means that it can use information found in XML Schemas, RELAX NG schemas, or DTDs to create a more compact EXI document. Although the schema-informed grammar is independent on the various schemas (XML Schema, RELAX NG, DTD), it eventually has to be populated by those schemas, so it will create some kind of dependency to these parts of libxml. Fourth, EXI allows (but does not mandate) the support of user-defined CODECS for encoding and decoding contents. As this is optional, I have not looked further into that, but obviously it should be considered if and how this should be supported by libxml. [1] http://www.w3.org/XML/EXI/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
