【发布时间】:2011-05-09 13:51:56
【问题描述】:
我有一个从数据库中读取记录并将其导出到 xml 文件的应用程序。有一个 xsd 可以绘制出 xml 文件的架构。我正在使用 xsd 代理类将数据序列化为 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 实际上是一个数据集吗?
标签: c# xml-serialization informix