2012-09-23 39 views
0

我的應用程序需要編寫一個Xml文件,爲此我有一個XmlSchema。由於該文件可能非常大,我認爲將XmlSerializer與由xsd.exe生成的類一起使用會產生問題。在.Net中寫入大型XML文件(帶驗證)

我知道我可以用XmlWriter來編寫一個任意大的Xml文件,但這意味着我必須手動寫出每個元素和每個屬性,這很容易出錯。

有沒有一種工具可以生成「模式特定的」XmlWriter類,它可以幫助我避免錯誤?或者,至少,當我寫一些非法的東西時,會立即引發一場異議?有沒有其他方法我不知道?

-Mat

+1

「非常大」有多大? –

+0

很難說,因爲它取決於用戶選擇的項目數量,但我估計高達500 megs。 – user1691896

回答

0

一個選擇是它沒有驗證,然後有一個額外的步驟,讀取再次使用模式(使用XmlReader看一遍,卻從來沒有記住什麼在記憶中)。這一步可以是可選的 - 最初總是這樣做,然後當你相信你有任何錯誤時,你最終可以關閉它來提高性能。 (可能離開的代碼,所以你可以把它再次輕鬆。)

當然,你不應該使用這個作爲你只有檢查 - 單元測試應該有助於從甚至還讓遠阻止你:)