Example usage for org.xml.sax XMLReader parse

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

Introduction

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

Prototype

public void parse(String systemId) throws IOException, SAXException;

Source Link

Document

Parse an XML document from a system identifier (URI).

Usage

From source file:org.pentaho.reporting.engine.classic.extensions.datasources.cda.CdaResponseParser.java

public static TypedTableModel performParse(final InputStream postResult)
        throws IOException, ReportDataFactoryException {
    try {/*w w w  .j av a 2  s  . c om*/
        final CdaResponseParser contentHandler = new CdaResponseParser();
        final SAXParserFactory factory = SAXParserFactory.newInstance();
        final SAXParser parser = factory.newSAXParser();
        final XMLReader reader = parser.getXMLReader();

        try {
            reader.setFeature("http://xml.org/sax/features/xmlns-uris", false);
        } catch (SAXException e) {
            // ignored
        }
        try {
            reader.setFeature("http://xml.org/sax/features/namespaces", false);
            reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
        } catch (final SAXException e) {
            logger.warn("No Namespace features will be available. (Yes, this is serious)", e);
        }

        reader.setContentHandler(contentHandler);
        reader.parse(new InputSource(postResult));

        return (contentHandler.getResult());
    } catch (final ParserConfigurationException e) {
        throw new ReportDataFactoryException("Failed to init XML system", e);
    } catch (final SAXException e) {
        throw new ReportDataFactoryException("Failed to parse document", e);
    }
}

From source file:org.pentaho.reporting.libraries.pensol.vfs.XmlSolutionFileModel.java

protected FileInfo performParse(final InputStream postResult) throws IOException {
    ArgumentNullException.validate("postResult", postResult);

    try {/*w  ww. ja  v a 2  s.  c  o  m*/
        final FileInfoParser contentHandler = new FileInfoParser();
        final SAXParserFactory factory = SAXParserFactory.newInstance();
        final SAXParser parser = factory.newSAXParser();
        final XMLReader reader = parser.getXMLReader();

        try {
            reader.setFeature("http://xml.org/sax/features/xmlns-uris", false);
        } catch (SAXException e) {
            // ignored
        }
        try {
            reader.setFeature("http://xml.org/sax/features/namespaces", false);
            reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
        } catch (final SAXException e) {
            logger.warn("No Namespace features will be available. (Yes, this is serious)", e);
        }

        reader.setContentHandler(contentHandler);
        reader.parse(new InputSource(postResult));

        majorVersion = contentHandler.getMajorVersion();
        minorVersion = contentHandler.getMinorVersion();
        releaseVersion = contentHandler.getReleaseVersion();
        buildVersion = contentHandler.getBuildVersion();
        milestoneVersion = contentHandler.getMilestoneVersion();

        return (contentHandler.getRoot());
    } catch (final ParserConfigurationException e) {
        throw new FileSystemException("Failed to init XML system", e);
    } catch (final SAXException e) {
        throw new FileSystemException("Failed to parse document", e);
    }
}

From source file:org.pentaho.reporting.libraries.xmlns.parser.AbstractXmlResourceFactory.java

/**
 * Creates a resource by interpreting the data given in the resource-data object. If additional datastreams need to be
 * parsed, the provided resource manager should be used. This method parses the given resource-data as XML stream.
 *
 * @param manager the resource manager used for all resource loading.
 * @param data    the resource-data from where the binary data is read.
 * @param context the resource context used to resolve relative resource paths.
 * @return the parsed result, never null.
 * @throws ResourceCreationException if the resource could not be parsed due to syntaxctial or logical errors in the
 *                                   data.
 * @throws ResourceLoadingException  if the resource could not be accessed from the physical storage.
 *//*from   w w w . ja  v a 2 s  . c  o  m*/
