按Validating a HUGE XML file 同意,但我仍然困惑......怎麼是XML Schema驗證甚至可以用SAX parsing.I意味着架構驗證包括來回在XML驗證 - 例如鍵引用等不宜整個XML可以在內存中使用嗎? 對不起,愚蠢的問題:(使用SAX進行XML模式驗證 - 它是如何工作的?
4
A
回答
4
驗證反對一個模式可以用幾乎爲零的內存完成,UPA約束確保對內容模型的驗證永遠不需要回溯,當然你需要跟蹤堆棧中每個元素在內容模型的FSM中的狀態,是,存儲器正比於文檔的最大嵌套深度
ID/IDREF驗證是一個例外:本,處理器需要的內存與遇到的ID和IDREF值的數量成正比。重要的是,處理器會記住找到的所有ID和IDREF值,並在它到達文檔結尾時檢查沒有ID出現兩次,並且每個IDREF出現在這些ID中。同樣,爲了檢查unique/key/keyref,處理器需要記住找到了什麼鍵值。但是,所需的內存比「將整個XML保存在內存中」少得多。
0
大多數解析器必須在開始任何確認,之前在內存中的架構/ DTD樹後,其主要進行順序查找,有時輕輕一推,PEEK和流行。
+0
所以模式被加載爲DOM,但實際的XML不是,解析不斷地來回加載它想要的,正確嗎? – Vishal
相關問題
- 1. 使用XSD進行XML模式驗證
- 2. 如何使用xsd模式和SAX驗證xml?
- 3. 如何使用SAX驗證XML?
- 4. 如何使用xml模式驗證xml?
- 5. 使用shell腳本進行xml模式驗證
- 6. 使用JAXB對模式進行驗證
- 7. 使用DocumentBuilder對模式進行驗證
- 8. 如何使用GraphQL模式進行JSON模式數據驗證?
- 9. 使用trax進行模式驗證
- 10. 使用xerces for Android進行XML模式驗證
- 11. 使用PHP進行JSON模式驗證
- 12. 使用ASP.NET WebAPI對POST請求進行XML模式驗證
- 13. 使用JavaScript進行模式驗證
- 14. 對大型模式文件進行xml模式驗證
- 15. symfony組驗證工作如何進行
- 16. 使用crypt和驗證 - 不知道它是如何工作的?
- 17. SAX解析器和XML模式(XSD)驗證
- 18. 使用XML進行WCF請求驗證
- 19. 驗證XML模式的XML模式?
- 20. 使用Java代碼進行XML驗證
- 21. 使用.NET根據模式驗證XML
- 22. 使用SAX解析器對XSD進行驗證時發生java.security.AccessControlException
- 23. 使用dtd進行XML驗證
- 24. 試圖驗證使用jQuery形式,但它不是工作
- 25. 使用XSD進行XML驗證
- 26. 使用SOAP UI進行XML驗證
- 27. 使用Java進行XML動態驗證
- 28. 使用XSD進行Xerces XML驗證
- 29. iOS:使用XSD進行XML驗證
- 30. 如何使用多個XML模式驗證xml文檔
感謝您的出色答案。什麼是UPA?我相信FSM是有限狀態機。 – Vishal
UPA =唯一粒子屬性,XSD中的一個約束條件,可確保內容模型無歧義。 FSM =有限狀態機。 –