2012-03-14 2 views
2

おはよう!私はAltova XMLSpy試用版をダウンロードし、FOP 0.95をインストールし、XSLT(バージョン1.0)変換を実行しようとしました。私のテンプレートが有効ですが、それは含む行に失敗した形質転換「(日時)」を機能の間:ALTOVA XmlSpyでXSLTのdate-time()関数が不明です

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:dt="http://exslt.org/dates-and-times" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="dt exsl"> 
<xsl:output method="html" encoding="utf-8" indent="yes"/> 

<xsl:template match="/"> 
    <html> 
     <body> 
      <xsl:value-of select="dt:date-time()"/> 
     </body> 
    </html> 
</xsl:template> 

</xsl:stylesheet> 

エラーメッセージは次のとおりです。

Error in XPath expression 
Unknown function - Name and number of arguments do not match any function signature in 
the static context - 'http://exslt.org/dates-and-times:date-time' 

してください。この機能を利用できるようにする方法?私はこの機能が存在すると確信しています。このテンプレートは、たとえば、このオンラインXSLTテスターで動作します。http://markbucayan.appspot.com/xslt/index.html

ありがとうございます! Vojtech

UPDATE:私はSAXON 9(HEとEEの両方)をインストールしましたが、これを使用するにはALTOVAを設定しましたが、同じエラーです。

+0

あなたが言う「同じエラーが」あなたはまったく同じ文言を意味していますか?これはAltovaのエラーメッセージですので、このメッセージが表示された場合、あなたはSaxonを実行していませんでした。 system-property( 'xsl:vendor')を使用して、実行しているXSLTプロセッサを教えてください。 –

+0

マイケルありがとう。私がベンダーとバージョンを照会すると、ベンダーSaxonica、バージョン2.0が得られます。 "同じエラー"とは、私の質問に書かれているのと同じエラーメッセージを意味します。 – Vojtech

答えて

4

あなたはAltovaのを使用したり、XSLT2を使用することができるのではなくXSLT1はそうEXSLT拡張をロードする必要はありませんサクソンている場合は、xpath2は

select="current-dateTime()" 

http://www.w3.org/TR/xpath-functions/#func-current-dateTime

+0

残念ながら、私はAltovaを使用して、XSLT1のみをサポートするWebアプリケーションで使用されるテンプレートを開発しています。だから私はXSLT2を使用することはできません。 – Vojtech

+0

その場合は、Webアプリケーションがexslt拡張子(xsltの標準部分ではない)をサポートしているか、このケースではもっと単純かもしれないかどうかを確認する必要があります。現在の日付をスタイルシートパラメータとして宣言し、外部ホスティング言語で計算された文字列。 –

+0

Davidありがとう。はい、WebアプリケーションはEXSLTをサポートしています。私はアプリケーションの所有者ではない、私はそれのためのテンプレートを開発する必要があります。 Webアプリケーションに付属のツールを使用するのは難しいので、自分のマシンでローカルに開発したいと思っています。残念ながら、私のマシンではEXSLTが動作しないと思われますが、その理由はわかりません。ベンダーとバージョンに関する情報を印刷すると、ベンダーSaxonica、バージョン2.0が表示されます。 – Vojtech

0
`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" extension-element-prefixes="msxsl" xmlns:local="urn:local> 
<msxsl:script language="CSharp" implements-prefix="local"> 


public string dateTimeNow() 
    {  
     return DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ"); 
    } 

</msxsl:script> </xsl:stylesheet>` 

に建てられたこの機能を有しており、このように使用してください<xsl:param name="dnes" select="local:dateTimeNow()"/>

0

XSL 2.0をサポートするAltova xml spy 9バージョンを使用してください。

おかげ アーディティヤ

+1

すでに受け入れられている回答とそれを投稿する前にコメントを投稿してください...質問を投稿した人はXSL 2.0を使うことができません。 – NREZ

+0

質問にはバージョンの情報が含まれています。 – Aditya

関連する問題