Перейти к основному содержимому

Проверка документа 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>
примечание

В «Исполнителе» поддерживается XML Schema версий 1.0 и 1.1. При проверке документа XML версия схемы определяется автоматически.

Проверка документа может быть выполнена в двух режимах:

  • ПроверитьДоПервойОшибки — проверка документа до первой ошибки, после чего проверка останавливается. Опция по умолчанию.
  • Проверить — полная проверка документа с получением списка всех ошибок. Требует больше системных ресурсов, поэтому рекомендуется к использованию при отладке и тестировании.

Использование схем XSD в проекте

Для проверки XML-документа схема может быть размещена в ресурсах проекта. Для этого необходимо добавить элемент Ресурсы, в котором необходимо загрузить файлы с расширением XSD или создать файл с расширением XSD и добавить в него описание структуры документа XML. Для файлов схем в ресурсе могут быть созданы отдельные каталоги. Если в текущем ресурсе файл схемы ссылается на другую схему этого же ресурса, то указанный путь должен соответствовать относительному пути к целевой схеме в ресурсе.

примечание

При создании выгрузки приложения ресурсы проекта будут добавлены в файл архива автоматически.

Разрешение зависимостей

В документе XML могут использоваться ссылки на локальные или внешние ресурсы, например, схемы XSD. Их загрузка и сохранение для повторного использования выполняется с помощью внутреннего механизма технологии.

В «1С:Исполнителе» для разрешения внешних зависимостей используется каталог в виде XML-файла, описанный по стандарту OASIS XML Catalog 1.1 и содержащий соответствия между идентификаторами ресурсов и путями к их фактическому расположению на локальном сервере. Пользователь самостоятельно формирует файл каталога, куда добавляет URI внешнего и внутреннего ресурса. Для URI внутреннего ресурса можно использовать схему файловой системы (file:///). Полный путь к файлу каталога берется из переменной среды ОС с именем EXECUTOR_XML_RESOLVER_CATALOG (требуется добавить самостоятельно).

Пример каталога с разрешением URI схемы XML на файловой системе ОС Windows:

<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri name="http://company.ru/xsd/scheme.xsd" uri="file:///c:/xsd/somescheme.xsd"/>
</catalog>

Подробнее о разрешении зависимостей с примерами см. здесь.