IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

[XSD][XML][JAVA]erreur validation cvc-complex-type.2.3


Sujet :

Valider XML

  1. #1
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut [XSD][XML][JAVA]erreur validation cvc-complex-type.2.3
    Bonjour j'ai une erreur du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in endElement: cvc-complex-type.2.3: L'élément 'description' ne doit pas comporter de caractère [children] car le seul type admis pour le contenu du type est élément.
    Savez vous me dire si ce xsd est correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <xsd:complexType name="rules">
        	<xsd:sequence>
        		<xsd:element name="rule" type="rule" maxOccurs="unbounded" minOccurs="0"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="description">
        	<xsd:sequence>
        		<xsd:element name="id" type="xsd:string"></xsd:element>
        		<xsd:element name="type" type="xsd:string"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
     
    <xsd:complexType name="rule">
        	<xsd:sequence>
        		<xsd:element name="id" maxOccurs="1" minOccurs="1">
        			<xsd:simpleType>
        				<xsd:restriction base="xsd:string">
        					<xsd:minLength value="1"></xsd:minLength>
        				</xsd:restriction>
        			</xsd:simpleType>
        		</xsd:element>
        		<xsd:element name="description" type="description"
        			maxOccurs="2" minOccurs="1">
        		</xsd:element>
    <...etc..>
    <xsd:element name="event" type="event" maxOccurs="unbounded"
        			minOccurs="0">
        		</xsd:element>
        		<xsd:element name="messageCode" type="xsd:int" minOccurs="1" maxOccurs="1"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
     
    <xsd:element name="rules" type="rules"></xsd:element>
     
    <xsd:complexType name="event">
        	<xsd:sequence>
        		<xsd:element name="code" type="xsd:string"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
    </xsd:schema>
    J'ai un doute sur "l'imbrication" des balises rule

    Merci

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    rien de flagrant mais sans le XML qui n'a pas été validé et le xml schema complet, il est quasiment impossible de te répondre

  3. #3
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut
    Bonjour,

    Voilà le xsd initial qui marche et que je souhaite modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <xsd:complexType name="rules">
        	<xsd:sequence>
        		<xsd:element name="rule" type="rule" maxOccurs="unbounded" minOccurs="0"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
     
        <xsd:complexType name="constrained_elements">
        	<xsd:sequence>
        		<xsd:element name="id" type="xsd:string"></xsd:element>
        		<xsd:element name="type" type="xsd:string"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
     
        <xsd:complexType name="rule">
        	<xsd:sequence>
        		<xsd:element name="id" maxOccurs="1" minOccurs="1">
        			<xsd:simpleType>
        				<xsd:restriction base="xsd:string">
        					<xsd:minLength value="1"></xsd:minLength>
        				</xsd:restriction>
        			</xsd:simpleType>
        		</xsd:element>
        		<xsd:element name="description" type="xsd:string"
        			maxOccurs="2" minOccurs="1">
        		</xsd:element>
        		<xsd:element name="constrainedElements"
        			type="constrained_elements" maxOccurs="unbounded"
        			minOccurs="1">
        		</xsd:element>
        		<xsd:element name="range" maxOccurs="1" minOccurs="1">
        			<xsd:simpleType>
        				<xsd:restriction base="xsd:string">
        					<xsd:enumeration value="DATA"></xsd:enumeration>
        					<xsd:enumeration value="ENTITY"></xsd:enumeration>
        					<xsd:enumeration value="OBJECT"></xsd:enumeration>
        					<xsd:enumeration value="INTER_INSTANCES"></xsd:enumeration>
        					<xsd:enumeration value="INTER_OBJECTS"></xsd:enumeration>
        					<xsd:minLength value="1"></xsd:minLength>
        				</xsd:restriction>
        			</xsd:simpleType>
        		</xsd:element>
        		<xsd:element name="objectApplication" minOccurs="1"
        			maxOccurs="1">
        			<xsd:simpleType>
        				<xsd:restriction base="xsd:string">
        					<xsd:minLength value="1"></xsd:minLength>
        				</xsd:restriction>
        			</xsd:simpleType>
        		</xsd:element>
        		<xsd:element name="mandatory" type="xsd:boolean"
        			maxOccurs="1" minOccurs="1">
        		</xsd:element>
        		<xsd:element name="kindEvent" maxOccurs="1" minOccurs="0">
        			<xsd:simpleType>
        				<xsd:restriction base="xsd:string">
        					<xsd:enumeration value="ONLYFOR"></xsd:enumeration>
        					<xsd:enumeration value="EXCLUDE"></xsd:enumeration>
        				</xsd:restriction>
        			</xsd:simpleType>
        		</xsd:element>
        		<xsd:element name="event" type="event" maxOccurs="unbounded"
        			minOccurs="0">
        		</xsd:element>
        		<xsd:element name="messageCode" type="xsd:int" minOccurs="1" maxOccurs="1"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
     
        <xsd:element name="rules" type="rules"></xsd:element>
     
        <xsd:complexType name="event">
        	<xsd:sequence>
        		<xsd:element name="code" type="xsd:string"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
    </xsd:schema>
    Voilà le xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?xml version="1.0" encoding="UTF-8"?>
    <rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Rules.xsd">
      <rule>
        <id>id_0001</id>
        <description>Une description</description>
        <constrainedElements>
          <id>Entity.Personne</id>
          <type>Entity</type>
        </constrainedElements>
        <constrainedElements>
          <id>Personne.etab</id>
          <type>etab</type>
        </constrainedElements>
        <constrainedElements>
          <id>Create.Personne</id>
          <type>Entity</type>
        </constrainedElements>
        <range>ENTITY</range>
        <objectApplication>Entity.Personne</objectApplication>
        <mandatory>true</mandatory>
        <kindEvent>EXCLUDE</kindEvent>
        <messageCode>10000</messageCode>
      </rule>
    ...
    Mais je voudrais ajouter des elements à la balise <description> tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <description>
       <FR>description</FR>
       <EN>description</EN>
    </description>
    En modifiant le XSD comme dans mon premier post (ajout d'un complexType description), j'ai l'erreur cité en objet

    Merci d'avance

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    remplace simplement dans ton schema initial

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsd:element name="description" type="xsd:string"
        			maxOccurs="2" minOccurs="1">
        		</xsd:element>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<xsd:element name="description">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="FR" type="xsd:string"/>
    						<xsd:element name="EN" type="xsd:string"/>
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>

  5. #5
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut
    Voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in endElement: cvc-complex-type.2.3: L'élément 'description' ne doit pas comporter de caractère [children] car le seul type admis pour le contenu du type est élément.
    Je me pose une question sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsd:complexType name="rules">
        	<xsd:sequence>
        		<xsd:element name="rule" type="rule" maxOccurs="unbounded" minOccurs="0"></xsd:element>
        	</xsd:sequence>
        </xsd:complexType>
    
    <xsd:complexType name="rule">
        	<xsd:sequence>
    ...
    </xsd:complexType>
    
        <xsd:element name="rules" type="rules"></xsd:element>

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Moi avec mes modifications j'obtiens le bon résultat et ton erreur n'a RIEN à voir avec rules.

    Ton xml de test ne doit tout simplement pas être conforme, le XSD lui fonctionne parfaitement.

  7. #7
    Membre confirmé

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Par défaut
    Salut

    Tu veux dire que que la construction ne se fait correctement ?

    Merci

Discussions similaires

  1. Comment valider un XML via un XSD en Java 5 ?
    Par couetbis dans le forum Télécharger
    Réponses: 1
    Dernier message: 08/03/2014, 04h55
  2. [JAXB] Erreur "cvc-complex-type.2.4.b: The content of element 'ns2:Records' is not complete."
    Par scalpa63 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 03/12/2012, 08h34
  3. [XSd] Restriction du contenu d'une complex Type
    Par heavydrinker dans le forum Valider
    Réponses: 1
    Dernier message: 15/04/2008, 10h34
  4. [XSD] Erreur validation dans xml spy
    Par ebaynaud dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/02/2007, 14h27
  5. [xml][Java] Comment valider un fichier XML?
    Par ederf dans le forum Valider
    Réponses: 1
    Dernier message: 06/03/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo