"Canonical EXI" is a W3C Recommendation

The Efficient XML Interchange (EXI) Format has been around for a while; it standardizes a binary and more compact format for XML documents. However, like most formats, EXI allows variations in the encoding, meaning that the same XML document can be encoded in two non-identical EXI documents.

For applications areas such as digital signatures it makes sense to have a canonical representation (equivalent to Canonical XML for the regular XML syntax), so that the same XML document always ends up as the exact same EXI encoding.

"Canonical EXI" defines such a canonical encoding for the EXI format. Applications that encode XML with EXI and want to compare these EXI documents for equality can use this new specification to produce and use EXI documents that are encoded in a canonical way.

The abstract of the "Canonical EXI" specification reads as follows:

"Any EXI document is part of a set of EXI documents that are logically equivalent within an application context, but which vary in physical representation based on differences permitted by the EXI Format 1.0. This specification describes a relatively simple method for generating a physical representation, the canonical form, of an EXI document that accounts for the permissible differences. An example of the applications targeted by this specification is one that needs to guarantee non-repudiation using XML Signature yet allows certain flexibility for intermediaries to reconstitute the documents before they reach final destination without breaking the signatures. Note that two documents may have differing canonical forms yet still be equivalent in a given context based on more elaborate application-specific equivalence rules which is out of scope of this specification."

The Author

Erik Wilde

Lead API Technologist

An expert in protocol design and structured data, Erik Wilde consults with organizations to help them get the most out of APIs and microservices. Erik has been involved in the development of innovative technologies since the advent of the Web and is active in the IETF and W3C communities. He obtained his PhD from ETH Zurich and served as Associate Adjunct Professor at Berkeley before working at EMC, Siemens and now CA Technologies.

Join the Conversation