|
Как сделать пакет XDTO со Списком XDTO с разнородными элементами ? | ☑ | ||
---|---|---|---|---|
0
Fragster
гуру
14.04.15
✎
18:39
|
Для такой схемы:
+ Code <?xml version = "1.0" encoding = "utf-8"?> <xs:schema xmlns="test" targetNamespace="test" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="seq"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:choice> <xs:element name="elem1"/> <xs:element name="elem2"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:element name="root" type="seq"/> </xs:schema> Валидный файл <?xml version = "1.0" encoding = "utf-8"?> <root xmlns="test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <elem2></elem2> <elem1></elem1> <elem1></elem1> <elem1></elem1> <elem2></elem2> <elem2></elem2> </root> Однако эта схема не импортируется в 1с (получаем пустой пакет). Вопрос: как мне накликать пакетXDTO, чтобы можно было создавать и проверять подобные XML? |
|||
1
Serginio1
14.04.15
✎
19:00
|
http://www.freeformatter.com/xsd-generator.html
выдает ошибку |
|||
2
Лодырь
14.04.15
✎
19:08
|
закладка
|
|||
3
Fragster
гуру
14.04.15
✎
19:32
|
(1) там немного побилось, вот: http://pastebin.com/mRY5jgmc
выдает именно такой XSD (ну, +-, в (0) правильнее) |
|||
4
Fragster
гуру
14.04.15
✎
19:43
|
вот при такой картинке http://snag.gy/sy6P0.jpg
вот такой код работает Тип = ФабрикаXDTO.Тип("test", "seq"); Корень = ФабрикаXDTO.Создать(Тип); Тип1 = ФабрикаXDTO.Тип("test", "elem1"); Тип2 = ФабрикаXDTO.Тип("test", "elem2"); Корень.elem2.Добавить(ФабрикаXDTO.Создать(Тип2)); Корень.elem2.Добавить(ФабрикаXDTO.Создать(Тип2)); Корень.elem1.Добавить(ФабрикаXDTO.Создать(Тип1)); Корень.elem1.Добавить(ФабрикаXDTO.Создать(Тип1)); Корень.elem2.Добавить(ФабрикаXDTO.Создать(Тип2)); Корень.elem1.Добавить(ФабрикаXDTO.Создать(Тип1)); Запись = Новый ЗаписьXML; Запись.УстановитьСтроку(); ФабрикаXDTO.ЗаписатьXML(Запись, Корень); XML = Запись.Закрыть(); только вот XSD при экспорте из 1с получается неправильная http://pastebin.com/kLepc3jr и редакторы её жрут неправильно (в списке либо только elem1, либо только elem2) |
|||
5
DmitrO
14.04.15
✎
19:57
|
ну, ты же понимаешь, что в XDTO на одном уровне одноименные элементы могут располагаться только последовательно
|
|||
6
Fragster
гуру
14.04.15
✎
19:59
|
(5) где это написано?
|
|||
7
DmitrO
14.04.15
✎
20:01
|
не помню чтобы это было где-то написано..
но это следует из объектной модели (объекты языка 1С и их методы) |
|||
8
Fragster
гуру
14.04.15
✎
20:03
|
(7) ну вот например ситуация - внешний источник, присылает нам схему http://pastebin.com/mRY5jgmc и мы по ней должны парсить его XML. Как бы составной тип у него в данных.
|
|||
9
DmitrO
14.04.15
✎
20:06
|
(7)+ это расплата за удобное отображение вложенных элементов в свойства объекта XDTO, удобное обращение к ним по имени свойства
|
|||
10
Asmody
14.04.15
✎
20:08
|
Блин, точно не помню, вроде как делал тип значения объединение, там где-то прописываются нужные типы. А потом делаешь список уже этого типа.
|
|||
11
DmitrO
14.04.15
✎
20:16
|
(8)а именно такая последовательность элементов важна? может это просто не упорядоченная? т.е. они могут так идти не последовательно, но могут и последовательно (что и получается у XDTO).
|
|||
12
Fragster
гуру
14.04.15
✎
20:17
|
(10) http://snag.gy/xJkSZ.jpg
Ошибка проверки модели XDTO: xdto-valueType-4.1.2 тип: union пакет: test Тип объединения должен являться типом значения Ошибка проверки модели XDTO: xdto-valueType-4.1.2 тип: union пакет: test Тип объединения должен являться типом значения |
|||
13
Fragster
гуру
14.04.15
✎
20:18
|
(11) важна последовательность обработки данных :(
|
|||
14
quest
14.04.15
✎
21:09
|
а если через XSLT сортировать? потом прочесть
|
|||
15
quest
14.04.15
✎
21:10
|
если полследовательность важна - сохранить старое значение смещения в атрибут, потом по нему восстановить?
|
|||
16
Fragster
гуру
14.04.15
✎
21:56
|
Файл присылают снаружи, двусторонний обмен
|
|||
17
Fragster
гуру
15.04.15
✎
08:36
|
подниму с утра
|
|||
18
Fragster
гуру
15.04.15
✎
11:31
|
и ещё
|
|||
19
Serginio1
15.04.15
✎
12:03
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |