Require non-empty sequence

This should cover W3C XML Schema, Relax NG and DTD related problems.
Posts: 77

Require non-empty sequence

Thu Jul 29, 2010 12:48 pm

I'm using Schema to define the structure of my XML. At this stage it's not going to be easy to switch to a different metalanguage.

Can I define an element <parent> that has a sequence of child elements which are individually optional (i.e. no specific one is required) but where at least one has to be present?

So the following are OK:


but the following are invalid:

I think this is impossible using just Schema, but perhaps I'm missing some easy way of doing it.
Site Admin
Posts: 2100

Re: Require non-empty sequence

Mon Aug 02, 2010 9:27 am

You can define that as a choice of

a followed by the other optional elements (b, c, d, etc.)
b followed by the other optional elements (c, d, etc.)
c followed by the other optional elements (d, etc.)

If you have 4 elements then in DTD like notation that will be

(a, b?, c?, d?) | (b, c?, d?) | (c, d?) | d

Best Regards,
George Cristian Bina

Return to “XML Schemas”

Who is online

Users browsing this forum: No registered users and 2 guests