List of usage examples for org.xml.sax XMLReader setEntityResolver
public void setEntityResolver(EntityResolver resolver);
From source file:org.dhatim.delivery.AbstractParser.java
private void setHandlers(XMLReader reader) throws SAXException { if (saxDriverConfig != null) { List<Parameter> handlers; handlers = saxDriverConfig.getParameters("sax-handler"); if (handlers != null) { for (Parameter handler : handlers) { Object handlerObj = createHandler(handler.getValue()); if (handlerObj instanceof EntityResolver) { reader.setEntityResolver((EntityResolver) handlerObj); }//from w w w. ja v a 2 s . c o m if (handlerObj instanceof DTDHandler) { reader.setDTDHandler((DTDHandler) handlerObj); } if (handlerObj instanceof ErrorHandler) { reader.setErrorHandler((ErrorHandler) handlerObj); } } } } }
From source file:org.dita.dost.reader.TestGenListModuleReader.java
private XMLReader initXMLReader(final File ditaDir, final boolean validate, final File rootFile) throws SAXException, IOException { final XMLReader parser = XMLUtils.getXMLReader(); if (validate == true) { parser.setFeature(FEATURE_VALIDATION, true); try {/*from ww w . j a va 2 s .c o m*/ parser.setFeature(FEATURE_VALIDATION_SCHEMA, true); } catch (final SAXNotRecognizedException e) { // Not Xerces, ignore exception } } else { final String msg = MessageUtils.getInstance().getMessage("DOTJ037W").toString(); } CatalogUtils.setDitaDir(ditaDir); parser.setEntityResolver(CatalogUtils.getCatalogResolver()); return parser; }
From source file:org.dita.dost.TestUtils.java
/** * Read XML file contents into a string. * /*from w ww . jav a2s . c o m*/ * @param file XML file to read * @param normalize normalize whitespace * @return contents of the file * @throws Exception if parsing the file failed */ public static String readXmlToString(final File file, final boolean normalize, final boolean clean) throws Exception { final Writer std = new CharArrayWriter(); InputStream in = null; try { in = new BufferedInputStream(new FileInputStream(file)); final Transformer t = TransformerFactory.newInstance().newTransformer(); XMLReader p = XMLReaderFactory.createXMLReader(); p.setEntityResolver(CatalogUtils.getCatalogResolver()); if (normalize) { t.setOutputProperty(OutputKeys.INDENT, "yes"); p = new NormalizingXMLFilterImpl(p); } if (clean) { p = new CleaningXMLFilterImpl(p); } t.transform(new SAXSource(p, new InputSource(in)), new StreamResult(std)); } finally { if (in != null) { in.close(); } } return std.toString(); }
From source file:org.dita.dost.TestUtils.java
/** * Normalize XML file.//from w w w . j a va2s. c om * * @param src source XML file * @param dst destination XML file * @throws Exception if parsing or serializing failed */ public static void normalize(final File src, final File dst) throws Exception { CatalogUtils.setDitaDir(new File("src" + File.separator + "main").getAbsoluteFile()); final Transformer serializer = TransformerFactory.newInstance().newTransformer(); final XMLReader parser = XMLReaderFactory.createXMLReader(); parser.setEntityResolver(CatalogUtils.getCatalogResolver()); InputStream in = null; OutputStream out = null; try { in = new BufferedInputStream(new FileInputStream(src)); out = new BufferedOutputStream(new FileOutputStream(dst)); serializer.transform(new SAXSource(parser, new InputSource(in)), new StreamResult(out)); } finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } }
From source file:org.entcore.feeder.aaf.BaseImportProcessing.java
protected void parse(final Handler<Message<JsonObject>> handler, final ImportProcessing importProcessing) { final String[] files = vertx.fileSystem().readDirSync(path, getFileRegex()); final VoidHandler[] handlers = new VoidHandler[files.length + 1]; handlers[handlers.length - 1] = new VoidHandler() { @Override/*from w ww .j a va 2 s. c o m*/ protected void handle() { next(handler, importProcessing); } }; Arrays.sort(files); for (int i = files.length - 1; i >= 0; i--) { final int j = i; handlers[i] = new VoidHandler() { @Override protected void handle() { try { String file = files[j]; log.info("Parsing file : " + file); byte[] encoded = Files.readAllBytes(Paths.get(file)); String content = UNESCAPE_AAF.translate(new String(encoded, "UTF-8")); InputSource in = new InputSource(new StringReader(content)); AAFHandler sh = new AAFHandler(BaseImportProcessing.this); XMLReader xr = XMLReaderFactory.createXMLReader(); xr.setContentHandler(sh); xr.setEntityResolver(new EntityResolver2() { @Override public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException { return null; } @Override public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException { return resolveEntity(publicId, systemId); } @Override public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { if (systemId.equals("ficAlimMENESR.dtd")) { Reader reader = new FileReader(path + File.separator + "ficAlimMENESR.dtd"); return new InputSource(reader); } else { return null; } } }); xr.parse(in); importer.flush(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> message) { if ("ok".equals(message.body().getString("status"))) { handlers[j + 1].handle(null); } else { error(message, handler); } } }); } catch (Exception e) { error(e, handler); } } }; } handlers[0].handle(null); }
From source file:org.getobjects.foundation.NSXMLPropertyListParser.java
public Object parse(InputStream _in) { if (_in == null) return null; final SAXParserFactory factory = SAXParserFactory.newInstance(); try {/*from w w w .j a v a2s. c om*/ final NSXMLPlistHandler handler = new NSXMLPlistHandler(); final XMLReader reader = factory.newSAXParser().getXMLReader(); final InputSource input = new InputSource(_in); reader.setContentHandler(handler); reader.setEntityResolver(handler); try { reader.setFeature("http://xml.org/sax/features/validation", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); } catch (Exception e) { log.error("Couldn't turn validation off: " + e); } reader.parse(input); return handler.rootObject(); } catch (ParserConfigurationException e) { log.error("error during parser instantiation: " + e); } catch (SAXException e) { log.error("error during parsing: " + e); } catch (IOException e) { log.error("error during parsing: " + e); } return null; }
From source file:org.infoscoop.request.filter.DetectTypeFilter.java
public static void main(String[] args) throws Exception { new DetectTypeFilter(); DetectManager h = new DetectTypeFilter.DetectManager(); XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(h);/* ww w . j a v a 2 s .c o m*/ reader.parse(new InputSource(new FileInputStream("src/main/webapp/generalMessages_rss.xml"))); }
From source file:org.infoscoop.request.filter.DetectTypeFilter.java
protected InputStream postProcess(ProxyRequest request, InputStream responseStream) throws IOException { JSONArray result = new JSONArray(); //BufferedInputStream responseStream = new BufferedInputStream(_responseStream); String contentType = request.getResponseHeader("Content-Type"); String encoding = getContentTypeCharset(contentType); responseStream = new ByteArrayInputStream(ProxyRequest.stream2Bytes(responseStream)); //FIXME XMLFilter.skipEmptyLine(responseStream); try {/*from w w w.j a v a2 s . c o m*/ DetectManager handler = null; if (isXml(contentType, responseStream)) { try { DetectManager h = new DetectManager(); XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(h); reader.parse(new InputSource(responseStream)); handler = h; } catch (SAXException e) { log.warn("parse error", e); responseStream.reset(); } } if (handler == null) { handler = new DetectManager(); if (encoding == null) { encoding = findEncoding(responseStream);//TODO: responseStream.reset(); } org.cyberneko.html.parsers.SAXParser nekoParser = new org.cyberneko.html.parsers.SAXParser(); nekoParser.setProperty("http://cyberneko.org/html/properties/names/elems", "lower"); nekoParser.setProperty("http://cyberneko.org/html/properties/names/attrs", "lower"); if (encoding != null) nekoParser.setProperty("http://cyberneko.org/html/properties/default-encoding", encoding); Transformer transformer = TransformerFactory.newInstance().newTransformer(); SAXSource source = new SAXSource(nekoParser, new InputSource(responseStream)); SAXResult saxResult = new SAXResult(handler); transformer.transform(source, saxResult); } result = handler.getResult(request); } catch (Exception e) { log.error("Url: [" + request.getTargetURL() + "] detect widget type failed.", e); //return 500;TODO: return null; } byte[] resultBytes = result.toString().getBytes("UTF-8"); request.putResponseHeader("Content-Type", "text/plain; charset=UTF-8"); request.putResponseHeader("Content-Length", String.valueOf(resultBytes.length)); //request.setResponseBody(new ByteArrayInputStream( resultBytes )); return new ByteArrayInputStream(resultBytes); }
From source file:org.infoscoop.request.filter.ical.ICalendarUtil.java
public static Reader convertRdf2Ics(InputStream is) throws SAXException, IOException { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(false);//from ww w . j a v a2 s .c om factory.setNamespaceAware(true); XMLReader reader = null; try { reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); } catch (ParserConfigurationException e) { log.error("", e); } Rdf2IcsHandler xmlHandler = new Rdf2IcsHandler(); reader.setContentHandler(xmlHandler); reader.parse(new InputSource(is)); return new StringReader(xmlHandler.getResult()); }
From source file:org.infoscoop.request.filter.RssFilter.java
public static byte[] process(ProxyRequest request, InputStream responseStream) throws IOException { String dateTimeFormat = request.getRequestHeader("X-IS-DATETIMEFORMAT"); if (dateTimeFormat != null) { dateTimeFormat = URLDecoder.decode(dateTimeFormat, "UTF-8"); }// w ww .j a v a 2 s .c o m String freshTime = request.getRequestHeader("X-IS-FRESHTIME"); String maxCountString = request.getRequestHeader("X-IS-RSSMAXCOUNT"); int maxCount = Integer.MAX_VALUE; if (maxCountString != null) { try { int paramMaxCount = Integer.parseInt(maxCountString); if (paramMaxCount > 0) { maxCount = paramMaxCount; } } catch (NumberFormatException e) { log.warn("rssmaxcount \"" + maxCountString + "\" isn't integer value."); } } // Filtering String titleFilter = request.getRequestHeader("X-IS-TITLEFILTER"); if (titleFilter != null) titleFilter = URLDecoder.decode(titleFilter, "UTF-8"); String creatorFilter = request.getRequestHeader("X-IS-CREATORFILTER"); if (creatorFilter != null) creatorFilter = URLDecoder.decode(creatorFilter, "UTF-8"); String categoryFilter = request.getRequestHeader("X-IS-CATEGORYFILTER"); if (categoryFilter != null) categoryFilter = URLDecoder.decode(categoryFilter, "UTF-8"); // String freshDays = request.getRequestHeader("_freshdays"); // String logoffDateTime = request.getRequestHeader("_logoffdatetime"); BufferedInputStream bis = new BufferedInputStream(responseStream); boolean isAtom = isAtom(bis); XMLFilter.skipEmptyLine(bis); String pageSizeStr = request.getRequestHeader("X-IS-PAGESIZE"); int pageSize = -1; if (pageSizeStr != null) { try { pageSize = Integer.parseInt(pageSizeStr); } catch (NumberFormatException ex) { log.warn("init parameter \"rssPageSize\" has illegal value"); } } //if( pageSize < 0 ) // pageSize = 20; long start = System.currentTimeMillis(); RssResultBuilder resultBuilder = new RssJsonResultBuilder(pageSize); RssHandler handler; if (isAtom) { handler = new AtomHandler(resultBuilder, dateTimeFormat, freshTime, maxCount, titleFilter, creatorFilter, categoryFilter); } else { handler = new RssHandler(resultBuilder, dateTimeFormat, freshTime, maxCount, titleFilter, creatorFilter, categoryFilter); } try { XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(handler); reader.parse(new InputSource(bis)); if (log.isDebugEnabled()) { long end = System.currentTimeMillis(); log.debug("Rss parse duration:" + (end - start)); } int pageCount = resultBuilder.getPageCount(); if (pageCount > 1) { String uid = request.getPortalUid(); if (uid == null) uid = request.getRequestHeader("MSDPortal-SessionId"); for (int pageNum = 0; pageNum < pageCount; pageNum++) { RssCacheDAO.newInstance().insertCache(uid, request.getTargetURL(), pageNum, resultBuilder.getResult(pageNum)); } } return resultBuilder.getResult(0).getBytes("UTF-8"); } catch (SAXException e) { log.error("Xml file at URL [ " + request.getTargetURL() + "] is failed to be analysed.[" + e.getLocalizedMessage() + "]", e); resultBuilder.setStatusCode(1); resultBuilder.setMessage("Failed to analyse xml.: " + e.getLocalizedMessage()); return resultBuilder.getResult().getBytes("UTF-8"); } catch (IOException e) { log.error("Xml file at URL [ " + request.getTargetURL() + "] is failed to be analysed.[" + e.getLocalizedMessage() + "]", e); resultBuilder.setStatusCode(1); resultBuilder.setMessage("Failed to analyse xml.: " + e.getLocalizedMessage()); return resultBuilder.getResult().getBytes("UTF-8"); } catch (ParserConfigurationException e) { log.error("Xml file at URL [ " + request.getTargetURL() + "] is failed to be analysed.[" + e.getLocalizedMessage() + "]", e); resultBuilder.setStatusCode(1); resultBuilder.setMessage("Failed to analyse xml.: " + e.getLocalizedMessage()); return resultBuilder.getResult().getBytes("UTF-8"); } finally { bis.close(); } }