<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE feed [
<!ENTITY a 'http://www.w3.org/2005/Atom'>
<!ENTITY b '&e;&f;&g;&h;&i;'>
<!ENTITY c 'tag:xn--8ws00zhy3a.com,2006-05-04:/tests/atom/obfuscated/'>
<!ENTITY d 'http://www.xn--8ws00zhy3a.com/tests/atom/obfuscated/'>
<!ENTITY e '<title>Obfuscated Atom</title>
<updated>2007-10-19T00:00:00+00:00</updated>
<id>&c;</id><link rel="alternate" href=""
<link rel="self" href=""
<author><name>James Holderness</name></author>'>
<!ENTITY % a '<entry><title>This is title #'>
<!ENTITY % b '</title><updated>2007-10-18T23:'>
<!ENTITY % c ':00+00:00</updated><id>&c;'>
<!ENTITY % d '</id><link href=""
<!ENTITY % e '.html"/><summary type="html">
This is the <code>summary</code> for entry number '>
<!ENTITY % f '.</summary></entry>'>
<!ENTITY % g '<!ENTITY f "%a;1%b;59%c;1%d;1%e;1%f;">'>
<!ENTITY % h '<!ENTITY g "%a;2%b;58%c;2%d;2%e;2%f;">'>
<!ENTITY % i '<!ENTITY h "%a;3%b;57%c;3%d;3%e;3%f;">'>
<!ENTITY % j '<!ENTITY i "%a;4%b;56%c;4%d;4%e;4%f;">'>
%g;%h;%i;%j;
]>
<feed xmlns="&a;">&b;</feed>
I've revisited above mentioned example. Now I've parsed the above cited XML document instance with expat (which I believe is an underlying XML parser for mozilla) command line (I've built a custom windows .exe from my C program that I've compiled and linked using expat library). The document parses fine, without errors. I'm not able to review visually (since there are too many entity cross references), all the entity definitions and references within above mentioned XML. Assuming that, all entity references are defined, I could say that, expat doesn't have a bug :). Am I right?
Following are few other XML documents, that I've parsed with expat, and the parsing results are mentioned as well,
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE feed [
<!ENTITY a '
http://test1'>
<!ENTITY e 'hello'>
<!ENTITY b '&e;'>
]>
<feed xmlns="&a;">&b;</feed>
The above XML document instance, parses without errors.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE feed [
<!ENTITY a '
http://test1'>
<!ENTITY e1 'hello'>
<!ENTITY b '&e;'>
]>
<feed xmlns="&a;">&b;</feed>
The above example, results in following parsing error (because, entity definition for 'e' is missing),
Parse error at line 7:
undefined entity