Как уже говорилось ранее, XML-документ имеет текcтовое содержимое. Это в первую очередь означает, что при записи в него любого значения (числа, даты, ссылки на объект и т. д.) оно преобразуется к строке. При получении данных возникает обратная задача по преобразованию значения из строкового в нужный тип.
С одной стороны, с помощью базовых средств чтения и записи документов XML можно решить любую задачу, связанную с организацией обмена. Но решение задачи преобразования типов в строковый и обратно потребует от разработчика очень больших затрат времени (на самостоятельную реализацию данных преобразований). Придется в полной мере работать со стандартными типами (W3C), определять собственное пространство имен (для описания некоторых типов «1С:Предприятия» в XML) и т. д.
Альтернативным (более простым и удобным) решением данной задачи может быть использование уже реализованных средств XML-сериализации.
С точки зрения данной системы каждый объект данных «1С:Предприятия» представляется как элемент XML-документа. Этот элемент может иметь подчиненные элементы. Как раз с этой точки зрения (есть у элемента подчиненные или нет) типы значений делятся на простые и сложные.
К простым типам данных относятся типы, значения которых представляются подсистемой XML-сериализации в виде элементов XML только с текстовым содержимым (листинг 6.49).
Листинг 6.49. Пример сериализации значения ссылки на справочник
<CatalogRef.Номенклатура>
178a492a-3fd4-11da-a1f2-0011d8388a5d
</CatalogRef.Номенклатура>
Значения сложных типов представляются в виде элементов XML, содержащих вложенные элементы (листинг 6.50).
Листинг 6.50. Пример сериализации значения типа «УдалениеОбъекта»
<v8:ObjectDeletion xmlns="http://v8.1c.ru/data">
<v8:Ref xsi:type="CatalogRef.Банки">
60c5cec3-7f6f-4ec3-9620-e757fe3614ca
</v8:Ref>
</v8:ObjectDeletion>
Если проанализировать типы, которые требуется подвергать преобразованию, то их можно разделить на три группы:
При рассмотрении примеров представления различных значений в XML и при дальнейшем изложении будем исходить из предположения, что определены следующие соответствия пространств имен (после xmlns определены их префиксы):
К простым типам с точки зрения представления в XML относятся следующие типы «1С:Предприятия»:
К сложным типам, значения которых могут быть представлены в XML, относятся следующие типы: