code: void validateAgainstXMLSchemaList(Document doc, ArrayList<Object> xsdList,
  			ErrorHandler errHandler) throws SAXException, IOException {
  		jlogger.finer("Validating XML resource from " + doc.getDocumentURI());
  		Schema schema = SF.newSchema();
  		if (null != xsdList && !xsdList.isEmpty()) {
  			Source[] schemaSources = new Source[xsdList.size()];
  			for (int i = 0; i < xsdList.size(); i++) {
  				Object ref = xsdList.get(i);
  				if (ref instanceof File) {
  					schemaSources[i] = new StreamSource((File) ref);
  				} else if (ref instanceof URL) {
  					schemaSources[i] = new StreamSource(ref.toString());
  				} else if (ref instanceof char[]) {
  					schemaSources[i] = new StreamSource(new CharArrayReader(
  							(char[]) ref));
  				} else {
  					throw new IllegalArgumentException(
  							"Unknown schema reference: " + ref.toString());
  				}
  			}
  			schema = SF.newSchema(schemaSources);
  		}
docs: Validates an XML resource against a list of XML Schemas. Validation
  errors are reported to the given handler.
  
  @param doc
  The input Document node.
  @param xsdList
  A list of XML schema references. If the list is {@code null}
  or empty, validation will be performed by using location hints
  found in the input document.
  @param errHandler
  An ErrorHandler that collects validation errors.
  @throws SAXException
  If a schema cannot be read for some reason.
  @throws IOException
  If an I/O error occurs.