2011-01-04 2 views
1

私はXalanののUbuntuのCLIバージョンを使用しようとしている:Xalanの日の延長問題

Xalan version 1.10.0 
Xerces version 2.8.0 

私の問題は、日付関数でキックする方法です。

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
       xmlns:xs="http://www.w3.org/2001/XMLSchema" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date"> 

<xsl:import href="date/date.xsl" /> 
<xsl:output method="text" indent="yes" /> 
date: <xsl:value-of select="date:date()" /> 
</xsl:stylesheet> 

は、それが戻ってこのメッセージを私に与えます:私はこのようにしようと試み

XSLException Type is: XalanXPathException 
Message is: The function number 'http://exslt.org/dates-and-times:date' is not available. (file:///home/user/test.xsl, line x, column y) 

何のファイルまたは私はそれらの日付関数を動作させるために変更する必要がありますか?

答えて

2

Xalanのそれ以降のバージョンを使用する必要があります。 Xalan J.2.7.1 documentationから

EXSLT拡張

のXalan-JavaはXSLTのユーザーに 標準拡張機能と 要素のセットを提供するために、EXSLT イニシアチブをサポートしています。

EXSLT共通機能が 機能が機能

EXSLT日時関数

EXSLT動的機能

を設定EXSLT数学EXSLT:のXalan-Javaの はEXSLT拡張モジュール次 の実装を含みますEXSLT文字列関数

EXSLT func:functionと func:result el ementsは(EXSLT参照 - FUNC:機能)

+0

これはXalan-Javaではありません!それはXalan C++であり、最新バージョンです。 – azAttis

+1

Xalan C++がEXSLTの日付を実装していない場合は、JSまたはXSeleratorに付属するdate_timeライブラリの ''要素を使用でき、純粋なXSLT(拡張関数はありません)です。 –

+0

実際、Xselerator26.msiにはMartin "Marrow" Rowlinsonによる純粋なxsl実装のSamples \ Libraries \ datetime_lib.xslが含まれています。 "使用上の制限なし"。 http://stackoverflow.com/questions/7346178/does-anyone-have-a-copy-of-the-xselerator-xsl-ide-from-sourceforge – Vadzim

1

ドキュメントには、そのサブセットのベータ版実装が組み込まれていることが示されていますが、exslt.orgの関数をインポートして使用することはできません。なぜあなたはできないのですか? Xalan-C++は関数のインポートをサポートしていませんか?

で、テンプレートが機能することに注意してください。機能だけではありません。