XML Schema:特定元素的某些子元素的keyref

时间:2011-11-05 18:36:12

标签: xml xsd

我需要为这种XML语言编写XML Schema:

<wfInfo>
   <worflow name="wf1">
       <action name="act1" role="seller"/>
       <action name="act2" role="buyer"/>
       ...
   </workflow>

   <workflow  name="wf2">
       ...
   </workflow>

   <process workflow="wf1">
       <actionStatus action="act2" takenInCharge="true"/>
   </process> 

   <process ...> ... </process>
   ...
</wfInfo>

我设法编写了几乎所有模式的部分,包括大多数key和keyref元素。 无论如何,有一个约束我似乎无法写。我想让元素actionStatus的属性“action”指向正确的操作,而不是文档中的任何操作。我的意思是,在这种情况下,在验证过程中,应该验证动作“act2”存在于工作流“wf1”中,而不是在任何工作流程中。是否可以使用W3C XML Schema语言?

谢谢,任何答案都将非常感谢

1 个答案:

答案 0 :(得分:1)

您可以使用key / keyref - 但这可能会非常混乱。

除了W3C XML Schema之外,更好的方法可能是使用其他技术。例如,Schematron可以与模式结合使用,并且易于添加和理解。或者,在代码中实现这种依赖很容易。

另请参阅:Restrict ID references to a particular element group