|
Помогите победить схему XDTO - не могу разобраться | ☑ | ||
---|---|---|---|---|
0
Джордж1
06.04.21
✎
14:04
|
Есть XML-файл с реализациями
<?xml version="1.0" encoding="WINDOWS-1251"?> -<Данные ВремяВыгрузки="05.04.21 16:44" Дата2="2021-03-31" Дата1="2021-03-01" ОрганизацияИНН=""> -<Реализации> -<Реализация ОрганизацияИНН="" СуммаВсего="150338.5" ПокупательИНН="" ОрганизацияПлательщикНДС="1" ЧистыйНомер="69" Номер="Ш000000069" Дата="2021-03-01"> <СтрокаТЧ СуммаСНДС="150338.5" СуммаБезНДС="125282.08" ЦенаСНДС="5050" ЦенаБезНДС="4208.33" Количество="29.77" ТоварНаименование="Товар"/> </Реализация> Загружаю в 8-ке через Схему XDTO СтрокаXSD = "<xs:schema xmlns:tns=""http://localhost/testXML"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" targetNamespace=""http://localhost/testXML"" attributeFormDefault=""unqualified"" elementFormDefault=""qualified""> |<xs:complexType name=""Данные""> | <xs:attribute name=""ОрганизацияИНН"" type=""xs:string""/> | <xs:attribute name=""Дата1"" type=""xs:date""/> | <xs:attribute name=""Дата2"" type=""xs:date""/> | <xs:attribute name=""ВремяВыгрузки"" type=""xs:string""/> | <xs:sequence> | <xs:element name=""Реализации"" type=""tns:Реализации"" maxOccurs=""unbounded""/> | </xs:sequence> |</xs:complexType> |<xs:complexType name=""Реализации""> | <xs:sequence> | <xs:element name=""Реализация"" type=""tns:Реализация"" maxOccurs=""unbounded""/> | </xs:sequence> |</xs:complexType> |<xs:complexType name=""Реализация""> | <xs:attribute name=""Дата"" type=""xs:date""/> | <xs:attribute name=""Номер"" type=""xs:string""/> | <xs:attribute name=""ЧистыйНомер"" type=""xs:integer""/> | <xs:attribute name=""ОрганизацияИНН"" type=""xs:string""/> | <xs:attribute name=""ОрганизацияПлательщикНДС"" type=""xs:boolean""/> | <xs:attribute name=""ПокупательИНН"" type=""xs:string""/> | <xs:attribute name=""СуммаВсего"" type=""xs:decimal""/> | <xs:sequence> | <xs:element name=""СтрокаТЧ"" type=""tns:СтрокаТЧ"" maxOccurs=""unbounded""/> | </xs:sequence> |</xs:complexType> |<xs:complexType name=""СтрокаТЧ""> | <xs:attribute name=""ТоварНаименование"" type=""xs:string""/> | <xs:attribute name=""Количество"" type=""xs:decimal""/> | <xs:attribute name=""ЦенаБезНДС"" type=""xs:decimal""/> | <xs:attribute name=""ЦенаСНДС"" type=""xs:decimal""/> | <xs:attribute name=""СуммаБезНДС"" type=""xs:decimal""/> | <xs:attribute name=""СуммаСНДС"" type=""xs:decimal""/> |</xs:complexType> |</xs:schema>" ; Получаю ошибку {ВнешняяОбработка.ЗагрузкаДок2021.Форма.Форма.Форма(96)}: Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка преобразования данных XDTO: Чтение объекта типа: {http://localhost/testXML}Данные - [2,128] Проверка дополнительного свойства: форма: Элемент имя: Реализации: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://localhost/testXML}Данные |
|||
1
RomaH
naïve
06.04.21
✎
14:15
|
Данные - [2,128] что там?
|
|||
2
Джордж1
06.04.21
✎
14:17
|
(1) - как раз между тегами
<Реализации> -<Реализация |
|||
3
Джордж1
06.04.21
✎
14:19
|
XML VAlidator сообщает
Content Is Not Allowed In Prolog. |
|||
4
RomaH
naïve
06.04.21
✎
14:25
|
sequence - если не ошибаюсь должна соблюдаться последовательность
ТоварНаименование - перед Количество а у тебя задом на перед |
|||
5
RomaH
naïve
06.04.21
✎
14:26
|
choice
|
|||
6
Джордж1
06.04.21
✎
14:30
|
(4)я так понимаю это только для элементов
А задом наперед - это так из IE - перестраивает. В самом файле все ОК |
|||
7
RomaH
naïve
06.04.21
✎
14:31
|
(6) ну так ты тогда дай файлы нормальные
схему и данные посмотреть |
|||
8
Джордж1
06.04.21
✎
14:33
|
(6)Чет не хватает у меня толку - как из 1с xml с форматированием выгрузить?
|
|||
9
RomaH
naïve
06.04.21
✎
14:35
|
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, КорневойРаздел); ТекстВыгрузки = ЗаписьXML.Закрыть(); |
|||
10
Джордж1
06.04.21
✎
14:42
|
<?xml version="1.0" encoding="UTF-8"?>
<Данные xmlns="http://localhost/testXML" ОрганизацияИНН="...." Дата1="2021-03-01" Дата2="2021-03-31" ВремяВыгрузки="05.04.21 16:44"> <Реализации> <Реализация Дата="2021-03-01" Номер="Ш000000069" ЧистыйНомер="69" ОрганизацияИНН="......" ОрганизацияПлательщикНДС="1" ПокупательИНН="" СуммаВсего="150338.5"> <СтрокаТЧ ТоварНаименование="Портландцемент ЦЕМ I 42,5Н ГОСТ 31108-2016" Количество="29.77" ЦенаБезНДС="4208.33" ЦенаСНДС="5050" СуммаБезНДС="125282.08" СуммаСНДС="150338.5" /> </Реализация> |
|||
11
Джордж1
06.04.21
✎
14:43
|
Вот начало файла xml
|
|||
12
Джордж1
06.04.21
✎
14:57
|
Данных у меня немного.
Подошел бы самый простой вариант - как в 7-ке Сотрудники=Данные.ВыбратьУзел("Сотрудники"); Выборка=Сотрудники.ВыбратьУзлы("Сотрудник"); НачатьТранзакцию(); Для к=0 По Выборка.КоличествоУзлов()-1 Цикл Сотрудник=Выборка.ПолучитьУзел(к); |
|||
13
arsik
гуру
06.04.21
✎
15:09
|
(0) Мне кажется, минимальное количество должно быть 0
https://i.imgur.com/NQDXkez.png |
|||
14
arsik
гуру
06.04.21
✎
15:10
|
Ну и в данных у тебя нет реализаций.
|
|||
15
arsik
гуру
06.04.21
✎
15:11
|
А в "Реализация" нет строк ТЧ
|
|||
16
Джордж1
06.04.21
✎
15:13
|
(13)Я брал пример с инете MinOccur - он не обязательно
(14,15) Так у меня Данные - Реализации - Реализация - СтрокаТЧ |
|||
17
arsik
гуру
06.04.21
✎
15:14
|
Вот так нужно наверно
|
|||
18
Джордж1
06.04.21
✎
15:16
|
(17)спасибо, но я делаю на базе существующей обработки
<xs:element name=""СтрокаТаблицы"" type=""tns:СтрокаТаблицы"" maxOccurs=""unbounded""/> minOccurs - Не обязательно |
|||
19
arsik
гуру
06.04.21
✎
15:17
|
Вот так красивее
https://pastebin.com/print/hAyzwbdk |
|||
20
Джордж1
06.04.21
✎
15:21
|
(10)ДА уж все, решил обойтись без схемы
|
|||
21
arsik
гуру
06.04.21
✎
15:21
|
(18) Так у тебя схема кривая, и так видно. В схеме нет соответствий. Как у Данных появились подчиненные реализации?
|
|||
22
Джордж1
06.04.21
✎
15:21
|
||||
23
Джордж1
06.04.21
✎
15:22
|
(21)
<xs:complexType name="Данные"> <xs:sequence> <xs:element name="Реализации" type="tns:Реализации" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="ОрганизацияИНН" type="xs:string"/> <xs:attribute name="Дата1" type="xs:date"/> <xs:attribute name="Дата2" type="xs:date"/> <xs:attribute name="ВремяВыгрузки" type="xs:string"/> </xs:complexType> Со 2-й по третью строку - это не оно разве? |
|||
24
arsik
гуру
06.04.21
✎
15:27
|
(23) Криво что то. Вот так оно в 1С импортируется
https://i.imgur.com/swLC1fD.png |
|||
25
Джордж1
06.04.21
✎
15:31
|
(24)А что криво-то ? то что нет иерархии?
Так ее и не должно быть А типы объектов - ты в свойствах увидишь А где это такая обработка в 8-ке? |
|||
26
arsik
гуру
06.04.21
✎
15:32
|
(25) Тебе должно быть стыдно за такие слова
https://i.imgur.com/IyHCS8E.png |
|||
27
Cthulhu
06.04.21
✎
15:32
|
у тебя там </Реализации> дальше есть?
|
|||
28
arsik
гуру
06.04.21
✎
15:33
|
(25) как не должно быть иерархии? В (10) что не иерархия?
|
|||
29
Джордж1
06.04.21
✎
15:35
|
(26)Да я все на 7-ке сижу.
(27)конечно в (0) посте (26)это сам xml файл, а ты схему XDTO показываешь |
|||
30
arsik
гуру
06.04.21
✎
15:36
|
Ну так XML читается по схеме XDTO и они должны соответствовать
|
|||
31
Джордж1
06.04.21
✎
15:38
|
(30)Должны, но не в плане иерархии - т.е. все ComplexType можно определить просто в списке. А по факту они друг на друга будет ссылатся
|
|||
32
arsik
гуру
06.04.21
✎
15:45
|
(31) Каким образом они будут ссылаться, если нет связи.
|
|||
33
Джордж1
06.04.21
✎
15:46
|
(32)ну как же нет.
<xs:element name="Реализации" type="tns:Реализации" А это что - type="tns:Реализации" |
|||
34
arsik
гуру
06.04.21
✎
15:50
|
Вот в твоем примере с инфостарта, то же самое дерево
https://i.imgur.com/ichaBeh.png (33) "tns:Реализации" - это тип, он указывает, что в элементах "Реализации" лежат объекты с типом "Реализации" |
|||
35
Джордж1
06.04.21
✎
15:52
|
(34)Еще раз у меня вот такое дерево и Реализация <> Реализации
Данные Реализации Реализация 1 Реализация 2 Реализация 3 |
|||
36
arsik
гуру
06.04.21
✎
15:55
|
Все, я понял в чем ошибка.
Вот так попробуй, и сравни со своим https://pastebin.com/raw/j6V4tN5N Там важен порядок. |
|||
37
arsik
гуру
06.04.21
✎
15:56
|
+ (36) xs:sequence должны располагаться выше атрибутов.
|
|||
38
Джордж1
06.04.21
✎
15:58
|
(36)А вот в примере с инфостарта порядка нет
(37)это уже понял |
|||
39
Джордж1
06.04.21
✎
15:59
|
(36)ничего не поменялось
|
|||
40
Джордж1
06.04.21
✎
16:00
|
Я вот здесь еще проверяю
https://www.liquid-technologies.com/online-xsd-validator и там ошибка cvc-elt.1.a: Cannot find the declaration of element 'Данные'. |
|||
41
arsik
гуру
06.04.21
✎
16:04
|
(40) А вот так?
https://pastebin.com/raw/Hc4SpRS7 |
|||
42
Джордж1
06.04.21
✎
16:06
|
(41)ничего не меняется
|
|||
43
arsik
гуру
06.04.21
✎
16:35
|
(40) Да фигня этот парсер не работает он, точнее с данными 1С и схемами не работает
|
|||
44
Cthulhu
06.04.21
✎
18:08
|
(29); вы говорите неправду. в (0) посту нету </Реализации> - в (0) посту есть </Реализация>
|
|||
45
Джордж1
06.04.21
✎
19:13
|
(44) это просто кусок файла с одной записью и без закрывающего тега. </Данные> там тоже нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |