public OMText createOMText(String contentID, OMContainer parent, OMXMLParserWrapper builder) { TextImpl text = new TextImpl(contentID, parent, builder, this); parent.addChild(text); return text; }
public final OMElement createOMElement(QName qname, OMContainer parent) { AxiomElement element = createNode(AxiomElement.class); if (parent != null) { parent.addChild(element); } element.internalSetLocalName(qname.getLocalPart()); String prefix = qname.getPrefix(); String namespaceURI = qname.getNamespaceURI(); if (namespaceURI.length() > 0) { // The goal here is twofold: // * check if the namespace needs to be declared; // * locate an existing OMNamespace object, so that we can avoid creating a new one. OMNamespace ns = element.findNamespace(namespaceURI, prefix.length() == 0 ? null : prefix); if (ns == null) { if ("".equals(prefix)) { prefix = generatePrefix(namespaceURI); } ns = element.declareNamespace(namespaceURI, prefix); } element.internalSetNamespace(ns); } else if (prefix.length() > 0) { throw new IllegalArgumentException("Cannot create a prefixed element with an empty namespace name"); } else { if (element.getDefaultNamespace() != null) { element.declareDefaultNamespace(""); } element.internalSetNamespace(null); } return element; }
public OMComment createOMComment(OMContainer parent, String content) { DocumentImpl doc; if (parent instanceof DocumentImpl) { doc = (DocumentImpl) parent; } else { doc = (DocumentImpl) ((ParentNode) parent).getOwnerDocument(); } CommentImpl comment = new CommentImpl(doc, content, this); parent.addChild(comment); return comment; }
/** * Creates an OMDOM Text node, adds it to the give parent element and returns it. * * @see org.apache.axiom.om.OMFactory#createOMText(OMContainer, String, * String, boolean) */ public OMText createOMText(OMContainer parent, String s, String mimeType, boolean optimize) { TextImpl text = new TextImpl((DocumentImpl) ((ElementImpl) parent) .getOwnerDocument(), s, mimeType, optimize, this); parent.addChild(text); return text; }
public final OMElement createOMElement(QName qname, OMContainer parent) { AxiomElement element = createNode(AxiomElement.class); if (parent != null) { parent.addChild(element); } element.internalSetLocalName(qname.getLocalPart()); String prefix = qname.getPrefix(); String namespaceURI = qname.getNamespaceURI(); if (namespaceURI.length() > 0) { // The goal here is twofold: // * check if the namespace needs to be declared; // * locate an existing OMNamespace object, so that we can avoid creating a new one. OMNamespace ns = element.findNamespace(namespaceURI, prefix.length() == 0 ? null : prefix); if (ns == null) { if ("".equals(prefix)) { prefix = generatePrefix(namespaceURI); } ns = element.declareNamespace(namespaceURI, prefix); } element.internalSetNamespace(ns); } else if (prefix.length() > 0) { throw new IllegalArgumentException("Cannot create a prefixed element with an empty namespace name"); } else { if (element.getDefaultNamespace() != null) { element.declareDefaultNamespace(""); } element.internalSetNamespace(null); } return element; }
public static final void flattenOMElement(SOAPFactory factory, OMContainer targetParent, OMElement sourceElement, Map<String, OMElement> multiref) { // Clone and attach the OMElement. // REVIEW This clone will expand the underlying tree. We may want // consider traversing // a few levels deeper to see if there are any additional // OMSourcedElements. // get the href String id = AxiomUtils.getHrefId(sourceElement); OMElement href = multiref.get(id); OMElement newElement = factory .createOMElement(sourceElement.getQName()); AxiomUtils.copyTagData(sourceElement, newElement); // let's include the multiref part... AxiomUtils.copyTagData(href, newElement); // copy all the multiref children @SuppressWarnings("unchecked") final Iterator<OMNode> i = href.getChildren(); while (i.hasNext()) { final OMNode node = i.next(); // lets flatten inner elements flatten(factory, newElement, node, multiref); } targetParent.addChild(newElement); }
private static final void flatten(SOAPFactory factory, OMContainer targetParent, OMNode sourceNode, Map<String, OMElement> multirefs) { if (sourceNode instanceof SOAPFault || !(sourceNode instanceof OMElement)) { targetParent.addChild(AxiomUtils.copy(sourceNode)); } else { // 1. avoid to copy the multiref elements OMElement element = (OMElement) sourceNode; if (!AxiomUtils.isMultirefElement(element)) { if (AxiomUtils.isHrefRedirect(element)) { flattenOMElement(factory, targetParent, element, multirefs); } else { // go deeper... OMElement newElement = factory.createOMElement(element .getQName(), targetParent); AxiomUtils.copyTagData(element, newElement); Iterator<?> j = element.getChildren(); while (j.hasNext()) { OMNode child = (OMNode) j.next(); flatten(factory, newElement, child, multirefs); } } } else { } } }
parent.addChild(om); return om; } catch (XMLStreamException e) {
parent.addChild(iteratedMsgCtx.getEnvelope().getBody().getFirstElement());