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

XML/XSL et SOAP Discussion :

XSD - éléments à 2 occurences mais avec attribut distinct fixe


Sujet :

XML/XSL et SOAP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut XSD - éléments à 2 occurences mais avec attribut distinct fixe
    (Re)bonjour, me voilà avec une nouvelle question XSD!

    Cette fois, j'ai déclaré un complexType, qui contient 2 occurrences du même élément mais dont la valeur de l'attribut est distincte ET fixée!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xs:complexType name="DefinitionsZones">
      <xs:sequence>
        <xs:element name="Zone1" minOccurs="2" maxOccurs="2">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="TypeBase_Zone">
                <xs:attribute name="Borne" type="xs:string">
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element> 
      </xs:sequence>
    </xs:complexType>

    Et donc en fait, pour mes 2 occurrences, j'aimerais que pour l'un, l'attribut "Borne" soit fixé à "Début" et pour l'autre à "Fin"...
    Comment définir cela

    Merci!

  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
    Dans le cadre de w3 xml schema v1.0, il n'est pas prêt de s'exprimer ce genre de contrainte. Ce n'etait pas à l'époque son ambitious/mandat de le faire.

    Dans le cadre encore ayant un support très limité de w3 xml schema v1.1, ça devient exprimable. Si ça vous fait plaisir de se faire éduquer, je peux vous montrer comment ça se faire.
    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
    16
    17
    18
    <xs:complexType name="DefinitionsZones">
      <xs:sequence>
        <xs:element name="Zone1" minOccurs="2" maxOccurs="2">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="TypeBase_Zone">
                <xs:attribute name="Borne" type="xs:string" />
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element> 
      </xs:sequence>
      <xs:assert test="
        (Zone1[1]/@Borne='Début')
        and
        (Zone1[2]/@Borne='Fin')
      " />
    </xs:complexType>
    Mais, je proposerais de faire contourner l'impossible comme c'est votre schema à vous pas de quelqu'un autre, vous nommez différament le premier et le deuxième élément comme 'debut' puis 'fin' et ça y est...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut
    Merci,

    finalement, au lieu de faire 2 éléments de type "Zone"

    j'ai défini le type "Zone" avec 2 éléments enfants "Début" et "Fin"

    C'est plus simple je pense!

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    C'est sûr que c'est plus simple.
    Mais puisque tu en es à changer le schéma, il sera encore plus simple de n'utiliser qu'un seul élément :

    remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Debut/>
    <truc>des machins</truc>
    <Fin/>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <zone>
      <truc>des machins</truc>
    </zone>
    Le principe de XML, tout ça...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Débutant] accéder aux éléments d'un tableau avec l'instruction fixed
    Par goutteg dans le forum C#
    Réponses: 1
    Dernier message: 15/05/2012, 08h38
  2. Réponses: 0
    Dernier message: 18/08/2011, 11h21
  3. Distinct mais avec tout les champs !
    Par kaayna dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/04/2011, 11h09
  4. Réponses: 1
    Dernier message: 08/11/2010, 15h16
  5. [XSD] Complexe de type all mais avec maxoccur
    Par Je@nb dans le forum Valider
    Réponses: 3
    Dernier message: 06/02/2005, 19h18

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