XMLSignature sig = new XMLSignature(doc, null,
XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
doc.getDocumentElement().appendChild(sig.getElement());
Transforms transforms = new Transforms(doc);
{
XPath2FilterContainer04 xpathContainer =
XPath2FilterContainer04.newInstanceSubtract(doc,
//J-
"\n" +
"/XFDL/page[@sid='PAGE1']/*[@sid='CHECK16' or \n" +
" @sid='CHECK17' or \n" +
" @sid='FIELD47' or \n" +
" @sid='BUTTON2' or \n" +
" @sid='FIELD48']\n" +
" | \n" +
"/XFDL/page/triggeritem[not(attribute::sid) | \n" +
" /XFDL/page/*/triggeritem]\n" +
" | \n" +
"here()/ancestor::ds:Signature[1]" +
"");
//J+
xpathContainer.setXPathNamespaceContext("ds",
Constants.SignatureSpecNS);
transforms.addTransform(Transforms.TRANSFORM_XPATH2FILTER04,
xpathContainer.getElement());
}
sig.addDocument("", transforms);