我很难获得由XSD2Code生成的代码来加载一个假定有效的xml文件。
我的测试用例包括为C#生成KML版本2.2.0模式代码,并尝试用它加载示例KML文件。
此测试期间出现的异常如下:
System.InvalidOperationException :反映类型'XSDTest.KmlType‘时出错。 -> System.InvalidOperationException :出现了反映属性'NetworkLinkControl‘的错误。 -> System.InvalidOperationException :出现了一个错误,反映了'XSDTest.NetworkLinkControlType‘类型。 -> System.InvalidOperationException :出现了反映属性“更新”的错误。 -> System.InvalidOperationException :出现了一个反映'XSDTest.UpdateType‘类型的错误。 -> System.InvalidOperationException :出现了反映属性“项”的错误。 -> System.InvalidOperationException :有一个错误反映了'XSDTest.DeleteType‘类型。 -> System.InvalidOperationException :出现了反映属性“项”的错误。 -> System.InvalidOperationException :有一个错误反映了'XSDTest.PlacemarkType‘类型。 -> System.InvalidOperationException :出现了反映属性‘作者’的错误。 -> System.InvalidOperationException :出现了反映'XSDTest.atomPersonConstruct‘类型的错误。 -> System.InvalidOperationException :出现了反映属性“项”的错误。 -> System.InvalidOperationException :选择标识符'ItemsElementName‘的类型与’Item‘的类型不一致。请使用System.Collections.Generic.List`1[XSDTest.ItemsChoiceType,XSDTest、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null数组。
在自动生成的代码中创建XML序列化程序时会发生这种情况。
新System.Xml.Serialization.XmlSerializer(typeof(KmlType))
在用XSD2Code创建代码时,我只将3个valeus从其默认值false更改为true: Serialization.Enabled、Serialization.EnableEncoding和Serialization.GenerateXmlAttributes。
就用C#加载KML而言,我并不是在寻找替代方案,但我正在研究一种从有效模式自动生成C#代码的方法。它不需要是XSD2Code,所以如果有更合适的东西,可以随意建议。
谢谢你的帮忙
发布于 2015-04-29 10:32:16
尝试将ChoiceIdentifier值设置为“XSD2Code”参数中的“数组”而不是“列表”。
https://stackoverflow.com/questions/17024314
复制相似问题