2009-10-09 51 views
1

說明元素B是元素A的子元素。有沒有辦法確保對於每個A元素,B元素的數量是無限的,只要它們是一致的一個元素?XML模式:約束髮生次數爲一致

例如,下面將驗證:

 
    <A> 
     <B/> 
     <B/> 
    </A> 
    <A> 
     <B/> 
     <B/> 
    </A>

因爲第一個和最後<A>標籤都具有兩個<B>元素。

但以下不會:

 
    <A> 
     <B/> 
     <B/> 
     <B/> 
    </A> 
    <A> 
     <B/> 
     <B/> 
    </A>
因爲第一 <A>元件具有同時第二 <A>元件具有兩個 <B>元件3個 <B>元件。

回答

1

由於共約束條件,僅使用XSD 1.0就無法完成此操作。

共約束是兩個或更多值之間的約束。元素,元素和屬性,屬性和屬性之間可能存在共同約束。協同約束可能存在於單個XML文檔中,也可能存在於多個XML文檔中。 (Source

您可以檢查this article about extending schemas以解決這種限制的不同方法。

看起來XSD 1.1 assertions當它們成爲標準時,它們將會來拯救。