W3's EXI (efficient XML interchange) is going to be standardized. It claims to be "the last binary standard".
It is a standard to store XML data optimized for processing and storage, is bundled with XML schema (making the data strongly typed and strongly structured). Well, there are a lot of claimed advantages. I was impressed most by the processing and memory-efficiency measurements.
I am asking myself, what is going to happen to all the established XML APIs?
There is this paragraph related to my question:
4.2 Existing XML Processing APIs
As EXI is an encoding of the XML Infoset, an EXI implementation can support any of the commonly-used XML APIs for XML processing, so EXI has no immediate impact on existing XML APIs. However, using an existing XML API also requires that all names and text appearing in the EXI document be converted into strings. In the future, more efficiency might be achievable if the higher layers could directly use these data as typed values appearing in the EXI document. For instance, if a higher layer needs typed data, going through its string form can produce a performance penalty, so an extended API that supports typed data directly could improve performance when used with EXI.
I understand it as following: "Using EXI with existing APIs? No performance gain! (Unless you rewrite them all)"
Let's take the Java ecosystem as an example:
We have plenty of XML APIs in latest JDK 6 (With each major JDK release, more and more of them were added.) As far as I can judge, most (if not all) of them are using either in-memory DOM trees, or serialized ("textual") representation to transform/process/validate/... XML data.
What do you guys think, what is going to happen to these APIs with introduction of EXI?
Thank you all for your opinions.
For those who don't know EXI: http://www.w3.org/XML/EXI/