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 :

Valeur d'attribut unique


Sujet :

Valider XML

  1. #1
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Points : 115
    Points
    115
    Par défaut Valeur d'attribut unique
    Bonjour,

    Voici un extrait de mon XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <settings class="toto">
                <setting name="monParam">
                  <value>valeur</value>
                </setting>
                <setting name="toto">
                  <value environnement="1">10</value>
                  <value environnement="2">20</value>     
                  <value>42</value>     
                </setting>
    </settings>
    J'ai un fichier XSD permettant de valider mon xml. Dans mon schéma, j'ai mis une contrainte pour dire :
    L'attribut environnement est optionnel. Il doit être unique.
    Dans mon esprit, cela veut dire :
    * Une seule balise possible avec la même valeur d'environnement
    * Une seule balise possible avec un environnement non renseigné (l'attribut étant optionnel)

    Le premier point fonctionne, le second non.

    Une idée ?

    Mon xsd :
    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    <xs:complexType name="settings">
        <xs:sequence maxOccurs="unbounded">
          <xs:element name="setting" type="setting">
            <xs:unique name="unique-setting-environment">
              <xs:selector xpath="tag:value"/>
              <xs:field xpath="@environnement"/>
            </xs:unique>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
     
      <xs:complexType name="setting">
        <xs:sequence maxOccurs="unbounded">
          <xs:element name="value" type="value"/>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:complexType>
     
      <xs:complexType name="value">
        <xs:simpleContent>
          <xs:extension base="xs:string">
            <xs:attribute name="environnement" type="common:EnvironnementKey" use="optional" default=""/>
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    Merci

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Il y a un problème lors de la conception du modèle de donnée et du XML.
    S'il n'est optionnel qu'une seul fois, alors c'est l'équivalent d'une valeur, et cela doit être codé comme telle.
    C'est un peu comme si dans une colonne de table sql vous disiez qu'un enregistrement peut être nul mais un seul...
    Je ne suis pas sûr que cela soit codable en XML Schema (ni dans un autre concept de validation) sans contrainte d'ordonnancement et se sera alors une véritable usine à gaz

Discussions similaires

  1. Réponses: 20
    Dernier message: 23/03/2015, 17h41
  2. [clone] cloner également la valeur des attributs
    Par danyboy85 dans le forum Langage
    Réponses: 25
    Dernier message: 08/07/2006, 00h00
  3. changer la valeur des attribut
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/02/2006, 14h27
  4. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44
  5. [Débutant] somme de la valeur d'attributs...
    Par SteelBox dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 10/07/2004, 22h38

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