大家好,
请问在C# .NET 3.5中如何高效地编写非常大的XML文档(最多达500 MB)?我已经搜索了一下,似乎没有找到针对这个特定问题的解决方案。
我的先前帖子(What is the best way to parse (big) XML in C# Code?)涵盖了读取类似大小的XML文档的内容...现在我需要考虑如何将更新功能(http://www.opengeospatial.org/standards/sfa)写入“update.xml”文档。
我的想法:显然,由于要生成的文档的最大大小,使用一个大型DOM是行不通的。我正在使用XSD.EXE从架构生成绑定类......这与XmlSerializer类很好地配合使用,但我认为它在“底层”构建了一个DOM。这是正确的吗?我无法一次将所有功能(多达50,000个)保存在内存中。我需要从数据库中读取一个功能,对其进行序列化,然后将其写入文件。所以我想应该使用XmlSerializer将每个单独的功能写入文件的“doclet”。我目前还不知道这是否可能/可行。
你怎么看?
背景:我正在将旧的VB6 MapInfo“客户端插件”移植到C#。有一个现有的J2EE“更新服务”(实际上只是一个Web应用程序),该程序(以及其他程序)必须使用。我不能更改服务器,除非绝对必要;特别是如果要更改其他客户端。服务器接受具有架构的XML文档,该架构未指定任何命名空间......即仅存在默认命名空间,并且所有内容都在其中。
我的经验:我在各种编程语言中编程已有大约10年的时间,包括Java、VB、C以及一些C++。但对于C#和.NET还是比较陌生的新手。
祝大家好运。Keith。
附言:现在是晚饭时间,我会离开大约半个小时。