■XMLの利点 その2「データの使い回しができる」
XMLのデータの利点の1つに汎用性の高さが挙げられます。先ほど挙げた書籍のデータも、XML形式で保存をしておけば、オンラインショッピングサイト、出版社、書店、取次、読者など、異なるユーザーであっても共有・加工できます。読者はブログに感想やアフィリエイト、取次は流通管理、書店や出版社は在庫管理ができます。
もし、それぞれが自分たち独自のデータ形式を作っていたら、データの相互運用は極めて厳しいものになります。
実際にXMLソースを見てると……
以下非常に短いですが、サンプルのXML文章をアップしています。このソースを見て、XMLの文法を簡単に確認してみましょう。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hogehoge SYSTEM "hogehoge.dtd"[]> <person> <name>EHARA Akio</name> <age>20</age> <sex>male</sex> </person>
それぞれがどのような意味を持っているのかについて、見ていきましょう。
<?xml version="1.0" encoding="UTF-8" ?>
この文章がXML文章であることを宣言します。「XML宣言」は、“<?”で始まり、“?>”で終わるように記述します。
「version」属性は必須で、必ずXMLのバージョンを設定しなければなりません。しかし、XMLは1.0と1.1のバージョンしかなく、通常は1.0が選択されます。「encoding」属性は文字コードの設定をします。
<!DOCTYPE hogehoge SYSTEM "hogehoge.dtd"[]>
これは「DTD(文書型定義)」を示しています。DTD(文書型定義)の役割は、「このXMLはこのタグがこんな意味を持っていますよ!」ということを示します。この場合は外部に記述している「hogehoge.dtd」を参考にするように指定します。もちろんDTDは内部に記述することもでき、イメージとしては外部のファイルを参考にしたり、内部ファイルでも書き込みができるCSSみたいな感じでしょうか。
DTDには独自の構文があり利用するためには、それらをマスターしなければなりません。
<person> <name>EHARA Akio</name> <age>20</age> <sex>male</sex> </person>
<person>のタグでくくられているのが、「XMLインスタンス」といわれ、データが入ります。このデータ部分がXMLの中心となるものです。このタグはユーザーで任意で設定が可能です。
マークアップ言語/XML史
XMLをより理解するためには、どのような経緯で生まれたか、その歴史について見てみましょう。
■マークアップ言語の始祖「GML」「SGML」
そもそもマークアップ言語が開発された目的は、「マニュアルをどう保存していくか?」というものでした。もし、特定のアプリケーションでマニュアルを書いて、保存したとしても、その後そのアプリケーションが使えなくなったら、マニュアルの閲覧も修正・加筆もできなくなります。そこでテキスト文章上で、タグを使って構造や意味を持たせる方法が生み出されました。
1979年に、IBMが「GML」(Generalized Markup Language)を発表し、1986年にGMLの後継言語である「SGML」(Standard Generalized Markup Language )が開発されました。SGMLは欧米の公文書やマニュアルの電子化に採用されました。
■Web専用のSGMLとしてHTMLが開発
このSGMLを基にWebアプリケーション用の言語として開発されたのが、「HTML」です。1993年に最初のHTMLが提出されました。その後、HTMLの開発が続けられ、1997年に4.0までバージョンが上がりました。
■SGMLでは使いにくい! XMLが登場
SGMLは完成されたシステムでしたが、多くの機能と複雑な仕様により、扱いが面倒なもので、文章処理も重いものでした。そこで、SGMLの機能を省き、よりシンプルなものとして「XML」が1998年に登場しました。SGMLより簡単に学習でき、XMLを使った処理もローコストでできるので、さまざまな場面で利用されました。
■XMLがHTMLに与えたXHTML
XMLが応用されたものとして、XHTML(Extensible HyperText Markup Language)が2000年に登場しました。XHTMLはHTMLの文法をXMLで定義したものです。特徴としては、ほかのXMLで定義された画像言語や数式の記述などを取り込めます。
すべてのデータがXML化される日
さて、駆け足でXMLについて説明をしてきましたが、いかがでしたでしょうか?
冒頭でも述べたように、XMLはいろいろなアプリケーションに利用されています。Microsoft Office 2007でのXML採用やXML+ブログなど、ますますXMLが利用される場面は増えてきています。今回の記事でちょっとでもXMLが身近なものに感じてもらえれば、幸いです。
今回の3行まとめ
- XMLはマークアップ言語で、文章の構造を記述する
- XMLはデータを記録するのが得意
- XMLで記述されたデータは、加工・編集がらくちん!
- 開発現場のUIトラブルを解決!? 画面プロトタイプ入門
- いまさら聞けない「Curl」入門(お菓子じゃない方)
- いまさら聞けない「オフラインWeb」入門──オフラインでも使えます
- いまさら聞けない「SEO」入門──検索結果の最適化
- いまさら聞けない「Webブラウザ」超入門 後編
- いまさら聞けない「Webブラウザ」超入門
- いまさら聞けない「マッシュアップ」超入門
- いまさら聞けないSVG、なぜ知られていないのか?
- いまさら聞けないActiveX&デジタル証明書入門
- いまさら聞けないウィジェット/ガジェットで気分転換
- “リッチクライアント”に至るまでの軌跡と現在(いま)
- いまさら聞けない! FlashとActionScriptについて
- いまさら聞けない“Web標準”、そしてXHTML+CSS
- いまさら聞けない、“Ajax”とは何なのか?
- いまさら聞けないJavaScript入門
- いまさら聞けないWeb2.0時代のXML入門
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- XML用語事典
XMLの技術用語からBtoBに関することまで、解説します。 - XML
- XML名前空間
- DOM
- SAX
- SOAP
- DTD
- BML
- SGML
- 古くて新しいAjaxの真実を見極める
「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう - MXMLを理解してFlex 2のUIを定義しよう
Flex2でWebアプリ開発(2) Flex 2のユーザーインターフェイスを構成するXML言語であるMXML。まずはMXMLを理解して、新たなUIのコンポーネントを定義してみよう - より短いXMLコードでサーバ通信させるFlex2
Flex2でWebアプリ開発(最終回) Flexアプリケーションで「サーバ通信」を行う方法と、XMLの操作が簡単に短いコードで、パフォーマンスが向上させる「E4X」を紹介 - Macromedia Flexのインストール
Flashベースのリッチクライアントを体験(1) XMLタグでFlashベースのユーザーインターフェイスを構築できるMacromedia Flexを4回の連載で体験・評価します - Webオーサリングツールでコーディングできる人になる
連載:Webオーサリングツールを使ってみよう(2) 気になる「テンプレート」機能と、XMLやDBとの「データソースとの連携」の作業効率アップの有効性を見てみよう