Apache Xerces是一个流式XML解析器吗?

时间:2013-04-05 12:52:04

标签: java xerces castor

我正在编写一个需要使用castor解组大型XML文件的应用程序。由于这个原因,我需要使用流式XML解析器(如Stax)来解析XML文件。 根据Castor的文档,castor默认解析器是Xerces。我访问了Xerces主页,我找不到Xerces是否是流解析器的任何信息。

有谁知道Xerces是否是一个流解析器。谢谢。

2 个答案:

答案 0 :(得分:2)

关于如何处理这种情况,有一些建议on the FAQ。引用文档。

  

如何在数据流到达时读取数据?

     

您必须处理3个问题:

  • Apache解析器之前将整个数据流读入缓冲区 他们开始解析;你需要改变这种行为,以便他们 分析“在飞行中”
  • Apache解析器在到达文件结尾时终止;有数据 流,除非发件人丢弃套接字,否则你没有文件结束, 所以你需要以其他方式终止
  • Apache解析器在终止时关闭输入流,这就是 关闭插座;你通常不想要这个,因为你会想要的 将ack发送到数据流源,您可能希望拥有 无论如何,在插座上进一步交换。

答案 1 :(得分:0)

来自http://en.wikipedia.org/wiki/Xerces

  

Xerces是Apache用于解析的软件库集合,   验证,序列化和操作XML。该库实现了一个   用于XML解析的标准API数量,包括DOM,SAX和SAX2

所以它似乎支持流媒体和非流媒体API。有关所有支持的API,请参阅http://xerces.apache.org/#xerces2-j