替代 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/

相关内容