簡體   English   中英

XML的XSD驗證有多貴?

[英]How expensive is a XSD validation of XML?

我想在C#中使用xsd架構驗證大型xml文件。 對於1000行xml代碼驗證的文件需要很長時間。

是否有任何提示和技巧可以更快地驗證?

你能發布一些代碼示例,它們可以通過大型xml驗證更快地運行嗎?

編輯1:我使用XSD驗證這樣驗證XML

編輯2:對於大文件需要10秒以上。 我需要驗證在一秒鍾內非常快。

編輯3:文件大小大於10 Mb

編輯4:我也在考慮這種方法,我想將xml文件存儲在數據庫和xsd中。

您當前正在將整個文檔加載到內存中, 無論驗證如何 ,這都是昂貴的。 更好的選擇是通過閱讀器解析,即如MSDN所示 該頁面上示例的關鍵點:

  • 它從不加載整個文檔
  • while(reader.Reader())只是枚舉節點級別的整個文件
  • 驗證是通過XmlReaderSettings啟用的

期望使用驗證解析文檔所花費的時間大約是沒有驗證的解析時間的兩倍是合理的。 但是這個比例會有很大差異,具體取決於你的架構。 例如,如果每個屬性都由正則表達式控制,並且正則表達式很復雜,那么驗證的開銷可能遠高於這個經驗法則。

此外,這不允許構建復雜模式的成本。 如果您有一個定義數百種元素類型的大模式,那么編譯模式可能需要比使用它來驗證幾兆字節數據更長的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM