0
Zixxx
01.12.13
✎
09:17
|
Есть схема такого вида, у нее есть ссылка на свойство из другой схемы
[code]
<xs:schema xmlns:i="; xmlns:a="; xmlns:b="; xmlns:c="; xmlns:s="; attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="; xmlns:xs=";
<xs:import namespace="; />
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element name="Body">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="; ref="q1:GetExternalPersonifiedRegisterByIDsVer1Response" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
[/code]
Проблема в том что при импорте в 1с теряется элемент
[]
<xs:element xmlns:q1="; ref="q1:GetExternalPersonifiedRegisterByIDsVer1Response" />
[/code]
В ручную его тоже не получается добавить :(. Поэтому при попытки чтения xml вываливается ошибка разбора xml, так как 1с не смогла собрать пакеты воедино.
Интересно то, что xml читается отлично если в метод СоздатьФабрикуXDTO() поместить массив пакетов из файлов. А вот если пакеты находятся в конфигурации, то при чтении появляется ошибка разбора:
[code]
НаборСхем = ФабрикаXDTO.ЭкспортСхемыXML(Пакеты);
ФабрикаДанных = Новый ФабрикаXDTO(НаборСхем);
ПакетДанных = ФабрикаДанных.Пакеты.Получить(ТипXML.URIПространстваИмен);
КорневыеСвойства = ПакетДанных.КорневыеСвойства.Получить(ТипXML.ИмяТипа);
Документ = ФабрикаДанных.ПрочитатьXML(НовыйЧтение, КорневыеСвойства.Тип);
[/code]
... вываливается ошибка разбора xml. Посмотрев в отладке увидел что тип body не имеет КоллекциюСвойствXDTO.
Ссылка на файлы:
Кто в курсе, почему 1с нормально создает фабрику по схемам из файлов, и создает битую фабрику по пакетам xdto из конфигурации? И как это можно исправить?
|
|