Mixed Content Models
Chris Maden
crism at oreilly.com
Mon Sep 21 21:06:36 BST 1998
[Jerome McDonough]
> In looking over the XML spec (3.2.2) on mixed content models,
> something isn't clear to me. I'm hoping someone here can enlighten
> me.
>
> I've inherited a DTD for development that was originally
> intended to be an SGML DTD, and has been converted to XML.
> Contained within it is the following:
>
> <!ELEMENT qstn (#PCDATA | (preQTxt?, qstnLit?, postQTxt?, forward?,
> backward?, ivuInstr*))*
>
> Is this a legitimate content model under XML section 3.2.2?
No. See production [51]. A mixed content declaration MUST be of the
forms
<!ELEMENT e-type1 (#PCDATA | sub1 | sub2 | sub3)*>
<!ELEMENT e-type2 (#PCDATA)>
This is not optional.
> Msxml doesn't have a problem with it, and nsgmls using the -wxml
> flag also happily parses the DTD. IBM's xml4j, however, complains:
> "Codebook.dtd: 1256, 33: This content model is not matched with the
> mixed model '(#PCDATA|FOO|BAR|. . .|BAZ)*': '(#PCDATA|(preQTxt?,
> qstnLit?, postQTxt?,forward?,backward?,ivuInstr*))*".
I'm a little surprised that nsgmls doesn't catch this; however, the
-wxml option warns about some, or even most, XML errors, but not all
of them.
Fortunately, your content model is equivalent to
<!ELEMENT qstn (#PCDATA | preQTxt | qstnLit | postQTxt | forward |
backward | ivuInstr)*>
so this isn't a real problem. In some cases, it is true that content
models will need to be either tightened or loosened to be expressed as
XML (notably models involving exceptions).
-Chris
--
<!NOTATION SGML.Geek PUBLIC "-//Anonymous//NOTATION SGML Geek//EN">
<!ENTITY crism PUBLIC "-//O'Reilly//NONSGML Christopher R. Maden//EN"
"<URL>http://www.oreilly.com/people/staff/crism/ <TEL>+1.617.499.7487
<USMAIL>90 Sherman Street, Cambridge, MA 02140 USA" NDATA SGML.Geek>
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