Example usage for org.xml.sax XMLReader setEntityResolver

List of usage examples for org.xml.sax XMLReader setEntityResolver

Introduction

In this page you can find the example usage for org.xml.sax XMLReader setEntityResolver.

Prototype

public void setEntityResolver(EntityResolver resolver);

Source Link

Document

Allow an application to register an entity resolver.

Usage

From source file:nl.b3p.kaartenbalie.service.ImageCollector.java

/** 
 *
 * @param byteStream InputStream object in which the serviceexception is stored.
 *
 * @ return String with the given exception
 *
 * @throws IOException, SAXException// w  w  w  .j  a  v a2 s .co  m
 */
private static String getServiceException(InputStream byteStream) throws IOException, SAXException {
    Switcher s = new Switcher();
    s.setElementHandler("ServiceException", new ServiceExceptionHandler());

    XMLReader reader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader();

    IgnoreEntityResolver r = new IgnoreEntityResolver();
    reader.setEntityResolver(r);

    reader.setContentHandler(s);
    InputSource is = new InputSource(byteStream);
    is.setEncoding(KBConfiguration.CHARSET);
    reader.parse(is);
    return (String) stack.pop();
}

From source file:XMLUtilities.java

/**
 * Convenience method for parsing an XML file. This method will
 * wrap the resource in an InputSource and set the source's
 * systemId to "jedit.jar" (so the source should be able to
 * handle any external entities by itself).
 *
 * <p>SAX Errors are caught and are not propagated to the caller;
 * instead, an error message is printed to jEdit's activity
 * log. So, if you need custom error handling, <b>do not use
 * this method</b>.//  w ww.  ja v a  2s  . c  o m
 *
 * <p>The given stream is closed before the method returns,
 * regardless whether there were errors or not.</p>
 *
 * @return true if any error occured during parsing, false if success.
 */
public static boolean parseXML(InputStream in, DefaultHandler handler) throws IOException {
    try {
        XMLReader parser = XMLReaderFactory.createXMLReader();
        InputSource isrc = new InputSource(new BufferedInputStream(in));
        isrc.setSystemId("jedit.jar");
        parser.setContentHandler(handler);
        parser.setDTDHandler(handler);
        parser.setEntityResolver(handler);
        parser.setErrorHandler(handler);
        parser.parse(isrc);
    } catch (SAXParseException se) {
        int line = se.getLineNumber();
        return true;
    } catch (SAXException e) {
        return true;
    } finally {
        try {
            if (in != null)
                in.close();
        } catch (IOException io) {
        }
    }
    return false;
}

From source file:mx.itesm.mexadl.metrics.util.Util.java

/**
 * Transform a logging report from XML to HTML format.
 * /*from   w  w  w. ja v  a2 s .  c  om*/
 * @param xmlFile
 * @param xsltFile
 * @param outputFile
 * @param componentTypes
 * @throws TransformerException
 * @throws SAXException
 * @throws IOException
 */
public static void transformXMLReport2Html(final File xmlFile, final InputStream xsltFile,
        final File outputFile, final Map<String, String> componentTypes)
        throws TransformerException, SAXException, IOException {
    Source xmlSource;
    Source xsltSource;
    Result outputTarget;
    XMLReader xmlReader;
    String reportContents;
    Transformer transformer;

    // Blank reader
    xmlReader = XMLReaderFactory.createXMLReader();
    xmlReader.setEntityResolver(new EntityResolver() {

        @Override
        public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
            if (systemId.endsWith(".dtd")) {
                StringReader stringInput = new StringReader(" ");
                return new InputSource(stringInput);
            } else {
                return null; // use default behavior
            }
        }
    });

    xmlSource = new SAXSource(xmlReader, new InputSource(new FileInputStream(xmlFile)));
    xsltSource = new StreamSource(xsltFile);
    outputTarget = new StreamResult(outputFile);

    // Generate output file
    transformer = transformerFactory.newTransformer(xsltSource);
    transformer.transform(xmlSource, outputTarget);

    // Add components type information
    reportContents = FileUtils.readFileToString(outputFile, "UTF-8");
    for (String componentType : componentTypes.keySet()) {
        reportContents = reportContents.replace("[ " + componentType + " ]", componentTypes.get(componentType));
    }
    FileUtils.writeStringToFile(outputFile, reportContents);
}

From source file:architecture.common.model.factory.ModelTypeFactory.java

private static List<ModelList> parseLegacyXmlFile(List<ModelList> list) throws Exception {
    ClassLoader cl = Thread.currentThread().getContextClassLoader();
    Enumeration<URL> enumeration = cl.getResources(IF_PLUGIN_PATH);
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setNamespaceAware(true);//  w ww .j  a va2 s .co m
    XMLReader xmlreader = factory.newSAXParser().getXMLReader();
    ImplFactoryParsingHandler handler = new ImplFactoryParsingHandler();
    xmlreader.setContentHandler(handler);
    xmlreader.setDTDHandler(handler);
    xmlreader.setEntityResolver(handler);
    xmlreader.setErrorHandler(handler);
    System.out.println("Model Enum:");
    do {
        if (!enumeration.hasMoreElements())
            break;
        URL url = (URL) enumeration.nextElement();
        System.out.println(" - " + url);
        try {
            xmlreader.parse(new InputSource(url.openStream()));
            ModelList factorylist = new ModelList();
            factorylist.rank = handler.rank;
            factorylist.modelTypes.addAll(handler.getModels());
            list.add(factorylist);
        } catch (Exception exception) {
        }
    } while (true);

    return list;
}

From source file:org.solmix.runtime.support.spring.TunedDocumentLoader.java

