2014-04-03 54 views
1

我的數據集是在XSD文件中定義的,我沒有從代碼生成它。只有1個表正在使用類型爲System.Boolean []的數據列,並且只有當我使用table.WriteXmlSchema()時,此列會發生異常。XSD文件中的序列化布爾數組列

布爾[]是作爲屬性的複雜類型 的複雜type.Cannot序列化值。

我正在使用以下網站的代碼。 http://blogs.msdn.com/b/marcelolr/archive/2010/04/02/dataset-does-not-validate-xml-schema-xsd.aspx

StreamWriter writer = new StreamWriter("c:\\abc.xsd"); 
String test = currentDataset.GetXmlSchema(); //exception 
currentDataset.WriteXmlSchema(writer); 

我的目標:爲了驗證我的XML對抗模式(之前我加載XML本身)。驗證架構會給我確切的錯誤細節。

我的方法:生成XSD - >使用XSD驗證XML - >如果一切正常,然後繼續 - >如果問題,然後向用戶顯示適當的錯誤,以便他可以手動修復XML。

任何幫助將大大appreacited。

+0

你使用布爾型還是布爾型?如果您使用'布爾'嘗試切換'bool'。我不得不看看你如何設置你的數據源和xsd更有幫助。儘管'boolean' [應該](http://msdn.microsoft.com/en-us/library/system.boolean.aspx)是可序列化的。 –

+0

我正在使用布爾[](布爾數組)和布爾數組引起的問題。 –

+0

我相信下面的答案看起來是最正確的。您無法真正擁有未附加XmlElement屬性的複雜類型。嘗試列表也許?參考這個:https://stackoverflow.com/questions/2211859/xml-serializing-arrays-with-type-array-in-net –

回答

1

根據XSD,屬性只能是簡單的內容。由於布爾[]是一種複雜類型,因此無法將其序列化爲屬性。在你的bool []屬性上嘗試使用[XmlElement]而不是[XmlAttribute]。

+0

我真的檢查了代碼。該列已經是XMLElement。 :(但是我會在星期四訪問辦公室,並且會再次重新檢查並且會讓你知道。 –

+0

嗨,抱歉,延遲響應。布爾[]設置爲XMLElement。我嘗試了很多,但是我還沒有找到答案然而。 –