[Home] [By Thread] [By Date] [Recent Entries]


> >>| Assuming that it is possible to declare a PE named 'percent' with a 
> >>| literal '%', is the following allowed?
> >>| 
> >>| <!ENTITY %percent; x "value">
> >>
> >>Permissible in SGML - should be okay in XML.
> > 
> > 
> > Accepted by MSXML4.
> > 
> > Rejected by 
> > - Expat: "Unclosed token" 
> >   (it seems Expat considers % followed by a name one token)
> 
> That's a bug in expat I think.  Try this (tested with expat 1.2):
> 
> --- xmltok/xmltok_impl.c        20 Oct 2000 04:17:27 -0000      1.42
> +++ xmltok/xmltok_impl.c        3 Jul 2003 02:08:48 -0000
> @@ -881,7 +881,7 @@
>                          const char **nextTokPtr)
>   {
>     if (ptr == end)
> -    return XML_TOK_PARTIAL;
> +    return -XML_TOK_PERCENT;
>     switch (BYTE_TYPE(enc, ptr)) {
>     CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr)
>     case BT_S: case BT_LF: case BT_CR: case BT_PERCNT:

Seems to work for current Expat too, so I committed your patch already. 
This is the first Expat bug found in a long time.

Karl

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member