Michael Kay 「XSLT 2.0」 第一章メモ

これはMichael Kayの「XSLT 2.0 and XPath 2.0」(4th Edition、Wrox Press、Kindle版)の内容に関するメモである。

XMLデータは、人間の読者が使うにせよ、ソフトウェアで使うにせよ、何らかのかたちで変形される。もっとも一般的なのはXMLからHTMLへの変換である。XSLTはこの変換を行なうための言語である。

XSLT1.0 1999年に勧告となる
XSLT2.0 2007年に勧告となる

XSLT2.0は、4つのテーマがある。
XML標準ファミリーへの統合
・適用可能領域を広げる。テキストパターンの認識など。
・頑健なソフト開発。エラーハンドリングや型のチェック。
・利用しやすさを向上

XSLTはツリーをナビゲートして、特別なデータを選択し、操作する宣言的な言語である。表面的には違うが、本質的にSQLと類似性がある。

SQLのSELECTとXSLTXPathXPathXML文書からノードを検索する。

言語としてのXSLT2.0
(1)XML文法で書かれる
XMLパーサーが既にある。XMLパースをXMLTの処理と分離するメリットは大きい。迅速なエラー、早い開発サイクル。
・HTML/XML/CSSの文法の相違に苦しむ必要がない
・DSSSLのLISPは難しい
ASP, JSPで類似の経験がある
・語彙を再利用できる、語彙の拡張が容易でパース可能
・視覚的開発ツールで開発を容易にできる
スタイルシートが他のスタイルシートを読み書きできると便利
・冗長さを解消―XPath2.0の if...then..., を定義する

(2)副作用がない言語
・関数を呼び出す順序、回数の制限がない
・副作用がないので、途中を再度繰り返しても結果が変わらない。どのような順序でも実行できる。スタイルシートの一部を選択して独立にしても結果が変わらない。
・変数を更新できないという制約がある―この問題を解決する共通のデザインパターンがある

(3)パターンマッチング規則の組み合わせで記述する
・テンプレート規則の習合である
・順序は関係ない
・手続き言語では、何をどういう順番で実行するべきかを書く。しかし、XSLTでは特定のパターンがあったときどんな出力を出すかを書く
・テンプレート規則を多用するのは4つのデザインパターンのうちのひとつだけ

(4)XMLSchemaに基づく型の仕組み
・XSLT2.0で導入された。
・型の種類、型の正しさを保証する方法。XSLT2.0で型の種類が増え、型の正しさチェックが厳密となった

(5)XPath言語がXSLT言語に埋め込まれている
・ホスト言語XSLT、埋め込み言語:XPath
XPathの文脈をXSLTから引き継ぐ
・原則としてXPathからXSLTを呼べないが、一部は機能的に重複しているし、関数呼び出しを使って間接的に呼び出すことができる
XPathの文法は3種類の起源をもつ
a. 伝統的プログラム言語
b. Path表現
c. 述語論理(for, some, every...)