Xml 管道连接两个sax解析器?

Xml 管道连接两个sax解析器?,xml,sax,canonicalization,Xml,Sax,Canonicalization,我有以下实施任务,我不知道如何解决它 我们有一个基于SAX的语法检查器,用于检查某个结束元素()中的哈希和的xml格式。这个hashsum是使用一种过滤InputStream构建的,它在读取内容时更新消息摘要。SAX syntaxchecker将此inputstream用作其InputSource 问题(我的任务)是,hashsum应该构建在输入xml的一些规范化部分上(请参阅) 现在有一件棘手的事情:我们有一个规范化器,它也使用SAX来规范化输入。(它需要了解当前上下文以区分属性和节点等,这就

我有以下实施任务,我不知道如何解决它

我们有一个基于SAX的语法检查器,用于检查某个结束元素()中的哈希和的xml格式。这个hashsum是使用一种过滤InputStream构建的,它在读取内容时更新消息摘要。SAX syntaxchecker将此inputstream用作其InputSource

问题(我的任务)是,hashsum应该构建在输入xml的一些规范化部分上(请参阅)

现在有一件棘手的事情:我们有一个规范化器,它也使用SAX来规范化输入。(它需要了解当前上下文以区分属性和节点等,这就是我们使用SAX的原因)

我想重用那个规范化器,但我看不出如何组合这两个SAX解析器

我想我需要某种管道:

InputFile->Canonicalizer->HashCalculation InputStream->SyntaxChecker


有什么想法/参考资料吗?如何做到这一点?TIA。

由于哈希计算从输入流读取,因此规范化的结果最终必须作为输入流显示。您可以使用连接到PipedOutputStream的PipedInputStream,或者通过临时字节数组使用一对ByteArrayOutputStream/ByteArrayInputStream


相反,如果这两个组件的设计考虑了管道内衬,那么您可以使用
org.xml.sax.XmlFilter
将规范化程序中的事件与哈希计算/语法检查器的处理程序连接起来

我正在寻找这样的体系结构:()但是出于许可证的原因,我选择了ByteArrayOut->ByteArrayIn。有关java中管道流的各种方式的简明描述,请参见()。