【问题标题】:Java XML: How to force wildcard (xs:any) strict matching?Java XML:如何强制通配符(xs:any)严格匹配?
【发布时间】:2021-12-02 16:46:14
【问题描述】:

我有一堆无法更改的外部 XSD。 他们使用通配符内容模型(xs:any) 和processContents="skip"

问题:
java/JAXP 中是否有编程方式强制通配符 (xs:any) processContents="strict" 匹配(不更改 XSD)?

【问题讨论】:

    标签: java xml xsd xml-validation


    【解决方案1】:

    当然。在使用它进行验证之前,使用 Java 修改模式。您不必更改原始架构,只需更改您要验证的架构即可。

    如果您使用的是 XSD 1.1,您可以使用 xs:override 创建本地修改的架构。

    【讨论】:

    • 这意味着每当原始架构文件发生更改时,我都必须调整我的“修改”版本,这是有效的(以及我目前正在做的)但并没有真正回答我的问题。
    • xs:override 旨在完全满足您的需求:定义不同之处而不重新定义相同之处。但是您可以通过自定义 XSLT 转换实现完全相同的效果。如上所述,您的问题的答案显然是“否”(您不能在不更改架构的情况下更改架构),但我认为这没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    相关资源
    最近更新 更多