W3C home > Mailing lists > Public > public-exi-comments@w3.org > September 2008

[EXI] Circular production with no terminal symbol

From: Yuri Delendik <yury_exi@yahoo.com>
Date: Sun, 21 Sep 2008 17:13:58 -0700 (PDT)
To: public-exi-comments@w3.org
Message-ID: <85497.38904.qm@web83204.mail.mud.yahoo.com>

Hello,

In some instances during elimination of productions with no terminal symbol (8.5.4.2.1) infinite loops can appear in forms:
 G_(i,j): 
  G_(i,j)

Or
 G_(i,j): 
  G_(i,k)
 G_(i,k): 
  G_(i,l)
 G_(i,l): 
  G_(i,k)

Eliminating them using only algorithm is not trivial and produce variations therefore may produce different grammars for same XSD schema on different implementations.

Source of those productions is particle {max occurs} = unbound.

Also, in paragraph when additional copy of Term_0 generated for unbound particle restrictions “k > 0” is missing. When 
 G_({min occurs}, 0):
  EE

 is replaced by:
 G_({min occurs}, 0):
  G_({min occurs}, 0)

Which is circular production with no terminal symbol and I cannot find well-documented way to eliminate it.

Could you illustrate how to convert following schema to EXI normalized grammars?

  <xsd:element name="el1">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="el1_1" minOccurs="1" maxOccurs="unbounded">
          <xsd:complexType />
        </xsd:element> 
      </xsd:sequence>
      <xsd:attribute name="at1" type="xsd:string" >
    </xsd:complexType>
  </xsd:element>

Thank you.
Received on Monday, 22 September 2008 00:16:04 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 22 September 2008 00:16:05 GMT