我一直在尝试提高针对 XSD 模式的 XML 验证性能,特别是在 XSD 唯一约束方面,并决定尝试Woodstox。我几乎遵循这个例子,在某种程度上我改变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 中存在的几乎所有东西?)更好地验证独特的约束?
非常感谢任何帮助!