|
Помогите разобраться с XDTO
| ☑ |
0
travelekb
16.03.20
✎
18:04
|
Здравствуйте.
Помогите начинающему разобраться с механизмом XDTO. Второй день не могу понять как применить на практике, хоть и много статей прочел.
Беру простой XML файл. Нужно получить всех клиентов в тегах <client>, чтобы в дальнейшем занести их в Справочник:
Делаю схему XML в конфигураторе, создаю тип объекта client:
В свойствах тип данных указываю string ():
Далее:
ТипФабрикиXDTO = ФабрикаXDTO.Тип(";, "client") //вот тут я не совсем понимаю, что идет вторым параметром? тип объекта из схемы?;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя);
Клиенты = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипФабрикиXDTO);
//тут вываливается с ошибкой
//Ошибка проверки данных XDTO:
//Структура объекта не соответствует типу: {
Что не так? Как понять этот XDTO?
|
|
1
ДенисЧ
16.03.20
✎
18:46
|
"Структура объекта не соответствует типу"
Вроде по-русски написано ((
|
|
2
Fragster
гуру
16.03.20
✎
18:48
|
тебе нужно сделать еще тип clients со свойством client у которого указать минимальное количество 0 максимальное -1
|
|
3
Fragster
гуру
16.03.20
✎
18:49
|
и тип catalog со свойством clients типа clients
|
|
4
Fragster
гуру
16.03.20
✎
18:49
|
если что, для xml есть gist.github.com
|
|
5
travelekb
16.03.20
✎
20:28
|
(2) (3) т.е. в схеме полностью описать структуру вложенных тегов XML, верно?
<catalog>
<clients>
<client>
</client>
</clients>
</catalog>
|
|
6
travelekb
16.03.20
✎
20:44
|
Переделал схему XDTO в соответствии со структурой XML файла:
Ошибок нет. Как теперь получить коллекцию элементов <client>?
Вот в этой строке, что указывается вторым параметром? Самый "верхний" родительский элемент <catalog> или можно сразу указать <clients> получив коллекцию?
ТипФабрикиXDTO = ФабрикаXDTO.Тип(";, "???");
|
|
7
Fragster
гуру
17.03.20
✎
11:44
|
самый верхний
|
|
8
Fragster
гуру
17.03.20
✎
11:45
|
получить
Каталог = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипФабрикиXDTO);
СписокКлиентов = Каталог.clients.client;
|
|