Altova XMLSpy 2025 Professional Edition

Lors de la restriction d'un type complexe, certaines parties du modèle de contenu du type de base sont réécrites dans le type dérivé. Cela peut prêter à confusion si le contenu du modèle est complexe parce que tout en éditant le type dérivé, il peut être difficile de se souvenir exactement à quoi ressemble le modèle de contenu du type de base.

 

Les Smart Restrictions combinent et lient entre elles deux modèles de contenu dans le mode graphique du modèle de contenu dérivé. Dans le type complexe dérivé, toutes les particules du type de base complexe et la manière dont ils sont liés au type dérivés, peuvent être vus. De plus, les Smart Restrictions fournissent des indices visuels pour vous montrer les possibilités de limiter le type de base. Cela permet de limiter correctement le type dérivé.

 

 

Pour activer les Smart Restrictions:

Cliquer sur l'icône Smart Restrictions ic_smart_res. dans la barre d'outils Conception de Schéma.

 

 

L'exemple qui suit sert à illustrer les fonctions des Smart Restrictions.

 

Le type complexe suivant est le type de base utilisé dans cet exemple :

base_complexType

Le type complexe "dérivé" est dérivé du type de "base" comme suit :

1.Créer un nouveau type complexe dans le schéma et le nommer "dérivé".

2.Dans l'assistant à la saisie Détails sélectionner "base" depuis la liste déroulante base et "restriction" depuis la liste déroulante derivedBy.

derive_detailsEntHelper

Une fois Smart Restrictions activé, le nouveau type dérivé ressemble à :

derived_complexType

Veuillez noter les différentes commandes qui peuvent être utilisées pour limiter le type dérivé dans cet exemple :

Utiliser cette icône ic_checkbox pour retirer les éléments qui se trouvent dans le type de base depuis le type dérivé. Ici, elem1 a été supprimé. Pour le rajouter, cliquer sur cette icône ic_plussign.

derived_elem_deleted

Cliquer sur la flèche vers le bas sur le compositeur de choix ic_down_arrow pour obtenir la liste suivante, qui vous permet de changer le groupe de modèle Choix en un groupe de modèle Séquence :

model_group_restriction
Il est également possible de changer les caractères génériques de la même manière, comme dans l'exemple suivant :
derived_wildcard
Pour obtenir une liste complète des particules pouvant être remplacées par d'autres particules, voir la spécification de schéma XML .

 

Changer le nombre d'occurrences du groupe de modèle à l'aide de la commande suivante ic_change_minoccur afin d'augmenter le nombre minimum d'occurrences en cliquant sur le signe plus à côté du "1", o pour réduire le nombre minimum d'occurrences en cliquant sur le signe moins sous le "4". Ces commandes sont affichées si la gamme de l'occurrence dans la base décrit une vraie plage (par ex., 2-5) et non une certaine quantité (par ex. 4-4). Elles sont aussi affichées si la plage d'occurrence est erronée.

derived_change_minoccur
Ici, vous pouvez constater que le minimum d'occurrences pour cet élément a été modifié à 2. Veuillez noter que le groupe de modèle présente maintenant un fond bleu, ce qui signifie qu'il n'est plus le même que le groupe de modèle dans le type complexe de base. Ainsi, la plage d'occurrence permise du groupe de modèle dans la particule de base est maintenant affichée entre parenthèses.

Il est possible de modifier les types de données des attributs ou des éléments si le nouveau type de données est une restriction valide du type de données de base tel que défini dans la spécification de schéma XML . Par exemple, vous pouvez changer le type de données d'elem3 dans le type de données "dérivé" de décimal en entier. Ensuite, l'élément aura un fond bleu pour vous avertir qu'il est différent de l'élément contenu dans le type de base, et le type que l'élément a dans le type de base est affiché entre parenthèses :

 

derived_change_datatype
Cet exemple montre des attributs dont les types de données ont été limités dans le type complexe dérivé :
derived_attrs

Smart Restrictions vous préviennent en cas d'occurrences inutiles dans le modèle de contenu. Une occurrence inutile se produit par exemple, lorsqu'une séquence qui est présente dans le modèle de contenu n'est pas nécessaire. Cet exemple montre une occurrence inutile :

pointless_occurrence
Note : les occurrences inutiles sont uniquement affichées si le modèle de contenu contient une erreur. Il est possible qu'un modèle de contenu contienne une occurrence inutile et soit valide, dans ce cas, l'occurrence inutile n'est pas affichée explicitement afin d'éviter toute confusion.

 

Voir la spécification de schéma XML pour plus d'informations concernant les occurrences inutiles.

 

© 2018-2024 Altova GmbH