- Efficient XML Interchange
-
Efficient XML Interchange (EXI) Dateiendung: .exi
MIME-Type: application/exi (proposed)
Magische Zahl: 2445.5849 hex
$EXI (ASCII-C-Notation)Entwickelt von: World Wide Web Consortium Aktuelle Version: 1.0 (Stand:19. September 2008) Art: Binary XML Erweitert von: XML Standard(s): Format 1.0 (Recommendation) Website: 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 Repräsentation für XML zu etablieren (vgl. Binary XML).
Inhaltsverzeichnis
Geschichte
Auf Basis der Schlussfolgerungen der XML Binary Characterization Working Group wurde im November 2005 die Efficient XML Interchange (EXI) working Group gegründet, mit dem Ziel ein binäres Beschreibungsformat für XML zu definieren.[1] Nach Analyse und Vergleich mehrerer 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 sah es vor, EXI im September 2009 als W3C-Empfehlung zu veröffentlichen.[3] Im Januar 2011 wurde dann ein Vorschlag für eine W3C-Empfehlung[4] und im März 2011 die darauf aufbauende W3C-Empfehlung publiziert.[5]
Konzept
Der Algorithmus verwendet eine Grammatik, um anhand dieser zu bestimmen, was wahrscheinlich an einer bestimmten Stelle in einem XML-Dokument vorkommt. Die wahrscheinlichste Alternative wird dann mit weniger Bits kodiert als unwahrscheinlichere (vgl. Entropiekodierung). Dieser allgemein gehaltene Algorithmus kann auf jede Sprache, die von einer Grammatik beschrieben wird (zB SVG, Java, HTTP, usw.), angewendet werden. EXI ist jedoch speziell für XML-Sprachen optimiert.
Die Grammatik erlaubt als Eingabe ein beliebiges XML-Dokument oder Fragmente davon. Um genauere Vorhersagen treffen zu können, was an einer bestimmten Stelle vorkommt, kann die Grammatik durch verschiedene Schemata (z.B. DTD oder XML Schema) erweitert werden.
Der Encoder erzeugt, unter Zuhilfenahme der Grammatik, aus der Eingabe einen Stream of Events (engl. für „Strom der Ereignisse“), der aus einer Reihe von einfachen Codes variabler Länge besteht. Diese Event Codes ähneln Huffman-Kodierungen, sind aber viel einfacher zu berechnen und zu pflegen. Zusätzlich können die Event Codes durch Lauflängenkodierung komprimiert werden.
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 Reihenfolge haben. Diese Reihenfolge ist in wohlgeformten XML-1.0-Dokumenten in den üblichen Zeichenkodierungen nicht möglich.[6] 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.[7]
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. Unmittelbar darauf müssen die zwei Unterscheidungs-Bits folgen. Bis auf die ersten zwei und das vierte Bit des ersten Oktetts (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
Auf der Webseite der Interchange Working Group findet man eine ausführliche Beschreibung der Implementierungen.[8]
- 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++
- OpenEXI: Ein von Fujitsu, Naval Postgraduate School (NPS) und OptimaLogic vorangetriebenes Open-Source-Projekt zur Implementation der EXI-Spezifikation in Java.
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 7. September 2009 (englisch).
- ↑ John Schneider, Takuki Kamiya: Efficient XML Interchange (EXI) Format 1.0. W3C Proposed Recommendation 20 January 2011. W3C, 20. Januar 2011, abgerufen am 17. März 2011 (englisch).
- ↑ John Schneider, Takuki Kamiya: Efficient XML Interchange (EXI) Format 1.0. W3C Recommendation 10 March 2011. W3C, 10. März 2011, abgerufen am 17. März 2011 (englisch).
- ↑ John Schneider, Takuki Kamiya: Efficient XML Interchange (EXI) Format 1.0. W3C Working Draft 19 September 2008. W3C, 19. Dezember 2008, abgerufen am 7. 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 7. 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“
- ↑ Efficient XML Interchange Working Group. EXI Implementations. W3C, 12. März 2011, abgerufen am 17. März 2011 (englisch).
Weblinks
- EXIficient - Open Source Implementation des EXI Format 1.0
- OpenEXI - Open Source Implementation des EXI Format 1.0
- W3C binary XML requirements
Standards des World Wide Web ConsortiumsEmpfehlungen (Recommendations): ATAG | Canonical XML | CSS | CharMod | CC/PP | DDR Simple API | DOM | EXI | Element Traversal | EMMA | GRDDL | HTML | ITS | MathML | OWL | P3P | PICS | PLS | PNG | POWDER | RDF | RDF-Schema | Ruby | SISR | SKOS | SML | SMIL | SOAP | SOAP MTOM | SPARQL | SRGS | SSML | SVG | SSML | UAAG | VoiceXML | WCAG | Webarch | WebCGM | WSDL | WS-Adressing | WS-Policy | XHTML | XML | XInclude | XKMS | XLink | XML Base | XMLEnc-Decrypt | XML Events | XML Information Set | XML Namespace | XML Schema | XML Signature | XOP | XForms | XPath | XPointer | XProc | XQuery | XSL | XSLT
Arbeitsentwürfe (Working Drafts) und Kandidaten (Candidate Recommendations): Capture API | CCXML | CDF | Clipboard API | Contacts API | Cross-Origin Resource Sharing | CURIE | EARL | File API | HTML5 | HTML Canvas | HTML Microdata | Indexed Database API | InkML | LTLI | RIF | Selectors API | System Information API | WAI-ARIA | Web IDL | Web Sockets API | Web SQL Database | WICD | Widgets | XFrames | XBL
Wikimedia Foundation.
Schlagen Sie auch in anderen Wörterbüchern nach:
Efficient XML Interchange — (EXI) is a proposed data format from the Efficient XML Interchange Working Group of the World Wide Web Consortium (W3C). It is one of the various efforts to encode XML documents in a binary data format, rather than plain text.Using a binary XML… … Wikipedia
XML — Infobox file format name = Extensible Markup Language icon = logo = extension = .xml mime = application/xml, text/xml (deprecated) type code = uniform type = public.xml magic = owner = World Wide Web Consortium genre = Markup language container… … Wikipedia
VTD-XML — Infobox Software name = VTD XML caption = developer = XimpleWare latest release version = 2.4 latest release date = April 2, 2008 latest preview version = latest preview date = operating system = Portable platform = blog = [http://vtd… … Wikipedia
Service de validation du W3C — World Wide Web Consortium Ne doit pas être confondu avec WC3 (formation musicale). World Wide Web Consortium Création octobre 1994 … Wikipédia en Français
Service de validation du w3c — World Wide Web Consortium Ne doit pas être confondu avec WC3 (formation musicale). World Wide Web Consortium Création octobre 1994 … Wikipédia en Français
W3C — World Wide Web Consortium Ne doit pas être confondu avec WC3 (formation musicale). World Wide Web Consortium Création octobre 1994 … Wikipédia en Français
W3c — World Wide Web Consortium Ne doit pas être confondu avec WC3 (formation musicale). World Wide Web Consortium Création octobre 1994 … Wikipédia en Français
World Wide Web Consortium — Ne doit pas être confondu avec WC3 (formation musicale). World Wide Web Consortium Devise : « Leading the Web to its full potential » … Wikipédia en Français
Entity–attribute–value model — (EAV) is a data model to describe entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will actually apply to a given entity is relatively modest. In… … Wikipedia
Digital history — is the use of digital media and tools for historical practice, presentation, analysis, and research. It is a branch of the Digital Humanities and an outgrowth of Quantitative history, Cliometrics, and History and Computing. Some of the previous… … Wikipedia