Rechercher : dans
Par :

[XML Schema] Ajout d'attributs

Dernière réponse le 2 aoû 2009 à 10:45:25 Gantark, le 7 jui 2008 à 11:14:11 
 Signaler ce message aux modérateurs

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 :

<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 :
   <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 :
   <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.

Meilleures réponses pour « [XML Schema] Ajout d'attributs » dans :
Comment ajouter des gadgets à Windows 7 VoirDans Windows 7, la barre latérale qui contenait les gadgets sous Windows Vista a disparu. Cependant, les gadgets, eux, sont bel et bien restés. Il est très simple d'en ajouter des nouveaux. Commencez par effectuer un clic droit sur le bureau, puis...
Ajouter la langue arabe au clavier français sous Windows VoirPour ajouter le clavier en arabe sous Windows XP il suffit d'aller dans : Démarrer -> Panneau de configuration -> Options régionales et linguistiques Dans l'onglet "Langue" (ou Clavier et langues), cocher la case "Installer les fichiers pour les...
[Windows 2000] Affichage Ajout/suppression de programmes VoirUn beau jour, vous voulez désinstaller un programme mais la fenêtre Ajout/suppression de programmes n'affiche que du blanc et vous avez un message d'erreur du genre : Une erreur inattendue s'est produite Cet objet ne gère pas cette propriété ou...
Télécharger DriveImage XML VoirDriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de sauvegarde, à la manière de Norton Ghost. Ce programme permet : De créer des images des lecteurs logiques et des...
Configuration du serveur LDAP (OpenLDAP) VoirIntroduction à LDAP Avant de commencer la configuration, il est conseillé d'établir l'inventaire des objets et des informations à stocker dans l'annuaire. Dans le cadre de cet article, nous nous intéresserons à une gestion centralisée des carnets...
LDAP - Le modèle d'information VoirIntroduction au modèle d'information Le modèle d'information du protocole LDAP définit le type de données pouvant être stocké dans l'annuaire LDAP. On appelle entrée (en anglais entry) l'élément de base de l'annuaire. Chaque entrée de l'annuaire...
Structure d'un document XML VoirQu'est-ce que le XML? La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), permettant de créer des documents structurés à l'aide de balises. Une balise est une...

1

 ftiercel, le 2 aoû 2009 à 10:45:25

À ma connaissance, on ne peut pas fixer de contraintes particulières à des attributs ou des sous-éléments selon la valeur que prend un autre attribut. À part le choice, je n'ai rien d'autre à te proposer. Si tu as besoin d'aide, il y a ce tutoriel :

http://fr.wikiversity.org/wiki/Extensible_Markup_Language/XM­L_Schema

Répondre à ftiercel