【发布时间】:2014-12-03 17:04:41
【问题描述】:
我一直在尝试改进针对 XSD 模式的 XML 验证性能,特别是在 XSD 唯一约束方面,并决定尝试Woodstox。我非常关注this example,以至于我将XMLValidationSchema.SCHEMA_ID_DTD 更改为XMLValidationSchema.SCHEMA_ID_W3C_SCHEMA。
不过,我遇到的问题是,即使 XML 违反了唯一性约束,Woodstox 验证器也会发现 XML 有效。在我的 java 代码中切换回“常规”javax.xml.validation.Schema、javax.xml.stream.XMLStreamReader 和javax.xml.validation.Validator,正确检测到违反唯一性约束。
另外,我可以确认 Woodstox 验证器做了一些事情,因为例如,如果我有一个负数,而 XML 中的 XSD 预期为正数,我可以看到它说“XML 无效”。
这可能是我迄今为止一直使用的工具在对不合格元素的唯一性检查方面很好,而 Woodstox 则不然?这是我脑海中唯一的想法......
另外,是否有人能够确认 Woodstox 会比基于 Xerces 的工具(Java 中存在的几乎所有东西?)更好地验证独特的约束?
非常感谢任何帮助!
【问题讨论】:
-
我现在限定了我使用的所有元素,但是 Woodstox 验证器仍然声称具有损坏的唯一约束的 XML 是有效的。同时,正如预期的那样,常规的
javax.xml.validation.Validator发现它无效。
标签: java xsd xsd-validation stax woodstox