public SAXParseException[] validate(Source source) throws IOException { SAXParser parser = createSAXParser(); ValidationErrorHandler errorHandler = new ValidationErrorHandler(); try { if (source instanceof SAXSource) { validateSAXSource((SAXSource) source, parser, errorHandler); } else if (source instanceof StreamSource) { validateStreamSource((StreamSource) source, parser, errorHandler); } else if (source instanceof DOMSource) { validateDOMSource((DOMSource) source, parser, errorHandler); } else { throw new IllegalArgumentException("Source [" + source.getClass().getName() + "] is neither SAXSource, DOMSource, nor StreamSource"); } return errorHandler.getErrors(); } catch (SAXException ex) { throw new XmlValidationException("Could not validate source: " + ex.getMessage(), ex); } }