• ベストアンサー

XMLは何が便利なの?

XMLはタグを自分で定義できるなどと言われ盛り上がっているようですが、XMLは何が便利なのでしょう? 私が思うに、タグを定義できるからといって、タグの持つ意味合いまでは定義できない(例えば「名前」というタグを定義できるからといって、それが人の名前なのか物の名前なのか、人の名前だとして自社担当者の名前であるのか取引先担当者の名前であるのか、と言ったことまで限定できず、データを送る側と受ける側で解釈を取り決めておかなければならない)のに、なぜこんなに持て囃されるのでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
  • jo-ji
  • ベストアンサー率72% (26/36)
回答No.4

要素や属性などのmarkupをそれぞれが勝手に定義していては、XMLのメリットは確かにあまりありません。定義できる可能性があるというだけで、実際には用途に応じた業界などで標準化されていた方がずっと便利です。 しかし、そのような各標準がXMLという同じ土俵の上に乗ることに意味があると思います。どの標準を使う際にも、XMLに関する知識や経験それにプログラムなどを活用することができます。 また、XMLからXMLへならば、XSLTというものを使って、変換することができます。 つまり、あるデータ形式みたいなものが業界や企業などによって定義される際、これまで見たことがないような形式になるよりも、XMLに基づいたものになる方が、定義する側にとっても利用する側にとってもメリットがあることになります。 XMLを分かりやすく説明するために<名前>jo-ji</名前>みたいな例がよく使われますが、実用的な観点ではあまり意味がない(それだけでは)と考えた方がいいと思います。あなたのおっしゃる通り、約束事があってはじめて役に立つのです。

happy_people
質問者

お礼

XMLさえあれば便利ということではなく、タグや属性などは送り手と受け手で約束しておかなければならないのですね。業界で標準化されていれば確かに便利ですね。しかも記述が柔軟なので、標準化する際に制限事項も少ないと。そういう便利であれば理解できます。 ご解答いただいた皆様ありがとうございました。

その他の回答 (3)

  • Acalf
  • ベストアンサー率55% (5/9)
回答No.3

XMLの利便性に関しては、言葉だけでは簡単に説明できないので、以下のサイトを参考にしてみたら如何でしょうか? http://www.ibsinc.co.jp http://www.utj.co.jp/ かなり詳しい解説が掲載されています。 ご参考までに...

参考URL:
http://www.utj.co.jp/
happy_people
質問者

補足

ありがとうございます。 DTDで文法チェック、XSL(+CCS)で表示形式へ変換、DOM(or SAX)でデータ処理、が出来るという便利さは理解できます。 しかし、例えば取引先が伝票をXMLで送ってくれることになったとして(表現の自由さ故に)、A社は<price>タグで金額を表し、B社は<金額>タグで金額を表し、、、なのだとしたら、取引会社ごとに伝票処理プログラム作らないとならないですよね。さすがに取引先の数(M)と処理の数(N)の積(M×N)だけ作るのは大変過ぎますから、実際には各社の形式のXMLを読んで自社形式のXMLを出力するプログラムを取引先の数(M)だけ作っておいて処理プログラムの前処理とする(プログラムの数=M+N)と思うのですけど、それにしても取引先の数(M)が多いと、やはり大変なことにならないのでしょうか。

  • run_away
  • ベストアンサー率42% (8/19)
回答No.2

XMLで定義したタグとHTMLのタグが混ざっていませんか?XMLというのはあくまでデータの表現方法ですから、「カンマ区切りのCSV」とか「固定長区切りのテキスト」とかそういうレベルです。 HTMLタグと同じレベルで考えるとホームページのことしか考えられなくなってしまいます。(ただし、このHTMLにちょっと似てて簡単そうというのは、もてはやされる最大の理由のように思えます) XMLが注目された背景としては、システムで処理した結果を最終的に人間が見る文書という形にしたとき、正規化されたリレーショナルデータベースでは、どうもそれを表現しづらい。XMLはそういった意味でいうと、データに属性や値、キーをつけることができて、人間が見る文書を定式化された形に格納しやすい。じゃぁ、これでデータ交換とかやればいいじゃん。 乱暴に言うとそういう話です。

参考URL:
www.atmarkit.co.jp
happy_people
質問者

補足

ありがとうございます。 XMLとHTMLは混乱していないつもりです。 仰る「XMLはそういった意味でいうと、データに属性や値、キーをつけることができて、」はXMLのデータ構造の柔軟さを指していると思うのですが、その柔軟さゆえに送り手と受け手の間で如何にして意思の疎通を図るのかが理解できずにいます。

noname#5824
noname#5824
回答No.1

確かにタグを定義できる、というだけではメリットはない気がしますが、 それって、「だれでも」Webの更新が出来る、っていうことなんです。 HTMLに詳しくなくても、例えば  <あなたの名前>  </あなたの名前> って書いてあれば、誰だって名前を打ち込みますよね。 そのほかにも、メンテナンス面ではずいぶん楽です。 更新作業とか、今まではそれがどこにあるかを探すのも大変。 エディターを使ってもいいけど、下手をすればデザインが狂ってしまう。 そういう面では、十分効果を発揮できます。 ただ、これだけでは物足りないと思うでしょう。 実はXMLはデータベースとの連携においてとても優れています。 HTMLだと最低でもJavaScriptがないとデータベースは構築できません。 XMLはある特定のタグについて集計するように動作させる ことが出来るので、結構簡単に実現できます。

happy_people
質問者

補足

ありがとうございます。 <あなたの名前>は理解できますが、現にXMLは電子商取引にも使われ(ようとし)ているのですよね。例えばその際 <合計>1,050円</合計> は消費税を含んでいるのか、含んでいないのか、とか、、、人の名前を表す際に、 <名前>山田太郎</名前><ふりがな>やまだたろう</ふりがな> <名前 ふりがな="やまだたろう">山田太郎</名前> <名前><姓 読み="やまだ">山田</姓><名 読み="たろう">太郎</名></名前> などと様々な表現が考えられるわけで、この非常に表現力豊かなデータ構造であるXMLで、どうやって送り手と受け手がやり取りしようというのかが理解できないのです。

関連するQ&A