persone,Come scrivere (grande) XML in un file in C#?
Per favore, qual è un buon modo di scrivere documenti XML veramente grandi (fino a 500 MB) in C# .NET 3.5? Ho avuto un po 'di ricerca in giro, e non riesco a trovare nulla che indirizzi questa domanda specifica.
mio thread precedente (What is the best way to parse (big) XML in C# Code?) coperto di lettura simili documenti Xml grandezza ... Con che risolto ho bisogno di pensare a come scrivere le funzioni aggiornate (http://www.opengeospatial.org/standards/sfa) a un documento "update.xml".
Le mie idee: Ovviamente un grande DOM è fuori, considerando la dimensione massima del documento da produrre. Sto usando XSD.EXE per generare classi vincolanti dallo schema ... che funziona bene con la classe XmlSerializer, ma penso che costruisca un DOM "sotto il cofano". È corretto?. Non riesco a tenere tutte le funzionalità (fino a 50.000 di esse) in memoria contemporaneamente. Ho bisogno di leggere una feature dal database, serializzarla e scriverla su file. Quindi penso che dovrei usare XmlSerializer per scrivere un "doclet" per ogni singola caratteristica del file. Non ho idea (ancora) se questo è anche possibile/fattibile.
Cosa ne pensi?
Background: sto porting un vecchio VB6 MapInfo "plug-client" per C#. Esiste un "servizio di aggiornamento" J2EE esistente (in realtà solo un'app web) con il quale questo programma (tra gli altri) deve collaborare. Non riesco a cambiare il server; a meno che non sia necessario per necessità; in particolare, ciò comporta la modifica degli altri client. Il server accetta un documento XML con uno schema che non specifica nessuno spazio dei nomi ... cioè: c'è solo spazio dei nomi predefinito, e tutto è in esso.
La mia esperienza: Sono praticamente un novizio C# e .NET. Ho programmato per circa 10 anni in varie lingue, tra cui Java, VB, C e alcuni C++.
Saluti tutti. Keith.
PS: È ora di cena, quindi resterò AWOL per circa mezz'ora.
Marc, Merci. (Come per un mio commento alla risposta di David Schmitt) proverò in entrambe le direzioni e farò alcuni test delle prestazioni. Grazie signore per la risposta premurosa e il codice di esempio. Eccezionale. Ta. ;-) Spero solo di poter ripagare il favore un giorno. Cheers. Keith. – corlettk