Comment pouvez-vous utiliser xpath-fonctions avec XSLT 2.0?

Afin d'utiliser xpath-fonctions (en particulier le fn partie), j'ai inclus les respectifs espace de noms dans ma feuille de style xslt, comme suit:

<xsl:stylesheet
  version="2.0"
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:fn="http://www.w3.org/2005/xpath-functions"
>

Comme spécifié par le W3C.

Cependant, lorsque j'utilise fn:document-uri, mes moteurs XSLT dites-moi que j'ai appelé une fonction inconnue/extension:

  <xsl:variable name="uri" select="fn:document-uri()" />

Opéra dit:

Ce document avait une défaillance de la feuille de style XSLT. Message d'erreur du moteur XSLT:
Erreur: expression XPath compilation failed: fn:document-uri()
Détails: erreur de compilation (caractères 1-17, "fn:document-uri()"): fonction inconnue: '{ http://www.w3.org/2005/xpath-functions, document-uri }'

Firefox dit:

Erreur lors de la transformation XSLT: Un inconnu extension XPath fonction a été appelée.

Et xsltproc refuse de transformation, en raison de xslt 2.0.

Alors, comment puis-je spécifier le fn espace de noms correctement?

Masque de bits, en fait ma réponse de fournir les informations qui vous ont été après, ou vous avez encore des question à ce sujet?
Techniquement, vous avez, mais une solution de contournement serait génial (bien que je ne pense pas que c'est possible). C'est pourquoi j'ai laissé la question ouverte un peu plus longtemps.
Je n'ai clairement dire qu'un compatible XSLT 1.0 processeur pas mise en œuvre de XPath 2.0 fonctions. Cela signifie très clairement qu'il n'existe pas de "solution de contournement" -- si l'on a besoin de XPath 2.0 en XSLT, puis ils utilisation d'une transformation XSLT 2.0 (ou version supérieure) du processeur.

OriginalL'auteur bitmask | 2012-04-08