Pré. | Proc. |
Compositions de schémas
Une composition de schéma fait référence à un ensemble restreint d'éléments extraits du modèle qui décrivent ensemble une entité unique qui n'a pas d'équivalent dans le modèle. Généralement, les compositions de schéma sont utilisées pour générer des fichiers de schéma tels que des fichiers XSD. En revanche, les compositions de modèle sont utilisées pour configurer le matériel comme base d'une « transformation » de sous-ensemble, par exemple lors de la création d'un sous-ensemble de modèle NIEM.
Définir le contenu du schéma
Ces étapes vous guident à travers la procédure de base de composition de types dans un profil de schéma et montrent comment vous pouvez restreindre le contenu des éléments pour répondre aux exigences du message.
Ajouter des classes
Faites glisser les éléments de classe requis depuis la fenêtre Navigateur vers le panneau « Classes ». Lorsque vous ajoutez une classe :
- Son ascendance est répertoriée dans la section « Héritage » du panneau central
- Ses attributs sont répertoriés dans la section « Héritage », avec une case à cocher vide pour chacun d'eux ; les entrées d'association et d'agrégation sont nommées en fonction du nom du rôle sur le connecteur
- Son chemin de structure de modèle est affiché sous le panneau « Classes »
Sélectionner Propriétés
Chaque fois que vous sélectionnez une classe dans la liste « Classes », ses attributs et l'ascendance de son modèle sont répertoriés dans la liste « Attributes ». Cochez la case en regard de chaque attribut pour définir les éléments de ce type. Une fois sélectionné, le type de l'attribut est ajouté automatiquement au schéma et apparaît dans la liste « Classes » et dans le panneau « Schéma » à droite.
Lorsqu'un attribut est décoché, le type n'est pas automatiquement supprimé. Les types peuvent être supprimés à l'aide du menu contextuel de la classe. Il est à noter qu'à chaque fois qu'une classe est sélectionnée, toutes les références à la classe sont affichées dans le panneau d'état, ce qui vous permet de révision rapidement toute utilisation de la classe.
Héritage
Si vous privilégiez ou prévoyez un besoin d'héritage dans le schéma que vous préparez, il serait logique de commencer la composition avec les ancêtres en premier, puis de les réutiliser au fur et à mesure que des classes enfants sont ajoutées. La méthode n'est pas gravée dans la pierre. Vous pouvez passer d'un modèle d'héritage à une composition agrégée ou vice-versa à tout moment. Voici une brève description de la disposition de l'héritage dans le Compositeur de Schéma .
Le Compositeur de Schéma offre une certaine souplesse dans la gestion de l'héritage. Par exemple, vous pouvez choisir d'agréger des attributs sélectionnés de la classe et de son parent, tout en choisissant d'hériter du grand-parent. Cependant, lorsque vous choisissez d'utiliser l'héritage, vous choisissez également d'hériter de la forme restreinte de ce type. Lorsqu'un ancêtre est sélectionné dans cette liste, le schéma XML généré affiche un élément d'extension identifiant cet ancêtre. Un seul ancêtre peut être sélectionné.
Cliquez sur le bouton Mettre à jour pour valider et enregistrer votre profil de schéma.
S'il y a des problèmes avec le profil, ils sont identifiés dans le panneau d'état en haut à droite de l'écran.
Types redéfinis
L'un des problèmes courants liés à la composition de schémas est l'exigence de pouvoir faire varier une description de type pour répondre aux différentes exigences des instances décrites par un schéma. Un véhicule, par exemple, peut être décrit par sa marque, son modèle et son prix par un élément de type Camion , mais par son année, son modèle et sa couleur par un élément de type Berline . Le problème est que nous ne disposons peut-être que d'une seule classe de véhicule réelle. Pour résoudre ce problème, le Compositeur de Schéma vous permet de cloner la classe de véhicule et de lui donner un autre nom. Vous pouvez ensuite attribuer cette version de Véhicule à n'importe quelle propriété dont le type est Véhicule . Le type créé n'est disponible que dans le domaine du schéma - le modèle reste intact.
Pour créer une nouvelle définition d'un type, sélectionnez d'abord la Classe dans la liste 'Classes', puis cliquez-droit dessus et choisissez l'option 'Redéfinir Type '. Entrez un nom unique pour ce type et appuyez sur la touche Entrée. Vous pouvez alors définir ou restreindre ce type indépendamment, comme vous le feriez pour n'importe quelle Classe.
Éléments de base
Lorsque le schéma est généré, un seul élément de niveau supérieur représentant le message est généré. Le corps ou les éléments de cet élément de niveau supérieur sont les classes marquées comme éléments racines. La cardinalité de ces éléments racines peut être ajustée. Pour marquer une classe comme élément racine ou restreindre sa cardinalité, cliquez-droit sur la classe dans la liste et utilisez ces options du menu contextuel :
- Définir l'élément comme racine - les éléments racine forment le corps de l'élément de niveau supérieur représentant le message / profil
- Modifier la cardinalité de l'élément racine - définir le nombre minimum et maximum d'instances
- Supprimer l'attribut racine de l'élément - supprime la marque racine de la classe
- Supprimer l'élément sélectionné - supprimer l'élément sélectionné du schéma
- Rechercher dans Projet Navigateur - localiser et mettre en surbrillance l'élément dans la fenêtre Navigateur
Restrictions de propriété
Dans la liste « Attributes », cliquez-droit sur une propriété sélectionnée et utilisez le menu contextuel pour ajouter, modifier ou supprimer une restriction de propriété. Utilisez cette fonctionnalité pour :
- Modifier la cardinalité de la propriété
- Redéfinir le type de propriété
- Activer et limiter les choix disponibles pour cette propriété
- Marquer une propriété à émettre en tant que définition d'élément en ligne
- Marquer une propriété à émettre « Par référence »
Cardinalité
La cardinalité d'une propriété peut être davantage restreinte que celle de son homologue de modèle, mais elle ne peut pas être moins restrictive. La cardinalité peut être modifiée pour n'importe quel élément racine de classe et n'importe quelle propriété de classe.
Redéfinition Type
Lorsqu'une classe est redéfinie dans le Compositeur de Schéma elle crée un nouveau type. Le nouveau type est un clone de l'original, mais possède un nom unique au schéma. Un type d'énumération de paiement, par exemple, peut être redéfini en tant que CardPayment pour mieux s'adapter à l'objectif du schéma. Le nouveau type est une restriction de l'original dans la mesure où aucun nouvel attribut ne peut lui être ajouté. D'autres propriétés qui partagent ce type peuvent être restreintes de la même manière en spécifiant le nouveau type dans leur dialogue de restriction. Les types redéfinis tels que les sous-types peuvent être proposés comme éléments de choix supplémentaires dans la restriction d'autres propriétés.
Spécialisations
Lorsque des spécialisations du type d'une propriété sont présentes, ces sous-types seront disponibles dans la dialogue « Restriction ». Lorsque plusieurs spécialisations sont sélectionnées, elles apparaîtront comme des éléments de choix dans le schéma. Lorsqu'une seule spécialisation est choisie, la propriété affichera ce sous-type dans le schéma.
Éléments en ligne
Un type de propriété sera émis sous forme de définition en ligne lorsque cette case est cochée.
Par référence
Une propriété prendra la forme « Par référence » lorsqu'elle sera émise dans le schéma. La forme « Par référence » émet un complexType en ligne qui définit un attribut unique nommé « ref » de type « string ».
Contraintes de propriété - Facettes
Les facettes sont prises en charge dans le profil générique Compositeur de Schéma . Les sources des facettes sont les Valeur Étiquetés sur une propriété. Valeur Étiquetés sont reconnues comme des facettes si elles désignent une facette contraignante issue de la spécification XML Schema ; les mots-clés de validation JSON sont également reconnus.
Contraintes des facettes à partir du schéma XML :
- longueur
- minLongueur
- Longueur max.
- motif
- énumération
- Espace blanc
- maxInclusif
- maxExclusif
- minExclusif
- minInclusif
- total des chiffres
- fractionChiffres
Mots-clés de validation dans JSON :
- Nombre et integer
- multiple de
- minimum
- maximum
- exclusifMinimum
- exclusifMaximum - cordes
- minLongueur
- longueur maximale
- motif - tableaux
- minArticles
- maxArticles
- articles uniques