Example usage for org.w3c.dom Element getOwnerDocument

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

Introduction

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

Prototype

public Document getOwnerDocument();

Source Link

Document

The Document object associated with this node.

Usage

From source file:edu.uams.clara.webapp.xml.processor.impl.DefaultXmlProcessorImpl.java

private synchronized Element createElementStructureByPath(final Element docRoot, String path) {

    Document doc = docRoot.getOwnerDocument();
    List<String> nodeList = getNodeList(path);

    logger.trace("nodeList: " + nodeList + " =? ");

    Assert.isTrue(nodeList.size() > 0);

    // remove first one, should be docRoot.getNodeName()...
    nodeList.remove(0);//from   ww w  .j  a  va  2  s.  com

    // remove last one
    nodeList.remove(nodeList.size() - 1);

    Element currentNode = docRoot;
    int c = 0;
    for (String n : nodeList) {
        NodeList cur = currentNode.getElementsByTagName(n);
        String curName = currentNode.getNodeName();
        c = cur.getLength();

        if (c > 1) {
            throw new RuntimeException("illeagl xml structure; find " + c + " elements with name " + n);
        }

        if (c == 0) {
            logger.debug("empty node...; " + n + " doesn't exist under " + curName);

            Element newN = doc.createElement(n);
            currentNode.appendChild(newN);

            currentNode = newN;
            continue;
        }

        currentNode = (Element) cur.item(0);

    }
    return currentNode;

}

From source file:com.eviware.soapui.impl.wsdl.submit.transports.http.support.attachments.WsdlMimeMessageResponse.java

private void expandMtomAttachments(WsdlRequest wsdlRequest) {
    try {//ww w .  j a  va2 s.c o m
        // XmlObject xmlObject = XmlObject.Factory.parse( getContentAsString()
        // );
        XmlObject xmlObject = XmlUtils.createXmlObject(getContentAsString());
        XmlObject[] includes = xmlObject
                .selectPath("declare namespace xop='http://www.w3.org/2004/08/xop/include'; //xop:Include");

        for (XmlObject include : includes) {
            Element elm = (Element) include.getDomNode();
            String href = elm.getAttribute("href");
            Attachment attachment = getMmSupport().getAttachmentWithContentId("<" + href.substring(4) + ">");
            if (attachment != null) {
                ByteArrayOutputStream data = Tools.readAll(attachment.getInputStream(), 0);
                byte[] byteArray = data.toByteArray();

                XmlCursor cursor = include.newCursor();
                cursor.toParent();
                XmlObject parentXmlObject = cursor.getObject();
                cursor.dispose();

                SchemaType schemaType = parentXmlObject.schemaType();
                Node parentNode = elm.getParentNode();

                if (schemaType.isNoType()) {
                    SchemaTypeSystem typeSystem = wsdlRequest.getOperation().getInterface().getWsdlContext()
                            .getSchemaTypeSystem();
                    SchemaGlobalElement schemaElement = typeSystem
                            .findElement(new QName(parentNode.getNamespaceURI(), parentNode.getLocalName()));
                    if (schemaElement != null) {
                        schemaType = schemaElement.getType();
                    }
                }

                String txt = null;

                if (SchemaUtils.isInstanceOf(schemaType, XmlHexBinary.type)) {
                    txt = new String(Hex.encodeHex(byteArray));
                } else {
                    txt = new String(Base64.encodeBase64(byteArray));
                }

                parentNode.replaceChild(elm.getOwnerDocument().createTextNode(txt), elm);
            }
        }

        getMmSupport().setResponseContent(xmlObject.toString());
    } catch (Exception e) {
        SoapUI.logError(e);
    }
}

From source file:eu.europa.ec.markt.dss.validation102853.xades.XAdESSignature.java

private Element getUnsignedSignatureProperties(Element signatureEl) {

    Element unsignedSignaturePropertiesNode = DSSXMLUtils.getElement(signatureEl,
            XPATH_UNSIGNED_SIGNATURE_PROPERTIES);
    if (unsignedSignaturePropertiesNode == null) {

        Element qualifyingProperties = DSSXMLUtils.getElement(signatureEl, XPATH_QUALIFYING_PROPERTIES);
        Element unsignedProperties = DSSXMLUtils.getElement(qualifyingProperties, XPATH_UNSIGNED_PROPERTIES);
        if (unsignedProperties == null) {

            unsignedProperties = qualifyingProperties.getOwnerDocument().createElementNS(XADES_NAMESPACE,
                    "UnsignedProperties");
            qualifyingProperties.appendChild(unsignedProperties);
        }/*from www  . j a va  2s. c o m*/
        unsignedSignaturePropertiesNode = unsignedProperties.getOwnerDocument().createElementNS(XADES_NAMESPACE,
                "UnsignedSignatureProperties");
        unsignedProperties.appendChild(unsignedSignaturePropertiesNode);
    }
    return unsignedSignaturePropertiesNode;
}

