WikiDer > XML-бинарная оптимизированная упаковка

XML-binary Optimized Packaging

XML-бинарная оптимизированная упаковка (XOP) - это механизм, определенный для сериализация из Наборы информации XML (информационные наборы) которые содержат двоичный данные, а также десериализация обратно в набор информации XML.

Преимущества

XOP позволяет сериализовать часть двоичных данных XML Infoset без прохождения через сериализатор XML. XML-сериализация XML-инфо-набора основана на тексте, поэтому любые двоичные данные необходимо будет кодировать с помощью base64. Использование XOP позволяет избежать этого, извлекая двоичные данные из информационного набора XML, так что информационный набор XML не содержит двоичных данных, а двоичные данные можно сериализовать по-разному.

Следовательно, XOP может уменьшить размер сериализации (поскольку кодирование base64 имеет накладные расходы примерно на 33%) и (в зависимости от того, как оно реализовано) может повысить эффективность обработки. Это увеличение размера приводит к дополнительным ресурсам, необходимым для передачи или хранения данных.

Расходы

XOP вводит другой уровень обработки. Следовательно, это вносит дополнительную сложность и накладные расходы на обработку.

Представление пакетов XOP вводит некоторые накладные расходы. Они незначительны, когда двоичные данные большие, но могут быть значительными, если двоичные данные маленькие.

Операция

XOP работает с одним информационным набором XML.

Двоичные части исходного информационного набора XML извлекаются, оставляя «информационный набор XOP» (который, по сути, является исходным информационным набором XML с двоичными частями, замененными внешними ссылками). Ссылки в информационном наборе XOP представлены с помощью элемента «xop: Include». Информационный набор XOP плюс извлеченный контент можно сериализовать в представление, называемое «пакетом XOP». Пакет XOP можно отправить или сохранить.

Чтобы восстановить информационный набор XML, пакет XOP десериализуется в информационный набор XOP плюс извлеченное содержимое, а затем извлеченное содержимое помещается обратно в информационный набор XML.

Пакеты XOP

XOP можно использовать с множеством различных механизмов упаковки. Механизм упаковки определяет способ представления информационного набора XOP и двоичных фрагментов.

Спецификация XOP определяет, как MIME может использоваться как упаковочный механизм. При использовании с MIME информационный набор XOP представляется как XML в корневой части MIME, а двоичные фрагменты представлены в других частях MIME. Эти другие части MIME могут быть сериализованы как двоичные данные, что избавляет от необходимости кодировать их base64, если они остались внутри XML Infoset.

XOP не требует использования механизма упаковки MIME, поэтому можно использовать другие механизмы упаковки.

Использование в веб-сервисах SOAP

Механизм упаковки MIME является наиболее широко используемым, поскольку XOP обычно используется для представления МЫЛО сообщения с МТОМ.

Например:

MIME-версия:1.0Тип содержимого:Составные / Связанные;граница=MIME_boundary;...- граница_MIMEТип содержимого:заявление/xop+ xml;
...
<soap:Envelope> ... <soap:Body> ...     <м: фото xmlmime: contentType ="изображение / png">        xmlns: xop ="http://www.w3.org/2004/08/xop/include"           href ="cid: http: //example.org/me.png"/>
...
- граница_MIMEТип содержимого:изображение/PNGContent-Transfer-Encoding:двоичныйContent-ID:example.org/me.png>
// двоичные октеты для png

Смотрите также

  • МТОМ (Механизм оптимизации передачи сообщений)

Рекомендации

внешняя ссылка