しいしせねっとわーくAmazon.co.jp アソシエイト
[技術資料室] [フォーマット辞典] [Java XML] Get Firefox
[XML]

XSLTメモ

XSLTは、XML文書を別の形に変換する方法です。といわれても、さっぱりわかりません。XSLから別れたものなので先にXSLを知ればいい?

XSLTは現在2.0なのでしょうか?

とりあえず、入門書でも見つけて読破してしまいましょう。XSLTだけの入門書は少ないようですね。

XSLTでは、元となるXMLドキュメントと、スタイルシートやテンプレートと呼ばれる型となるドキュメントの2つを組み合わせて新しいドキュメントを生成します。HTMLのCSSとは違い、XSLTのスタイルシートはXML形式です。

C言語等々なら、データは構造体などの形をしています。これを別の形式の構造体内にプログラムで移したりします。これと同じことをプログラムではなく、XMLで指定するフィルタのようなものがXSLTです。

テンプレート側からドキュメントを指定することはできませんが、ドキュメント側からテンプレートを指定することはできます? どちらからも指定しないときは、ツールや設定ファイルなどの外部要因で関連づけるのでしょう。

入門書を読んでみました。読んでしまえば簡単なのですが、伝えるのはそんなに難しいか?というと難しくもないような。

たとえば、mozilla.org なんかで使われているようですが、

XML ドキュメントがあります。これは本文のところと、<title> なんかの部分が書かれています。これをあるデザインの型にはめたいとします。ドキュメントを更新するときに、単純に中身だけの更新だけでなく、<title>やあんなところ、こんなところと何カ所も修正を加えないといけませんね。更新する部分だけをxmlにしておき、デザインをxsl という別のファイルにしておきます。 xsltのツールで両方を指定して、混ぜます。そうするとhtmlファイルの必要箇所に必要なデータの入ったファイルができあがります。

まじないは、xslファイルの方がほとんどで、xmlファイルは純粋にデータだけです。

何が便利か?

Webを翻訳するときなど、特に便利です。デザインが同じページを大量に作る場合などにも、あとからデザインをごっそり変更できたりするのでおすすめかもしれません。

Webで使う場合には<frame>や<iframe>のような感じかもしれませんが、もっと柔軟に組み込むことができたりします。表示されるときはフレームではなく1つのページとして表示されます。

JSPと何が違うのか?

JSPは、動的なデータをデータベースなどからServletなどなどを経由して取り出したデータを受け取って動的にhtmlを生成します。XSLTは、XMLファイルからHTML等々の生成されたXMLを作ります。XMLであれば、データベース内のデータでもいいですが。どちらも、PC用と携帯用のページを同じデータから作る、などの対応はできます。

どこで使えるか?

プログラミング言語で使えます。主にJavaですかね。

Webブラウザで使えます。XMLファイルもXSLTでHTML形式にしたり、CSSで整形してやれば、表示できます。

どうなる?

XSLTは、Webでは主にデータファイルにスタイルとして指定されています。だからといってそのとおりの使い方しかないわけでもなく、ブラウザ側で特定の形式のXMLファイルに対してXSLTのスタイルを指定できれば、その形で表示してもいいわけです。

プログラムごとにデータ構造を別々で作るのではなく、RSSのようなできるだけ汎用的なデータ形式が多くなれば、そういうこともやりやすくなるかもしれません。

AmazonのRESTというWebサービスなどでも使われているようです。試してみたいかもしれない。

参考

[TOPへ戻る]