怎么我可以验证的文件对在模式在Java?
-
05-09-2019 - |
题
我可以告诉, JAXP通过默认支持W3C XML模式和RelaxNG从Java6.
我可以看到一些Api,主要是实验或不完整的, schematron.com 链接的网页.
是否有办法在证实在在Java,全面、有效和可以使用与JAXP API?
解决方案
静 支持预ISO在验证(注意,敬的执行情况是根据XSLT)。
还有XSLT实现,可以很容易地援引从Java。你需要来决定什么样的版本在你有兴趣,并然后获得相应的样式-所有的人都应该可以从schematron.com.这个过程很简单很简单,基本上涉及2个步骤:
- 适用的骨架XSLT你在模式来得到一个新的XSLT样式表,这表示你在模式在XSLT
- 适用所获得的XSLT上你的实例的文件或文件,以证实他们
JAXP只是一个API,它不需要支持放松NG从执行情况。你需要检查的具体实施的,你用它来看看这支持放松NG或没有。
其他提示
一个纯Java Schematron实现位于 https://github.com/phax/ph-schematron / 它带来两个XSLT方法和纯Java方法的支持。
您可以检查出 SchematronAssert (披露:我的代码)。是指主要用于单元测试,但你可以用它进行正常的代码了。它使用XSLT实现。
单元测试示例:
ValidationOutput result = in(booksDocument)
.forEvery("book")
.check("author")
.validate();
assertThat(result).hasNoErrors();
独立验证示例:
StreamSource schemaSource = new StreamSource(... your schematron schema ...);
StreamSource xmlSource = new StreamSource(... your xml document ... );
StreamResult output = ... here your SVRL will be saved ...
// validation
validator.validate(xmlSource, schemaSource, output);
与SVRL的对象表示工作:
ValidationOutput output = validator.validate(xmlSource, schemaSource);
// look at the output
output.getFailures() ...
output.getReports() ...
不隶属于 StackOverflow