Проверка валидности xml схеме xsd
Прошу подсказать.
Есть схема xml, которая встроена в конфигурацию в XDTO пакет. По этому пакету формирую xml файл с данными.
По окончанию проверяю соответствие созданного xml файла схема. Валидацию файл не проходит.
При поиске ответа на вопрос "почему не проходит?", пришел к выводу что дело в заголовочном теге.
1С формирует его так(на это ни как не повлиять).
<B2BDATAType xmlns="http://metelica.ru/Orders" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
если привести эту строку (вручную) к виду:
<B2BDATAType xmlns="http://metelica.ru/Orders">
то файл проверку проходит.
Помогите понять что не так(схему и файл выгрузки прикрепил).
Спасибо.
Есть схема xml, которая встроена в конфигурацию в XDTO пакет. По этому пакету формирую xml файл с данными.
По окончанию проверяю соответствие созданного xml файла схема. Валидацию файл не проходит.
При поиске ответа на вопрос "почему не проходит?", пришел к выводу что дело в заголовочном теге.
1С формирует его так(на это ни как не повлиять).
<B2BDATAType xmlns="http://metelica.ru/Orders" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
если привести эту строку (вручную) к виду:
<B2BDATAType xmlns="http://metelica.ru/Orders">
то файл проверку проходит.
Помогите понять что не так(схему и файл выгрузки прикрепил).
Спасибо.
Прикрепленные файлы:
Orders_schema.xsd
Тест_заказы3.xml
По теме из базы знаний
- Как создать в 7.7 XML, проверить по схемам (XSD, XML) от заказчика и отправить на вебсервер методом Post
- Веб-сервисы в 1С8, обработка тестирования произвольного веб-сервиса
- Алкогольные декларации ф 11 и 12 (4.30) для ТИС 9.2
- Декларация по алкоголю (Ф11 и 12) для УТ 10.3
- Прокси soap-сервер. Когда 1С не может в SOAP
Найденные решения
<xs:schema xmlns:tns="http://metelica.ru/Orders" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://metelica.ru/Orders" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="B2BDATAType" type = "tns:B2BDATAType"/>
<xs:complexType name="B2BDATAType">
<xs:sequence>
<xs:element name="Message" type="xs:dateTime"/>
<xs:element name="Orders" type="tns:Orders" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Orders">
<xs:sequence>
<xs:element name="Order" type="tns:Order" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Order">
<xs:sequence>
<xs:element name="Number" type="xs:string"/>
<xs:element name="DateTime" type="xs:dateTime"/>
<xs:element name="ClientCode" type="xs:string"/>
<xs:element name="Outlet" type="tns:OutletInfo"/>
<xs:element name="DeliveryDate" type="xs:dateTime"/>
<xs:element name="Positions" type="tns:Positions" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="OutletInfo">
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
</xs:sequence>
<xs:attribute name="INN" type="xs:string"/>
<xs:attribute name="KPP" type="xs:string"/>
</xs:complexType>
<xs:complexType name="Positions">
<xs:sequence>
<xs:element name="Position" type="tns:Position" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Position">
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
<xs:element name="Quantity" type="xs:short"/>
<xs:element name="Price" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
ПоказатьВот вам текст схемы.
По этой схеме файл из(0) валидируется нормально. и парсится фабрикой xdto
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
У тебя Валидация не проходит потому что у тебя типы описаны, а элементов нет.
Соответственно добавив в xsd вот это:
<xs:element name="B2BDATAType" type = "tns:B2BDATAType"/>
Ты получишь то, что твой xml валидный
в то же время при валидации получаешь сообщение:
cvc-elt.1.a: Cannot find the declaration of element 'B2BDATAType'.
Что конкретно говорит, что в схеме нет описание для свойства b2bdatatype
Соответственно добавив в xsd вот это:
<xs:element name="B2BDATAType" type = "tns:B2BDATAType"/>
Ты получишь то, что твой xml валидный
в то же время при валидации получаешь сообщение:
cvc-elt.1.a: Cannot find the declaration of element 'B2BDATAType'.
Что конкретно говорит, что в схеме нет описание для свойства b2bdatatype
(3) Описание элемента я убрал из-за ошибки.
Документ НЕ соответствует схеме!
Подробности: Element '{http://metelica.ru/Orders }B2BDATAType': No matching global declaration available for the validation root.
SystemId:file://D:/Тест_заказы3.xml
Это нормально?
Мне нужно что бы файл был по схеме. В противном случае его не будут обрабатывать.
Документ НЕ соответствует схеме!
Подробности: Element '{
SystemId:
Это нормально?
Мне нужно что бы файл был по схеме. В противном случае его не будут обрабатывать.
<xs:schema xmlns:tns="http://metelica.ru/Orders" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://metelica.ru/Orders" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="B2BDATAType" type = "tns:B2BDATAType"/>
<xs:complexType name="B2BDATAType">
<xs:sequence>
<xs:element name="Message" type="xs:dateTime"/>
<xs:element name="Orders" type="tns:Orders" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Orders">
<xs:sequence>
<xs:element name="Order" type="tns:Order" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Order">
<xs:sequence>
<xs:element name="Number" type="xs:string"/>
<xs:element name="DateTime" type="xs:dateTime"/>
<xs:element name="ClientCode" type="xs:string"/>
<xs:element name="Outlet" type="tns:OutletInfo"/>
<xs:element name="DeliveryDate" type="xs:dateTime"/>
<xs:element name="Positions" type="tns:Positions" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="OutletInfo">
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
</xs:sequence>
<xs:attribute name="INN" type="xs:string"/>
<xs:attribute name="KPP" type="xs:string"/>
</xs:complexType>
<xs:complexType name="Positions">
<xs:sequence>
<xs:element name="Position" type="tns:Position" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Position">
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
<xs:element name="Quantity" type="xs:short"/>
<xs:element name="Price" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
ПоказатьВот вам текст схемы.
По этой схеме файл из(0) валидируется нормально. и парсится фабрикой xdto
Вот на коленке накидал обработку... поможет вам прочитать ваш xml.
По схеме из (6) все срабатывает
По схеме из (6) все срабатывает
Прикрепленные файлы:
ВнешняяОбработка2.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот