XML概要
誤解していたこと
a)XMLの誤解
- DTDとXMLスキーマ(Schema)は違う存在である。DTDでの問題を改善したのがXMLスキーマなのだ。
b)HTMLもXMLと同じタグ用いた言語であるが次の点で大きく違う
- HTML⇒あらかじめ使えるタグの名前や機能が定義されている
- XML⇒利用者がタグを自由に定義できる。タグを使って、利用者なりにデータに対して書式や意味づけをすることが自由にできるのだ。
思い込んでいた内容と実際のギャップ
歴史
- XMLとはExtensible Markup Languageの略
- W3Cが仕様を決定した
- 特にインターネット上でのデータ交換を意識して設計されている。
- 今や多くのアプリケーションがXML文書をサポートしている
- 無料で利用可能
何が起源か。どのように発展してきたか。
構造
- XML文書=XML 1.0の仕様(データを記述するための文法)に沿って書かれた文書。
- 拡張子=「xml」のファイル
- HTMLのようにタグを使ってデータを表現する。入れ子が可能でどんなデータも表現できるらしい。
- テキストファイルなのでシステムに依存しないファイルなのである。
- 名前空間を持つ。タグの名前は自由に決定できるので、重複したタグ名を使用するときの打開策となる。
- XML文書の中に、ほかのXML文書へのハイパーリンクなどを埋め込むことができる。
- スキーマ言語を持つ。どんなタグが使え、タグの中にどんなデータが入るべきなのか、といったXML文書の形式を定義できる。
どんな形をしているのか。どうやって作られたのか。
機能
a)読み書き
- 基本的にXMLパーサを入手し、XMLパーサを制御するプログラムを書くことでXML文書を読み書きする。
- XML文書はテキスト形式の文書なので、適当なエディタで記述できる。ただし、専用のエディタを使ったほうが格段に早い。
b)操作
- XMLパーサ=XML文書を扱うアプリケーションソフトウェアがXMLを利用しやすい形にファイルを噛み砕くソフトウェアのこと。標準化されたAPIが存在持つ ⇒ 標準APIには、DOMやSAXなどがある
- XSLT (XSL Transformations)=任意のXML文書を読み込んで、それを加工して出力する簡易なスクリプト言語。要はデータ構造を変化する仕組み。(例)ビジネスデータを読み込んで、それをSVG形式で書き出すことでグラフを自動作成する。
- DOM (Document Object Model)=XML文書を「DOMツリー」と呼ばれるツリー構造として扱う。そのため、XMLパーサがXML文書全体を読み込んだ後でなければ、文書内のデータにアクセスすることができない。また、DOMツリーは通常、メモリ上に展開されるため、大規模なXML文書を処理する場合には、その分メモリ容量も要求される。その代わり、DOMを利用すれば、XML文書内のデータの順番に関係なくアクセスできる。
- SAX (The Simple API for XML)=DOMと異なり、文書を先頭から順に読み込んでいき、そこで発生したイベントを経由して情報をアプリケーションプログラムに伝達する。SAXの場合は解析中に分かったことから順次伝達するため、構文解析の終了まで待たずに処理を開始できる。また、その仕組みゆえ小メモリのコストですむ。
どのように動くか。原動力は。
役割
a)XMLを使う利点
- 徹底的に国際化されている
- 完成度の高いXMLパーサがどこにでも手に入る。
- コンピュータにとっても、人間にとっても読みやすく、理解しやすい。
- XMLはテキスト形式で記述されるため、マルチプラットフォーム環境でのデータ交換に適している。皆が皆独自のバイナリ形式でデータを作ると、異なるプラットフォームだと読み書きが不可能となってしまう。
b)例えばこんな使われ方
- Web上での利用=Webブラウザから参照されたときには、XML文書をHTML形式に変換する。iモードなどの携帯電話から参照された場合には、CHTMLなどに変換する
何をするのか?a)自然界でb)人間の世界で
利点や欠点。
利点や欠点。
分類
a)XMLで定義された言語
- XHTML=XML文法に従って、HTMLを記述し直したもの。XHTMLはHTMLと同様にWebブラウザで表示できるが、同時にXML文書でもあるため、XSLTによって変換したり、XMLパーサで整合性をチェックするなど、XML文書としての柔軟性も持ち合わせる。
- SVG(Scalable Vector Graphics)=XML文書として記述されるベクターグラフィックス言語。線や円、といったベクトル情報によってグラフィックスを記述する。
- MathML=XML文書によって数式を記述するための言語。ルートや階乗といった、数式によく見られる複雑な演算子や数字の位置関係などを表現できる。
他のものとどんな関係があるか。また、応用的な事物。
考察
- XML文書はテキストファイルであるが、ソフトを解さずに読むことは少なそうだ。また、書くことも同様である。