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] unicité d'une seule valeur d'une énumération


Sujet :

Valider XML

  1. #1
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut [XSD] unicité d'une seule valeur d'une énumération
    Salut a tous,

    Considérons le morceau de schéma suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <xsd:element name="unElement">
    	<xsd:complexType>
    		<xsd:attribute name="default" use="optional" default="false">
    		        <xsd:simpleType>
    			        <xsd:restriction base="xsd:string">
    			                <xsd:enumeration value="true" />
    			                <xsd:enumeration value="false" />
    			        </xsd:restriction>
    		       </xsd:simpleType>
    	        </xsd:attribute>
             </xsd:complexType>
    </xsd:element>
    je voudrais arriver à rendre unique l'utilisation de l'attribut default avec comme valeur true mais laisser la possibilité de mettre plusieurs autres unElement avec default à false

    c'est à dire que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <unElement default="true" />
    <unElement default="false" />
    <unElement default="false" />
    serait valide, mais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <unElement default="true" />
    <unElement default="true" />
    <unElement default="false" />
    Est-ce que c'est possible?
    Pour le moment j'ai mis une contrainte d'unicité sur default avec sa valeur par défaut à false mais bon, ca ne me satisfait pas tout à fait.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Je crois bien que ce n'est pas possible (je me demande si RelaxNG ne l'implémente pas ?).

    Pour le moment j'ai mis une contrainte d'unicité sur default avec sa valeur par défaut à false mais bon, ca ne me satisfait pas tout à fait.
    La contrainte d'unicité ne te permettra pas d'avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <unElement default="true" />
    <unElement default="false" />
    <unElement default="false" />
    ERE
    Quand une tête pense seule, elle devient folle.

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Je sais bien, c'est ce qui me gene. J'ai mis la valeur par défaut à false pour éviter la répétition, mais ca reste de la bidouille.

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/01/2012, 13h50
  2. Réponses: 3
    Dernier message: 13/10/2010, 19h09
  3. récuperer une seule valeur depuis une PS
    Par Msysteme dans le forum C#
    Réponses: 1
    Dernier message: 15/03/2010, 13h01
  4. Réponses: 11
    Dernier message: 06/12/2005, 08h23

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