- PR -

入れ子になったリレーションシップ?

1
投稿者投稿内容
はぎ丸
常連さん
会議室デビュー日: 2005/02/02
投稿数: 36
投稿日時: 2005-03-11 14:17
VB.NETで開発を行っていますが、
下記のようなエラーが発生して困っております。

「同じテーブル (item) を 2 つの入れ子になったリレーションシップで子テーブルにすることはできません。」

やりたいことはDataSetにXMLをReadXMLで読み込ませて、
DataGridに表示したいだけなのですが、
ReadXMLを実行するとエラーが発生します。

調べてわかったのですが、
ルート要素に属性(ここで言うとversion)をつけると
エラーになり、はずすと正常に動作します。
また、エラーメッセージの通り、
<item>を入れ子にしなければ正常に動作します。
ただし用件上、<item>は入れ子にしなければなりません。

どなたか回避策があればご教授ください。


-ソース-----------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim ds As New DataSet
ds.ReadXml("C:\data.xml") '<-ここでエラー発生
DataGrid1.DataSource = ds

End Sub

-data.xml-----------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<root version="1.0"> <!-- <−versionをはずすとエラーにならない -->
<item>
<name>Element01</name>
<data>
<type>B</type>
</data>
<item>
<name>SubElement01</name>
<data>
<type>A</type>
</data>
</item>
<item>
<name>SubElement02</name>
<data>
<type>B</type>
</data>
</item>
</item>
</root>
1

スキルアップ/キャリアアップ(JOB@IT)