我需要将一些XML(似乎是XML complitated结构)转换为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);
但它是另一个错误 - 继承其名称空间的嵌套表'Point'在不同的名称空间中不能有多个父表。
请你能帮我解决这个问题吗? Tahnks很多!
顺便说一下:XML是有效的,我尝试过XSD2DB,xsd.exe。,svcutil但是没有进展
答案 0 :(得分:2)
转换为数据集时充满了限制。有些可能通过重构XSD而被绕过(例如通过删除联合和简单类型)。 This section on MSDN提供了一般信息:推理过程。
答案还取决于您计划如何填写数据集,以及您是否还想从数据集中生成符合某些规范的XML。例如,您可以在推断集合时选择忽略XML名称空间(请参阅DataSet.InferXmlSchema),这可能会解决嵌套表错误。