XML brings to mind such words as: ubiquitous, extensible, unwieldy, perhaps even useful. However, efficient is a word rarely used to describe the Extensible Markup Language.
The World Wide Web Consortium is looking to change that attitude with the recent release of a working draft for what they are calling Efficient XML Interchange (EXI).There is no denying the impact that the introduction of XML has had on enterprise software development. And yet, the text-based nature of the format has caused the greatest outcry. Developers love the flexibility that XML provides when it comes to storing data, but they hate the time required to parse XML files and the processing power required to transform an XML document.
Supporters of the XML format respond with, "Parsing is a one-time activity so the performance impact is negligible." This statement is true, but the size of the source XML document is directly proportional to the time required to parse the file and the corresponding memory footprint.
In other words, the bigger the XML document being parsed, the greater the potential for serious performance degradation.
All of this banter led the W3C to form a working group focused on finding ways to make XML parsing more efficient, or eliminate the need for parsing altogether. After two years of work -- or, as some would say, a "W3C minute" -- a working draft of a specification for the encoding of XML into a binary format for interchange and faster parsing has been produced.
Unfortunately, this announcement has not been met with the unbridled enthusiasm that the W3C hoped for. While EXI -- also known as Binary XML -- would most likely result in smaller XML-based messages, there remains the concern about the processing power required to decode.
There are also other problems lurking deeper within the specification.
According to Larry O'Brien, the EXI spec describes the ability to specify user-defined encoders/decoders for representing specific schema types. This capability is affectionately known as Pluggable CODECS.
Therefore, when developers across the globe are yearning for a simpler way to exchange information, the W3C responds with a proposed recommendation that introduces yet another layer of complexity into the already complicated world of web services.
If you remain unconvinced, feel free to peruse the working draft for yourself.
After you are done, we would love to hear what you think - good or bad - in the comments section below.