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] Probleme <key>


Sujet :

Valider XML

  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut [XSD] Probleme <key>
    Bonjour à tous,

    J'ai un problème en utilisant <key>. J'ai le schema XML suivant d'une entreprise:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://www.corp.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://www.corp.com">
    	<xs:element name="Entreprise">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name="nom" type="xs:token"/>
    			</xs:sequence>
    		</xs:complexType>
    		<xs:key name="pk__Entreprise_nom">
    			<xs:selector xpath="."/>
    			<xs:field xpath="nom"/>
    		</xs:key>
    	</xs:element>
    </xs:schema>
    Donc je mets une clé sur le nom de l'entreprise, ensuite je fais un document XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Entreprise xmlns="http://www.corp.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.corp.com C:\DOKUME~1\XSD\Entreprise.xsd">
    	<nom>Hello</nom>
    </Entreprise>
    Lorsque je valide mon document XML, celui-ci n'est pas valable et j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "The field(s) 'nom' of the identity constraint 'pk__Entreprise_nom' did not match within the scope of element <Entreprise>"
    Pouvez-vous me dire d'où vient cette erreur?

    Merci par avance !

  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
    il suffit d'inverser la selection xpath

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<xs:key name="pk__Entreprise_nom">
    			<xs:selector xpath="nom"/>
    			<xs:field xpath="."/>
    		</xs:key>

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut
    Merci pour votre réponse.
    Effectivement avec cette inversion, le "validateur" accepte.
    J'ai essayé entre temps comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xs:key name="pk__Entreprise_nom">
    	<xs:selector xpath="Entreprise"/>
    	<xs:field xpath="nom"/>
    </xs:key>
    Et cela fonctionne aussi. Mais ma question est quelle solution est sémentiquement bonne? C'est-à-dire que la clé est bien le nom de l'entreprise.

    Et si je veux que ma clé soit composée de plusieurs champs. Admettons que je rajoute un ID à l'entreprise. Puis-je faire comme ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xs:key name="pk__Entreprise_nom">
    	<xs:selector xpath="Entreprise"/>
    	<xs:field xpath="ID"/>
    	<xs:field xpath="nom"/>
    </xs:key>
    Et comment puis-je faire avec votre solution?

    Merci d'avance de votre aide !

Discussions similaires

  1. Probleme de Key event sur le module Graphique
    Par Dlieu dans le forum Caml
    Réponses: 5
    Dernier message: 05/12/2007, 18h17
  2. probleme foreign key avec clé composée
    Par jccanut dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/10/2007, 13h05
  3. [XSLT][XSD]Problème d'include
    Par ploxien dans le forum Valider
    Réponses: 1
    Dernier message: 20/09/2006, 20h41
  4. Access - Lien ODBC Oracle : Probleme Primary Key
    Par mr_foxy dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2006, 14h01
  5. [xml et xsd ] probleme de declaration
    Par TabrisLeFol dans le forum Valider
    Réponses: 3
    Dernier message: 02/11/2005, 10h22

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