On Mon, Aug 13, 2012 at 6:54 AM, Daniel Veillard <[email protected]> wrote:
> On Fri, Aug 10, 2012 at 09:24:56PM +0200, Johan Corveleyn wrote:
>> On Fri, Aug 10, 2012 at 11:27 AM, Daniel Veillard <[email protected]> 
>> wrote:
>> > On Fri, Aug 10, 2012 at 10:03:39AM +0200, Johan Corveleyn wrote:
>> >> On Fri, Aug 10, 2012 at 9:43 AM, Daniel Veillard <[email protected]> 
>> >> wrote:
>> > [...]
>> >> >  That said there are ways to get "long" line numbers stored in adjacent
>> >> > nodes c.f. xmlGetLineNo()
>> >> >   But not knowing how you actually use the parser nor how you
>> >> > use the schemas validation, I cant tell if you can extract full line
>> >> > numbers. It should be possible in the xmlReader for example.
>> >> > But I don't know how you validate, maybe this could be added, but
>> >> > I have no details from you to reproduce your specific situation so ...
>> >>
>> >> Thanks for the information.
>> >>
>> >> The problem I'm seeing is with schema validation of xmllint. Schema
>> >> validation errors happening after line 65535 are always reported by
>> >> xmllint as line 65535. If you'd like I can draw up a quick example, or
>> >> write a script to generate such a file and then reproduce it.
>> >>
>> >> So maybe that particular problem is only in xmllint's usage of the
>> >> libraries (when doing schema validation), and maybe that can be fixed
>> >> there by accessing those long line numbers?
>> >>
>> >
>> > an instance would compress very well I assume :) send that, the schemas
>> > and show me how you're running xmllint. XSD can be validated though a
>> > normal tree, the reader or SAX. there might be ways to get extended line
>> > informations in all case in a controlled environment like xmllint.
>>
>> Ok, here is an example in attachment (it compressed very well indeed :-)).
>>
>> The xml file has a schema validation error at line 72720 (level1
>> element without level2 child).
>>
>> When I run:
>>
>>     xmllint --noout --schema test_schema.xsd test_xml.xml
>>
>> I get:
>>
>>     test_xml.xml:65535: element level1: Schemas validity error :
>> Element 'level1': Missing child element(s). Expected is ( level2 ).
>>     test_xml.xml fails to validate
>>
>
>   Sigh ... okay, fixed for xmllint with tree support:
>
> thinkpad:~/XML -> xmllint --noout --schema test_schema.xsd test_xml.xml
> test_xml.xml:72721: element level1: Schemas validity error : Element
> 'level1': Missing child element(s). Expected is ( level2 ).
> test_xml.xml fails to validate
> thinkpad:~/XML ->

Great! Thanks for fixing this.

Will this be in 2.9.0, or will it have to wait for the next release?

>   see the commit for details:
>
>   
> http://git.gnome.org/browse/libxml2/commit/?id=968a03a2e54f5bcf53089f5e3c8f790dbe0bf824
>
> but that doesn't fix it for the reader or SAX mode, I would have
> to investigate further
>
> thinkpad:~/XML -> xmllint --stream --noout --schema test_schema.xsd
> test_xml.xml
> Schemas validity error : Element 'level1': Missing child element(s).
> Expected is ( level2 ).
> test_xml.xml fails to validate
> thinkpad:~/XML -> xmllint --sax --noout --schema test_schema.xsd
> test_xml.xmlSchemas validity error : Element 'level1': Missing child
> element(s). Expected is ( level2 ).
> test_xml.xml fails to validate
> thinkpad:~/XML ->

Yeah, having those fixed would be nice too of course. But having
already one possible way to get validation with the correct line
numbers is very much appreciated.

-- 
Johan
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to