- From: Matthew Fuchs <matt@westbridgetech.com>
- Date: Thu, 19 Feb 2004 18:58:10 -0800
- To: "'David Orchard'" <dorchard@bea.com>, <w3c-xml-schema-ig@w3.org>
- Cc: <www-ws-desc@w3.org>
- Message-ID: <027701c3f75d$63565f90$7364020a@westbridgetech.com>
David,
Without going through all the schema syntax, if you just create three
nametypes, nameType1, nameType2, and nameType3, with 2 extending 1 and 3
extending 2, then you can already do:
> <name>
> <first>Dave</first>
> <last>Orchard</last>
> </name>
> <name xsi:type="nameType2">
> <first>Dave</first>
> <last>Orchard</last>
> <middle>Bryce</middle>
> </name>
> <name xsi:type="nameType3">
> <first>Dave</first>
> <last>Orchard</last>
> <middle>Bryce</middle>
> <suffix>II</suffix>
> </name>
You only need the xsi:type to distinguish them for validation -
non-validating applications can ignore it. Also this prevents:
<name>
<first>Dave</first>
<last>Orchard</last>
<gibberish>;laksdjf;lkadjf</gibberish>
</name>
which wildcards don't. Just wanted to check if that was acceptable.
Matthew
> -----Original Message-----
> From: w3c-xml-schema-ig-request@w3.org [mailto:w3c-xml-schema-ig-
> request@w3.org] On Behalf Of David Orchard
> Sent: Wednesday, February 18, 2004 10:41 AM
> To: w3c-xml-schema-ig@w3.org
> Cc: www-ws-desc@w3.org
> Subject: WSD WG requests to XML Schema WG
>
>
> Dear Schema WG,
>
> On behalf of the WSDL WG I'm conveying a use case for versioning, a
> question about a solution and the intentions for Schema 1.1, and a
> suggestion
> to meet at the plenary F2F.
>
> The WSDL WG is attempting to emerge from our Mar 4-5 FTF with a
> Last-call ready Core specification. We have an oustanding action item
to
> investigate WSDL solutions to describing extensible and versionable
> Web services. There are several avenues toward a solution which
include
> exploring fixes directly to Schema to allow evolution of message
> structure, ways we might layer on top of Schema to provide these
> capabilities,
> and encouraging use of alternative Schema languages. A solution
available
> in XML Schema 1.1 may be attractive to us and our customers.
>
> Although we are meeting at the FTF, we are not meeting concurrently
with
> your group; but perhaps there is an opportunity for a few Schema WG
> members to join us on Thursday to explain our needs and explore
> solutions.
>
> In discussions on Providing Compatible Schema Evolution [1], the broad
> question of extensibility and versioning as a whole was examined. And
> there
> are tricky problems and difficult choices for solutions. Another
important
> question to ask is what is the minimum necessary for success in
> versioning?
> If one assumes that we do not need to insert elements in arbitrary
places,
> just at the end, and retaining compatibility, then there may be a
simpler
> solution that XML Schema 1.1 could do. Let us take a simple name
example
> through two iterations. The first iteration adds an optional "middle"
name
> at the end of the name. The second option adds an optional "suffix" at
the
> end of the extended name. This looks like:
>
> <name>
> <first>Dave</first>
> <last>Orchard</last>
> </name>
>
> <name>
> <first>Dave</first>
> <last>Orchard</last>
> <middle>Bryce</middle>
> </name>
>
> <name>
> <first>Dave</first>
> <last>Orchard</last>
> <middle>Bryce</middle>
> <suffix>II</suffix>
> </name>
> We want these 3 of these documents to be valid against the 3 schemas.
It
> seems that the simplest change would be to have a "low priority"
wildcard
> as
> mentioned in previous discussions. The schemas using this would be
> something
> like:
>
> <xs:complexType name="nameType">
> <xs:sequence>
> <xs:element name="first" type="xs:string" />
> <xs:element name="last" type="xs:string" minOccurs="0"/>
> <xs:any namespace="##any"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:complexType name="nameType">
> <xs:sequence>
> <xs:element name="first" type="xs:string" />
> <xs:element name="last" type="xs:string" minOccurs="0"/>
> <xs:element name="middle" type="xs:string"
minOccurs="0"/>
> <xs:any namespace="##any"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:complexType name="nameType">
> <xs:sequence>
> <xs:element name="first" type="xs:string" />
> <xs:element name="last" type="xs:string" minOccurs="0"/>
> <xs:element name="middle" type="xs:string"
minOccurs="0"/>
> <xs:element name="suffix" type="xs:string"
minOccurs="0"/>
> <xs:any namespace="##any"/>
> </xs:sequence>
> </xs:complexType>
>
> It seems that a low priority wildcard is sufficient to enable an
explicit
> extensibility point that allows backwards and forwards compatible
> evolution
> through multiple versions with extension at the end of the type
definition
> and extension in the same namespace. This isn't the fullest solution,
as
> it
> does not allow for default extensibility, nor extensibility in between
> elements. But this appears significantly improved over current
> capabilities.
>
> I'm not able to track the intricacies of the discussion, but it
appears
> that
> the Schema group is talking about this in the context of RQ-135, with
a
> proposal at [2], another proposal about 2nd class wildcards at [3],
and a
> fair amount of follow on discussion. Again, I can't follow through
the
> intricacies of the discussion of the ilk of subsumption of lexical
spaces
> versus value spaces for redefinition, and why a validator needs to
look up
> the tree for subsumption.
>
> We are interested in determining whether the Schema WG sees: this use
case
> as important for Schema 1.1, whether this use case will be solved in
> Schema
> 1.1, if low priority wildcards are a solution to this problem, if
> low-priority wildcards will be the Schema 1.1 solution
>
> On behalf of the WSDL WG,
> Dave Orchard
>
> [1]
>
http://www.pacificspirit.com/Authoring/Compatibility/ProvidingCompatible
Sc
> he
> maEvolution.html
> [2] http://lists.w3.org/Archives/Member/w3c-xml-schema-
> ig/2004Feb/0028.html
> [3] http://lists.w3.org/Archives/Member/w3c-xml-schema-
> ig/2004Feb/0035.html
Received on Thursday, 19 February 2004 21:58:28 UTC