private static final Schema getSchemaFromURL(final SchemaFactoryProvider sfp,
			URL... systemID) throws JDOMException {
		if (systemID == null) {
			throw new NullPointerException("Cannot specify a null input array");
		}
		if (systemID.length == 0) {
			throw new IllegalArgumentException("You need at least one " +
					"XSD source for an XML Schema validator");
		}
		InputStream[] streams = new InputStream[systemID.length];
		try {
			Source[] sources = new Source[systemID.length];
			for (int i = 0; i < systemID.length; i++) {
				if (systemID[i] == null) {
					throw new NullPointerException("Cannot specify a null SystemID");
				}
				InputStream is = null;
				try {
					is = systemID[i].openStream();
				} catch (IOException e) {
					throw new JDOMException("Unable to read Schema URL " +
							systemID[i].toString(), e);
				}
				streams[i] = is;
				sources[i] = new StreamSource(is, systemID[i].toString());
			}
			return getSchemaFromSource(sfp, sources);
		} finally {
			for (InputStream is : streams) {
				if (is != null) {
					try {
						is.close();
					} catch (IOException ioe) {
						// swallow it.
					}
				}
			}
		}
	}