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

属性と属性値をグループ化する

■ 属性セット

このサンプルは、テンプレートルールに名前をつけてユニットのように扱い、名前を目印に呼び出して使うものです。DTPソフトにある、スタイル設定とスタイル適用の機能に似ています。まず、<xsl:template name="テンプレートの名前">テンプレートルール</xsl:template> のように記述し、テンプレートルールに名前を付けてユニットにします。次に<xsl:call-template nam="呼び出すテンプレートの名前"> </xsl:template>のように記述し、テンプレートルールを呼び出します。XMLのWebページの中で同じテンプレートルールを複数回使いたい場合、この機能を使えばXSL 同じコードを記述する必要がありません。

attribute-set.xml

 

attribute-set.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>attribute-set</title>
</head>
<body>
   <div><xsl:apply-templates select="全体" /></div>
</body>
</html>
</xsl:template>

<xsl:attribute-set name="tableStyle">
   <xsl:attribute name="style">
      font-family : "MS Pゴシック";
      font-size : 12pt;
      color : dimgray;
      width : 450px;
   </xsl:attribute>
   <xsl:attribute name="border">
      1px
   </xsl:attribute>
</xsl:attribute-set>

<xsl:attribute-set name="thStyle">
   <xsl:attribute name="style">
      font-family : "MS Pゴシック";
      font-size : 12pt;
      color : white;
      width : 100px;
      background : black;
   </xsl:attribute>
</xsl:attribute-set>

<xsl:template match="全体">
   <xsl:for-each select="情報">
      <table xsl:use-attribute-sets="tableStyle">
      <tr><th xsl:use-attribute-sets="thStyle">氏名</th><td><xsl:value-of select="氏名" /></td></tr>
      <tr><th xsl:use-attribute-sets="thStyle">ハンドル</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番目の<div>ブロック内に「テンプレート2」という名前のテンプレートルールを呼び出しています。

A 「テンプレート2」という名前のテンプレートルールを呈して言います。このルールが@で指定した2番目の<div>ブロック内で適用されるようになります。

同じ名前の属性セットがある場合、後に記述した指定が優先されます 。

1個のxsl:attiribute-setでまとめられたおのおののxsl:attribute要素の指定は、属性セットがつあくぁれて初めて処理されます。

xsl:use-attribute-sets要素とxsl:attribute要素を併用した場合は、 xsl:use-attribute-sets要素の処理が行われた後、xsl:attribute要素で特定される属性指定が追加されます。xsl:attribute要素で特定される属性指定に置き換わるわけではありません。未指定の部分のみが追加されます。

■ 注意

CSSを書きなれている人は、優先順位の違いに注意してください。CSSでは、りんキングスタイルシートより円ベッドスタイルシート、円ベッドスタイルシートよりインラインスタイルシートというように、中に書けば書くほど優先されますが、xsl:use-attiribute-sets要素とxsl:attribute要素の由千住運いは中に書いたから優先されるというものではありません。

<<<戻る

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