Altova StyleVision 2025 Enterprise Edition

Un modèle global peut être défini pour tout nœud ou type dans le schéma, ou pour un nœud spécifié dans un modèle XPath.

 

Un modèle global spécifie les instructions pour un nœud sélectionné ou type, et est invoqué par un appel du modèle principal, fragments de design, ou autres modèles globaux. Le modèle de traitement est semblable à celui des langages de programmation déclaratifs, dans ce sens qu’un seul modèle est défini et invoqué plusieurs fois. De cette manière, une seule définition peut être réutilisée de multiples fois. Les modèles globaux sont invoqués lors de deux situations :

 

Lorsqu’un nœud ou type dans le modèle principal a été défini pour référencer son modèle global (fait en cliquant avec la touche de droite de la souris sur le composant dans le design et sélectionnant Créer Modèle global).

Quand un (contenus) ou (reste-de-contentus) est inséré à l’intérieur d’un élément ou type dans un modèle local et le reste du contenu de cet élément ou type inclut un nœud ou type pour lequel le modèle global existe.

 

Des modèles globaux sont utiles si un nœud (ou type) apparaît à l’intérieur d’éléments variés ou emplacements variés, et un seul ensemble d’instructions est requis pour toutes les occurrences. Par exemple, partons du fait qu’un élément para doit être formaté de la même manière peu importe s’il apparaît dans un élément chapter, section, appendix ou blockquote. Une approche efficace serait de définir un modèle global pour para et puis s’assurer que dans le modèle principal, le modèle global pour l’élément para est traité là où requis (par exemple, en incluant //chapter/para dans le modèle principal et spécifiant que para référence son modèle global ; ou en incluant //chapter/title, puis en incluant (contenus) ou (rest-of-contents) pour que le reste du contenu de l’élément chapter est traité avec les modèles globaux et modèles par défaut). Aussi, un modèle global peut être défini pour un type complexe (par exemple, un qui définit un modèle d’adresse) ou même un type simple (par exemple, xs:decimal). Dans de tels cas, toutes les occurrences du type (complexe ou simple) qui invoquent le modèle global pour ce type seront traitées selon les règles dans le modèle global.

 

Créer un modèle global

Les modèles globaux peuvent être crées pour tout nœud dans le schéma, ou pour un nœud spécifié dans un modèle XPath et sont créés depuis la barre latérale de l’Arborescence de schéma (capture d’écran ci-dessous).

 

SSTreeForGlobalTemplate

 

Un modèle global peut être créé d’une des deux manières :

 

Cliquez sur le bouton Ajouter Nouveau modèle global à droite de l’item Modèles globaux dans l’Arborescence de schéma (voir la capture d’écran ci-dessus). Le dialogue Ajouter Nouveau modèle global apparaît (capture d’écran ci-dessous). Vous pouvez sélectionner un élément, un attribut ou un type depuis l’arborescence de schéma dans le dialogue, ou vous pouvez saisir un modèle XPath. (Notez que les modèles globaux créés pour les nœuds sélectionnés avec un modèle XPath ne sont pas pris en charge dans Authentic.) Ceci sélectionne le nœud à créer comme modèle global. Cliquez sur OK pour finir. Le modèle sera créé et ajouté aux modèles déjà existants dans l’Aperçu de design et peut ensuite être édité. Dans l’Arborescence de schéma, le nœud de schéma ou type sera marqué avec l’icône du symbole plus placé juste devant.

 

AddNewGlobalTemplate

 

Cliquez avec la touche de droite sur le nœud de schéma ou le composant type dans l'Arborescence de schéma (sous les Éléments racine, Tous les Éléments globaux, ou Tous les Types globaux, le cas échéant), et sélectionnez la commande Créer/Supprimer Modèle global. Le modèle sera créé et ajouté aux modèles déjà existants dans l’Aperçu de design et peut ensuite être édité. Dans l’Arborescence de schéma, le nœud de schéma ou type sera marqué avec l’icône du symbole plus placé juste devant.

Les modèles globaux peuvent aussi être créés depuis les modèles dans le modèle principal de l'Aperçu de design. Cliquez avec la touche de droite sur le modèle (soit dans l’Aperçu de design, soit dans la barre latérale de l’Arborescence de schéma) et sélectionnez la commande Créer Modèle global. Un modèle global est créé depuis le modèle sélectionné (il est ajouté aux modèles dans l’Aperçu de design) et le modèle dans le modèle principal est automatiquement défini pour utiliser ce modèle global (voir ci-dessous pour une explication sur comment les modèles globaux sont utilisés).

 

Un modèle global est situé dans l’Aperçu de design en dessous du modèle principal. Il est indiqué par une barre mauve contenant le nom du nœud pour lequel le modèle global a été créé, suivi de son type : (simple) ou (complex). Un modèle global est indiqué dans la capture d'écran ci-dessous.

 

TutQS_DesView_GTempty

 

Notez que le traitement du modèle global est défini par l’utilisateur et pourrait inclure les deux composants statiques et dynamiques, ainsi que toute l’étendue des options de traitement disponibles pour traiter le modèle principal.

 

Utiliser le modèle global

Une fois que le modèle global a été créé, il peut être utilisé quand un nœud ayant le même nom qualifié est inséré dans le document (lorsque le nœud est abandonné dans le design, sélectionnez la commande Utiliser le Modèle global depuis le menu qui qui apparaît) en le déposant. En alternative, si un modèle local est présent dans le design et qu’un modèle global existe pour un nœud ayant le même nom qualifié, alors le modèle global peut être utilisé à la place du modèle local. Pour utiliser un modèle global pour un modèle local, cliquez avec la touche de droite sur le modèle local dans l’Aperçu de design et sélectionnez la commande Utiliser le modèle global. Lorsqu’un modèle global est utilisé, ses instructions de traitement sont appelées et utilisées par le modèle local en cours d’exécution.

 

À chaque moment qu’un modèle global est utilisé dans le design, un modèle XPath peut être créé dans le modèle global pour filtrer l’ensemble de nœud en question. Pour créer un tel filtre, cliquez avec la touche de droite sur la balise du modèle global dans le design et sélectionnez Éditer filtre XPath dans le menu contextuel qui apparaît. Ceci ouvre le dialogue Éditer expression XPath, dans lequel l’expression requise peu être saisie.

 

Modèles globaux récursifs

Les modèles globaux peuvent être récursifs, c’est-à-dire qu’un modèle global peut s’appeler lui-même. Toutefois, pour éviter une boucle sans fin dans Authentic View, une propriété pour limiter la call-depth peut être définie. Cette propriété, la propriété Maximum Template-Call-Depth, est disponible dans l’onglet Authentic du dialogue des Propriétés du SPS (Fichier | Propriétés). Elle spécifie un nombre maximum d’appels de modèles qui peuvent être traités de manière récursive lors du traitement de la sortie Authentic View. Si le nombre d’appels de modèle excède le nombre spécifié dans la propriété Maximum Template-Call-Depth, une erreur est renvoyée.

 

Copier un modèle global localement

Une fois qu’un modèle global a été créé, ses instructions de traitement peuvent être copiées directement dans un modèle du même nom qualifié dans le modèle principal. À cette fin, cliquez avec la touche de droite sur le modèle local et sélectionnez la commande Copy Global Template Locally. Copier le modèle global est différent qu’utiliser le modèle global (en cours d’exécution) en ce sens que les instructions de traitement sont simplement copiées de manière ponctuelle. Le modèle global n’a pas d’autre influence sur le modèle local. Soit l’un des modèles global et local ou les deux peuvent être modifiés par la suite de manière indépendante sans affecter l’un ou l’autre. D’autre part, s’il est spécifié qu’un modèle global doit être utilisé (en cours d’exécution) par un modèle local, alors toute modification au modèle global sera reflété dans le modèle local en cours d’exécution.

 

Activer et désactiver les modèles globaux

Un modèle global peut être activé en cochant son entrée dans les modèles globaux recensés dans la barre latérale de l’arborescence de schéma. Il peut être désactivé en décochant l’entrée. Si un modèle global a été activé (le paramètre par défaut lorsque le modèle global a été créé), il est généré dans la feuille de style XSLT. S’il a été désactivé, il n’est pas généré dans la feuille de style XSLT mais est toujours enregistré dans le design SPS.

 

Tout modèle local qui utilise un modèle global désactivé sera — puisqu’il n’est pas en mesure de référencer le modèle global manquant — replié sur les modèles XSLT par défaut, qui ont l’effet collectif de sortir les contenus des nœuds de texte descendant.

 

Les avantages de la fonction activation/désactivation sont : (i) les modèles globaux ne doivent pas être supprimés s’ils ne sont pas requis temporairement ; ils peuvent être réactivés plus tard lorsqu’ils sont requis ; (ii) s’il existe des conflits de nom avec des modèles des feuilles de style importées, alors le modèle global qui n’est pas requis peut être désactivé temporairement.

 

Supprimer un modèle global

Pour supprimer un modèle global, cliquez avec la touche de droite sur le modèle global à supprimer, soit dans l’Aperçu de design ou la barre latérale de l’Arborescence de schéma, et sélectionnez la commande Créer/Supprimer Modèle global.

 

Modèles globaux simples et modèles globaux complexes

Les modèles globaux ont deux types : simple et complexe. Les modèles globaux complexes sont disponibles pour les raisons de rétro-compatibilité. Si un modèle global dans SPS créé avec une nouvelle version de StyleVision avant la version 2006 contient une table ou une liste, alors le modèle global sera généralement ouvert dans StyleVision 2006 et des versions ultérieures en tant que modèle global complexe.

 

Un modèle global complexe est différent qu’un simple modèle global dans la manière dont le nœud est traité pour lequel le modèle global a été créé. Lorsque la première instance du nœud apparaît dans le document, le modèle global complexe traite toutes les instances ultérieures de ce nœud immédiatement après. D’un autre côté, un modèle global simple, traite chaque instance de nœud uniquement si l’instance du nœud apparaît individuellement.

 

Il est important de noter qu’un simple modèle global sera automatiquement converti en un modèle global complexe si un format prédéfini ou une newline est créé autour du nœud de l’élément pour lequel le modèle global a été créé. Le comportement de traitement en résultera pour des modèles globaux complexes (décrit dans l’item de la liste précédent). Pour revenir au modèle global simple, le format prédéfini devrait être supprimé (en déplaçant le nœud à l’extérieur du format prédéfini, puis en supprimant le format prédéfini), ou le newline devrait être supprimé (en supprimant l’item dans la barre latérale de l’Arborescence de design), comme cela pourrait être le cas. Pour éviter une conversion automatique du modèle global simple au modèle global complexe, assurez-vous que le format prédéfini ou la newline est ajouté à l’intérieur des balises de nœuds de l’élément pour lequel le modèle global simple a été créé.

 

Les modèles globaux dans les SPS modulaires

Quand un module SPS est ajouté dans un autre SPS, les modèles globaux dans le module ajouté sont disponibles pour l’utilisation à l’intérieur du SPS de référence. Pour plus d’information sur l’utilisation des SPS modulaires, voir la section SPS modulaires.

 

© 2019-2025 Altova GmbH