中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

XMLってなあに(第2回)

さてXMLで商品情報を書いてみましょう。
項目多くてもめんどくさいので、

品名 値段
CDRメディア 2000
DVDメディア 5000
FDメディア 1000

こんなデータを書いてみましょう。


<商品一覧>
 <商品>
  <品名>CDRメディア</品名>
  <値段>2000</値段>
 </商品>
 <商品>
  <品名>DVDメディア</品名>
  <値段>5000</値段>
 </商品>
 <商品>
  <品名>FDメディア</品名>
  <値段>1000</値段>
 </商品>
</商品一覧>
 

 


CSVはカンマ区切りでただ表形式(2次元)のデータを格納する事しか出来ません。
翻ってXMLはツリー形式(ディレクトリ構造なんかと一緒)でのデータ管理になるので、表形式でデータを埋めていくのではなく、階層的にデータを埋めていきます。

CSVの場合にはただ生のデータが羅列されているだけですが、XMLの方にはタグが使われているためどういったデータかがわかるようになっています。

これまた見ればわかることですが、生のデータ以外も送っているためデータサイズが膨れ上がっています。
データサイズに関しては固定長とCSVがいい勝負、XMLはぼろ負けです。

それらを補って余りあるパワーを秘めているのがXMLです。

----------------------------------------------------------------------

さて先ほどのXMLはタグの中に"要素"(エレメント)として値を格納していました。
もうひとつの書き方があります。


<商品一覧>
 <商品 品名="CDRメディア" 値段="2000" />
 <商品 品名="DVDメディア" 値段="5000" />
 <商品 品名="FDメディア" 値段="1000" />
</商品一覧>

 

これは"属性"(アトリビュート)を使った場合。
この場合エレメントで無い為最小限の文字数で同じようなことが実現可能です。
ただし属性にすると要素をもてないため、まったく同じではないことに注意してください。

あくまで属性は属性なので、その要素を補足するものとして使うのがいいでしょう

----------------------------------------------------------------------

たとえば以下のようなXMLがあったとしよう


<商品一覧>
 <商品 品名="CDRメディア" 値段="2000">
</商品一覧>

 

ここでは商品の閉じタグを忘れている。
このような場合"ウェルフォームド"で無い状態という。
要は文法エラーで、このような状態になっているだけでXMLを利用する側としては正しく読み取れなくなる。
閉じタグを忘れていたり、タグが入れ子になっていたり


などが該当する。

----------------------------------------------------------------------

これ以上XMLの範囲を深く探っても面白くないと思うので、思い切りよく割愛してみる。

次回は単純に楽しくXSLTをやってみる。

 

投稿日時 : 2004年9月10日 13:00

コメントを追加

# re: XMLってなあに(第2回) 2004/09/11 1:50 yama3

TechEdに「どんと来い!XML」という冊子がありました。
#インパクトのあるタイトルで、ついもらってきました。
サブタイトルは、「楽しく、わかりやすく学べる初心者のためのXML読本」と書いてあります。
Officeの宣伝資料の一部のようですが、34ページ中25ページは純粋にXMLの説明です。
がんばるなぁマイクロソフト。

こっちも終了タグが抜けてますよ。

タイトル
名前
URL
コメント