[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DTD and Illegal Construct
- From: Marcus Carr <email@example.com>
- To: Jim Shain <Jim.Shain@alltel.com>
- Date: Thu, 11 Jan 2001 08:28:52 +1100
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: firstname.lastname@example.org
Allette Systems (Australia) www: http://www.allette.com.au
"Everything should be made as simple as possible, but not simpler."