Example usage for org.xml.sax XMLReader setContentHandler

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

Introduction

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

Prototype

public void setContentHandler(ContentHandler handler);

Source Link

Document

Allow an application to register a content event handler.

Usage

From source file:org.apache.ode.bpel.compiler.bom.BpelObjectFactory.java

/**
 * Parse a BPEL process found at the input source.
 * @param isrc input source.//www  .j  a va 2 s .co  m
 * @return
 * @throws SAXException
 */
public Process parse(InputSource isrc, URI systemURI) throws IOException, SAXException {
    XMLReader _xr = XMLParserUtils.getXMLReader();
    LocalEntityResolver resolver = new LocalEntityResolver();
    resolver.register(Bpel11QNames.NS_BPEL4WS_2003_03, getClass().getResource("/bpel4ws_1_1-fivesight.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL2_0, getClass().getResource("/wsbpel_main-draft-Apr-29-2006.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL2_0_FINAL_ABSTRACT,
            getClass().getResource("/ws-bpel_abstract_common_base.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL2_0_FINAL_EXEC, getClass().getResource("/ws-bpel_executable.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL2_0_FINAL_PLINK, getClass().getResource("/ws-bpel_plnktype.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL2_0_FINAL_SERVREF,
            getClass().getResource("/ws-bpel_serviceref.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL2_0_FINAL_VARPROP, getClass().getResource("/ws-bpel_varprop.xsd"));
    resolver.register(XML, getClass().getResource("/xml.xsd"));
    resolver.register(WSDL, getClass().getResource("/wsdl.xsd"));
    resolver.register(Bpel20QNames.NS_WSBPEL_PARTNERLINK_2004_03,
            getClass().getResource("/wsbpel_plinkType-draft-Apr-29-2006.xsd"));
    _xr.setEntityResolver(resolver);
    Document doc = DOMUtils.newDocument();
    _xr.setContentHandler(new DOMBuilderContentHandler(doc));
    _xr.setFeature("http://xml.org/sax/features/namespaces", true);
    _xr.setFeature("http://xml.org/sax/features/namespace-prefixes", true);

    _xr.setFeature("http://xml.org/sax/features/validation", true);
    XMLParserUtils.addExternalSchemaURL(_xr, Bpel11QNames.NS_BPEL4WS_2003_03, Bpel11QNames.NS_BPEL4WS_2003_03);
    XMLParserUtils.addExternalSchemaURL(_xr, Bpel20QNames.NS_WSBPEL2_0, Bpel20QNames.NS_WSBPEL2_0);
    XMLParserUtils.addExternalSchemaURL(_xr, Bpel20QNames.NS_WSBPEL2_0_FINAL_EXEC,
            Bpel20QNames.NS_WSBPEL2_0_FINAL_EXEC);
    XMLParserUtils.addExternalSchemaURL(_xr, Bpel20QNames.NS_WSBPEL2_0_FINAL_ABSTRACT,
            Bpel20QNames.NS_WSBPEL2_0_FINAL_ABSTRACT);

    boolean strict = Boolean
            .parseBoolean(System.getProperty("org.apache.ode.compiler.failOnValidationErrors", "false"));
    BOMSAXErrorHandler errorHandler = new BOMSAXErrorHandler(strict);
    _xr.setErrorHandler(errorHandler);
    _xr.parse(isrc);
    if (strict) {
        if (!errorHandler.wasOK()) {
            throw new SAXException("Validation errors during parsing");
        }
    } else {
        if (!errorHandler.wasOK()) {
            __log.warn(
                    "Validation errors during parsing, continuing due to -Dorg.apache.ode.compiler.failOnValidationErrors=false switch");
        }
    }
    return (Process) createBpelObject(doc.getDocumentElement(), systemURI);
}

From source file:org.apache.ojb.broker.metadata.RepositoryPersistor.java

/**
 * Read metadata by populating an instance of the target class
 * using SAXParser.//from  www  .j  a  v a2  s.com
 */
private Object readMetadataFromXML(InputSource source, Class target)
        throws MalformedURLException, ParserConfigurationException, SAXException, IOException {
    // TODO: make this configurable
    boolean validate = false;

    // get a xml reader instance:
    SAXParserFactory factory = SAXParserFactory.newInstance();
    log.info("RepositoryPersistor using SAXParserFactory : " + factory.getClass().getName());
    if (validate) {
        factory.setValidating(true);
    }
    SAXParser p = factory.newSAXParser();
    XMLReader reader = p.getXMLReader();
    if (validate) {
        reader.setErrorHandler(new OJBErrorHandler());
    }

    Object result;
    if (DescriptorRepository.class.equals(target)) {
        // create an empty repository:
        DescriptorRepository repository = new DescriptorRepository();
        // create handler for building the repository structure
        ContentHandler handler = new RepositoryXmlHandler(repository);
        // tell parser to use our handler:
        reader.setContentHandler(handler);
        reader.parse(source);
        result = repository;
    } else if (ConnectionRepository.class.equals(target)) {
        // create an empty repository:
        ConnectionRepository repository = new ConnectionRepository();
        // create handler for building the repository structure
        ContentHandler handler = new ConnectionDescriptorXmlHandler(repository);
        // tell parser to use our handler:
        reader.setContentHandler(handler);
        reader.parse(source);
        //LoggerFactory.getBootLogger().info("loading XML took " + (stop - start) + " msecs");
        result = repository;
    } else
        throw new MetadataException(
                "Could not build a repository instance for '" + target + "', using source " + source);
    return result;
}

From source file:org.apache.oozie.util.GraphGenerator.java

/**
 * Stream the PNG file to client/*from  ww w  .  jav a2 s. co m*/
 * @param out
 * @throws Exception
 */
public void write(OutputStream out) throws Exception {
    SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
    spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
    spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
    spf.setNamespaceAware(true);
    SAXParser saxParser = spf.newSAXParser();
    XMLReader xmlReader = saxParser.getXMLReader();
    xmlReader.setContentHandler(new XMLParser(out));
    xmlReader.parse(new InputSource(new StringReader(xml)));
}

From source file:org.apache.openmeetings.db.dao.label.LabelDao.java

private static List<StringLabel> getLabels(InputStream is) throws Exception {
    final List<StringLabel> labels = new ArrayList<StringLabel>();
    SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setNamespaceAware(true);//ww  w .ja v a2s.co m
    try {
        SAXParser parser = spf.newSAXParser();
        XMLReader xr = parser.getXMLReader();
        xr.setContentHandler(new ContentHandler() {
            StringLabel label = null;

            @Override
            public void startPrefixMapping(String prefix, String uri) throws SAXException {
            }

            @Override
            public void startElement(String uri, String localName, String qName, Attributes atts)
                    throws SAXException {
                if (ENTRY_ELEMENT.equals(localName)) {
                    label = new StringLabel(atts.getValue(KEY_ATTR), "");
                }
            }

            @Override
            public void startDocument() throws SAXException {
            }

            @Override
            public void skippedEntity(String name) throws SAXException {
            }

            @Override
            public void setDocumentLocator(Locator locator) {
            }

            @Override
            public void processingInstruction(String target, String data) throws SAXException {
            }

            @Override
            public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
            }

            @Override
            public void endPrefixMapping(String prefix) throws SAXException {
            }

            @Override
            public void endElement(String uri, String localName, String qName) throws SAXException {
                if (ENTRY_ELEMENT.equals(localName)) {
                    labels.add(label);
                }
            }

            @Override
            public void endDocument() throws SAXException {
            }

            @Override
            public void characters(char[] ch, int start, int length) throws SAXException {
                StringBuilder sb = new StringBuilder(label.getValue());
                sb.append(ch, start, length);
                label.setValue(sb.toString());
            }
        });
        xr.parse(new InputSource(is));
    } catch (Exception e) {
        throw e;
    }
    return labels;
}

From source file:org.apache.poi.xssf.eventusermodel.XLSX2CSV.java

/**
 * Parses and shows the content of one sheet
 * using the specified styles and shared-strings tables.
 *
 * @param styles//from  ww  w .  j  av  a 2  s.  c  o m
 * @param strings
 * @param sheetInputStream
 */
public void processSheet(StylesTable styles, ReadOnlySharedStringsTable strings, InputStream sheetInputStream)
        throws IOException, ParserConfigurationException, SAXException {

    InputSource sheetSource = new InputSource(sheetInputStream);
    SAXParserFactory saxFactory = SAXParserFactory.newInstance();
    SAXParser saxParser = saxFactory.newSAXParser();
    XMLReader sheetParser = saxParser.getXMLReader();
    ContentHandler handler = new MyXSSFSheetHandler(styles, strings, this.minColumns, this.output);
    sheetParser.setContentHandler(handler);
    sheetParser.parse(sheetSource);
}

From source file:org.apache.tika.parser.microsoft.ooxml.xwpf.XWPFEventBasedWordExtractor.java

private void handlePart(PackagePart packagePart, XWPFListManager xwpfListManager, StringBuilder buffer)
        throws IOException, SAXException {

    Map<String, String> hyperlinks = loadHyperlinkRelationships(packagePart);
    try (InputStream stream = packagePart.getInputStream()) {
        XMLReader reader = SAXHelper.newXMLReader();
        reader.setContentHandler(
                new OOXMLWordAndPowerPointTextHandler(new XWPFToTextContentHandler(buffer), hyperlinks));
        reader.parse(new InputSource(new CloseShieldInputStream(stream)));

    } catch (ParserConfigurationException e) {
        e.printStackTrace();/*from   w w  w.ja v  a 2  s . c  o m*/
    }

}

From source file:org.apache.vxquery.xtest.util.DiskPerformance.java

public Pair<XMLReader, SAXContentHandler> getNewParser() {
    XMLReader parser;
    SAXContentHandler handler;//www .  j a  v a  2 s .  c  o m

    try {
        parser = XMLReaderFactory.createXMLReader();
        List<SequenceType> childSeq = new ArrayList<SequenceType>();
        NameTest nt = new NameTest(createUTF8String(""), createUTF8String("data"));
        childSeq.add(SequenceType.create(new ElementType(nt, AnyType.INSTANCE, false), Quantifier.QUANT_ONE));
        handler = new SAXContentHandler(false, new TreeNodeIdProvider((short) 0), null, null, childSeq);
        parser.setContentHandler(handler);
        parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
        return new Pair<XMLReader, SAXContentHandler>(parser, handler);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

From source file:org.apache.xmlrpc.client.XmlRpcStreamTransport.java

/**
 * This method was modified, because the xml-parser fails with certain 
 * invalid XML-characters like the unicode-characters: cx0, 0x8, etc.
 * *///from  w  ww. j av  a 2 s  .  c  om
protected Object readResponse(XmlRpcStreamRequestConfig pConfig, InputStream pStream) throws XmlRpcException {
    InputSource isource = new InputSource(pStream);
    XMLReader xr = newXMLReader();
    XmlRpcResponseParser xp;
    try {
        xp = new XmlRpcResponseParser(pConfig, getClient().getTypeFactory());
        xr.setContentHandler(xp);
        // Remove the invalid characters before parsing
        String pStreamAsStr = convertInputStreamIntoString(pStream);
        String pStreamAsStrWithValidChars = stripNonValidXMLCharacters(pStreamAsStr);
        InputStream is = IOUtils.toInputStream(pStreamAsStrWithValidChars, "UTF-8");
        isource = new InputSource(is);

        xr.parse(isource);
    } catch (SAXException e) {
        throw new XmlRpcClientException("Failed to parse server's response: " + e.getMessage(), e);
    } catch (IOException e) {
        throw new XmlRpcClientException("Failed to read server's response: " + e.getMessage(), e);
    }
    if (xp.isSuccess()) {
        return xp.getResult();
    }
    Throwable t = xp.getErrorCause();
    if (t == null) {
        throw new XmlRpcException(xp.getErrorCode(), xp.getErrorMessage());
    }
    if (t instanceof XmlRpcException) {
        throw (XmlRpcException) t;
    }
    if (t instanceof RuntimeException) {
        throw (RuntimeException) t;
    }
    throw new XmlRpcException(xp.getErrorCode(), xp.getErrorMessage(), t);
}

From source file:org.apache.xmlrpc.server.XmlRpcStreamServer.java

protected XmlRpcRequest getRequest(final XmlRpcStreamRequestConfig pConfig, InputStream pStream)
        throws XmlRpcException {
    final XmlRpcRequestParser parser = new XmlRpcRequestParser(pConfig, getTypeFactory());
    final XMLReader xr = SAXParsers.newXMLReader();
    xr.setContentHandler(parser);
    try {/*from  ww  w . ja  v  a  2 s . c  o  m*/
        xr.parse(new InputSource(pStream));
    } catch (SAXException e) {
        Exception ex = e.getException();
        if (ex != null && ex instanceof XmlRpcException) {
            throw (XmlRpcException) ex;
        }
        throw new XmlRpcException("Failed to parse XML-RPC request: " + e.getMessage(), e);
    } catch (IOException e) {
        throw new XmlRpcException("Failed to read XML-RPC request: " + e.getMessage(), e);
    }
    final List params = parser.getParams();
    return new XmlRpcRequest() {
        public XmlRpcRequestConfig getConfig() {
            return pConfig;
        }

        public String getMethodName() {
            return parser.getMethodName();
        }

        public int getParameterCount() {
            return params == null ? 0 : params.size();
        }

        public Object getParameter(int pIndex) {
            return params.get(pIndex);
        }
    };
}

From source file:org.apereo.portal.groups.GroupServiceConfiguration.java

protected void parseXml() throws Exception {
    InputSource xmlSource = new InputSource(
            ResourceLoader.getResourceAsStream(GroupServiceConfiguration.class, SERVICES_XML));

    if (xmlSource != null) {
        XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
        reader.setContentHandler(serviceHandler);
        reader.parse(xmlSource);/*from  w w w.j  a va  2  s  .  c  o  m*/
    }
}