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] validité de mon schema


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Par défaut [XSD] validité de mon schema
    Bonjour à tous,

    je voulais savoir si la section de xsd suivante était logique :
    Je m'explique, est-ce qu'il est valide d'utiliser le type complexe HEADER à l'intérieur de sa propre déclaration? SI je pose cette question c'est parce que j'ai rencontré un problème avec jaxb qui me fait une vilaine erreur lors de la déclaration de mes classes java .

    Merci à tous pour vos réponses...



    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
    <xs:element name="SIS_1553_COMMANDE">
    <xs:annotation>
    <xs:documentation>Cette interface décrit les commandes 1553 hors chiffreur / déchiffreur.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
    <xs:sequence>
    <xs:element name="HEADER">
    <xs:complexType>
    <xs:complexContent>
    <xs:restriction base="HEADER"> ------------------------> légitime????????
    <xs:sequence>
    <xs:element name="SATELLITE" type="SATELLITE"/>
    <xs:element name="CONFIDENTIALITY" type="CONFIDENTIALITY"/>
    <xs:element name="PROVIDER" type="PROVIDER"/>
    <xs:element name="SCHEMA_REF">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="NAME">
    <xs:simpleType>
    <xs:restriction base="SCHEMA_NAME">
    <xs:enumeration value="file.xsd"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="VERSION">
    <xs:simpleType>
    <xs:restriction base="SCHEMA_VERSION">
    <xs:enumeration value="1.1"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="IF_REF" type="IF_REF"/>
    </xs:sequence>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    .... etc, etc....


    PS : je ne peux pas vous en dire lpus sur ce XSD qui est un fichier qui m'est fourni. Je ne l'ai pas écrit...

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    si tu as un type qui s'appelle HEADER et qui est bel est bien plus large que ce que tu définies dans la restriction, alors OUI

    De plus, tu n'utilise pas le type HEADER à l'intérieur de sa déclaration (ce qui serait invalide, surtout pour une restriction)

    tu utilises une restriction du type HEADER pour définir un élément HEADER, c'est pas pareil...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Par défaut
    Je te remercie pour tes remarques. J'ai investi le XSD un peu mieux ces derniers temps et je comprends mieux quelle est la place de chaque élément.
    Mon complexType HEADER est en effet défini dans un autre fichier inclu au début de celui-ci.

    Il est donc normal de se référer au complexType HEADER afin de réaliser une restriction (en tout cas théroriquement).

    En effet j'ai passé ouvert mon XSD avec XMLSpy qui râle un peu sur cette zone.

    Le message est le suivant :
    ----------------------------------------------------------
    The schema doesn't appear to be valid by itself (as a part of another schema, it might still be OK).
    Type '{anonymous}' is not a valid restriction of type 'HEADER'.
    Error location: xs:schema / xs:element / xs:complexType / xs:sequence / xs:element / xs:complexType / xs:complexContent / xs:restriction / @base
    Details
    rcase-NameAndTypeOK.3.2.5: Type definition '{anonymous}' (element 'SCHEMA_REF') is not validly derived given {extension, list, union} from type definition '{anonymous}' (element 'SCHEMA_REF').
    Hint: Base element 'SCHEMA_REF' has a local type definition which, necessarily, makes it unrelated to the restriction element's type '{anonymous}'.
    rcase-Recurse.2.2: Mandatory <xs:element name='SCHEMA_REF'> is missing in the <sequence>.
    derivation-ok-restriction.5.4: The content type <xs:sequence> is not a valid restriction of content type <xs:sequence>.
    ---------------------------------------------------------



    Le complexType HEADER est défini comme suit :

    ---------------------------------------------------------
    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
    <xs:complexType name="HEADER">
    		<xs:annotation>
    			<xs:documentation>PHR Header for SIS interface</xs:documentation>
    		</xs:annotation>
    		<xs:sequence>
    			<xs:element name="SATELLITE" type="SATELLITE"/>
    			<xs:element name="CONFIDENTIALITY" type="CONFIDENTIALITY"/>
    			<xs:element name="PROVIDER" type="PROVIDER"/>
    			<xs:element name="SCHEMA_REF">
    				<xs:complexType>
    					<xs:sequence>
    						<xs:element name="NAME" type="SCHEMA_NAME"/>
    						<xs:element name="VERSION" type="SCHEMA_VERSION"/>
    					</xs:sequence>
    				</xs:complexType>
    			</xs:element>
    			<xs:element name="IF_REF" type="IF_REF"/>
    		</xs:sequence>
    	</xs:complexType>
    --------------------------------------------------------

    Et le fameux type '{anonymous}' qui est décrit dans les erreurs XmlSpy est le complexType sous Header :

    --------------------------------------------------------
    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
    <xs:element name="HEADER">
    					<xs:complexType>
    						<xs:complexContent>
    							<xs:restriction base="HEADER">
    								<xs:sequence>
    									<xs:element name="SATELLITE" type="SATELLITE"/>
    									<xs:element name="CONFIDENTIALITY" type="CONFIDENTIALITY"/>
    									<xs:element name="PROVIDER" type="PROVIDER"/>
    									<xs:element name="SCHEMA_REF">
    										<xs:complexType>
    											<xs:sequence>
    												<xs:element name="NAME">
    													<xs:simpleType>
    														<xs:restriction base="SCHEMA_NAME">
    															<xs:enumeration value="file.xsd"/>
    														</xs:restriction>
    													</xs:simpleType>
    												</xs:element>
    												<xs:element name="VERSION">
    													<xs:simpleType>
    														<xs:restriction base="SCHEMA_VERSION">
    															<xs:enumeration value="1.1"/>
    														</xs:restriction>
    													</xs:simpleType>
    												</xs:element>
    											</xs:sequence>
    										</xs:complexType>
    									</xs:element>
    									<xs:element name="IF_REF" type="IF_REF"/>
    								</xs:sequence>
    							</xs:restriction>
    						</xs:complexContent>
    					</xs:complexType>
    --------------------------------------------------------

    Merci de vos conseils, je désespère un peu.

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Il semble que les séquences ne soient pas des restrictions acceptables pour une séquence existante (c'est ce que dis le message d'erreur)
    The content type <xs:sequence> is not a valid restriction of content type <xs:sequence>.
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

Discussions similaires

  1. [XSD] Inclusion d'un schéma dans un autre
    Par ploxien dans le forum Valider
    Réponses: 1
    Dernier message: 20/09/2006, 18h24
  2. [XSD] Conditions dans XML SCHEMA
    Par mehdi146 dans le forum Valider
    Réponses: 5
    Dernier message: 07/08/2006, 13h37
  3. [XSD] Où apprendre XML Schéma ?
    Par Fildz dans le forum Valider
    Réponses: 3
    Dernier message: 03/08/2006, 09h39
  4. [XSD] Comment créer un schema XML
    Par fle7a dans le forum Valider
    Réponses: 5
    Dernier message: 18/07/2006, 12h02
  5. [XSD] Ecriture d'un schema
    Par GLDavid dans le forum Valider
    Réponses: 4
    Dernier message: 25/11/2005, 17h02

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