2

次の XTSE0120 の理由を見つけるのに時間がかかったので、これは自己回答の投稿です。私は XSLT にまったく慣れていないので、間違いを犯してテキストを外に出しました<xsl:template>

bellack@bellack-TP-T430u:~$ cat -n /tmp/x.xsl
     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <xsl:stylesheet 
     3   version="2.0" 
     4   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     5 >
     6 <xsl:output method="text"/>
     7 <xsl:template name="build" match="/">
     8 <!-- 
     9   a lot of xslt code lines 
    10   -->
    11 </xsl:template>
    12 ****** misplaced text ****************
    13 </xsl:stylesheet>

これは許可されていないため、エラー XTSE120 が発生しました。 http://www.w3.org/TR/xslt-30/#err-XTSE0120を参照してください。

bellack@bellack-TP-T430u:~/workspace/tembanking/generator/crud$ java -jar ../lib/saxon9.jar -xsl:/tmp/x.xsl -s:/dev/null
Error at xsl:template on line 7 of file:/tmp/x.xsl:
  XTSE0120: No character data is allowed between top-level elements
Failed to compile stylesheet. 1 error detected.

しかし、エラーは 7 行目で報告されます。x.xsl には数百行あるため、実際にはエラーがファイルの末尾にあった 7 行目付近で問題を探していましたが無駄でした。

saxon 以外の XSLT プロセッサでもこの誤解を招くエラー メッセージが表示されるかどうかはわかりません。

それが誰かを助けることを願っています...

ウド

4

1 に答える 1