Lists Home |
Date Index |
- From: Chris Maden <email@example.com>
- To: firstname.lastname@example.org
- Date: Mon, 21 Sep 1998 15:04:34 -0400 (EDT)
> 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
> 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 . 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
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).
<!NOTATION SGML.Geek PUBLIC "-//Anonymous//NOTATION SGML Geek//EN">
<!ENTITY crism PUBLIC "-//O'Reilly//NONSGML Christopher R. Maden//EN"
<USMAIL>90 Sherman Street, Cambridge, MA 02140 USA" NDATA SGML.Geek>
xml-dev: A list for W3C XML Developers. To post, mailto:email@example.com
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:firstname.lastname@example.org the following message;
To subscribe to the digests, mailto:email@example.com the following message;
List coordinator, Henry Rzepa (mailto:firstname.lastname@example.org)