Search in sources :

Example 46 with Document

use of org.geotoolkit.sml.xml.v100.Document in project JMRI by JMRI.

the class StoreXmlVSDecoderAction method saveVSDecoderProfile.

public void saveVSDecoderProfile(java.io.File f) {
    try {
        Element root = new Element("VSDecoderConfig");
        Document doc = XmlFile.newDocument(root, XmlFile.getDefaultDtdLocation() + "vsdecoder-config.dtd");
        // add XSLT processing instruction
        // <?xml-stylesheet type="text/xsl" href="XSLT/throttle-layout-config.xsl"?>
        /*TODO   java.util.Map<String,String> m = new java.util.HashMap<String,String>();
             m.put("type", "text/xsl");
             m.put("href", jmri.jmrit.XmlFile.xsltLocation + "throttle-layout-config.xsl");
             ProcessingInstruction p = new ProcessingInstruction("xml-stylesheet", m);
             doc.addContent(0, p); */
        java.util.ArrayList<Element> children = new java.util.ArrayList<Element>(5);
        for (java.util.Iterator<VSDecoder> i = VSDecoderManager.instance().getVSDecoderList().iterator(); i.hasNext(); ) {
            VSDecoder vsd = i.next();
            children.add(vsd.getXml());
        }
        // Throttle-specific stuff below.  Kept for reference
        /*
             // throttle list window
             children.add(ThrottleFrameManager.instance().getThrottlesListPanel().getXml() );
     
             // throttle windows
             for (Iterator<ThrottleWindow> i = ThrottleFrameManager.instance().getThrottleWindows(); i.hasNext();) {
             ThrottleWindow tw = i.next();
             Element throttleElement = tw.getXml();
             children.add(throttleElement);
             }
             */
        // End Throttle-specific stuff.
        root.setContent(children);
        FileOutputStream o = new java.io.FileOutputStream(f);
        try {
            XMLOutputter fmt = new XMLOutputter();
            fmt.setFormat(Format.getPrettyFormat().setLineSeparator(System.getProperty("line.separator")).setTextMode(Format.TextMode.PRESERVE));
            fmt.output(doc, o);
        } catch (IOException ex) {
            log.warn("Exception in storing VSDecoder xml: " + ex);
        } finally {
            o.close();
        }
    } catch (FileNotFoundException ex) {
        log.warn("Exception in storing VSDecoder xml: " + ex);
    } catch (IOException ex) {
        log.warn("Exception in storing VSDecoder xml: " + ex);
    }
}
Also used : XMLOutputter(org.jdom2.output.XMLOutputter) Element(org.jdom2.Element) FileOutputStream(java.io.FileOutputStream) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException) Document(org.jdom2.Document)

Example 47 with Document

use of org.geotoolkit.sml.xml.v100.Document in project JMRI by JMRI.

the class XmlFile method processOneInstruction.

Document processOneInstruction(ProcessingInstruction p, Document doc) throws org.jdom2.transform.XSLTransformException, org.jdom2.JDOMException, java.io.IOException {
    log.trace("handling ", p);
    // check target
    String target = p.getTarget();
    if (!target.equals("transform-xslt")) {
        return doc;
    }
    String href = p.getPseudoAttributeValue("href");
    // we expect this to start with http://jmri.org/ and refer to the JMRI file tree
    if (!href.startsWith("http://jmri.org/")) {
        return doc;
    }
    href = href.substring(16);
    // if starts with 'xml/' we remove that; findFile will put it back
    if (href.startsWith("xml/")) {
        href = href.substring(4);
    }
    // read the XSLT transform into a Document to get XInclude done
    SAXBuilder builder = getBuilder(Validate.None);
    Document xdoc = builder.build(new BufferedInputStream(new FileInputStream(findFile(href))));
    org.jdom2.transform.XSLTransformer transformer = new org.jdom2.transform.XSLTransformer(xdoc);
    return transformer.transform(doc);
}
Also used : SAXBuilder(org.jdom2.input.SAXBuilder) BufferedInputStream(java.io.BufferedInputStream) Document(org.jdom2.Document) FileInputStream(java.io.FileInputStream)

Example 48 with Document

use of org.geotoolkit.sml.xml.v100.Document in project JMRI by JMRI.

the class XmlFile method getRoot.

/**
     * Get the root element from an XML document in a stream.
     *
     * @param stream input containing the XML document
     * @return the root element of the XML document
     * @throws org.jdom2.JDOMException if the XML document is invalid
     * @throws java.io.IOException     if the input cannot be read
     */
protected Element getRoot(InputStream stream) throws JDOMException, IOException {
    log.trace("getRoot from stream");
    SAXBuilder builder = getBuilder(getValidate());
    Document doc = builder.build(new BufferedInputStream(stream));
    // handle any process instructions
    doc = processInstructions(doc);
    // find root
    return doc.getRootElement();
}
Also used : SAXBuilder(org.jdom2.input.SAXBuilder) BufferedInputStream(java.io.BufferedInputStream) Document(org.jdom2.Document)

Example 49 with Document

use of org.geotoolkit.sml.xml.v100.Document in project JMRI by JMRI.

the class XmlFileValidateAction method processFile.

