无法理解Schema / Schematron Validator的重要性

时间:2018-07-30 11:02:14

标签: hl7-fhir hapi-fhir dstu2-fhir

我正在通过Schema / Schematron验证器验证资源。我正在为其提供无效的患者资源xml,但它仍然没有抱怨,并以“验证通过”的形式给出输出。

正如您可以在下面的代码片段中看到的那样,我给了多个性别和生日,还有一个与模式不同的标记作为虚拟标记。另外,一个性别标记的值无效,即为“ male1”:

FhirContext ctx = FhirContext.forDstu2();


 String msgString2 = "<Patient>\r\n" + 
 "        <gender value=\"male1\"/>\r\n" + 
 " <gender value=\"female\"/>\r\n" + 
 "        <birthDate>1953-12-20</birthDate>\r\n" + 
 " <birthDate>1953-12-20</birthDate>\r\n" + 
 " <dummytag>abcd</dummytag>\r\n" + 
 "</Patient>";

 IParser parser = ctx.newXmlParser();
 Patient patient = parser.parseResource(Patient.class, msgString2);

 FhirValidator val = ctx.newValidator();
 IValidatorModule module1 = new SchemaBaseValidator(ctx);
 IValidatorModule module2 = new SchematronBaseValidator(ctx);
 val.registerValidatorModule(module1);
 val.registerValidatorModule(module2);

 ValidationResult result = val.validateWithResult(patient);
 if (result.isSuccessful()) {

    System.out.println("Validation passed");

 } else {
    // We failed validation!
    System.out.println("Validation failed");
 }

所以我的问题是,请您告诉我,在这种情况下,它将显示“验证失败”?

关于, 阿密特。

1 个答案:

答案 0 :(得分:0)

在DSTU3中尝试一下,现在已经有一段时间了,它还修正了一些XPath相关问题。