Hi I am using the XercesDOMParser to validate (against an xsd schema) XML documents that *should not* contain namespace or schema location information. I do this (successfully) by using the parser's 'setExternalNoNamespaceSchemaLocation()' function.
My next goal is to prevent those same documents from ever specifying schema locations or namespaces so that my validation cannot be tricked - ie. I want to only ever validate these documents against my schema, and any other schema references should be ignored. I thought this would be possible by instantiating my parser like: XMLGrammarPool* grammarPool = new XMLGrammarPoolImpl(XMLPlatformUtils::fgMemoryManager); XercesDOMParser* parser = new XercesDOMParser(NULL, XMLPlatformUtils::fgMemoryManager, grammarPool); ... and then using: grammarPool->lockPool(); grammarPool->unlockPool(); grammarPool->clear(); parser->loadGrammar( schemaLocation Grammar::SchemaGrammarType, true ); ... to control what schema grammars the parser knows about. However this does not appear to work. When I attempt to parse and validate the following document (which does not conform to one of my schemas) I do not get any validation errors! <xt:test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xt="extra" xsi:schemaLocation="extra ~~extraSchemaPath~~" > This should <c>fail!</c> </xt:test> Is there something obvious that I am doing wrong? Regards Nathan p.s. I would be happy to post a little more of my code if necessary. I have recently I have successfully validated -- View this message in context: http://www.nabble.com/Validation-and-grammar-usage.-tp24949266p24949266.html Sent from the Xerces - C - Users mailing list archive at Nabble.com.