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.


Reply via email to