public Resource create(final ResourceManager manager, final ResourceData data, final ResourceKey context)
        throws ResourceCreationException, ResourceLoadingException {
    try {
        final SAXParser parser = getParser();

        final XMLReader reader = parser.getXMLReader();
        final XmlFactoryModule[] rootHandlers = getModules();
        if (rootHandlers.length == 0) {
            throw new ResourceCreationException(
                    "There are no root-handlers registered for the factory for type " + getFactoryType());
        }

        final ResourceDataInputSource input = new ResourceDataInputSource(data, manager);

        final ResourceKey contextKey;
        final long version;
        final ResourceKey targetKey = data.getKey();
        if (context == null) {
            contextKey = targetKey;
            version = data.getVersion(manager);
        } else {
            contextKey = context;
            version = -1;
        }

        final RootXmlReadHandler handler = createRootHandler(manager, targetKey, rootHandlers, contextKey,
                version);

        final DefaultConfiguration parserConfiguration = handler.getParserConfiguration();
        final URL value = manager.toURL(contextKey);
        if (value != null) {
            parserConfiguration.setConfigProperty(CONTENTBASE_KEY, value.toExternalForm());
        }

        configureReader(reader, handler);
        reader.setContentHandler(handler);
        reader.setDTDHandler(handler);
        reader.setEntityResolver(handler.getEntityResolver());
        reader.setErrorHandler(getErrorHandler());

        final Map parameters = targetKey.getFactoryParameters();
        final Iterator it = parameters.keySet().iterator();
        while (it.hasNext()) {
            final Object o = it.next();
            if (o instanceof FactoryParameterKey) {
                final FactoryParameterKey fpk = (FactoryParameterKey) o;
                handler.setHelperObject(fpk.getName(), parameters.get(fpk));
            }
        }

        reader.parse(input);

        final Object createdProduct = finishResult(handler.getResult(), manager, data, contextKey);
        handler.getDependencyCollector().add(targetKey, data.getVersion(manager));
        return createResource(targetKey, handler, createdProduct, getFactoryType());
    } catch (ParserConfigurationException e) {
        throw new ResourceCreationException("Unable to initialize the XML-Parser", e);
    } catch (SAXException e) {
        throw new ResourceCreationException("Unable to parse the document: " + data.getKey(), e);
    } catch (IOException e) {
        throw new ResourceLoadingException("Unable to read the stream from document: " + data.getKey(), e);
    }
}

From source file:org.pentaho.reporting.libraries.xmlns.parser.AbstractXmlResourceFactory.java

/**
 * A method to allow to invoke the parsing without accessing the LibLoader layer. The data to be parsed is held in the
 * given InputSource object.//from w w w.j ava 2s.  com
 *
 * @param manager    the resource manager used for all resource loading.
 * @param input      the raw-data given as SAX-InputSource.
 * @param context    the resource context used to resolve relative resource paths.
 * @param parameters the parse parameters.
 * @return the parsed result, never null.
 * @throws ResourceCreationException    if the resource could not be parsed due to syntaxctial or logical errors in
 *                                      the data.
 * @throws ResourceLoadingException     if the resource could not be accessed from the physical storage.
 * @throws ResourceKeyCreationException if creating the context key failed.
 */
public Object parseDirectly(final ResourceManager manager, final InputSource input, final ResourceKey context,
        final Map parameters)
        throws ResourceKeyCreationException, ResourceCreationException, ResourceLoadingException {
    try {
        final SAXParser parser = getParser();

        final XMLReader reader = parser.getXMLReader();

        final ResourceKey targetKey = manager.createKey(EMPTY_DATA);
        final ResourceKey contextKey;
        if (context == null) {
            contextKey = targetKey;
        } else {
            contextKey = context;
        }

        final XmlFactoryModule[] rootHandlers = getModules();
        final RootXmlReadHandler handler = createRootHandler(manager, targetKey, rootHandlers, contextKey, -1);

        final DefaultConfiguration parserConfiguration = handler.getParserConfiguration();
        final URL value = manager.toURL(contextKey);
        if (value != null) {
            parserConfiguration.setConfigProperty(CONTENTBASE_KEY, value.toExternalForm());
        }

        configureReader(reader, handler);
        reader.setContentHandler(handler);
        reader.setDTDHandler(handler);
        reader.setEntityResolver(handler.getEntityResolver());
        reader.setErrorHandler(getErrorHandler());

        final Iterator it = parameters.keySet().iterator();
        while (it.hasNext()) {
            final Object o = it.next();
            if (o instanceof FactoryParameterKey) {
                final FactoryParameterKey fpk = (FactoryParameterKey) o;
                handler.setHelperObject(fpk.getName(), parameters.get(fpk));
            }
        }

        reader.parse(input);

        return finishResult(handler.getResult(), manager, new RawResourceData(targetKey), contextKey);
    } catch (ParserConfigurationException e) {
        throw new ResourceCreationException("Unable to initialize the XML-Parser", e);
    } catch (SAXException e) {
        throw new ResourceCreationException("Unable to parse the document", e);
    } catch (IOException e) {
        throw new ResourceLoadingException("Unable to read the stream", e);
    }

}

