StackOverflowを読み、JoelSpolskyとJeffAtwoodによるポッドキャストを聞いていると、多くの開発者がXMLの使用を嫌うか、少なくともデータの保存や交換にXMLをできるだけ使用しないようにしようとしていると思います。
一方、私はいくつかの理由でXMLの使用をとても楽しんでいます。
- XMLシリアル化はほとんどの現代言語で実装されており、非常に使いやすいです。
- XMLシリアル化は、バイナリシリアル化よりも低速であるため、複数のプログラミング言語からの同じデータを使用する場合や、デバッグの場合でも人間が読み取って理解することを目的とした場合に非常に役立ちます(たとえば、JSONはより困難です)。理解するために)、
- XMLはUnicodeをサポートしており、適切に使用すれば、エンコードや文字などの違いに問題はありません。
- XMLデータを簡単に操作できるツールはたくさんあります。XSLTはその一例であり、データの提示と変換を容易にします。XPathはもう1つで、データの検索を簡単にします。
- XMLは一部のSQLサーバーに格納できます。これにより、複雑すぎてSQLテーブルに簡単に格納できないデータを保存および操作する必要があるシナリオが可能になります。たとえば、JSONまたはバイナリデータをSQLで直接操作することはできません(ほとんどの状況でおかしな文字列を操作する場合を除く)。
- XMLでは、アプリケーションをインストールする必要はありません。アプリでデータベースを使用する場合は、最初にデータベースサーバーをインストールする必要があります。アプリでXMLを使用したい場合は、何もインストールする必要はありません。
- XMLは、たとえばWindowsレジストリやINIファイルよりもはるかに明示的で拡張可能です。
- ほとんどの場合、XMLによって提供される抽象化のレベルのおかげで、CR-LFの問題はありません。
では、XMLを使用することのすべての利点を考慮に入れると、なぜ多くの開発者がXMLの使用を嫌うのでしょうか。私見、それに関する唯一の問題はそれです:
- XMLは冗長すぎて、特にBase64エンコーディングに関しては、他のほとんどの形式のデータよりもはるかに多くの場所を必要とします。
もちろん、XMLがまったく適合しないシナリオはたくさんあります。SOの質問と回答をサーバー側のXMLファイルに保存することは絶対に間違っています。または、AVIビデオまたは大量のJPG画像を保存する場合、XMLは使用するのに最悪のものです。
しかし、他のシナリオはどうですか?XMLの弱点は何ですか?
この質問は本当の質問ではないと考えた人々へ:
1980年以降のコンピューティングにおける非クローズの重要な新しい発明のような質問とは対照的に、私の質問は非常に明確な質問であり、他の人々がXMLを使用するときに経験する弱点と、なぜそれを嫌うのかを明確に説明するように促します。たとえば、 XMLが良いか悪いかについて議論することはできません。また、詳細な議論も必要ありません。したがって、これまでに受け取った現在の回答は短く正確であり、私が望む十分な情報を提供します。
しかし、この質問に対するユニークな良い答えはあり得ないので、それはウィキです。
SOによると、「実際の質問ではない」とは、「ここで何が質問されているかを判断するのが難しい。この質問は、あいまい、曖昧、不完全、または修辞的であり、現在の形式では合理的に答えることができない」という質問です。
- ここで質問されていること:質問自体は非常に明確であり、上記のテキストのいくつかの段落はそれをさらに明確にしていると思います、
- この質問はあいまいで、あいまいで、不完全です。繰り返しになりますが、あいまいでも不完全でもない、あいまいなものはありません。
- または修辞的:そうではありません:私の質問への答えは明白なものではありません、
- 合理的に答えることはできません:何人かの人々はすでに質問に素晴らしい答えを出し、質問が合理的に答えられることを示しています。
また、回答を評価し、受け入れられた回答を決定する方法も非常に明白なようです。回答がXMLの何が問題になっているのかについての正当な理由を示している場合、この回答が投票されて受け入れられる可能性があります。