Bonjour à tous,
Je débute tout juste le langage XML et notamment les XSD. Je me suis beaucoup renseigné et j'ai un peu prêt compris l'ensemble (mis à part certaine subtilité).
J'ai un code un peu compliqué à faire sur la gestion d’évènement.
Pour simplifier j'ai des utilisateurs, et des évènements. Pour chaque évènement je souhaiterai pouvoir mettre plusieurs utilisateurs en tant que participant et un autre utilisateur en tant que créateur de l’évènement.
Pour cela j'ai fait une Key sur l'attribut id des utilisateurs :
Et dans mon type evenement j'ai créé un champ utilisateur avec un entier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xs:key name="PkUtilisateur"> <xs:selector xpath="utilisateur"/> <xs:field xpath="@id"/> </xs:key>
J'ai ensuite rajouter un keyref sur ce champ
Mon schéma xsd est validé à l'aide de XMLSpy que j'utilise, mais lorsque je fait mon fichier XML lorsque je crée un évenement j'ai un problème. Si je souhaite ajouté plusieurs participants (comme ci dessous) j'ai le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xs:keyref name="FkRefParticipantEvnt" refer="PkUtilisateur"> <xs:selector xpath="evenement"/> <xs:field xpath="participant"/> </xs:keyref>Field '{anonymous}' of identity constraint 'FkRefParticipantEvnt' evaluates to a node-set with more than one member.Si je met un seul participant ça marche par contre très bien, je ne comprends pas se que je fait de mal?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <evenement> <nom>Lancement Iphone4</nom> <horaire> <dateDebut>2010-12-12</dateDebut> <dateFin>2010-12-13</dateFin> </horaire> <localisation>2</localisation> <createur>8</createur> <participant>1</participant> <participant>2</participant> </evenement>
Je met mon xsd en pièce jointe pour plus de précision, si quelqu'un peut m'aider ou me conseiller
Cordialement
Guillaume
Partager