- From: C. M. Sperberg-McQueen <cmsmcq@acm.org>
- Date: Wed, 27 Dec 2000 11:42:42 -0700
- To: "Asirv" <Asirv@webmethods.com>
- Cc: "Www-Xml-Schema-Comments@W3. Org" <www-xml-schema-comments@w3.org>, "Ningang chen" <nchen@webmethods.com>
At 2000-12-19 13:50, Asirv wrote:
>YES, 'including modified component definitions' is a powerful feature. But,
>it raises several issues. These are subtle and critical issues. I will
>attempt to describe them as clearly as possible. If they are not clear,
>please ask me questions.
>
>[1] NAMESPACE COERCION
>
>During namespace coercion, the targetNamespace of this example's
>corresponding schema information item (SII) is the targetNamespace of
>redefining SII. If this latter targetNamespace is present (namespace
>coercion happens), wild card components, A and B, produce undesired (or
>catastrophic) results. Because, these components were processed before
>redefinition.
Where does the spec require a particular sequence of processing?
>[2] IMPACT on ANONYMOUS TYPE DEF's {content type} whose BASE DEFINITIONS
>were redefined
>
>This can be best illustrated using an example. Sir, please pardon me if the
>syntax is incorrect.
>
>v1.xsd:
Looks correct to me. I did have to change a line or two to make
it validate, but that's because I used explicit namespace prefixes
for clarity.
>v2.xsd:
> <xs:redefine schemaLocation="v1.xsd">
> <xs:complexType name="personName">
> <xs:complexContent>
> <xs:extension base="personName">
> <xs:sequence>
> <xs:element name="generation" minOccurs="0"/>
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> </xs:redefine>
>
> <xs:element name="author" type="personName"/>
>
>In the above example, before redefinition, addressee declaration component
>has the following content,
>
><!ELEMENT addressee (title?, forename*, surname)>
>
>First, Part 1 does not say what happens to the anonymous complex type of
>addressee declaration component after redefinition.
It seems to me to be pretty clear about what happens.
>Intuitively, I would
>expect it to be,
>
><!ELEMENT addressee (title?, forename*, generation?, surname)>
Yes.
>Second, it is impossible (using the given mapping rules) to construct the
>above declaration component after redefinition. Because, the addresee
>declaration component, its anonymous complex type and {content type} were
>computed before redefinition.
What do you mean? Where in the spec does it say that the complex type
of addressee is "computed before redefinition"? If it does say this, I
believe it's an editorial error, because the entire point of the
redefinition-in-place construct (both the proposal we adopted and
the counter-proposal we didn't adopt) was to have the result be as
you describe above: generation gets inserted between forename and
surname.
C. M. Sperberg-McQueen
Received on Wednesday, 27 December 2000 14:02:00 UTC