用XSD2Code生成的代码加载XML
本文关键字:代码 加载 XML XSD2Code | 更新日期: 2023-09-27 18:17:37
我遇到了麻烦,获得由XSD2Code生成的代码,以加载一个据称有效的xml文件。
我的测试用例包括为KML 2.2.0版本模式生成c#代码,并尝试用它加载样例KML文件。
测试过程中出现的异常如下:
系统。InvalidOperationException:有一个反映类型"XSDTest.KmlType"的错误。
——>系统。InvalidOperationException:反映属性'NetworkLinkControl'的错误。
——>系统。InvalidOperationException:有一个反映类型"XSDTest.NetworkLinkControlType"的错误。
——>系统。InvalidOperationException:反映属性"Update"的错误。
——>系统。InvalidOperationException:有一个反映类型"XSDTest.UpdateType"的错误。
——>系统。InvalidOperationException:反映属性"Items"的错误。
——>系统。InvalidOperationException:有一个反映类型"XSDTest.DeleteType"的错误。
——>系统。InvalidOperationException:反映属性"Items"的错误。
——>系统。InvalidOperationException:有一个反映类型"XSDTest.PlacemarkType"的错误。
——>系统。InvalidOperationException:反映属性"author"的错误。
——>系统。InvalidOperationException:有一个反映类型"XSDTest.atomPersonConstruct"的错误。
——>系统。InvalidOperationException:反映属性"Items"的错误。
——>系统。InvalidOperationException:选择标识符"ItemsElementName"的类型与"Items"的类型不一致。请使用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个值从默认值false更改为true: Serialization。启用,序列化。
启用编码和序列化。generatexmlatattributes。我不是在寻找替代方案,只要用c#加载KML,但我正在寻找一种从有效模式自动生成c#代码的方法。它不需要是XSD2Code,所以如果有更合适的东西,请随意建议。
谢谢你的帮助
尝试在XSD2Code参数中将ChoiceIdentifier的值设置为'array'而不是'list'。