Hi Alberto (and all you other folks who might be reading this),
Just a quick follow up with thanks for the help ;)
Validating XML Schema schema documents actually works with Xerces C if
you use W3C's DTD. I can also confirm your findings, it seems impossible
to validate with W3C's schema (and probably any other because of the
namespace issue).
I actually wrote a special InputStream that stitches a <!DOCTYPE ...> in
front of an XML document if there is none, which comes quite handy for
the typical schema (most examples come without one).
With this, schema validation works fine in my test driver.
Thanks again for the pointers, they were a great help!
Cheers,
Uwe
Alberto Massari amassari-at-datadirect.com |xerces-c-users mailing list|
schrieb:
At 10.05 03/01/2007 +0100, [EMAIL PROTECTED] wrote:
Thanks for the response :)
--
> The only way you can test for a grammar to be valid is by loading
it using loadGrammar.
> Using the DTD or the XMLSchema provided by the specs will in any
case result in less validation checks than the ones listed in the
specs itself.
--
Hmm, but then I need to load it twice, once as DOM, and once as
grammar. I could live with less checks, however, I want to catch
things like elements that are in the wrong place or wrongly spelt
attributes that my DOM scanning code doesn't see because its not
looking for such errors.
Is there a way to validate a Schema directly via DTD or Schema,
without using loadGrammar?
I tried once to validate a schema using a reduced version of the XSD
for XMLSchema, and I gave up (after removing the definitions of the
built-in simple types, I think I got stuck with the fact that the
XMLSchema namespace is already known to Xerces); you may have better
luck using the DTD, but you will have to change the schema file to add
the DOCTYPE instruction.
Good luck,
Alberto
Cheers,
Uwe
Alberto Massari amassari-at-datadirect.com |xerces-c-users mailing
list| schrieb:
Hi Uwe,
At 23.22 02/01/2007 +0000, [EMAIL PROTECTED] wrote:
Hello folks,
My application processes XML Schema files on the DOM level (.xsd
files are parsed with XercesDOMParser::parse()). However, to detect
user errors in the schema files, I'd like to turn on validation for
them.
Is that at all possible?
The only way you can test for a grammar to be valid is by loading it
using loadGrammar.
Using the DTD or the XMLSchema provided by the specs will in any
case result in less validation checks than the ones listed in the
specs itself.
Alberto
I ran some tests with the schema for schemas, which XercesDOMParser
rejects (I assume that's because its built-in types are redefined).
I also tried to feed the schema DTD into the parser, without
success (Xerces seems to expect a schema rather than a DTD when it
requests a resource for a namespace identifier)
Can anyone point me into the right direction?
I can post my test code as well if that helps.
Cheers,
Uwe
--------------------------------------
Protect yourself from spam,
use http://sneakemail.com