Re: [xml] Old bug in xmlSchemaValidateOneElement function

On Tue, Mar 05, 2013 at 07:04:49AM +0000, Csaba László wrote:
Recently I have run into the very same problem Tiberius Duluman did back in Wed, 13 May 2009 15:56:55 +0300 
([xml] Bug in xmlSchemaValidateOneElement function). Now I can proof now that his problem is a valid 
problem. I checked the latest available version of xmlschemas.c (2.9.0.) and the problem is still there!
I think I'v found a solution to the problem which I'd like proof with you:
My quick solution to the problem is to replace line 27849 in xmlschemas.c (v2.9.0.) in function 
    valRoot = xmlDocGetRootElement(vctxt->doc);
with this one:
    valRoot = vctxt->validationRoot ? vctxt->validationRoot : xmlDocGetRootElement(vctxt->doc);
Currently I'm using version 2.7.8. in Windows and this change seems to solve the problem.
Would you be so kind the certify if this change is OK and will not harm something I do not see.

  Hi László,

sorry for the delay, your mail bounced because you are not subscribed
and I only saw it today (and would you mind subscribing at least until
we fix the issue ?

Yes the change looks sensible, but going back to Tiberius Duluman
mail I fetched RFC 4479, and the validation fails for a different

xmllint --noout --schema rfc4479_0.xsd rfc4479_0.xml
rfc4479_0.xml:6: element presence: Schemas validity error : Element
'{urn:ietf:params:xml:ns:pidf}presence': No matching global declaration
available for the validation root.

and indeed the RFC uses that schemas but doesn't define or reference it.
Do you have a simpler example which would be usable as a reproducing
test case for the regression suite ?



Daniel Veillard      | Open Source and Standards, Red Hat
veillard redhat com  | libxml Gnome XML XSLT toolkit | virtualization library

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]