XMLSignature sig = new XMLSignature(doc, null,
XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
doc.getDocumentElement().appendChild(sig.getElement());
Transforms transforms = new Transforms(doc);
String params[][] = {
{ XPath2FilterContainer.SUBTRACT,
//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+
}
};
NodeList nodeList = XPath2FilterContainer.newInstances(doc, params);
transforms.setXPathNamespaceContext("ds", Constants.SignatureSpecNS);
transforms.addTransform(Transforms.TRANSFORM_XPATH2FILTER, nodeList);
sig.addDocument("", transforms);
String secretKey = "secret";