電子書籍の厳選無料作品が豊富!

 xalanを使うと、よくエラーが出ます。うまく、XMLファイルをはきだしてくれる事もあるんですが、体外エラーが出ます。

 エラー内容は、いつも同じで、以下の通りです。

SystemId Unknown; Line -1; Column -1; XSLT Error (javax.xml.transform.Transforme
rConfigurationException): javax.xml.transform.TransformerException: javax.xml.tr
ansform.TransformerException: xsl:stylesheet is not allowed in this position in
the stylesheet!

誰か、原因の分かる人がいましたら、返事の方よろしくお願いします。

A 回答 (2件)

えっと…


エラーメッセージを見ると xsl:stylesheet is not allowed in this position in the stylesheet! ("xsl:stylesheet"をこんなとこに書いちゃいかん)とハッキリ言っているわけなので、XSLを見直すのがまず第一じゃないかと思うんですが。

以下の環境でちょっと試してみた限りでは、"xsl:stylesheet"が2箇所記述されているような不正なXSLでないと上記エラーは出せませんでした(^^;
OS:Windows98SP1
Java:1.4.0_01 Runtime
Xalan:2.4.D1 (但しjarをlib/endorsedにcopy)
実行方法:コマンドラインよりjava org.apache.xalan.xslt.Processを起動

(何故 "SystemId Unknown; Line -1; Column -1;" なのかは判りませんが...。コマンドラインからだとXSLファイル名と行位置、桁位置がちゃんと表示されるので。)

環境とか実行方法とかXSLは間違ってないぞ~とかIEならちゃんと表示できるのに~とかXalan付属のサンプルはOKなのに~とかもっと書いた方がいいですよ(^^;。このエラーメッセージだけだと「XSLが間違ってます」としか答えられないので...。
    • good
    • 0
この回答へのお礼

どうも、ご回答ありがとうございます。環境としては、

OS:WindowsXP HomeEdition
Java: j2sdk1.4.0_01
Xalan: 2.2.D11
実行方法:コマンドラインから、以下を記述して起動。
D:\>java -Duser.language=en org.apache.xalan.xslt.Process -in Sample1.xml -xsl S
ample6-5.xsl -out result.xml

です。この辺は、本に忠実にやったので、間違いはないと思います。

たまに、成功するファイルもあるので、やはりXSLファイルがおかしいのでしょうか?XMLファイルは同じものを使い、XSLファイルを変えて色々試しています。
ほとんどの、XSLファイルで、例のエラーばかり出るのです。一応XSLファイルも載せておきます。

<?xml version="1.0" encoding="Shift_JIS" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="Shift_JIS" />

<!-- 文書 -->
<xsl:template match="/">
<root>
<xsl:apply-templates select="cars/car" />
</root>
</xsl:template>

<!-- 車 -->
<xsl:template match="car">
<car>
<num>
<xsl:number />
</num>
<xsl:apply-templates select="name" />
<xsl:apply-templates select="price" />
</car>
</xsl:template>

<!-- 品名 -->
<xsl:template match="name">
<xsl:copy-of select="."/>
</xsl:template>

<!-- 価格 -->
<xsl:template match="price">
<xsl:copy-of select="."/>
</xsl:template>

<xsl:stylesheet>

もし分かったら、ご回答ください。どうも、長々と読んでいただき、ありがとうございました。


です。

お礼日時:2002/08/19 21:43

最後の行が


<xsl:stylesheet>
になってます。正しくは
</xsl:stylesheet>
ですよね(^^)。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

すみません。。。こんな事なんて。。。情けないです。どうもくだらない質問にお付き合いいただきありがとうございます。おかげさまで、見事できました。なにぶん慣れないものですから、少しの間違いが、えらく大変な間違いに見えてしまい、焦っていたんです。

あと、他のXSLファイルに関しても、InternetExplorerで開くとうまく開けないんで僕のタイプミスだと思います。しらみつぶしに、ミスを探してきます。

やはり、何か間違いがあると、あのエラーが出てしまうんですね。確か、以前のxalanは、エラー行もちゃんと出たと思うんですが。同じエラーばかり出るので、設定やら機械の故障かな?と心配していたのです。

j2sdk1.4.0からのxalanは、まだ不備があって、完璧にはいかないらしいです。月刊「Java World」に書いてありました。

endorsedにフォルダをつくって新しいxalanを入れているんですね。私もやり方を読んだんですが、サッパリうまくいきませんでした。うらやましいです。

何はともあれ、問題が解決できてよかったです。これで、また勉強を進められます。とても助かりました。どうもありがとうございました。

お礼日時:2002/08/20 11:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!