XSD,XML 1.0中的不同子节点

时间:2014-10-23 14:17:00

标签: xml xsd

子元素规范<child>应该被禁止使用属性&#34; in&#34; <parent>元素的授权和授权使用参数&#34; out&#34;

 valid
    { <parent type="in" name="one"> 
      </parent>

      <parent type="out" name="two"> 
       <child...>   
       </child>
      </parent>  } 



 invalid
    { <parent type="in" name="one">
       <child...>   {this element mustn't be here}
       </child>
      </parent>

      <parent type="out" name="two"> 
       <child...>   
       </child>
      </parent>  } 

如何在XSD中实现给定条件?

1 个答案:

答案 0 :(得分:0)

因此,您似乎正试图表达特定类型的co-occurance constraint。即,type="in"时允许child。当type="out"然后child不被允许时。

我不认为你可以用XSD做到这一点。你可以定义两种不同的类型(一种用于何时type="in"然后另一种。然后你可以得到不同的元素,一种允许孩子,另一种不允许,但你不能同时做两种那些属于同一个元素的人。

要做这种事情,你可能想要schematron。它允许编写更复杂的规则,并为您提供可用于断言此规则的模式语言。