Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 riference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial

処理を中断して意図に反するコードを知らせる

■ メッセージ

このサンプルは、処理途中に製作者の意図に反するコードを見つけた場合、メッセージを表示するものです。<xsl:message>テンプレートの内容</ xsl:message>のように記述すると、XSLT変換の走査途中に、xsl:message要素が記述されている場所に来ると、XSLTプロセッサは処理を中断して、エラーメッセージを表示してくれます。XSLTプロセッサは、メッセージを送信したあと、走査を終了します。XMLのデバッグ機能といっても良いかもしれません。もっとも、MS XML3では、アラーとボックスがポップアップされるわけではありません。XSLTプロセッサが送信するメッセージを生成するだけです。

message1.xml

 

message1.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html lang="ja">
<head><title>message</title></head>
<body>
   <div><xsl:apply-templates select="全体" /></div>
</body>
</html>
</xsl:template>

<xsl:template match="全体">
   <xsl:for-each select="情報">
   <xsl:if test="氏名=''">
      <xsl:message terminate="yes">「氏名」要素の内容がないデータがあります.処理を中断します.</xsl:message>
   </xsl:if>
      <table>
         <tr><th>氏名</th><td><xsl:value-of select="氏名" /></td></tr>
         <tr><th>ハンドル</th><td><xsl:value-of select="ハンドル" /></td></tr>
         <tr><th>住所</th><td><xsl:value-of select="住所" /></td></tr>
         <tr><th>勤務先</th><td><xsl:value-of select="勤務先" /></td></tr>
      </table>
   </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

もし、2件目の「氏名」要素を入力し忘れている場合いは、3件目が正しく入力されていたとしても、1件目を表示した時点でメッセージが表示され、処理が中断されます。

■ 注意

※ xsl:message要素にはterminate属性があり、その値はyesまたはnoですが、MS XML3の場合は、デフォルト値がyesなので、この属性が指定されて居なくても、メッセージを表示してくれます。terminate属性の値がnoなら、命令を無視します。W3Cの使用ではデオフォルト値はnoです。

<<<戻る

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box