我有以下实现任务,我不知道如何解决它。管道两个萨克斯解析器?
我们有一个基于SAX的语法检查器,用于检查某个结束endElement()中的hashsum的xml格式。此哈希码是使用一种过滤InputStream构建的,它在读取内容时更新MessageDigest。 SAX-syntaxchecker将此输入流用作其InputSource。
问题(我的任务)是,hashsum应该建立在输入xml的一些规范化部分(请参阅http://www.w3.org/TR/xml-c14n)。
现在,棘手的事情:我们有一个Canonicalizer,也使用SAX来规范输入。 (它需要知道当前的上下文来区分属性和节点等,这就是为什么我们使用SAX)
我想重用Canonicalizer,但我看不出如何组合这两个SAX解析器。
我想我要某种流水线:
INPUTFILE - > Canonicalizer - > HashCalculation-的InputStream - > SyntaxChecker。
任何想法/参考文献如何实现? TIA。
我一直在寻找的架构像这个:(http://javadoc.iaik.tugraz.at/xsect/1.022/apidocs/xsect/iaik/xml/filter/impl/dsig/package-summary.html)但由于许可原因,我回退到ByteArrayOut - > ByteArrayIn。另请参阅(http://ostermiller.org/convert_java_outputstream_inputstream.html),了解java中管道流的各种方式的简要说明。 – Bastl