- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 07 Sep 2001 08:35:20 +0100
- To: "Schwarzhoff, Kelly" <kelly.schwarzhoff@commerceone.com>
- Cc: "'www-xml-schema-comments@w3.org'" <www-xml-schema-comments@w3.org>
"Schwarzhoff, Kelly" <kelly.schwarzhoff@commerceone.com> writes:
> Yet more comments in KLS tags...
<snip/>
ht wrote
> But you've skipped the part of [1] where the "given {extension, list,
> union}"
> is interpreted -- none of the members of that set can figure in the
> derivation:
>
> "1 If B and D are not the same type definition, then the {derivation
> method} of D must not be in the subset."
KLS replies:
> <KLS>
> That part seems quite contradictory. It states:
>
> "For a complex type definition (call it D, for derived) to be validly
> derived from a type definition (call this B, for base) given a subset of
> {extension, restriction} all of the following must be true:
> 1 If B and D are not the same type definition, then the {derivation method}
> of D must not be in the subset. "
>
> What does that mean? The derivation method, in this case, is extension. So,
> yes, "extension" is in the subset of {extension, restriction}. However,
> "restriction" is also in the subset of {extension, restriction}. So, if you
> follow that logic, you can't use extensions OR restrictions. That means can
> can't use any sort of base type/derived type relationships, as the only ones
> available are restriction or extension, which doesn't make sense at all.
> </KLS>
I'm sorry this isn't clearer, and there is a (not relevant to the
point at issue) erratum here. But it does do the job, if you read it
carefully.
Think of this as a function definition 'validly derived from' is the
function. D (a type definition), B (a type definition) and SS (a
subset of {extension, restriction[, list, union]}.
The function call is back in NameAndTypeOK:
"R's {type definition} is validly derived given {extension, list, union}
> from B's {type definition} as defined by Type Derivation OK (Complex)
> (§3.4.6) or Type Derivation OK (Simple) (§3.14.6), as appropriate. "
so this 'calls' the TDOK 'function' with bindings:
D -- R
B -- B
SS -- {extension, list, union}
Now re-read clause 1 with the bindings inserted:
1 If B and R are not the same type definition, then the {derivation method}
of R [extension] must not be in {extension, list, union}.
So the derivation is not OK.
The semantics of the subset argument is "These are derivation methods
which are _not_ allowed for the derivation to be OK".
ht
> [1] http://www.w3.org/TR/xmlschema-1/#cos-ct-derived-ok
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
W3C Fellow 1999--2001, part-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
Received on Friday, 7 September 2001 03:34:54 UTC