Définir un Ensemble de règles
Un Ensemble de règles de schéma peut être ouvert pour être édité dans l'Éditeur de règles de schéma (capture d'écran ci-dessous). Vous pouvez ensuite créer, éditer et supprimer des ensembles de règles dans ce fichier d'Ensemble de règles de schéma. Pour ouvrir un Ensemble de règles dans l'Éditeur de règles de schéma, procéder comme suit :
1.Sélectionner l'Ensemble de règles dans la liste de l'Ensemble de règles dans la fenêtre Info.
2.Cliquer sur le bouton de menu contextuel de cet Ensemble de règles.
3.Dans le menu contextuel qui apparaît, sélectionner Éditer règles.
Le dialogue Éditeur de règles de schéma comporte deux volets :
•Un volet Règles (dans la partie supérieure de l'Éditeur), dans lequel vous pouvez ajouter et supprimer des règles. Une ligne vide pour une règle peut être ajoutée ou insérée en cliquant sur le bouton respectif (Ajouter ou Insérer) situé dans la partie supérieure gauche du volet. Une règle peut être supprimée en la sélectionnant et en cliquant sur le bouton Supprimer dans la partie supérieure droite du volet. Chaque règle dans ce volet a un nom, un texte descriptif et un niveau de sévérité (si la règle est contredite, la validation sera définie pour retourner une erreur ou un avertissement).
•Un volet Règles (dans la partie inférieure de l'Éditeur). Ce volet affiche les détails de la règle qui a été sélectionnée dans le volet Règles situé au-dessus, et permet l'édition des détails de la règle. Pour plus de détails concernant la définition des règles, voir la section Définir une règle ci-dessous.
Une fois que les règles dans un fichier d'Ensemble de règles ont été éditées, cliquer sur Enregistrer pour enregistrer les règles dans le Fichier d'Ensemble de règles.
Définir une règle
Pour définir ou éditer une règle, sélectionner la règle depuis la liste dans le volet Règles supérieur. La définition de la règle sera affichées dans le volet Règles et peut être éditée. La capture d'écran ci-dessous affiche une règle qui peut être définie comme suit : Si un type complexe est une extension d'un type simple, il doit avoir un type enfant AttributeGroup.
L'ensemble de condition Valider et l'ensemble de condition Filtre :
•Chaque règle dispose d'un ensemble de conditions Valider et d'un ensemble de conditions Filtre (voir première colonne dans la capture d'écran ci-dessus).
•L'ensemble des conditions Filtre doit finalement évaluer à Vrai pour que la condition Valider soit évaluée.
•Chaque ensemble de conditions (Valider ou Filtre) consiste en un ou plusieurs Groupes de Condition. Chaque Groupe de Condition contient une ou plusieurs conditions. Dans la capture d'écran ci-dessus, l'ensemble Valider contient un Groupe de Condition d'une condition, et l'ensemble Filtre contient trois Groupes de Condition, contenant chacun une condition. Dans la capture d'écran ci-dessous, l'ensemble Filtre contient trois Groupes de Condition : le premier contient deux conditions, le second contient trois conditions et le troisième contient une condition.
•Chaque condition individuelle peut être niée en cochant sa sa case Not (située à gauche de la condition).
•Dans un Groupe de Condition, les connecteurs logiques et ou ou indiquent, respectivement, si toutes les conditions dans le groupe ou si une condition dans le Groupe de Condition doivent évaluer à true pour que tout le Groupe de condition évalue à true. Dans la GUI, ces opérateurs logiques se trouvent à l'intérieur des deux colonnes des opérateurs logiques.
•Chaque Groupe de Condition peut être nié en cochant la case Not (située à gauche de l'opérateur logique du groupe de condition).
•Le connecteur logique externe "et" ou "ou" indique, respectivement, si tous les Groupes de condition dans l'ensemble (Valider ou Filtre) ou si un Groupe de condition doit évaluer à true pour que tout l'ensemble (Valider ou Filtre) évalue à true.
•Les connecteurs logiques peuvent être changés en choisissant l'option appropriée dans la liste de choix pour le connecteur logique externe (le connecteur de Groupe de Condition). La valeur des connecteurs logiques externes (les connecteurs pour les conditions dans un Groupe de condition) sont tous placés sur la valeur opposite de celle du connecteur logique externe.
•Un groupe de condition ou une Condition peut être ajoutée ou insérée relativement à la condition sélectionnée. Pour ce faire, sélectionner une condition, puis cliquez sur le bouton Ajouter ou Insérer (situé en haut et à gauche du volet) et puis en sélectionnant l'item requis (Groupe de condition ou Condition) à partir du menu (voir capture d'écran ci-dessous).
Types de condition
Une condition peut appartenir à un des trois groupes (aussi voir capture d'écran ci-dessous):
•Type de composant (dans la liste déroulante les types commençant avec Composant ; voir capture d'écran ci-dessous)
•Type de propriété (Valeur de propriété)
•Une combinaison de types de composant et de propriété (types comportant Propriété et Composant dans leurs noms)
Le type d'une condition est choisi depuis la liste déroulante dans la colonne Condition de la condition (capture d'écran ci-dessus). Chacun de ces trois groupes de conditions est décrit ci-dessous.
Conditions du type de composant
En ce qui concerne les conditions de type Composant (types commençant avec Composant), le composant doit être spécifié par la suite dans la colonne Composant (voir capture d'écran ci-dessous). Le composant est sélectionné depuis la liste déroulante dans le champ Composant d'une sous-condition. Puisqu'aucun autre champ (Propriété, Valeur de comparateur) ne doit être défini pour des conditions du type Composant, tous les autres champs sont grisés.
Dans la capture d'écran ci-dessus, la condition Filtre spécifie que la règle concerne les composants de type Élément. Si la condition Valider spécifie que le composant doit avoir un enfant de type Notation, alors la règle complète peut être déclarée comme : un composant Élément doit avoir un enfant de type Notation. Si l'option NOT de la condition Valider était cochée, la règle serait déclarée comme : un composant Élément ne doit pas avoir un enfant de type Notation.
Conditions de type Propriété
La condition du type Propriété est Valeur de propriété (voir capture d'écran ci-dessous). Ce type de condition spécifie la nature d'une propriété. Il nécessite dont des entrées dans les colonnes Propriété et Comparateur, et, en option, une entrée dans la colonne Valeur. Aucune entrée n'est nécessaire dans la colonne Composant, qui est donc grisée. Les propriétés recensées dans les listes déroulantes de la colonne Propriété incluent non seulement les attributs XML (comme default et maxOccurs) mais aussi les propriété logiques des composants (comme derivedBy).
La capture d'écran ci-dessus montre une règle dans laquelle la propriété Modèle a une valeur égale à Tout et est niée (avec la case à cocher Not). En conjonction avec le filtre dans le composants Groupe de modèle, cette règle déclare simplement qu'un schéma ne doit pas contenir d'élément xsd:all.
Note : Veuillez noter les points suivants :
•Lorsque vous utilisez le comparateur IsQNameEqualTo, la valeur correspondante doit être écrite sous la forme : {URI}localName. Par exemple, une valeur pourrait être : {http://www.w3.org/2001/XMLSchema}NOTATION.
•La propriété default peut être présente et vide (<element name default=""/>) ou elle peut être absente (<element name/>).
Conditions qui combinent les types Composant et Propriété
Les conditions qui sont une combinaison des types Composant et Propriété sont :
•ComponentHasChildOfKindWithPropertyValue: spécifie le type de composant d'un élément enfant et la valeur de propriété.
•PropertyResolvesToComponentOfKind: une propriété est spécifiée qui résout à un type de composant. Les colonnes Comparateur et Valeur sont vides.
Nier une condition
Une condition est niée en cochant la case Not située juste à sa gauche (les cases à cocher Not internes). Un groupe de condition est nié en cliquant sur la case Not située à gauche du connecteur logique pour les conditions dans ce groupe de condition.