Emmanuel Guiton wrote:
Hello,
I want to force an XML document validation using an XML Schema.
I am trying to register an XMLEntityResolver handler to do that (Iam
suing a DOMParser). Quite difficult for a beginner like me since the
documentation on http://xml.apache.org/xerces-c/apiDocs is wrong.
The C++ documentation is generated from the source code using Doxygen, so I
don't know what you mean by saying it's "wrong." Is it out-of-date? Does
it not answer your questions? It's always helpful to know what's wrong, so
we can fix it.
Does someone have good hints (a webpage with an example?) on how to
register an XMLEntityResolver handler?
You cannot force validation using an XMLEntityResolver, although you can
force the parser to use a particular schema document or documents. Can you
describe exactly what you're doing? For example, users often forget to set
all of the options necessary for schema validation.
Or does someone have a simpler way to validate an XML file against an
XML schema (which is stored on my local filesystem)? I've tried using
setExternalSchemaLocation without any success.
As long as the document element contains a reference to the schema location
hint you provided, and the proper options are set, it should work. Have
you taken a look at the sample applications to see how to enable
validation? SAX2Print is a good place to start.
Another option for forcing validation against a particular schema is to use
the proprietary loadGrammar() API. You can then set the feature to use the
cached grammar during parsing:
http://xml.apache.org/xerces-c/program-sax2.html#use-cached
Dave