2009-10-10 41 views
0

SAX APIs如何根據模式/ DTD驗證XML?如何使用SAX驗證XML?

我的理解是SAX API-S讀取的塊的XML文檔夾,並且不保存先前在存儲器中讀取數據塊。所以我不清楚API如何在不保存所有內容的情況下驗證文檔。 ??

回答

1

你並不需要保持整個XML樹在內存中,以驗證它。只有那些目前得到驗證的部分才需要在內存中。例如,如果您需要確認像root/child */property *這樣的結構,那麼實際上只需要檢查子父母關係,因此我們只需要存儲以前的元素來驗證。當然,如果構造更復雜,則會使用更多的內存來驗證複雜的約束條件。

+0

某些類型的XML驗證需要完整地訪問文檔,如維基百科上SAX頁面的缺陷所述:http://en.wikipedia.org/wiki/Simple_API_for_XML#Drawbacks – 2009-10-10 19:20:52

+0

@Pascal,上面的鏈接表示對ID/IDREF關係的驗證只需要將完整的ID和IDREF列表保存在內存中,而不是完整的文檔。 – 2009-10-10 20:58:46