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

別のXSLファイルを読み込む

■ インポート

このサンプルは、XMLファイルに関連付けたXSLファイルに、別のXSLファイルをインポート(読み込み)してXMLファイルに摘要するものです。
xsl:import 要素を使って、<xsl:import href="読み込みたい別のXSLファイルのURL"/>のように記述します。
このインポート機能は、複雑なXSLファイルの一部をユニット化しておきたい場合に役立ちます。
表やリストや文章をそれずれ表示させるXSLファイルや、各部署や各章ごとのXSLファイルを作っておき、必要に応じて結合するといった用途が考えられます。

■ XML

import.xml

設定ファイル transfer.xml は、大きく分けて二つの部分から成り立っています。
帳票番号や記票者・発注者など、一帳票内に必ず一つしかないヘッダ部、そして、品番や単価などの帳票内に一覧表形式で示されている実データ部です。
ヘッダ部はセル一つに一要素が割り当てられているのに対し、一覧表部分は対象列に対して一要素が割り当てられています。

■ XSL

import1.xsl(読み込み元)

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="import2.xsl" />
<xsl:template match="/">
<html lang="ja">
<head>
<title>import1(import2.xslを読み込む)</title>
<style type="text/css">
   th{width:80px;background-color:black;color:white;}
</style>
</head>
<body>
   <div>
      <xsl:apply-templates select="全体" />
   </div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

1. <xsl:import href="import2.xsl" />のように記述し、import2.xslを読み込んでいます。xsl:importはトップレベル要素なので、xslt:stylesheetの子として使います。

2. 追加CSSの中で、見出しセルthに対し、背景色black、文字色whiteを指定しています。

3. 「全体」のデータを処理するだけで、どのように表示するか具体的には記述していません。両方のXSLファイルに同じテンプレートルールを重複して記述する必要はないからです。このためimport2.xslを読み込まない場合は、文字のられるになります。

import2.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html lang="ja">
<head>
<title>import2(読み込まれるXSL)</title>
<style type="text/css">
   table{width:400px;}
   th{width:80px;background:silver;}
   td{background:gainsboro;}
</style>
</head>
<body>
<div><xsl:apply-templates select="全体" /></div>
</body>
</html>
</xsl:template>

<xsl:template match="全体">
   <xsl:for-each select="情報">
      <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>


1. import2.xslでは、CSSを追加して、見出しセルの背景色にsilver、セルの背景色にgainsboro(薄いグレー)といった指定をしていますが、その通りの見栄えにはなりません。これは、読み込み元に記述したimport1.xslの追加CSSが優先されているためです。

2. 「情報」のデータが表形式で表示されるように記述しています。

<<<戻る

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