Nested entity declarations in DTDs

[email protected]
Newsgroups gmane.text.xml.devel
Message-ID <2647ebe6-6f6a-48dc-9d64-f1ccf1779eb0@Spark>
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="&d;"/>
 <link rel="self" href="&d;1_4.atom"/>
 <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="&d;'>
<!ENTITY % e '.html"/><summary type="html">
 This is the <code>summary</code> for entry number '>
<!ENTITY % f '.</summary></entry>'>
<!ENTITY % g '<!ENTITY f "&#37;a;1&#37;b;59&#37;c;1&#37;d;1&#37;e;1&#37;f;">'>
<!ENTITY % h '<!ENTITY g "&#37;a;2&#37;b;58&#37;c;2&#37;d;2&#37;e;2&#37;f;">'>
<!ENTITY % i '<!ENTITY h "&#37;a;3&#37;b;57&#37;c;3&#37;d;3&#37;e;3&#37;f;">'>
<!ENTITY % j '<!ENTITY i "&#37;a;4&#37;b;56&#37;c;4&#37;d;4&#37;e;4&#37;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. :)

Regards

Daniel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.