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] equivalent de (x1|x2)* en XML Schema


Sujet :

Valider XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 69
    Points
    69
    Par défaut [XSD] equivalent de (x1|x2)* en XML Schema
    Bonjour bonjour,

    Je cherche à reproduire en XMLSchema l'équivalent de la dtd suivante:
    C'est à dire que dans un élément on peut rajouter dans n'importe quel ordre et en n'importe quelle quantité soit un élement x1, soit un élement x2, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <parent>
       <x1/>
       <x1/>
       <x2/>
       <x1/>
       <x2/>
       ...
    </parent>
    l'inconvénient de <sequence> est d'imposer l'ordre des éléments, par exemple tous les x1 puis tous les x2, ce que je chercherais à éviter. J'avais pensé imbriquer un bloc <choice> dans une <sequence> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xs:sequence>
      <xs:choice>
        <xs:element name="x1" type="type1"/>
        <xs:element name="x2" type="type2"/>
      </xs:choice>
    </xs:sequence>
    mais je ne sais pas s'il est permis de spécifier le nombre d'occurrences du choice...
    Pourriez vous éclairer ma lanterne ?

    merci par avance
    Thomas

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:element name="x1"  minOccurs="0" maxOccurs="unbounded"/>

    unbounded= ilimité

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 69
    Points
    69
    Par défaut
    Bonjour et merci !
    Mais petite question complémentaire... si je fais comme tu as dis, est ce que cela ne signifie pas que dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xs:sequence>
      <xs:choice>
        <xs:element name="x1" type="type1" maxOccurs="unbounded"/>
        <xs:element name="x2" type="type2" maxOccurs="unbounded"/>
      </xs:choice>
    <xs:sequence>
    je choisis soit un nombre indéterminé de x1, soit un nombre indéterminé de x2 ?
    je me demandais justement s'il était possible de mettre le maxOccurs="unbounded" sur la balise <xs:choice>... ce qui me donnerait le résultat souhaité... (je pense)

    Merci
    Thomas

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ben alors faut mettre ton attribut unbounded sur le balise qui contient x1 et x2!

    Pas sur le choice...
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 69
    Points
    69
    Par défaut
    OK compris ! certaines fois digestion rime avec bouletisation...
    voilà donc le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <xs:element name="racine">
      <xs:complexType>
        <xs:sequence>
          <xs:element maxOccurs="unbounded">
            <xs:complexType>
              <xs:choice>
                <xs:element name="x1" type="type1"/>
                <xs:element name="x2" type="type2"/>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    Merci encore !
    Thomas

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/07/2006, 08h47
  2. [XSD] editeur xml schema
    Par ameliepim dans le forum Valider
    Réponses: 4
    Dernier message: 13/06/2006, 15h29
  3. [XSD] [XML Schema]Validation sans mettre le xsd dans le xml
    Par sikapoch dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 07/06/2006, 14h23
  4. [XML Schema] Représenter une auto-relation en XSD
    Par Benne dans le forum Valider
    Réponses: 1
    Dernier message: 16/03/2006, 17h00
  5. [XSD] XML Schema
    Par sleepy2002 dans le forum Valider
    Réponses: 3
    Dernier message: 15/09/2003, 09h33

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