我正在通过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");
}
所以我的问题是,请您告诉我,在这种情况下,它将显示“验证失败”?
关于, 阿密特。
答案 0 :(得分:0)
在DSTU3中尝试一下,现在已经有一段时间了,它还修正了一些XPath相关问题。