On Thu, Jan 03, 2008 at 03:34:07PM -0800, David Zhuo wrote:
>
> hi All,
> I have a schema and a XML file and used xmllint to verify that the XML
> is in fact confirm to the schema. The rare problem I am running into
> is that different version of xmllint will have very different behavior
> and I am not certain which version is at fault. Here is an example:
> $ /usr/bin/xmllint --version
> /usr/bin/xmllint: using libxml version 20620
> compiled with: DTDValid FTP HTTP HTML C14N Catalog XPath XPointer
> XInclude Iconv Unicode Regexps Automata Schemas Modules
> $ /usr/bin/xmllint --noout --schema
> [1]http://www.youtube.com/xsd/metadata_0.2.xsd /tmp/test.xml
> /tmp/test.xml validates
> a new version 20623, however, fails:
> $ /usr/bin/xmllint --version
> /usr/bin/xmllint: using libxml version 20623
> compiled with: Threads Tree Output Push Reader Patterns Writer
> SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer
> XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas
> Schematron Modules Debug
> $ /usr/bin/xmllint --noout --schema
> [2]http://www.youtube.com/xsd/metadata_0.2.xsd /tmp/test.xml
> /tmp/test.xml:18: element keywords: Schemas validity error : Element
> '{ [3]http://search.yahoo.com/mrss}keywords': [facet 'pattern'] The
> value 'London,Sci Fi,Aliens' is not accepted by the pattern
> '(.*,){2,}.*'.
> /tmp/test.xml:18: element keywords: Schemas validity error : Element
> '{ [4]http://search.yahoo.com/mrss}keywords': 'London,Sci Fi,Aliens'
> is not a valid value of the local atomic type.
> /tmp/test.xml fails to validate
> the test is performed with the same XML and schema and the only
> different is the version of xmllint used. Build version 20620
> successfully validate the XML while version 20623 does not.
> the sample XML is attached. can someone tell me if this is a bug or
> not?
There have been some rather nasty bugs introduced, and then fixed in libxml2
regexp engine over the last 2 years. I really suggest you try with very recent
versions for XSD validation like 2.6.30
In your example it seems the regexp should match as your string includes at
least 2 commas, and indeed the latest version validates it:
laptop:~/XML -> ./testRegexp '(.*,){2,}.*' 'London,Sci Fi,Aliens'
Testing (.*,){2,}.*:
London,Sci Fi,Aliens: Ok
laptop:~/XML ->
Daniel
--
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
[EMAIL PROTECTED] | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml