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

<!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).

<!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