Travailler avec des types complexes et des types simples

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Tutoriel XMLSpy > Schémas XML : Avancé >

Travailler avec des types complexes et des types simples

Une fois avoir défini le modèle de contenu d'un élément, vous pouvez décider de vouloir le réutiliser ailleurs dans votre schéma. Pour ce faire, il vous faudra créer cette définition d'élément en tant que type complexe global ou en tant qu'élément global. Dans cette section, vous allez travailler avec des types complexes globaux. Vous allez d'abord créer un type complexe au niveau global puis l'étendre pour l'utiliser dans un modèle de contenu. Vous apprendrez à gérer les éléments globaux plus loin dans ce tutoriel.

 

Créer un type complexe global

L'élément de base Address que nous avons défini (contenant les éléments Name, Street et City) peut être réutilisé dans des formats d'adresse variés. C'est pourquoi nous allons créer cette définition d'élément en tant que type complexe, qui pourra être réutilisé.

 

Pour créer un type complexe global :

 

1.Dans le Mode de Modèle de contenu, cliquer avec la touche de droite sur l'élément Address.
2.Dans le menu contextuel qui apparaît maintenant, choisir Rendre Global | Type complexe. Un type complexe global appelé AddressType est créé et l'élément Address dans le modèle de contenu Company est attribué à ce type. Le contenu de l'élément Address est le modèle de contenu de AddressType, qui est affiché dans un encadré jaune. Veuillez noter que le type de donnée de l'élément Address est maintenant AddressType.

tut_17a

3.Cliquer sur l'icône Afficher tous les globaux ic_back2global. Cela vous permet de consulter l'Aperçu de schéma dans lequel vous pouvez consulter tous les composants globaux du schéma.
4.Cliquer sur les icônes d'agrandissement pour les entrées element et complexType dans l'Assistant de saisie Composants, pour consulter les structures de schéma respectifs.

L'Aperçu de schéma affiche maintenant deux composants globaux : l'élément Company et le type complexe AddressType. L'Assistant de saisie Composants affiche aussi le type complexe AddressType.

complextypes_schema_ovw

5.Cliquer sur l'icône du Mode Modèle de contenu ic_component de AddressType pour voir son modèle de contenu (capture d'écran ci-dessous). Veuillez noter la forme du conteneur du type complex.

tut_18a

6.Cliquer sur l'icône Afficher tous les globaux ic_back2global pour retourner à l'Aperçu de schéma.

Étendre une définition de type complexe

Nous allons maintenant utiliser le composant global AddressType pour créer deux types d'adresses spécifiques au pays. À cette fin, nous allons définir un nouveau type complexe basé sur le composant de base AddressType, puis nous allons étendre cette définition.

 

Pour ce faire, procéder comme suit :

 

1.Passer à l'Aperçu de schéma. (si vous vous trouvez dans le mode Modèle de contenu, cliquer sur l'icône Afficher tous les globaux ic_back2global.)
2. Cliquer sur l'icône Ajouter ic_tbl_append_row située en haut à gauche de la fenêtre de composant. Le menu suivant s'ouvre :

tut_18b

