2009-07-09 14 views
0

次のXMLファイルからスキーマを読み込むためにDataSetを使用しました。DataSetを使用してネストされたxmlを書き込む方法

<node id="0"> 
    <node id="1"/> 
</node> 

は、その後、私は、このデータセットをクリアして、データを埋め、私は私のデータセットのWriteXmlメソッドを呼び出すようにしようとしたとき、それが例外をスローしました:。

は、DataTableの「ノード」をシリアライズを続行することはできません。これには、同じ外部キーに複数の親行があるDataRowが含まれています。

しかし、データに複数の親行が存在しないことを確信しています。ある人は、データセットのEnforceConstraintsをfalseに設定していたが、うまくいかないと言った。

他に解決策はありますか?

+0

あなたの答えをありがとう。私はDataSetを使用するいくつかの理由があります。 目次:私はこの例外の根本原因を発見しました。私は 'ノード'テーブルのいくつかの行のための異なるテーブルに2つの異なる親を設定しました。 –

答えて

1

DataSetは、特に、リレーショナルスタイルのスキーマに一致するデータ用です。他のすべてのXML作業では、LINQ to XML(XElement)、XmlReader、XmlDocument、XPathDocumentなどのXML APIのいずれかを使用する必要があります。

0

この種のタスクにXElementを使用することを検討してください。ある時点でDataSetが本当に必要な場合は、XElementsをDSに簡単に変換して戻すことができます。

関連する問題