Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Преимущества [ править ]

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 обычно используется для представления сообщений SOAP с помощью MTOM .

Например:

MIME-версия:  1.0Content-Type: Multipart / Related ; граница = MIME_boundary ;... --MIME_boundary Content-Type: application / xop + xml ;  
...
<soap: Envelope> ... <soap: Body> ... <m: photo  xmlmime: contentType = "image / png" >  <xop: Include  xmlns: xop = "http://www.w3.org/2004 / 08 / xop / include "  href = " cid: http: //example.org/me.png " /> </ m: photo>
...
--MIME_boundary Content-Type: image / png Content-Transfer-Encoding: двоичный Content-ID:  <http: // example.org / me.png >
// двоичные октеты для png

См. Также [ править ]

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

Ссылки [ править ]

Внешние ссылки [ править ]