This document evaluates Efficient XML with respect to the XML Binary Characterization Properties identified by the XML Binary Characterization Working Group. Efficient XML is a very compact, high performance, general purpose binary XML format that satisfies W3C requirements. Efficient XML increases the performance of existing XML applications and enables a new range of XML applications for small, mobile and embedded systems with limited bandwidth, memory, processing power and battery life. It has been used on a wide range of platforms, including mobile phones, PDAs, application servers, message routers, vehicles, aircraft and satellite broadcast systems. More information can be found at http://www.agiledelta.com.
Property |
Efficient XML |
Notes |
MUST support |
||
Directly Readable and Writable |
Yes |
Current implementations read and write Efficient XML streams directly via standard XML APIs, such as DOM, SAX and StAX. Current implementations also support typed APIs for increased performance. |
Transport Independence |
Yes |
Efficient XML is currently being used over TCP, UDP, HTTP and various wireless and satellite transports. |
Compactness |
Yes |
Efficient XML performs well within the W3C required thresholds for compactness. When schema optimizations are used, Efficient XML is competitive with hand-optimized binary formats and is generally smaller than ASN.1 PER. When compression is used, Efficient XML is consistently smaller than gzip. For large, repetitive documents where gzip works well, it is not uncommon for Efficient XML to be 2-5 times smaller than gzip. |
Human Language Neutral |
Yes |
Current implementations support all standard character set encodings. |
Platform Neutrality |
Yes |
Java and .NET implementations exist for UNIX, MS-Windows and various mobile devices. Java -- .NET interoperability has been tested for hundreds of use cases using thousands of instance documents. |
Integratable into XML Stack |
Yes |
Efficient XML was designed to integrate well into the XML stack, neither duplicating nor requiring changes to functionality at other layers in the XML stack. It implements the same functionality as text XML and supports the same interfaces as existing XML parsers and serializers. As such, it can be inserted into existing XML applications with minimal time and cost. The decision tree used in the XBC characterization document to identify properties that support interoperability with the XML stack was derived from the Efficient XML designs. |
Royalty Free |
Yes |
AgileDelta is contributing Efficient XML to the W3C as a royalty-free standard. |
Fragmentable |
Yes |
Efficient XML can represent any collection of XML fragments extracted from any collection of XML documents. All schema optimization, bit-packing and XML compression algorithms apply equally to fragments. |
Streamable |
Yes |
|
Roundtrip Support |
Yes |
Efficient XML supports lossless equivalence for PSVI, Info-set and lexical applications, such as XML Digital Signatures |
Generality |
Yes |
19 of 20. Efficient XML is being used for a very broad range of applications, including those that can & can’t leverage schemas, can & can’t leverage compression and do & don’t preserve whitespace, comments, etc. Efficient XML meets the needs of applications previously requiring hand-optimized binary formats and exceeds the needs of applications previously using gzipped XML. Efficient XML includes very effective and flexible schema optimizations that enable a broader range of applications to take advantage of schema optimizations (see below). Efficient XML can be extended to achieve a score of 20, but this will only be interesting if and when standard XML APIs exist that preserve e.g. single-vs-double quoted attributes and binary XML use cases exist that require this level of fidelity. |
Schema Extensions and Deviations |
Yes |
Efficient XML includes very effective and flexible schema optimizations that support arbitrary schema extensions and deviations. Applications may specify strict or extensible schema handling and may provide a full schema, partial schema or no schema at all. Efficient XML will leverage available schema information to improve compactness and performance, but does not depend on the accuracy or completeness of the schema to work. |
Format Version Identifier |
Yes |
|
Content Type Management |
Yes |
Efficient XML is being used in various contexts, some which use a media type and some which use content encoding. |
Self Contained |
Yes |
When schema optimizations are not used, Efficient XML documents are always self-contained. When schema optimizations are used, it is possible to embed a schema in the Efficient XML header; however, for most scenarios more efficient mechanisms exist for schema acquisition. |
MUST NOT Prevent |
||
Processing Efficiency |
Does Not Prevent |
Current implementations achieve performance several times faster than XML using both in-memory tests and more realistic scenarios that involve file and network IO. These implementations do not depend on compile-time schema-binding techniques that make dynamically acquiring, loading or updating schemas impractical or impossible. |
Small Footprint |
Does Not Prevent |
Implementations exist for a variety of small, mobile devices. |
Widespread Adoption |
Does Not Prevent |
|
Space Efficiency |
Does Not Prevent |
Based on implementations for small, mobile devices |
Implementation Cost |
Does Not Prevent |
Where possible, Efficient XML reuses existing technologies that can be implemented using open source software libraries |
Forward Compatibility |
Does Not Prevent |
|
AgileDelta, Inc. would like to acknowledge and thank the Air Force Research Laboratory (AFRL), Air Force Command, Control, Intelligence, Surveillance and Reconnaissance Center (AFC2ISRC) and U.S. Navy Space and Naval Warfare (SPAWAR) systems center for funding portions of the Efficient XML research and development.