- From: <paul.downey@bt.com>
- Date: Wed, 22 Feb 2006 09:12:20 -0000
- To: <petexmldev@tech-know-ware.com>, <edday@obj-sys.com>, <public-xsd-databinding@w3.org>
Pete, Ed Thanks for the comments! I'm personally not comfortable with this pattern, given it's: a) as you say, not 'intuitive' b) has a restriction on how the 2nd, 3rd etc evolutions may be made represented (i'm guessing you'd end up with a staircase of nested <extension> elements. However I'm keen to say 'something' for versioning! I understand that at least two binding tools do make use of it when generating Schema from code, including at least one major tool developed by Microsoft. //I wondered if anyone else had personal experiences of such extension patterns with toolkits?// However I also have personal experience with a tool from a well known J2EE vendor who's service generator tool rejects the whole WSDL at the first sign of an xs:any or xs:anyType inside a Schema! My current inclination is to avoid Recommending patterns which use xs:any or xs:anyType in our Basic specification, and move this subject to the Advanced patterns document. This would be a blow to my personal aims in promoting patterns for versioning and evolving messages, but probably be a better statement in the art of the possible with current databinding tools. Paul -----Original Message----- From: public-xsd-databinding-request@w3.org on behalf of Pete Cordell Sent: Wed 2/22/2006 7:57 AM To: Ed Day; Databinding WG Subject: Re: ISSUE-20: Extension of collections Hi Ed, As I understand it, you are right. The versioned type would become (including documentation about the versioning): <xs:complexType name="CustomerType"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> <xs:element name="extension"> <xs:complexType> <xs:annotation><xs:documentation> These members were added in version 2 </xs:documentation></xs:annotation> <xs:sequence> <xs:element name="MyV2Element" type="xs:string"/> <xs:element name="extension" type="tns:CustomerExtensionType" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute/> </xs:complexType> <xs:complexType name="CustomerExtensionType"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/> </xs:sequence> </xs:complexType> Pete. ----- Original Message ----- From: "Ed Day" <edday@obj-sys.com> To: "Databinding WG" <public-xsd-databinding@w3.org> Sent: Tuesday, February 21, 2006 7:18 PM Subject: Re: ISSUE-20: Extension of collections > > The problem with this approach is that it requires the user to embed the > <extension> element within the instance being extended. This is not what > happens in the real world. What happens is additional elements just show > up. > > Also, what happens if the schema is extended a 2nd time? Do you have an > extension in an extension? Or maybe the "extension" element should have > some kind of version number on the end to track when an extension happened > (<extension1>, <extension2>, etc.)? > > Regards, > > Ed Day > Objective Systems, Inc. > http://www.obj-sys.com > > > ----- Original Message ----- > From: "Databinding Issue Tracker" <dean+cgi@w3.org> > To: <public-xsd-databinding@w3.org> > Sent: Tuesday, February 21, 2006 9:05 AM > Subject: ISSUE-20: Extension of collections > > >> >> >> ISSUE-20: Extension of collections >> >> http://www.w3.org/2005/06/tracker/databinding/issues/20 >> >> Raised by: Paul Downey >> On product: Basic >> >> The input document offers the following pattern for a collection >> which is open to extension, thereby being useful when evolving >> or extending a schema during versioning: >> >> """ >> <xs:complexType name="CustomerType"> >> <xs:sequence> >> <xs:element name="firstName" type="xs:string" /> >> <xs:element name="lastName" type="xs:string" /> >> <xs:element name="extension" type="tns:CustomerExtensionType" > minOccurs="0" /> >> </xs:sequence> >> <xs:anyAttribute/> >> </xs:complexType> >> >> <xs:complexType name="CustomerExtensionType"> >> <xs:sequence> >> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" >> namespace="##targetNamespace"/> >> </xs:sequence> >> </xs:complexType> >> >> """ >> >> How well is this pattern supported by tools - does it belong in >> the Basic patterns document? >> >> Are there authoring issues with this pattern we should warn about? >> >> -- ============================================= Pete Cordell Tech-Know-Ware Ltd for XML to C++ data binding visit http://www.tech-know-ware.com/lmx (or http://www.xml2cpp.com) =============================================
Received on Wednesday, 22 February 2006 09:14:52 UTC