改めてXMLを考える

XML 1.0は、テキスト表現のための便宜的な手法

2003年9月号掲載記事

皆様はじめまして。
今回コラムを担当することになりましたインフォテリアの木村です。よろしくお願いいたします。

筆者はこれまで教育という立場からXMLに接してきましたので、僭越ながらも皆様にXMLの文法や応用など、いろいろとお話させていただきましたが、最近改めて、XMLに携わっている方、特にこれからXMLに携わろうとしている方にはぜひ早いうちに知っておいていただきたいことなどを感じていますので、そのことをテーマにしてみたいと思います。

私自身そうだったのですが、XMLの習得を文法から入ってしまうと、文法、つまりXML 1.0がXMLの本質で、その先の応用は、XML 1.0を応用する技術だと錯覚してしまうのです。私を含めて多くの方がそうではないかと思っています。もちろん習得には順序があって、XMLを習得するのに、いきなりXMLのAPIとかXPathやDOMのデータモデルから習得するのでは、とても容易には理解し難いのも事実です。やはりXMLは開始タグと終了タグを用いてデータを記述し…、などの話から入った方がすんなりと理解できるでしょう。だからこそここでこんなことを書いているわけですが、XMLを知れば知るほど、XML 1.0は、XMLをテキストで表現するためのひとつの側面だということが分かってきます。

たとえば「&」という文字はXMLの内容として直接記述することができず、その代わりに定義済み実体参照やCDATAセクションを用いて記述するわけですが、それはXML 1.0での文法上の都合であって、XPathのデータモデルではどちらの区別もなく、「&」という文字として扱われます。それは「&」でもなく「<![CDATA[&]]>」でもなく「&」という文字なのです。しかもXPathのデータモデルはその区別を識別しませんので、もとのXMLとしてどのように記述されていたかを知ることさえできません。そしてこれこそがXMLの本質なので す。つまり「&」や「<![CDATA[&]]>」と記述することがXMLの目的ではなく、単にそこに「&」という文字データがあるということがその目的です。実体参照やCDATAセクションなどの記述はそのための便宜的な方法に過ぎません。

このことは、XML 1.0だけ読んでいたのではたぶん気づくことは難しく、やはりXPathやDOM、またはXML Information Setを知るに連れ、だんだん気づいてくるものではないかと思います。

これまでXMLに携わってきた方、こんなXMLの捉え方は参考になったでしょうか?そしてこれからXMLに携わるという方、ぜひこんな見方があることを早いうちに知って、XMLのいろいろな側面を捉えてみてください。

(注)一部システムでの文字化けを避けるため、コラム内の「&」「<」「>」は全角表示とさせていただいております。

「改めてXMLを考える」のIndexへ戻る

ページトップへ▲

HOMEへ戻る