Hi All,
Can anyone provide an example of how validation can be performed against schema
loaded in any string buffer. I have tried various optiona but I am not getting
any success.
What I am trying to do is:
fstream in("my.xsd");
string s, line;
while(getline(in, line))
s += line;
XMLPlatformUtils::Initialize ();
MemoryManager* mm = new MemoryManagerImpl();
XMLGrammarPool* gp = new XMLGrammarPoolImpl(mm);
XercesDOMParser* parser = NULL;
parser = new XercesDOMParser(0, XMLPlatformUtils::fgMemoryManager, gp);
parser->setCreateCommentNodes(false);
parser->setDoNamespaces(true);
parser->setValidationScheme(XercesDOMParser::Val_Always);
parser->setDoSchema(true);
parser->setValidationSchemaFullChecking(true);
parser->setIncludeIgnorableWhitespace(false);
parser->cacheGrammarFromParse(true);
parser->useCachedGrammarInParse(true);
parser->setLoadSchema(true);
parser->setHandleMultipleImports(true);
MemBufInputSource mem_buf((XMLByte*)s.c_str(),
strlen(s.c_str()),
"fake_buf",
false);
if(!parser->loadGrammar(mem_buf, Grammar::SchemaGrammarType, true)) // Grammer
loads without error
return -1;
delete parser;
parser = new XercesDOMParser(0, XMLPlatformUtils::fgMemoryManager, gp);
parser->setCreateCommentNodes(false);
parser->setDoNamespaces(true);
parser->setValidationScheme(XercesDOMParser::Val_Always);
parser->setDoSchema(true);
parser->setValidationSchemaFullChecking(true);
parser->setIncludeIgnorableWhitespace(false);
parser->cacheGrammarFromParse(true);
parser->useCachedGrammarInParse(true);
parser->setLoadSchema(true);
parser->setHandleMultipleImports(true);
parser->parse("my_xml.xml"); // Here parsing fails
if(parser->getErrorCount() > 0)
return -1;
Kindly suggest me what am I doing wrong.
With Best Regards
Gaurav Sharma
The information contained in this electronic mail transmission
may be privileged and confidential, and therefore, protected
from disclosure. If you have received this communication in
error, please notify us immediately by replying to this
message and deleting it from your computer without copying
or disclosing it.