- - PR -
XSLTからJavaを使うには
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-07-05 15:41
はじめまして。XSLTからJavaのメソッドを使いたいと試行錯誤しています。
すいませんが分かる方いらしたら教えてください。 やりたいこと ------------------------------------------------------------------------------- schoolクラスのsetNameメソッドを使って、XSL文書のtestにsaitamaという値をセットしたい。ですが、setNameメソッドの引数をどう設定したら良いかが分かりません。 <xsl:if test="java:setName ($school,@name)"/> XSL文書のこの箇所です。 ------------------------------------------------------------------------------- XSL文書 ------------------------------------------------------------------------------- <?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:java="http://xml.apache.org/xslt/java/test"> <xsl:output method="xml" encoding="UTF-8"/> <xsl:variable name="school" select="school"/> <xsl:template match="school"> <xsl:if test="@name"> <xsl:if test="java:setName ($school,@name)"/> </xsl:stylesheet> ------------------------------------------------------------------------------- 処理対象のXML文書 ------------------------------------------------------------------------------- <?xml version="1.0" encoding="Shift_JIS" ?> <school name="saitama"> </school> ------------------------------------------------------------------------------- schoolクラス ------------------------------------------------------------------------------- public class school { public String setName(){ return name; /*引数の設定が分からない*/ } } ------------------------------------------------------------------------------- Xalanからのコマンド入力 ------------------------------------------------------------------------------- >java -Djava.endorsed.dirs=C:\\xalan-j_2_5_1\\bin org.apache.xalan.xslt.Process -IN school1.xml -XSL school2.xsl -OUT test.xml classpathはschoo1.xmlとschool2.xslがあるフォルダには通しています。 ------------------------------------------------------------------------------- エラー内容 ------------------------------------------------------------------------------- XSLTエラー(javax.xml.transform.TransformerException): java:lang.NoSuchMethodException:For extension function, could not find method school.setName([ExpressionContent,]#NODESET,#NODESET) ------------------------------------------------------------------------------- |
1