W3C home > Mailing lists > Public > www-ws-desc@w3.org > February 2004

WSD WG requests to XML Schema WG

From: David Orchard <dorchard@bea.com>
Date: Wed, 18 Feb 2004 10:40:30 -0800
Message-ID: <32D5845A745BFB429CBDBADA57CD41AF056510BB@ussjex01.amer.bea.com>
To: <w3c-xml-schema-ig@w3.org>
Cc: <www-ws-desc@w3.org>

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/ProvidingCompatibleSche
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 Wednesday, 18 February 2004 13:40:31 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:15:02 UTC