Что такое сериализация. Сериализация XML документа

Сериализация (в программировании) — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации — восстановление начального состояния структуры данных из битовой последовательности.

Сериализация используется для передачи объектов по сети и для сохранения их в файлы. Например, нужно создать распределённое приложение, разные части которого должны обмениваться данными со сложной структурой. В таком случае для типов данных, которые предполагается передавать, пишется код, который осуществляет сериализацию и десериализацию. Объект заполняется нужными данными, затем вызывается код сериализации, в результате получается, например, xml-документ. Результат сериализации передаётся принимающей стороне, например, по электронной почте или HTTP. Приложение-получатель создаёт объект того же типа и вызывает код десериализации, в результате получая объект с теми же данными, что были в объекте приложения-отправителя. По такой схеме работает, например, сериализация объектов через SOAP.

Иногда бывает удобно сериализовать XML документ (или некоторые элементы документа), преобразовав его в строку. Это может понадобиться, например, чтобы отправить XML документ в теле HTTP запроса POST, сгенерированного с помощью объекта Свойства и методы XMLHttpRequest. Нередко сериализация XML документов и их элементов выполняется для использования в отладочных сообщениях!

В броузерах на базе Mozilla сериализация выполняется с помощью объекта XMLSerializer. В IE еще проще: с помощью свойства xml XMLобъекта Document или Element, возвращающего содержимое документа или элемента в сериализованной форме.

В примере приводится программный код, выполняющий сериализацию в броузерах Mozilla и IE.

  • Пример. Сериализация XML документа.
/**
* Сериализует XML документ или XML элемент и возвращает его в виде строки.
*/
XML.serialize = function(node) {
if (typeof XMLSerializer != "undefined")
return (new XMLSerializer()).serializeToString(node);
else if (node.xml) return node.xml;
else throw "XML.serialize не поддерживается или не может сериализовать " + node;
};
PQ VPS сервера в 28+ странах.