9

最近、私が所属している研究グループは、いくつかのシミュレーション コードに取り組んでいます。

コードについては、コードを含むメインの C++ ファイル、シミュレーションの入力パラメーターを含むテキスト ファイルがあります。各時間ステップでのシミュレーションのデータは、各列が物理量の位置、圧力などを表し、各行が格子点を表す列データの形式で吐き出されます。

上司から、input-parameter-file と output データ ファイルのデータ形式を、現在の key-value 、key-value の性質から XML 形式に切り替えるように依頼されました。彼の英語はかなり下手なので、彼は説明がとても下手なようです。XML の優位性について彼が怒鳴ったのは、私が一言も理解できないままでした。

さて、私は科学計算に関心のある平均的な C / C++ / Python プログラマーであり、XML が最も使用されていると思われるデータベースや Web 開発などのコンピューター エンジニアリングの分野のバックグラウンドはありません。

誰かが私にこれについて簡単な説明をしてくれませんか、それともヨガ、チャンティング、香の燃焼、醜い技術語彙(私を必要とし続けますすべての XML チュートリアルが埋め尽くされているようです。

XMLデータ形式が応用数学コードのどこでどのように使用されているかについて、誰かが明確な実際の例を示すことができれば、 それは本当に役に立ちます。

4

5 に答える 5

6

簡単に言うと、XML データは XML 言語を使用して交換できるため、XML はさまざまなソフトウェアと相互運用できる機能を提供します。

たとえば、同じデータを HTML ページに含めて表示したり、データ スキーマ (XML スキーマ) を認識する他のアプリケーションで「そのまま」読み取ったり、XSLT を使用して任意のテキスト形式に変換したりできます。(つまり、XML から CSV へ)。

結論として、XML は他のどのデータ形式よりも簡単に移植できます。

もちろん、これがデータに XML を使用する唯一の利点ではありません。XML はスキーマに対してドキュメントを検証でき (正確性について)、宣言言語 (XPath) を使用してデータをクエリできます。

大量のデータを必要とする/生成するアプリケーションにとって、XML の欠点は、XML が冗長であることです (バイナリ データ形式について): たとえば、XML で画像を保存する方法を考えてください...それは面倒です...のもちろん、(base64 エンコーディングを使用して) XML ドキュメントにバイナリ データを含めることはできますが、この場合 (ほとんどのデータが base64 に格納されている場合)、XML を使用しても意味がありません。

于 2012-05-27T20:57:32.570 に答える
4

また、XMLは非常に柔軟な形式です。DTD、XSD、またはRelaxNGのおかげで、明確で正式な定義を維持しながら、構造が変化するデータを簡単に保存できます。

たとえば、テーブルと比較すると、空のセルの可能性を排除できます。これにより、(十分な大きさのデータセットの場合)その冗長性を補うこともできます。

表形式のデータ:

 ID  | attribute1 | attribute2 | attribute3 | attribute4 | attribute5 | etc.
 1   |     1      |     3      |      8     |    null    |    7       |  ...
 2   |     4      |    null    |     null   |    null    |    13      |  ...
 3   |     4      |    null    |      1     |     12     |   null     |  ...

XML:

<rows>
  <row id="1">
    <attribute1>1</attribute1>
    <attribute2>3</attribute2>
    <attribute3>8</attribute3>
    <attribute5>7</attribute5>
  </row>
  <row id="2">
    <attribute1>4</attribute1>
    <attribute5>13</attribute5>
  </row>
  <row id="3">
    <attribute1>4</attribute1>
    <attribute3>1</attribute3>
    <attribute4>12</attribute4>
  </row>
</rows>

各行が複雑で個別の構造を持つ可能性があるという事実は言うまでもありません。この方法で、非常に長い多項式または文字通り他の関数を記述することができます。

高度な数学を実装する多くのアプリケーションがXMLを使用していると確信しています。私はMathematicaがXMLエクスポートを許可していることを知っています。MatlabとRもそうです。

XMLを使用するもう1つの利点は、マシンでの解析が簡単で、人間でもかなり読みやすいことです。(バイナリのように)デコードする必要はなく、(csvや他の多くの形式とは異なり)データの構造を明確に確認できます。

その人気と豊富なツールも無視されるべきではありません。

于 2012-05-27T21:32:39.263 に答える
2

XMLを使用すると、データの長期的な価値が最大化されます。これは、XMLが使用目的に依存せず、特定のソフトウェア環境に依存しない形式で表されるためです。基本的にはそれだけです。多くの場合、ソフトウェアとデータを長期的な資産として扱う場合、当面の短期的な目標を達成するという観点から、少し「過剰なエンジニアリング」を行う必要がありますが、あなた(または上司)は投資が長期的に見返りをもたらす計算されたギャンブル。

于 2012-05-28T07:40:48.687 に答える
1

ソフトウェアやハードウェアが独自のフォーマットを使用している世界について考えてみてください。Microsoft Wordの「.doc」ファイルは、たとえば「.pdf」とは異なる特定の構造(フォント、寸法、配置、eccを定義するため)を持っています。

いくつかの形式が他の形式とは異なることを無限に続けることができますが、その結果(テキストファイル、ビデオ、画像)は他のすべての形式と同じです。インターネットは、「そのOSでそのファイルを開くにはどうすればよいですか?」という質問でかなり過負荷になっています。または「そのアプリケーションでそのファイルを開くにはどうすればよいですか」、ecc。

ソフトウェア会社は、ソフトウェアを既存の標準に適合させたいとは思っていませんでした。むしろ、新しい標準を作成することで、この苦痛をあなたに任せています(多くの場合、他の標準と互換性がありません)。** 1つの例外があります:HTML。

ブラウザ開発者は、何をするために、より良く、より軽く、より涼しくなければならないアプリケーションを作成しなければなりませんでしたか?既存の形式であるHTMLページを読んでレンダリングするだけです。

XMLが使用に適した形式である理由を推測できるかもしれません;)理想的には、すべてが.txtのみの形式である必要があります。では、XMLエディターなしで(メモ帳を使用するだけで)XMLファイルを作成できますか?PDFでも同じことができますか?またはドキュメントで?

私の知る限り、「応用数学コードでXMLデータ形式がどこでどのように使用されているかを示す実例」はありませんが、残念ながら、コンピュータサイエンスは「応用数学」だけでなく、ちょっとしたくだらないことでもあります。フォーマットのように、気にする必要があります。

于 2012-05-27T21:11:01.250 に答える
0

XML は、データ構造またはキーと値のペアには適していません。それらには JSON または YAML を使用します。一方、XML は文書のマークアップに適しています。

于 2013-08-08T16:28:20.457 に答える