OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Constraining a "mixed" mixed content model (XHTML <div>)

[ Lists Home | Date Index | Thread Index ]

In XHTML, several elements, such as <div>, may contain what's called
mixed content. Here's the mixed content model for <div>:

   <!ELEMENT div (#PCDATA | %Block.class; | %Inline.class;)*>

%Block.class; includes several block-level (structural) elements, and
%Inline.class includes several inline-level (text) elements.

The mixed content model for <div> allows strange combinations which
are valid but which are definitely unacceptable. For example, the
following is valid XHTML, but definitely not very pretty:

   <div>Some text.<p>Some more text.</p> And <em>more</em> text.</div>

I'd like to constrain the DTD content model, if at all possible, so
<div> may have one, and only one, of the following:

Either 1)   (%Block.class)*
Or     2)   (#PCDATA | %Inline.class;)*

(Thereby the "mixed" mixed content example given above will not
validate to the constrained DTD content model I seek.)

Anyway, I did some experimentation with some content models. Here's
one content model I tried which, in a purely logical way, makes sense:

   <!ELEMENT div (((#PCDATA | %Inline.class;)*) | ((%Block.class;)*))>

However, it definitely caused problems with TurboXML which analyzed it
and gave the following error message:

"#PCDATA may only appear in the top-level group of a content model"

I'm getting the sinking feeling there's no way to build the content
model I'd like in XML, at least which would work in a DTD. If not,
why not? Would XML Schema or RelaxNG resolve the issue?

Thanks in advance...

Mark
-- 
  Mark O. Zorro
  markozorro@fastmail.fm

-- 
http://www.fastmail.fm - Same, same, but different…





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS