1. oyeah 28.11.18 18:10 Сейчас в теме
Добрый вечер!
Подскажите как правильно добавить XDTO пакет в дерево метаданных? Проблема в том, что при импорте из файла xml схемы в пакет xdto не загружаются вложенные свойства.
Прикрепленные файлы:
root.xsd
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 28.11.18 19:30 Сейчас в теме
(1) какая-то схема неправильная.
Что сразу бросилось в глаза:
1. вложенный element внутри element. По стандарту это недопустимо. Далее вторым вложением идет complexType. Вот это должно быть вместо второго element.
2. <xs:element ref="Kontragent" maxOccurs="unbounded"/> и далее, указаны ссылки. Где их описание в схеме? Указана ссылка на глобальное пространство имен. Там точно нет определения "Kontragent". Нужно использовать локальное : ref="tns:Kontragent". И так для всех ссылок.
3. Далее идет элемент "Kontragent", но он вложенный. Он не подходит для использования ссылки выше. Возможно его нужно перенести на верхний уровень.

Большей части просто не хватает.
Прикрепленные файлы:
root2.xsd
3. oyeah 28.11.18 19:52 Сейчас в теме
(2) По стандартам 1С или xsd? Догадываюсь, что нельзя создать свойство в свойстве в xdto пакете даже руками, поэтому они и не загружаются. Описание ссылок Договор, Номенклатура, Бухоперация специально убрал из xsd для облегчения понимания. За "ref="tns:Kontragent"" спасибо, будем знать). Вот на счет пункта 3 не понял, проблема идентичная пункту 1?
4. spacecraft 28.11.18 20:02 Сейчас в теме
(3)
По стандартам 1С или xsd

Конечно xsd. https://www.w3schools.com/XML/el_element.asp
Вот на счет пункта 3 не понял, проблема идентичная пункту 1?

Если используется ссылка (ref), то должно быть их описание. Описание должно быть верхним уровнем, иначе не найдется.
5. oyeah 28.11.18 20:15 Сейчас в теме
В вашем файле используется ref и есть описание, но оно ведь не в верхнем уровне. Сори за назойливость)
6. spacecraft 28.11.18 20:19 Сейчас в теме
(5) верхний уровень это необязательно в шапке. Верхний уровень вложенности элементов.

Если вернуться в файлу:
<xs:element name="Root">
</xs:element>

<xs:element name="Kontragent">
</xs:simpleType>  

элементы Root и Kontragent оба элементы верхнего уровня.
7. oyeah 28.11.18 20:28 Сейчас в теме
(6) <xs:element ref="tns:Kontragent" maxOccurs="unbounded"/> - это ссылка
xs:element name="Kontragent"> - это описание. Ссылка и описание вообще в разных блоках, не?
8. spacecraft 28.11.18 20:31 Сейчас в теме
(7) загрузка не построчная. Это объектная модель.
Элемент верхнего уровня Kontragent будет загружен как Свойство.
При использовании ссылки будет произведен поиск по этим свойствам и будет известен тип.
9. spacecraft 28.11.18 20:38 Сейчас в теме
(7) по приведенной ссылке в (4) есть же пример:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="to"/>
      <xs:element ref="from"/>
      <xs:element ref="heading"/>
      <xs:element ref="body"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>

</xs:schema>
Показать


Описания приведено ниже блока с ссылками. Можно их и выше перенести. Для работы это ничего не изменит.
10. oyeah 28.11.18 20:45 Сейчас в теме
(9) верхний уровень, имеется ввиду не по отношению друг к другу, а просто верхний уровень%)
11. oyeah 28.11.18 20:54 Сейчас в теме
(9) сердечно благодарю, дай бог тебе здоровья и твоим близким) Не подскажешь, онлайн ресурс для проверки xsd?
12. spacecraft 28.11.18 20:59 Сейчас в теме
13. oyeah 28.11.18 21:10 Сейчас в теме
(12) то что надо, спасибо, очень помог
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот