■<xsl:message>要素
・(書式)<xsl:message terminate="yes|no">メッセージ内容</xsl:message>
*terminate属性
yes・・・メッセージを出力し、XSLTの変換処理を終了する
no・・・デフォルト、XSLTプロセッサはこの<xsl:message>要素を無視する
・この<xsl:message>要素が記述された位置でXSLT変換処理を終了し、指定したメッセージ内容を表示する。スタイルシート変換のデバッグ用に活用できる。
[サンプルXML文書を表示](下のフレームに)
このサンプルではterminate="yes"の時、4番目の<kabu>要素(即ち「三洋」)で変換処理を終了する。それまでの変換結果は表示される。
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="message01.xsl"?>
<root>
<title>2003年11月05日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1529</end><total>12302</total></kabu>
<kabu><name code="6753">シャープ</name><end>1786</end><total>3964</total></kabu>
<kabu><name code="6758">ソニー</name><end>4030</end><total>8220</total></kabu>
<kabu><name code="6764">三洋</name><end>516</end><total>7551</total></kabu>
<kabu><name code="6501">日立</name><end>692</end><total>21896</total></kabu>
<kabu><name code="6502">東芝</name><end>440</end><total>17832</total></kabu>
<kabu><name code="6701">NEC</name><end>1027</end><total>19229</total></kabu>
<kabu><name code="6702">富士通</name><end>708</end><total>16634</total></kabu> </data>
<end>以上です(2004/5/26)</end>
<error>< xsl:message >の出力テストにより、変換処理を終了します</error>
</root>
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="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<center><H3>メッセージ出力<xsl:message>のテスト</H3></center>
<xsl:apply-templates select="root/data"/>
</xsl:template>
<xsl:template match="data">
(1)terminate属性が"on”の場合・・・
<xsl:for-each select="kabu">
<xsl:if test="position()=4">
<xsl:message terminate="no">「<xsl:value-of select="current()/name"/>」処理中に
Error:--→<xsl:value-of select="../../error"/></xsl:message>
</xsl:if>
<xsl:value-of select="name"/>、
</xsl:for-each>
<hr/>
(2)terminate属性が"yes”の場合・・・
<xsl:for-each select="kabu">
<xsl:if test="position()=4">
<xsl:message terminate="yes">「<xsl:value-of select="current()/name"/>」処理中に
Error:--→<xsl:value-of select="../../error"/></xsl:message>
</xsl:if>
<xsl:value-of select="name"/>、
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
end(04/5/26)