|
Как имея XML получить пакет XDTO? есть инструенты, или все руками? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
25.02.15
✎
11:27
|
Вот есть схема типа:
<package> <body version="НСИ 1.38" protocol="full" begin_date="01.02.2015" telcreator="4852321087" creation_date="17.02.2015"> <LPUs name="1.Справочник поставщиков (МО)"> <LPU ordr="" code="VY" kpp="784101001" inn="7825052242" ogrn="1027809228072" name="Общество с ограниченной ответственностью "АВА-ПЕТЕР"" single_financing_begin="0:00:00" single_financing_end="0:00:00" group="1" short_name="ООО "АВА-ПЕТЕР"" post_id="7" fio="Короткова Инна Викторовна" fio_dat="Коротковой Инне Викторовне"/> ссылка на весь файл: http://tfoms.yar.ru/active/doc/2015/nsi_138.rar задача сделать по нему XSD чтобы импортировать в XDTO-пакеты в 1С Altova XMLSpy2015 - что-то совсем не то выгружает. и сама же потом ругается. что файл не соотвествует схеме VS - получше, и даже тип определяется в 1С Тип = ФабрикаXDTO.Тип("http://tfoms.yar.ru/NSI","package") но, все-равно, при чтении ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,Тип); получаю ошибку разбора |
|||
1
RomaH
naïve
25.02.15
✎
11:29
|
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://tfoms.yar.ru/NSI}package - [5,3] Проверка дополнительного свойства: форма: Элемент имя: body по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://tfoms.yar.ru/NSI}package |
|||
2
Лодырь
25.02.15
✎
11:30
|
Не проще найти поставщиков этой фигни и пытать их до получения результата?
|
|||
3
qwerty
25.02.15
✎
11:30
|
||||
4
DS
25.02.15
✎
11:36
|
Получить схему можно. Но на чуть меньше чем 100% это будет не та схема, какой ее задумал разработчик. Т. е. один и тот же XML может соответствовать нескольким разным схемам.
|
|||
5
RomaH
naïve
25.02.15
✎
11:41
|
1. Maximum request length exceeded
2. Создает только "свойства" а нужны вроде как типы объектов http://www.dropmocks.com/mIK4HP такой XSD я и в алтове получил |
|||
6
RomaH
naïve
25.02.15
✎
11:43
|
(4) ну не знаю - по другому файлу из той же оперы получили нормальную схему с описаниями типов (правда руками - с помощью регулярных и макросов)
и тут получим, но хотелось бы все это дело автоматизировать |
|||
7
RomaH
naïve
25.02.15
✎
11:46
|
т.е. схема получаенная в (3) пункт 2 потом требует обработки. что бы свойства преобразовать в типы объектов
в итоге должно быть что-то типа: только без ограничений (эта схема построена на основе другой схемы)
|
|||
8
qwerty
25.02.15
✎
11:50
|
(7) Да, типы потом вручную нужно проставить.
|
|||
9
RomaH
naïve
25.02.15
✎
11:59
|
получается - сначала создаем схему типа (3)
где свойства в виде дерева загружаем это в 1С потом получаем пакет и обходим дерево создавая текст XSD уже с типами а XDTO-пакет вроде можно из файла загрузить? |
|||
10
Serginio1
25.02.15
✎
12:05
|
||||
11
Serginio1
25.02.15
✎
12:15
|
||||
12
Serginio1
25.02.15
✎
12:22
|
Есть еще один вариант, это работа с классами .Net.
v8: v8: Использование сборок .NET в 1С 7.x и 8.x Можешь создать по схеме классы и их использовать для Сериализации десериализации. использовал http://wscfblue.codeplex.com/ http://msdn.microsoft.com/en-us/magazine/ee335699.aspx Я в свое время использовал её для генерации классов из XSD, так как родной не справлялся со сложными типами Вот инструкция как подключить её к Visual Studio 2013 http://wscfblue.codeplex.com/discussions/544680 и v8: v8: Использование сборок .NET в 1С 7.x и 8.x |
|||
13
RomaH
naïve
25.02.15
✎
14:32
|
в общем (3) достаточно
просто в корневом узле должно быть определение пространства имен <package xmlns="http://tfoms.yar.ru/BILL1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |