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: Elements order:




Christopher R. Maden wrote:

> Yes.  SGML had an "and" connector:
> <!ELEMENT data - - (name & surname & age & gender)>
> would require exactly one each of name, surname, age, and gender, in any orde
> r.
>
> However, there were concerns that the way SGML mandated the interpretation
> of this content model was not easily implemented.  This capability, without
> SGML's restrictions, is back in Schemas.


AIUI, W3C XML Schema places even *more* restrictions on 'all'
groups than SGML does for '&' groups.  If I'm interpreting the Rec
correctly, it doesn't allow <xsd:all> groups to be used inside
other model groups, and the members of an <xsd:all> group
are limited to single elements (optionally optional).

The main trouble with '&' groups in SGML is that they aren't
*quite* what's needed in the case of repeatable subelements.
For example, in SGML:

    <!ELEMENT HEAD - - (TITLE & BASE? & LINK* & META*) >

allows the sequences 'TITLE,LINK,LINK,META' and
'TITLE,META,LINK,LINK', but not 'TITLE,LINK,META,LINK'.
Specifying the desired content model is rather tricky
even with '&' groups.

TREX (and RELAX-NG?) have a more powerful (and simpler!)
'interleave' operator which does the right thing for this
sort of case.

It's not hard to express in Schematron either.  I don't
think this construct is even possible to specify with
W3C XML Schemas (though I may be mistaken).


--Joe English

  jenglish@flightlab.com