无法将嵌套关系或元素列添加到包含SimpleContent列的表中

Dar*_*rsh 6 c# database asp.net

嗨,我写这个代码

"

 XmlTextReader read = new XmlTextReader("http://msdn.microsoft.com/rss.xml");
        DataSet ds = new DataSet();
        ds.ReadXml(read);
        ListView1.DataSource = ds.Tables[4];
        ListView1.DataBind(); "
Run Code Online (Sandbox Code Playgroud)

这个错误正在肆虐

"无法将嵌套关系或元素列添加到包含SimpleContent列的表中"

Kyl*_*ale 8

您的问题是您在文档中的某处具有相同的元素名称和不同的结构.

所以,例如,如果你有

<Item>Bicycle</Item>
Run Code Online (Sandbox Code Playgroud)

然后在你的文件中

<Item Type="Sports"><Name>Bicycle</Name></Item>
Run Code Online (Sandbox Code Playgroud)

XSD将无法为第二个Item属性结构生成正确的模式,因为它已根据先前的声明将Item定义为SimpleContent列.

解决方案是(自然地)避免在XML中为不同的结构使用相同的元素名称.显然,在你的情况下,由于微软拥有相关的XML,因此很不方便(假设,因为Deni的评论表明该网站不再存在.)你必须使用XMLWriter或某些变体来替换有问题的元素的名称独特的东西.


Imr*_*zvi 0

看起来您的 xml 包含一个元素,该元素既有文本子元素(简单内容)又有其他元素子元素。

DataSet 不允许表同时具有简单内容列和元素列。

请参阅http://msdn2.microsoft.com/en-us/library/zx8h06sz.aspx