Singletons in a DTD

Terje Norderhaug terje at
Thu May 13 19:37:27 BST 1999

At 8:46 AM 5/13/99, Joshua E. Smith wrote:
>I have an element which can contain 0 or more instances of some element
>types (call these collections), and 0 or 1 instances of others (call these
>singletons), and I don't want to contrain the order.
>If I have collections C1, C2, C3
>and I have singletons S1, S2, S3
>And I declare:
>(S1? , S2? , S3? , (C1 | C2 | C3)*)
>Then the singletons, if they appear, would have to be in that order and
>would have to be first.  So that's not what I want.
>I suppose I could declare some combinatorics:
>( S1? | S2? | S3? | (S1 , S2)? | (S2 , S1)? | (S1 , S3)? blah blah blah
>but I'd have to mix in the C1, C2, C3, etc., too, and I have about 8
>singleton classes, so this would quickly get totally out of control.
>Am I missing something, or is what I want to describe not really practical
>in a DTD?  I'm perfectly comfortable leaving the singletonness out of my
>DTD (my application will detect duplication errors anyway), if that's the
>only answer.  But if there *is* a way to capture this without waiting for
>XSchema to be finished, I'd love to hear it!

The AND '&' connector in SGML covered this functionality, but isn't
included in XML. It can thus easily be described in a DTD, just not an

-- Terje <Terje at> | Media Design in*Progress

   Software for Mac Web Professionals at <>
   Take advantage of XML with Emile, the first XML editor for Mac.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list