Hi Neil,
thanks for the hint. That did part of the trick.
I still have to do
parser->setProperty(XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation,
"");
though, to get the parsing working (actually I can set the prop to any
arbitrary value).
I do not understand why, but as long as it is working ...
Thanks
Udo
Neil Graham wrote:
Hi Udo,
Why are you setting
parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, false); // (default:
true)
Namespace processing is rather an integral part of schema assessment.
Haven't tried in a while, but I'm not sure you can do schema validation
when this feature is disabled.
Cheers,
Neil
Neil Graham
Manager, XML Parser Development
IBM Toronto Lab
Phone: 905-413-3519, T/L 969-3519
E-mail: [EMAIL PROTECTED]
Udo Schifferdecker <[EMAIL PROTECTED]>
Sent by: news <[EMAIL PROTECTED]>
05/20/2005 11:28 AM
Please respond to
c-dev
To
[email protected]
cc
Subject
SAX2XMLReader does not honor schema supplied thru loadGrammar()
Hi,
I am trying to validate xml files against a schema using a
SAX2XMLReader. I want to supply the schema thru loadGrammar().
The problem is that loadGrammar seems to work, but the parser
obviously ignores the loaded schema.
Here is my code (I am using xerces 2.4):
<<---snip--->>>
...
LocalFileInputSource
mySchemaSource(XMLString::transcode("path_to_schema_file"));
...
SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
// set features
parser->setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true); //
(default: false)
parser->setFeature(XMLUni::fgSAX2CoreValidation, true); // (default:
true)
parser->setFeature(XMLUni::fgXercesDynamic, false); // (default: false)
parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, false); // (default:
true)
parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes , false); //
(default: false)
parser->setFeature(XMLUni::fgXercesSchema, true); // (default: true)
parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true); //
(default: false)
parser->setFeature(XMLUni::fgXercesContinueAfterFatalError, false); //
(default: false)
parser->setFeature(XMLUni::fgXercesValidationErrorAsFatal, true); //
(default: false)
// load the grammar
if (!parser->loadGrammar(mySchemaSource, (short)
Grammar::SchemaGrammarType, true /* cache the grammar */))
{
// error
...
}
// set the error handler for validation and debugging
MyDefaultHandler handler;
parser->setContentHandler(&handler);
parser->setErrorHandler(&handler);
// parse the xml file
try {
parser->parse("path_to_xmlFile");
}
...
<<---snip--->>>
The parsing/validation always fails, because the schema is not found.
Is this a bug or am I doing something wrong?
TIA
Udo
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]