[
Lists Home |
Date Index |
Thread Index
]
Hi Alessandro,
> If an element E is defined of a type T, and there is a type U
> derived by restriction from T, and U is a union whose member types
> are A, B, and C, then:
Since U is derived by restriction from T, T must also be a union whose
member types include A, B and C (or supertypes of those types).
> If an instance of element E appears with an xsi:type attribute, will
> this attribute be interpreted only as asserting the type of E (e.g.,
> U), or can it also be used to identify the member type of U (A, B,
> or C)?
It can also be used to identify the member type of U (and T). The
rules in Type Derivation OK (Simple) [1] apply. xsi:type="U" is OK
because U is derived from T (meeting clause 2.2.1), and xsi:type="A"
etc. are OK because T's variety is union and A is derived from one of
the member definitions of T (meeting clause 2.2.4).
(This is assuming that substitution by restriction hasn't been
disallowed using the block attribute.)
Cheers,
Jeni
P.S. Questions about XML Schema are usually best directed to
xmlschema-dev@w3.org.
[1] http://www.w3.org/TR/xmlschema-1/#cos-st-derived-ok
---
Jeni Tennison
http://www.jenitennison.com/
|