[0] Le cas réussi déjà d'abord:
<xsl:template match="//ID_FK"/>
Il mache et il n'y a pas trop de quoi critiqué; mais je dirais si on le serre un peu plus, plus localisé, plus intégré organiquement dans le xslt, ce serait mieux conceptuellement.
<xsl:template match="ID_FK" />
[1] Dans le cas en question:
[1.1] La partie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" n'a rien à voir avec le problèmatique et c'est dit pour vous en assurer.
[1.2] La partie xmlns="urn:iso:xxxxx" a tout à voir avec le problèmatique. Il s'agit une déclaration de namespace sans avoir un préfixe souvent paru et s'en servi après. L'absence d'un préfixe veut parler d'un sous-entendu, celui qu'un namespace pour l'élément en contexte (d'ailleurs pas pour les attributs d'une façon automatique) est en fait déclaré par défaut au sens de malgré et de par l'absence d'un préfixe même. Et puisque le préfixe est absent, il est sensé de fixer aussi une règle de hériéité de ce namespace pour ses enfants dans le même namespace et pour qui on n'a besoin de déclarer par défaut chaque fois avec xmlns="..." pour chacun d'eux parce que pour le cas de la déclaration préfixée, on n'a nullement besoin de déclarer chaque fois le préfixe pour s'en servir, il suffit de mettre en évidence du même préfixe et c'est tout. La règle est que ses enfants sans préfixe héritent ce même namespace sauf déclarer autrement. Il faut noter que les attributs ne subissent pas ces règles. Le namespace, si il y en a, des attributs doit être déclaré toujours préfixé. Voilà presque tout ce qu'on doit savoir sur ce sujet.
[3] Dans la pratique xslt 1.0, on fait ça pour ladite fonctionnalité.
<xsl:template match="*[local-name()='ID_FK' and namespace-uri()='urn:iso:xxxxx']" />
[3.1] Parfois, si on s'en foule du namespace précis, on fait ça plus simplement:
<xsl:template match="*[local-name()='ID_FK']" />
[4] Dans xslt 2.0, qu'il supporte la notion de préfixe joker, on peut faire le même que xslt 1.0 et en plus si on veut, pour le cas [3.1], comme ça.
<xsl:template match="*:ID_FK" />
Partager