Example usage for org.jdom2.input SAXBuilder setXMLReaderFactory

List of usage examples for org.jdom2.input SAXBuilder setXMLReaderFactory

Introduction

In this page you can find the example usage for org.jdom2.input SAXBuilder setXMLReaderFactory.

Prototype

public void setXMLReaderFactory(final XMLReaderJDOMFactory rfac) 

Source Link

Document

Set the current XMLReader factory.

Usage

From source file:cz.muni.fi.mir.mathmlcanonicalization.Settings.java

License:Apache License

/**
 * Sets properties desired for MathML normalization purpose
 *
 * @return initialized SAXBuilder instance
 *///from   w  ww. jav  a 2s . co  m
public static SAXBuilder setupSAXBuilder() {
    final SAXBuilder builder = new SAXBuilder();
    builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    builder.setFeature("http://xml.org/sax/features/validation", false);
    //builder.setFeature("http://xml.org/sax/features/external-general-entities", true);
    builder.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", true);
    builder.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", true);
    builder.setEntityResolver(new EntityResolver() {
        @Override
        public InputSource resolveEntity(String publicId, String systemId) {
            if (systemId.endsWith("dtd")) {
                String dtdLocation = Settings.getProperty(Settings.MATHMLDTD);
                return new InputSource(Settings.class.getResourceAsStream(dtdLocation));
            }
            return null;
        }
    });

    return builder;
}

From source file:org.artifactory.util.XmlUtils.java

License:Open Source License

public static SAXBuilder createSaxBuilder() {
    SAXBuilder sb = new SAXBuilder();
    // don't validate and don't load dtd
    sb.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    sb.setFeature("http://xml.org/sax/features/validation", false);
    sb.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
    sb.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
    // JNLP needs DOCTYPE
    //sb.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
    sb.setFeature("http://xml.org/sax/features/external-general-entities", false);
    sb.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
    return sb;/*w  w  w. j  av a  2  s . co  m*/
}

From source file:org.jumpmind.metl.core.runtime.component.XmlFormatter.java

License:Open Source License

private Document getTemplateDoc() {

    Document templateDoc = null;/*w w  w. java2s  . com*/

    SAXBuilder builder = new SAXBuilder();
    builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    builder.setFeature("http://xml.org/sax/features/validation", false);
    try {
        templateDoc = builder.build(new StringReader(resolveFlowParams(template)));
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }

    return templateDoc;
}

From source file:org.jumpmind.metl.core.runtime.component.XmlParser.java

License:Open Source License

