xsi:nil when validating by type

Is it true to say that when an element is validated against a type (as
distinct from being validated against an element declaration - for example
when validating within xs:anyType content) then:

   xsi:nil is allowed, and must (if present) be a valid boolean, but its
value is ignored.

In particular xsi:nil="true" is permitted but it neither allows nor requires
the content to be empty if the type itself does not permit empty content.

This seems to be what Validation Rule: Element Locally Valid (Type) is
saying, the relevant consideration being that "clause 3.2 of Element Locally
Valid (Element) (§3.3.4) did not apply", because we were not validating
against an element declaration.

(Actually, I can't see a detailed chain of reasoning that allows me to
conclude that validation should fail if the attribute xsi:nil="fgjh" is
present, but I assume that in this case common-sense prevails.)

Test case elemZ033b is related, though in this case the instance is valid
whether xsi:nil is ignored or not.

Michael Kay
http://www.saxonica.com/

Received on Saturday, 9 December 2006 21:39:13 UTC