[
Lists Home |
Date Index |
Thread Index
]
- From: David Megginson <ak117@freenet.carleton.ca>
- To: Russell East <reast@esri.com>
- Date: Wed, 10 Dec 1997 14:27:19 -0500
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@freenet.carleton.ca
Microstar Software Ltd. dmeggins@microstar.com
http://home.sprynet.com/sprynet/dmeggins/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|