2014-09-04 98 views
1

我在一個項目中,C#反序列化類似乎是基於XML文件生成的,而不是直接從系統XSD生成的。從XML數據創建反序列化C#類的正確方法是什麼?

有人可以確認:從這個XML文件創建的XSD可能缺少元數據,因爲某些屬性可能爲空或缺失,具體取決於生成XML文件的方式。

根據我的理解,正確的方法是直接從系統XSD生成類而不是從XML文件生成類,並從XML生成時識別出一些問題?

+0

是的,原則上XSD是正確的方法。 – wdosanjos 2014-09-04 12:31:32

回答

1

你說得對。示例XML文件中缺少的可選元素或字段不會出現在生成的XSD文件中,因此不會出現在反序列化類中。對於出現在期望項目列表的XML中的單個項目也是如此。即使你有一個完整的XML文件,它可能會缺少你的XSD中的限制等。

我的建議是始終從XSD開始。然後創建一個測試XML文件來測試它。

+0

另一個有趣的一個:一個潛在的重複元素,只在樣本xml中出現過一次;或字符串字段,在示例xml中只有像「123」這樣的值,但它實際上可以容納諸如「hello」的東西 – 2014-09-04 12:40:48

+0

正如所料......感謝確認人員。 – ElHaix 2014-09-04 13:12:05

相關問題