Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

xsd vs xdto

xsd vs xdto
Я
   oyeah
 
28.11.18 - 18:56
Добрый вечер!
Подскажите как правильно добавить XDTO пакет в дерево метаданных? Проблема в том, что при импорте из файла xml схемы в пакет xdto не загружаются вложенные свойства.
 
 
   oyeah
 
1 - 28.11.18 - 18:58
<xs:element name="Root">
          <xs:element name="Spisok">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Kontragent" maxOccurs="unbounded"/>
                <xs:element ref="Dogovor" maxOccurs="unbounded"/>
                <xs:element ref="Nomenklatura" maxOccurs="unbounded"/>
                <xs:element ref="BuhOperatsiya" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Tip" type="xs:string" use="optional"/>
        </xs:complexType>
            </xs:element>
            <xs:element name="Kontragent">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="YurLitso"/>
                <xs:element ref="FizLitso"/>
            </xs:sequence>
            <xs:attribute name="Kod" type="xs:string" use="required"/>
            <xs:attribute name="Naimenovanie" type="xs:string" use="required"/>
            <xs:attribute name="VidKontragenta" type="xs:unsignedByte" use="required"/>
            <xs:attribute name="NaimenovanieSokrashchennoe" type="xs:string" use="optional"/>
            <xs:attribute name="INN" type="xs:string" use="optional"/>
            <xs:attribute name="Gruppa" type="xs:string" use="optional"/>
            <xs:attribute name="KOD_UBP_PAY" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>
    
    </xs:element>
   palsergeich
 
2 - 28.11.18 - 19:12
(1) ИМХО XSD Схема как то не так выглядит
Вот пример реальной XSD Схемы которая в XDTO поместится

<xs:schema xmlns:ns1="http://v8.1c.ru/8.1/data/core"; xmlns:tns="http://v8.1c.ru/agent/scripts/1.0"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://v8.1c.ru/agent/scripts/1.0"; attributeFormDefault="unqualified" elementFormDefault="qualified">
    <xs:import namespace="http://v8.1c.ru/8.1/data/core"/>;

    <xs:complexType name="ClusterAdministrationInfo">
        <xs:sequence>
            <xs:element name="AgentConnectionString" type="xs:string"/>
            <xs:element name="WorkServerUserName" type="xs:string" nillable="true" minOccurs="0"/>
            <xs:element name="WorkServerPassword" type="xs:string" nillable="true" minOccurs="0"/>
            <xs:element name="ClusterPort" type="xs:decimal"/>
            <xs:element name="ClusterUserName" type="xs:string" nillable="true"/>
            <xs:element name="ClusterPassword" type="xs:string" nillable="true"/>
            <xs:element name="IBUserName" type="xs:string" nillable="true"/>
            <xs:element name="IBPassword" type="xs:string" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DesignerBatchParams">
        <xs:sequence>
            <xs:element name="LogFile" type="xs:string"/>
            <xs:element name="ResultFile" type="xs:string"/>
            <xs:element name="StartPath" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="FileStorageAccessParams">
        <xs:sequence>
            <xs:element name="URL" type="xs:string"/>
            <xs:element name="UserName" type="xs:string" nillable="true"/>
            <xs:element name="Password" type="xs:string" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="UpdateFile">
        <xs:sequence>
            <xs:element name="Id" type="ns1:UUID"/>
            <xs:element name="Extension" type="xs:string"/>
            <xs:element name="Version" type="xs:string" nillable="true"/>
            <xs:element name="AddProcFileId" type="ns1:UUID" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
   oyeah
 
3 - 28.11.18 - 19:17
(2) Шапку убрал специально. xsd загружается в 1с но теряется вложенное свойство "Spisok" и все его вложенные атрибуты
   oyeah
 
4 - 28.11.18 - 19:20
<xs:schema xmlns:tns="http://www.test.ru/ar"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://www.test.ru/ar"; attributeFormDefault="unqualified" elementFormDefault="qualified">

    <xs:element name="Root">
          <xs:element name="Spisok">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Kontragent" maxOccurs="unbounded"/>
                <xs:element ref="Dogovor" maxOccurs="unbounded"/>
                <xs:element ref="Nomenklatura" maxOccurs="unbounded"/>
                <xs:element ref="BuhOperatsiya" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Tip" type="xs:string" use="optional"/>
        </xs:complexType>
            </xs:element>
            <xs:element name="Kontragent">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="YurLitso"/>
                <xs:element ref="FizLitso"/>
            </xs:sequence>
            <xs:attribute name="Kod" type="xs:string" use="required"/>
            <xs:attribute name="Naimenovanie" type="xs:string" use="required"/>
            <xs:attribute name="VidKontragenta" type="xs:unsignedByte" use="required"/>
            <xs:attribute name="NaimenovanieSokrashchennoe" type="xs:string" use="optional"/>
            <xs:attribute name="INN" type="xs:string" use="optional"/>
            <xs:attribute name="Gruppa" type="xs:string" use="optional"/>
            <xs:attribute name="KOD_UBP_PAY" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>
    
    </xs:element>
  
        <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
        <xs:enumeration value="Договоры"/>
        <xs:enumeration value="Контрагенты"/>
        </xs:restriction>
       </xs:simpleType>  
</xs:schema>
   oyeah
 
5 - 28.11.18 - 19:21
(4) полное содержание xsd в (4). В 1с xdto после загрузки , выглядит так https://wampi.ru/image/xHsTex
   MaxS
 
6 - 28.11.18 - 19:37
А в конфигураторе набить руками? Самый правильный вариант. Самый долгий.
   palsergeich
 
7 - 28.11.18 - 19:43
(5) Ошибка какая нибудь тупая, попробуй набери небольшую часть в конфигураторе и найди отличие.
Я за последний год мало с XSD дело имел и глаз уже не тот.
   oyeah
 
8 - 28.11.18 - 19:57
(6) могу нащелкать в конфигураторе, выгружаю в xsd, но не могу добиться xsd идентичного содержания как в эталонном. Вот и думаю, либо эталон косячный либо я невьезжаю в xdto. Вот мне непонятно, может ли быть element вложен в element ?
   palsergeich
 
9 - 28.11.18 - 20:02
(8) Там элемент имеет тип, в случае дерева - анонимный, а вот уже в типе идут дальше элементы
   palsergeich
 
10 - 28.11.18 - 20:06
В самом простом случае вложенности https://hkar.ru/WruF
<xs:schema xmlns:tns="http://www.sample-package.org"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://www.sample-package.org"; attributeFormDefault="unqualified" elementFormDefault="qualified">
    <xs:element name="Свойство1">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Свойство1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Свойство1"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
 
 Рекламное место пустует
   d4rkmesa
 
11 - 28.11.18 - 20:10
(0) В крайнем случае, можно забить и xsd загружать в двоичный макет. А в каком редакторе разрабатывали?
   palsergeich
 
12 - 28.11.18 - 20:18
(11) У него нарушена структура дерева XSD
Я чуть чуть изменил и стало лучше

<xs:schema xmlns:tns="http://www.test.ru/ar"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://www.test.ru/ar"; attributeFormDefault="unqualified" elementFormDefault="qualified">

    <xs:element name="Root">
          
        <xs:complexType>
        <xs:element name="Spisok">
            <xs:sequence>
                <xs:element ref="Kontragent" maxOccurs="unbounded"/>
                <xs:element ref="Dogovor" maxOccurs="unbounded"/>
                <xs:element ref="Nomenklatura" maxOccurs="unbounded"/>
                <xs:element ref="BuhOperatsiya" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Tip" type="xs:string" use="optional"/>
            </xs:element>
        </xs:complexType>
            
            <xs:element name="Kontragent">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="YurLitso"/>
                <xs:element ref="FizLitso"/>
            </xs:sequence>
            <xs:attribute name="Kod" type="xs:string" use="required"/>
            <xs:attribute name="Naimenovanie" type="xs:string" use="required"/>
            <xs:attribute name="VidKontragenta" type="xs:unsignedByte" use="required"/>
            <xs:attribute name="NaimenovanieSokrashchennoe" type="xs:string" use="optional"/>
            <xs:attribute name="INN" type="xs:string" use="optional"/>
            <xs:attribute name="Gruppa" type="xs:string" use="optional"/>
            <xs:attribute name="KOD_UBP_PAY" type="xs:string" use="optional"/>
        </xs:complexType>
    </xs:element>
    
    </xs:element>
  
        <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
        <xs:enumeration value="Договоры"/>
        <xs:enumeration value="Контрагенты"/>
        </xs:restriction>
       </xs:simpleType>  
</xs:schema>
   oyeah
 
13 - 28.11.18 - 20:21
(11) этот xsd сторонняя контора разрабатывала. Возможно там косяки. меня смущает element вложенный в element
   palsergeich
 
14 - 28.11.18 - 20:23
(13) Тот XSD который в (4) - не валиден
   palsergeich
 
15 - 28.11.18 - 20:24
http://www.utilities-online.info/xsdvalidation/#.W_7PVmgzaUk вот тут чекни, ему не нравится
   oyeah
 
16 - 28.11.18 - 20:29
(12) спасибо, тоже пришел к такому мнению.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует