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 Entity



This was one of those simplifications from SGML that XML has taken. In SGML
there was the '&' and that allowed you to say A and B and C in any order
but only once.

XML Schemas have added this feature back into their content models.

..dan


At 02:50 PM 3/10/2001 -0500, Charles Reitzel wrote:
>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
>
>

---------------------------------------------------------------------------
Danny Vint
ACORD
dvint@acord.org
http://www.acord.org

Voice:510:522-4703
 FAX: 801-749-3229