XMLの入門書はここ1年ほどで多くの出版社から発行されるようになり、選択に困るほどだ。しかし、XMLには多くの関連仕様があり、またXMLが利用される場面の多様化から、読者の目的も多様さを増してきている。例えば、XMLには仕様だけでもXML 1.0の文法はもちろん、名前空間、XSLT、DOM/SAX、XPath、XLinkなどの関連仕様があるし、読者の側にもXML文書の設計を目指すのか、XML関連のプログラミングを目指すのか、BtoBでXMLを扱うための予備知識を求めているのか、などさまざまなケースが考えられる。
それに応える形で、XMLの入門書も単なるXMLの解説にとどまらず、プログラミング入門やQ&A形式など工夫がこらされるようになった。そこで本記事では、特徴ある4冊の入門書を取り上げ、それぞれどのような内容で、どんな目的に適しているのかを中心に紹介していくことにする。
通勤時間にXMLを理解してしまおう
本書は、XMLに関連する幅広いトピックスを分かりやすく伝えることに力点が置かれている。大きさもB6判(約18×13cm)とコンパクトで、カバンに入れて通勤時に読むのも苦にならない。XMLについて読む最初の1冊にいいだろう。
最初の2つの章を使って、XMLが登場した歴史的背景をインターネットやHTMLの進化と関連して位置付け、XMLの利点や概要を解説することに力を入れている。ここを読めば、SGMLやHTMLに対するXMLの利点、XMLを策定しているW3Cの概要、そして主要なXMLの応用例を把握できるだろう。さらに解説は、XMLの文法、DTD、名前空間に続いて、XSLT、DOM、SAX、そしてXLink、XPointerにわたり、SOAPにも触れている。内容はそのタイトルどおり非常に分かりやすく、特にXMLの文法、DTD、名前空間など、XMLの基本的な概念を把握するには適している。
全部で5章の構成になっているが、コンパクトで分かりやすい解説を心掛けていることから、XSLT、DOM、SAXなどの関連仕様についてはどれも詳細にまでは踏み込んでいない。その一方で最後の1章を使って、主にXSLTを利用したXMLのプログラミング方法をステップ・バイ・ステップで解説している。これも、詳細はともかくXMLを身近に理解しよう、という本書のコンセプトの表れだといえるだろう。
どこからでも読めて、新たな発見も
これもB6判のコンパクトな1冊。タイトルどおりQ&A形式で、章立てはXMLの概要から規格、関連技術、将来と系統だった構成をとっている。最初の方の質問こそ「XMLエディタってどういうものですか」といった素朴なものだが、「要素と属性のどっちを使うかどうやって決めたらよいのでしょう?」「XML SchemaとRELAXはどっちが勝つのですか?」など、全体的にはすでに1冊はXML入門書を読んだことがある人向けのようだ。どの解説も専門的な視点から分かりやすく、ときに詳細にわたっており、XMLの概要を理解したうえで、エンジニアがつまずきやすい点を理解するのに役立つ。経験のあるエンジニアでも新しい発見があるのではないだろうか。
特に、XMLパーサ実行時のエラーや、文字コード、実体参照の問題など、通常のXML入門書ではあまり解説していない具体的かつ実践的な問題にスポットを当てている点に好感が持てる。XMLの関連仕様としてXLink、XPath、XSLT、XMLのセキュリティ関連などについては、ポイントを押さえた解説とともに、それぞれの仕様がどう関連しているのかの説明が分かりやすい。ただし、個々の仕様を深く知りたい場合は、ほかの書籍と併せて読むべきだろう。
また、筆者の遊び心が随所に出ており、「XMLのデータを送るときは圧縮したほうがいいですか?」という質問の回答の最後には「羽毛ふとんや羊毛ふとんは圧縮しないほうがいいらしい」など、細かいところにページをめくる楽しさがある。
Javaプログラマを目指す人のXML入門書として
XMLに関連したプログラミングといえば一般に、XSLTスタイルシート、DOM、SAXの3種類のいずれかを利用するのが現在の主流だ。本書では、最初にXML文法と名前空間の解説を行った後で、この3種類のプログラミングを解説することに多くのページを割いている。XMLを利用したプログラマーを目指す人向けの入門書だ。前提とするプログラミング環境としてJavaを採用し、XMLのパーサにもJAXP(Java API for XML Parsing)に含まれているものを使うため、冒頭でJDKやJAXPのインストールを解説している。本文中のサンプルプログラムは、すべてこの環境で確認しながら読み進んでいけるのが本書の特徴の1つ。
XSLTスタイルシートは通常のプログラミング言語とは異なり、パターンマッチング式の言語になっているため、こうした言語の経験のないエンジニアにとってはとっつきにくいものだが、本書ではそうした違いも丁寧に解説している。また、サンプルプログラムに対する注釈や図が豊富で、それらが理解の大きな助けになる。条件分岐、繰り返し、ソートなど、XSLTに関する複雑な構文も丁寧に解説しており、XSLTで実用的なアプリケーションを組むところまで理解が進むはずだ。
DOM、SAXの解説では、Javaプログラミングの説明から入っているため、Javaプログラミングの経験があまりない読者でも、すんなりとDOM、SAXプログラミングへ進むことができるだろう。ここでも豊富な図やプログラム中の注釈が分かりにくい部分の理解を助けてくれ、DOMとSAXの基本的なクラスを使いこなせるようになる。
カジュアルにXMLプログラミングを体験できる
本書もXMLプログラミングの入門書だが、XMLパーサにマイクロソフトのMSXML 3を、言語にJavaScriptを利用し、しかもサンプルプログラムが添付のCD-ROMに収録されているのが特徴。ステップ・バイ・ステップ方式で解説を読みながらプログラムを入力し、実行して動作を確かめていく。内容は10日分にカリキュラム分けされており、XSLT、DOM、SAXプログラミングを体験したうえで、さらにDTDやXML Schemaの記述方法まで広く触れられている。
MSXML 3とJavaScriptは、XMLのプログラミングを行ううえで最もカジュアルなスタイルで、幅広い読者にXMLのプログラミングを手軽に体験してもらうことを狙っている。解説もプログラムの動作内容を理解するためのものを中心にして要所を押さえているため、「詳細な解説はいいから、自分で試したい」タイプの読者にはうってつけだろう。解説にいちばんページを割いているのはXSLTで、表組み、ソート、条件分岐、XPathなど基本的な機能を一通り体験できる。DTD、XML Schemaについては、どういうものかが実感できる、という感じだ。
本書のカリキュラム1日分の課題を試すのには、おそらく2〜3時間程度あればできるだろう。そして10日目の最後の章ではサーバサイドのプログラミングまで試すことができる。XMLの広い分野の要所を押さえつつも、短期間で実践的な内容に到達することができるだろう。
そのほかのXML書評記事
XML eXpert eXchangeフォーラムでは、そのほかにも下に挙げる書評を過去に掲載している。
XMLの技術は短期間で急速に変化しているように見えるが、入門書が扱うような基本的な仕様、例えばXML 1.0や名前空間、XSLTなどはほとんど変わっていない。こうした基礎技術がしっかりしているからこそ、その応用技術としてWebサービスやさまざまな応用言語、ビジネスプロトコルが実現できるのだ。そのため、最新刊ではなくとも気に入った本を見つけて、そこからXMLの世界をより深く探検するのもいい。
Copyright © ITmedia, Inc. All Rights Reserved.