@Override
public Document loadDocument(InputSource inputSource, EntityResolver entityResolver, ErrorHandler errorHandler,
        int validationMode, boolean namespaceAware) throws Exception {
    if (validationMode == XmlBeanDefinitionReader.VALIDATION_NONE) {
        SAXParserFactory parserFactory = namespaceAware ? nsasaxParserFactory : saxParserFactory;
        SAXParser parser = parserFactory.newSAXParser();
        XMLReader reader = parser.getXMLReader();
        reader.setEntityResolver(entityResolver);
        reader.setErrorHandler(errorHandler);
        //            SAXSource saxSource = new SAXSource(reader, inputSource);
        //            W3CDOMStreamWriter writer = new W3CDOMStreaXMLStreamWriterImplmWriter();
        //            StaxUtils.copy(saxSource, writer);
        //            return writer.getDocument();
        return null;
    } else {/*from ww w . j  ava 2s.  c  om*/
        return super.loadDocument(inputSource, entityResolver, errorHandler, validationMode, namespaceAware);
    }
}

From source file:org.callimachusproject.xml.XdmNodeFactory.java

private XdmNode parse(InputSource isource) throws SAXException {
    // Make sure the builder uses our entity resolver
    XMLReader reader = XMLReaderFactory.createXMLReader();
    reader.setEntityResolver(xmlResolver);
    SAXSource source = new SAXSource(reader, isource);
    if (isource.getSystemId() != null) {
        source.setSystemId(isource.getSystemId());
    }/*from ww w.ja va 2  s  .c  o m*/
    return parse(source);
}

From source file:de.tbuchloh.kiskis.persistence.exporter.XMLTransformer.java

/**
 * @param stylesheet/*from  ww  w  . j ava 2s. c o m*/
 *            is the stylesheet to use.
 * @param is
 *            is the input source.
 * @param os
 *            is the output sink.
 */
public void transform(final URL stylesheet, final InputStream is, final OutputStream os)
        throws TransformException {
    try {
        LOG.debug("transforming with stylesheet=" + stylesheet);

        final XMLReader reader = XMLReaderFactory.createXMLReader();
        reader.setEntityResolver(new EntityResolver() {
            @Override
            public InputSource resolveEntity(final String publicId, final String systemId)
                    throws SAXException, IOException {
                if (systemId == null) {
                    throw new IllegalArgumentException("systemId must not be null!");
                }
                final int pos = systemId.lastIndexOf(File.separator);
                String resource = systemId;
                if (pos >= 0) {
                    resource = resource.substring(pos + 1);
                }
                final URL dtd = ClassLoader.getSystemResource(resource);

                LOG.debug("Resolving " + "systemId=" + systemId + ", resource=" + resource + ", dtd=" + dtd);

                return new InputSource(dtd.openStream());
            }
        });
        try {
            final Builder builder = new Builder(reader, false);
            final Document s = builder.build(stylesheet.openStream());

            final Document source = builder.build(is);

            final XSLTransform transform = new XSLTransform(s);
            final Document target = XSLTransform.toDocument(transform.transform(source));

            final Serializer ser = new Serializer(os);
            ser.setIndent(2);
            ser.write(target);
        } catch (final Exception e) {
            LOG.error(e, e);
            throw new XMLException(e.getMessage());
        }
    } catch (final Exception e) {
        throw new TransformException(e.getMessage(), e);
    }
}

From source file:com.sap.prd.mobile.ios.mios.xcodeprojreader.jaxb.JAXBPlistParser.java

private SAXSource createSAXSource(InputSource project, final InputSource dtd)
        throws SAXException, ParserConfigurationException {
    XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
    xmlReader.setEntityResolver(new EntityResolver() {
        @Override//from   w w  w.  j  a v a  2  s.co m
        public InputSource resolveEntity(String pid, String sid) throws SAXException {
            if (sid.equals("http://www.apple.com/DTDs/PropertyList-1.0.dtd"))
                return dtd;
            throw new SAXException("unable to resolve remote entity, sid = " + sid);
        }
    });
    SAXSource ss = new SAXSource(xmlReader, project);
    return ss;
}

From source file:com.wudaosoft.net.httpclient.SAXSourceResponseHandler.java

private SAXSource readSAXSource(InputStream body) throws IOException {
    try {//from www . ja va2s .  c om
        XMLReader reader = XMLReaderFactory.createXMLReader();
        reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
        reader.setFeature("http://xml.org/sax/features/external-general-entities", false);
        reader.setEntityResolver(NO_OP_ENTITY_RESOLVER);
        return new SAXSource(reader, new InputSource(body));
    } catch (SAXException ex) {
        throw new ClientProtocolException("Could not parse document: " + ex.getMessage(), ex);
    }
}

From source file:com.xpn.xwiki.internal.pdf.XHTML2FOTest.java

private String getTransformedXML(String xml) throws Exception {
    InputStream xslt = getClass().getClassLoader().getResourceAsStream("xhtml2fo.xsl");
    assertNotNull(xslt);/*from ww  w .j  a  va 2 s  . c o m*/

    XMLReaderFactory xmlReaderFactory = this.oldcore.getMocker().getInstance(XMLReaderFactory.class);
    XMLReader xmlReader = xmlReaderFactory.createXMLReader();
    EntityResolver entityResolver = this.oldcore.getMocker().getInstance(EntityResolver.class);
    xmlReader.setEntityResolver(entityResolver);
    SAXSource xmlSource = new SAXSource(xmlReader, new InputSource(new StringReader(xml)));
    SAXSource xsltSource = new SAXSource(xmlReader, new InputSource(xslt));

    String transformedXML = XMLUtils.transform(xmlSource, xsltSource);

    validateFOP(transformedXML);

    return transformedXML;
}