Hi Daniel,

Thanks a lot, I do appreciate your effort, time, and kindness.

Also wanted to let you know, it's not that I didn't want to spend my
time on it, you know I'm using libxml2 seriously. Actually I've been
debugging this issue for a long time, including reading libxml source
code, trimming down the xsd file for all kinds of testings. Trust me, I
did spend lots of time on it.

As for my xsd file, I knew it had "non-deterministic" problem (that is,
name uniqueness violation), I used a Java xsd validator and it showed me
the problem. But libxml2 should show me the same error (instead, it went
into infinite loop), that's something I want to fix.

Yes the xsd file is auto-generated, your comments remind me to make it
more readable (or user-friendly). I'll see if I can do something about
it.

Again, thanks a lot. I'll fix my xsd issue. And where can I see the bug
fix and optimization code? (in the bugzilla)?

Best,
Yong Chen


> -----Original Message-----
> From: Daniel Veillard [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, November 01, 2006 7:07 AM
> To: Yong Chen (yongche)
> Cc: [email protected]
> Subject: Re: [xml] bug 362989
> 
> On Tue, Oct 31, 2006 at 08:00:59PM -0500, Daniel Veillard wrote:
> > On Tue, Oct 31, 2006 at 02:25:49PM -0800, Yong Chen (yongche) wrote:
> > This is the epsilon transition elimination in the graph of 
> transition.
> > Each time someone tried to point out that the 
> implementation of this 
> > function was broken it was something else, it's just where 
> the problem 
> > usually show up, the error being the construction of the graph 
> > automata. Of course the construct in the automata are a bit 
> more complex than in the book.
> >   It is not trivial, it takes serious concentration and 
> time to really 
> > understand where the problem comes from. The bigger the 
> example, the 
> > bigger the automatas, the more time it takes. You may start to 
> > understand why I insist on getting a reduced problem.
> 
>   I spent 3 hours on the problem, a large part of it trying 
> to understand your schemas. And I found a bug, really not 
> obvious, and a couple of optimizations.
> 
> >   I would also like to raise the point of the 'niceness' of 
> that schemas.
> > It seems to me trying to understand the semantic of that is 
> near impossible,
> >   <xs:group ref="optional_group_4" minOccurs="0" 
> maxOccurs="1"/> looks 
> > like automatically generated schemas with names without semantic 
> > constant references to labels, making even harder to get 
> the full picture.
> > It's a bit like asking to debug code which was 
> automatically generated 
> > i.e. even more painful than when you can extract the 
> semantic of the 
> > code.
> 
>   I guess you will appreciate the fact that I think I fixed the bug:
> 
> paphio:~/XML -> xmllint --timing --noout --schema 362989.xsd test.xml
> 362989.xsd:23: element complexType: Schemas parser error : 
> complex type 'access-list_type': The content model is not determinist.
> WXS schema 362989.xsd failed to compile
> Compiling the schemas took 1195 ms
> Parsing took 0 ms
> Freeing took 0 ms
> paphio:~/XML -> 
> 
>   I guess you now need to fix your schemas, it it not 
> deterministic, and hence should be rejected by any correct 
> XSD implementation. Let's say I really did *not* enjoy 
> debugging in your schemas, still I'm kind and will give you 
> the reason leading to my believing it's broken:
>     - see the content model for access-list_type
>     - notice how all groups direct or derived use minOccurs="0"
>     - notice how all elements in the content model also have 
> minOccurs="0"
>     - notice that element "src_addr" is defined by both
>       block_group_18 and block_group_3
>     - block_group_18 is referenced by block_group_17
>     - block_group_3 is referenced by block_group_2
>     - block_group_2 is referenced by access-list_type
>     - block_group_17 is referenced by access-list_type
> 
>  so this can't be determinist, your schemas is broken
> 
> 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

Reply via email to