【发布时间】:2010-09-07 15:37:37
【问题描述】:
我需要为 Java 中的 XML 文件创建校验和。基本要求是:
- 元素的顺序很重要;
- 属性的名称-值对很重要,但属性的顺序并不重要;
- 忽略所有空格和 cmets
任何人都可以提供任何提示或示例代码吗?
谢谢, 标记
【问题讨论】:
我需要为 Java 中的 XML 文件创建校验和。基本要求是:
任何人都可以提供任何提示或示例代码吗?
谢谢, 标记
【问题讨论】:
您可以使用 Java 数字 XML 签名 API:
【讨论】:
基本上,您将使用 XSLT 来规范化 XML 文档,以便将等价的文档提取到同一个文档中。转换将:
然后您将对文档的规范化版本进行校验和。
一些有用的参考资料:
normalize-space() - how to get the normalize-space() xpath function to work? 如果您不喜欢生成规范化文档或 DOM 树的中间步骤,您可以使用 SAX 或 StAX 解析 XML 以像上面那样动态维护/排序/条带并提供每个元素/内容/属性/value/etc 到校验和计算器。
【讨论】:
查看标准 W3C 标准“c14n”。 + 忽略空格。它甚至会处理命名空间。当然,在你的图书馆里你有一个实现
【讨论】: