C# で cXML ドキュメントを読み書きする最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/2884257

  •  04-10-2019
  •  | 
  •  

質問

これが漠然とした自由回答の質問であることは承知しています。何らかの大まかな方向性が得られることを期待しています。

cXML パンチアウトを ASP.NET C# サイト/アプリケーションに追加する必要があります。これは、私が何年も前に ColdFusion で書いたものを置き換えるものです。

私は C# 開発の経験はかなりありますが、XML についてはあまりやったことがありません。.NET で XML を処理するには、さまざまなオプションがたくさんあるようです。

自由回答形式の質問は次のとおりです。ファイルや文字列などの何らかの形式の XML ドキュメントがあると仮定した場合、それをコードに読み込む最良の方法は何でしょうか?データを取得してデータベースなどにクエリを実行したいと考えています。cXML ドキュメントのサイズとトラフィック量は十分に小さいため、cXML ドキュメントをメモリにロードすることは問題になりません。

したほうがいい:

1) dtd に基づいてクラスを手動で構築し、XML シリアライザーを使用しますか?

2) ツールを使用してクラスを生成します。Ariba.com からサンプル cXML ファイルをダウンロードできます。xsd.exe で xsd を生成し、次に xsd.exe /c でクラスを生成しようとしました。逆シリアル化しようとすると、一部の要素を単一の値にするか配列にするかについて「混乱」があるようで、エラーが発生します。

CodeXS オンライン ツールを試しましたが、ログにエラーが表示され、サンプル ドキュメントを逆シリアル化しようとするとエラーが発生しました。

2) データセットを作成し、ReadXml()?

3) 型付きデータセットと ReadXml()? を作成します。

4) Linq to XML を使用します。私は Linq to Objects をよく使用するので、Linq についてはよく知っていますが、この状況で Linq が何をもたらすのかを理解するのに苦労しています。

5) 他の手段。

XML 全般についての理解をさらに深める必要があると思いますが、それでも...これを行うための明らかな方法が欠けているのでしょうか?古い ColdFusion サイトで、基本的にスキーマを無視して XML を「構造」に読み取る無料のコンポーネント (「タグ」) を見つけました。この「構造」は、本質的にはコードで読みやすい一連のネストされたハッシュ テーブルです。おそらくかなりずさんだったと思いますが、うまくいきました。

C# オブジェクトから XML ファイルを生成する必要もあります。おそらく Linq to XML がそれに適しているでしょう。デフォルトの「テンプレート」ドキュメントから始めて、保存する前にそれを操作することができます。

ご指摘ありがとうございます...

役に立ちましたか?

解決

任意の XML を正確な形式で生成する必要がある場合は、LINQ-to-XML を使用して手動で生成する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top