List of usage examples for org.xml.sax.helpers XMLReaderFactory createXMLReader
public static XMLReader createXMLReader() throws SAXException
From source file:net.sf.joost.stx.Processor.java
/** * Create an <code>XMLReader</code> object (a SAX Parser) * @throws SAXException if a SAX Parser couldn't be created *///from w w w.j a va2 s . c om public static XMLReader createXMLReader() throws SAXException { // Using pure SAX2, not JAXP XMLReader reader = null; try { // try default parser implementation reader = XMLReaderFactory.createXMLReader(); } catch (SAXException e) { String prop = System.getProperty("org.xml.sax.driver"); if (prop != null) { // property set, but still failed throw new SAXException("Can't create XMLReader for class " + prop); // leave the method here } // try another SAX implementation String PARSER_IMPLS[] = { "org.apache.xerces.parsers.SAXParser", // Xerces "org.apache.crimson.parser.XMLReaderImpl", // Crimson "gnu.xml.aelfred2.SAXDriver" // Aelfred nonvalidating }; for (int i = 0; i < PARSER_IMPLS.length; i++) { try { reader = XMLReaderFactory.createXMLReader(PARSER_IMPLS[i]); break; // for (...) } catch (SAXException e1) { } // continuing } if (reader == null) { throw new SAXException("Can't find SAX parser implementation.\n" + "Please specify a parser class via the system property " + "'org.xml.sax.driver'"); } } // set features and properties that have been put // into the system properties (e.g. via command line) Properties sysProps = System.getProperties(); for (Enumeration e = sysProps.propertyNames(); e.hasMoreElements();) { String propKey = (String) e.nextElement(); if (propKey.startsWith(EXTERN_SAX_FEATURE_PREFIX)) { reader.setFeature(propKey.substring(EXTERN_SAX_FEATURE_PREFIX.length()), Boolean.parseBoolean(sysProps.getProperty(propKey))); continue; } if (propKey.startsWith(EXTERN_SAX_PROPERTY_PREFIX)) { reader.setProperty(propKey.substring(EXTERN_SAX_PROPERTY_PREFIX.length()), sysProps.getProperty(propKey)); continue; } } if (DEBUG) log.debug("Using " + reader.getClass().getName()); return reader; }
From source file:com.amalto.core.query.DataRecordCreationTest.java
public void testCreationFromSAXWithInheritance() throws Exception { MetadataRepository repository = new MetadataRepository(); repository.load(this.getClass().getResourceAsStream("metadata.xsd")); ComplexTypeMetadata c = repository.getComplexType("C"); assertNotNull(c);//www .j av a 2 s.com XMLReader xmlReader = XMLReaderFactory.createXMLReader(); DataRecordReader<XmlSAXDataRecordReader.Input> dataRecordReader = new XmlSAXDataRecordReader(); XmlSAXDataRecordReader.Input input = new XmlSAXDataRecordReader.Input(xmlReader, new InputSource(this.getClass().getResourceAsStream("DataRecordCreationTest_2.xml"))); DataRecord dataRecord = dataRecordReader.read(repository, c, input); performInheritanceAsserts(dataRecord); }
From source file:Examples.java
/** * Show the Transformer as a simple XMLFilter. This is pretty similar * to exampleXMLReader, except that here the parent XMLReader is created * by the caller, instead of automatically within the XMLFilter. This * gives the caller more direct control over the parent reader. *//*from w ww . ja va 2s . com*/ public static void exampleXMLFilter(String sourceID, String xslID) throws TransformerException, TransformerConfigurationException, SAXException, IOException // , ParserConfigurationException { TransformerFactory tfactory = TransformerFactory.newInstance(); XMLReader reader = null; // Use JAXP1.1 ( if possible ) try { javax.xml.parsers.SAXParserFactory factory = javax.xml.parsers.SAXParserFactory.newInstance(); factory.setNamespaceAware(true); javax.xml.parsers.SAXParser jaxpParser = factory.newSAXParser(); reader = jaxpParser.getXMLReader(); } catch (javax.xml.parsers.ParserConfigurationException ex) { throw new org.xml.sax.SAXException(ex); } catch (javax.xml.parsers.FactoryConfigurationError ex1) { throw new org.xml.sax.SAXException(ex1.toString()); } catch (NoSuchMethodError ex2) { } if (reader == null) reader = XMLReaderFactory.createXMLReader(); // The transformer will use a SAX parser as it's reader. reader.setContentHandler(new ExampleContentHandler()); try { reader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); reader.setFeature("http://apache.org/xml/features/validation/dynamic", true); } catch (SAXException se) { // What can we do? // TODO: User diagnostics. } XMLFilter filter = ((SAXTransformerFactory) tfactory).newXMLFilter(new StreamSource(xslID)); filter.setParent(reader); // Now, when you call transformer.parse, it will set itself as // the content handler for the parser object (it's "parent"), and // will then call the parse method on the parser. filter.parse(new InputSource(sourceID)); }
From source file:com.amalto.core.query.DataRecordCreationTest.java
private List<DataRecord> getDataRecords(String resourceName, ComplexTypeMetadata recordType) throws Exception { List<DataRecord> records = new LinkedList<DataRecord>(); // Read using SAX XMLReader xmlReader = XMLReaderFactory.createXMLReader(); DataRecordReader<XmlSAXDataRecordReader.Input> dataRecordReader = new XmlSAXDataRecordReader(); XmlSAXDataRecordReader.Input input = new XmlSAXDataRecordReader.Input(xmlReader, new InputSource(this.getClass().getResourceAsStream(resourceName))); DataRecord dataRecord = dataRecordReader.read(repository, recordType, input); records.add(dataRecord);//from w w w . j av a2 s. c om // Read using DOM DataRecordReader<Element> documentDataRecordReader = new XmlDOMDataRecordReader(); Document document = Util.parse(IOUtils.toString(this.getClass().getResourceAsStream(resourceName))); records.add(documentDataRecordReader.read(repository, company, document.getDocumentElement())); // Read using String DataRecordReader<String> stringDataRecordReader = new XmlStringDataRecordReader(); DataRecord record = stringDataRecordReader.read(repository, company, IOUtils.toString(this.getClass().getResourceAsStream(resourceName))); records.add(record); return records; }
From source file:de.zib.scalaris.examples.wikipedia.data.xml.Main.java
/** * @param handler/* w ww.j av a 2s .co m*/ * @param file * @throws SAXException * @throws IOException */ private static void runXmlHandler(WikiDumpHandler handler, InputSource[] files) throws SAXException, IOException { XMLReader reader = XMLReaderFactory.createXMLReader(); handler.setUp(); ReportAtShutDown shutdownHook = handler.new ReportAtShutDown(); Runtime.getRuntime().addShutdownHook(shutdownHook); reader.setContentHandler(handler); for (InputSource file : files) { reader.parse(file); } handler.tearDown(); shutdownHook.reportAtEnd(); Runtime.getRuntime().removeShutdownHook(shutdownHook); exitCheckHandler(handler); }
From source file:com.amazonaws.eclipse.dynamodb.testtool.TestToolManager.java
/** * Parse a manifest file describing a list of test tool versions. * * @param file The file to parse.//from ww w . j av a2 s .co m * @return The parsed list of versions. * @throws IOException on error. */ private List<TestToolVersion> parseManifest(final File file) throws IOException { FileInputStream stream = null; try { stream = new FileInputStream(file); BufferedReader buffer = new BufferedReader(new InputStreamReader(stream)); ManifestContentHandler handler = new ManifestContentHandler(); XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setContentHandler(handler); reader.setErrorHandler(handler); reader.parse(new InputSource(buffer)); return handler.getResult(); } catch (SAXException exception) { throw new IOException("Error parsing DynamoDB Local manifest file", exception); } finally { if (stream != null) { stream.close(); } } }
From source file:Examples.java
/** * This example shows how to chain events from one Transformer * to another transformer, using the Transformer as a * SAX2 XMLFilter/XMLReader.//from ww w .j av a 2 s. c o m */ public static void exampleXMLFilterChain(String sourceID, String xslID_1, String xslID_2, String xslID_3) throws TransformerException, TransformerConfigurationException, SAXException, IOException { TransformerFactory tfactory = TransformerFactory.newInstance(); Templates stylesheet1 = tfactory.newTemplates(new StreamSource(xslID_1)); Transformer transformer1 = stylesheet1.newTransformer(); // If one success, assume all will succeed. if (tfactory.getFeature(SAXSource.FEATURE)) { SAXTransformerFactory stf = (SAXTransformerFactory) tfactory; XMLReader reader = null; // Use JAXP1.1 ( if possible ) try { javax.xml.parsers.SAXParserFactory factory = javax.xml.parsers.SAXParserFactory.newInstance(); factory.setNamespaceAware(true); javax.xml.parsers.SAXParser jaxpParser = factory.newSAXParser(); reader = jaxpParser.getXMLReader(); } catch (javax.xml.parsers.ParserConfigurationException ex) { throw new org.xml.sax.SAXException(ex); } catch (javax.xml.parsers.FactoryConfigurationError ex1) { throw new org.xml.sax.SAXException(ex1.toString()); } catch (NoSuchMethodError ex2) { } if (reader == null) reader = XMLReaderFactory.createXMLReader(); XMLFilter filter1 = stf.newXMLFilter(new StreamSource(xslID_1)); XMLFilter filter2 = stf.newXMLFilter(new StreamSource(xslID_2)); XMLFilter filter3 = stf.newXMLFilter(new StreamSource(xslID_3)); if (null != filter1) // If one success, assume all were success. { // transformer1 will use a SAX parser as it's reader. filter1.setParent(reader); // transformer2 will use transformer1 as it's reader. filter2.setParent(filter1); // transform3 will use transform2 as it's reader. filter3.setParent(filter2); filter3.setContentHandler(new ExampleContentHandler()); // filter3.setContentHandler(new org.xml.sax.helpers.DefaultHandler()); // Now, when you call transformer3 to parse, it will set // itself as the ContentHandler for transform2, and // call transform2.parse, which will set itself as the // content handler for transform1, and call transform1.parse, // which will set itself as the content listener for the // SAX parser, and call parser.parse(new InputSource("xml/foo.xml")). filter3.parse(new InputSource(sourceID)); } else { System.out.println("Can't do exampleXMLFilter because " + "tfactory doesn't support asXMLFilter()"); } } else { System.out.println("Can't do exampleXMLFilter because " + "tfactory is not a SAXTransformerFactory"); } }
From source file:net.vivekiyer.GAL.ActiveSyncManager.java
/** * @param xml The XML to parse /*from w w w . j a va 2s . c o m*/ * @param nodeName The Node to search for in the XML * @return List of strings found in the specified node * @throws Exception * * This method parses the an XML string and returns all values that were found * in the node specified in the request */ private String[] parseXML(String xml, String nodeName) throws Exception { // Our parser does not handle ampersands too well. Replace with & xml = xml.replaceAll("&", "&"); // Parse the XML ByteArrayInputStream xmlParseInputStream = new ByteArrayInputStream(xml.toString().getBytes()); XMLReader xr = XMLReaderFactory.createXMLReader(); XMLParser parser = new XMLParser(nodeName); xr.setContentHandler(parser); xr.parse(new InputSource(xmlParseInputStream)); return parser.getOutput(); }
From source file:ch.kostceco.tools.kostval.validation.modulesiard.impl.ValidationHcontentModuleImpl.java
private Range getRange(File xsdFile) throws SAXException, IOException { Range range = new Range(); RangeHandler rangeHandler = new RangeHandler(); try {/*from w w w. j av a2 s . c o m*/ reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://xml.org/sax/features/validation", false); reader.setFeature("http://apache.org/xml/features/validation/schema", false); reader.setContentHandler(rangeHandler); reader.parse(new InputSource(new FileInputStream(xsdFile))); } catch (BreakException e) { range = rangeHandler.getRange(); } return range; }
From source file:com.amalto.core.query.SystemStorageTest.java
public void testSAXParsing() throws Exception { Collection<String> files = getConfigFiles(); ClassRepository repository = buildRepository(); DataRecordReader<XmlSAXDataRecordReader.Input> dataRecordReader = new XmlSAXDataRecordReader(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true);/*from www .j a v a 2s.co m*/ DocumentBuilder documentBuilder = factory.newDocumentBuilder(); XMLReader reader = XMLReaderFactory.createXMLReader(); int error = 0; for (String fis1 : files) { try { String typeName; Document document; document = documentBuilder.parse(new ByteArrayInputStream(fis1.getBytes())); typeName = document.getDocumentElement().getNodeName(); ComplexTypeMetadata complexType = repository.getComplexType(typeName); if (complexType == null) { continue; } dataRecordReader.read(repository, complexType, new XmlSAXDataRecordReader.Input(reader, new InputSource(new ByteArrayInputStream(fis1.getBytes())))); } catch (Exception e) { error++; } } assertEquals(0, error); }