[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: DTD Entity

  • From: Charles Reitzel <creitzel@m...>
  • To: Richard Knapp <warped_user@y...>
  • Date: Sat, 10 Mar 2001 14:50:45 -0500

dtd entity
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@y...>

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.