What is the error in this XML doc.

Thillai (thillai@ix.netcom.com)
Sun, 18 Oct 1998 21:16:23 -0400


I have a XML file called x.xml and the content is

<?xml version="1.0" standalone="no"?>
<!DOCTYPE A [
<!ENTITY ref SYSTEM "y.xml">
]>
<A>
&ref;
</A>

and y.xml, the content is

<B>123</B>
<B>456</B>

I am able to parse the Document with root node as A and two children nodes B. No error.

If I change the XML file x.xml to

<?xml version="1.0" standalone="no"?>
<!DOCTYPE A [
<!ENTITY ref SYSTEM "y.xml">
<!ELEMENT B (#PCDATA)>
<!ELEMENT A (B*)>
]>
<A>
&ref;
</A>

and when I read the x.xml using readStream(buf) I am getting the following error.

c:\proj\x.xml: 9, 5: Content mismatch in `<A>'. Content model is ``(B)*'.

I am not sure whether it is a valid XML doc or not. I belive without those two lines in
the DTD it is a well formed document. But when add those two rules it becomes
an invalid document. Basically what I am trying to do is x.xml will have root element
and y.xml will have the contents of the root element A. Please give me an
idea what I am doing wrong and how it should be. (I am using IBM XML parser.)

Thillai
AT&T, Middletown, NJ