Efficient XML Interchange
In-game article clicks load inline without leaving the challenge.
Efficient XML Interchange (EXI) is a binary XML format for exchange of data on a computer network. It was developed by the W3C's Efficient Extensible Interchange Working Group and is one of the most prominent efforts to encode XML documents in a binary data format, rather than plain text. Using EXI format reduces the verbosity of XML documents as well as the cost of parsing. Improvements in the performance of writing (generating) content depends on the speed of the medium being written to, the methods and quality of actual implementations. EXI is useful for
- a complete range of XML document sizes, from dozens of bytes to terabytes
- reducing computational overhead to speed up parsing of compressed documents
- increasing endurance of small devices by utilizing efficient decompression
History
The World Wide Web Consortium (W3C) formed a working group to standardize on a format in March 2006. EXI was chosen as W3C's Binary XML format after an evaluation of various proposals that included Fast Infoset. The EXI format is derived from the AgileDelta Efficient XML format. EXI was adopted as a W3C recommendation by the W3C on 10 March 2011. A second edition was published in February 2014.
In November 2016, the working group was renamed to "Efficient Extensible Interchange (EXI)" from "Efficient XML Interchange (EXI)" to reflect the broader scope of EXI applicability beyond XML to other data-description languages.
Features
An advantage of EXI over Fast Infoset is that EXI (optionally) uses more constraints from the XML schema. This can make the EXI data more compact; for example, if the XML schema specifies that elements named 'bar' may only exist within elements named 'foo', EXI can assign a shorter token to the 'bar' element, knowing that it doesn't have to share the same token space as elements that occur elsewhere in the document. The main disadvantage to utilizing such "schema-informed" compression is that, not only does the document require a schema, but the decoder needs a copy of the same schema that the encoder used. Nevertheless, even in schemaless mode, EXI delivers better data compression ratios than Fast Infoset while being more efficient in both processing time and memory usage.
Uses
A variety of EXI-capable applications are available.
A variety of EXI implementations are available that enable the integration of EXI capabilities in other tools.
EXI was recommended for use in the US Department of Defense Global Information Grid.
EXI is being adapted for non-XML data formats as well.
EXI4JSON
EXI4JSON is a specification developed by the same working group to use the same format for JSON documents. It does so by defining a mapping of JSON to the XML Infoset, which can then be encoded efficiently by applying a standard schema-informed EXI grammar to the resulting XML document. When used to encode JSON-LD data, EXI4JSON was found to consistently outperform CBOR in data compaction.
Future work
Multiple experimental initiatives continue to be pursued by the EXI Working Group.
- EXI4CSS is exploring how to map Cascading Style Sheets (CSS) to EXI.
- EXI for JavaScript appears to be possible if using the initial structured parse tree for source code.
- Considering potential composition of XML EXI with XML Encryption and XML Digital Signature.
External links
- - EXIficient is a set of open source implementations of the W3C Efficient XML Interchange (EXI) format specification
- - Open source C implementation
- - Open Source Java/C# implementations of the EXI Format 1.0 provided by FUJITSU.
- - commercial implementation of the EXI specification in Java, .NET, C and C++
- - Open Source Java implementation of EXI's Working Draft 26 March 2008 ()
- - a commercial implementation of EXI (prototype release) by OSS Nokalva