Как запустить FHIR Validator (java jar)

Я загрузил "Validation Pack" с http://www.hl7.org/implement/standards/fhir/downloads.html.

После распаковки «validator.zip» и чтения «readme.txt» я попытался запустить файл «org.hl7.fhir.validator.jar» в командной строке Windows.

java -jar org.hl7.fhir.validator.jar mysourcefile.xml

Я обнаружил следующую ошибку:

java.lang.Exception: Неизвестная команда mysourcefile.xml в org.hl7.fhir.instance.test.ToolsHelper.main (ToolsHelper.java:77) java.lang.ArrayIndexOutOfBoundsException: 1 в org.hl7.fhir.instance. test.ToolsHelper.main (ToolsHelper.java:81)

Почему mysourcefile.xml - неизвестная команда? Пожалуйста помоги. Спасибо!


person domo    schedule 25.06.2014    source источник


Ответы (4)


Файл jar настроен на загрузку неправильного класса. Правильный класс - org.hl7.fhir.instance.validation.Validator.

Вы можете явно назвать этот класс при запуске jar, и вы получите справку, в которой будет сказано:

  Usage: FHIRValidator.jar [source] (-defn [definitions]) (-output [output]) (-noxslt)

у вас также будет больше документации.

В противном случае вы редактируете манифест внутри банки и меняете основной класс.

person Grahame Grieve    schedule 27.06.2014
comment
Какой класс загружен неправильно в jar-файле org.hl7.fhir.validator.jar? Поскольку я не так хорошо знаком с java, можно ли указать мне, как «явно называть этот класс при запуске jar»? Заранее спасибо. - person domo; 01.07.2014

Если вы хотите проверить свой ресурс на соответствие базовой спецификации, выполните следующую команду:

java -jar org.hl7.fhir.validator.jar your-fhir-resource.xml -defn validation.zip

Если вы хотите проверить свой ресурс по профилю (определение структуры), выполните следующую команду:

java -jar org.hl7.fhir.validator.jar your-fhir-resource.xml -defn validation.zip -profile your-structure-definition.xml
person Alexandra    schedule 19.03.2015
comment
К сожалению, если я попытаюсь передать структурное определение, которое является чисто дифференциальным от основы ... оно взорвется с ошибкой синтаксического анализа ... если я прохожу одно с базовой линией и дифференциалом, оно проверяется относительно базовой линии и игнорирует дифференциал - person Speckpgh; 24.01.2017

Обновленная документация

Инструкции по валидации:

  1. Вам нужно установить java 1.7 jre или jdk
  2. Загрузите средство проверки и пакет проверки (исполняемый файл java и словарь определений FHIR соответственно) и распакуйте средство проверки (но не пакет проверки)
  3. Запустите валидатор с помощью следующей командной строки: java –jar org.hl7.fhir.validator.jar [источник] (-defn [определения]) (-profile [profile]) (-output [output]) где:

    • [источник] - имя файла или URL-адрес ресурса или канала пакета для проверки  [определения] - имя файла или URL-адрес пакета проверки (validation.zip). По умолчанию: получить из файла jar

    • [профиль] - это необязательное имя файла или URL-адрес для определенного профиля, по которому выполняется проверка ресурса. При отсутствии этого параметра ресурс будет проверяться на соответствие базовой спецификации с использованием определений.

    • [output] - имя файла для результатов (OperationOutcome). По умолчанию: результаты отправляются на стандартный вывод.

Примечание: в настоящее время валидатор может проверять только ресурсы XML, но не JSON.

Вот командный файл Windows, который сделает все это:

REM get the validator and unzip it
wget.exe http://hl7-fhir.github.io/validator.zip
7z.exe x validator.zip
7z.exe x saxon.zip
REM Get the validation source file (dictionary)
wget.exe http://hl7-fhir.github.io/validation-min.zip
REM get an example to validate
wget.exe http://ec2-54-87-74-90.compute-
1.amazonaws.com/open/Patient/1234 -O daf-patient.xml
REM validate it. The DAF profile will be loaded out of the
definitions in validation-min.zip
java -jar org.hl7.fhir.validator.jar daf-patient.xml -defn
validation-min.zip -profile
http://hl7.org/fhir/StructureDefinition/patient-daf-dafpatient
pause
person Grahame Grieve    schedule 26.03.2015

Документация требует обновления. Пытаться:

java -jar org.hl7.fhir.validator.jar round mysourcefile.xml output.xml

Но я не думаю, что DSTU validation.jar применяет XSD или Schematrons. Если это ваша цель, то вы можете использовать другие инструменты.

Для XSD:

xmllint --noout --schema <XSD_FILE> mysourcefile.xml

Для Schematron с использованием probatron4j

java -jar probatron.jar mysourcefile.xml fhir-atom.sch
person Seth Rylan    schedule 27.06.2014
comment
Благодарим за устранение указанной выше ошибки. Однако какова цель создания output.xml? В файле output.xml больше ошибок проверки при применении к нему XSD. Это правильно, что инструмент FHIR Validator не применяет XSD или Schematrons к файлам XML во время проверки. И это странно. - person domo; 01.07.2014