Peut-on me donner l’exemple du «mode» de template dans xsl?

Dans

 

Quelle est la signification du mode ? J’ai cherché beaucoup de ressources, mais je n’ai pas pu trouver d’exemple pour cela. Alors, quelqu’un peut-il expliquer avec un exemple? Merci d’avance.

Il n’est pas trop important de donner à un modèle un nom et un mode .

L’atsortingbut name identifie complètement un modèle et il ne peut y avoir deux modèles avec le même nom et des modes différents.

L’atsortingbut mode permet de traiter les mêmes nœuds plus d’une fois, en utilisant différents modes .

Voici un court exemple:

              

Lorsque cette transformation est appliquée sur le document XML suivant :

  01 02 03 04 05 06 07 08 09 10  

Le résultat est que les nombres sont affichés en trois tr (lignes), chacun contenant trois colonnes (à l’exception possible de la dernière ligne):

  01 02 03   04 05 06   07 08 09   10  

Dans cette transformation, tout élément num avec une position qui ne peut être représentée sous la forme 3*k +1 (où k est un entier), est mis en correspondance par un modèle avec un corps vide et n’est donc pas traité.

Cependant, nous voulons traiter tous les éléments num qui doivent former les cellules d’une ligne. Pour ce motif, nous les traitons en utilisant l’instruction xslt:

  

ce qui signifie: “Ne pas appliquer aux modèles de nœuds sélectionnés qui seraient normalement appliqués (en aucun mode), mais appliquer des modèles en mode copy

Ainsi, nous n’ignorons pas les éléments num sélectionnés, mais nous les traitons en mode copy et créons les td s d’une ligne.

La règle du modèle:

  

est nécessaire pour remplacer les modèles internes xslt (traitement par défaut) qui provoqueraient sinon les valeurs de chaîne des nœuds num dont la position ne peut pas être représentée comme 3*k +1 , à afficher.

Ainsi, ces nœuds sont traités par les deux modèles :

  

et

  

et ainsi nous obtenons le résultat désiré.

Il serait instructif de parcourir avec un bon débogueur XSLT afin de voir comment ces modèles sont appliqués .