private static final Schema getSchemaFromSource(final SchemaFactoryProvider sfp, 
			Source... sources) throws JDOMException {
		if (sources == null) {
			throw new NullPointerException("Cannot specify a null input array");
		}
		if (sources.length == 0) {
			throw new IllegalArgumentException("You need at least one " +
					"XSD Source for an XML Schema validator");
		}
		try {
			SchemaFactory sfac = schemafactl.get();
			if (sfac == null) {
				sfac = sfp.getSchemaFactory();
				schemafactl.set(sfac);
			}
			if (sfac == null) {
				throw new JDOMException("Unable to create XSDSchema validator.");
			}
			return sfac.newSchema(sources);
		} catch (SAXException e) {
			String msg = Arrays.toString(sources);
			throw new JDOMException("Unable to create a Schema for Sources " +
					msg, e);
		}
	}