[英]Loading XML with code, generated by XSD2Code
我在獲取XSD2Code生成的代碼以加載假定有效的xml文件時遇到了麻煩。
我的測試案例涉及為KML版本2.2.0模式生成C#代碼,並嘗試使用它加載示例KML文件 。
在此測試期間發生的異常如下:
System.InvalidOperationException:出現錯誤,反映了類型'XSDTest.KmlType'。
----> System.InvalidOperationException:發生錯誤,反映了屬性“ NetworkLinkControl”。
----> System.InvalidOperationException:出現錯誤,反映了類型'XSDTest.NetworkLinkControlType'。
----> System.InvalidOperationException:發生錯誤,反映了屬性“ Update”。
----> System.InvalidOperationException:發生錯誤,反映了類型'XSDTest.UpdateType'。
----> System.InvalidOperationException:發生錯誤,反映了屬性“ Items”。
----> System.InvalidOperationException:發生錯誤,反映了類型'XSDTest.DeleteType'。
----> System.InvalidOperationException:發生錯誤,反映了屬性“ Items”。
----> System.InvalidOperationException:發生錯誤,反映了類型'XSDTest.PlacemarkType'。
----> System.InvalidOperationException:發生錯誤,反映了屬性“作者”。
----> System.InvalidOperationException:發生錯誤,反映了類型'XSDTest.atomPersonConstruct'。
----> System.InvalidOperationException:發生錯誤,反映了屬性“ Items”。
----> System.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.Enabled,Serialization.EnableEncoding和Serialization.GenerateXmlAttributes。
就使用C#加載KML而言,我沒有在尋找替代方法,而是在尋找一種從有效模式自動生成C#代碼的方法。 它不必是XSD2Code,因此,如果有更合適的方法,請隨時提出。
謝謝你的幫助
嘗試將XSD2Code參數中的ChoiceIdentifier值設置為“ array”而不是“ list”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.