2011-08-29 39 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來定義這樣的限制/驗證。