Проверка документа XML
Документ XML считается корре ктным, если его структура соответствует ожидаемой схеме. Для построения такой схемы используется XML Schema — язык описания структуры документов XML. Данный стандарт позволяет создать полную модель документа со словарями имен, типов и значений элементов, атрибутов и других узлов для строгой валидации XML. Формат, реализующий стандарт XML Schema
, называется XML Schema definition
(XSD
).
В «1С:Шине» реализована проверка документов XML с помощью схемы XSD
. Для этого используется специальный тип встроенного языка ПроверкаXml.
Пример
Для следующего документа в формате XML:
<?xml version="1.0" encoding="UTF-8"?>
<Приложения>
<Приложение>
<Название>Демо CRM</Название>
<Сборка>1.0</Сборка>
</Приложение>
<Приложение>
<Название>Демонстрационное приложение</Название>
<Сборка>1.1</Сборка>
</Приложение>
<Приложение>
<Название>1С:Кабинет сотрудника</Название>
<Сборка>2.0</Сборка>
</Приложение>
</Приложения>
так может выглядеть схема XSD
, которая описывает структуру документа:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Приложения">
<xs:complexType>
<xs:sequence>
<xs:element name="Приложение" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Название" type="xs:string"/>
<xs:element name="Сборка" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Проверка документа может быть выполнена в двух режимах:
- ПроверитьДоПервойОшибки — проверка документа до первой ошибки, после чего проверка останавливается. Опция по умолчанию.
- Проверить — полная проверка документа с получением списка всех ошибок. Требует больше системных ресурсов, поэтому рекомендуется к использованию при отладке и тестировании.
Использование схем XSD в проекте
Для проверки XML-документа схема может быть размещена в ресурсах проекта. Для этого необходимо добавить элемент Ресурсы
, в котором необходимо загрузить файлы с расширением XSD
или создать файл с расширением XSD
и добавить в него описание структуры документа XML. Для файлов схем в ресурсе могут быть созданы отдельные каталоги. Если в текущем ресурсе файл схемы ссылается на другую схему этого же ресурса, то указанный путь должен соответствовать относительному пути к целевой схеме в ресурсе.
При создании выгрузки приложения ресурсы проекта будут добавлены в файл архива автоматически.
Разрешение зависимостей
В документе XML могут использоваться ссылки на локальные или внешние ресурсы, например, схемы XSD
. Их загрузка и сохранение для повторного использования выполняется с помощью внутреннего механизма технологии.
В «1С:Шине» разрешение зависимостей выполняется автоматически. Загруженные данные добавляются в каталог ресурсов, где внешний идентификатор ресурса (URI) соответствует внутреннему идентификатору ресурса, по которому выполняется загрузка при повторном обращении. Также в данный каталог автоматически добавляются ресурсы проекта, доступ к которым можно получить по специальному имени ресурса (URN).
URI | Описание | Пример |
---|---|---|
URN | имя ресурса проекта в формате urn:1c-element:resource:{пространство имен проекта, разделитель "-"}:{путь ресурса в проекте} | urn:1c-element:resource:dev-проект-основной:папка1/папка2/схема.xsd |
URL | ссылка на внешний ресурс | http://xmlcatalogs.org/schema/1.1/catalog.xsd , http://company.local/schema/1.0/entity.xsd |
При успешном разрешении внешние зависимости сохраняются в локальной таблице базы данных для повторного использования. Сохраненные данные доступны для всего приложения.
Инициализация каталога выполняется после применения проекта при первом вызове проверки или преобразования XML. У записи каталога есть срок действия — 7 дней. Проверка истечения срока действия и удаление соответствующих записей выполняются после каждого применения проекта при вызове метода проверки или преобразования XML.
Также о разрешении зависимостей с примерами см. здесь.