From source file:de.qucosa.webapi.v1.DocumentResource.java

private void handleFileElement(String pid, int itemIndex, Element fileElement)
        throws URISyntaxException, IOException, FedoraClientException, XPathExpressionException {
    Node tempFile = fileElement.getElementsByTagName("TempFile").item(0);
    Node pathName = fileElement.getElementsByTagName("PathName").item(0);
    if (tempFile == null || pathName == null) {
        return;/*from   w  w w  .  jav  a 2s .c o m*/
    }

    String id = pid.substring("qucosa:".length());
    String tmpFileName = tempFile.getTextContent();
    String targetFilename = pathName.getTextContent();
    URI fileUri = fileHandlingService.copyTempfileToTargetFileSpace(tmpFileName, targetFilename, id);

    Node labelNode = fileElement.getElementsByTagName("Label").item(0);
    String label = (labelNode != null) ? labelNode.getTextContent() : "";

    final Path filePath = new File(fileUri).toPath();

    String detectedContentType = Files.probeContentType(filePath);
    if (!(Boolean) xPath.evaluate("MimeType[text()!='']", fileElement, XPathConstants.BOOLEAN)) {
        if (detectedContentType != null) {
            Element mimeTypeElement = fileElement.getOwnerDocument().createElement("MimeType");
            mimeTypeElement.setTextContent(detectedContentType);
            fileElement.appendChild(mimeTypeElement);
        }
    }

    if (!(Boolean) xPath.evaluate("FileSize[text()!='']", fileElement, XPathConstants.BOOLEAN)) {
        Element fileSizeElement = fileElement.getOwnerDocument().createElement("FileSize");
        fileSizeElement.setTextContent(String.valueOf(Files.size(filePath)));
        fileElement.appendChild(fileSizeElement);
    }

    String dsid = DSID_QUCOSA_ATT + (itemIndex);
    String state = determineDatastreamState(fileElement);
    DatastreamProfile dsp = fedoraRepository.createExternalReferenceDatastream(pid, dsid, label, fileUri,
            detectedContentType, state);
    fileElement.setAttribute("id", String.valueOf(itemIndex));
    addHashValue(fileElement, dsp);

    fileElement.removeChild(tempFile);
}

From source file:de.betterform.xml.xforms.model.submission.Submission.java

private void submitReplaceEmbedXForms(Map response) throws XFormsException {
    // check for targetid
    String targetid = getXFormsAttribute(TARGETID_ATTRIBUTE);
    String resource = getResource();
    Map eventInfo = new HashMap();
    String error = null;/*w ww .ja va 2s. c o  m*/
    if (targetid == null) {
        error = "targetId";
    } else if (resource == null) {
        error = "resource";
    }

    if (error != null && error.length() > 0) {
        eventInfo.put(XFormsConstants.ERROR_TYPE, "no " + error + "defined for submission resource");
        this.container.dispatch(this.target, XFormsEventNames.SUBMIT_ERROR, eventInfo);
        return;
    }

    Document result = getResponseAsDocument(response);
    Node embedElement = result.getDocumentElement();

    if (resource.indexOf("#") != -1) {
        // detected a fragment so extract that from our result Document

        String fragmentid = resource.substring(resource.indexOf("#") + 1);
        if (fragmentid.indexOf("?") != -1) {
            fragmentid = fragmentid.substring(0, fragmentid.indexOf("?"));
        }
        embedElement = DOMUtil.getById(result, fragmentid);
    }

    Element embeddedNode = null;
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("get target element for id: " + targetid);
    }
    Element targetElem = this.container.getElementById(targetid);
    DOMResult domResult = new DOMResult();
    //Test if targetElem exist.
    if (targetElem != null) {
        // destroy existing embedded form within targetNode
        if (targetElem.hasChildNodes()) {
            // destroyembeddedModels(targetElem);
            Initializer.disposeUIElements(targetElem);
        }
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("destroyed any existing ui elements for target elem");
        }

        // import referenced embedded form into host document
        embeddedNode = (Element) this.container.getDocument().importNode(embedElement, true);

        //import namespaces
        NamespaceResolver.applyNamespaces(targetElem.getOwnerDocument().getDocumentElement(),
                (Element) embeddedNode);

        // keep original targetElem id within hostdoc
        embeddedNode.setAttributeNS(null, "id", targetElem.getAttributeNS(null, "id"));
        //copy all Attributes that might have been on original mountPoint to embedded node
        DOMUtil.copyAttributes(targetElem, embeddedNode, null);
        targetElem.getParentNode().replaceChild(embeddedNode, targetElem);
        //create model for it
        Initializer.initializeUIElements(model, embeddedNode, null, null);

        try {
            CachingTransformerService transformerService = new CachingTransformerService(
                    new ClasspathResourceResolver("unused"));
            // TODO: MUST BE GENERIFIED USING USERAGENT MECHANISM
            //TODO: check exploded mode!!!
            String path = getClass().getResource("/META-INF/resources/xslt/xhtml.xsl").getPath();

            //String xslFilePath = "file:" + path;
            transformerService.getTransformer(new URI(path));
            XSLTGenerator generator = new XSLTGenerator();
            generator.setTransformerService(transformerService);
            generator.setStylesheetURI(new URI(path));
            generator.setInput(embeddedNode);
            generator.setOutput(domResult);
            generator.generate();
        } catch (TransformerException e) {
            throw new XFormsException(
                    "Transformation error while executing 'Submission.submitReplaceEmbedXForms'", e);
        } catch (URISyntaxException e) {
            throw new XFormsException(
                    "Malformed URI throwed URISyntaxException in 'Submission.submitReplaceEmbedXForms'", e);
        }
    }

    // Map eventInfo = constructEventInfo(response);
    OutputStream outputStream = new ByteArrayOutputStream();
    try {
        DOMUtil.prettyPrintDOM(domResult.getNode(), outputStream);
    } catch (TransformerException e) {
        throw new XFormsException(e);
    }

    eventInfo.put(EMBEDNODE, outputStream.toString());
    eventInfo.put("embedTarget", targetid);
    eventInfo.put("embedXForms", true);

    // dispatch xforms-submit-done
    this.container.dispatch(this.target, XFormsEventNames.SUBMIT_DONE, eventInfo);

}

From source file:com.enonic.vertical.adminweb.MenuHandlerServlet.java

private void createContentXML(ExtendedMap formItems, Element menuItemElem) throws VerticalAdminException {

    Document doc = menuItemElem.getOwnerDocument();

    // Create content element
    Element documentElem = XMLTool.createElement(doc, menuItemElem, "document");

    if (verticalProperties.isStoreXHTMLOn()) {
        XMLTool.createXHTMLNodes(doc, documentElem, formItems.getString("contentdata_body", ""), true);
    } else {//from   w  w  w  .j  ava 2s . co  m
        XMLTool.createCDATASection(doc, documentElem, formItems.getString("contentdata_body", ""));
    }
}

From source file:com.enonic.vertical.adminweb.MenuHandlerServlet.java

private void createURLXML(Element menuitem_elem, ExtendedMap formItems) {
    Element url_elem = XMLTool.createElement(menuitem_elem.getOwnerDocument(), menuitem_elem, "url",
            (String) formItems.get("url"));

    url_elem.setAttribute("newwindow", (String) formItems.get("newwindow"));
    url_elem.setAttribute("local", (String) formItems.get("islocalurl"));
}

From source file:com.enonic.vertical.adminweb.MenuHandlerServlet.java

