Efficient XML Interchange (EXI) Format WD Released
July 18, 2007
Elliotte Rusty Harold on EXI, the Efficient XML Interchange (EXI) Format:
Whatever the EXI format is, it’s not XML and using the name “XML” to describe it an attempt by people who want something very different from XML to trade on XML’s good name. If EXI were really a good idea, it could succeed on its own merits without pretending to be something it’s not. I guess the working group members don’t really believe in it though.
About
This page contains a single entry from Stefan Tilkov's Random Stuff posted on July 18, 2007 3:26 PM. The previous post in this blog was JSON Schema Definition Languages. The next post in this blog is Bridging the gap between BI & SOA. Many more can be found on the main index page or by looking through the archives.
Comments
I agree that it’s not XML, but it’s interesting to me. EXI is for streaming Infosets — the data model XML is a representation of — with (hopefully) much less parsing overhead. I haven’t looked at EXI until now, but I wouldn’t write it off too quickly. One thing I did notice was the 2 different grammar systems. One is just XML-based and it “evolves” as namespaces and prefixes occur. The other is “schema-informed”, which means the stream has some schema information (XSD, RELAX, etc.) encoded and the grammar stays static. Could be nice.
Posted by: Erik Johnson at July 19, 2007 1:00 AM | link
The argument against binary XML has long been that it’s easy to create a better “serialization” than text for XML for any particular purpose - but not for the general case. I admit to not having looked at EXI in detail, but it still seems hard to be to imagine how, for example, a general mechanism can meet different optimization goals, such as bandwidth vs. processing time.
Posted by: Stefan Tilkov at July 19, 2007 1:20 AM | link
XML is not a representation of any data model, infoset included. That’s a strength and one that EXI is trying to do away with. It’s a big reason EXI is not merely an alternate encoding of XML.
XML is a syntax without a data model. That’s not an accident. It’s deliberate. The Infoset is only one possible data model for XML, and one that is actually not isomorphic to XML syntax. That is, there are well-formed and valid XML documents that do not have infoset representations, and infosets that do not have XML representations.
There are other data models besides the infoset. For example, XPath 1.0 defines a data model that is different from the Infoset. This is also what XSLT 1.0 uses.
Individual applications are free to define their own data model that meets their needs, and there is no rule that two processes reading the same document must use the same data model.
Posted by: Elliotte Rusty Harold at July 31, 2007 2:41 PM | link
