2010-08-13 5 views
0

J'ai un schéma, où il y a 3 éléments et ces 3 éléments ont encore plus de sous-éléments. On peut nommer le 1er élément en tant que Header, le 2ème en tant qu'enregistrement, le 2nd en tant que pied de page.Plusieurs éléments dans le schéma Xml

Il y a une occurence d'en-tête, plusieurs occurrences d'enregistrement et une occurrence de pied de page à nouveau.

donc l'entrée schéma ressemble

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

maintenant mon problème. mon schéma est défini comme ceci

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

lorsqu'un fichier (avec un en-tête 2 enregistrements et pied de page) est analysé à travers ce schéma. l'analyseur reconnaît reconnaît l'en-tête et les deux enregistrements et donne une exception après avoir reconnu le deuxième enregistrement et ne donne pas le pied de page. Comment définir max et min se produit quand il y a 2 ou plusieurs éléments et élément central a sans bornes comme max se produit

EDIT:

merci pour les réponses. C'est mon fichier 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 le problème est quand un fichier d'entrée (fichier .txt) qui contient un en-tête, 2 disques, pied de page est analysé en utilisant ce schéma, l'analyseur reconnaît en-tête et les dossiers ... et après cela, il donne une exception car il ne reconnaît pas le pied de page. Le maximum de Record est illimité. Est-ce que cela a quelque chose à voir avec l'exception?

+0

Pouvez-vous nous montrer votre vrai schéma, et un exemple de XML qui provoque ce problème ?? Je ne suis pas tout à fait clair à partir de votre question de savoir quel est le problème ... –

Répondre

0

Vous devez utiliser la séquence <> </séquence> au lieu de la < tous> </all> ou < choix> </choix>.

Cela devrait résoudre le problème.

Questions connexes