ホーム > X-Plus > XML Square >  デベロッパーズコーナー  >  実践!XSLT

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

デベロッパーズコーナー:実践!XSLT(5)

2001年09月13日作成 

実践XSLT 「DOMの使い方」
第1回:DOMを使うと何が変わるか?

2001年9月13日
(株)日本ユニテック
青木 秀起


1.イントロダクション

XSLTは、単なるHTMLへの構造変換言語にとどまらず、DOMとうまく併用することによってその用途はさらに広がります。実践XSLT「DOMの使い方」第1回では、XSLT+DOMによって何が可能になるのかを簡単に解説いたします。

2.なぜDOMが必要か?

実践XSLT「やさしいXSLTの書き方」第1回~第4回で考えたように、XSLTはXML構造変換言語でした。B2BやDBなど、今や多岐にわたる活用法が期待されています。とはいえ、XSLTは本来XMLを「表示するため」の言語なので限界があります。そこで、他のプログラミング言語やDOMと併用することによって複雑な処理にも対応することができます。XSLTとDOMをうまく使い分けることにより、XMLをより汎用的に処理することができるのです。XSLT+DOMにより、以下のことが可能になります。

①対話的または手続き的処理などの、複雑な処理に対応できる。
ダイナミックなスタイルシートの切り替えができる。


複雑で、ダイナミックな処理ができるとは、どういうことでしょうか?まず下図をご覧ください。


図1 Webページの自動集計・更新、スタイルの切り替え

上図のように、企業が販売している製品についての情報をWebページで公開しているとします。各事業部から製品情報を自動的に集計・更新・表示したり、複数のスタイルシートを対話的に切り替えて表示形式を変える(表形式やリスト形式など)ことができます。XSLTだけでは、手動でXML文書に対応するスタイルシートを指定したりXSLプロセッサを呼び出す必要がありますが、DOMを使えばこれを自動的に切り替え、クライアントが必要なデータを動的に抽出・加工処理し、クライアントに対応した形式で表示することができます。

それだけでなく、下図のような利用も可能になります。


図2.DOMによるマルチデバイス表示

上図のように、クライアントのリクエストに応じまたはクライアントのデバイスを自動認識し、クライアントのデバイスに適したデータ形式で、必要な情報だけを抽出して配信することができます。まさにマルチデバイスの情報配信が可能になるのです。

3.DOMとは何か?

では、この優れもののDOMとは一体何でしょうか?DOM (Document Object Model) とは、XML文書をメモリにツリー構造として展開し、そのノードにアクセスする方式のことで、特定のプログラミング言語に依存しない標準APIです。アプリケーションはこのDOM APIを通じてDOMツリーにアクセスすることができるため、XMLアプリケーション開発が容易になり、プログラミングの移植性も非常に高まるのです。これと対照的なAPIに、イベント・ベースで処理するSAX (Simple API for XML) という規格もあります。(DOMについての詳細は、弊社サイトの「使って理解するDOMプログラミング」をご覧ください。)


図3 DOM API


4.DOMの書き方

最後に、DOMの書き方をご紹介しましょう。DOMは、XSLスタイルシート中にスクリプトとして書くことができます。下図のように書くことができます。


図4.XSLファイルのDOM

図のように、VBScriptを使うなら、<script>タグでスクリプトの指定を行い、<script>と</script>の間にDOMを書くことができます。この他にも、JavaScriptJscriptで記述することもできます。詳しい書き方については第2回以降にご期待ください。

5.まとめ

XSLTの機能としてXMLをHTMLに変換する機能がよく知られていますが、XSLTはそれだけの言語ではありません。XSLT+DOMにより、より対話的でダイナミックなXMLシステムを構築することができるのです。DOMとうまく併用することにより、Webサービス、SCM、ナレッジ・マネジメント (KM) など、XSLTの適用範囲はさらに広がることでしょう。

<<関連用語集>>

DOM (Document Object Model)

HTMLやXMLのデータへのアクセスや操作のための基本的なオブジェクト・モデルとAPIを規定する、W3Cの仕様。「DOM Level1」と「DOM Level2」がある。「DOM Level1」は、XMLを扱う「Core」とHTMLを扱う「HTML」の2つのオブジェクトで構成され、1998年10月に勧告となった。「DOM Level2」は、さらに6つのオブジェクトが追加され、CSSやNamespaceがサポートされ、2000年11月に勧告となった。
規格名
ステージ
公開日
解説
DOM(Document Object Model) Level 1 勧告 1998年10月1日 HTMLやXMLのデータへのアクセスや操作のための基本的なオブジェクト・モデルとAPIを規定する
DOM Level 2 勧告 2000年11月13日 DOM Level 1に、スタイルシートやイベントなどのモデルやAPIを追加し、名前空間などの機能を強化したもの

SAX (Simple API for XML)

イベント・ベースのXMLパージング・インタフェース。1.0と2.0がある。XML開発者のメーリングリストであるXML-DEVのメンバーの議論の成果として策定された標準である。

規格名
公開日
解説
SAX(Simple API for XML) 1.0 1998年5月11日 イベント・ベースのXMLパージング・インタフェース。DOMと異なり、解析結果をイベントとして順次渡す
SAX 2.0 2000年5月5日 SAX 1.0に名前空間などの機能強化をしたもの

VBScript (Visual Basic Scripting Edition)

米Microsoft社が開発したWeb用スクリプト言語。Visual Basicのサブセット。

JavaScript

Netscape社とSun社が共同開発したWeb用スクリプト言語。欧州の情報通信関連標準化団体ECMAがECMAScriptとして標準化している。

JScript

Microsoft社が開発したWeb用スクリプト言語。JavaScriptが採用されたECMAScriptに準拠している。したがって、Netscape社のJavaScriptと類似している部分が多い。

>>次の記事「DOMのダイナミックで複雑な処理とは?」




関連サービス

IT技術およびIT製品の可用性調査・検証業務



この記事と関連の高い記事

関連キーワード:DOM


関連キーワード:XML変換


関連キーワード:XSLT




ページトップへ戻る