Next in thread → Next in month →

Re: [xml-dev] Allowed PEReference usages

From
Karl Waclawek <>
To
James Clark <>
Date
2003-07-03T04:04:43Z
ID
<001901c34118$3c71fe30$027ca8c0@karl>
Thread
Re: [xml-dev] Allowed PEReference usages
> >>| 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
Next in thread → Next in month →