Проверка документа 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С:Исполнителе» для разрешения внешних зависимостей используется каталог в виде 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>
Подробнее о разрешении зависимостей с примерами см. здесь.