XOP, ikili veri içeren XML bilgi setlerinin serileştirmesi veya serileştirme işleminin geri alınması için tanımlanan bir mekanizmadır.
XOP, XML serileştirme aracı olmadan ikili veriyi XML Infoset’in bir parçası olarak serileştirilmesini sağlar. Bir XML Infoset’in XML serileştirilmesi metin bazlıdır ve bu yüzden ikili data base64 kullanılarak çözümlenmelidir. XOP kullanmak, XML Infoset’in içerisinde ikili veriyi çıkartırken bundan uzak durmayı sağlar böylelikle XML infoset ikili very içermez ve ikili veriler farklı farklı serileştirilebilir.
Bu yüzden, XOP serileştirme boyutunu düşürebilir (çünkü base64 çözümlemesi %33’lük bir farklılık göstermektedir) ve etkili bir işlem olabilir (nasıl kullanıldığına bağlıdır). Bu boyuttaki artış, verinin depolanması ya da aktarılması için daha fazla kaynak tüketimine sebep olmaktadır.
XOP, işlemin bir diğer seviyesini tanıtmaktadır. BU yüzden, XOP ek karmaşıklığı ve işlem yükünü beraberinde getirir.
XOP paketlerinin temsil edilmesi bazı yükleri beraberinde getirir. Bu yükler, ikili veri büyük olduğunda Kabul edilebilirdir fakat eğer veri küçük olursa önemli hale gelir.
Orjinal XML infosetlerinin verileri dışarı çıkartılır ve XOP Infoset içeride kalır (bu infoset dış kaynaklar tarafından ikili verileri değiştirildiğinde orjinal XML için çok önemlidir.). XOP Infoset içerisindeki kaynaklar “xop:Include” elementi kullanılarak temsil edilmektedir. XOP Infoset’iin çıkarılmış içeriği “XOP Package” adındaki temsil ile seri hale getirilebilir.
XML Infoseti yeniden yapılandırmak için, XOP paketi, XOP infosete geri seri işlemine tabi tutulmalı ve daha sonra içerik XML ınfoseti içersine konulmalıdır.
XOP, farklı paketleme mekanizmaları ile kullanılabilmektedir. Paketleme mekanizması XOP Infoset’lerin ve veri kümelerinin nasıl temsil edileceğini belirlemektedir.
XOP özelleştirmesi MIME’nin paketleme mekanizması olarak nasıl kullanılabileceğini belirlemektedir. XOP, MIME ile birlikte kullanıldğında, XOP Infoset, MIME kök dizinindeki XML olarak temsil edilmekte ve veri kümeleri diğer MIME parçalarında temsil edilmektedir. Bu diğer MIME parçaları ikili veri olarak seri hale getirilebilir. Bunu yaparken base64’ün kendilerini çözümlemelerinden kaçınılır.
XOP, MIME paketleme mekanizmasının kullanımı konusunda ısrarcı değildir bu yüzden diğer paketleme mekanizmaları kullanılabilir.
MIME paketleme mekanizmaları çok yaygın bir kullanıma sahip deildir. BUnun sebebi ise XOP genellikle MTOM ile birlikte SOAP mesajlarını temsil etmesidir.
MIME-Version: 1.0 Content-Type: Multipart/Related;boundary=MIME_boundary; ... --MIME_boundary Content-Type: application/xop+xml; ... <soap:Envelope ... <soap:Body>... <m:photo xmlmime:contentType='image/png'> <xop:Include xmlns:xop='[url]http://www.w3.org/2004/08/xop/include[/url]' href='cid:[url]http://pythontr.com/image/pythonLogo.png[/url]'/></m:photo> ... --MIME_boundary Content-Type: image/png Content-Transfer-Encoding: binary Content-ID: <[url]http://http://pythontr.com/image/pythonLogo.png[/url]> // binary octets for png
Yorumlar