It appears that the DOMLSInput.setStringData method behaves as if it has been passed XMLByte*, rather than XMLCh*

The following code fragment succeeds,

std::string grammar = "<schema xmlns='http://www.w3.org/2001/ XMLSchema' targetNamespace='anyXml'><element name='xml' type='anyType'/ ></schema>";
DOMLSInput*  ginput = ((DOMImplementationLS*)impl)->createLSInput();
ginput->setEncoding(XMLUni::fgUTF8EncodingString);
ginput->setStringData((XMLCh*)grammar.c_str());     //nasty!
parser->loadGrammar(ginput, Grammar::SchemaGrammarType, true);

(success)

The following code fragment fails.

XMLCh grammar[] = {'<','s','c','h','e' [[[[ ..same as above but as XMLCh...]]]] '>',chNull};
DOMLSInput*  ginput = ((DOMImplementationLS*)impl)->createLSInput();
ginput->setStringData(grammar);
parser->loadGrammar(ginput, Grammar::SchemaGrammarType, true);

(fail)



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to