Недопустимое состояние объекта XDTO
Ошибка появляется (в прикрепленных изображениях скрин) когда присвоить Истина свойству "Открытый" типу объекта пакета (структура пакета в изображениях) и при этом создать объект xdto по этому типу и в свойство "__content" произвести запись.
Код:
XML-схема пакета:
Почему все это и зачем?
Мне нужно что бы в итоговом XML-файле элемент имел вид:
Для этого я создаю объект XDTO и в его свойства "ROWNUM" и "__content" произвожу запись, но когда мне нужно что бы в итоговом XML-файле был атрибут указывающий на путое значение "xsi:nil="true" мне нужно его програмно создать и добавить (см. код).
Если присвоить "Неопределено" свойству "__content", то создастся пустой элемент без "xsi:nil="true"
Это похоже на ошибку платформы.
Но может есть какой-нибудь другой способ присваивать значение элементу USAddress без прямой записи в свойство "__content"?
Код:
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Users\USER\Desktop\test_1.xml", "windows-1251");
ЗаписьXML.ЗаписатьОбъявлениеXML();
PurchaseOrderType = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://tempuri.org/PurchaseOrderSchema.xsd", "PurchaseOrderType"));
USAddress = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://tempuri.org/PurchaseOrderSchema.xsd", "USAddress"));
USAddress.zip = XMLСтрока(Формат(1234, "ЧДЦ=2; ЧРД=.; ЧРГ=; ЧН=; ЧГ=0; ЧО=1"));
USAddress.__content = XMLСтрока(4321);
ПустойАтрибут = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "boolean"), "true");
USAddress.Добавить(ФормаXML.Атрибут, "http://www.w3.org/2001/XMLSchema-instance", "xsi:nil", ПустойАтрибут);
PurchaseOrderType.BillTo = USAddress;
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, PurchaseOrderType);
ЗаписьXML.Закрыть();
ПоказатьXML-схема пакета:
<xs:schema xmlns:tns="http://tempuri.org/PurchaseOrderSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://tempuri.org/PurchaseOrderSchema.xsd" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="PurchaseOrder" type="tns:PurchaseOrderType"/>
<xs:complexType name="PurchaseOrderType">
<xs:sequence>
<xs:element name="BillTo" type="tns:USAddress"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="USAddress">
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:sequence>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="zip" type="tns:rowInt" use="required"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="rowInt">
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="999999"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
ПоказатьПочему все это и зачем?
Мне нужно что бы в итоговом XML-файле элемент имел вид:
<USAddress ROWNUM="1" xsi:nil="true" />
Для этого я создаю объект XDTO и в его свойства "ROWNUM" и "__content" произвожу запись, но когда мне нужно что бы в итоговом XML-файле был атрибут указывающий на путое значение "xsi:nil="true" мне нужно его програмно создать и добавить (см. код).
Если присвоить "Неопределено" свойству "__content", то создастся пустой элемент без "xsi:nil="true"
<USAddress ROWNUM="1"/>
Это похоже на ошибку платформы.
Но может есть какой-нибудь другой способ присваивать значение элементу USAddress без прямой записи в свойство "__content"?
<USAddress ROWNUM="1">Значение</USAddress>
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот