2012-09-04 54 views

回答

4

驗證反對一個模式可以用幾乎爲零的內存完成,UPA約束確保對內容模型的驗證永遠不需要回溯,當然你需要跟蹤堆棧中每個元素在內容模型的FSM中的狀態,是,存儲器正比於文檔的最大嵌套深度

ID/IDREF驗證是一個例外:本,處理器需要的內存與遇到的ID和IDREF值的數量成正比。重要的是,處理器會記住找到的所有ID和IDREF值,並在它到達文檔結尾時檢查沒有ID出現兩次,並且每個IDREF出現在這些ID中。同樣,爲了檢查unique/key/keyref,處理器需要記住找到了什麼鍵值。但是,所需的內存比「將整個XML保存在內存中」少得多。

+0

感謝您的出色答案。什麼是UPA?我相信FSM是有限狀態機。 – Vishal

+0

UPA =唯一粒子屬性,XSD中的一個約束條件,可確保內容模型無歧義。 FSM =有限狀態機。 –

0

大多數解析器必須在開始任何確認,之前在內存中的架構/ DTD樹後,其主要進行順序查找,有時輕輕一推,PEEK和流行。

+0

所以模式被加載爲DOM,但實際的XML不是,解析不斷地來回加載它想要的,正確嗎? – Vishal