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



Richard Knapp scripsit:

> 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.

(First, ((Second, ((Third, Fourth?) | (Fourth, Third?))?) |
        (Third, ((Second, Fourth?) | (Fourth, Second?))?) |
        (Fourth, ((Second, Third?) | (Third, Second?))?)
        )?)

will do what you want.  Yes, it's verbose, and it doubles in length every time
you add a new optional element.  But it works.

That said, you should probably just impose a fixed order, and go with

(First, Second?, Third?, Fourth?)

BTW, Charles Reitzel's straight enumeration *is* non-deterministic,
so it won't work.