[Standards-JIG] sequence vs. choice in Jabber/XMPP schemas
stpeter at jabber.org
Mon Aug 15 22:51:52 UTC 2005
Peter Saint-Andre wrote:
> Traditionally, old-style Jabber implementations did not care about the
> order of elements. When we began to define XML schemas rather than DTDs
> for JEPs and (later) the XMPP RFCs, we used xs:sequence (prioritizing
> more careful specification of the number of allowable child elements)
> rather than xs:choice (which would have prioritized allowing any order
> of child elements). Even though the existing schemas are described as
> informative rather than normative, people have used them for
> compliance-testing purposes. The predictable result is that existing
> implementations have failed the compliance tests. I see several possible
> approaches to remediation:
> 1. Keep using xs:sequence and require existing implementations to pay
> attention to the order of child elements.
> 2. Switch to xs:choice and care less about the number of allowable child
> 3. Define two different sets of schemas: a strict one following (1) and
> a loose one following (2).
> 4. Switch from W3C XML Schema to a different schema language, such as
> RELAX NG, Schematron, or Examplotron.
Oh, and FWIW I favor (3).
Jabber Software Foundation
More information about the Standards