- 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