XSLT fonctions et espaces de noms

Je suis un peu nouveau pour XSLT, et j'ai reçu de base de transformation. Ensuite, j'ai voulu essayer la date de manipulations, depuis mes données ont des horodateurs. Cependant, je ne peux pas sembler obtenir les fonctions de date pour le travail, et il a grandement me frustre. Je suis en essais à l'aide de Firefox 3.5, xsltproc 1.1.24, xalan 1.10, et XMLSpy 2009, et ils ont tous dit que les fonctions, je suis en train d'utiliser n'existent pas.

Mon xml ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="datetime.xsl"?>

<watcher>
  <event id="1" date="2009-09-04T13:49:10-0500" type="ABCD">This is a test  </event>
</watcher>
</code>

Mon xsl ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xsl:template match="event[@type='ABCD']">
<!--            Date: <xsl:value-of select="day-from-dateTime(xs:dateTime(@date))"/> -->
<!--            Date: <xsl:value-of select="day-from-dateTime(@date)"/> -->
                Date: <xsl:value-of select="fn:day-from-dateTime(@date)"/>
</xsl:template>

</xsl:stylesheet>

Si je fais de la feuille de style de la version 2, XMLSpy se plaint qu'il ne peut pas exprimer mon date: XSLT 2.0 Debugging Error: Error in XPath 2.0 expression (Cast failed, invalid lexical value - xs:dateTime '2009-09-04T13:49:10-0500')

Si je laisse comme la version 1, il se plaint d'une erreur différents: XSLT 1.0 Debugging Error: Error in XPath expression (Unknown function - Name and number of arguments do not match any function signature in the static context - 'day-from-dateTime')

Chaque fois que j'ai essayer de modifier le fichier XSL à utiliser un espace de noms, tels que fn:jour-de-dateTime, il refuse de travailler, avec l'ensemble de mes analyseurs de dire que The function number 'http://www.w3.org/2005/02/xpath-functions:day-from-dateTime' is not available et ses variantes. Je sais que d'autres tests que je peux utiliser la fonction substring() parfaitement, sans avoir besoin d'un préfixe d'espace de noms, et je crois que c'est dans le même espace de noms que de jour-de-dateTime.

J'ai l'impression que c'est quelque chose d'incroyablement facile, puisque tous les tutoriels afficher les fonctions utilisées, mais quelque chose qui semble échapper à moi. Quelqu'un pourrait-il me montrer ce que je suis absent?

OriginalL'auteur hufman | 2009-09-05