Имя: Пароль:
1C
1С v8
Запись XML по схеме XSD без типов
0 xLokkIx
 
03.03.13
18:44
Есть схема

   <xsd:element name="verification">
       <xsd:complexType>
           <xsd:sequence>
               <xsd:element name="idx" type="xsd:string"/>
               <xsd:element name="status" type="xsd:string"/>
               <xsd:element name="order_id" type="xsd:int"/>
               <xsd:element maxOccurs="unbounded" minOccurs="0" name="product" nillable="true">
                   <xsd:complexType>
                       <xsd:sequence>
                           <xsd:element name="product" type="xsd:string"/>
                           <xsd:element name="feature" type="xsd:string"/>
                           <xsd:element name="quantity" type="xsd:int"/>
                           <xsd:element name="price" type="xsd:float"/>
                           <xsd:element name="amount" type="xsd:float"/>
                       </xsd:sequence>
                   </xsd:complexType>
               </xsd:element>
           </xsd:sequence>
       </xsd:complexType>
   </xsd:element>    
Как прочитать XML по такой схеме разобрался. А вот как записать? Запись с использование XDTO полностью построена на именах типов, а у меня их нет...
1 Fragster
 
гуру
03.03.13
18:52
Там у корневого свойства есть Тип() и Свойства[n].Тип()... дальше сам думай. хотя переписать схему дело трех минут
2 xLokkIx
 
03.03.13
18:54
Не совсем понял откуда взять корневое свойство.
Схему лучше не трогать, она не только в 1С используется, и там все отлично выходит с ней.
3 Fragster
 
гуру
03.03.13
18:56
(2) ну так фабрику по схеме же создал? у нее есть пакеты, в них есть всё
4 xLokkIx
 
03.03.13
18:59
Не все так просто. У нее всего один пакет и тот "http://www.w3.org/2001/XMLSchema". А в нем ничего моего нет
5 xLokkIx
 
03.03.13
19:19
Вопрос снят.
Фабрика = СоздатьФабрикуXDTO(путьКСхеме);
вернул схему с двумя пакетами в отличии от
СхемаXML = Новый СхемаXML;
СхемаXML.РасположениеСхемы = путьКСхеме;
   
СхемыXML = Новый НаборСхемXML;
СхемыXML.Добавить(СхемаXML);
   
Фабрика = Новый ФабрикаXDTO(СхемыXML)