XML is fighting back. The major opponents of XML have always argued the issue of an unnecessary footprint size. Although bigger is normally considered better, XML’s footprint kept it out of various implementations that required minimal data transfers and storage. Although XML is still king of structured datasets, various other propriety and standardized formats have come along to fill the void where XML stumbles. The World Wide Web is one of these areas that XML has lost considerable favor against a much better structure suited for the web (JSON). However, the W3C just recently published the Efficient XML Interchange (EXI) Format 1.0 recommendation.
The goal of EXI? To improve "performance and significantly reduces bandwidth requirements"[sic]. The standard extends XML in a manner which makes it more general, minimal, efficient, flexible, and interoperable. One of the key ways EXI accomplishes this is via various syntax/language shortcuts and modifications. XML can utilize these new tweaks to reduce its footprint. However, the biggest difference with EXI is the standardization of streaming. EXI Streams seek to standardize an efficient way to transport XML without the larger footprint that traditional XML documents carry. Although the streaming is in place to alleviate the bandwidth issues found with transporting data via XML, it adds an additional layer of complexity to an otherwise simple transport. Parsing is now required on each end of a transport to accommodate the EXI standard.
However, EXI parsers seem to be the only real setback to the standard. It would be relatively simple to extend existing XML helper classes and functions to include EXI streaming and syntactical support. Thus, it seems that like all standards, the final decision will come down to what programmers and engineers ultimately choose to utilize.
Will this quell the shortcomings for XML, or merely introduce more hurdles? Add to the conversation here.