虽然 XML 数字签名只是 W3C 和 IETF(Internet Engineering Task Force) 于 2002 年共同提出的草案,但 XML 签名为任何数据提供了完整性、消息认证、以及签名者认证服务。XML 数字签名可以应用于任何数据对象 ( 包括 XML 文档 ),也可以应用于一个或多个资源文件,或者资源文件的子集。XML 数字签名格式如清单 1。
清单 1. XML 数字签名的格式
<Signature> |
![]() ![]() |
![]()
|
XML 数字签名把 XPath 表达式作为自己的 Transform,根据 XPath 表达式来查找 XML 解析树,最后计算出 XML 文档中的子集。为了更简单更快地定位 XML 文档中的结点集合,W3C/IETF 共同提出了 XPath Filter 规范,这就是这一章节要提到的技术。
XPath 是针对 XML 文档部分内容定义的语法和标准函数库,也是 W3C 的标准。XPath 使用路径表达式在 XML 文档中定位导航。
XPath Filter 虽然只是 W3C XML 签名工作组和 IETF 提出的草案,将来可能会被更改,甚至被其他新的方法替代。但它在 XML 签名中使用 XPath 的思想仍然是值得借鉴的。
XML 签名 XPath Filter Transform 由一个或多个 XPath 结点构成。其结构如代码清单 2.
清单 2. XPath Filter 在 XML 数字签名中的结构
本文转自IBM Developerworks中国