Hello all,
I was wondering if anyone could help clarify an aspect of the specification for DTDs; I am currently working on an XML parser, but have never really used DTDs myself.
http://www.詹姆斯.com/blog/2007/10/obfuscated-atom
In the above URL, there is a DTD (copied below) with nested entity declarations, is this valid?
<?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>
Saxon and the XSLT processor in Chrome both say no, but if you try the processor in Firefox it appears to process fine.
http://xsltfiddle.liberty-development.net/jy6KM8g
Any pointers in the right direction would be appreciated, many thanks in advance. :)