Hello! SAX2Counter.exe which is included in XERCES already performs a check against an xsd. Maybe this is a good starting point.
Sincerely, Daniel Von: Franck Houssen [mailto:f...@hotmail.com] Gesendet: Montag, 19. März 2012 13:29 An: c-users@xerces.apache.org Betreff: How to validate a xml file that refers to an xsd file using sax parser provided by Xerces-C++ ? Hello, I try without success to validate a xml file that refers to an xsd file using sax parser provided by Xerces-C++ ? The following code does not work ( parsing a not well-formed xml will report error as expected, but an invalid xml - with respect to xsd - will not report error ) : XMLPlatformUtils::Initialize (); SAXParser * pParser = new SAXParser (); if ( pParser ) { pParser -> setDoSchema ( true ); pParser -> setLoadSchema ( true ); pParser -> setExternalNoNamespaceSchemaLocation ( xsdFile.c_str () ); pParser -> setValidationScheme ( SAXParser::Val_Auto ); pParser -> setValidationSchemaFullChecking ( true ); pParser -> setValidationConstraintFatal ( true ); SaxParserHandler handler; // SaxParserHandler derives from HandlerBase pParser -> setDocumentHandler ( &handler ); pParser -> setErrorHandler ( &handler ); pParser -> parse ( xmlFile.c_str () ); delete pParser; pParser = NULL; } XMLPlatformUtils::Terminate (); I want the parse to stop if the xml is not compliant with the xsd. Bonus if I don't have to handle "by hand" the xsd ( setExternalNoNamespaceSchemaLocation ) : is there a way to tell the parser to validate automatically the xml with xsd in case xml refers to a xsd ? Can somebody help me on that ? FH