#02:XML
このチャプターでは、 XML について学習します。
データを記述するためのマークアップ言語。
異なるシステム間でのデータ交換を容易にするための共通フォーマットとして広く利用されている。
HTMLと同様に、タグを使ってデータを構造化する。
人間にもコンピュータにも理解しやすい形でデータを表現できるのが大きな特徴。
なお、 XMLの空要素では終了タグを省略できない。
work要素のように開始タグの直後に終了タグを置いたり、phone要素のように開始タグと終了タグをまとめ、開始タグの最後にスラッシュをつけたりして表現する。
例: 人物の情報<person>
<name>山田 太郎</name>
<age>30</age>
<address>東京都</address>
<work></work>
<phone />
</person>
XML文書をプログラムで処理するための代表的なもののひとつ。
XML文書全体をメモリ上に読み込み、木構造として扱う。
これにより、文書内の内容の読み書きや要素の追加・削除などが容易になる。
ウェブブラウザがHTMLを解釈して表示するときにも用いられている。
文書の種類によらず柔軟な操作ができる一方、メモリ消費が大きい。
XML文書をプログラムで処理するための代表的な例。
XML文書を最初から順番に読み込み、イベント駆動型で処理をおこなう。
メモリ消費が少ないが、要素の順番を入れ替えたり前の要素のデータを参照したりする操作には向かない。
XML文書の構造やデータ型を定義するための仕様。
XML文書がどのような要素を持ち、それらがどのような順序で、何回出現するか、また要素の内容が文字列なのか数値なのかといったルールを定めることができる。
例: person要素はnameとage要素を持ち、nameは文字列、ageは整数であることを定義<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XMLをベースにした画像フォーマットの1つ。
ベクター画像の一種で、図形情報で画像を表現する。
また、CSSやJavaScriptで簡単に見た目を変えたりアニメーションをつけたりできる。
写真のような複雑な画像には向いていないが、ウェブサイトのロゴやアイコン、インタラクティブな地図などに広く利用されている。
例: 黒縁の赤い円を描画<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>
異なるシステム間で情報交換をおこなうためのプロトコル。
メッセージ形式としてXMLが採用されている。
クライアントとサーバーがSOAPメッセージを交換することで通信をおこなう。