Utilizando Funções de Data EXSLT Não Principais com Xalan Java

Eu tive as funções principais de data do EXSLT funcionando bem em alguns modelos XSL que uso há anos. Eu gostaria de começar a usar um novo:seconds. Esta função não é uma das funções "principais" e, portanto, as implementações podem reivindicar conformidade com EXSLT sem realmente implementá-la.

Estou usando o Cocoon 2.1.11 com o Xalan 2.7.1 que, ao que parece, optou por não implementardate:seconds.

Felizmente, o pessoal do EXSLT fornece downloads para ajudá-lo a conectar funções individuais, mas não consigo descobrir como realmente obter o plug-in.

Eu posso usar as funções principais facilmente usando este modelo, por exemplo:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:date="http://exslt.org/dates-and-times" >
  <xsl:template match="/">
    <xsl:value-of select="date:date-time()" />
  </xsl:template>
</xsl:stylesheet>

Ao tentar usar odate.seconds , tentei o seguinte:

Simplesmente adicionando<xsl:import href="date.seconds.xsl" /> ao meu modelo e usandodate:seconds(). Isso gera a mensagem de erro "Para a função de extensão, não foi possível encontrar o método org.apache.xalan.lib.ExsltDatetime.seconds"Removendo oxmlns:date como mostrado acima. Isso me dá o erro "Prefixo deve ser resolvido para um espaço para nome: data"Colocando o conteúdo dedate.seconds.xsl dentro do modelo que estou tentando escrever e depois chamandodate:seconds() sem argumento (está definido para usar o horário atual por padrão). Recebo esta mensagem de erro: "A chamada do método da instância para segundos do método requer uma instância do objeto como primeiro argumento". Isso parece promissor agora.Incluindo um argumento emdate:seconds. Recebo a mensagem de erro: "Para a função de extensão, não foi possível encontrar o método java.lang.String.seconds ([ExpressionContext,])"

Alguma sugestão de como usar essa função EXSLT não essencial?

Aqui está o meu modelo atual, ainda me dizendo que está tentando chamarjava.lang.String.seconds():

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:func="http://exslt.org/functions"
    xmlns:date="http://exslt.org/dates and times">
  <xsl:import href="date.seconds.xsl" />
  <func:script language="exslt:javascript" implements-prefix="date" src="date.js"/>
  <func:script language="exslt:msxsl" implements-prefix="date" src="date.msxsl.xsl"/>

  <xsl:template match="/">
    <xsl:value-of select="date:seconds('2014-02-27')" />
  </xsl:template>
</xsl:stylesheet>

questionAnswers(2)

yourAnswerToTheQuestion