簡體   English   中英

使用XSD2Code生成的代碼加載XML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM