2010-09-26 59 views
0

我試圖創建一個XML架構,將允許文字和元素的元素<內容>不限數量的<一個>,< b創建無限數量的無序元素的XML模式>和<c>元素。下面是一個XML示例。在混合元素

<xml version="1.0" encoding="UTF-8"?> 
<article xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="article.xsd"> 
    <content>Lorem <a>ipsum</a> dolor sit amet, consectetur adipiscing elit. Nulla rhoncus <b>laoreet neque</b> ac mollis. <a>Aliquam</a> erat <c>volutpat</c>. Nunc ante turpis, placerat eu mattis eu, egestas eu elit. 
    </content> 
</article> 

我發現很難讓任何數量的這些元素以任何順序。

回答

1

您需要使用混合內容類型。有一個簡單的理解他們的描述here

事情是這樣的:

<xs:element name="article"> 
    <xs:complexType mixed="true"> 
    <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element name="a" type="xs:string"/> 
     <xs:element name="b" type="xs:string"/> 
     <xs:element name="c" type="xs:string"/> 
    </xs:choice > 
    </xs:complexType> 
</xs:element> 

的部分要注意的是mixed="true",這使得文本的元素之間出現。