Re: [xml-dev] New release (2.8) of XSV

On Mon, Oct 11, 2004 at 02:56:55PM +0100, Henry S. Thompson wrote:
> Right, that works fine for exponents on individual elements, but I
> don't see how it works for groups.
> 
> Here's a real example from a published schema document [1]:
> 
> <xsd:sequence minOccurs="0" maxOccurs="1000">
>     <xsd:element ref="ReferenceIdentification" minOccurs="0"/>
>     <xsd:element ref="Message" minOccurs="0" maxOccurs="1000"/>
> </xsd:sequence>
> 
> Or consider a (constructed) case that's tricky in a different way:
> 
> <xsd:sequence minOccurs="2" maxOccurs="2">
>     <xsd:element ref="a" minOccurs="1" maxOccurs="2"/>
>     <xsd:element ref="b" minOccurs="0"/>
> </xsd:sequence>
> 
> which allows _inter alia_
> 
>  <a/><a/>
>  <a/><a/><a/>
>  <a/><a/><a/><a/>

  I (or Kasimier) would have to double-check how that last case is handled,
but I think one need counted epsilon transitions in that case. Which has
the annoying effect that the reduction of the automata to find and elimitate
ambiguous branches is harder, but I think the existing epsilon elimination
algorithm still work as usual, you just have to make sure the newly generated
transitions reuse the same counter as the epsilon they replace.
  But I definitely need to double check this when I have time...

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | 

Received on Monday, 11 October 2004 15:17:46 UTC