Каждый, кто занимается выгрузкой электронных медицинских документов (СЭМД) в ЕГИСЗ, сталкивался с ситуацией: вы отправляете XML-файл, ждёте, а через некоторое время получаете протокол с ошибками валидации. И хорошо, если ошибка понятная, а часто приходится гадать, что не так.
Схематроны (Schematron) — это дополнительные правила проверки XML-документов, которые выходят за рамки обычной XML-схемы. Они проверяют не просто структуру, а логику и бизнес-правила: например, наличие обязательных полей в зависимости от значений других полей, соответствие кодов справочникам и т.д.
Проблема в том, что ждать ответа от портала ЕГИСЗ (portal.egisz.rosminzdrav.ru) — долго и неудобно. Гораздо эффективнее проверять документы локально, до отправки. Более того, на практике встречаются ситуации, когда:
- Правила схематрона противоречат XML-примеру из руководства.
- XML-пример противоречит тексту руководства по реализации.
- Невалидный документ успешно принимается ЕГИСЗ (возможно, из-за неактуальных схематронов на портале).
Поэтому локальная проверка — это не просто удобство, а необходимость. В этой инструкции рассмотрим три рабочих способа проверки документов по схематронам.
Способ 1. Онлайн-валидатор Liquid Technologies (самый быстрый)
Самый простой способ для разовой проверки — использовать бесплатный онлайн-инструмент.
Ссылка: https://www.liquid-technologies.com/online-schematron-validator
Как работать:
- Откройте страницу валидатора. Вы увидите два окна (Рисунок 1):
- XML data validate (слева) — сюда вставляете текст вашего XML-документа.
- Schematron data (справа) — сюда вставляете код схематрона (файл
.sch).
- Нажмите кнопку Validate.
- Смотрите результат внизу экрана.

Результаты проверки:
- «Document Valid» — зелёный цвет, документ корректен (Рисунок 2).
- Сообщение об ошибке — красный цвет, с описанием проблемы (Рисунок 3).


Плюсы: Не требует установки, работает в браузере.
Минусы: Ограничение на размер документа — валидатор может принимать максимум около 200 символов. Для больших СЭМД не подходит.
Способ 2. XMLBlueprint (программа с GUI, удобно для Windows)
XMLBlueprint — это XML-редактор с поддержкой схематронов. У него есть триальная версия на 15 дней, но для разовых проверок этого достаточно.
Что нужно сделать:
- Скачайте и установите XMLBlueprint с официального сайта: https://www.xmlblueprint.com/download-xml-editor.htm. Установка стандартная.
- Откройте ваш XML-документ в программе (Файл → Открыть).
Как подключить схематрон к документу:
Есть два способа связать XML-файл с файлом схематрона (.sch).
Способ 2А (через меню):
- В меню выберите «Схема» → «Associate XML Document with DTD, Relax NG Schema, or XML Schema…».
- В открывшемся окне нажмите «Обзор» и выберите ваш файл схематрона. Подтвердите выбор (Рисунок 5).

- Программа автоматически добавит в начало XML-документа специальную строку-ссылку на схематрон (Рисунок 6).

Способ 2Б (ручное добавление ссылки):
Вы можете сами вставить в начало XML-документа (перед корневым элементом!) строку:
<?xml-model href="путь_к_вашему_файлу.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
Важно про пути:
- Если файлы в одной папке, можно указать просто имя:
href="book.sch". - Если нужно указать полный путь, используйте URL-синтаксис, даже для локальных файлов:
- Правильно:
href="file:///C:/schema/myschema.sch" - Неправильно:
href="C:\schema\myschema.sch"(так не работает!).
- Правильно:
Запуск проверки:
После того как связь установлена, выберите в меню «XML» → «Проверить». Результат появится в нижней части окна (Рисунок 7).

Важный нюанс!
Из проверяемого XML-документа необходимо удалить (или закомментировать) атрибут xmlns="urn:hl7-org:v3" в корневом элементе. Иначе валидация по схематрону всегда будет проходить успешно, даже если есть ошибки.
Плюсы: Удобный интерфейс, понятные сообщения.
Минусы: Триал всего 15 дней, нужно не забыть удалить xmlns.
Способ 3. Java-утилита schxslt-cli (консоль, бесплатно и навсегда)
Для тех, кто не боится командной строки и хочет иметь бесплатный инструмент без ограничений по времени — этот вариант.
Что нужно скачать и установить:
- Java Runtime Environment (JRE) с официального сайта: https://www.java.com/ru/download/
- Консольную утилиту schxslt-cli со страницы релизов на GitHub: https://github.com/schxslt/schxslt-cli/releases (скачайте файл
schxslt-cli.jar).
Как работать:
- Поместите все три файла в одну папку:
- ваш документ (например,
semd.xml), - файл схематрона (например,
schematron.sch), - утилиту
schxslt-cli.jar.
- ваш документ (например,
- Откройте командную строку (cmd) и перейдите в эту папку (команда
cd путь_к_папке). - Выполните команду:
java -jar schxslt-cli.jar -d semd.xml -s schematron.sch —v
Результат:
- Если документ валиден, вы увидите сообщение об успехе.
- Если есть ошибки — они будут выведены в консоль (Рисунок 8).[Вставить Рисунок 8 — пример работы в консоли: успех и ошибка]
Важный нюанс (тот же, что и в XMLBlueprint)!
Из проверяемого XML-документа также нужно удалить xmlns="urn:hl7-org:v3" в корневом элементе. Иначе проверка всегда будет проходить успешно.
Плюсы: Бесплатно, нет ограничений по времени и размеру документа.
Минусы: Консольный интерфейс (не для всех), требуется установленная Java.
Что выбрать?
- Если нужно быстро проверить маленький фрагмент — берите онлайн-валидатор.
- Если вы работаете в Windows и привыкли к графическим интерфейсам — ставьте XMLBlueprint (хотя бы на 15 дней).
- Если вам нужно регулярно проверять много больших документов и вы хотите автоматизировать процесс — ваш выбор Java + schxslt-cli.
Главное — помните про удаление xmlns для корректной работы локальной валидации. И не забывайте, что схематроны на портале ЕГИСЗ могут быть не самой актуальной версии, поэтому доверяйте, но проверяйте.
А с какими проблемами при валидации СЭМД сталкивались вы? Может быть, у вас есть свои лайфхаки по отладке? Делитесь в комментариях!


