我正在编写一个应用程序,它需要使用castor解组一个巨大的XML文件。由于这个原因,我需要使用流XML解析器(如Stax)来解析XML文件。根据Castor的文档,Castor的默认解析器是Xerces。我访问了Xerces的主页,我找不到Xerces是否是流解析器的任何信息。
有人知道Xerces是否是流解析器吗?谢谢你。
FAQ中有一些关于如何处理这种情况的建议。引用文档
我如何从流读取数据,因为它到达?
你必须处理三个问题:
- Apache解析器读取整个数据流到缓冲区之前他们开始解析;你需要改变这种行为,这样他们在飞行中分析
- Apache解析器到达文件结束时终止;有了数据流,除非发送方丢弃套接字,否则没有文件结束,所以你需要以其他方式终止
- Apache解析器在终止时关闭输入流关闭套接字;你通常不想这样,因为你会想要向数据流源发送一个返回,您可能希望有
From http://en.wikipedia.org/wiki/Xerces:
Xerces是Apache的用于解析的软件库集合。验证、序列化和操作XML。该库实现了用于XML解析的标准api的数量,包括DOM、SAX和SAX2
所以它似乎支持流和非流api。所有支持的api请参见http://xerces.apache.org/#xerces2-j。