ユーザー定義の JAR ファイル

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  エンジン情報 > XSLT と XPath/XQuery 関数 > その他の拡張関数 > Java 拡張関数
 >

ユーザー定義の JAR ファイル

JAR ファイル経由でアクセスが行われた場合、以下の構文により JAR ファイルの URI を指定する必要があります:

 

         xmlns:classNS="java:classname?path=jar:uri-of-jarfile!/"

         

クラスの識別を行う名前空間 URI のプレフィックスを使用してメソッドが呼び出されます: classNS:method()

 

  上の例に対する説明は以下のとおりです:

 

java: 関数が呼び出されていることを表します。

classname がユーザー定義されたクラスの名前になります。

? はクラス名とパスを分離するために使用されます。

path=jar: により、JAR ファイルへのパスが与えられていることを示します。

uri-of-jarfile は JAR ファイルの URI となります。

!/ は、終了を表すデリミタとなります。

classNS:method() により、メソッドの呼び出しが行われます。

 

 

その他にも、メソッド名とともにクラス名を与えることができます。構文の例を以下に示します:

 

         xmlns:ns1="java:docx.layout.pages?path=jar:file:///c:/projects/docs/docx.jar!/"

         ns1:main()                

 

         xmlns:ns2="java?path=jar:file:///c:/projects/docs/docx.jar!/"

         ns2:docx.layout.pages.main()

 

以下に JAR ファイルを使った Java 拡張関数を呼び出す XSLT サンプルを記します:

 

 <xsl:stylesheet version="2.0" 

         xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 

         xmlns:xs="http://www.w3.org/2001/XMLSchema" 

         xmlns:fn="http://www.w3.org/2005/xpath-functions"

         xmlns:car="java?path=jar:file:///C:/test/Car1.jar!/" >

 <xsl:output exclude-result-prefixes="fn car xsl xs"/>

 

 <xsl:template match="/">

                 <xsl:variable name="myCar" select="car:Car1.new('red')" /> 

                 <a><xsl:value-of select="car:Car1.getCarColor($myCar)"/></a>

 </xsl:template>

 

 <xsl:template match="car"/>

 

 </xsl:stylesheet>

 

メモ :拡張関数によりパスが与えられている場合、ClassLoader にパスが追加されます。

 


(C) 2019 Altova GmbH