From source file:org.plasma.sdo.helper.PlasmaXMLHelper.java

private void validateSAX(InputStream inputStream, String locationURI, XMLOptions options) throws IOException {

    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);/*www.  ja  v  a 2s.  c o m*/
    factory.setNamespaceAware(true);
    SAXParser parser;

    try {
        factory.setFeature("http://xml.org/sax/features/validation", true);
        factory.setFeature("http://apache.org/xml/features/validation/schema", true);
        factory.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
        parser = factory.newSAXParser();
        try {
            parser.setProperty(XMLConstants.JAXP_SCHEMA_LANGUAGE, SchemaConstants.XMLSCHEMA_NAMESPACE_URI);
        } catch (SAXNotRecognizedException e) {
            log.warn("parses does not support JAXP 1.2");
        }
        if (locationURI != null) {
            parser.setProperty(XMLConstants.JAXP_NO_NAMESPACE_SCHEMA_SOURCE, locationURI);
        }
        XMLReader xmlReader = parser.getXMLReader();
        //xmlReader.setEntityResolver(new SchemaLoader());
        if (options.getErrorHandler() == null)
            xmlReader.setErrorHandler(new DefaultErrorHandler(options));
        else
            xmlReader.setErrorHandler(options.getErrorHandler());
        if (log.isDebugEnabled())
            log.debug("validating...");
        xmlReader.parse(new InputSource(inputStream));

    } catch (SAXNotRecognizedException e) {
        throw new PlasmaDataObjectException(e);
    } catch (SAXNotSupportedException e) {
        throw new PlasmaDataObjectException(e);
    } catch (ParserConfigurationException e) {
        throw new PlasmaDataObjectException(e);
    } catch (SAXException e) {
        throw new PlasmaDataObjectException(e);
    }
}

From source file:org.pwsafe.passwordsafeswt.xml.XMLDataParser.java

/**
 * @see au.gov.centrelink.itsecurity.tokenservice.saml.SubjectConfirmationDataParser#parse(java.lang.String)
 *//*from   w w w.  j  a  v a 2  s. c o m*/
public PwsEntryBean[] parse(String incomingXMLString) {

    PwsEntryBean[] entries = null;

    try {
        XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();

        XMLDataParserHandler xmlHandler = new XMLDataParserHandler();

        xmlReader.setContentHandler(xmlHandler);
        InputSource is = new InputSource(new StringReader(incomingXMLString));
        xmlReader.parse(is);
        entries = (PwsEntryBean[]) xmlHandler.entryList.toArray(new PwsEntryBean[0]);
    } catch (Exception e) {
        // Almost certainly related issues parsing the XML.
        throw new RuntimeException(e);
    }
    return entries;
}

From source file:org.radeox.filter.XHTMLFilter.java