private void buildPageXML(ExtendedMap formItems, String xmlParams, Element menuItemElem)
        throws VerticalAdminException {

    Document doc = menuItemElem.getOwnerDocument();
    Element page = XMLTool.createElement(doc, menuItemElem, "page");

    if (formItems.containsKey("pagekey")) {
        page.setAttribute("key", formItems.getString("pagekey"));
    }/*w w w.ja  va 2 s .  com*/

    page.setAttribute("pagetemplatekey", formItems.getString("pagetemplatekey"));

    // page data
    XMLTool.createElement(doc, page, "pagedata");

    Element contentObjects = XMLTool.createElement(doc, page, "contentobjects");

    // Connect contentobjects
    Document paramsDoc = XMLTool.domparse(xmlParams);
    NodeList nodes = paramsDoc.getElementsByTagName("pagetemplateparameter");
    for (int i = 0; i < nodes.getLength(); i++) {
        Element parameter = (Element) nodes.item(i);
        String key = parameter.getAttribute("key");

        String paramName = XMLTool.getElementText(parameter, "name");
        String separator = XMLTool.getElementText(parameter, "separator");
        if (!isArrayFormItem(formItems, paramName)) {
            if (formItems.containsKey(paramName)) {
                createContentObjectXML(doc, contentObjects, paramName, formItems.getString(paramName),
                        formItems.getString("pagekey", ""), "0", key, separator);
            }
        } else {
            String[] keyArray = (String[]) formItems.get(paramName);

            for (int j = 0; j < keyArray.length; j++) {
                if (keyArray[j] != null && keyArray[j].trim().length() != 0) {
                    createContentObjectXML(doc, contentObjects, paramName, keyArray[j],
                            formItems.getString("pagekey", ""), String.valueOf(j), key, separator);
                }
            }
        }
    }
}

From source file:com.enonic.vertical.adminweb.MenuHandlerServlet.java

private void buildFormXML(ExtendedMap formItems, Element menuItemElement) throws VerticalAdminException {

    Document doc = menuItemElement.getOwnerDocument();
    Element formElement = XMLTool.createElement(doc, menuItemElement, "form");

    XMLTool.createElement(doc, formElement, "title", formItems.getString("form_title"));

    Element confirmationElement = XMLTool.createElement(doc, formElement, "confirmation");
    XMLTool.createXHTMLNodes(doc, confirmationElement, formItems.getString("form_confirmation", ""), true);

    // category key:
    if (formItems.containsKey("category_key")) {
        formElement.setAttribute("categorykey", formItems.getString("category_key"));
    }/*  ww  w.  ja  v  a 2s .  co  m*/

    // recipient
    if (formItems.containsKey("form_sendto")) {
        String[] recipients = formItems.getStringArray("form_sendto");

        Element recipientsElement = XMLTool.createElement(doc, formElement, "recipients");
        for (String recipient : recipients) {
            if (recipient.trim().length() > 0) {
                XMLTool.createElement(doc, recipientsElement, "e-mail", recipient);
            }
        }
    }

    // receipt

    Element receiptElement = XMLTool.createElement(doc, formElement, "receipt");

    if (formItems.containsKey("receiptSendEmail")) {
        XMLTool.createElement(doc, receiptElement, "sendreceipt", "yes");
    } else {
        XMLTool.createElement(doc, receiptElement, "sendreceipt", "no");
    }

    String name = formItems.getString("receiptFromName", "");
    XMLTool.createElement(doc, receiptElement, "name", name);

    String email = formItems.getString("receiptFromAddress", "");
    XMLTool.createElement(doc, receiptElement, "email", email);

    String subject = formItems.getString("receiptSubject", "");
    XMLTool.createElement(doc, receiptElement, "subject", subject);

    String message = formItems.getString("receiptMessage", "");
    XMLTool.createElement(doc, receiptElement, "message", message);

    if (formItems.containsKey("receiptIncludeSubmittedFormData")) {
        XMLTool.createElement(doc, receiptElement, "includeform", "yes");
    } else {
        XMLTool.createElement(doc, receiptElement, "includeform", "no");
    }

    // build form XML
    FieldData labels = new FieldData(formItems.getStringArray("field_label"));
    FieldData helpTexts = new FieldData(formItems.getStringArray("field_helptext"));
    FieldData types = new FieldData(formItems.getStringArray("field_type"));

    FieldData required = new FieldData(formItems.getStringArray("field_required"));
    FieldData width = new FieldData(formItems.getStringArray("field_width"));
    FieldData height = new FieldData(formItems.getStringArray("field_height"));
    FieldData defaultValue = new FieldData(formItems.getStringArray("field_defaultvalue"));
    FieldData regexp = new FieldData(formItems.getStringArray("field_regexp"));
    FieldData validationType = new FieldData(formItems.getStringArray("field_validation"));
    FieldData valueCount = new FieldData(formItems.getStringArray("field_count"));
    FieldData checkedIndex = new FieldData(formItems.getStringArray("field_checkedindex"));
    FieldData value = new FieldData(formItems.getStringArray("field_value"));

    FieldData defaultChk = new FieldData(formItems.getStringArray("field_defaultchk"));

    for (int i = 0; i < types.data.length; i++) {
        String type = types.popData();

        Element itemElement = XMLTool.createElement(doc, formElement, "item");
        itemElement.setAttribute("type", type);

        String tmp;
        if ((tmp = labels.popData()).length() != 0) {
            itemElement.setAttribute("label", tmp);
        }

        if ((tmp = helpTexts.popData()).length() != 0) {
            XMLTool.createElement(doc, itemElement, "help", tmp);
        }

        // data common for text, textarea and checkbox
        if ("text".equals(type) || "textarea".equals(type) || "fileattachment".equals(type)
                || "checkbox".equals(type)) {
            // required
            itemElement.setAttribute("required", required.popData());
        }

        // data common for text and textarea
        if ("text".equals(type) || "textarea".equals(type) || "fileattachment".equals(type)) {
            // width
            if (!("fileattachment".equals(type)) && ((tmp = width.popData()).length() > 0)) {
                itemElement.setAttribute("width", tmp);
            }
        }

        // textarea specific data:
        if ("textarea".equals(type)) {
            // height
            if ((tmp = height.popData()).length() > 0) {
                itemElement.setAttribute("height", tmp);
            }
        }

        // text specific data:
        else if ("text".equals(type)) {
            // default value
            if ((tmp = defaultValue.popData()).length() > 0) {
                XMLTool.createElement(doc, itemElement, "data", tmp);
            }

            // regexp validation
            String validation_type = validationType.popData();
            if ((tmp = regexp.popData()).length() > 0) {
                itemElement.setAttribute("validation", tmp);
                itemElement.setAttribute("validationtype", validation_type);
            }

            String label = itemElement.getAttribute("label");
            if (label.equals(formItems.getString("field_form_title", null))) {
                itemElement.setAttribute("title", "true");
            }

            if (label.equals(formItems.getString("field_form_fromname", null))) {
                itemElement.setAttribute("fromname", "true");
            }

            if (label.equals(formItems.getString("field_form_fromemail", null))) {
                itemElement.setAttribute("fromemail", "true");
            }
        }

        // fileattachment specific data:
        else if ("fileattachment".equals(type)) {
            String label = itemElement.getAttribute("label");
            if (label.equals(formItems.getString("field_form_title", null))) {
                itemElement.setAttribute("title", "true");
            }
        }

        // checkbox specific data:
        else if ("checkbox".equals(type)) {
            // default value
            if (defaultValue.popData().equals("checked")) {
                itemElement.setAttribute("default", "checked");
            }
        }

        // radiobuttons and dropdown specific data:
        else if ("radiobuttons".equals(type) || "dropdown".equals(type)) {
            // required
            itemElement.setAttribute("required", required.popData());

            Element dataElement = XMLTool.createElement(doc, itemElement, "data");
            int count = Integer.parseInt(valueCount.popData());
            int checkedIdx = Integer.parseInt(checkedIndex.popData());

            for (int j = 0; j < count; j++) {
                String val = value.popData();

                if (val.length() > 0) {
                    Element optionElement = XMLTool.createElement(doc, dataElement, "option");
                    optionElement.setAttribute("value", val);

                    if (j == checkedIdx) {
                        optionElement.setAttribute("default", "true");
                    }
                }
            }
        }

        // checkboxes specific data:
        else if ("checkboxes".equals(type)) {
            Element dataElement = XMLTool.createElement(doc, itemElement, "data");
            int count = Integer.parseInt(valueCount.popData());

            for (int j = 0; j < count; j++) {
                String val = value.popData();

                if (val.length() > 0) {
                    Element optionElement = XMLTool.createElement(doc, dataElement, "option");
                    optionElement.setAttribute("value", val);

                    tmp = defaultChk.popData();
                    if (tmp.equals("1")) {
                        optionElement.setAttribute("default", "true");
                    }
                } else {
                    defaultChk.popData();
                }

            }
        }

        // from email specific data:
        else if ("fromemail".equals(type)) {
            // default value
            if ((tmp = defaultValue.popData()).length() > 0) {
                XMLTool.createElement(doc, itemElement, "data", tmp);
            }

            // email validation
            itemElement.setAttribute("validation", "^.+@.+..+$");
            itemElement.setAttribute("validationtype", "email");

            String label = itemElement.getAttribute("label");
            if (label.equals(formItems.getString("field_form_title", null))) {
                itemElement.setAttribute("title", "true");
            }
        }

    }
    VerticalAdminLogger.debug(this.getClass(), 0, doc);
}