【发布时间】:2021-12-02 16:46:14
【问题描述】:
我有一堆无法更改的外部 XSD。
他们使用通配符内容模型(xs:any) 和processContents="skip"。
问题:
java/JAXP 中是否有编程方式强制通配符 (xs:any) processContents="strict" 匹配(不更改 XSD)?
【问题讨论】:
标签: java xml xsd xml-validation
我有一堆无法更改的外部 XSD。
他们使用通配符内容模型(xs:any) 和processContents="skip"。
问题:
java/JAXP 中是否有编程方式强制通配符 (xs:any) processContents="strict" 匹配(不更改 XSD)?
【问题讨论】:
标签: java xml xsd xml-validation
当然。在使用它进行验证之前,使用 Java 修改模式。您不必更改原始架构,只需更改您要验证的架构即可。
如果您使用的是 XSD 1.1,您可以使用 xs:override 创建本地修改的架构。
【讨论】:
xs:override 旨在完全满足您的需求:定义不同之处而不重新定义相同之处。但是您可以通过自定义 XSLT 转换实现完全相同的效果。如上所述,您的问题的答案显然是“否”(您不能在不更改架构的情况下更改架构),但我认为这没有帮助。