Thank you Michael, Indeed I had to set the namespace aware even for a document without namespace.
Best regards, A.Brillant Michael Glavassevich-3 wrote: > > XML schema validation requires namespace support. Check that the DOM > you're > passing in was created by a namespace-aware parser or created using > namespace-aware methods (e.g. Document.createElementNS()). > > Michael Glavassevich > XML Parser Development > IBM Toronto Lab > E-mail: mrgla...@ca.ibm.com > E-mail: mrgla...@apache.org > > alex77 <alex77...@hotmail.com> wrote on 01/23/2009 06:53:19 AM: > >> Hello, >> >> I try to validate an XML document (a DOM document built in memory) using > a >> Validator, I need the >> Xerces Validator for knowing the exact DOM part having error. >> >> Using Xerces 2.9.1, I can't validate my document, each time it returns me >> that It can't find the declaration of the Root element. If I switch to > the >> default the JDK 5 validator, it works ?? >> >> Someone have an idea ? Why Xerces can't find the root declaration ? I'm > sure >> my XSD document correct and the path is correct too. Tracing It seems > Xerces >> doesn't load correctly the grammar in the XMLSchema. >> >> Thank you for your help ! >> >> import java.io.File; >> import java.io.IOException; >> import java.net.URL; >> >> import javax.xml.XMLConstants; >> import javax.xml.transform.dom.DOMSource; >> import javax.xml.validation.Schema; >> import javax.xml.validation.SchemaFactory; >> import javax.xml.validation.Validator; >> >> import org.w3c.dom.Document; >> import org.xml.sax.ErrorHandler; >> import org.xml.sax.SAXException; >> import org.xml.sax.SAXParseException; >> >> public class XSDValidator implements ErrorHandler { >> >> private Validator validator = null; >> >> public XSDValidator( String schemaURI ) throws Exception { >> >> System.setProperty( >> "javax.xml.validation.SchemaFactory:" + >> XMLConstants.W3C_XML_SCHEMA_NS_URI, >> "org.apache.xerces.jaxp.validation.XMLSchemaFactory" ); >> >> SchemaFactory schemaFactory = SchemaFactory.newInstance( >> XMLConstants.W3C_XML_SCHEMA_NS_URI ); >> Schema schema = null; >> if ( schemaURI.indexOf( "://" ) > -1 ) >> schema = >> schemaFactory.newSchema( >> new URL( schemaURI ) ); >> else >> schema = >> schemaFactory.newSchema( >> new File( schemaURI ) >> ); >> >> validator = schema.newValidator(); >> validator.setErrorHandler( this ); >> >> } >> >> private boolean error = false; >> private String errorMessage = null; >> >> public boolean validate( Document source ) { >> error = false; >> errorMessage = null; >> try { >> >> validator.validate( new DOMSource( source ) ); >> >> } catch (SAXException e) { >> errorMessage = e.getMessage(); >> error = true; >> } catch (IOException e) { >> errorMessage = e.getMessage(); >> error = true; >> } >> return !error; >> } >> >> public String getErrorMessage() { return errorMessage; } >> >> public void error(SAXParseException exception) throws SAXException { >> if ( !error ) { >> errorMessage = exception.getMessage(); >> // validator.getProperty( >> "http://apache.org/xml/properties/dom/current-element-node" ); >> error = true; >> } >> } >> >> public void fatalError(SAXParseException exception) throws > SAXException { >> if ( !error ) { >> errorMessage = exception.getMessage(); >> error = true; >> } >> } >> >> public void warning(SAXParseException exception) throws SAXException { >> } >> >> -- >> View this message in context: http://www.nabble.com/Can%27t- >> Validate-with-the-XMLSchemaFactory-tp21623156p21623156.html >> Sent from the Xerces - J - Users mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org >> For additional commands, e-mail: j-users-h...@xerces.apache.org >> > -- View this message in context: http://www.nabble.com/Can%27t-Validate-with-the-XMLSchemaFactory-tp21623156p21624612.html Sent from the Xerces - J - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org For additional commands, e-mail: j-users-h...@xerces.apache.org