Данная утилита позволяет проверить XML-файл на корректность по XSD-схемам и Schematron-файлам.
Исходно утилита разрабатывалась для проверки СЭМД (структурированных электронных медицинских документов) в виде XML-файлов.
Некоторые документы ввиду различных технических или организационных причин формируются некорректными. При этом валидация в РЭМД может выполняться несколько дней и иногда выдаёт только первую ошибку, а не все сразу.
Локально можно выполнять валидацию и сторонними аналогичными инструментами, такими как:
- Oxygen XML Editor – проприетарная, с триалом в 30 дней
- Liquid Studio – проприетарная, с триалом, только для Windows-систем
Оба инструмента содержат излишнюю функциональность и требуют некоторых знаний в корректной настройке валидаторов.
Цель создания этой утилиты - получение более узкоспециализированного инструмента для целей валидации XML-файлов с сохранением универсальности: валидировать можно любые XML документы.
XSD (XML Schema) – это язык описания структуры XML-документа. Валидацией по XSD-файлам можно выявить отсутствующие или некорректно заполненные блоки или атрибуты в XML-документах, но нельзя описать сложные правила, такие как наличие/отсутствие блока в зависимости от другого блока.
Schematron – это язык разметки с более сложными правилами, позволяющими не только выявить наличие/отсутствие блока, но и проверить зависимости между ними. Ошибки от Schematron-валидатора также более человекочитаемые.
XSD-файлы присутствуют для всех возможных видов СЭМД, а Schematron-файлы - только для самых последних редакций. По этой причине данная утилита позволяет переключаться между режимами валидации.
Все ошибки, связанные не со структурой, а с содержимым документа.
Например, по Schematron-правилам можно выявить элементы с пустым содержимым, которые не должны быть пустыми, но нельзя выявить корректно заполненные элементы с устаревшими данными.
Для сборки потребуется:
- Java 11
- Maven
Команда сборки (из корня проекта):
mvn clean install
В результате в папке target
появится файл simple-xml-validator-X.X.X.jar
Перед запуском в файле application.properties
необходимо указать несколько параметров:
- validator.mode – режим валидации (XSD - валидация только по XSD, SCHEMATRON - валидация только по Schematron, ALL - валидация по XSD и Schematron)
- validator.input.xml - полный путь до валидируемого XML-файла
- validator.input.xsd – полный путь до главного XSD-файла (как правило, он имеет имя CDA.xsd) (только для режимов XSD и ALL)
- validator.input.schematron – полный путь до Schematron-файла (только для режимов SCHEMATRON и ALL)
- validator.input.xml.clear-xml-namespace-on-schematron-validation – флаг, указывающий, следует ли очищать xmlns у валидируемого через Schematron XML-файла
Запуск утилиты выполняется командой:
java -jar -Dapplication.properties=/path/to/application.properties simple-xml-validator-X.X.X.jar
Важно! не используйте кириллицу в путях до application.properties, XML, XSD и Schematron-файлов.
- XSD – валидация выполняется встроенными библиотеками javax.xml.*
- Schematron – валидация выполняется сторонней библиотекой ph-schematron
Расширить логирование валидатора можно параметром -Djaxp.debug=true
, указав его в VM options.