Mixed content not working for me
David Megginson
ak117 at freenet.carleton.ca
Wed Dec 10 19:28:05 GMT 1997
Russell East writes:
> How come the following doesn't work?
> <!ELEMENT a (#PCDATA|(a*)) >
>
> I basically want my element a to either form an hierarchy
> *or* have some text data.
>
> But it seems I'm forced to have
> <!ELEMENT a (#PCDATA|a)* >
XML bans this type of mixed content because it has been causing
trouble in full SGML for over a decade. The problem comes with
something like this:
<a>
<a></a>
</a>
After an SGML parser reads the opening <a> tag, it doesn't know
whether the element will contain #PCDATA or subelements. The first
character it reads is a linefeed -- that's character data, so the
parser assumes that it is reading #PCDATA; when the parser finds the
<a> tag a few characters later it throws an error.
You need to do two things:
1) submit a bug report to Microsoft; and
2) create a new subelement to hold the text:
<!ELEMENT a (text|a)>
<!ELEMENT text (#PCDATA)>
Now you can have
<a>
<text>This is some text</text>
<a>
or
<a>
<a>This is a subelement</a>
</a>
All the best,
David
--
David Megginson ak117 at freenet.carleton.ca
Microstar Software Ltd. dmeggins at microstar.com
http://home.sprynet.com/sprynet/dmeggins/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list