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 -> 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 -> > Interestingly, the same problem is not present for parser errors. If > there is a parser error around that same line, the line number is > reported correctly. yeah when parsing the parser context is given back to __xmlRaiseError and it extracts an exact line number Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ [email protected] | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] https://mail.gnome.org/mailman/listinfo/xml
