List of usage examples for org.xml.sax.helpers DefaultHandler DefaultHandler
DefaultHandler
From source file:test.common.TestBase.java
/** * @param xmlData// w w w. ja va 2 s . com * @return * @throws ParserConfigurationException * @throws SAXException * @throws IOException * @throws UnsupportedEncodingException */ private static String getNameSpaceFromXml(final String xmlData) throws ParserConfigurationException, SAXException, IOException, UnsupportedEncodingException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); DefaultHandler handler = new DefaultHandler() { private String nameSpace = null; private boolean first = true; public void startElement(String uri, String localName, String qName, Attributes attributes) { if (first) { if (qName.contains(":")) { String prefix = qName.substring(0, qName.indexOf(":")); String attributeName = "xmlns:" + prefix; nameSpace = attributes.getValue(attributeName); } else { nameSpace = attributes.getValue("xmlns"); } first = false; } } public String toString() { return nameSpace; } }; parser.parse(new ByteArrayInputStream(xmlData.getBytes("UTF-8")), handler); String nameSpace = handler.toString(); return nameSpace; }
From source file:test.common.TestBase.java
/** * @throws IOException// ww w . j av a 2s . c o m * @throws SAXException * @throws ParserConfigurationException */ private static void initializeSchemas() throws IOException, SAXException, ParserConfigurationException { File[] schemaFiles = ResourceUtil.getFilenamesInDirectory("xsd/", TestBase.class.getClassLoader()); PrintWriter pwriter = new PrintWriter("target/schemas.txt"); logger.debug("Number of schema files: " + schemaFiles.length); pwriter.println("Number of schema files: " + schemaFiles.length); schemas = new HashMap<String, Schema>(); SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); // sf.setResourceResolver(new ImportResolver()); for (File file : schemaFiles) { logger.debug("Schema file: " + file.getCanonicalPath()); pwriter.println("Schema file: " + file.getCanonicalPath()); try { //TODO remove this hack when xsd files are cleared if (file.getCanonicalPath().contains("rest")) { logger.debug("Skipping schema file: " + file.getCanonicalPath()); continue; } if (file.getCanonicalPath().endsWith("srw-types.xsd") && !file.getCanonicalPath().contains("0.8")) { logger.debug("Skipping schema file: " + file.getCanonicalPath()); continue; } // end TODO Schema schema = sf.newSchema(file); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); DefaultHandler handler = new DefaultHandler() { private String nameSpace = null; private boolean found = false; public void startElement(String uri, String localName, String qName, Attributes attributes) { if (!found) { String tagName = null; int ix = qName.indexOf(":"); if (ix >= 0) { tagName = qName.substring(ix + 1); } else { tagName = qName; } if ("schema".equals(tagName)) { nameSpace = attributes.getValue("targetNamespace"); found = true; } } } public String toString() { return nameSpace; } }; parser.parse(file, handler); if (handler.toString() != null) { Schema s = schemas.get(handler.toString()); if (s != null) { logger.debug("overwriting key '" + handler.toString() + "'"); } schemas.put(handler.toString(), schema); logger.debug("Successfully added: " + file.getCanonicalPath() + " key: '" + handler.toString() + "' value: " + schema.toString() + " " + schema.newValidator()); } else { logger.warn("Error reading xml schema: " + file); } } catch (Exception e) { logger.warn("Invalid xml schema " + file + " , cause " + e.getLocalizedMessage()); logger.debug("Stacktrace: ", e); } } logger.info("XSD Schemas found: " + schemas); pwriter.close(); }
From source file:uk.ac.ebi.intact.dataexchange.psimi.xml.exchange.PsiExchangeImpl.java
/** * Gets the release dates from a PSI-MI XML InputStream * @param is// w w w . ja va 2 s . com * @return */ public List<DateTime> getReleaseDates(InputStream is) throws IOException { final List<DateTime> releaseDates = new ArrayList<DateTime>(); DefaultHandler handler = new DefaultHandler() { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (localName.equals("source")) { final String releaseDateStr = attributes.getValue("releaseDate"); DateTime releaseDate = toDateTime(releaseDateStr); releaseDates.add(releaseDate); } } }; SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); try { SAXParser parser = factory.newSAXParser(); parser.parse(new InputSource(is), handler); } catch (Exception e) { throw new IntactException(e); } return releaseDates; }