Ошибка модели XDTO: Дублирование имени свойства #794949


#0 by tan76
Проблема следующая, в хмл файле который получен с вебсервиса есть пары элементов с одинаковым именем. Сооветсвено при попытке загрузить сжему пакета получаем следующие: Ошибка проверки модели XDTO: xdto-objectType-3.1.2    тип: Transaction    пакет: Дублирование имени свойства 'APMReferenceID' Подскажите есть способ обойти эти грабли? Схема такая: <xs:schema xmlns:tns="; xmlns:xs="; targetNamespace="; attributeFormDefault="unqualified" elementFormDefault="qualified"> Фрагмент файла XML: <?xml version="1.0" encoding="UTF-8"?> <Response xmlns="; Type="Transactions" Version="1.1.6">
#1 by tan76
ап
#2 by Рэйв
убрать один из них, что тут думать
#3 by Рэйв
Или дать другое имя
#4 by tan76
я не могу убрать, не я генерю файл
#5 by tan76
я лишь схему сделал
#6 by tan76
Мне нужно так составить схему чтоб игнорировать этот повтор или совсем не читать эти колонки. Если это возможно конечно..
#7 by Fragster
у Transaction последовательный = истина а у APMReferenceID минимальное количество = 0, максимальное -1 ну и гемор с заполнением - добавлять в нужные места этот APMReferenceID уже не помню как, но не через обычный список. Тот, кто формат сочинял - походу с головой не дружит. Ну, или мазохист.
#8 by Fragster
еще можно _попробовать_ обозвать второй свойство APMReferenceID2 и указать у него локальное имя
#9 by Fragster
но хз, будет ли работать
#10 by tan76
не взлетело, пробовал сейчас проверю
#11 by Fragster
если только читать такие файлы, то попроще
#12 by Fragster
ну и можно минимальное = 2 максимальное = 2 поставить, если их действительно два
#13 by tan76
Ребята заработало, фрагстеру особое спасибо. Окончательный варинат схемы такой: <xs:schema xmlns:tns="; xmlns:xs="; targetNamespace="; attributeFormDefault="unqualified" elementFormDefault="qualified">
#14 by tan76
а ещё вопрос, у исходного ответа сервера отсутствует атрибут xmlns=";;  и я добавляю его через СтрЗаменить(ТекстОтвета,"<Response ","<Response xmlns="";; ");) может есть какое либо другое, более красивое решение этой задачи?
#15 by Fragster
ну, можно через документDOM добавлять... но надо ли?
#16 by Fragster
в смысле - работает, не чини
#17 by Cyberhawk
Есть - писать вручную корневой тэг ответа (ЗаписатьНачалоЭлемента), затем УстановитьСоответствиеПространстваИмен, затем пишешь через фабрику ХМЛ-содержимое, затем ЗаписатьКонецЭлемента
#18 by tan76
я же не пишу, я только читаю ответ вебсервиса
#19 by tan76
или имеется ввиду получение этого ответа и запись его у себя локально но уже с xmlns? а потом уже парсить по схеме?
#20 by Cyberhawk
А, тогда пофиг как
#21 by Fragster
что-то типа того (работоспособность не проверял):
#22 by tan76
как то не заработал этот вариант, видимо СтрЗаменить наше всё, буду пока его использовать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С