Efficient XML Interchange
Begründung:Was mag es sein? Warum könnte es wichtig sein? --WB 11:18, 7. Sep. 2009 (CEST)
Efficient XML Interchange (EXI) | |
---|---|
Dateiendung: | .exi
|
MIME-Type: | application/exi (proposed)
|
Magische Zahl: | 2445.5849 hex $EXI |
Entwickelt von: | World Wide Web Consortium |
Aktuelle Version | 1.0 (19. September 2008) |
Art: | Binary XML |
Erweitert von: | XML |
Standard(s): | Format 1.0 (Working Draft) |
Efficient XML Interchange Working Group | |
Efficient XML Interchange (EXI) ist ein vom World Wide Web Consortium (W3C) vorgeschlagenes Format für die binäre Repräsentation von XML Information Sets. Im Vergleich zu textbasierten XML-Dokumenten können Dokumente im EXI-Format schneller verarbeitet werden und benötigen weniger Bandbreite beim Transfer über ein Netzwerk. Neben EXI gibt es weitere Ansätze eine binäre Representation für XML zu etablieren (vgl. Binary XML).
Geschichte
Auf Basis der Schlussfolgerungen der XML Binary Characterization Working Group wurde im November 2005 die Efficient XML Interchange (EXI) working Group mit dem Ziel ein binäres Beschreibungsformat für XML zu definieren gestartet[1]. Nach Analyse und Vergleich mehrer Ansätze (u.a. XML+gzip, Fast Infoset, Fujitsu Binary, Xebu und esXML) wurde im November 2006 Efficient XML als Basis für EXI gewählt[2]. Im Juli 2007 wurde der erste Entwurf für den Efficient XML Interchange standard veröffentlicht
Die Planung der Arbeitsgruppe sieht vor EXI im September 2009 als W3C-Empfehlung zu veröffentlichen.[3]
Magische Zahl
Um EXI Streams von XML Streams zu unterscheiden wurden zwei Unterscheidungs-Bits eingeführt. Die ersten zwei Bits des ersten Oktetts müssen die Werte ‚1‘ und ‚0‘ in genau der Reinfolge haben. Diese Reinfolge ist in wohlgeformten XML 1.0 Dokumenten in den üblichen Zeichenkodierungen nicht möglich[4]. Um aber die Unterscheidung auch für mögliche zukünftige Kodierungen zu gewährleisten wurde schon früh die Einführung eines magic cookie vorgeschlagen[5].
In der Spezifikation zum Format 1.0 wird festgelegt, dass der EXI Header mit dem so genannten EXI Cookie, der ASCII-Zeichenfolge ‚$EXI‘ (0x24455849), beginnen kann. Unmitelbar darauf müssen die zwei Unterscheidungs-Bits folgenden. Bis auf die ersten zwei und das vierte Bit des ersten Okttets (nach dem EXI Cookie) sind die anderen fünf variabel. Daraus ergeben sich theoretisch 32 verschiedene Magische Zahlen.
Zwar ist die Verwendung des EXI Cookies optional, sie wird aber in der Spezifikation dringend empfohlen.
Beispiel
Ein EXI Stream der Version 1 mit EXI Cookie und ohne EXI Optionen würde mit folgenden Bytes beginnen:
24 45 58 49 80
Ein EXI Stream ab der Version 16 mit EXI Cookie und EXI Optionen würde wie folgt beginnen:
24 45 58 49 AF
Implementierungen
- EXIficient: Ein von Siemens unterstützes Open-Source-Projekt zur Implementation der EXI-Spezifikation in Java.
- Efficient XML: Eine durch die Firma AgileDelta kommerziell vertriebene Implementierung der EXI-Spezifikation in Java, .NET und C++
Siehe auch
Quellen
- ↑ Oliver Goldman, Dmitry Lenkov: XML Binary Characterization. W3C, 31. März 2005, abgerufen am 7. September 2009 (englisch).
- ↑ Lightning-Fast Delivery of XML to More Devices in More Locations. AgileDelta, 8. Juli 2007, abgerufen am 7. September 2009 (englisch).
- ↑ Charter of the Efficient XML Interchange Working Group. W3C, abgerufen am 9. September 2009 (englisch).
- ↑ John Schneider, Takuki Kamiya: Efficient XML Interchange (EXI) Format 1.0. W3C, 19. Dezember 2008, abgerufen am 9. September 2009 (englisch): „Unlike the optional EXI cookie that MAY occur to precede this field, the presence of Distinguishing Bits is REQUIRED in the EXI header. It is used to distinguish EXI streams from text XML documents in the absence of an EXI cookie. This two bit sequence is the minimum that suffices to distinguish EXI streams from XML documents since it is the minimum length bit pattern that cannot occur as the first two bits of a well-formed XML document represented in any one of the conventional character encodings, such as UTF-8, UTF-16, UCS-2, UCS-4, EBCDIC, ISO 8859, Shift-JIS and EUC, according to XML 1.0“
- ↑ Daniel Peintner, Santiago Pericas-Geertsen: Efficient XML Interchange (EXI) Primer. W3C, 19. Dezember 2007, abgerufen am 9. September 2009 (englisch, Editorial note): „The integration of a magic cookie is under consideration by the EXI WG. A magic cookie would allow distinguishing an EXI document from formats other than XML or from future character encodings“