2010-08-13 96 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

你必须使用的<序列> < /序列>代替<所有> < /全部>或<选择> < /选择>。

这应该解决问题。