Re: [xml] libxml2 does xmlSchemaValidateDoc() support xml schema extensions?
- From: Piotr Sipika <piotreks optonline net>
- To: Andy Davidson <andy_davidson apple com>
- Cc: xml gnome org
- Subject: Re: [xml] libxml2 does xmlSchemaValidateDoc() support xml schema extensions?
- Date: Tue, 13 Dec 2011 10:19:09 -0500
On 12/12/2011 09:12 PM, Andy Davidson wrote:
Does anyone know if libxml2
supports http://www.w3.org/TR/xmlschema-0/#DerivExt ?
Yes, libxml2 does support complex type derivation by extension. I am
aware of one bug inside libxml2 schema processing, but that is with
simple-list-type extensions, and it does not apply in your case.
Do I need to tweak my validation code ?
I think so.
Your instance document with your attached schema validates fine with
xmllint (libxml2 validation tool):
$ xmllint --noout zoo.xml --schema zoo.xsd
zoo.xml validates
I wrote a sample program (in C) to attempt to mimic what you have, and
was able to successfully validate the instance against the schema you
provided.
$ ./zoo zoo.xml zoo.xsd
Attempting to validate zoo.xml with zoo.xsd
Document in zoo.xml is valid
One thing I would suggest is NOT releasing any of the resources
associated with the schema before validation (do that after, instead).
//xmlSchemaFree(schema); causes crash when we try to use validCtxt
xmlSchemaFreeParserCtxt(parserCtxt);
xmlFreeDoc(schemaDoc);
//
http://www.xmlsoft.org/html/libxml-xmlschemas.html#xmlSchemaValidateDoc
int error = xmlSchemaValidateDoc(validCtxt.validCtxt, doc);
if (error == 0) {
NSLog(@"document is a valid instance of %@", schemaFileName);
ret = YES;
}
Also, what's the difference between passing validCtxt instead of
validCtxt.validCtxt into the xmlSchemaValidateDoc() function?
Good luck!
P
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]