|
Несоответствие между схемой XSD и выгруженным XML файлом. | ☑ | ||
---|---|---|---|---|
0
ugroblin
19.12.14
✎
11:29
|
Доброго дня всем.
Наткнулся на такую проблему: Выгрузил схему конфигурации, в ней у справочник контрагенты первым указан ЭтоГруппа, потом ссылка: <xs:complexType name="CatalogObject.Контрагенты"> <xs:sequence> <xs:element name="IsFolder" type="xs:boolean"/> <xs:element name="Ref" type="tns:CatalogRef.Контрагенты"/><xs:element name="DeletionMark" type="xs:boolean"/> <xs:element name="Parent" type="tns:CatalogRef.Контрагенты"/><xs:element name="Code" type="xs:string"/> Выгружаю через ВыгрузкуЗагрузкуДанныхXML (через метод ЗаписатьXML(ЗаписьXML, Объект)) В выгрузке сперва идет ссылка, потом ЭтоГруппа. <CatalogObject.Контрагенты> <Ref>64668ee5-fb5d-11e3-8e87-d8d385ebba58</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>00000000-0000-0000-0000-000000000000</Parent> <Code>90001673 </Code> Если этот же файл загружать - загружается нормально, а вот при загрузке файла из внешней системы (сделанного по высланной схеме) выдается ошибка. Если в этом внешнем файле поменять местами реквизиты ЭтоГруппа и Ссылка, то загружается нормально. Вопросы: почему платформа выгружает нерабочую схему? можно ли исправить? PS. Писать для каждого справочника свой XDTO пакет совсем не хочется. |
|||
1
Maxus43
19.12.14
✎
11:33
|
что мешает в схеме местами поменять? а не в данных уже менять?
|
|||
2
Fragster
гуру
19.12.14
✎
11:35
|
чтобы выгружать по схеме - надо выгружать СериализатоXDTO.ЗаписатьXML, а не просто ЗаписатьXML
|
|||
3
Fragster
гуру
19.12.14
✎
11:35
|
они немного разные :(
|
|||
4
ugroblin
19.12.14
✎
11:41
|
(1) Там во многих справочниках такая ситуация. + хотелось бы понять почему платформа так себя ведет.
(2) я не использую XDTO. Захотели с внешней системы своими силами ко мне выгружать готовые хмлки- я им выгрузил схему всей конфигурации (правой кнопкой на XDTO-пакеты в дереве конфигурации). Если платформа использует другую схему для сериализации через метод ЗаписатьXML, то где её взять? |
|||
5
ugroblin
19.12.14
✎
11:43
|
Совсем забыл: платформа 8.3.5.1119
|
|||
6
ugroblin
19.12.14
✎
11:57
|
Мне сейчас надо отловить все несоответствия между выгружаемым ХМЛ и схемой. Потом исправленную схему отправить на согласование, на той стороне будут свой механизм выгрузки дорабатывать. И всё из-за того, что схема выгружаемая платформой и схема используемая ей же при сериализации/десериализации объекта стандартным методом отличаются.
Кто нибудь знает как вытащить валидную схему(через которую работают ЗаписатьXML/ПрочитатьXML)? |
|||
7
Fragster
гуру
19.12.14
✎
12:38
|
(6) проще заменить вызовы на СериализаторXDTO.ххх
|
|||
8
tridog
19.12.14
✎
12:58
|
(4) Ты выгрузил схему XDTO-фабрики. Эту схему использует XDTO-сериалихатор, чтобы файл соответствовал схеме нужно писать им.
Касательно просто ЗаписатьXML() - не факт, что там вообще запись идет по какой-либо схеме. |
|||
9
RomaH
naïve
19.12.14
✎
13:32
|
<CatalogObject.Контрагенты>
<Ref>64668ee5-fb5d-11e3-8e87-d8d385ebba58</Ref> <IsFolder>false</IsFolder> и <CatalogObject.Контрагенты> <IsFolder>false</IsFolder> <Ref>64668ee5-fb5d-11e3-8e87-d8d385ebba58</Ref> это вообще-то с точки зрения XML идентичные записи просто загрузка во внешней системе написана криво |
|||
10
ugroblin
19.12.14
✎
13:42
|
(9) загрузка во внешней системе написана криво.
Загрузка происходит из внешней системы в через стандартный метод ПрочитатьXML(). Именно в 1С от перестановки местами атрибутов работает/не работает загрузка. |
|||
11
ugroblin
19.12.14
✎
13:42
|
(10) из внешней системы в 1С
|
|||
12
RomaH
naïve
19.12.14
✎
13:44
|
(11) ничего не понял
1С не может загрузить файл с другом порядком атрибутов? |
|||
13
ugroblin
19.12.14
✎
13:49
|
(12) Да.
Я сформировал схему, в ней сперва IsFolder потом Ref. Передал эту схему другой компании, они написали выгрузку у себя (не из 1С). Эта выгрузка, сделанная по схеме, не грузится в 1С методом ПрочитатьXML. В файле ручками ставлю Ref перед IsFolder - успешно загружается. Если из 1С выгрузить через ЗаписатьXML, то в файле Ref стоит перед IsFolder. Такой файл тоже нормально загружается. |
|||
14
Fragster
гуру
19.12.14
✎
14:37
|
(9) это не идентичные записи. Строгий или нет порядок - настраивается в схеме, возможны ли пропуски, возможны ли дополнительные произвольные элементы - также в ней настраивается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |