public void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException { super.init(parent, context); try { unmarshalParams(DOMUtils.getFirstChildElement(transformElem)); } catch (MarshalException me) { throw new InvalidAlgorithmParameterException(me); } }
public void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException { super.marshalParams(parent, context); XPathFilter2ParameterSpec xp = (XPathFilter2ParameterSpec) getParameterSpec(); String prefix = DOMUtils.getNSPrefix(context, Transform.XPATH2); String qname = (prefix == null || prefix.length() == 0) ? "xmlns" : "xmlns:" + prefix; @SuppressWarnings("unchecked") List<XPathType> xpathList = xp.getXPathList(); for (XPathType xpathType : xpathList) { Element elem = DOMUtils.createElement(ownerDoc, "XPath", Transform.XPATH2, prefix); elem.appendChild(ownerDoc.createTextNode(xpathType.getExpression())); DOMUtils.setAttribute(elem, "Filter", xpathType.getFilter().toString()); elem.setAttributeNS("http://www.w3.org/2000/xmlns/", qname, Transform.XPATH2); // add namespace attributes, if necessary @SuppressWarnings("unchecked") Set<Map.Entry<String, String>> entries = xpathType.getNamespaceMap().entrySet(); for (Map.Entry<String, String> entry : entries) { elem.setAttributeNS( "http://www.w3.org/2000/xmlns/", "xmlns:" + entry.getKey(), entry.getValue()); } transformElem.appendChild(elem); } }