2010-03-09 62 views
0

用XML Schema強制執行文檔必須中的兩個元素包含相同的子結構是否可能(以及如果是這樣,如何執行)?舉例來說,我想表達的任何FOO有兩個孩子,BAR1和BAR2和BAR1必須具有相同的子結構BAR2:XML:通過XML Schema實現兩個元素的子結構

<foo> 
    <bar1> 
    <baz>hello, world</baz> 
    </bar1> 
    <bar2> 
    <baz>hello, world</baz> 
    </bar2> 
</foo> 

關鍵keyref正道去?

謝謝!

回答

0

當然 - 定義了一個名爲<xs:complexType>它代表的BAR1和BAR2節點的「內容」,並用它來定義兩個元素:

<xs:schema id="foo" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="foo"> 
    <xs:complexType> 
     <xs:element name="bar1" type="subbar" /> 
     <xs:element name="bar2" type="subbar" /> 
    </xs:complexType> 
    </xs:element> 
    <xs:complexType name="subbar"> 
    <xs:sequence> 
     <xs:element name="baz" type="xs:string" minOccurs="0" /> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema> 
+0

感謝您的回答 - 但顯然我並不清楚足以與我的問題。問題是,我想確保孩子的內容*對於bar1,2完全相同 - 例如,如果bar1/baz具有字符串內容「hello,world」,那麼bar2/baz也必須有「hello,world」 「作爲內容。 – Thomas 2010-03-09 18:14:20