XML-binary Optimized Packaging (XOP) ist eine W3C-Empfehlung für die Repräsentation binärer Daten in XML-Dokumenten.
XOP ersetzt damit die sonst für die Repräsentation binärer Daten in XML Dokumenten üblichen Techniken wie Verwendung von CDATA-Blöcken, Base64-Kodierung, SOAP with Attachments unter Verwendung von MIME, sowie Microsofts Direct Internet Message Encapsulation (DIME).
Technik
XOP definiert ein XOP Infoset, welches als Container für das gemischt binär-textuelle XML-Dokument fungiert. Dabei werden alle Binärdaten vom XML Dokument separiert und durch xop:include Elemente ersetzt. Diese xop:include Elemente referenzieren auf die separierten Binärdaten und ersetzen beim Deserialisieren wieder die xop:include Elemente.
Diese Technik wird von SOAP Message Transmission Optimization Mechanism (MTOM) verwendet.
Beispiel
<xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:http://example.org/me.png"/>
Eigenschaften
XOP bietet folgende Vorteile gegenüber anderen Techniken der Übertragung binärer Daten:
- Bei Verwendung von CDATA-Blöcken muss sichergestellt werden, dass die darin enthaltenen binären Daten nicht für CDATA Blöcke unerlaubte Zeichen wie ASCII 0x00 bis 0x08 oder
]]>
enthalten. - Base64-Kodierung benötigt nicht nur Zeit und CPU Ressourcen, sondern erzeugt Daten, die in etwa um ein Drittel mehr Platz benötigen als die ursprünglichen Binärdaten.
- Im Gegensatz zu SOAP with Attachments oder DIME funktionieren existierende XML-Technologien unter XOP weiterhin. Das gilt insbesondere für die weit verbreiteten Technologien XQuery, XSLT und XML Encryption.
Literatur
- XML-Binary Optimized Packaging - XML and nontext data can work together, Andrey Butov in Dr. Dobb's, 1. Dezember 2005
Weblinks
- XML-binary Optimized Packaging - W3C Recommendation vom 25. Januar 2005