ASCII24 Top ASCII24 Business Center ASCII24 News ASCII24 Review ASCII24 Business Center 携帯24 Mac24 Akiba2GO! デジタル用語辞典 ASCII24 Broadband Center 最新ニュース 特集 事例紹介 コラム NETWORK MAGAZINE ASCII24メールサービス Blogag
ASCII24 - [Main Menu] [Menu 2]


  ASCII24 > Business Center 111
記事/用語/ID検索 

最新ニュース
【お知らせ】 アスキーの新しいPC/IT情報サイト、ASCII.jpがオープン!(2007年1月29日)
【ここが変わったWindows Vista 100連発! Vol.27】 “サービス” タブが追加された “タスクマネージャ” (2007年1月26日)
東芝ダイレクト、Vista搭載の直販専用ノートパソコン春モデルを発表(2007年1月26日)
【フォトレポート】 さらにスリムに進化したソフトバンクモバイルの新機種に触ってきた!(2007年1月26日)
BCN、 “BCN AWARD 2007” の表彰式を開催(2007年1月26日)
ロジクール、省スペース/静音構造のUSBフルキーボード 『Classic Keyboard 200』 を発売(2007年1月26日)
NTTとNTTレゾナント、過去に見たウェブページを再度探し出すソフトを発表(2007年1月26日)
松下電器、パスワードで録音データを保護できるICレコーダー 『RR-US470-K』 など2機種を発売(2007年1月26日)
インテル、802.11nドラフトに準拠した無線LANモジュール “Next-Gen Wireless-N” を発表(2007年1月25日)
【Macworld 2007 Vol.14】 写真で一挙紹介!! 展示会場レポート (ハードウェア編) (2007年1月25日)
【発表会レポート】 ソフトバンクモバイル、最新春モデル14機種58色を発表!!(2007年1月25日)
XP Homeのサポートが2014年まで延長――マイクロソフト、Windows XP Home Editionのサポート提供期間延長を発表(2007年1月25日)
富士フイルム、SD/xD両対応のコンパクトデジタルカメラ3機種を発表(2007年1月25日)
プリンストンテクノロジー、応答速度が5msの22インチWSXGA+液晶ディスプレー 『PTFSAF-22W』 を発売(2007年1月25日)
ネットレイティングス、2006年12月度のインターネット利用動向調査結果を発表――任天堂にアクセスが急増。(2007年1月25日)
シマンテック、セキュリティーソフト “Norton AntiVirus” など3製品をVistaに対応(2007年1月25日)
JPRS、 “駅街ガイド” のアクセスランキングを発表(2007年1月25日)
日本サムスン、応答速度が5msの22インチWSXGA+液晶ディスプレー 『SyncMaster 225BW-R』 を発売(2007年1月25日)
日立、HDDとDVDドライブを搭載した “ハイブリッドカム Wooo” シリーズを4機種発売(2007年1月25日)
ソニーとバンダイ、合弁会社 “株式会社セリウス” を設立(2007年1月25日)
JEITA、2006年のパソコン出荷実績を発表――買い控えで4年ぶりの前年割れに(2007年1月25日)
飛鳥、6in1カードスロットを搭載したポータブルHDD 『Tripper Light』 を発売(2007年1月25日)
D-PA、TV番組のオークションへの違法出品の監視を開始(2007年1月25日)






Contact Information

[PR]
Printable Version コラム / XMLの常識 第8回

DOMってなに?


2001年4月20日

前々回、XML Schemaのことを解説した際に、XMLパーサと呼ばれるソフトウェアについて簡単に触れた。そこではXML文書を検証するための存在としてXMLパーサを解説したが、今回はそれ以外の役割りについて解説してみたい。

DOMという規格の意味

XMLパーサが持つ役割りの中で、XML文書の検証と並んで重要なのが、ソフトウェアがXML文書へとアクセスするための手段の提供である。たとえば、XML文書の読み取り、あるいは読み取ったものに対して何らかの変更を加えるといったことを可能にする機能だ。

こうした機能はXMLパーサが個々で独自に実装しているよりも、共通の形で実装されているほうがユーザーとしては望ましい。XMLパーサごとに独自に実装されていると、そのパーサとそれを利用してXML文書へアクセスしているプログラムの依存関係は強くなる。つまりXMLパーサを切り替えた場合、そのソフトウェアも多くの変更が必要となってしまうわけだ。それに加えて、XML文書へアクセスするための方法をXMLパーサを切り替えるたびに1から習得しなければならないという問題も無視できない。

W3Cで勧告されている「DOM(Document Object Model)」という仕様は、こうした問題を解決するためのものだ。DOMはXML文書へアクセスするための標準的な方法を定義したもので、XMLパーサがDOMに対応していれば、開発者はどのパーサを使っても(ほぼ)同じ方法でXML文書へとアクセスするためのコードを記述できる。多くのXMLパーサはこのDOMの仕様に準拠しており、標準として広く普及している。

なおDOMは「DOM Level 1」と「DOM Level 2」が現在勧告として公開されている。DOM Level 1は1998年10月に勧告となったもので、それから約2年を経た2000年11月にDOM Level 2が勧告された。Level 1から2になったことで多くの機能が追加されており、CSSの構文を扱えるようになるなど大きな機能強化も見られるが、地味ながら注目したいのがネームスペースが正式にサポートされたという部分だ。それまでのXMLパーサはネームスペースのサポートに対して、独自に実装してサポートする、あるいはサポートしないなど足並みはバラバラだった。しかしDOM Level 2の登場によって標準的な方法でサポートすることが可能になったのである。

メモリ消費量が少ないSAX

こうして広く普及しているDOMだが、まったく欠点がないわけではない。中でもよく指摘されるのが、メモリ環境への厳しさだ。DOMはXMLを読み込むと、それを木(ツリー)構造としてメモリ上に展開し、ソフトウェアはこの木構造に対してアクセスするという形になる。つまりDOMを使用する限り、XMLはメモリ上にすべて置かれることになり、特に大きなXMLを扱おうとすると多くのメモリ領域を必要とする。こうしたDOMの不満を解消するために登場したのがSAXである。

SAX(Simple API for XML)の特徴は、イベント駆動型のパーサであるという点だ。イベントには要素の開始や終了、テキストの出現などがあり、XML文書の解析中にこれらのイベントが発生すると、逐一それがソフトウェアに通知される。ソフトウェア側では、それぞれのイベントに対して行なう処理を記述することになる。こうしてイベントを通知したあとの結果は保持されないため、解析している部分しかメモリを消費しない。そのため、巨大なXML文書でも少ないメモリで処理が行なえるわけだ。

このようにメモリ消費量という点ではSAXのほうが有利になる。逆にDOMは、最初に木構造に変換したあと、自由に木構造の中を行き来してアクセスできる(SAXはXMLの構造が複雑になると、プログラム自体も複雑になってしまう)のがメリット。ちなみに現在利用されているXMLパーサの多くはDOMとSAXの両方に対応しているので、開発するプログラムの特性とDOMとSAXの得手不得手を考えて、このいずれかを選択することになるだろう。

まとめ

XMLへアクセスするための方法がDOMやSAXといった形で標準化され、またそれをXMLパーサが対応したことによるメリットは大きい。ソフトウェアをXMLに対応させる際にこれらのXMLパーサを部品として組み込めば、簡単な方法でXMLから必要な情報の読み取りや更新が可能になり、その方法は別のソフトウェアでも利用できる。これによって、XMLに対応させるために必要となる労力を大きく削減できるのだ。今後多くのソフトウェアがXMLを利用すれば、XMLパーサの重要性がさらに増していくのは間違いない。

(インフォテリア 川添貴生)





advertisement

Copyright (C) 1997-2007 ASCII Corporation. All Rights Reserved.
No portion of this web site may be reproduced or duplicated without the express written permission of ASCII Corporation.
This web site is written in Japanese only.
記事に関するご意見やご質問は、お問い合わせフォームにてお送りください