Efficient XML Interchange
Efficient XML Interchange (EXI) is a binary XML format which was adopted as a Recommendation by the World Wide Web Consortium (W3C) on 10 March 2011. It was developed by the W3C's Efficient XML Interchange Working Group and is one of the most prominent binary XML efforts to encode XML documents in a binary data format, rather than plain text.
Using a binary XML format generally reduces the verbosity of XML documents, and may reduce the cost of parsing.
Performance of writing (generating) content is usually not similarly improved, although this depends on actual binary representation used.
Comparison with alternatives
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 is that to take advantage of this "schema-informed" compression, not only does the document require a schema, but the decoder needs a copy of the same schema that the encoder used.
- "Lightning-Fast Delivery of XML to More Devices in More Locations". AgileDelta. 2007-05-08. Retrieved 2007-07-17.
- "Analysis of the EXI Measurements". W3C. 2006-07-20. Retrieved 2010-08-31.
- Efficient XML Interchange Format 1.0 (W3C Recommendation)
- Efficient XML Interchange Evaluation (Working Group Note)
- Efficient XML Interchange Working Group home page
- EXIficient - Open Source Java implementation of the EXI Format 1.0
- EXIP - Open source C implementation
- Nagasena - Open Source Java/C# implementations of the EXI Format 1.0 provided by FUJITSU.
- Efficient XML™ - commercial implementation of the EXI specification in Java, .NET, C and C++
- Exi-Connexion - Open Source Java implementation of EXI's Working Draft 26 March 2008 ()
- OSS EXI Tools for C/C++ and OSS EXI Tools for .NET - a commercial implementation of EXI (prototype release) by OSS Nokalva