Example usage for org.w3c.dom DocumentFragment getOwnerDocument

List of usage examples for org.w3c.dom DocumentFragment getOwnerDocument

Introduction

In this page you can find the example usage for org.w3c.dom DocumentFragment getOwnerDocument.

Prototype

public Document getOwnerDocument();

Source Link

Document

The Document object associated with this node.

Usage

From source file:com.enonic.esl.xml.XMLTool.java

public static String serialize(Node n, boolean includeSelf, String encoding) {
    DocumentFragment df = XMLTool.createDocument().createDocumentFragment();
    NodeList children = n.getChildNodes();

    // Check whether the child is a CDATA node
    Node firstChild = n.getFirstChild();
    if (firstChild != null && firstChild.getNodeType() == Node.CDATA_SECTION_NODE) {
        return null;
    }//w  w w .j ava  2  s.c o  m

    if (includeSelf) {
        df.appendChild(df.getOwnerDocument().importNode(n, true));
    } else {
        if (children == null || children.getLength() == 0) {
            return null;
        }

        // If only one node is found and it is a CDATA section, there is no need for serialization
        if (children.getLength() == 1 && children.item(0).getNodeType() == Node.CDATA_SECTION_NODE) {
            return null;
        }

        for (int i = 0; i < children.getLength(); i++) {
            df.appendChild(df.getOwnerDocument().importNode(children.item(i), true));
        }
    }

    return serialize(df, 4);
}

From source file:com.legstar.jaxb.gen.CobolJAXBCustomizer.java

/**
 * Lookup a DOM element in the parent markup. If not found, an new DOM
 * element is created and added to the parent markup.
 * //from  w w  w  . j  av  a 2s.c  o  m
 * @param markupParent the parent markup
 * @param namespace the DOM namespace
 * @param namespacePrefix the DOM namespace prefix
 * @param elementLocalName the element local name
 * @return an existing or new DOM element
 */
protected Element getElement(final DocumentFragment markupParent, final String namespace,
        final String namespacePrefix, final String elementLocalName) {

    Element domElement = null;
    NodeList nl = markupParent.getChildNodes();
    for (int i = 0; i < nl.getLength(); i++) {
        if (nl.item(i) instanceof Element && nl.item(i).getNamespaceURI().equals(namespace)
                && nl.item(i).getLocalName().equals(elementLocalName)) {
            domElement = (Element) nl.item(i);
            break;
        }
    }
    if (domElement == null) {
        domElement = markupParent.getOwnerDocument().createElementNS(namespace,
                namespacePrefix + ':' + elementLocalName);
        markupParent.appendChild(domElement);
    }
    return domElement;
}

From source file:com.legstar.jaxb.gen.CobolJAXBCustomizer.java

/**
 * Inject a schema bindings element in the parent annotation node.
 * <p/>/*from   w ww. ja  v a  2 s . c  om*/
 * If the element is already present we update its attributes.
 * 
 * @param markupParent the parent annotation node (its a document fragment)
 * @param jaxbNamespace the JAXB namespace
 * @param jaxbNamespacePrefix the JAXB namespace prefix
 */
public void injectJaxbSchemaBindingsAnnotations(final DocumentFragment markupParent, final String jaxbNamespace,
        final String jaxbNamespacePrefix) {

    Element schemabindingsEl = null;
    NodeList nl = markupParent.getChildNodes();
    for (int i = 0; i < nl.getLength(); i++) {
        if (nl.item(i) instanceof Element && nl.item(i).getNamespaceURI().equals(jaxbNamespace)
                && nl.item(i).getLocalName().equals(JAXB_SCHEMABINDINGS)) {
            schemabindingsEl = (Element) nl.item(i);
            break;
        }
    }
    if (schemabindingsEl == null) {
        schemabindingsEl = markupParent.getOwnerDocument().createElementNS(jaxbNamespace,
                jaxbNamespacePrefix + ':' + JAXB_SCHEMABINDINGS);
        markupParent.appendChild(schemabindingsEl);
    }

    if (getJaxbGenModel().needXmlTransform()) {
        injectJaxbXmlTransformAnnotation(schemabindingsEl, jaxbNamespace, jaxbNamespacePrefix);
    }

}

From source file:org.cauldron.einstein.ri.core.model.data.xml.dom.DOMUtil.java

@Post
@Pre/*from  w  w w . j  a va 2s. c om*/
static Node createDOMFromObject(Object o) {
    Document doc;
    try {
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
        if (o instanceof String) {
            log.debug("Creating XMLDOM DataObject from String");
            doc = docBuilder.parse(new ByteArrayInputStream(((String) o).getBytes()));
        } else if (o instanceof byte[]) {
            log.debug("Creating XMLDOM DataObject from byte[]");
            doc = docBuilder.parse(new ByteArrayInputStream((byte[]) o));
        } else if (o instanceof InputStream) {
            log.debug("Creating XMLDOM DataObject from InpuStream");
            doc = docBuilder.parse((InputStream) o);
            //            } else if (o instanceof NodeList) {
            //                log.debug("Creating XMLDOM DataObject from NodeList");
            //                if(true)throw new Error();
            //                NodeList nodeList = (NodeList) o;
            //                fragment = buildFragmentFromNodeList(docBuilder, nodeList);
            //                return fragment;

        } else if (o instanceof Node) {
            log.debug("Building fragment from a node.");
            return (Node) o;
        } else {
            log.debug("Creating XMLDOM DataObject from Object");
            doc = docBuilder.parse(new ByteArrayInputStream(xstream.toXML(o).getBytes()));
        }
    } catch (ParserConfigurationException e) {
        throw new DataConversionRuntimeException(e);
    } catch (SAXException e) {
        throw new DataConversionRuntimeException(e);
    } catch (IOException e) {
        throw new DataConversionRuntimeException(e);
        //        } catch (TransformerException e) {
        //            throw new DataConversionRuntimeException(e);
    }
    final DocumentFragment fragment = doc.createDocumentFragment();
    final Element element = doc.getDocumentElement();
    fragment.getOwnerDocument().adoptNode(element);
    fragment.appendChild(element);
    return fragment;
}