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 comportant des erreurs


Sujet :

Valider XML

  1. #1
    Candidat au Club
    XSD comportant des erreurs
    Bonsoir,

    Je suis sur un code xsd et xml qui comportent des erreurs. Je n'arrive pas à les corriger. Pouvez-vous m'aider ? Je suis nouvelle et je galère un peu >.<

    Voici mon code :

    Errors in file base.xsd:
    6: 52 s4s-elt-invalid-content.1: The content of '#AnonType_base' is invalid. Element 'element' is invalid, misplaced, or occurs too often.
    18: 20 s4s-elt-must-match.1: The content of 'base' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: complexType.

    base.xsd
    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
    <?xml version="1.0" encoding="UTF-8" ?> 
    <xsd:schema xmlns<img src="images/smilies/icon_mad.gif" border="0" alt="" title=":x" class="inlineimg" />sd="http://www.w3.org/2001/XMLSchema">
     
    	<xsd:element name="base">
    		<xsd:complexType>
    			<xsd:element name="mutuelles" type="xsd:string">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="mutuelle" type="xsd:string" defaut="M001MAI" />
    						<xsd:element name="mutuelle" type="xsd:string" defaut="M002AG2" />
    						<xsd:element name="mutuelle" type="xsd:string" defaut="M003AXA" />
    						<xsd:element name="mutuelle" type="xsd:string" defaut="M004GMF" />
    						<xsd:element name="mutuelle" type="xsd:string" defaut="M005AUT" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:complexType>
    		<xsd:complexType>
    			<xsd:element name="secteurs_geographiques" type="xsd:string">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="secteur" type="xsd:string" defaut="S001" />
    						<xsd:element name="secteur" type="xsd:string" defaut="S002" />
    						<xsd:element name="secteur" type="xsd:string" defaut="S003" />
    						<xsd:element name="secteur" type="xsd:string" defaut="S004" />
    						<xsd:element name="secteur" type="xsd:string" defaut="S005" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:complexType>
    		<xsd:complexType>
    			<xsd:element name="patients">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="patient" type="xsd:string" defaut="1340236800" />
    							<xsd:complexType>
    								<xsd:sequence>
    									<xsd:element name="nom" type="xsd:string" />
    									<xsd:element name="prenom" type="xsd:string" />
    									<xsd:element name="date_naissance" type="xsd:date" />
    									<xsd:element name="adresse" type="xsd:string" />
    								</xsd:sequence>
    							</xsd:complexType>
     
    						<xsd:element name="patient" type="xsd:string" defaut="1295520600" />
    							<xsd:complexType>
    								<xsd:sequence>
    									<xsd:element name="nom" type="xsd:string" />
    									<xsd:element name="prenom" type="xsd:string" />
    									<xsd:element name="date_naissance" type="xsd:date" />
    									<xsd:element name="adresse" type="xsd:string" />
    								</xsd:sequence>
    							</xsd:complexType>
     
    						<xsd:element name="patient" type="xsd:string" defaut="1336316580" />
    							<xsd:complexType>
    								<xsd:sequence>
    									<xsd:element name="nom" type="xsd:string" />
    									<xsd:element name="prenom" type="xsd:string" />
    									<xsd:element name="date_naissance" type="xsd:date" />
    									<xsd:element name="adresse" type="xsd:string" />
    								</xsd:sequence>
    							</xsd:complexType>
     
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:complexType>
    	</xsd:element>
     
    </xsd:schema>


    Merci d'avance

  2. #2
    Membre émérite
    Ceux-ci sont des erreurs absolues qui vous devrez vous adresser avant tout d'autres plus subtiles si il y en a.
    [1] Ligne #6 et les lignes de pareille construction comme lignes #19, #36 etc etc. Vous ne pouvez pas mettre type="xs:string" pourtant avec xsd:complexType (ou xsd:simpleType si il y en a) de suite pour construire une élement xsd:element.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- ligne #6
    <xsd:element name="mutuelles" type="xsd:string">
    -->
    <xsd:element name="mutuelles">


    [2] Entre lignes #5 et #6, après xsd:complexType, xsd:element est une erreur. On doit y insérer xsd:sequence ou xsd:choice ou xsd:all etc... pour simplifier des choses : ça dépend ce qu'on veut. Prenez xsd:sequence pour fixer l'idée et changez après si c'est pas le but qu'on veut avec xs:sequence.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsd:element name="base">  <!-- ligne #4 -->
        <xsd:complexType>
            <xsd:sequence>    <!-- ajoutant et vous prenez soigne d'en fermer plus loin. -->
               <xsd:element name="mutuelles">


    [3] Vous ne pouvez mettre un attribut default dans xsd:element qui va avoir du type complexe, partout comme par exemple lign #35. Et puis défaut s'écrit comme "default" pas "defaut".

    [4] Lignes #17 et #18 tout comme #30 et #31, ce sont des construction fausse. Il y a une correction déjà mentionné en [2], je pense vous pouvez enlever toutes les deux xsd:element est suivie l'une l'autre. Ailleurs la même situation, vous faites la même.

    [5] Vous ne pouvez définir deux fois la même xsd:element de même nom. Vous voulez dire vous mettrez deux instances de patient dans le document à valider ? Si oui, vous faites comme ça.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!--
    <xsd:element name="patient">
    -->
    <xsd:element name="patient" maxOccurs="unbounded">

    Et puis vous enlevez la deuxième xsd:element name="patient".

    Vous prenez soigne tous les temps le bien formation du xsd durant les corrections etc... Reposez après le xsd - c'est difficile à tout dire avec un schema plein d'erreurs.