|   |   | 
| 
 | v7: Чтение файла схемы XSD | ☑ | ||
|---|---|---|---|---|
| 0
    
        Altanzar 24.12.19✎ 19:15 | 
        Добрый вечер, суть такова. 
 По причине грядущей повальной маркировки появилась необходимость вкатиться в XSD. Имеется файл со схемой, которая выглядит вот так: <xs:schema elementFormDefault="qualified"> <xs:include schemaLocation="LP_base_types_v2.xsd"/> <xs:element name="acceptance" type="acceptance"/> <xs:complexType name="acceptance"> <xs:annotation> <xs:documentation>Приемка</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="shipment_id" type="guid_type"> <xs:annotation> <xs:documentation>Номер документа отгрузки</xs:documentation> </xs:annotation> </xs:element> <xs:element name="trade_participant_inn_sender" type="inn_type"> <xs:annotation> <xs:documentation>ИНН отправителя</xs:documentation> </xs:annotation> </xs:element> <xs:element name="trade_participant_inn_receiver" type="inn_type"> <xs:annotation> <xs:documentation>ИНН получателя</xs:documentation> </xs:annotation> </xs:element> <xs:element name="trade_participant_inn_owner" type="inn_type" minOccurs="0"> <xs:annotation> <xs:documentation>ИНН собственника</xs:documentation> </xs:annotation> </xs:element> <xs:element name="shipment_date" type="datetimeoffset_type"> <xs:annotation> <xs:documentation>Дата и время отгрузки</xs:documentation> </xs:annotation> </xs:element> <xs:element name="reception_date" type="datetimeoffset_type"> <xs:annotation> <xs:documentation>Дата и время приемки</xs:documentation> </xs:annotation> </xs:element> <xs:element name="transfer_date" type="date_type"> <xs:annotation> <xs:documentation>Дата отгрузки</xs:documentation> </xs:annotation> </xs:element> <xs:element name="move_document_number" type="string255_type"> <xs:annotation> <xs:documentation>Номер первичного документа</xs:documentation> </xs:annotation> </xs:element> <xs:element name="move_document_date" type="date_type"> <xs:annotation> <xs:documentation>Дата первичного документа</xs:documentation> </xs:annotation> </xs:element> <xs:element name="turnover_type" type="turnover_enum_type" minOccurs="0"> <xs:annotation> <xs:documentation>Вид оборота товара</xs:documentation> </xs:annotation> </xs:element> <xs:element name="release_method" type="release_method_type" minOccurs="0"> <xs:annotation> <xs:documentation>Способ ввода товаров в оборот</xs:documentation> </xs:annotation> </xs:element> <xs:element name="products_list"> <xs:annotation> <xs:documentation>Параметры товаров</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="product" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Параметры товара</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ki" minOccurs="0" type="kit_type"> <xs:annotation> <xs:documentation>КИ</xs:documentation> </xs:annotation> </xs:element> <xs:element name="kitu" minOccurs="0" type="kitu_type"> <xs:annotation> <xs:documentation>КИТУ</xs:documentation> </xs:annotation> </xs:element> <xs:element name="accept_type" type="xs:boolean"> <xs:annotation> <xs:documentation>Товар принят</xs:documentation> </xs:annotation> </xs:element> <xs:element name="cost" minOccurs="0" type="price_type"> <xs:annotation> <xs:documentation>Цена за единицу</xs:documentation> </xs:annotation> </xs:element> <xs:element name="vat_value" minOccurs="0" type="price_type"> <xs:annotation> <xs:documentation>Сумма НДС</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="action_id" type="xs:int" use="required" fixed="11"/> <xs:attribute name="version" type="xs:decimal" use="required" fixed="5"/> </xs:complexType> </xs:schema> Я создаю фабрику методом СоздатьФабрикуXDTO(ИмяФайлаСхемы), однако непонятно, как получить тип "acceptance" и прочие - пространство имен не объявлено. | |||
| 1
    
        Fragster гуру 24.12.19✎ 19:21 | 
        это точно v7?     | |||
| 2
    
        Fragster гуру 24.12.19✎ 19:21 | 
        а вообще там же написано: еще смотри в LP_base_types_v2.xsd     | |||
| 3
    
        Fragster гуру 24.12.19✎ 19:21 | 
        нужно все нужные файлики положить рядом и создать фабрику из массива файлов     | |||
| 4
    
        Altanzar 24.12.19✎ 19:26 | 
        Fragster
 С v7 каюсь, промазал. За подсказку с массивом спасибо, но в LP_base_types_v2.xsd пространство имен тоже не объявлено. Оно начинается так: <xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:simpleType name="IPv4Address_type"> <xs:annotation> <xs:documentation>IPv4. Запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. </xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:pattern value="((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"/> </xs:restriction> </xs:simpleType> И дальше только объявление типов, и все. | |||
| 5
    
        Fragster гуру 24.12.19✎ 19:29 | 
        ну тогда остается только предварительно самому добавить нужные (вероятно xmlns:xs="http://www.w3.org/2001/XMLSchema" )     | |||
| 6
    
        Fragster гуру 24.12.19✎ 19:30 | 
        прям в файл перед засовыванием в фабрику     | |||
| 7
    
        Fragster гуру 24.12.19✎ 19:31 | 
        ну и xmlns="что-то твое", что потом вырезать из получившегося файла :)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |