2011-08-29 25 views
0

我有一个元素可以根据特定的约束具有不同的结构。的元素被定义为:Schema和Schematron的范围

<xs:complexType name="MyElement"> 
    <xs:sequence> 
     <xs:element name="Child"/> 
     <xs:element name="Child1" minOccurs="0"/> 
    </xs:sequence> 
</xs:complexType> 

我也有具有几个MyElement的元件。但我希望能够说

  • 第一次出现必须有一个Child1,对于所有其他出现的情况,Child1可以是可选的。
  • 所有奇怪的事件都必须有一个Child1,对于偶发事件Child1可以是可选的。
  • 如果Child的值等于R,则元素Child1必须存在。

我不想要解决方案;我想知道你会用什么技术来解决这类问题。 Schema only or Schema and Schematron?我有兴趣了解XML Schema和Schematron的范围。

回答

0

您将需要Schema 1.0使用Schematron。

模式没有表达您描述的条件逻辑的功能。 Schematron非常适合这种情况,并且可以轻松用于编码和验证这些验证规则。

可能使用Schema 1.1 assertions来定义这样的限制/验证。