http://www.oracle.com/technetwork/articles/javase/dig-signature-api-140772.html
XML签名的结构和类型
基本上XML签名有三种类型:
封内签名enveloped
封外签名enveloping
分离签名detached
<RootElement>
<Signature>
...
</Signature>
</RootElement>
<Signature>
<MyXMLDocument>
...
</MyXMLDocument>
</Signature>
<Signature>
...
</Signature>
<MyXMLDocument>
...
</MyXMLDocument>
<Signature ID?>
<SignedInfo>
<CanonicalizationMethod/>
<SignatureMethod/>
(<Reference URI? >
(<Transforms>)?
<DigestMethod>
<DigestValue>
</Reference>)+
</SignedInfo>
<SignatureValue>
(<KeyInfo>)?
(<Object ID?>)*
</Signature>