|
XDTO ошибка при чтении "Структура объекта не соответствует типу: {ххх}" | ☑ | ||
|---|---|---|---|---|
|
0
nicxxx
29.06.16
✎
20:50
|
Гуру xml, подскажите, куда копать?
Если в тэге явно указать тип и пространство имен, например так <Deal xmlns=""myNameSpace"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:type=""Deal"">", то фабрика прекрасно читает такой тэг. Однако, когда я читаю тэг вида <Deal>, но указывая явно тип в фабрике, т.е. так: ТипОбъектаXDTO = ФабрикаXDTO.Тип("myNameSpace", "Deal"); ДанныеXDTO = ФабрикаXDTO.ПрочитатьXML(Чтение, ТипОбъектаXDTO); то в итоге получаю ошибку: "Структура объекта не соответствует типу: {myNameSpace}Deal" |
|||
|
1
Beretta
29.06.16
✎
21:21
|
Копать в понимание пространств и полностью квалифицированных имен.
В первом случае у тебя в файле объект с именем Deal из пространства myNameSpace. Фабрика его знает и читает без подсказок. Во втором - у тебя в файле объект с именем Deal из пустого пространства имен (вернее из пространства по умолчанию, определенного по вверх по иерархии). А ты пытаешся насильно прочитать обеъкт с типом Deal из пространства myNameSpace. Я бы тоже на месте фабрики возмутился. |
|||
|
2
nicxxx
30.06.16
✎
10:54
|
да, ход мыслей понятен.
забыл уточнить - реквизиты тэга <Deal> приходят в виде элементов, т.е. <Deal> <dealDate>2016-01-01</dealDate> ... Однако есть еще одна база с похожей задачей, отличие в формате сообщений - там реквизиты приходя в атрибутах тэга, т.е. <Deal deal_date="2016-01-13T18:15:50"/> и они так же нетипизированы, как и в первой базе. Так вот в базе №2 такое чтение (с явным указанием типа) работает. |
|||
|
3
nicxxx
30.06.16
✎
11:39
|
провел еще один эксперимент - переделал сообщение из базы №1 таким образом, чтобы реквизиты объекта были в атрибутах тэга, а не в элементах. типизированное чтение работает. Интересно, есть этому разумное объяснение? (я, к своему сожалению, в xml не эксперт. некогда углубляться в его изучение)
|
|||
|
4
Beretta
30.06.16
✎
23:49
|
Есть много интересных вариантов чтения xml (к сожалению, некогда объяснять разумное поведение системы в разных случаях). Если есть проблема, то ее можно решить, если не держать ее в тайне. Если же есть желание проводить эксперименты, то всецело разделяю с тобой радость открытия нового, завидую получению опыта и желаю всяческих успехов в этом нелегком деле =)
|
| Форум | Правила | Описание | Секции | Поиск |