Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

serializacija

Сериализация

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

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

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

Иногда бывает удобно сериализовать 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;
};

serializacija.txt · Последние изменения: 2012/05/14 13:47 (внешнее изменение)