List of usage examples for org.xml.sax XMLReader parse
public void parse(String systemId) throws IOException, SAXException;
From source file:com.sap.prd.mobile.ios.mios.VersionInfoManager.java
private static String getSchemaVersion(final File f) throws SAXException, IOException { class StopParsingException extends SAXException { private static final long serialVersionUID = -7499102356648608429L; }/*from ww w .j av a 2 s . c o m*/ ; XMLReader xmlReader = XMLReaderFactory.createXMLReader(); final InputStream s = new FileInputStream(f); final String[] result = new String[1]; try { xmlReader.setContentHandler(new ContentHandler() { boolean repositoryTagFound = false; @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 (localName.equals("versions")) { result[0] = atts.getValue("schemaVersion"); if (result[0] != null) throw new StopParsingException(); } if (localName.equals("repository")) { repositoryTagFound = true; } } @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 { } @Override public void endDocument() throws SAXException { if (!repositoryTagFound && result[0] == null) result[0] = "1.2.0"; } @Override public void characters(char[] ch, int start, int length) throws SAXException { } }); try { xmlReader.parse(new InputSource(s)); } catch (StopParsingException ex) { //OK, StopParsingException is thrown when we know all we need from the document. } } finally { IOUtils.closeQuietly(s); } return result[0]; }
From source file:edwardawebb.queueman.classes.NetFlix.java
public boolean getNewETag(int queueType, int discPosition) { URL QueueUrl = null;//from ww w.ja v a 2 s . co m DefaultHandler myQueueHandler = null; boolean result = false; //start index is 0 based, so step the true position down one String expanders = "?max_results=" + 1 + "&start_index=" + (discPosition - 1); InputStream xml = null; try { switch (queueType) { case NetFlixQueue.QUEUE_TYPE_INSTANT: QueueUrl = new URL( "http://api.netflix.com/users/" + user.getUserId() + "/queues/instant" + expanders); myQueueHandler = new InstantETagHandler(); break; case NetFlixQueue.QUEUE_TYPE_DISC: QueueUrl = new URL( "http://api.netflix.com/users/" + user.getUserId() + "/queues/disc/available" + expanders); myQueueHandler = new DiscETagHandler(); break; } setSignPost(user.getAccessToken(), user.getAccessTokenSecret()); HttpURLConnection request = (HttpURLConnection) QueueUrl.openConnection(); NetFlix.oaconsumer.sign(request); request.connect(); lastResponseMessage = request.getResponseCode() + ": " + request.getResponseMessage(); if (request.getResponseCode() == 200) { xml = request.getInputStream(); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp; sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); xr.setContentHandler(myQueueHandler); //our custom handler will throw an exception when he gets what he want, interupting the full parse ErrorProcessor errors = new ErrorProcessor(); xr.setErrorHandler(errors); xr.parse(new InputSource(xml)); result = true; } } catch (ParserConfigurationException e) { reportError(e, lastResponseMessage); } catch (SAXException e) { reportError(e, lastResponseMessage); } catch (IOException e) { reportError(e, lastResponseMessage); // Log.i("NetFlix", "IO Error connecting to NetFlix queue") } catch (OAuthMessageSignerException e) { reportError(e, lastResponseMessage); // Log.i("NetFlix", "Unable to Sign request - token invalid") } catch (OAuthExpectationFailedException e) { reportError(e, lastResponseMessage); // Log.i("NetFlix", "Expectation failed") } return result; }
From source file:com.xmobileapp.rockplayer.LastFmAlbumArtImporter.java
/********************************* * //w ww . j av a 2 s. co m * getArtistArt * *********************************/ private String getArtistArt(String artistName) { try { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); SAXParser saxParser; saxParser = saxParserFactory.newSAXParser(); XMLReader xmlReader; xmlReader = saxParser.getXMLReader(); XMLArtistInfoHandler xmlHandler = new XMLArtistInfoHandler(); xmlReader.setContentHandler(xmlHandler); /* * Get artist art from Last.FM */ String artistNameFiltered = filterString(artistName); URL lastFmApiRequest = new URL( this.LAST_FM_ARTIST_GETINFO_URL + "&artist=" + URLEncoder.encode(artistNameFiltered)); BufferedReader in = new BufferedReader(new InputStreamReader(lastFmApiRequest.openStream())); xmlReader.parse(new InputSource(in)); if (xmlHandler.xlargeAlbumArt != null) { return xmlHandler.xlargeAlbumArt; } else if (xmlHandler.largeAlbumArt != null) { return xmlHandler.largeAlbumArt; } else if (xmlHandler.mediumAlbumArt != null) { return xmlHandler.mediumAlbumArt; } return null; } catch (ParserConfigurationException e) { e.printStackTrace(); return null; } catch (SAXException e) { e.printStackTrace(); return null; } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } }
From source file:com.xmobileapp.rockplayer.LastFmAlbumArtImporter.java
/********************************* * //www .ja v a 2 s.co m * getAlbumArtByAlbumName * *********************************/ private String getAlbumArtByAlbumName(String albumName, String artistName) { try { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); SAXParser saxParser; saxParser = saxParserFactory.newSAXParser(); XMLReader xmlReader; xmlReader = saxParser.getXMLReader(); XMLAlbumSearchHandler xmlHandler = new XMLAlbumSearchHandler(); xmlReader.setContentHandler(xmlHandler); /* * Get artist art from Last.FM */ String artistNameFiltered = filterString(artistName); String albumNameFiltered = filterString(albumName); URL lastFmApiRequest = new URL( this.LAST_FM_ALBUM_SEARCH_URL + "&album=" + URLEncoder.encode(albumNameFiltered)); BufferedReader in = new BufferedReader(new InputStreamReader(lastFmApiRequest.openStream())); xmlReader.parse(new InputSource(in)); for (int i = 0; i < xmlHandler.albumSearchList.size(); i++) { AlbumSearch albumSearch = xmlHandler.albumSearchList.get(i); if (artistNameIsSimilarEnough(filterString(albumSearch.artistName), artistNameFiltered)) { if (albumSearch.xlargeAlbumArt != null) { return albumSearch.xlargeAlbumArt; } else if (albumSearch.largeAlbumArt != null) { return albumSearch.largeAlbumArt; } else if (albumSearch.mediumAlbumArt != null) { return albumSearch.mediumAlbumArt; } } } return null; } catch (ParserConfigurationException e) { e.printStackTrace(); return null; } catch (SAXException e) { e.printStackTrace(); return null; } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } }
From source file:edwardawebb.queueman.classes.NetFlix.java
/** * /*from ww w . j a v a2 s . co m*/ * @param disc * @param queueType * @return SubCode, httpResponseCode or NF_ERROR_BAD_DEFAULT on exception */ public int addToQueue(Disc disc, int queueType) { lastResponseMessage = ""; lastNFResponseMessage = ""; int result = NF_ERROR_BAD_DEFAULT; // 2 choirs, send request to netflix, and if successful update local q. OAuthConsumer postConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET, SignatureMethod.HMAC_SHA1); postConsumer.setTokenWithSecret(user.getAccessToken(), user.getAccessTokenSecret()); OAuthProvider postProvider = new DefaultOAuthProvider(postConsumer, REQUEST_TOKEN_ENDPOINT_URL, ACCESS_TOKEN_ENDPOINT_URL, AUTHORIZE_WEBSITE_URL); String expanders = "?expand=synopsis,formats"; InputStream xml = null; NetFlixQueue queue = null; URL QueueUrl = null; String eTag = null; URL url = null; try { // Construct data int queueSize = 0; switch (queueType) { case NetFlixQueue.QUEUE_TYPE_DISC: queueSize = NetFlix.discQueue.getTotalTitles(); if (queueSize == 0) getNewETag(queueType); // @ TODO This is for issue 41 if (disc.getPosition() > NetFlix.discQueue.getTotalTitles()) { disc.setPosition(NetFlix.discQueue.getTotalTitles()); } // @ TODO Move this to instnat once it works eTag = NetFlix.discQueue.getETag(); url = new URL("https://api.netflix.com/users/" + user.getUserId() + "/queues/disc" + expanders); break; case NetFlixQueue.QUEUE_TYPE_INSTANT: eTag = NetFlix.instantQueue.getETag(); url = new URL("https://api.netflix.com/users/" + user.getUserId() + "/queues/instant" + expanders); break; } // Log.d("NetFlix", "@URL: " + url.toString()) HttpClient httpclient = new DefaultHttpClient(); // Your URL HttpPost httppost = new HttpPost(url.toString()); postConsumer.setTokenWithSecret(user.getAccessToken(), user.getAccessTokenSecret()); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); // Your DATA nameValuePairs.add(new BasicNameValuePair("title_ref", disc.getId())); nameValuePairs.add(new BasicNameValuePair("position", "" + disc.getPosition())); nameValuePairs.add(new BasicNameValuePair("etag", eTag)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); postConsumer.sign(httppost); HttpResponse response; response = httpclient.execute(httppost); result = response.getStatusLine().getStatusCode(); xml = response.getEntity().getContent(); lastResponseMessage = response.getStatusLine().getStatusCode() + ": " + response.getStatusLine().getReasonPhrase(); /* Log.d("NetFlix", "" + response.getEntity().getContentType().toString()); BufferedReader in = new BufferedReader(new InputStreamReader(xml)); String linein = null; while ((linein = in.readLine()) != null) { Log.d("NetFlix", "AddMovie: " + linein); } if(true) return 200; //^ avoids the parser since we consumed xml for debug */ // Log.i("NetFlix", "Parsing XML Response") SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp; sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); QueueHandler myHandler = null; switch (queueType) { case NetFlixQueue.QUEUE_TYPE_DISC: myHandler = (AddDiscQueueHandler) new AddDiscQueueHandler(); break; case NetFlixQueue.QUEUE_TYPE_INSTANT: myHandler = (AddInstantQueueHandler) new AddInstantQueueHandler(); break; } xr.setContentHandler(myHandler); xr.parse(new InputSource(xml)); result = myHandler.getSubCode(result); if (myHandler.getMessage() != null) { //we may have an error from netflix, check it lastResponseMessage += " NF:" + result + ", " + myHandler.getMessage(); lastNFResponseMessage = myHandler.getMessage(); } else { lastNFResponseMessage = "No Message"; } //extra code to catch 502 } catch (IOException e) { reportError(e, lastResponseMessage); // Log.i("NetFlix", "IO Error connecting to NetFlix queue") } catch (OAuthMessageSignerException e) { reportError(e, lastResponseMessage); } catch (OAuthExpectationFailedException e) { reportError(e, lastResponseMessage); } catch (ParserConfigurationException e) { reportError(e, lastResponseMessage); } catch (SAXException e) { reportError(e, lastResponseMessage); } finally { if (result == 502) { HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("Queue Type:", "" + NetFlixQueue.queueTypeText[queueType]); parameters.put("HTTP Result:", "" + lastResponseMessage); parameters.put("User ID:", "" + user.getUserId()); parameters.put("Disc ID:", "" + disc.getId()); parameters.put("Position:", "" + disc.getPosition()); parameters.put("Availability:", "" + disc.isAvailable() + ", " + disc.getAvailibilityText()); parameters.put("URL:", "" + url); FlurryAgent.onEvent("AddToQueue502", parameters); } } return result; }
From source file:Writer.java
/** Main program entry point. */ public static void main(String argv[]) { // is there anything to do? if (argv.length == 0) { printUsage();/* www . java 2 s .c o m*/ System.exit(1); } // variables Writer writer = null; XMLReader parser = null; boolean namespaces = DEFAULT_NAMESPACES; boolean namespacePrefixes = DEFAULT_NAMESPACE_PREFIXES; boolean validation = DEFAULT_VALIDATION; boolean externalDTD = DEFAULT_LOAD_EXTERNAL_DTD; boolean schemaValidation = DEFAULT_SCHEMA_VALIDATION; boolean schemaFullChecking = DEFAULT_SCHEMA_FULL_CHECKING; boolean honourAllSchemaLocations = DEFAULT_HONOUR_ALL_SCHEMA_LOCATIONS; boolean validateAnnotations = DEFAULT_VALIDATE_ANNOTATIONS; boolean generateSyntheticAnnotations = DEFAULT_GENERATE_SYNTHETIC_ANNOTATIONS; boolean dynamicValidation = DEFAULT_DYNAMIC_VALIDATION; boolean xincludeProcessing = DEFAULT_XINCLUDE; boolean xincludeFixupBaseURIs = DEFAULT_XINCLUDE_FIXUP_BASE_URIS; boolean xincludeFixupLanguage = DEFAULT_XINCLUDE_FIXUP_LANGUAGE; boolean canonical = DEFAULT_CANONICAL; // process arguments for (int i = 0; i < argv.length; i++) { String arg = argv[i]; if (arg.startsWith("-")) { String option = arg.substring(1); if (option.equals("p")) { // get parser name if (++i == argv.length) { System.err.println("error: Missing argument to -p option."); } String parserName = argv[i]; // create parser try { parser = XMLReaderFactory.createXMLReader(parserName); } catch (Exception e) { try { Parser sax1Parser = ParserFactory.makeParser(parserName); parser = new ParserAdapter(sax1Parser); System.err.println("warning: Features and properties not supported on SAX1 parsers."); } catch (Exception ex) { parser = null; System.err.println("error: Unable to instantiate parser (" + parserName + ")"); e.printStackTrace(System.err); } } continue; } if (option.equalsIgnoreCase("n")) { namespaces = option.equals("n"); continue; } if (option.equalsIgnoreCase("np")) { namespacePrefixes = option.equals("np"); continue; } if (option.equalsIgnoreCase("v")) { validation = option.equals("v"); continue; } if (option.equalsIgnoreCase("xd")) { externalDTD = option.equals("xd"); continue; } if (option.equalsIgnoreCase("s")) { schemaValidation = option.equals("s"); continue; } if (option.equalsIgnoreCase("f")) { schemaFullChecking = option.equals("f"); continue; } if (option.equalsIgnoreCase("hs")) { honourAllSchemaLocations = option.equals("hs"); continue; } if (option.equalsIgnoreCase("va")) { validateAnnotations = option.equals("va"); continue; } if (option.equalsIgnoreCase("ga")) { generateSyntheticAnnotations = option.equals("ga"); continue; } if (option.equalsIgnoreCase("dv")) { dynamicValidation = option.equals("dv"); continue; } if (option.equalsIgnoreCase("xi")) { xincludeProcessing = option.equals("xi"); continue; } if (option.equalsIgnoreCase("xb")) { xincludeFixupBaseURIs = option.equals("xb"); continue; } if (option.equalsIgnoreCase("xl")) { xincludeFixupLanguage = option.equals("xl"); continue; } if (option.equalsIgnoreCase("c")) { canonical = option.equals("c"); continue; } if (option.equals("h")) { printUsage(); continue; } } // use default parser? if (parser == null) { // create parser try { parser = XMLReaderFactory.createXMLReader(DEFAULT_PARSER_NAME); } catch (Exception e) { System.err.println("error: Unable to instantiate parser (" + DEFAULT_PARSER_NAME + ")"); e.printStackTrace(System.err); continue; } } // set parser features try { parser.setFeature(NAMESPACES_FEATURE_ID, namespaces); } catch (SAXException e) { System.err.println("warning: Parser does not support feature (" + NAMESPACES_FEATURE_ID + ")"); } try { parser.setFeature(NAMESPACE_PREFIXES_FEATURE_ID, namespacePrefixes); } catch (SAXException e) { System.err.println( "warning: Parser does not support feature (" + NAMESPACE_PREFIXES_FEATURE_ID + ")"); } try { parser.setFeature(VALIDATION_FEATURE_ID, validation); } catch (SAXException e) { System.err.println("warning: Parser does not support feature (" + VALIDATION_FEATURE_ID + ")"); } try { parser.setFeature(LOAD_EXTERNAL_DTD_FEATURE_ID, externalDTD); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + LOAD_EXTERNAL_DTD_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err .println("warning: Parser does not support feature (" + LOAD_EXTERNAL_DTD_FEATURE_ID + ")"); } try { parser.setFeature(SCHEMA_VALIDATION_FEATURE_ID, schemaValidation); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + SCHEMA_VALIDATION_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err .println("warning: Parser does not support feature (" + SCHEMA_VALIDATION_FEATURE_ID + ")"); } try { parser.setFeature(SCHEMA_FULL_CHECKING_FEATURE_ID, schemaFullChecking); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + SCHEMA_FULL_CHECKING_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println( "warning: Parser does not support feature (" + SCHEMA_FULL_CHECKING_FEATURE_ID + ")"); } try { parser.setFeature(HONOUR_ALL_SCHEMA_LOCATIONS_ID, honourAllSchemaLocations); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + HONOUR_ALL_SCHEMA_LOCATIONS_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println( "warning: Parser does not support feature (" + HONOUR_ALL_SCHEMA_LOCATIONS_ID + ")"); } try { parser.setFeature(VALIDATE_ANNOTATIONS_ID, validateAnnotations); } catch (SAXNotRecognizedException e) { System.err.println("warning: Parser does not recognize feature (" + VALIDATE_ANNOTATIONS_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println("warning: Parser does not support feature (" + VALIDATE_ANNOTATIONS_ID + ")"); } try { parser.setFeature(GENERATE_SYNTHETIC_ANNOTATIONS_ID, generateSyntheticAnnotations); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + GENERATE_SYNTHETIC_ANNOTATIONS_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println( "warning: Parser does not support feature (" + GENERATE_SYNTHETIC_ANNOTATIONS_ID + ")"); } try { parser.setFeature(DYNAMIC_VALIDATION_FEATURE_ID, dynamicValidation); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + DYNAMIC_VALIDATION_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println( "warning: Parser does not support feature (" + DYNAMIC_VALIDATION_FEATURE_ID + ")"); } try { parser.setFeature(XINCLUDE_FEATURE_ID, xincludeProcessing); } catch (SAXNotRecognizedException e) { System.err.println("warning: Parser does not recognize feature (" + XINCLUDE_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println("warning: Parser does not support feature (" + XINCLUDE_FEATURE_ID + ")"); } try { parser.setFeature(XINCLUDE_FIXUP_BASE_URIS_FEATURE_ID, xincludeFixupBaseURIs); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + XINCLUDE_FIXUP_BASE_URIS_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println( "warning: Parser does not support feature (" + XINCLUDE_FIXUP_BASE_URIS_FEATURE_ID + ")"); } try { parser.setFeature(XINCLUDE_FIXUP_LANGUAGE_FEATURE_ID, xincludeFixupLanguage); } catch (SAXNotRecognizedException e) { System.err.println( "warning: Parser does not recognize feature (" + XINCLUDE_FIXUP_LANGUAGE_FEATURE_ID + ")"); } catch (SAXNotSupportedException e) { System.err.println( "warning: Parser does not support feature (" + XINCLUDE_FIXUP_LANGUAGE_FEATURE_ID + ")"); } // setup writer if (writer == null) { writer = new Writer(); try { writer.setOutput(System.out, "UTF8"); } catch (UnsupportedEncodingException e) { System.err.println("error: Unable to set output. Exiting."); System.exit(1); } } // set parser parser.setContentHandler(writer); parser.setErrorHandler(writer); try { parser.setProperty(LEXICAL_HANDLER_PROPERTY_ID, writer); } catch (SAXException e) { // ignore } // parse file writer.setCanonical(canonical); try { parser.parse(arg); } catch (SAXParseException e) { // ignore } catch (Exception e) { System.err.println("error: Parse error occurred - " + e.getMessage()); if (e instanceof SAXException) { Exception nested = ((SAXException) e).getException(); if (nested != null) { e = nested; } } e.printStackTrace(System.err); } } }
From source file:net.sf.joost.stx.Processor.java
/** * Constructs a new <code>Processor</code> instance by parsing an * STX transformation sheet.//from w w w . ja va 2 s .c o m * @param reader the parser that is used for reading the transformation * sheet * @param src the source for the STX transformation sheet * @param pContext a parse context * @throws IOException if <code>src</code> couldn't be retrieved * @throws SAXException if a SAX parser couldn't be created */ public Processor(XMLReader reader, InputSource src, ParseContext pContext) throws IOException, SAXException { if (reader == null) reader = createXMLReader(); // create a Parser for parsing the STX transformation sheet Parser stxParser = new Parser(pContext); reader.setContentHandler(stxParser); reader.setErrorHandler(pContext.getErrorHandler()); // parse the transformation sheet reader.parse(src); init(stxParser.getTransformNode()); // re-use this XMLReader for processing setParent(reader); }
From source file:nl.b3p.wms.capabilities.WMSCapabilitiesReader.java
public ServiceProvider getProvider(ByteArrayInputStream in) { //Nu kan het service provider object gemaakt en gevuld worden serviceProvider = new ServiceProvider(); XMLReader reader = null; try {// w w w .jav a 2 s. c om reader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader(); } catch (SAXException ex) { } IgnoreEntityResolver r = new IgnoreEntityResolver(); reader.setEntityResolver(r); reader.setContentHandler(s); InputSource is = new InputSource(in); is.setEncoding(KBConfiguration.CHARSET); try { reader.parse(is); } catch (Exception ex) { } return serviceProvider; }
From source file:nl.b3p.wms.capabilities.WMSCapabilitiesReader.java
public ServiceProvider getProvider(String location, B3PCredentials credentials, String remoteAddr) throws IOException, SAXException, Exception { ByteArrayOutputStream getCap = getCapabilities(location, credentials, remoteAddr); //String xml = getCapabilities(location, username, password); ByteArrayInputStream in = new ByteArrayInputStream(getCap.toByteArray()); //Nu kan het service provider object gemaakt en gevuld worden serviceProvider = new ServiceProvider(); XMLReader reader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader(); // niet zinvol met IgnoreEntityResolver hierna // reader.setFeature(VALIDATION_FEATURE, true); // reader.setFeature(SCHEMA_FEATURE, true); IgnoreEntityResolver r = new IgnoreEntityResolver(); reader.setEntityResolver(r);/*from w w w . ja v a 2s .c om*/ reader.setContentHandler(s); InputSource is = new InputSource(in); is.setEncoding(KBConfiguration.CHARSET); reader.parse(is); if (serviceProvider == null) { log.error("Host: " + location + " error: No service provider object could be created, unkown reason!"); throw new Exception( "Host: " + location + " error: No service provider object could be created, unkown reason!"); } return serviceProvider; }