Имя: Пароль:
1C
1С v8
descriptions из xsd в xml
, ,
0 Anabella
 
01.12.16
09:41
Всем спасибо. Пришла к схеме:
<xs:schema xmlns:tns="http://www.forum.mista.ru";
           xmlns:xs="http://www.w3.org/2001/XMLSchema";
           targetNamespace="http://www.forum.mista.ru";
           attributeFormDefault="unqualified"
           elementFormDefault="qualified">
    <xs:complexType name="batch">
        <xs:sequence>
            <xs:element name="row" type="tns:row" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="row">
        <xs:sequence>
            <xs:element name="store" type="xs:string"/>
            <xs:element name="date" type="xs:date"/>
            <xs:element name="product" type="xs:string"/>
            <xs:element name="amount" type="tns:Number_15_2"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

выдает результат:

<batch xmlns="http://www.forum.mista.ru"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
    <row>
        <store>ва</store>
        <date>2016-11-30</date>
        <product>0001</product>
        <amount xsi:type="xs:string">2</amount>
    </row>
</batch>

В общем, почти все замечательно, кроме одной мелочи, которую никак не могу найти. Мне нужно чтобы выходила схема вида:
<?xml version="1.0" encoding="UTF-16"?>
<batch descriptions="stocks.xml">
<row>
<store>Store-01</store>
<date>2015-05-14</date>
<product>000000001</product>
<amount>26</amount>
</row>

</batch>

Остался последний вопрос, как прописать в схеме, чтобы выходила строка <batch descriptions="stocks.xml"> ?
1 quest
 
01.12.16
09:46
добавь атрибут description у элемента batch
2 quest
 
01.12.16
09:53
+(1)
<xs:complexType name="batch">
        <xs:sequence>
            <xs:element name="row" type="tns:row" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="description" type="xs:string" use="required"/>
    </xs:complexType>
3 Anabella
 
01.12.16
09:58
(2) спасибо большое!!!
4 quest
 
01.12.16
09:59
(3) не за что. Чего только не сделаешь за прикольную фотку
5 Anabella
 
01.12.16
11:13
(4)для вас старалась :)
6 Anabella
 
01.12.16
11:43
Раз такое дело, можно еще вопрос, как в схеме прописать дерево значений вида:
<batch descriptions="Documents.xml">
    <row>
        <code>ВКЛ00082957</code>
        <type>103</type>
        <number>ВКЛ00082957</number>
        <items>
            <item>
                <product>КО14968-03400</product>
            </item>
        </items>
    </row>
</batch>

У меня есть преобразователь из xml в xls, но 1с не понимает его структуру.

Методом проб и ошибок я дошла как сделать один вложенный уровень:
    <xs:complexType name="batch">
        <xs:sequence>
            <xs:element name="row" type="tns:row" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

А вот как прописать вложенный уровень в row, не понятно
7 ГеннадийУО
 
01.12.16
11:47
(6) Это что такое вы с нашими данными делаете :)
8 Fragster
 
гуру
01.12.16
11:52
создать тип item со свойством product, создать тип items со свойством item и указанием max- minoccurs. ну, или вложенные анонимные типы сделать
9 Anabella
 
01.12.16
14:02
(7) самой страшно :)
10 Anabella
 
01.12.16
14:02
(8) Спасибо!
11 Anabella
 
01.12.16
14:06
Итак, как создать схему с вложенными элементами:
<xs:schema xmlns:tns="Documents.xml"
           xmlns:xs="http://www.w3.org/2001/XMLSchema";
           targetNamespace="Documents.xml"
           attributeFormDefault="unqualified"
           elementFormDefault="qualified">
    
    <xs:complexType name="batch"> --- это самый верхний уровень
            <xs:sequence>
                <xs:element name="row" type="tns:row" maxOccurs="unbounded"/> ---- уровень номер 2
            </xs:sequence>
    </xs:complexType>
    <xs:complexType name="row"> ------содержание уровня номер 2
        <xs:sequence>
            <xs:element name="items" type="tns:items" maxOccurs="unbounded"/> ---- будущий уровень номер 3
            <xs:element name="code" type="xs:string" /> ---- прочие поля без вложенного уровня
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="items"> ----- содержание уровня номер 3
        <xs:sequence>
            <xs:element name="item" type="tns:item" maxOccurs="unbounded"/> ----- уровень номер 4
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="item"> ---- содержание уровня номер 4
        <xs:sequence>
                <xs:element name="store" type="xs:string"/>
                <xs:element name="date" type="xs:date"/>
                <xs:element name="product" type="xs:decimal"/>
                <xs:element name="amount" type="tns:Number_15_2"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

Осталось опробовать на реальной выгрузке.