我从http://www.hl7.org/implement/standards/fhir/downloads.html下载了“验证包”。
解压缩'validator.zip'并读取'readme.txt'后,我尝试在Windows命令提示符下运行'org.hl7.fhir.validator.jar'文件。
java -jar org.hl7.fhir.validator.jar mysourcefile.xml
我遇到以下错误:
java.lang.Exception:org.hl7.fhir.instance.test.ToolsHelper.main中的未知命令'mysourcefile.xml'(ToolsHelper.java:77) java.lang.ArrayIndexOutOfBoundsException:1 at org.hl7.fhir.instance.test.ToolsHelper.main(ToolsHelper.java:81)
为什么'mysourcefile.xml'是未知命令?请帮忙。谢谢!
答案 0 :(得分:1)
jar文件设置为加载错误的类。正确的类是org.hl7.fhir.instance.validation.Validator。
您可以在运行jar时明确命名该类,并且您将获得帮助,这将说明:
Usage: FHIRValidator.jar [source] (-defn [definitions]) (-output [output]) (-noxslt)
您还会获得更多文档。
否则,您可以编辑jar中的清单并更改主类。
答案 1 :(得分:1)
如果要根据基本规范验证资源,请运行以下命令:
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
答案 2 :(得分:1)
更新了文档化
验证说明:
使用以下命令行执行验证器:java -jar org.hl7.fhir.validator.jar [source](-defn [definitions])( - profile [profile])( - output [output] )其中:
[source]是要验证的资源或捆绑Feed的文件名或URL [definitions]是验证包的文件名或URL (validation.zip)。默认值:从jar文件中获取
[个人资料]是特定个人资料的可选文件名或网址 验证资源。在没有这个参数的情况下 将使用以下内容根据基本规范检查资源 定义
[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
答案 3 :(得分:0)
文档需要更新。尝试:
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