替代 xmllint 檢查 xml 有效性

替代 xmllint 檢查 xml 有效性

有時,我必須根據 xsd 檔案檢查一些大 xml 檔案的有效性。我收到的最大 xml 檔案大小接近 1.5GB。 xmllint佔用了我所有的 RAM 和幾乎所有的交換空間,總記憶體使用量為 18GB。因此,驗證過程持續了 24 小時。

我的問題:是否有替代方法可以xmllint --schema消耗更少的內存,也許利用一些流功能而不是將文件加載到內存中?

答案1

我沒有測試這些驗證器,但從我的腦海中/很少搜索:

  1. XML小星- 也可用於其他用途
  2. msv- Sun 多模式驗證器
  3. HaXML- haskell xml 工具包含命令列實用程式(其中一個是驗證器)
  4. xsltproc也應該在啟動時驗證文件

還有很多選項,因為大多數實用程式都會自動驗證 xml 文檔,例如xsltproc.

答案2

在我的 Linux 系統的包庫中我找到了 xmlcopyeditor。我用它來檢查 XML 文件以及編輯它。手冊頁聲稱它可以執行“DTD/XML Schema/RELAX NG 驗證、XSLT、XPath、漂亮打印、語法突出顯示、折疊、標籤完成/鎖定、拼寫/樣式檢查以及在 Windows 上的 Microsoft 無損導入/導出” Word文件."但我確實還沒有測試過它的效果如何。我確實知道,只有開始標籤和結束標籤正確匹配後,漂亮的列印才會起作用。 http://xml-copy-editor.sourceforge.net/

相關內容