xml - xml 替换组 - 子组中包含哪些元素?
问题描述
我正在处理一组复杂的 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 -->
我检查了所有导入的 xsd,没有其他元素包含,substitutionGroup="myElem"
仅包含它。aaa
bbb
所以,据我了解,只有aaa
并且bbb
可以替代myElem
. 时期。没有其他元素。
然而,令我惊讶的是,我得到了一个 xml,其中包含与 , 相关的元素aaa
(bbb
通过多层扩展)并且这个 xml 似乎是有效的(我检查了多个验证器)。
所以看来我还没有完全理解替代机制。除了并且可能以这种方式使该xml有效的替代机制之外aaa
,还有哪些元素bbb
可能会干扰替换机制?
我的问题:
如何确定允许替换的详尽集合?
也许 xsd 扩展以某种方式参与了替换机制?
谢谢
解决方案
同上。这里:原来我错过了一些传递替换,例如
<xsd:element name="ccc" substitutionGroup="aaa">
意思就是
元素ccc
也是“根”的有效替换myElem
推荐阅读
- powershell - 文件夹名称中带有变量和破折号的测试路径
- r - 如何使用预定义的样本组使用 dendextend 和 heatmap.2 为树状图的标签着色
- excel - 使用 Google Maps API 静态地图和 Excel 创建超链接
- swift - 使用 Alamofire 检查服务器响应时,左括号表示什么?
- javascript - 文件上传条件不起作用我希望它如何工作
- javascript - 数据 html 属性中的 DataTables 按钮过滤器
- java - 在DialogFragment的onDimiss回调中区分配置更改和真正的dismiss
- spring-boot - 在 Spring Boot 中进行测试时跳过与 mysql 的数据库连接
- php - 将内容附加到 Wordpress 中的所有帖子。附加内容未显示在存档中
- ios - xcode:如何关闭将警告视为错误仅用于归档