3. Sélectionner ComplexType depuis le menu. Une nouvelle ligne apparaît dans la liste de composants et le curseur est réglé de manière à ce que vous puissiez saisir le nom de composant.
4.Saisir US-Address et confirmer avec Entrée. (Si vous oubliez de saisir le signe "-" et que vous saisissez un espace, le nom d'élément apparaîtra en rouge, signalisant un caractère invalide.)

complextypes_ext_schema_ovw

5.Cliquer l''icône de Mode de Modèle de contenu ic_component de US-Address pour voir le modèle de contenu du nouveau type de complexe. Le modèle de contenu est vide (voir capture d'écran ci-dessous).
6.Dans l'assistant de saisie Details, cliquer sur la liste de choix base et sélectionner l'entrée AddressType.

complextypes_ext_contmod_view

Le Mode de Modèle de contenu affiche maintenant le modèle de contenu AddressType en tant que le modèle de contenu des adresses US (capture d'écran ci-dessous).

complextypes_ext_contmod_view_2

7.Maintenant, nous pouvons étendre le modèle de contenu du type de complexe US-Address pour prendre un élément de code postal (ZIP Code). Pour ce faire, cliquer avec la touche de droite sur le composant US-Address et, à partir du menu contextuel qui apparaît, choisir Ajouter enfant | Séquence. Un nouveau compositeur de séquence est affiché à l'extérieur de la fenêtre AddressType (capture d'écran ci-dessous). Il s'agit d'une indication visuelle pour indiquer qu'il s'agit de l'extension de l'élément.

tut_20a

8.Cliquer avec la touche de droite sur le nouveau compositeur de séquence et sélectionner Ajouter enfant | Élément.
9.Nommer le nouvel élément Zip, puis appuyer sur la touche Tab. Cela place le curseur dans le champ de valeur de la ligne de descripteur de type.
10.Choisir xs:positiveInteger depuis le menu déroulant qui apparaît et confirmer avec Entrée.

tut_20b

Vous disposez maintenant d'un type complexe appelé US-Address, qui est basé sur le type complexe AddressType et s'étend pour pouvoir contenir un code postal.

 

Types simples globaux

De même que le type complexe US-Address est basé sur le type complexe AddressType, un élément peut aussi être basé sur un type simple. L'avantage est le même que pour les types complexes globaux : le type simple peut être réutilisé. Pour pouvoir réutiliser un type simple, celui-ci doit être défini globalement. Dans ce tutoriel, vous allez définir un modèle de contenu pour les États US en tant que type simple. Celui-ci sera utilisé en tant que base pour un autre élément.

 

Créer un type simple global

Créer un type simple global consiste à ajouter un nouveau type simple à la liste des composants globaux, à le nommer et à définir son type de données.

 

Pour créer un type simple global :

 

1.Passer à l'Aperçu de schéma. (Si vous vous trouvez dans le Mode Modèle de contenu, cliquer sur l'icône Afficher tous les globaux ic_back2global.)
2.Cliquer sur l'icône Ajouter et dans le menu contextuel qui apparaît, sélectionner SimpleType.
3.Saisir US-State en tant que le nom du simpleType récemment créé.
4.Appuyer sur Entrée pour confirmer. Le type simple US-State est créé et apparaît dans la liste des types simples dans l'Assistant de saisie des composants (cliquer sur l'icône d'agrandissement de l'entrée simpleType pour le voir).

simpletypes_schema_ovw

5.Dans l'Assistant de saisie Détails (capture d'écran ci-dessous), placer le curseur dans le champ de valeur de restr et saisir xs:string, ou sélectionner xs:string depuis la liste déroulante dans le champ de valeur restr.

simpletypes_details_eh

Cela crée un type simple appelé US-State, qui est de type de données xs:string. Ce composant global peut maintenant être utilisé dans le modèle de contenu de US-Address.

 

Utiliser un type simple global dans un modèle de contenu

Un type simple global peut être utilisé dans un modèle de contenu pour définir le type d'un composant. Nous allons utiliser US-State pour définir un élément appelé State dans le modèle de contenu de US-Address.

 

Procéder comme suit :

 

1.Dans l'Aperçu de schéma, cliquer sur l'icône Mode Modèle de contenu ic_component de US-Address.
2.Cliquer avec la touche de droite sur le compositeur de séquence inférieur et choisir Ajouter enfant | Élément.
3.Saisir State pour le nom d'élément.
4.Appuyer sur la touche Tab pour placer le curseur dans le champ de valeur de la ligne de descripteur de type.
5.À partir du menu déroulant de cette liste de choix, choisir US-State.

tut_21b

L'élément State est maintenant basé sur le type simple US-State.

 

 

 

Créer un second type complexe basé sur AddressType

Nous allons maintenant créer un type complexe global pour contenir des adresses du Royaume-Uni. Le type complexe est basé sur AddressType, et est étendu pour correspondre au format d'adresses du RU.

 

Procéder comme suit :

 

1.Dans l'Aperçu de schéma, créer un type de complexe global appelé UK-Address, et le baser sur AddressType (base=AddressType).
2.Dans le Mode Modèle de contenue de UK-Address, ajouter un élément Postcode et lui donner un type de xs:string.

 

Votre modèle de contenu UK-Address devrait ressembler à ceci :

complextypes_ext_contmod_view_3

Note :Dans cette section, vous créez des types globaux simples et complexes que vous utilisez ensuite dans des définitions de modèle de contenu. L'avantage des types globaux est qu'ils peuvent être réutilisés dans plusieurs définitions.

 


© 2018 Altova GmbH