ФабрикаXDTO по свойству пакета XDTO.

1. 5H1 09.12.21 13:40 Сейчас в теме
Есть XML-схема:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="http://tempuri.org/PurchaseOrderSchema.xsd"
           targetNamespace="http://tempuri.org/PurchaseOrderSchema.xsd"
           elementFormDefault="qualified">
 <xsd:element name="PurchaseOrder" type="tns:PurchaseOrderType"/>
 <xsd:complexType name="PurchaseOrderType">
  <xsd:sequence>
   <xsd:element name="ShipTo" type="tns:USAddress" maxOccurs="2"/>
   <xsd:element name="BillTo" type="tns:USAddress"/>
  </xsd:sequence>
  <xsd:attribute name="OrderDate" type="xsd:date"/>
 </xsd:complexType>

 <xsd:complexType name="USAddress">
  <xsd:sequence>
   <xsd:element name="name"   type="xsd:string"/>
   <xsd:element name="street" type="xsd:string"/>
   <xsd:element name="city"   type="xsd:string"/>
   <xsd:element name="state"  type="xsd:string"/>
   <xsd:element name="zip"    type="xsd:integer"/>
  </xsd:sequence>
  <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
 </xsd:complexType>
</xsd:schema>
Показать


Что бы создать xml-файл делаю следующее:

	ЗаписьXML = Новый ЗаписьXML;	
	ЗаписьXML.ОткрытьФайл("C:\Users\USER\Desktop\test_1.xml", "windows-1251");
	ЗаписьXML.ЗаписатьОбъявлениеXML();
	
	PurchaseOrderTypeXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://tempuri.org/PurchaseOrderSchema.xsd", "PurchaseOrderType"));
	
	// %Код который обробатывает дочерние элементы%
	
	ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, PurchaseOrderTypeXDTO);
	ЗаписьXML.Закрыть();
Показать


и в результате получаю:

<?xml version="1.0" encoding="windows-1251"?>
<PurchaseOrderType xmlns="http://tempuri.org/PurchaseOrderSchema.xsd" xmlns:xsв="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	
// %дочерние элементы%

</PurchaseOrderType>


Как сделать чтобы тег "PurchaseOrderType" был "PurchaseOrder"?

Или чтобы создание фабрики XDTO начиналось не с типа "PurchaseOrderType", а с свойства пакета "PurchaseOrder" который в схеме прописан как "<xsd:element name="PurchaseOrder" type="tns:PurchaseOrderType"/>"

Т.е. я хочу начинать с своего элемента который указан в xml-схеме, а не по типу.
По теме из базы знаний
Найденные решения
2. Sashares 33 09.12.21 15:20 Сейчас в теме
(1)
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, PurchaseOrderTypeXDTO, "PurchaseOrder","http://tempuri.org/PurchaseOrderSchema.xsd");
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 09.12.21 15:20 Сейчас в теме
(1)
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, PurchaseOrderTypeXDTO, "PurchaseOrder","http://tempuri.org/PurchaseOrderSchema.xsd");
3. 5H1 09.12.21 15:37 Сейчас в теме
(2)
А начать именно с элемента, а не с типа както-то можно?

Потому то в записи
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, PurchaseOrderTypeXDTO, "PurchaseOrder","http://tempuri.org/PurchaseOrderSchema.xsd");

вместо "PurchaseOrder" можно вообще что угодно написать... как-то не по стандарту. Для этого специально в xml-схеме пишут корневой элемент.
4. Sashares 33 09.12.21 15:46 Сейчас в теме
(3)
А начать именно с элемента, а не с типа както-то можно?


Тут не подскажу.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот