Имя: Пароль:
1C
 
Работ XDTO файлом
0 alekosansey
 
03.04.20
13:37
Добрый день получил задачу прочитать файл xsd и на основание его создать xml файл.

    ФормаXDTO = СоздатьФабрикуXDTO("C:\Users\user\Downloads\Шаблоны XML+XSD+КАТО\SRC_Contract_KZ_Pawnshop_v5.xsd");
        XDTOобъект= ФормаXDTO.Тип("http://www.w3.org/2001/XMLSchema","ComplexType";); //
как узнать здесь второй параметр в самом теле xsd чтобы подставить так как если выбираю наугад то не получаю XDTOобъект?
1 alekosansey
 
03.04.20
13:40
Между каких тегов оно находиться?
2 Cyberhawk
 
03.04.20
13:57
У фабрики есть коллекция типов
3 d4rkmesa
 
03.04.20
13:57
(0) А не проще XDTOобъект=ФормаXDTO.Пакеты.Получить(URIПространстваИмен)? Или там пространство имен в xsd не указано?
4 alekosansey
 
03.04.20
13:58
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema">;
    <xs:complexType name="valueType">
        <xs:sequence>
            <xs:element name="ValueTypeId" type="xs:int"/>
            <xs:element name="Value">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="500"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="LanguageCode">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="5"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EntityAddressType">
        <xs:sequence>
            <xs:element name="AddressTypeId" type="xs:int"/>
            <xs:element name="StreetNumber" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="10"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="PostBox" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="LocationId" type="xs:int"/>
            <xs:element name="PostalCodeId" type="xs:int" minOccurs="0"/>
            <xs:element name="AddressData" type="valueType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="DateType">
        <xs:restriction base="xs:date">
            <xs:maxInclusive value="2098-01-01"/>
            <xs:minInclusive value="1900-01-01"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="empty-DateType">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:length value="0"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
                <xs:restriction base="DateType"/>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:complexType name="TextType">
        <xs:simpleContent>
            <xs:extension base="non-empty-string">
                <xs:attribute name="language" type="non-empty-string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="TrimmedTextType">
        <xs:simpleContent>
            <xs:extension base="non-empty-token">
                <xs:attribute name="language" type="non-empty-string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="empty-TextType">
        <xs:simpleContent>
            <xs:extension base="empty-token">
                <xs:attribute name="language" type="empty-string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="IdentificationType">
        <xs:sequence>
            <xs:element name="Number" type="xs:token" nillable="true" minOccurs="0"/>
            <xs:element name="IssueDate" type="DateType" minOccurs="0"/>
            <xs:element name="DocumentTypeText" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="250"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="typeId" type="xs:int" use="required"/>
        <xs:attribute name="rank" type="xs:int" use="required"/>
    </xs:complexType>
    <xs:complexType name="AddressType">
        <xs:sequence>
            <xs:element name="StreetName" nillable="true">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Text" type="empty-TextType" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="StreetNumber" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="non-empty-string">
                        <xs:maxLength value="10"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="AdditionalInformation" type="non-empty-string" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="typeId" type="xs:int" use="required"/>
        <xs:attribute name="locationId" type="xs:int" use="optional"/>
        <xs:attribute name="katoId" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="CommunicationType">
        <xs:simpleContent>
            <xs:extension base="non-empty-string">
                <xs:attribute name="typeId" type="xs:int" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="non-empty-string">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="non-empty-boolean">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>
    <xs:simpleType name="empty-string">
        <xs:restriction base="xs:string">
            <xs:minLength value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="non-empty-token">
        <xs:restriction base="xs:token">
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="empty-token">
        <xs:restriction base="xs:token">
            <xs:minLength value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeIdCurrency">
        <xs:restriction base="xs:int">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="4"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeCurrencyCode">
        <xs:restriction base="xs:string">
            <xs:length value="3"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="myDecimal_18_2">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="14"/>
            <xs:fractionDigits value="2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="empty-decimal">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:length value="0"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
                <xs:restriction base="xs:decimal">
                    <xs:totalDigits value="14"/>
                    <xs:fractionDigits value="2"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:simpleType name="empty-int">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:length value="0"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
                <xs:restriction base="xs:int"/>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:simpleType name="empty-date">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:length value="0"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
                <xs:restriction base="xs:date">
                    <xs:maxInclusive value="2098-01-01"/>
                    <xs:minInclusive value="1900-01-01"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:simpleType name="empty-double">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:length value="0"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
                <xs:restriction base="xs:double"/>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    <xs:complexType name="SubjectType">
        <xs:sequence>
            <xs:element name="Entity">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="Individual">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="FirstName">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Text" type="empty-TextType" minOccurs="0" maxOccurs="unbounded"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Surname">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Text" type="empty-TextType" minOccurs="0" maxOccurs="unbounded"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="FathersName" minOccurs="0">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Text" type="TrimmedTextType" maxOccurs="unbounded"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="DateOfBirth" type="empty-date" minOccurs="0"/>
                                    <xs:element name="Gender" minOccurs="0">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:length value="1"/>
                                                <xs:enumeration value="M"/>
                                                <xs:enumeration value="F"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Residency" minOccurs="0">
                                        <xs:complexType>
                                            <xs:simpleContent>
                                                <xs:extension base="xs:string">
                                                    <xs:attribute name="id" type="xs:int" use="required"/>
                                                </xs:extension>
                                            </xs:simpleContent>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Citizenship" minOccurs="0">
                                        <xs:complexType>
                                            <xs:simpleContent>
                                                <xs:extension base="xs:string">
                                                    <xs:attribute name="id" type="non-empty-string" use="required"/>
                                                </xs:extension>
                                            </xs:simpleContent>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Identifications">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Identification" type="IdentificationType" minOccurs="0" maxOccurs="unbounded"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Addresses">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Address" maxOccurs="unbounded">
                                                    <xs:complexType>
                                                        <xs:complexContent>
                                                            <xs:extension base="AddressType"/>
                                                        </xs:complexContent>
                                                    </xs:complexType>
                                                </xs:element>
                                                <xs:element name="StreetNumber" minOccurs="0">
                                                    <xs:simpleType>
                                                        <xs:restriction base="non-empty-string">
                                                            <xs:maxLength value="10"/>
                                                        </xs:restriction>
                                                    </xs:simpleType>
                                                </xs:element>
                                                <xs:element name="PostBox" type="non-empty-string" minOccurs="0"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Communications">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Communication" type="CommunicationType" maxOccurs="unbounded"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="roleId" type="xs:unsignedByte" use="required"/>
    </xs:complexType>
</xs:schema>
5 d4rkmesa
 
03.04.20
14:02
(4) Ну тогда, второй параметр - локальное имя. К примеру, "valueType".
6 d4rkmesa
 
03.04.20
14:03
Тег name="valueType", к примеру.
7 alekosansey
 
03.04.20
14:05
Ни чего не возвращает если я к нему обращаюсь
8 alekosansey
 
03.04.20
14:06
ФормаXDTO = СоздатьФабрикуXDTO("C:\Users\user\Downloads\Шаблоны XML+XSD+КАТО\SRC_Contract_KZ_Pawnshop_v5.xsd");
    Схема = ФормаXDTO.Тип("http://www.w3.org/2001/XMLSchema","valueType";);    

пишет тип неопределено
9 d4rkmesa
 
03.04.20
14:07
XDTOобъект какого типа, Неопределено?
10 alekosansey
 
03.04.20
14:09
Да XDTOобъект типа Неопределено
11 acht
 
03.04.20
14:10
(0) Перебрать все из ФабрикаXDTO.Пакеты, внутри каждого пакета перебрать содержимое. Там будут распознанные типы значенией и типы объектов.

Полностью решать за тебя твое "получил задачу" никто не будет.
12 alekosansey
 
03.04.20
14:11
Мне хотя бы пример
13 acht
 
03.04.20
14:13
(12) Перебирай пакеты, смотри у них пространства имен и имена типов. Без базовой подготовки и понимания что это такое, у тебя ничего не получится. Примеры гуглятся на том же инфостарте
14 alekosansey
 
03.04.20
14:14
Все понял ок. Спасибо
15 alekosansey
 
03.04.20
14:18
Единство что странно это что Пакетов всего 1 и если Дебагом посмотреть что там. То там нету тех тегов которые я ожидаю увидеть Например Adress и т.д.
16 alekosansey
 
03.04.20
14:18
Как будто это пустой xml
17 d4rkmesa
 
03.04.20
14:21
(16) XDTOобъект= ФормаXDTO.Тип("http://www.w3.org/2001/XMLSchema","ComplexType";);

Конкретно в этом, скорее всего, проблема с регистром.
18 d4rkmesa
 
03.04.20
14:22
(17) "complexType" если указать, работает
19 d4rkmesa
 
03.04.20
14:25
В общем, через отладчик смотреть коллекцию типов, как написал товарищ в (13) . Ориентироваться можно на XML, который приложен как пример.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.