|
xml и xsd | ☑ | ||
---|---|---|---|---|
0
fatal_error
23.12.14
✎
13:41
|
Добрый день. Есть xml файл:
<?xml version="1.0" encoding="UTF-8"?> <doc> <items> <i> <tariff>Аст</tariff> <article>ФФ-01789-002</article> <exp_date>01.03.2015</exp_date> <price>7000</price> </i> <i> <tariff>Аст</tariff> <article>ФФ-01789-002</article> <exp_date>01.02.2015</exp_date> <price>2000</price> </i> <i> <tariff>Апт 5ШП</tariff> <article>ФФ-01789-002</article> <exp_date>01.03.2015</exp_date> <price>5000</price> </i> <i> <tariff>Апт 5ШП</tariff> <article>ФФ-01789-002</article> <exp_date>01.01.2015</exp_date> <price>1000</price> </i> </items> </doc> сделал по нему схему: <?xml version="1.0" encoding="UTF-8"?> <xsd:schema attributeFormDefault="unqualified" targetNamespace="http://localhost/load/exp/date/price" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- XML Schema Generated from XML Document on Tue Dec 23 2014 16:04:25 GMT+0600 (Центральная Азия (зима)) --> <!-- with XmlGrid.net Free Online Service http://xmlgrid.net --> <xsd:element name="doc"> <xsd:complexType> <xsd:sequence> <xsd:element name="items"> <xsd:complexType> <xsd:sequence maxOccurs="unbounded"> <xsd:element name="i"> <xsd:complexType> <xsd:sequence> <xsd:element name="tariff" type="xsd:string"></xsd:element> <xsd:element name="article" type="xsd:string"></xsd:element> <xsd:element name="exp_date" type="xsd:string"></xsd:element> <xsd:element name="price" type="xsd:int"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> при выполнении кода: Попытка Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(СтрокаXml); Фабрика = СоздатьФабрикуXDTO("d:\doc.xsd"); Пакет_load_exp_date_price = Фабрика.Пакеты.Получить("http://localhost/load/exp/date/price"); СвойствоDoc = Пакет_load_exp_date_price.КорневыеСвойства.Получить("doc"); ТипDoc = СвойствоDoc.Тип; doc = Фабрика.ПрочитатьXML(Чтение, ТипDoc); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; выпадает ошибка: Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка преобразования данных XDTO: Чтение объекта типа: - [13,30] Проверка дополнительного свойства: форма: Элемент имя: items: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: |
|||
1
fatal_error
23.12.14
✎
13:42
|
ругается на строке
doc = Фабрика.ПрочитатьXML(Чтение, ТипDoc); |
|||
2
fatal_error
23.12.14
✎
13:43
|
Что нужно поправить в схеме?
|
|||
3
Fragster
гуру
23.12.14
✎
13:50
|
ТипDoc = Фабрика.Тип("","doc");
|
|||
4
Fragster
гуру
23.12.14
✎
13:51
|
вообще без нэймспейса может и не взлететь, хз
|
|||
5
Записьдампа
23.12.14
✎
13:57
|
Схема описывает элемент с именем "doc" в пространстве имен "http://localhost/load/exp/date/price". XML содержит данные с именем "doc" в хрензнаеткаком пространстве имен. Я бы тоже ругался...
|
|||
6
Fragster
гуру
23.12.14
✎
13:58
|
<xs:schema xmlns:tns="http://localhost/load/exp/date/price" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost/load/exp/date/price" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="doc" type="tns:doc"/> <xs:complexType name="doc"> ..... |
|||
7
Fragster
гуру
23.12.14
✎
13:59
|
и в (3) - ТипDoc = Фабрика.Тип("http://localhost/load/exp/date/price","doc");
|
|||
8
Fragster
гуру
23.12.14
✎
14:04
|
(5) вопрос в том, почему ругается не на первую строку, а на [13,30]
|
|||
9
Записьдампа
23.12.14
✎
14:28
|
(6) (7) Ничего не имею против. Это прекрасная схема, описывающая великолепную структуру данных в пространстве имен "http://localhost/load/exp/date/price". Из нее можно получать чудесные типы.
Вот только XML, который (0) пытается прочесть, ничего про эту офигенскую схему не знает, потому что использует пустое пространство имен. Поэтому тип, получаемый как Фабрика.Тип("http://localhost/load/exp/date/price") неприменим к этому XML. Укажи в XML <doc xmlns=""http://localhost/load/exp/date/price""> и возрадуйся. |
|||
10
Fragster
гуру
23.12.14
✎
14:30
|
(9)->(8)
|
|||
11
Fragster
гуру
23.12.14
✎
14:31
|
в (0) походу не вся XML
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |