XMLってなぁに? 初級編 第2回
この文書は執筆時点(2004/後半)での知識を基にしており、現状とあっていない可能性があります。
第2回
さてXMLで商品情報を書いてみましょう。
項目が多くてもめんどくさいので、
品名 値段
CDRメディア 2000
DVDメディア 5000
FDメディア 1000
こんなデータを書いてみよう。
<商品一覧>
<商品>
<品名>CDRメディア</品名>
<値段>2000</値段>
</商品>
<商品>
<品名>DVDメディア</品名>
<値段>5000</値段>
</商品>
<商品>
<品名>FDメディア</品名>
<値段>1000</値段>
</商品>
</商品一覧>
CSVはカンマ区切りでただ表形式(2次元)のデータを格納する事しか出来ない。
翻ってXMLはというとツリー形式(ディレクトリ構造なんかと一緒)でのデータ管理になるので、表形式でデータを埋めていくのではなく、階層的にデータを
格納することが出来る。
CSVの場合にはただ生のデータが羅列されているだけだが、XMLの方にはタグが使われているためどういったデータかがわかるようになっている。
見ればわかることだが、生のデータ以外もデータの中に入っているためデータサイズがCSVと比較して膨れ上がっている。
データサイズに関しては固定長とCSVがいい勝負、XMLはぼろ負けだ。
ただしそれらを補って余りあるパワーを秘めているのがXMLだ。
さて先ほどのXMLはタグの中に"要素"(エレメント)として値を格納していたがもうひとつ別の書き方がある。
<商品一覧>
<商品 品名="CDRメディア" 値段="2000" />
<商品 品名="DVDメディア" 値段="5000" />
<商品 品名="FDメディア" 値段="1000" />
</商品一覧>
これは"属性"(アトリビュート)を使った例。
この場合エレメントで無い為最小限の文字数で同じようなことが実現可能だ。
ただし属性にすると要素をもてない
、同じキーを複数個もてないなど、まったく同じではないことを覚えておくとよい。
あくまで属性は属性なので、その要素を補足するものとして使うのがいいでしょう
たとえば以下のようなXMLがあったとしよう
<商品一覧>
<商品 品名="CDRメディア" 値段="2000">
</商品一覧>
ここでは商品の閉じタグを忘れている。
このような場合"ウェルフォームド"で無い状態という。
要は文法エラーで、このような状態になっているだけでXMLを利用する側としては正しく読み取れなくなる。
閉じタグを忘れていたり、タグが入れ子になっていたりなどが該当する。
これ以上XMLの範囲を深く探っても面白くないと思うので、思い切りよく割愛してみる。
次回は単純に楽しくXSLTをやってみる。