Order of #PCDATA in dtd - relevant? or XP bug?

Glenn Kronschnabl (grk@arlut.utexas.edu)
Tue, 22 Sep 1998 23:07:34 -0500


A simple DTD that causes a syntax error in XP.
If you run the following dtd thru both jade
and XP, it runs fine thru jade but XP gives a
syntax error. The only difference is the order
of the % inline and #PCDATA.

So, given this, does imply that the order of #PCDATA
is relevant or is this a genuine XP bug?

-- doc.dtd --
<?xml version="1.0"?>

<!-- the following line works in both jade and XP
<!ENTITY % inline "#PCDATA|emphasis"> -->

<!-- the following line works in jade but NOT in XP -->
<!ENTITY % inline "emphasis|#PCDATA">

<!ELEMENT doc (toc,div+)>
<!ELEMENT toc EMPTY>
<!ELEMENT div (title,(div|p)+)>
<!ATTLIST div
id CDATA #IMPLIED
name ID #IMPLIED>
<!ELEMENT title (%inline;)*>
<!ELEMENT p (%inline;)*>
<!ELEMENT emphasis (#PCDATA)>
<!-- end of DTD -->

-- a.xml --
<?xml version="1.0"?>
<!DOCTYPE doc PUBLIC "-//Kronschnabl//DTD DOC//EN" "doc.dtd">
<doc>
<toc/>
<div id="div1"><title>div 1 title</title>
<p>
div 1 paragraph
</p>
</div>
<div id="div2"><title>div 2 title</title>
<p>
div 2 paragraph
</p>
</div>
</doc>
<!-- end of a.xml -->

Example showing jade working:

% jade -c catalog -d hstyle.dsl xml.dcl a.xml
%

Example using XP:

% java com.jclark.xml.apps.Time a.xml
file:/home/grk/area51/doc.dtd:12:17: syntax error
0.361