public String filter(String input, FilterContext context) {
    String finalOutput = input;//from   www  . java 2  s . co  m
    try {
        DeblockFilter dbf = new DeblockFilter();
        EmptyFilter epf = new EmptyFilter();

        dbf.setBlockElements(blockElements);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        SpecialXHTMLSerializer xser = new SpecialXHTMLSerializer();
        xser.setOutputStream(baos);
        xser.setIndent(false);
        xser.setEncoding("UTF-8");
        xser.setIndentAmount(4);
        dbf.setContentHandler(epf);
        epf.setContentHander(xser.asContentHandler());

        SAXParser parser = saxParserFactory.newSAXParser();

        XMLReader xmlr = parser.getXMLReader();

        xmlr.setContentHandler(dbf);
        // log.warn("Input is "+input);
        xmlr.parse(new InputSource(new StringReader("<sr>" + input + "</sr>")));

        String output = new String(baos.toByteArray(), "UTF-8");
        int startBlock = output.indexOf("<sr>");
        int endBlock = output.indexOf("</sr>");
        finalOutput = output.substring(startBlock + 4, endBlock);
        // log.warn("Output is "+finalOutput);
    } catch (Throwable t) {
        log.error("Failed to XHTML check " + t.getMessage() + "\n Input======\n" + input + "\n=======");
        return input;
    }

    return finalOutput;
}

From source file:org.rhq.plugins.diameter.jbossas5.util.JnpConfig.java

private void parseServiceXML(File distributionDirectory, File serviceXmlFile)
        throws IOException, SAXException, ParserConfigurationException {
    FileInputStream is = null;/*w  w w  .  j  a  v a2s  . c  o m*/
    try {
        is = new FileInputStream(serviceXmlFile);
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser parser = factory.newSAXParser();

        EntityResolver r = new LocalEntityResolver(distributionDirectory);

        JBossServiceHandler handler = new JBossServiceHandler(serviceXmlFile);

        XMLReader reader = parser.getXMLReader();

        reader.setEntityResolver(r);

        reader.setContentHandler(handler);

        reader.parse(new InputSource(is));

        this.jnpAddress = handler.getNamingBindAddress();
        this.jnpPort = handler.getNamingPort();
        this.storeFile = handler.getStoreFile();
        this.serverName = handler.getServerName();
    } finally {
        if (is != null) {
            is.close();
        }
    }
}

From source file:org.rhq.plugins.diameter.jbossas5.util.JnpConfig.java

private void parseBindingManagerXML() throws IOException {
    InputStream bindIs = null;/*w  w w.  j a v  a  2  s.  c o  m*/
    try {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser parser = factory.newSAXParser();

        if (!this.storeFile.isFile()) {
            log.warn("Store file does not exist: " + this.storeFile);
            return;
        }

        JBossBindingManagerHandler bindingHandler = new JBossBindingManagerHandler(this.storeFile);
        bindingHandler.setServerName(this.serverName);
        XMLReader reader = parser.getXMLReader();
        bindIs = new FileInputStream(this.storeFile);
        reader.setContentHandler(bindingHandler);
        reader.parse(new InputSource(bindIs));
        this.jnpAddress = bindingHandler.getJnpAddress();
        this.jnpPort = bindingHandler.getJnpPort();
    } catch (Exception e) {
        throw new IllegalArgumentException(e.getMessage());
    } finally {
        if (bindIs != null) {
            bindIs.close();
        }
    }
}

From source file:org.rhq.plugins.jbossas.util.JnpConfig.java

private void parseServiceXML(File serviceXmlFile)
        throws IOException, SAXException, ParserConfigurationException {
    FileInputStream is = null;//from   w  w w . j  a v  a2s  .  co  m
    try {
        is = new FileInputStream(serviceXmlFile);
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser parser = factory.newSAXParser();

        XMLReader reader = parser.getXMLReader();

        EntityResolver entityResolver = SelectiveSkippingEntityResolver.getDtdAndXsdSkippingInstance();
        reader.setEntityResolver(entityResolver);

        JBossServiceHandler contentHandler = new JBossServiceHandler(serviceXmlFile);
        reader.setContentHandler(contentHandler);

        reader.parse(new InputSource(is));

        this.jnpAddress = contentHandler.getNamingBindAddress();
        this.jnpPort = contentHandler.getNamingPort();
        this.storeFile = contentHandler.getStoreFile();
        this.serverName = contentHandler.getServerName();
    } finally {
        if (is != null) {
            is.close();
        }
    }
}