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


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DTD and Illegal Construct

Jim Shain wrote:

> I wanted to run this past some knowledgeable people.  Is the following a legal
> or illegal construct for an element in a DTD?
>  <!ELEMENT Request ((A, B, C?) | (A?, B, C?, D))>
> Some have stated that it is illegal because "When A is present it isn't possible
> to determine whether or not D is required."

That's corrrect - the content model is illegal because it is non-deterministic. The
intent is preserved in a legal model by changing it to:

   <!ELEMENT Request     ((A, B, C?, D?) | (B, C?, D))>


Marcus Carr                      email:  mrc@allette.com.au
Allette Systems (Australia)      www:    http://www.allette.com.au
"Everything should be made as simple as possible, but not simpler."
       - Einstein