Composants globaux
Les composants globaux sont ceux qui sont ajoutés en tant qu'enfants de l'élément de niveau supérieur xs:schema (contrairement aux composants locaux, qui sont créés dans le cadre d'autres composants). Certains composants globaux, comme des types complexes, des éléments et des attributs peuvent être référencés par d'autres composants dans le schéma.
Créer des composants globaux dans l'Aperçu de schéma
Les composants globaux sont généralement créés et édités dans Aperçu de schéma. Dans Aperçu de schéma, ils sont ajoutés par le biais des icônes Ajouter ou Insérer. Le modèle de contenu d'un composant global (si le composant global peut en avoir un, voir la table ci-dessous) est créé et édité dans le Mode de Modèle de contenu de ce composant global. (Cliquer sur l'icône Passer au Mode de Modèle de contenu situé à gauche du nom d'un composant pour vous rendre au Mode de Modèle de contenu.)
Certains composants globaux, une fois créés dans l'Aperçu de schéma, sont aussi ajoutés dans l'Assistant de saisie du Composants. Si un composant a un modèle de contenu, double-cliquer sur son nom dans l'Assistant de saisie de Composants ouvrira le modèle de contenu pour l'édition dans le Mode de Modèle de contenu.
Si le composant global a une définition de type (type simple ou type complexe), alors cliquer sur la commande du menu contextuel du composant Aller à la définition de type pour aller dans la définition de type. Dans le cas des types simples intégrés, une fenêtre de message apparaît qui contient des informations concernant le type simple.
Note : | Vous pouvez aussi créer des composants globaux (éléments, attributs, types simples, types complexes et groupes de modèle) tout en réalisant l'édition dans le Mode de Modèle de contenu. Cliquer avec la touche de droite à n'importe quel endroit dans la fenêtre et sélectionner Nouveau global | < Type de Composant global >. |
Note : | Tout en éditant dans le Mode de Modèle de contenu, vous pouvez faire d'un élément local un élément global — ou un type complexe global si l'élément a un enfant élément ou attribut. Sélectionner l'élément local, cliquer avec la touche de droite à n'importe quel endroit dans la fenêtre et sélectionner Rendre Global | Élément ou Rendre Global | Type complexe. |
Composant global | Emplacement dans le Schéma | Modèle de contenu |
include | Au début | Non |
import | Au début | Non |
redefine | Au début | Non |
override 1.1 | Au début | Non |
defaultOpenContent 1.1 | Après Includes, Imports, Redefines Overrides; avant tout autre | Oui |
element | N'importe où après defOpenCont | Oui |
group | N'importe où après defOpenCont | Oui |
simpleType | N'importe où après defOpenCont | Non |
complexType | N'importe où après defOpenCont | Oui |
attribute | N'importe où après defOpenCont | Non |
attributeGroup | N'importe où après defOpenCont | Non |
notation | N'importe où après defOpenCont | Non |
annotation | N'importe où après defOpenCont | Non |
Commentaire | N'importe où | Non |
Instruction de traitement | N'importe où | Non |
Ci-dessous, vous trouverez les points principaux concernant l'édition de ces composants dans l'Aperçu de schéma.
Includes, Imports, Redefines et Overrides
Ces quatre composants globaux permettant à d'autres documents de schéma d'être réutilisés dans le cadre du document de schéma actuel.
•Includes réutilisent des documents qui ont le même espace de nom cible que le document actuel.
•Imports réutilisent des documents qui ont d'autres espaces de nom cible que le document actuel.
•Redefines et Overrides sont des types d'Includes dans le sens qu'ils ont le même espace de nom cible que le document actuel. En revanche, ils modifient des parties des schémas inclus. Redefines sont des fonctions 1.0 et sont obsolètes dans 1.1. Overrides, qui sont une fonction de la version 1.1, sont plus flexibles et ont été conçus pour remplacer les Redefines dans 1.1.
Tous les quatre ont un attribut de schemaLocation qui pointe vers le schéma à réutiliser. Dans le Mode Schéma, lorsque vous double-cliquez dans le champ loc de ces composants, vous pouvez parcourir le fichier à réutiliser et définir son chemin par rapport au document actuel. Le document import a en plus un attribut namespace qui détient l'espace de nom cible du schéma importé.
Lorsqu'un schéma est réutilisé dans le document de schéma actuel (via includes, imports, redefines ou overrides), ses composants globaux, espaces de noms et contraintes d'identité sont affichés dans l'Assistant de saisie des Composants du document actuel.
Redefines
Dans un composant redefine, vous pouvez modifier des types complexes, des types simples, des groupes de modèle et des groupes d'attribut. Le composant à redéfinir se trouvera dans le schéma spécifié dans le champ loc du composant redefine (dans la capture d'écran ci-dessous les composants à redéfinir se trouvent dans le schéma ExpReport.xsd). Une fois qu'un composant redefine a été ajouté, vous devez ajouter le composant à redéfinir dans une position entre les lignes redefine et end of redefine de la liste des composants globaux (voir capture d'écran ci-dessous, où les composants New et emailType sont redéfinis). Ces deux composants existent dans le schéma ExpReport.xsd et sont redéfinis pour le schéma actuel.
Pour redéfinir un composant, procéder comme suit :
1.Sélectionner la ligne end of redefine.
2.Cliquer l'icône Insérer située en haut à gauche de l'Aperçu de schéma.
3.Sélectionner le type de composant que vous souhaitez définir (types complexes, types simples, groupes de modèle ou groupe d'attribut). Le composant est ajouté dans le cadre du composant redefine.
4.Lui donner le même nom que le composant que vous souhaitez redéfinir. Le composant aura maintenant toutes les propriétés du composant depuis le schéma qui est réutilisé.
5.Redéfinir le composant en le sélectionnant et en modifiant ses propriétés dans les assistants à la saisie Détail et Facettes, ou en modifiant son modèle de contenu dans le Mode de Modèle de contenu (le cas échéant).
Note : | Vous devriez pouvoir insérer les composants à redéfinir de la manière suivante : soit depuis un autre endroit dans la liste des composants globaux, soit depuis l'assistant de saisie Composants, par le biais d'un glisser/déposer ou copier/coller. |
Les composants redéfinis peuvent être référencés par d'autres composants dans le schéma.
Overrides
Dans un élément override, vous pouvez définir les composants suivants : types complexes, types simples, éléments globaux, attributs globaux, groupes de modèle, groupes d'attributs, et notations. Si, dans le cadre d'un élément override, un des ces composants est défini, alors ce composant remplacera, dans le schéma contourné, tous les composants du même type qui portent le même nom que le composant de contournement. Le schéma contourné est spécifié dans le champ loc de Override.
Les Overrides diffèrent des Redefines (voir ci-dessus) dans le sens qu'ils sont des composants définis à partir de zéro et non basés sur des composants réutilisés. Dans le Mode Schéma, vous ajoutez des composants pour surmonter comme si vous ajoutez des composants pour la redéfinition. Insérer le composant de contournement au-dessus de la ligne end of override et puis définissez ses propriétés. Voir la section 'Redefine' ci-dessus. La différence principale entre un Override et un Redefine est que lorsqu'un composant est ajouté à un Override, il n'est pas basé sur un composant provenant du schéma réutilisé.
Contenu ouvert par défaut
L'élément defaultOpenContent est nouveau dans XSD 1.1 et spécifie qu'un ou plusieurs éléments peuvent être ajoutés à tout type complexe de contenu mélangé ou d'élément-uniquement. Il est semblable à l'élément openContent (donc nouveau pour XSD 1.1), la différence principale étant qu'alors que l'élément openContent s'applique à un seul type complexe, l'élément defaultOpenContent s'applique à tous les types complexes dans le schéma.
L'élément defaultOpenContent se produit une fois dans le document (voir capture d'écran ci-dessous), après Includes, Imports, Redefines et Overrides, et avant les définitions des composants. Il a un attribut mode qui peut prendre une valeur soit de interleave soit de suffix. Le défaut est interleave.
L'élément defaultOpenContent a un modèle de contenu que vous pouvez éditer dans le Mode de Modèle de contenu. Une fois déclaré, l'élément defaultOpenContent s'appliquera à tous les types complexes dans le schéma. Dans la capture d'écran ci-dessous, vous pouvez voir que defaultOpenContent a été appliqué automatiquement à OfficeType et aux types complexes Desc.
Afin de contourner l'élément defaultOpenContent lorsqu'il est appliqué à un type complexe en particulier, ajouter un élément enfant openContent à ce type de complexe. Dans la capture d'écran ci-dessous, l'élément Desc avec l'élément defaultOpenContent (voir capture d'écran ci-dessus) s'est vu rajouter un élément openContent qui contourne l'élément defaultOpenContent.
Éléments Globaux (élément)
Dans l'Aperçu de schéma, vous pouvez créer un élément global. Si celui-ci doit avoir un modèle de contenu, cela est défini dans le Mode de Modèle de contenu de l'élément global. Une fois l'élément sélectionné dans un des modes, vous pouvez définir les attributs, les assertions et les contraintes d'identité dans les onglets respectifs du panneau AACID. Les facettes et les autres propriétés peuvent être définies dans les assistants à la saisie Facettes et Détails de l'élément. Les éléments globaux peuvent ensuite être référencés par des types complexes.
Les groupes de modèle (groupe)
Dans l'Aperçu de schéma, vous pouvez créer des groupes de modèle nommés qui peuvent ensuite être référencés dans des types complexes. Un groupe de modèle nommé (l'élément xs:group) vous permet de prédéfinir un modèle de contenu qui peut être réutilisé. Il peut contenir un de trois types de groupe de modèle enfant : un groupe sequence, un groupe choice, ou un groupe all.
Vous créez un groupe de modèle nommé dans l'Aperçu de schéma en ajoutant un composant de groupe, en lui donnant un nom, et puis en définissant son modèle de contenu dans le Mode de Modèle de contenu. Le groupe de modèle nommé peut ensuite être ajouté au modèle de contenu d'un type complexe.
Types simples nommés (simpleType)
Dans l'Aperçu de schéma, vous pouvez créer des types simples nommés (voir capture d'écran ci-dessous), qui peuvent ensuite être référencés dans les déclarations élément et attribut.
Dans l'Assistant à la saisie de Détails, vous spécifiez le contenu du type simple (restriction, list, union) et le type correspondant : respectivement, le type de base, le type d'item et un type membre. Dans la capture d'écran ci-dessous, par exemple, le type base de la restriction du type simple est xs:integer. Voir la section Assistant à la saisie de Détails pour plus d'informations. Pour limiter un type simple avec des facettes, utiliser les options dans l'Assistant à la saisie de facettes.
Note : | Les types anonymes peuvent être déclarés sur un élément ou un attribut de contenu simple soit dans Aperçu de schéma ou dans Mode de Modèle de contenu. Lorsque vous définissez la propriété derivedBy (dans l'Assistant à la saisie de Détails) sur restriction, list ou union, vous créez un type simple anonyme dans le cadre de cette déclaration d'élément ou d'attribut. Vous pouvez définir des facettes de restriction (dans l'Assistant à la saisie de Facettes) et d'autres propriétés dans l'Assistant à la saisie de Détails. |
Types complexes nommés (complexType)
Dans l'Aperçu de schéma, vous pouvez créer des types complexes nommés qui peuvent ensuite être référencés dans des déclarations d'élément. Une fois le type complexe nommé sélectionné dans un des modes, vous pouvez définir ses attributs et assertions dans les onglets respectifs du panneau AACID.
Un type complexe peut avoir quatre types de contenu (voir liste ci-dessous). Vous spécifiez les différents types de contenu dans l'Assistant à la saisie de Détails tel que décrit ci-dessous et, si vous le souhaitez, (et si vous y êtes autorisé), un modèle de contenu dans le Mode de Modèle de contenu.
•Contenu simple : définir le type de base du contenu simple (voir capture d'écran ci-dessous). L'attribut mixed (pour le contenu mixte) doit avoir une valeur de true (la valeur par défaut) ; C'est pourquoi la valeur false dans la capture d'écran ci-dessous est affichée en rouge. Aucun modèle de contenu n'est autorisé.
•Contenu uniquement à élément : créer des éléments enfant dans le diagramme de modèle de contenu. Il n'y aura pas de type de base.
•Contenu mixte : l'attribut mixed ne doit pas être défini sur true. Les données de caractère peuvent être présentes à tout endroit de l'élément parmi les nœuds élément enfants. Les données de caractère ne contiennent pas de type de données, il ne doit donc y avoir aucun type de base (voir capture d'écran ci-dessus). Les éléments enfants peuvent être créés dans le diagramme de modèle de contenu.
•Contenu vide : l'élément n'aura ni des données de caractère, ni des éléments enfants. Il ne doit pas y avoir de type base et mixed doit être faux. Les données dans les éléments vides de contenu sont généralement stockées dans les attributs.
Note : Les attributs et les assertions peuvent être définies ( dans le panneau AACID) pour les quatre types de contenu.
Note : | Les types complexes anonymes sont créés dans le cadre d'un élément en créant un modèle de contenu pour cet élément dans Mode de Modèle de contenu. |
Attributs globaux et groupes d'attribut (attribut, attributeGroup)
Les attributs globaux et les groupes d'attribut sont ajoutés dans l'Aperçu de schéma.
•Les propriétés d'un attribut global sont définies dans l'assistant à la saisie des Détails de l'attribut.
•Après avoir créé un groupe d'attribut global, vous pouvez ajouter des attributs au groupe comme suit : (i) Sélectionner le groupe d'attribut global dans la liste des composants globaux ; (ii) Ajouter des attributs dans l'onglet Attributs du panneau AACID; et (iii) Définir les propriétés de chaque attribut dans l'assistant à la saisie des Détails de l'attribut sélectionné.
Une fois que les attributs globaux et les groupes d'attribut ont été créés, ils peuvent être référencés dans les déclarations des éléments et des types complexes.
Notations (notation)
Les notations sont toujours globales ; il n'y a pas de notations locales. Les propriétés d'une notation sont spécifiées dans l'assistant à la saisie des Détails de la notation. Le nom de la notation peut être spécifié directement dans la liste des composants globaux. Toutes les notations dans le schéma sont affichées dans l'assistant à la saisie des Composants pour faciliter la référence.
Annotations globales
Les annotations globales sont des composants globaux et ne sont pas identiques aux annotations optionnelles et qui sont disponibles pour certains composants globaux. Vous pouvez éditer une annotation globale dans le dialogue Annotation (capture d'écran ci-dessous), accessibles en cliquant avec la touche de droite sur le composant global de l'annotation et en choisissant Toutes les données d'annotation.
Chaque annotation peut avoir un attribut id et une documentation enfant multiple et/ou des éléments appinfo. Vous pouvez ajouter des éléments documentation ou appinfo en cliquant sur les boutons Ajouter ou Insérer situés en haut à gauche du dialogue et puis en choisissant l'item doc ou app depuis les listes de choix respectives. Choisir un item doc ou app dans la partie supérieure du panneau du dialogue et saisir son contenu dans le panneau Contenu. Si vous souhaitez créer une nouvelle ligne dans le contenu (et donc de rendre le contenu multi-ligne), appuyez sur Entrée. Dans la capture d'écran ci-dessus, l'élément documentation est sélectionné et présente un contenu sur deux lignes. Pour chaque élément documentation ou appinfo, vous pouvez aussi saisir des attributs optionnels source et xml:lang.
Dans l'Aperçu de schéma, seul le premier élément documentation ou appinfo de l'annotation globale est affiché et peut être édité directement dans la liste des composants globaux. Si ce contenu est multi-ligne, placer le curseur par-dessus pour révéler toutes les lignes dans une fenêtre popup multiligne. Pour afficher ou éditer les contenus des autres éléments documentation et/ou appinfo, rendez-vous sur le dialogue d'annotation de cette annotation globale.
Note : | Les annotations optionnelles qui sont disponibles pour certains composants globaux peuvent aussi être édités par le biais du dialogue d'annotation de la même manière que décrit ci-dessus. |
Instructions de commentaires et de traitement
Les instructions de commentaires et de traitement peuvent être insérées à tout endroit de la liste des composants globaux dans l'Aperçu de schéma. Elle ne peuvent pas être ajoutées dans le Mode de Modèle de contenu. Si une ou plusieurs instructions de commentaires ou de traitement se trouvent dans les types simples ou les types complexes, elles sont collectées et déplacées vers l'extrémité de l'objet contenant. Dans ces cas, il est donc recommandé d'utiliser les annotations au lieu des commentaires.