[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DTD Entity
- From: Charles Reitzel <creitzel@mediaone.net>
- To: Richard Knapp <warped_user@yahoo.com>
- Date: Sat, 10 Mar 2001 14:50:45 -0500
I don't think you're missing anything. It appears to be a limitation of the DTD content model rules.
You might elaborate all the combinations:
<!ELEMENT Base ( First,
( Second? | Third? | Fourth?
| (Second, Third) | (Third, Second)
| (Third, Fourth) | (Fourth, Third)
| (Second, Third, Fourth)
| (Fourth, Second, Third)
| (Third, Fourth, Second)
| (Third, Second, Fourth)
| ... you get the idea ...
)
)
>
The problems w/ this are a) it runs the risk of becoming non-deterministic (I can't tell by looking) and b) the number of combinations will explode quickly with more child elements.
As a practical matter, you'll have to choose. If lack of order is most important, go with ( First, (Second|Third|Fourth)* ). If ordinality is most important (0 or 1 vs. 0 or more vs. 1 or more), go with your original.
take it easy,
Charles Reitzel
At 09:29 AM 3/10/01 -0500, you wrote:
>Since it isn't quite dead yet (just mortally wouned), I have a question DTD Elements.
>
>Note: Beginner's question is being posed. Please excuse any cases of gross lack of knowledge.
>
>We are working on DTD with the following requirement:
>
>- Base element consists of Child elements First, Second, Third, and Fourth.
>- First must appear under Base.
>- Second, Third, and Fourth may appear zero or one time.
>- Order is not important for elements Second, Third, and Fourth.
>
>The original statement in my DTD was
>
><!ELEMENT Base (First, Second?, Third?, Fourth?)>
>
>Which imposes an order constraint on the elements. It was suggested that
>
><!ELEMENT Base (First (Second|Third|Fourth)?)>
>
>was more correct. However, this appears it will allow only Second, Third, _or_ Fourth element, not all three. Is
>this correct?
>
>Conversely:
>
><!ELEMENT Base (First (Second|Third|Fourth)*)>
>
>seems to allow enough elements (zero or one of each) but also allows more than one.
>
>Is there a good way to address this situation or is this a limit of DTDs? Do Schemas handle this any better?
take it easy,
Charles Reitzel
- References:
- DTD Entity
- From: Richard Knapp <warped_user@yahoo.com>