@SuppressWarnings("unchecked")
protected void handleUsingXPath(Message inputMessage, ISendMessageCallback callback,
        boolean unitOfWorkBoundaryReached) {
    ArrayList<String> inputRows = ((TextMessage) inputMessage).getPayload();
    ArrayList<EntityData> payload = new ArrayList<EntityData>();
    if (inputRows != null) {
        for (String xml : inputRows) {
            SAXBuilder builder = new SAXBuilder();
            builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
            builder.setFeature("http://xml.org/sax/features/validation", false);
            try {
                Document document = builder.build(new StringReader(xml));
                removeNamespaces(document);
                for (XmlFormatterEntitySetting entitySetting : entitySettings) {
                    List<XmlFormatterAttributeSetting> attributeSettings = entitySetting.getAttributeSettings();
                    List<Element> entityMatches = (List<Element>) entitySetting.getExpression()
                            .evaluate(document.getRootElement());
                    for (Element element : entityMatches) {
                        String text = toXML(element);
                        Document childDocument = builder
                                .build(new ByteArrayInputStream(text.getBytes(Charset.forName("utf-8"))));
                        getComponentStatistics().incrementNumberEntitiesProcessed(threadNumber);
                        EntityData data = new EntityData();
                        for (XmlFormatterAttributeSetting attributeSetting : attributeSettings) {
                            boolean resultsFound = false;
                            Element targetElement = element;
                            Document targetDocument = childDocument;
                            do {
                                List<Object> attributeMatches = (List<Object>) attributeSetting.getExpression()
                                        .evaluate(targetDocument);
                                for (Object object : attributeMatches) {
                                    resultsFound = true;
                                    if (object instanceof Attribute) {
                                        data.put(attributeSetting.getSetting().getAttributeId(),
                                                ((Attribute) object).getValue());
                                    } else if (object instanceof Content) {
                                        data.put(attributeSetting.getSetting().getAttributeId(),
                                                ((Content) object).getValue());
                                    } else if (object instanceof Element) {
                                        data.put(attributeSetting.getSetting().getAttributeId(),
                                                ((Element) object).getTextTrim());
                                    }//w  w  w  .  ja  va 2s  .c  om
                                }

                                if (!resultsFound
                                        && !attributeSetting.getExpression().getExpression()
                                                .startsWith("/" + element.getName())
                                        && targetElement.getParentElement() != null) {
                                    targetElement = targetElement.getParentElement();
                                    targetDocument = builder.build(new ByteArrayInputStream(
                                            toXML(targetElement).getBytes(Charset.forName("utf-8"))));
                                } else if (!resultsFound) {
                                    info("Did not find a match for: %s\n in:\n %s",
                                            attributeSetting.getExpression().getExpression(), text);
                                    targetDocument = null;
                                    targetElement = null;
                                }
                            } while (!resultsFound && targetElement != null);
                        }
                        if (data.size() > 0) {
                            payload.add(data);
                        } else {
                            log(LogLevel.WARN,
                                    "Found entity element: <%s/> with no matching attributes.  Please make sure your xpath expressions match",
                                    element.getName());
                        }
                    }
                }

                if (payload.size() > rowsPerMessage) {
                    callback.sendEntityDataMessage(null, payload);
                    payload = new ArrayList<>();
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }

    if (payload.size() > 0) {
        callback.sendEntityDataMessage(null, payload);
    }

}

From source file:org.jumpmind.metl.core.runtime.component.XsltProcessor.java

License:Open Source License

public static String getTransformedXml(String inputXml, String stylesheetXml, String xmlFormat,
        boolean omitXmlDeclaration) {
    StringWriter writer = new StringWriter();
    SAXBuilder builder = new SAXBuilder();
    builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    builder.setFeature("http://xml.org/sax/features/validation", false);
    try {/*from   w  w  w  .  j ava  2  s  .c  o  m*/
        Document inputDoc = builder.build(new StringReader(inputXml));
        StringReader reader = new StringReader(stylesheetXml);
        XSLTransformer transformer = new XSLTransformer(reader);
        Document outputDoc = transformer.transform(inputDoc);
        XMLOutputter xmlOutput = new XMLOutputter();
        Format format = null;
        if (xmlFormat.equals(COMPACT_FORMAT)) {
            format = Format.getCompactFormat();
        } else if (xmlFormat.equals(RAW_FORMAT)) {
            format = Format.getRawFormat();
        } else {
            format = Format.getPrettyFormat();
        }

        format.setOmitDeclaration(omitXmlDeclaration);
        xmlOutput.setFormat(format);
        xmlOutput.output(outputDoc, writer);
        writer.close();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    return writer.toString();
}

From source file:org.jumpmind.metl.ui.views.design.EditXmlFormatPanel.java

License:Open Source License

protected void buildXpathChoices() {
    SAXBuilder builder = new SAXBuilder();
    builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    builder.setFeature("http://xml.org/sax/features/validation", false);
    Setting setting = component.findSetting(XmlFormatter.XML_FORMATTER_TEMPLATE);
    if (StringUtils.isNotBlank(setting.getValue())) {
        try {//from   ww  w  . ja  v a2s .  c  o m
            Document document = builder.build(new StringReader(setting.getValue()));
            xpathChoices = new HashSet<String>();
            buildXpathChoicesFromElement("/" + document.getRootElement().getName(), document.getRootElement());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

From source file:org.jumpmind.metl.ui.views.design.EditXmlParserPanel.java

License:Open Source License

protected void buildXpathChoices() {
    xpathChoices = new ArrayList<>();
    SAXBuilder builder = new SAXBuilder();
    builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    builder.setFeature("http://xml.org/sax/features/validation", false);
    Setting setting = component.findSetting(XmlFormatter.XML_FORMATTER_TEMPLATE);
    if (StringUtils.isNotBlank(setting.getValue())) {
        try {/*from   w  w w  . j av  a 2s .  c o m*/
            Document document = builder.build(new StringReader(setting.getValue()));
            buildXpathChoicesForElement("", document.getRootElement());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

From source file:org.jumpmind.metl.ui.views.design.ImportXmlTemplateWindow.java

License:Open Source License

protected void importXml(String text) {
    SAXBuilder builder = new SAXBuilder();
    builder.setXMLReaderFactory(XMLReaders.NONVALIDATING);
    builder.setFeature("http://xml.org/sax/features/validation", false);
    try {//  w w w.  ja v a2s  .  c om
        Document document = builder.build(new StringReader(text));
        String rootName = document.getRootElement().getName();
        if (rootName.equals("definitions")) {
            importFromWsdl(text);
        } else if (rootName.equals("schema")) {
            importFromXsd(text);
        } else {
            Notification note = new Notification("Unrecognized Content", "The XML file has a root element of "
                    + rootName + ", but expected \"definitions\" for WSDL or \"schema\" for XSD.");
            note.show(Page.getCurrent());
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}