【问题标题】:xml substitutionGroups - which elements are included in the subst group?xml 替换组 - 子组中包含哪些元素?
【发布时间】:2020-08-27 17:07:51
【问题描述】:

我正在处理一组复杂的 xsd 文件,深度嵌套,类型之间具有深度关系/扩展。

其中一个 xsds 定义了一个抽象元素,并且可以使用一个替换组

<xsd:element name="myElem" type="MyAbstractType" abstract="true"/> 

<xsd:element name="aaa" substitutionGroup="myElem">  

<xsd:element name="bbb" substitutionGroup="myElem">  

<!--... more elements follow, some are extending aaa,bbb,myElem...etc -->

我检查了所有导入的xsds,没有其他元素包含substitutionGroup="myElem",只有aaabbb包含它。

所以,据我了解,只有aaabbb 可以替代myElem。时期。没有其他元素。

然而,令我惊讶的是,我得到了一个 xml,其中包含与aaabbb 相关的元素(通过多层扩展),并且这个 xml 似乎有效(我检查了多个验证器)。

所以看来我还没有完全理解替换机制。 除了aaabbb 之外,还有哪些元素可能会干扰替换机制以使该xml 有效?

我的问题:

如何确定允许替换的详尽集合?

xsd 扩展是否可能以某种方式参与了替换机制?

谢谢

【问题讨论】:

    标签: xml xsd xsd-validation xsd.exe xsd-1.1


    【解决方案1】:

    操作。这里:原来我错过了一些传递替换,例如

    <xsd:element name="ccc" substitutionGroup="aaa">  
    

    这意味着

    元素 ccc 也是“根”myElem 的有效替换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2020-06-27
      • 2019-06-18
      • 2021-11-26
      相关资源
      最近更新 更多