2

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

所以起初我尝试从 XSD 创建数据集结构:

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

但它引发了一个错误:DataSet 不支持 'union' 或 'list' 作为 simpleType

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

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

但它引发了另一个错误——继承其命名空间的嵌套表“点”不能在不同的命名空间中有多个父表。

请问你能帮我解决这个问题吗?太棒了!

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

4

1 回答 1

2

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

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

于 2013-09-24T15:36:15.640 回答