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
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to