try {
// somewhat akward work-around to avoid making MSV a compile-time dependency
SAXParserFactory factory = (SAXParserFactory) ClassLoaderUtil.newInstance(
"com.sun.msv.verifier.jaxp.SAXParserFactoryImpl");
factory.setNamespaceAware(true);
SAXParser saxParser = factory.newSAXParser();
// would be nice to set the property on the XMLReader (instead of the SAXParser), but that wouldn't work
saxParser.setProperty("http://www.sun.com/xml/msv/schema", source);
parser = saxParser.getXMLReader();
// find root filter, if any