我有一個應用程序從數據庫中讀取記錄並將其導出到一個xml文件。有一個xsd提供了xml文件的模式。我使用xsd代理類來將數據序列化到xml文件。XML串行器跳過行
這是我如何將數據序列化到XML:
XmlSerializer serializer = new XmlSerializer(_report.GetType());
StringBuilder xmlString = new StringBuilder();
StringWriter writer = new StringWriter(xmlString);
serializer.Serialize(writer, _report);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString.ToString());
doc.Save(_outputFile.FullName);
我遇到的問題是,在輸出文件有丟失的行。我經歷了調試,發現數據正在從數據庫添加到代理對象的集合中,並通過'_report'對象傳遞給序列化程序。
因此,爲了隔離數據或應用程序的問題,我手工編寫了一些缺失的記錄到csv文件中,並將數據導入到我的應用程序中。這些記錄現在出現在xml文件中。所以,現在我知道這是一個數據問題。該應用程序使用informix數據庫作爲後端。
我不明白的是,爲什麼informix數據庫中同一個表中的某些行存在,而其他的行不存在?我已經花了近2-3天的時間瀏覽互聯網,沒有任何成功。所以,我認爲是時候把它變成一個缺口。
你可以與我們分享xsd嗎?我猜猜問題出在哪裏。另外,您是如何生成「代理對象」_report的?是通過XSD.EXE還是其他方法? xsd實際上是一個數據集嗎? – code4life 2011-05-09 15:05:50