2010-08-13 7 views
0

스키마가 있는데 여기에는 3 개의 요소가 있고이 3 개의 요소에는 여전히 더 많은 하위 요소가 있습니다. 첫 번째 요소를 Header로, 두 번째 요소를 레코드로, 두 번째 요소를 바닥 글로 이름을 붙일 수 있습니다.Xml 스키마의 여러 ​​요소

머리글이 한 번, 여러 번 녹음되고 한 번에 바닥 글이 다시 나타납니다.

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

지금 내 문제처럼

때문에 스키마에 대한 입력이 보인다. (헤더 2 개 기록 및 바닥 글) 파일이 스키마를 통해 구문 분석 할 때 내 스키마는이

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

과 같이 정의된다. 파서는 머리글과 두 레코드를 인식하고 두 번째 레코드를 인식 한 후 예외를 제공하며 바닥 글을 제공하지 않습니다. 어떻게 우리가 최대 정의하고이 두 개 이상의 요소 및 최대가

EDIT 발생으로 중간 요소가 무제한의가있을 때 분 발생 수행하십시오 응답에 대한

감사합니다. 이것은 내 xsd 파일입니다. 헤더,이 개 기록을 포함하는 입력 파일 (.txt 파일)을, 바닥 글이 스키마를 사용하여 구문 분석 할 때

<?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 @ 문제가, 파서는 헤더와 기록을 인식 ...이 후에 준다 꼬리말을 인식하지 못하기 때문에 예외입니다. 레코드의 최대 발생은 제한되지 않습니다. 이것은 예외와 관련이 있습니까 ??

+0

실제 스키마와이 문제를 일으키는 샘플 XML을 보여줄 수 있습니까 ?? 문제가 뭔지는 분명치 않습니다. –

답변

0

당신은> < 순서> </순서> 대신 <> </모든> 또는 < 선택> </선택 모두 사용해야합니다.

이렇게하면 문제가 해결됩니다.