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 :

Choix exclusif d'attributs (équivalent de xsd:choice pour les attributs) [XSD]


Sujet :

Valider XML

  1. #1
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut Choix exclusif d'attributs (équivalent de xsd:choice pour les attributs)
    Bonjour,
    J'ai trouvé un sujet très intéressant parlant de cette possibilité : lien = http://www.developpez.net/forums/d32...oice-attribut/
    Ca répond parfaitement à ce que je cherche. Mais comme souvent impossible de faire en sorte que ça fonctionne.

    J'ai scolairement copié l'exemple donné dans le topic :
    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
    <xsd:element name="myElement">
     <xsd:complexType>
      <xsd:simpleContent>
       <xsd:extension base="xsd:string">
        <xsd:attribute name="a" type="xsd:string"/>
        <xsd:attribute name="b" type="xsd:string"/>
        <xsd:attribute name="c" type="xsd:string"/>
       </xsd:extension>
      </xsd:simpleContent>
     </xsd:complexType>
     <xsd:key name="att">
      <xsd:selector xpath="."/>
      <xsd:field xpath="@a|@b"/>
     </xsd:key>
    </xsd:element>
    Pour teste, j'ai écrit le XML suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <myElement a="aa" b="bb" c="cc"/>
    Et aucun souci. le XML est validé.

    J'utilise Eclipse avec jdk1.7.0_45
    Je pencherais pour une mauvaise config dans Eclipse avec un mauvais "compilateur" XSD. Le fameux truc s'appelant XercesJ. Mais je n'ai pas trouvé où exactement ça se passe.

    Quelqu'un aurait déjà été confronté et réussi à régler le pb ?

    Merci d'avance pour vos réponses.
    Cordialement.

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Choix exclusif d'attributs (équivalent de xsd:choice pour les attributs)
    Dans le langage de w3c schéma version 1.0, c'est catégorique : il n'existe ce genre d'expression et c'est impossible de le faire.

    Dans le lien référentié
    je crois maintes assertions et conclusions là sont fausses.

    Dans la version 1.1, la situation s'améliore de beaucoup et il est maintenant tout à fait possible de le faire dedans le cadre du langage de w3c schéma. Au titre d'exemple tout comme la question posée ici et même plus compliqué, vous pouvez vous référer mes interventions dans ce lien :
    http://www.developpez.net/forums/f34.../xml-xsl-soap/

  3. #3
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut
    Bonjour Tsuji,
    Tout d'abord merci pour ta réponse.

    J'avoue que j'étais perplexe avec ta réponse.
    J'ai passé toute la journée à réinstaller Eclipse et JDK pour les mettre à jour afin de prendre en charge le XML V1.1. Mais je n'ai pas réussi. Ou je suis passé à côté et je n'ai pas tout compris. J'ai même tenté de télécharger XercesJ en voulant mettre à jour les jar des pugin Eclipse. Pas réussi non plus.

    MAIS, au final, je suis tombé sur un topic avec une réponse écrite par tes soins qui m'a donnée LA solution. lien = http://www.tek-tips.com/viewthread.cfm?qid=1364846

    Tout y est et ça marche impec.
    Alors un grand merci à toi pour ce partage et le temps que tu y consacre.
    Bye.

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Bonjour,

    Quand je dis version 1.1 ou version 1.0, je dis toujours la version de recommendation de w3c xml schéma, non pas celle de w3c xml - ce ne sont pas les mêmes choses, bien entendu.

    La version 1.1 est maintenent assez bien supportée par xerces-j v2.11.x. Mais il faut le télécharger indépendamment.

    -tsuji

  5. #5
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut
    Bonjour Tsuji,
    Merci encore pour cette précision.
    Je m'en suis un peu douté lors de mes essais vendredi. Mais merci pour cette éclaircissement.

    Dernière chose si tu veux bien, concernant XercesJ, ok, je peux le télécharger indépendamment. Mais ce sera pour une utilisation "manuelle" depuis un code souhaitant valider un schéma xml ?
    On ne peut pas l'intégrer dans l'environnement Eclipse pour le developpement ? Enfin, je ne suis pas sûr car j'ai essayé en vain des trucs en ce sens vendredi mais je ne sais pas si j'avais les bonnes conditions pour réussir ou si carrément ce n'est pas possible.

    Merci d'avance pour ta réponse. Ensuite je te fiche la paix

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Si vous voulez utiliser les supports de fonctionalité schema v1.1 apportée par xerces-j 2.11.x en intégrant avec Eclipse, c'est fait comme n'importe quelle d'autre bibliothèque. Il suffit de faire pointer les jars externes dans les parcours de "built" et de faire le même dans la configuration de "run". Là, c'est comme d'habitude.

    Pourtant dans l'établissement de l'instance de SchemaFactory, vous faites la précision comme ça.
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    SchemaFactory factory=SchemaFactory.newInstance("http://www.w3.org/XML/XMLSchema/v1.1");
    C'est tout ce qu'il faut faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSD] Equivalent du <choice> pour les attribut
    Par BigOne55 dans le forum Valider
    Réponses: 6
    Dernier message: 14/03/2014, 19h24
  2. [XSD] Problème de vérification de choix pour les attributs
    Par yeti47 dans le forum Valider
    Réponses: 2
    Dernier message: 16/01/2012, 22h43
  3. [XSD][Débutant] Lister les attributs
    Par jerzy59 dans le forum Valider
    Réponses: 3
    Dernier message: 28/08/2009, 23h00
  4. [xsd] Contrainte entre les attributs
    Par XtoX dans le forum Valider
    Réponses: 3
    Dernier message: 03/04/2009, 11h00
  5. Réponses: 7
    Dernier message: 13/02/2006, 17h13

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