• ベストアンサー

XMLは何が便利なの?

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

  • XML
  • 回答数4
  • ありがとう数13

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

  • ベストアンサー
  • 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

  • XMLについて

    1.今、HPはhtmlで作られていますが、 xmlは将来htmlを完全に置き換える物なのですか? それとも共存する物なのですか? 2.xmlはRSSで使われています。 が、何がhtmlに比べて便利なのでしょうか? また、xmlにすることにより何が変わるのでしょうか? 「xmlはSGMLと互換性があり、タグを自由に 定義できる」ということはシスアドの教科書で 学びましたが。

    • 締切済み
    • XML
  • XMLについて質問 (初心者です)

    XMLについて、基本的な事を教えて下さい。 よく、「XMLは、(eXtensible Markup Language)で”拡張可能なマークアップ言語”」とか、「利用者が自由にタグを定義でき」とか説明されてますが、チンプンカンプンです。 いろいろ見てるうちに、自分なりには、CSVファイルのように、異なるソフトでデータ交換するための、テキストファイルの作り方(お約束)かな?と思ったんですが、確かめようがありません。 良く知っているらしき人がいますが、その人に聞くと、「マークアップ」とか「タグが自由」とかチンプンカンプンになってしまいます。 XMLは何をしたい人が使うものですか? こんな低いレベルの者でも、理解できるような説明はどこかにありませんでしょうか? また、タグというのは、CSVの「フィールド」や、固定長レコードファイルの桁数のように、あらかじめ決めておかなければデータ交換できないように思うのですが、間違っているのでしょうか? さらに、もし、上のように「あらかじめ決めておく必要がある」なら、「自由に・・」というのは、「わりと自由に・・」なのではないかと思いますが、間違っているのでしょうか? よろしくお願いします。

    • ベストアンサー
    • XML
  • XML Schemaの名前空間

    XML Schemaを利用する際、名前空間としてhttp://www.w3.org/2001/XMLSchemaを定義する必要があります。上記の末尾に.xsdを追加し、ブラウザで開くと、組み込みデータ型が定義してあるファイルを参照できます。XML Schemaを利用してXMLの検証を行うアプリは、名前空間を元にこのファイルを参照して、組み込みデータ型の検証を行うのでしょうか。いまいち挙動がわかりません。

    • 締切済み
    • XML
  • xmlから\t文字を取得する

    xmlには次のような様式で\tと定義してあります。 <DivSign>\t</DivSign> このDivSignに定義してある\t文字をプログラム(C#)から取得 すると、プログラム側では\\tと解釈し取得してしまいます。 xmlから\tで値を取得する方法をご存知の方、ご教授お願い致します。

  • Access で XMLデータを読み込むとき

    AccessのDBのデータセットにXMLから、ReadXmlSchemaとReadXmlメソッドを利用してデータを読み込むようにしているのですが、「DataExceptionはハンドルされませんでした。」「列名’NO'は別の種類に対して定義されています。」というエラーが出てきます。 この。「列名’NO'は別の種類に対して定義されています。」という意味がわからないのですが、アドバイスをお願いできないでしょうか?

  • ActionScript3でのXML操作

    ActionScriptの初心者です。お世話になります。 既存のXMLにデータを追加していきたいのですがやり方がわかりません。データは以下のようなフォーマットです。 <books> <book> <title>...</title> <author priority="1">...</author> <!--■authorのpriorityを参照してこの辺に追加したりします--> <author priority="2">...</autor> <book> <books> Web上、adobeのリファレンスでいろいろ探したのですが、ほとんどXMLのデータを参照する方法しか紹介されていません。XMLのデータにタグを追加したり、削除したりする方法、またはWeb上のサンプル等何でもよいので、おしえていただけますでしょうか? または、XMLクラスを使わず行単位で正規表現で文字処理する方法でもかまいません。よろしくお願いします。m(_*_)m バージョン:AcrionScript3.0 (XMLDocumentなどのクラスを使わず、W3Cで定義されているXPathのようなアクセス方法、.とか、@とかでアクセスする方法です。)

    • ベストアンサー
    • Flash
  • JavaScript側でのXML作成の方法

    JavaScript側でのXML作成の方法 Ajax開発の経験は始めてなので勝手がわかっていないのですが やりたい事はサーバー側からXMLデータを取得して JavaScript側でXMLを編集してサーバーに書き戻すような事がしたいのです。 このような場合、DOMツリーをXMLファイルにシリアライズするには IEだとActiveXObject("Microsoft.XMLDOM")、FireFoxだとXMLSerializer()を使うと いったようにブラウザごとに処理を分けねばなりません。 これは面倒なのであまりやりたくありません。 あとはベタなテキストとして var xml = "<?xml version='1.0' encoding='utf-8'?>" + "<root><element>test</element></root>" と書いていくくらいしか思いつかないのですが ブラウザ間ごとの違いを吸収してくれる XML編集用の便利なJavaScriptライブラリなどは存在したりするものでしょうか? (jQueryなどがそうのような機能を内包してたりする?) 少し調べてみた限りでは無さそうに感じたのですが 処理としてはよくありそうな事なのでお聞きしてみました。

  • <xml>タグを使った例

    つい先日も質問しましたが、具体例を記述したいと思います。 HTMLは以下の感じです。 <form name="frm"> <a href="#" onclick="javascript:call('test');">リンク</a> <xml id="includeXls"> <body scroll="no" style="margin:0 0 0 0"> <iframe name="fra1" src='2.html' height=100% width=100%> </body> </xml> </form> <script language="javascript"> <!-- function call(did){ var arg = "resizable=1,scrollbars=0,width=600,height=480,toolbar=1,menubar1=,directories=0,status=0"; var subWin; if (subWin != null) { if (!subWin.closed) { subWin.close(); } } subWin = window.open("", did, arg); subWin.document.open(); subWin.document.write(includeXls.innerHTML); subWin.document.close(); subWin.focus(); } //--> </script> これを適当な名前でhtmlを表示して、2.htmlという適当なhtmlを指定した「リンク」をクリックすると、 それが開きます。 このとき、<xml>タグを使わずに別のタグを使ってどうようなことができるのならそれを教えていただけたらと思います。 また、この<xml>タグはどういう意味になるのかも教えていただけたらと思います。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 独学でXMLの有効性を感じながら勉強できる方法を教えてください。

    XMLを使うメリットがいまいち見えてきません。 XMLのメリットはデータ交換と他端末対応、EZ-WebやPDA? のページを作成するのに便利そうとは思うのですが。。 XMLの有効性が伝わってくる内容のサンプルを作成しながら楽しく 学習できる書籍やサイトはありますでしょうか? 例えば、CGIやDBであれば、xxによるWeb-DBシステムの作成といった感じで、独学で実際に試して形にできるので有用性が簡単に理解できるのですが、XMLの場合だと別にXMLでなくても良いのでは。。と思うようなサンプルや複雑すぎて難しいものが多いような気がします。 あまり小規模な事には使わないからなのかもしれませんが、シンプルなサンプルで学習したいです。 大きな事例はインターネット上に多少載っていますが、実際に現場で、どのようにWebページを製作し、データ交換を行うのかが見えないです。 ・データ交換に関して XMLは、HTMLと違いタグに構造化された情報を持たせられるということで、CSVの行列といった簡単な情報でなく、RDBのようにデータを使用でき、かつFireWallのポートも気にせずにSOAPプロトコルを使用しリモートとのデータ交換ができるから良いということなのでしょうか? ・他端末対応に関して EZ-Webページを作成する際に手間だったので XML、XSLという組み合わせは有効そうに思えます。 ただ、Webページ作成だけに限れば、XSLなどWebデザイナーが覚えるかというと敷居が高いような気がしますし、 XSL対応のWYSYWIGエディタがあるかというとそうでもなく、 デザインを凝らないページであればXSLでも良い気がしますが、既存のHTMLとスタイルシートの方が早くて簡単な気がします。 XML、XSLという組み合わせは携帯などデータ重視のページでのみ利用されていくのかと感じてしまうぐらいです。 ふと、本屋に行き個人レベルでXMLのメリットを感じるには難しく学習へのきっかけが欲しいです。

    • 締切済み
    • XML
  • abbrタグ

    テーブルのthタグにつける、abbrタグは、どういう効果があるのでしょうか? abbrタグを付けることに意味は有るのですか? 別に名前を定義しているわけではないですよね。

    • ベストアンサー
    • HTML

専門家に質問してみよう