Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Discussion: Dupliqué un groupe

  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    novembre 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 40
    Points : 13
    Points
    13

    Par défaut Dupliqué un groupe

    Bonjour à tous,

    Je génère un fichier XML à partir du XSD (partiel) ci-dessous :

    Code :
    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
     
            <xs:element name="structure">
              <xs:complexType>
     
                <xs:sequence>
                  <xs:element name="volume">
                    <xs:complexType>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="255"/>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
     
                  <xs:element name="repertoire">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="255"/>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence> 
     
              </xs:complexType>
            </xs:element>
    Résultat en XML (partiel) :

    Code :
    1
    2
    3
    4
    5
     
    <structure>
    	<volume>test1-1</volume>
    	<repertoire>test1-1</repertoire>
    </structure>
    Je souhaiterais pour voir dupliqué le groupe (volume et répertoire) autant de fois que souhaité mais sans créer une nouvelle "structure", comment dois-je modifié mon XSD ?

    Résultat souhaité :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <structure>
    	<volume>test1-1</volume>
    	<repertoire>test1-2</repertoire>
     
    	<volume>test2-1</volume>
    	<repertoire>test2-2</repertoire>
     
    	<volume>test3-1</volume>
    	<repertoire>test3-2</repertoire>
     
    </structure>
    Merci d'avance .

  2. #2
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 733
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 733
    Points : 16 080
    Points
    16 080

    Par défaut

    Tu ne peux pas vraiment. XSD n'a pas de syntaxe pour osciller entre <volume> et <repertoire>.

    Tu pourrais mettre autant de <volume> que tu veux et autant de <repertoire> que tu veux, mais ce ne serait pas forcément le même nombre, et ce serait dans n'importe quel ordre.

    Avec XSD la seule solution serait de chapeauter chaque paire <volume>/<repertoire> avec un élément.


    Edit: complètement faux, j'avais compliqué le problème tout seul dans ma tête :p

  3. #3
    Membre Expert
    Inscrit en
    octobre 2011
    Messages
    672
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 672
    Points : 1 174
    Points
    1 174

    Par défaut

    Je souhaiterais pour voir dupliqué le groupe (volume et répertoire) autant de fois que souhaité mais sans créer une nouvelle "structure", comment dois-je modifié mon XSD ?
    Oui, comme ça:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
            <xs:element name="structure">
              <xs:complexType>
     
                <xs:sequence maxOccurs="unbounded">   <!-- un facet rajouté ici -->
                  <xs:element name="volume">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="255"/>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
     
                  <xs:element name="repertoire">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="255"/>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence> 
     
              </xs:complexType>
            </xs:element>
    ps ligne#7 est un typo. Il faut bien-entendu l'enlever.
    <xs:complexType>

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •