1

私は、自分のアプリがWebを介した通信に使用されたり、ブラウザーを介して表示されたりする可能性がないシステムプログラミングを数多く行っています。しかし、XMLを使用するように経営陣からのプッシュがありました。たとえば、タイムログを保持したい場合は、次のようなテキストファイルを使用できます。

コマンド日時プロジェクト
2008/09/2308:00:00PROJ1
変更2008/09/2309:00:00PROJ2
アウト2008/09/2312:00:00PROJ2
2008/09/23 01:00: 00PROJ3
アウト2008/09/2305:00:00PROJ3

XMLは次のようになります。

<timelog> <timecommand cmd=in date=2008/09/23 time=8:00:00 proj=PROJ1/>
..。
<timecommand cmd=out date=2008/09/23 time=5:00:00 proj=PROJ3/>
</timelog>

私が見るテキストバージョンの最初の利点のいくつかは、それが簡単に読みやすく、正規表現で解析できることです。この場合、XMLを使用する利点は何ですか?

4

11 に答える 11

2

テキストベースのデータフォーマットを使用することはまったく問題ありません。何十年もの間、事実上の標準となっています。大規模で巨大なメイン​​フレームの金融システムは、今日でもそれを使用しています。利点は、生成するのも消費するのも簡単で、信じられないほど軽量であることです。ログファイルはどうですか?区切りテキスト形式 (Web、アプリ、データベース サーバー) でログ ファイルを生成しない実稼働プラットフォームを知っていますか?

フラット テキスト ファイルの欠点は、形式が変更された場合、形式の変更をサポートできるようにプロデューサーとコンシューマーの両方の終了を簡単に変更する必要があることです。もちろん、人間が結果を消費するだけの場合は、プロデューサーを変更するだけで済みます。

XML の優れた点は、データの解析が、データだけでなくデータの形式からも独立していることです。論理的には、データとデータ形式の両方を渡します。すべてが機能します。それほど単純ではありませんが、それが前提です。データの形式は変更できます。プロデューサーとコンシューマーは簡単に変更する必要があります (変更する場合)。

XML の醜い点は、パフォーマンスが非常に高く (SOAP の誰か?)、非常に重いことです。その拡張性には間違いなく代償を払います。特定の問題領域に対して完全に最適化された技術ソリューションである場合もあれば、そうでない場合もあります。

そのため、人間が読み取る単純なログの場合は、フラット ファイルにしてください。それが別の単一のアプリ通信する単純なアプリであり、通信が時間の経過とともに劇的に変化しない場合、フラット ファイルは確実に高速で実装が軽くなりますが、XML は悪い選択ではありません。提供するデータを複数のアプリで使用する必要がある場合、または通信の変更量が多くなる場合は、XML を使用してください。そうすることで、インターフェイスのメンテナンスがより簡単になります。

于 2008-09-24T14:00:01.737 に答える
2

いくつかの利点が思い浮かびます。

  • 他のアプリケーションに解析する方が簡単です
  • 書類の内容が一目で分かりやすくなりました
  • 管理ダッシュボードへのデータの取り込みが容易になります
  • あなたにとって少しの苦痛で管理者を幸せにします

私が見ているように、欠点は次のとおりです。

  • おそらく不必要に、既存のコードを変更することを意味します
  • 現在のドキュメントの作成方法と比較して、ドキュメントの作成方法によっては、パフォーマンスがわずかに低下する可能性があります
  • それは XML のための XML です。

最後に、皮肉を込めた引用を締めくくります。XML は暴力のようなものです。問題が解決しない場合は、十分に使用していません。

于 2008-09-24T13:05:27.437 に答える
1

このような場合の XML の主な機能は、XML を検証および制御できることです。テキスト バージョンでは、ファイルが適切にフォーマットされていることをプログラムでどのように確認できますか? XML は、構造化された有効なドキュメントを作成するように設計されており、その結果、形式が厳密に制御され、確実に構造化されるという利点があります。また、XML ノードから読み取るコードを維持することは、テキスト ファイルを読み取るための一連の正規表現を維持するよりもはるかに簡単で、より論理的にレイアウトされます。

于 2008-09-24T13:08:09.783 に答える
1

XML を使用すると、ある意味で、データの「移植性」が高くなります。基本的に、ほとんどの環境でデータのパーサーを使用できるため、データを分析するツールを作成する方が簡単な場合があります。また、XML の場合は、XSLT を記述して他のさまざまな形式に変換し、読みやすくすることができます。

とはいえ、XML の使用に切り替えると、例のような単純な形式であっても、ログ ファイルは非常に大きくなります。

XML 以外に使用できるオプションがいくつかあります。Jeff のAngle Bracket Taxブログ投稿では、これについて少し説明しています。

実際にすべきことは、これらのログがどのように使用されるかを調べてから、それらの使用法を実装するのが最も簡単な形式を決定することです。

于 2008-09-24T13:12:36.060 に答える
0

XML はメタ形式です。つまり、データの形式を簡単に定義できます。これにより、異なる会社のプログラムを含む複数のプログラムが同じ形式でデータを読み書きすることが容易になります。これは、複雑な階層データの記述に特に適しています。

上で概説した例では、データは構造や階層を持たない、固定形式の分離されたレコードのように見えます。この場合、XML を使用する利点は見当たりません。ただし、この例は代表的なものではない可能性があります。他のファイルには、より構造化されたデータが含まれている可能性があります。

于 2008-09-24T13:08:15.183 に答える
0

それは進行中のログ ファイルですか?

有効なドキュメントを作成するためにどのように記述しますか? それとも、それを読み込んで、新しいエントリを追加し、毎回書き出すつもりですか?

ログ ファイルは、適切に構造化されたプレーン テキスト行に追加するのに最適な候補です。

于 2008-09-24T13:13:28.150 に答える
0

ほとんどの場合 (常にではありません)、XML を使用するとデータを理解しやすくなります。これは、目の前にあるものを説明するアセットのメタデータが突然得られるためです (人間が読める形式)。

XML も非常にアクセスしやすいです。つまり、あなたが言及したので、XML で正規表現を使用したくないということです。XML のクエリを楽しくするXPATH (XML Path Language)のようなツールがあります。XPATH のようなものを使用して XML を簡単にトラバースできる場合は、他の人が読み取れないものを作成する必要はありません。

XML が (読みやすさの点で) 逆の場合もあり、XML がオーバーヘッドになることもあります。システム間でデータを交換する場合、常に最適な選択とは限りません (たとえば、 JSONのような非常に軽量なものを見てください)。また、この種の交換は Web 上である必要もありません。

于 2008-09-24T13:14:44.107 に答える
0

.NET (特に LINQ to XML を使用する .NET 3.5) で開発している場合は、プレーン テキスト ファイルのみを使用した場合よりも、XML を読み書きするためのコードが少なくて済みます。さらに、XML を使用すると、誰でもファイルを読みやすくなり、ファイルの内容と目的を正確に把握できるようになります。また、XML がディスク スペースを多少占有することを心配する必要はありません。ディスク スペースは安価です。

于 2008-09-24T13:30:58.483 に答える
0

正規表現と xml と xsl を使用して簡単に解析できます。

正直なところ、データを別のシステムに送信する場合を除いて、XML を使用することに「利点」はありません。

于 2008-09-24T13:06:14.750 に答える
0

データ ファイルに XML を使用すると、データが自己記述的になり、おそらくより適切に整理されますが、最終的には以前よりもはるかに大きなデータ ファイルになることがよくあります。

ファイルは何に使用されるのか自問してみてください。それらは変更されますか?もしそうなら、誰がお金を払い、誰が予算を組んだのですか?

XML が好きな場合もあれば、嫌いな場合もあります。

于 2008-09-24T13:14:51.687 に答える
0

あなたが話しているようなシステム バッチ プログラミングの場合、xml の主な機能は、ほとんどどこでもサポートされていることです。したがって、今日 xml を使用して一部のデータを処理するプログラムを作成すると、10 年後にそのプログラムをオーバーホールする必要があり、まったく異なるプラットフォームを使用する必要が生じた場合でも、xml データは引き続き十分にサポートされます。

于 2008-09-24T13:21:34.043 に答える