验证巨大的xml文件aganist xsd而不将整个文件加载到内存中

时间:2015-12-16 08:51:42

标签: xml xsd spring-batch xml-validation

我已经完成了有关验证大型xml文件的帖子,但所有这些文件都涉及250MB(最大)文件大小。

  1. 文件大小约为10GB。
  2. 我目前有一个tasklet来验证xml,它使用XmlValidator来验证xml文件的xml文件。
  3. 问题声明: 当处理如此庞大的xml并验证它时会将整个文件加载到内存中,因此我得到OutOfMemoryException。 有没有办法验证可以执行Streamwise验证的xml。我不想在验证时将整个文件加载到内存中。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

通常,大文件包含重复1000次的相同结构,并且结构的每个实例都独立于其他实例。有时会有标题和/或页脚。 XML解析器可以读取重复元素的单个实例并对其进行验证,而无需查看前面/后面的元素。

所以你没有理由不能在流式传输时进行验证 - IBM Java附带的XML解析器肯定可以(我自己使用过它)。

您还没有告诉我们您使用的是哪种语言,因此很难具体说明。