370.5.3. 输出节点确定在 Enveloping XML 签名问题单中
在从 XML 签名文档中提取节点验证后,该文档最终返回到 output-message 正文。在信封 XML 签名案例中,默认的实施 DefaultXmlSignature2Message of XmlSignature2Message 对节点搜索类型 Default 进行了这一操作(请参阅选项 xmlSignature2Message):
首先决定对象引用:
-
帐户只考虑相同的文档参考(URI 必须以
#开始) - 另外,将考虑通过清单对对象进行间接相同的文档引用。
- 由此产生的对象引用数量必须是 1。
-
帐户只考虑相同的文档参考(URI 必须以
- 然后,对象会被解引用,对象必须仅包含一个 XML 元素。此元素返回为输出节点。
这意味着,信封 XML 签名必须采用以下结构:
<Signature>
<SignedInfo>
<Reference URI="#object"/>
<!-- further references possible but they must not point to an Object or Manifest containing an object reference -->
...
</SignedInfo>
<Object Id="object">
<!-- contains one XML element which is extracted to the message body -->
<Object>
<!-- further object elements possible which are not referenced-->
...
(<KeyInfo>)?
</Signature>
或结构:
<Signature>
<SignedInfo>
<Reference URI="#manifest"/>
<!-- further references are possible but they must not point to an Object or other manifest containing an object reference -->
...
</SignedInfo>
<Object >
<Manifest Id="manifest">
<Reference URI=#object/>
</Manifest>
</Objet>
<Object Id="object">
<!-- contains the DOM node which is extracted to the message body -->
</Object>
<!-- further object elements possible which are not referenced -->
...
(<KeyInfo>)?
</Signature>