protected void processFile(File file) {
    if (log.isDebugEnabled()) {
        log.debug("located file " + file + " for XML processing");
    }
    // handle the file (later should be outside this thread?)
    try {
        xmlfile.setValidate(XmlFile.Validate.CheckDtdThenSchema);
        readFile(file);
    } catch (Exception ex) {
        // because of XInclude, we're doing this
        // again to validate the entire file
        // without losing the error message
        Document doc;
        try {
            InputStream stream = new BufferedInputStream(new FileInputStream(file));
            SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", false);
            builder.setEntityResolver(new jmri.util.JmriLocalEntityResolver());
            builder.setFeature("http://apache.org/xml/features/xinclude", true);
            builder.setFeature("http://apache.org/xml/features/xinclude/fixup-base-uris", false);
            builder.setFeature("http://apache.org/xml/features/validation/schema", false);
            builder.setFeature("http://apache.org/xml/features/validation/schema-full-checking", false);
            builder.setFeature("http://xml.org/sax/features/namespaces", true);
            doc = builder.build(new BufferedInputStream(stream));
        } catch (JDOMException | IOException ex2) {
            showFailResults(_who, "Err(1): " + ex2);
            return;
        }
        XMLOutputter outputter = new XMLOutputter();
        outputter.setFormat(Format.getPrettyFormat().setLineSeparator(System.getProperty("line.separator")).setTextMode(Format.TextMode.PRESERVE));
        StringWriter out = new StringWriter();
        try {
            outputter.output(doc, out);
        } catch (IOException ex2) {
            showFailResults(_who, "Err(4): " + ex2);
            return;
        }
        StringReader input = new StringReader(new String(out.getBuffer()));
        SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
        builder.setEntityResolver(new jmri.util.JmriLocalEntityResolver());
        builder.setFeature("http://apache.org/xml/features/xinclude", true);
        builder.setFeature("http://apache.org/xml/features/xinclude/fixup-base-uris", false);
        builder.setFeature("http://apache.org/xml/features/validation/schema", true);
        builder.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
        builder.setFeature("http://xml.org/sax/features/namespaces", true);
        try {
            builder.build(input).getRootElement();
        } catch (JDOMException | IOException ex2) {
            showFailResults(_who, "Err(2): " + ex2);
            return;
        }
        showFailResults(_who, "Err(3): " + ex);
        return;
    }
    showOkResults(_who, "OK");
    if (log.isDebugEnabled()) {
        log.debug("parsing complete");
    }
}
Also used : XMLOutputter(org.jdom2.output.XMLOutputter) SAXBuilder(org.jdom2.input.SAXBuilder) BufferedInputStream(java.io.BufferedInputStream) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) IOException(java.io.IOException) Document(org.jdom2.Document) IOException(java.io.IOException) JDOMException(org.jdom2.JDOMException) FileInputStream(java.io.FileInputStream) StringWriter(java.io.StringWriter) BufferedInputStream(java.io.BufferedInputStream) StringReader(java.io.StringReader)

Example 50 with Document

use of org.geotoolkit.sml.xml.v100.Document in project JMRI by JMRI.

the class XmlFile method getRoot.

/**
     * Get the root element from an XML document in a Reader.
     *
     * Runs through a BufferedReader for increased performance.
     *
     *
     * @param verifySchema true if the XML document should be validated against
     *                     its schema
     * @param verifyDTD    true if the XML document should be validated against
     *                     its DTD
     * @param reader       input containing the XML document
     * @return the root element of the XML document
     * @throws org.jdom2.JDOMException if the XML document is invalid
     * @throws java.io.IOException     if the input cannot be read
     * @since 3.1.5
     * @deprecated 4.7.2 use setVerifySchema, setVerifyDTD methods
     */
@Deprecated
protected Element getRoot(boolean verifySchema, boolean verifyDTD, InputStreamReader reader) throws JDOMException, IOException {
    warnDeprecated();
    log.trace("getRoot from reader with encoding {}", reader.getEncoding());
    // argument controls validation
    SAXBuilder builder = getBuilder(getValidate());
    Document doc = builder.build(new BufferedReader(reader));
    // handle any process instructions
    doc = processInstructions(doc);
    // find root
    return doc.getRootElement();
}
Also used : SAXBuilder(org.jdom2.input.SAXBuilder) BufferedReader(java.io.BufferedReader) Document(org.jdom2.Document)

Aggregations

Document (org.jdom2.Document)882 Element (org.jdom2.Element)491 Test (org.junit.Test)320 IOException (java.io.IOException)211 SAXBuilder (org.jdom2.input.SAXBuilder)207 XMLOutputter (org.jdom2.output.XMLOutputter)144 File (java.io.File)131 JDOMException (org.jdom2.JDOMException)120 InputStream (java.io.InputStream)61 DocumentHelper.getDocument (com.mulesoft.tools.migration.helper.DocumentHelper.getDocument)53 DocumentHelper.getElementsFromDocument (com.mulesoft.tools.migration.helper.DocumentHelper.getElementsFromDocument)53 ArrayList (java.util.ArrayList)52 MCRJDOMContent (org.mycore.common.content.MCRJDOMContent)48 PID (edu.unc.lib.boxc.model.api.ids.PID)47 Path (java.nio.file.Path)46 HashMap (java.util.HashMap)46 List (java.util.List)36 Attribute (org.jdom2.Attribute)35 Document (com.google.cloud.language.v1.Document)34 MCRObjectID (org.mycore.datamodel.metadata.MCRObjectID)34