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 :

[XML Schema] Assigner des attributs avec contrainte


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Par défaut [XML Schema] Assigner des attributs avec contrainte
    Bonjour,

    Je suis en train de rédiger un schema XSD pour un fichier .XML.
    Je souhaiterais ajouter une contrainte pour ne pouvoir n'assigner des attributs que si un autre a une valeur particulière, ou si ce n'est pas possible, au moins ne pas pouvoir assigner certains attributs si d'autres le sont déjà.

    Voici le bout de code :
    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
    27
    28
    29
    30
    31
    <xs:element name="activity">
       <xs:complexType>
          <xs:sequence minOccurs="0">
             <!-- <xs:element ref="startDate" minOccurs="0"/>
             <xs:element ref="endDate" minOccurs="0"/> -->
             <xs:element ref="activity" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element ref="account" minOccurs="0" maxOccurs="1"/>
          </xs:sequence>
          <xs:attribute name="id" type="xs:string" use="required"/>
          <xs:attribute name="name" type="xs:string" use="required"/>
          <xs:attribute name="start" type="xs:string" use="required"/>
          <xs:attribute name="end" type="xs:string" use="required"/>
          <xs:attribute name="type" use="required">
             <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                   <xs:enumeration value="Root"/>
                   <xs:enumeration value="Resource"/>
                   <xs:enumeration value="Training"/>
                   <xs:enumeration value="Project"/>
                   <xs:enumeration value="Presales"/>
                </xs:restriction>
             </xs:simpleType>
          </xs:attribute>
          <!-- Attributes for a task -->
          <xs:attribute name="comment" type="xs:string"/>
          <xs:attribute name="probability" type="xs:int"/>
          <xs:attribute name="duration" type="xs:int"/>
          <!-- Attributes for a resource -->
          <xs:attribute name="role" type="xs:string"/>
       </xs:complexType>
    </xs:element>

    Dans l'idéal, je souhaiterais que l'on ne puisse assigner ces attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       <xs:attribute name="comment" type="xs:string"/>
       <xs:attribute name="probability" type="xs:int"/>
       <xs:attribute name="duration" type="xs:int"/>
    à l'élément "activity" que si l'attribut "type" a la valeur "Training", "Presales" ou "Project", et cet attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <xs:attribute name="role" type="xs:string"/>
    à l'élément "activity" que si l'attribut "type" a la valeur "Resource".

    Si ce n'est pas possible, je souhaiterais que si on assigne les trois attributs ci-dessus, on ne puisse pas assigner le dernier, et vice versa.

    Pour la seconde solution, j'ai pensé à choice, mais je ne peux pas l'insérer à cet endroit. Je me demande si ce n'est pas à cause de la séquence qui a déjà été déclarée plus haut.
    Je suis débutant en XML Schema mais j'ai pourtant besoin d'implémenter ces règles relativement complexes.

    Merci de votre aide,
    Rémi.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    impossible avec xml schema 1.0, à essayer avec schematron

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Ca ne traduirait pas un défaut de conception? Tu essayes de mettre dans le même élément des choux et des lapins?

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/03/2009, 14h51
  2. Réponses: 13
    Dernier message: 12/01/2006, 10h45
  3. Réponses: 6
    Dernier message: 19/12/2005, 15h06
  4. [SimpleXML] XML et parcours des noeuds avec foreach
    Par kult dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 15/11/2005, 15h36
  5. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23

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