XML棋譜データは、2行目で指定されたスタイルシートファイルに記述されているレイアウトに従って石葉碁盤を表示します。
スタイルシートの一例として手順データベース用スタイルシートのソースを下表に示します。
<?xml version="1.0" encoding="shift_jis" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
スタイルシートファイルの開始宣言 xmln:xsl="の後に記載されているURLは名前空間と言われるもので実際にファイルを読みに行くわけではなさそうです。 オフラインでもスタイルシートが記載されているXML棋譜を開くことができます。 |
<html> <head> <title> 石葉2 - LeafShow </title> </head> <body bgcolor="#ddfdbd"> <center> <script type = "text/JavaScript"> <xsl:comment> <![CDATA[ function getAdv() { if(location.search) { tmp = location.search.indexOf("@"); if(tmp > -1) { return location.search.substring(tmp); } } return ""; } document.write('<applet codebase=../../MyLeaf code=KifuShow.LeafShow.class name=LeafShow width=413 height=640 archive=LeafShow2.jar >'); document.write('<param name="advancemoves" value="' + getAdv() + '" />'); ]]> </xsl:comment> </script> <base target="new" /> |
XML棋譜ファイル名の後ろに疑問符(?)に続けて着手IDを記入すると、その着手IDが打たれた局面を表示するスクリプトです。
例:
|
<br /> <param name="layout" value="./qa/dblayout.xml" /> <param name="leafhint" value="true,tanabata" /> <param name="gobanxy" value="1-1" /> <param name="advancemoves" /> <param name="out___" value="true" /> <param name="number" value="true" /> <param name="salala" value="true,flow" /> <param name="speed" value="1" /> <param name="xslpath" value="../dblayout.xsl" /> |
石葉のアプレットのパラメータを記載します。
|
<param name="moves" > <xsl:attribute name="value"> <xsl:apply-templates select="igo/kifu" /> </xsl:attribute> </param> <script type = "text/JavaScript"> <xsl:comment> <![CDATA[ document.write("</applet>"); ]]> </xsl:comment> </script> </center> </body> </html> <!-- HTML_END --> |
石葉アプレットの棋譜読み込み部分です。 変更してはいけません。 |
</xsl:template> <xsl:template match="igo/mese"> <xsl:value-of select="name()" /> <xsl:value-of select="." /> </xsl:template> <xsl:template match="*"> <xsl:text><</xsl:text> <xsl:value-of select="name()" /> <xsl:for-each select="@*"> <xsl:text> </xsl:text> <xsl:value-of select="name()" /> <xsl:text>="</xsl:text> <xsl:value-of select="." /> <xsl:text>"</xsl:text> </xsl:for-each> <xsl:if test="count(child::*) = 0"> <xsl:text> /></xsl:text> </xsl:if> <xsl:if test="count(child::*) > 0"> <xsl:text>></xsl:text> <xsl:apply-templates /> <xsl:text></</xsl:text> <xsl:value-of select="name()" /> <xsl:text>></xsl:text> </xsl:if> </xsl:template> </xsl:stylesheet> |
変更してはいけません。 |