J'ai un fichier source XML avec un préfixe d'espace de noms dynamique (généré) mais un URI statique pour cet espace de noms. J'ai besoin d'obtenir ce préfixe généré par URI et de l'utiliser dans ma feuille de style XSL.
Source XML :
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.4="http://www.w3.org/2004/02/skos/core#">
<rdf:Description>
<j.4:prefLabel>TestNode</j.4:prefLabel>
</rdf:Description>
</rdf:RDF>
Feuille de style XSL :
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:j.4="http://www.w3.org/2004/02/skos/core#"
exclude-result-prefixes="xsl skos rdf xsd "
version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="yes" omit-xml-declaration="yes" />
<xsl:variable name="skosprefix" select="name(//rdf:RDF/namespace::*[. = 'http://www.w3.org/2004/02/skos/core#'])" />
<xsl:template match="//rdf:RDF/rdf:Description">
<node>
<xsl:value-of select="j.4:prefLabel"/>
</node>
</xsl:template>
</xsl:stylesheet>
Dans ma feuille de style XSL (select statement), j'aimerais donc utiliser quelque chose comme $skosprefix:prefLabel au lieu de j.4:prefLabel pour obtenir le fichier XML résultant :
<node>TestNode</node>
Comment puis-je y parvenir en utilisant XSLT 1.0 ?