Xml XSD-如何根据元素的属性值指定元素结构?

Xml XSD-如何根据元素的属性值指定元素结构?,xml,xsd,schema,xml-validation,Xml,Xsd,Schema,Xml Validation,我有一个通过XSD模式验证的XML。 在XML中,我有元素。根据stereotype属性的值,我希望元素具有不同的内部结构;采取以下两种变化: (一) 受雇者 (二) 哪一步 正如您所看到的,若原型是“checkerStep”,那个么taskType属性是必需的,并且需要一个tableName内部元素。另一方面,如果构造型是“branchStep”,则不应该包含任何属性,并且应该包含branchName内部元素 我在谷歌上搜索了我的问题,找到了一些答案,建议使用选择指标,但正如在下面的评

我有一个通过XSD模式验证的XML。 在XML中,我有元素。根据stereotype属性的值,我希望元素具有不同的内部结构;采取以下两种变化:

(一)


受雇者
(二)


哪一步
正如您所看到的,若原型是“checkerStep”,那个么taskType属性是必需的,并且需要一个tableName内部元素。另一方面,如果构造型是“branchStep”,则不应该包含任何属性,并且应该包含branchName内部元素

我在谷歌上搜索了我的问题,找到了一些答案,建议使用选择指标,但正如在下面的评论中所承认的,它并没有真正解决这个问题;因为选择指示器不允许在同一范围内使用相同名称的元素


那么,我该怎么办呢?

在解决这个问题的堆栈溢出问题中,这个问题解决了一个与您非常相似的情况,并使用XSD 1.1提供了两种不同的解决方案:好吧,我的答案是模式1.1,但Eclipse Kepler Service Release 1无法识别标记并将其标记为错误!怎么办?@C.M.Sperberg-McQueen如果可以的话,我会“喜欢”你的评论。
<step stereotype="checkerStep" taskType="tableChecker">
   <tableName>employee</tableName>
</step>
<step stereotype="branchStep">
   <branchName>whichStep</branchName>
</step>