2011-09-30 117 views
2

我有這樣的代碼:XML Schema的多元素和屬性

<root> 
     <skill id="1">C++</skill> 
     <skill id="2">C#</skill> 
     <skill id="3">Java</skill> 
     <skill id="4">PHP</skill> 
     <skill id="5">MYSQL</skill> 
     <skill id="6">HTML</skill> 
     <skill id="7">CSS</skill> 
     <skill id="8">JavaScript</skill> 
     <skill id="9">XML</skill> 
</root> 

我試圖創建一個模式來這個,我不太清楚如何使用相同的名稱聲明多個元素和它的屬性。 XML Schema: how to have multiple identical elements?,但不確定到底發生了什麼。當我放置minOccurs時,我需要maxOccurs嗎?在上面的鏈接中,我不明白模式中的屬性部分是否可以有人幫助/詳細說明?

回答

4

以下聲明root元素(它只能出現一次並且必須指定)和一個skill元素的序列,其id屬性的類型爲xs:IDREF

xs:attribute爲該元素聲明一個屬性。 name屬性指定屬性名稱。 type屬性指定數據類型。

<xs:element name="root" minOccurs="1"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="skill" minOccurs="1" maxOccurs="unbounded"> 
       <xs:complexType> 
        <xs:attribute name="id" type="xs:IDREF"/> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

我需要的maxOccurs當我把一個的minOccurs?

不,你不需要有maxOccurs。如果您沒有指定它,則有一個隱含的maxOccurs="1"

+0

哇,很好的解釋。如果所述元素具有名稱屬性而不是ID,它會是type =「xs:string」? –