適当プログラマー

XHTML1.1 をもっと広めるべきなんだよ。

application/xhtml+xml による XHTML1.1 の勧め

I love xhtml1.1!ということで、皆さんは XHTML1.1 を使っているでしょうか?使っていないでしょう。使っていても、どうせ、 text/html なんていう、エセ xhtml1.1 を使って満足しているでしょう。

みんな、application/xhtml+xml による xhtml1.1 の恐るべきパワーを分かっていないんじゃないか?

application/xhtml+xml で、他人とは違う自分らしさを演出!とか、未来の SEO を先取り!とか、そんな低次元な話をしているんじゃないんだ。もっと実践的な話をしているんだ。

第一、 text/html だと、XSL Transformations が使えないじゃないか!通称、 xsl ファイル! xhtml を使っていたら、一度は聞いたことがあるだろう!?「 xhtml は xml だから xslt でファイルを html に変換したり、他の何かに変換したりできる」と。

「はぁ? xhtml を html に変換するなら最初から html で書けばいいじゃん」じゃねぇよ!黙って聞けよ!お前は xsl ファイルの実力をなめてる! xsl ファイルを使えば、その気になれば元データと全く違うモノに変換することも出来るんだぜ!?

というわけで、今日は xhtml1.1 ファイルを xslt ファイルで xhtml1.1 ファイルに変換しまーす。「変換してねぇジャン」じゃねぇ!黙って見てろ!

というわけで、まずは、最終的にどんな内容の xhtml1.1 ファイルに変換するかを見せましょう。まず、変換後の xhtml1.1 ファイルのソースコードです。これの為に一々用意するのも面倒臭いので、私が実際にエッセイのコーナーで使用しているものをお見せします。

で、そのソースコードでどんな感じのサイトになるかというと実際の変換後のウェブサイト。 CSS を外すと、こんな( CSS を外した、変換後のウェブサイト)感じ。 Internet Explorer では見ないでください。あのブラウザシェアで過半数を越える IE は application/xhtml+xml に対応しておりません。

はい、「きったねーソースコードだな」とか言わない。「 div 使いすぎ」とか言わない。「これだからコンテンツとデザインの分離の素人は」とか言わない。

──分かったよ。分かりましたよ。そんなに言うならコンテンツだけにしてやる。純粋にコンテンツだけのソースコードにすれば問題ないだろ。ウェブから見ればこんな感じ(純粋にコンテンツだけのサイト)だ。

「馬鹿野郎!メニュー項目が無いじゃないか!!」じゃないよ。あんたさぁ。冷静になって考えてみろよ。本当にメニューっていうのはコンテンツのひとつか?メニューはコンテンツとは無関係。むしろ、デザインの一部じゃないか?というわけで、メニューは無視無視。これこそが、純粋なコンテンツだけのページだろ。

はい、では、皆さんお待たせのスーパーなアイテム、xslt ファイルを用意します。私が用意した xsl ファイルはこんな感じです。

はい、ではいくぜ!この xslt ファイルを、先ほどの純粋なコンテンツのみの xhtml1.1 ファイルに適応させます。すると、こんなソースコード( xslt ファイルを適応させたソースコード)で、ブラウザから見るとこう(純粋なコンテンツだけの xhtml1.1 に xslt ファイルを適応させたページ)なります

どうだ、見たか!!純粋なコンテンツのみのページを xslt ファイルで、メニュー項目つき!かつ、デザインつき!にしてやったぜ!!

どんな感じになってるかというと、 xhtml1.1 に、 xslt ファイルでデザイン用の div タグとメニュー項目を追加。で、 xslt ファイルから外部 css ファイルを読み込んでいます。

「で?これが何?」なんて、まさか言いませんよね?ここまで XHTML1.1 の話を読んでいるって言うことは、 html と外部 CSS の関係は知っていますよね? html ファイルを、ある程度決まった形式で作成すれば、外部 CSS ファイルをいじるだけで、一気に全ページのデザインを変えられる。

で、私が今、 xslt ファイルで外部化したものは、メニュー項目とデザイン用の div タグ。つまり、元の純粋なコンテンツだけの xhtml1.1 ファイルの形式をある程度決まった形にすれば、 xslt ファイルひとつを書き換えるだけで、メニュー項目と html の書き換えができるというわけですよ。

よくあるじゃないですか。全ページにメニュー項目があるサイト。新しいページを作ってメニューが増えるたびに全ページを手作業で書き換えるわけにはいかないから、フレームを使ってみたり、 PHP でインクルードしてみたり。でも、そのやり方ってスマートじゃないよね。外部 xslt ファイルをひとつ、書き換えるだけで、全ページのメニュー項目が更新される。これこそが、本当のハックというものだよ。ぬははははは。

xslt を勉強していけば分かると思うけど、 xslt を使えば、元データと何の関係もない見た目を作ることが出来る。つまり、ソースコードはアダルトな言葉満載なのに、ウェブで見ると証券会社のサイトみたいな事もできる。次世代の検索スパムの主流はこういうのだね。間違いない。

さて、最後に残念なお知らせが3つあります。1・今年も私に友達が出来ませんでした。2・ブラウザ市場をほぼ独占している Internet Explorer が application/xhtml+xml に対応していません。3・検索サイトもまだ外部 xslt ファイルに対応していません。

1番目は皆さんには関係ないとして、まず、2番め。これは、 CSS がまだ市場に浸透していないときの事を彷彿とさせますね。 CSS が、まだブラウザ側でうまく対応できていなかったとき、外部 CSS の素晴らしさに気づいていた人も、「あんの、ブラウザ野郎が!!」と泣く泣く諦めたとか。私はその時代の事を良く知らないのですが、外部 xslt ファイルも同じように使えないので、その時代の人達とシンパシーを感じます。

「3・検索サイトが外部 xslt ファイルに未対応」というのは、一瞬、「どういうこと?」と思うでしょう。これは、フレーム問題と一緒です。昔、フレームは「検索ロボットがページを読み込めない。そんな古いやり方使うな!」といって、嫌悪されていました。ロボットがリンクをたどってデータベースに登録することが出来なかったのです。云わば、「過去のロボット読み込め無いよ問題」。それに対して、外部 xslt ファイルは「未来のロボット読み込め無いよ問題」。外部 xslt ファイルをロボットが読み込んでくれないので、せっかくメニュー項目を外部化出来るというのに、外部化すると、ロボットがメニュー項目のリンクをたどれない。純粋なコンテンツのみのページが本当に純粋なコンテンツのみのページとして扱われてしまうわけです。 SEO を考えると、これはマズイわけです。なので、私もサイトの半分だけ XHTML1.1 にして、もう半分は泣く泣く PHP を使っているんですね。

html のみを使ってサイトを作っている人に外部 CSS の利点を教えるのは難しい(「え?デザインを外部化しなくても、 font タグでできるじゃん」など)ですが、 html と外部 CSS の利点を知っている皆さんなら、今回の(外部) XSLT の話は少しは興味を持てたのではないでしょうか。ぜひ、 XHTML1.1 を XSLT の素晴らしさとともに広めてください。それでは。

このエントリーをはてなブックマークに追加