如何解决数据集错误 - 数据集不支持“联合”或“列表”作为简单类型

本文关键字:数据集 联合 类型 简单 列表 不支持 何解决 解决 错误 | 更新日期: 2023-09-27 18:32:07

我需要将一些XML(似乎XML兼容的结构)转换为C#数据集。

所以起初我尝试使用以下命令从 XSD 创建数据集结构:

ds.ReadXml(@"D:'data_RUIAN'ruian'xsd'vymenny_format'VymennyFormatTypy.xsd", XmlReadMode.Auto);

但它正在引起人们的注意:DataSet 不支持"联合"或"列表"作为简单类型

接下来,我尽量避免加载 XSD,因此我直接加载源 XML 文件:

ds.ReadXml(@"D:'data_RUIAN'data'20130831_OB_577405_UKSH.xml", XmlReadMode.Auto);

但它又出现了另一个错误 - 继承其命名空间的嵌套表"Point"不能在不同的命名空间中有多个父表。

请问你能帮我解决这个问题吗?塔恩克斯很多!

顺便说一句:XML是有效的,我也尝试了XSD2DB,xsd.exe.,svcutil但没有进展

如何解决数据集错误 - 数据集不支持“联合”或“列表”作为简单类型

转换为数据集充满了限制。有些可以通过重构 XSD 来绕过(例如,通过删除联合和简单类型)。MSDN 的这一部分提供有关推理过程的一般信息。

答案还取决于您计划如何填写数据集,以及您是否还希望从应与某些规范匹配的数据集生成 XML。例如,在推断集合时,可以选择忽略 XML 命名空间(请参阅 DataSet.InferXmlSchema),这可能会解决嵌套表错误。