Jump to content

Fast Infoset

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Iharjw (talk | contribs) at 02:14, 12 May 2007. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Fast Infoset (or FI) specifies a binary encoding format for the XML Information Set (XML Infoset) as an alternative to the XML document format. It aims to provide more efficient serialization than the text-based XML format.

One can think of FI as gzip for XML, though FI aims to optimize both document size and processing performance, whereas gzip optimizes only the size. While the original formatting is lost, no information is lost in the conversion from XML to FI and back to XML.

The Fast Infoset specification is defined by both the ITU-T and the ISO standards bodies. FI is officially named ITU-T Rec. X.891 and ISO/IEC 24824-1 (Fast Infoset), respectively. However, it is commonly referred to by the name Fast Infoset. ITU-T approved the standard on May 14, 2005. ISO initiated publication on March 30, 2007.

A common misconception is that FI requires ASN.1 support. Although the formal description uses ASN.1 formalisms, ASN.1 is not required by implementations.

Implementations

Reference Implementation

A Java implementation of the FI specification is available as part of the GlassFish project. The library is open source and is distributed under the terms of the Apache License 2.0. Several projects use this implementation, including the reference implementation for JAX-RPC and JAX-WS used in JWSDP.

Alternative Implementations

FastInfoset.NET is a C# implementation for the .NET Framework. It was dual licensed, available under the LGPL open-source license and under a commercial license, but only the proprietary option is now available.

The OSS Fast Infoset Tools are designed for use with applications written in C or C++.

Performance

Parsing performance of FastInfoset is much greater than for standard XML parsing, for parsing speed and parser size (by a factor 10 for the Java implementation compared to Java Xerces, by a factor 4 compared to the Piccolo driver, one of the fastest Java-based XML parser). [1] [2].