2010-08-13 102 views
0

我有一個架構,其中有3個元素,這3個元素仍然有更多的子元素。讓第一個元素作爲標題,第二個作爲記錄,第二個作爲頁腳。Xml架構中的多個元素

有一個標題出現,記錄多次出現以及頁腳重新出現一次。

所以輸入模式看起來像

header 
record.. 
record.. 
... 
.. 
footer 

現在我的問題是。我的模式是這樣定義的

<xs:element minOccurs="1" maxOccurs="1" name="HEADER"> 
<xs:element minOccurs="1" maxOccurs="unbounded" name="Record"> 
<xs:element minOccurs="1" maxOccurs="1" name="FOOTER"> 

當一個文件(帶有頭2記錄和頁腳)通過這個模式解析。解析器可以識別標題和兩個記錄,並在識別出第二條記錄並給出頁腳後發出異常。我們如何界定max和當有2組或更多的元素和最大出現

編輯中間元素具有無界發生分鐘:

感謝您的答覆。這是我的xsd文件。

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema xmlns:NS="sample.xsd" xmlns="sample.xsd" elementFormDefault="qualified" targetNamespace="sample.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="PTRO"> 
    <xs:complexType> 
     <xs:sequence> 


    <xs:element minOccurs="1" maxOccurs="1" name="HEADER"> 
    <xs:complexType> 
    <xs:sequence> 
    <xs:sequence> 
      <xs:element minOccurs="1" maxOccurs="1" name="header_sub_element"> 
       <xs:simpleType> 
       </xs:simpleType> 
       </xs:element> 
    </xs:sequence> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 


     <xs:element minOccurs="1" maxOccurs="unbounded" name="Record"> 
      <xs:complexType> 
      <xs:sequence> 
     <xs:sequence> 
      <xs:element minOccurs="1" maxOccurs="1" name="Record_sub_element"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
        <xs:maxLength value="11" /> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 
      </xs:sequence> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     <xs:element minOccurs="1" maxOccurs="1" name="FOOTER"> 
    <xs:complexType> 
    <xs:sequence> 
    <xs:sequence> 
      <xs:element minOccurs="1" maxOccurs="1" name="footer_sub_element"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
      <xs:maxLength value="9" /> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 
    </xs:sequence> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
</xs:sequence> 
    </xs:complexType> 
</xs:element> 
</xs:schema> 

@ marc_s的問題是,當它包含一個頭,2個記錄的輸入文件(.txt文件),頁腳使用該架構的解析,解析器識別頭和記錄...並在此之後它給一個例外,因爲它不承認頁腳。 Record的最大發生是無界的。這是否與異常有關?

+0

你能告訴我們你的真實模式,以及導致此問題的示例XML嗎?我不清楚你的問題是什麼問題...... – 2010-08-13 07:34:16

回答

0

你必須使用的<序列> < /序列>代替<所有> < /全部>或<選擇> < /選擇>。

這應該解決問題。