|
Свойства XDTO. Мой hello world всё никак не взлетает. | ☑ | ||
---|---|---|---|---|
0
camojiet
27.06.16
✎
11:25
|
Имею дело с XDTO в первый раз. Нужно разобрать файл: https://drive.google.com/file/d/0B82lvpMvgeieWkNpUGRKanZYNlE/view?usp=sharing
выцыганил у поставщика файла xsd файл: https://drive.google.com/file/d/0B82lvpMvgeiedlNHempmWFRRa1k/view?usp=sharing Сначала пытался считать XSD прямо из файла, потом плюнул, сделал чистую конфигурацию и загрузил в неё один объект - XDTO пакет, на основании XSD файла. Получился вот такой пакет: http://screencast.com/t/RuFG9tmYvM , со "Свойством", как я понял через которое и нужно считывать данные. В статьях, которые я изучал, в основном отталкиваются от ТипаXDTO, и ни о каком свойстве пакета упоминания я не видел. Как это называется? Корневое свойство? Как его прочитать? |
|||
1
Ёпрст
27.06.16
✎
11:27
|
(0) почитай, там 3 статьи.. есть и еще, в поиске
http://catalog.mista.ru/public/167459/ |
|||
2
camojiet
27.06.16
✎
11:33
|
Прочитаю ещё раз, но уже завтра. Сегодня хоть какой-нибудь бы результат.
|
|||
3
camojiet
27.06.16
✎
11:53
|
Везде в статьях считывают по типу. Я пробую считать по типу вот так:
ЧтениеТекста = Новый ЧтениеТекста("E:\1C\Test.xml",КодировкаТекста.UTF8); СтрокаXML = ЧтениеТекста.Прочитать(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(СтрокаXML); Тип_Attachment = ФабрикаXDTO.Тип("http://xml_vmtp_exchage.org/docs","TObjectService"); Документ = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,Тип_Attachment); Вылетает ошибка: Ошибка преобразования данных XDTO: Чтение объекта типа: {http://xml_vmtp_exchage.org/docs}TObjectService - [1,748] Проверка дополнительного свойства: форма: Элемент имя: Header по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://xml_vmtp_exchage.org/docs}TObjectService Зачем при чтении этого TObjectService проверяется Header я не понимаю, так как Header к нему не относится. Считать корневое свойство не понимаю как. Пробую по типу: ПакетXDTO = ФабрикаXDTO.Пакеты.Получить("http://xml_vmtp_exchage.org/docs");Документ = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ПакетXDTO.КорневыеСвойства[0].Тип); тоже ничего. Как обратиться к корневому свойству? |
|||
4
Nolan
27.06.16
✎
12:07
|
XDTOТипСтрока = Прокси.ФабрикаXDTO.Тип("Пространство имен твоего пакета", "UpdateFile"); // Определяем нужный тип пакета
XDTOСтрока = Прокси.ФабрикаXDTO.Создать(XDTOТипСтрока) // твой пакет со всеми свойствами |
|||
5
Nolan
27.06.16
✎
12:09
|
Только без прокси. (4)
|
|||
6
camojiet
27.06.16
✎
12:10
|
"UpdateFile" <- вот тут у меня что должно быть?
|
|||
7
Nolan
27.06.16
✎
12:12
|
Это обращение к твоему типу объекта. у тебя их 5 судя по фото. например TActRow
|
|||
8
camojiet
27.06.16
✎
12:13
|
У меня корневой элемент описан как <xs:element name="Attachment">. Как узнать его тип?
ФабрикаXDTO.Тип("http://xml_vmtp_exchage.org/docs", "Attachment"); возвращает неопределено, но это собственно и не тип. |
|||
9
camojiet
27.06.16
✎
12:16
|
(7) Возвращается пустой объект http://screencast.com/t/0s7Y291Z
|
|||
10
hhhh
27.06.16
✎
12:24
|
(8) ФабрикаXDTO. это вы берете пакет из вашей конфигурации. А вам надо пакет из чужой конфигурации. Из той схемы.
|
|||
11
camojiet
27.06.16
✎
12:26
|
Знающие. Ответьте пожалуйста на один вопрос - могу ли я прочитать в своём случае все объекты типа TObjectService например, минуя обращение к Attachment? Или нужно копать именно в сторону Attachment, который является свойством?
(1) Прочитал ещё раз все три XDTO это просто. Там все корневые элементы пакета - complextype, а тут какой - то element. Может так вообще нельзя. |
|||
12
camojiet
27.06.16
✎
12:27
|
(10) Да я уже сделал чистую конфу и пробую на ней. Моя фабрика находится в ФабрикаXDTO и я её там вижу в пакетах.
|
|||
13
camojiet
27.06.16
✎
12:56
|
Вобщем прочитал без xsd.
ЧтениеТекста = Новый ЧтениеТекста("E:\1C\Test.xml",КодировкаТекста.UTF8); СтрокаXML = ЧтениеТекста.Прочитать(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(СтрокаXML); Документ = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); Все переменные - строковые. Жаль конечно, но не получилось понять как что же это за свойство, надо ли вообще к нему обращаться и в итоге могло бы из этого xsd файла получиться что-то сериализованное. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |