Comments on XML Schema 1.1

I've been asked to do a review of XML Schema 1.1.

Even though it is simpler than XML Schema 1.0, it remains a
substantial set of documents, so I have not drilled into every nook
and cranny. Instead I've focused on those things that I thought would
be relevant to XForms, XHTML 2, and XHTML M12N.

In terms of being incorporated into XForms at the processing level, I
don't see enormous benefits, although I do agree with Kenneth on the
items that he has outlined.

However, where I see XML Schema 1.1 having the potential to be most
helpful to us, is in the definition of XForms and XHTML 2 themselves.
I say 'potential' because we're in the process of using more and more
RelaxNG, so XML Schema may have 'missed the boat' from the point of
view of our languages.

Anyway, the following is merely intended as a 'heads-up' for the
groups, since I don't have any formal comments that I'd like to make
back to XML Schema Working Group.


ALTERNATIVES

The xs:alternative element [1] is a welcome addition, and will greatly
assist in the increasing modularisation of our languages. The
behaviour is essentially that the type of an element can be set based
on an XPath test:

  <xs:alternative test="@a='b'" type="c" />

or:

  <xs:alternative test="@a='b'">
    <!-- some new type on the fly -->
  </xs:alternative>

>From the way that the XPath test works, it is only possible to test
things that apply to the element itself, so you can't check parent
elements, for example.

When it comes to being used in XForms data itself, it will be useful
in situations like this:

  <contact type="address">
    <street ... />
  </contact>

  <contact type="phone">
    <number ... />
  </contact>

But I see it being of most use to us in the schemas that define the
XForms and XHTML 2 languages themselves.

This is because we increasingly have situations where the element
structure of a document is based on the presence of some of the
attributes, and this type of construct is likely to grow in the
future. It also helps if we want to export our *behaviours* without
requiring our mark-up, for example:

  <someotherlanguage:control role="xf:range" start="0" end="10">
    ...
  </someotherlanguage:control>


OVERRIDE

Override seems better than redefine from the point of view of language
design. My impression is that anything can be overridden, and the item
doing the overriding can be of any type.


DEFAULT ATTRIBUTE GROUPS

Hurray! (I think Shane will appreciate this.)

Regards,

Mark

[1] <http://www.w3.org/TR/2008/WD-xmlschema11-1-20080620/#cTypeAlternative>

-- 
Mark Birbeck, webBackplane

mark.birbeck@webBackplane.com

http://webBackplane.com/mark-birbeck

webBackplane is a trading name of Backplane Ltd. (company number
05972288, registered office: 2nd Floor, 69/85 Tabernacle Street,
London, EC2A 4RR)

Received on Wednesday, 10 September 2008 12:34:23 UTC