Простой пример использования XDTO к статьям "XDTO это просто-1" и "XDTO это просто-2" от Evil Beaver.
В данном примере приведена конфигурация, в которой в пакетеXDTO описана схема символического мини документа. И одна обработка, в коророй описана процедура Записи и Чтения документа .
XML схема мини докунмета:
<xs:schema xmlns:tns="http://www.sample-package.org/zakaz"xmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.sample-package.org/zakaz"attributeFormDefault="unqualified"elementFormDefault="qualified">
<xs:complexType name="ДокЗаказа">
<xs:sequence>
<xs:element name="Дата"type="xs:dateTime"/>
<xs:element name="Номер"type="xs:decimal"/>
<xs:element name="ТабЧасти"type="tns:ТабЧасти"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="СтрокаТаблТоваров">
<xs:sequence>
<xs:element name="Наименование"type="xs:string"/>
<xs:element name="Цена"type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ТабЧасти">
<xs:choice>
<xs:element name="Товары"type="tns:СтрокаТаблТоваров"minOccurs="0"maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:schema>
Пример кода Записи и Чтения миниДокумента, используя схему:
ТипТабЧасти = ФабрикаXDTO.Тип("http://www.sample-package.org/zakaz", "ТабЧасти");
ТипСтрокаТаблТоваров = ФабрикаXDTO.Тип("http://www.sample-package.org/zakaz", "СтрокаТаблТоваров");
ДокЗаказа = ФабрикаXDTO.Создать(ТипДокЗаказа);
ДокЗаказа.Дата = ТекущаяДата();
ДокЗаказа.Номер = 1;
ТабЧасть = ФабрикаXDTO.Создать(ТипТабЧасти);
СтрокаТоваров = ФабрикаXDTO.Создать(ТипСтрокаТаблТоваров);
СтрокаТоваров.Наименование = "Карандаш";
СтрокаТоваров.Цена = 100;
ТабЧасть.Товары.Добавить(СтрокаТоваров);
СтрокаТоваров = ФабрикаXDTO.Создать(ТипСтрокаТаблТоваров);
СтрокаТоваров.Наименование = "Стерка";
СтрокаТоваров.Цена = 200;
ТабЧасть.Товары.Добавить(СтрокаТоваров);
СтрокаТоваров = ФабрикаXDTO.Создать(ТипСтрокаТаблТоваров);
СтрокаТоваров.Наименование = "Линейка";
СтрокаТоваров.Цена = 150;
ТабЧасть.Товары.Добавить(СтрокаТоваров);
ДокЗаказа.ТабЧасти = ТабЧасть;
//-------------------------------------------------------
// ЗАПИСЫВАЕМ XML ДОКУМЕНТ
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(Запись, ДокЗаказа);
СтрокаXML = Запись.Закрыть();
Сообщить( СтрокаXML );
//-------------------------------------------------------
// ЧИТАЕМ XML ДОКУМЕНТ
Сообщить(Символы.ПС+Символы.ПС);
Сообщить("--------------------------------------------------------");
Сообщить(Символы.ПС);
Чтение = новый ЧтениеXML;
Чтение.УстановитьСтроку( СтрокаXML);
ДокЗаказа = ФабрикаXDTO.ПрочитатьXML( Чтение, ТипДокЗаказа );
Сообщить("--< миниДокумент >--");
Сообщить("Номер:"+ДокЗаказа.Номер);
Сообщить("Дата:" +ДокЗаказа.Дата);
Сообщить("== товары ==");
для каждого стр из ДокЗаказа.ТабЧасти.Товары Цикл
Сообщить(" "+стр.Наименование+" "+стр.Цена+"р.");
КонецЦикла;