Ampersand followed by semicolon in XML: possible bug?
![](https://secure.gravatar.com/avatar/114f07f31e228d83eece631b0937df73.jpg?s=120&d=mm&r=g)
Hello list, I've found what it looks like a bug in XML handling in ConTeXt. Try this: \startbuffer[test] <text> <!-- with following semicolon: ampersand and semicolon are eaten --> <p>Me & my friends; you & your friends.</p> <!-- without following semicolon: everything ok --> <p>Me & my friends. You & your friends.</p> <!-- way around: place a comment after the ampersand --> <p>Me &<!-- --> my friends; you & your friends.</p> </text> \stopbuffer \startxmlsetups xml:somesetups \xmlsetsetup{#1}{text}{xml:text} \xmlsetsetup{#1}{p}{xml:p} \stopxmlsetups \xmlregistersetup{xml:somesetups} \startxmlsetups xml:text \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\par\blank[line] \stopxmlsetups \starttext \xmlprocessbuffer{main}{test}{} \stoptext In the first case, the ampersand and the following semicolon are eaten up. I've found a way around, until the bug is fixed (if it's a bug and not my limited knowledge of ConTeXt): put a XML comment after the ampersand, and everything works as expected.
![](https://secure.gravatar.com/avatar/114f07f31e228d83eece631b0937df73.jpg?s=120&d=mm&r=g)
I've seen that the ampersand gets interpreted as HTML on the mailing list. I'm sending the example as an attachment. Here's a modified version to be seen on the mailing list site: \startbuffer[test] <text> <!-- with following semicolon: ampersand and semicolon are eaten --> <p>Me & my friends; you & your friends.</p> <!-- without following semicolon: everything ok --> <p>Me & my friends. You & your friends.</p> <!-- way around: place a comment after the ampersand --> <p>Me &<!-- --> my friends; you & your friends.</p> </text> \stopbuffer \startxmlsetups xml:somesetups \xmlsetsetup{#1}{text}{xml:text} \xmlsetsetup{#1}{p}{xml:p} \stopxmlsetups \xmlregistersetup{xml:somesetups} \startxmlsetups xml:text \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\par\blank[line] \stopxmlsetups \starttext \xmlprocessbuffer{main}{test}{} \stoptext
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 9/29/2015 5:58 PM, massifr@fastwebnet.it wrote:
Hello list, I've found what it looks like a bug in XML handling in ConTeXt. Try this:
It's a side effect of a mechanism that is enables while it shouldn't (relates to dealing with escaped entities). Fixed in next beta. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
massifr@fastwebnet.it