XHTMLを書いてみましょう(XSLの適用-1)

2000年11月26日(日)更新


■XHTMLを表示する(2): xsl:copyでそのままhtml表示

たけち: 前回ちょっとだけ触れたnamespaceを使えば、XHTMLテキストに自分で定義したタグを追加できるんだけど、そのまえに基本的なXHTMLテキストをXSLを使って表示してみよう。

さらら: え〜っと。。。XSLを使うっていうんだから、xmlテキストとして扱うのね。

たけち: そうそう。で、XHTMLテキストの簡単な例を次に載せておくね。内容は、html 4.0そのものだよ。前回のサンプルだとXSLを使っていなかったので、XHTMLの構造(タグ)がそのまま表示されたね。

<?xml version="1.0" encoding="Shift-JIS"?>
<?xml-stylesheet type="text/xsl" href="sample2.xsl"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
   <title>XHTMLの例(2)</title>
  </head>
  <body>
    <p>XHTMLの簡単な例です。</p>
    <p>XSL(sample2.xsl)でhtmlに変換し、CSS(sample2.css)を適用しています。</p>
  </body>
</html>

たけち: どう? これ自体は問題ないよね。前回のXHTMLの基本形とほとんど同じで、違っているのは。。。

さらら: 2行目の<?xml-stylesheet ....... ?><p>タグのテキストが追加になっていることね。

たけち: その通り。で、このXHTMLテキストからそのままの形でHTMLに変換するには、どんなXSLを書くのかなんだけど。xsl:copyっていう指定方法があるんだ。

さらら: xsl:copy?

たけち: xsl:copyで、もとのXMLテキストの指定したタグの部分をそのままコピーすることができるんだ。つまり、ここではXHTMLに含まれているHTML 4.0と同じタグで書いた構造をそのまま表示のためのHTMLとして使うことができるんだね。

さらら: あっ、そういうことなの。

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">
<html>
<link rel="stylesheet" type="text/css" href="sample2.css" />
	<xsl:apply-templates />
</html>
</xsl:template>

<!--  もとのxmlテキストの内容をそのままコピーします   -->
<xsl:template match="@*|node()">
	<xsl:copy>
	<xsl:apply-templates />
	</xsl:copy>
</xsl:template>

</xsl:stylesheet>

さらら: <xsl:template match="@*|node()">match="@*|node()"ってどういう意味なの?

たけち: すべての「属性」とすべてのnode(タグで示される要素)にmatch(一致)したらってことだよ。" | "は「または」って意味。

さらら: ふ〜ん。ちょっとわかりにくい記号ね。

たけち: そっ、そうだね。。。じゃぁ、近いうちに「XML関連用語」に載せておこうかな。


■XHTMLの基本的な表示の流れのまとめ

たけち: お話ばっかり続いちゃったから、ここで簡単に整理しておこうね。図をみて、今までのことを思い出しながら。。。どう?

さらら: そうね。やっとだいたいの流れが分かったわ。

たけち: このxsl:copyはXHTMLの場合のXSLではよく使うから覚えておいて。

さらら: は〜い。あっ、CSSもいっしょに載せてね。

XHTMLの基本的な表示の流れのまとめ

たけち: じゃあ、いつものようにサンプを載せておくね。あっ、その前にCSSもリストしておくね。

さらら: ありがと。

sample3.cssのリスト

body { background-image:url(image/bmanyo.jpg) }

p { display:block; color:navy; font-size:12pt; }

XHTMLファイル xhtml-sample2.xml

こんな風にテキストが表示されます。
こんな風に表示されます・・・

さらら: これでやっとXHTMLの表示についてわかったような気がするわ。で、これって基本なのよね、たけち。

たけち: そうなんだ。さららが気にしているのは、このままじゃこれまでのHTMLテキストと何も変わらないってことだったよね。さららの疑問に答えるにはも少し話を進めていかないといけないね。次回は、namespaceについて話をしなくちゃいけないかなぁ・・・

さらら: なっ、なんだか難しそうね・・・大丈夫かしら。

→次はNamespaceってなぁにです (^ ^;


注) 今回のXHTMLサンプルと同様なXHTMLファイル xhtml-sample2.htmlもご参照ください。