[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Schema Extensibility

  • To: "Fraser Goffin" <goffinf@h...>,<xml-dev@l...>
  • Subject: RE: Schema Extensibility
  • From: "Chiusano Joseph" <chiusano_joseph@b...>
  • Date: Wed, 1 Mar 2006 08:08:34 -0500
  • Thread-index: AcY9JldmUL7rjTYLTJyj557r24Gr0wAChjQg
  • Thread-topic: Schema Extensibility

transactional schema
> So, in part the question is, should a schema allow for 
> unknown extensions for unknown purposes (but in specified 
> locations) and still be considered as 'compliant', or should 
> schema authors attempt to constrain (eliminate) that 
> behaviour. I can't help feeling the attraction of the second 
> model, but my 'gut' tells me that something as inflexible 
> will soon become a business constraint and that will signal 
> it's demise.

I believe this is a case-by-case basis, that depends on the specific
scenario(s) and business need, and - ultimately - what the level of risk
regarding "unknown extensions" is, and whether or not that level of risk
is acceptable for the particular case. 
 
> With my SOA hat on I would recognise the importance of 
> interoperability and the significant role that standardised 
> vocabularies have to play. I also don't especially want to 
> promote the myriad of point-to-point relationships that 
> 'going private' implies and instead want to leverage the 
> 'reach' of a market standard.

Extensibility can also play a significant role in SOA-based scenarios
(service-oriented systems). This can be handled via "contracts" between
parties that specify a particular data model associated with a service,
that may be different than that used by other parties that base their
exchanges off the same "base" schema. Is it easy to do right now? No. 

I have long believed that a standard is needed for "Contextual SOA" -
i.e. cases in which one or more parties that engage in a particular
exchange have a special need for extensibility, and the system that
handles the messages (assume SOAP messages here) for that party
automatically knows to expect the additional constructs (message parts,
messages, etc. - possibly further up than that in the WSDL hierarchy?)
from that party and to handle them according to a specified contract
involving that party. We'll get there...

Joe

Joseph Chiusano
Associate
Booz Allen Hamilton
 
700 13th St. NW, Suite 1100
Washington, DC 20005
O: 202-508-6514  
C: 202-251-0731
Visit us online@ http://www.boozallen.com
 

> -----Original Message-----
> From: Fraser Goffin [mailto:goffinf@h...] 
> Sent: Wednesday, March 01, 2006 6:48 AM
> To: xml-dev@l...
> Subject:  Schema Extensibility
> 
> For a while I have been continuing a thread which started out 
> thinking about versioning of XML schema types, in particular 
> enums. The debate broadened and a variety of helpful and 
> interesting views were voiced about versioning in general and 
> as a related subject extensibility. Personally I have been 
> relating these comments to XML schema structures but I could 
> have easily been talking about the service interface 
> supported by those schema. This has highlighted some 
> different opinions about the value of various approaches to 
> this problem which I hope have resonated with those following 
> the thread.
> 
> I have become quite interested in the UBL work that Ken 
> Holman has introduced and the position UBL is taking about 
> the separation of the validation of structural conformance 
> versus value based.
> 
> I guess the thing that I am still mostly undecided about is 
> to do with whether to allow for schema extensibility (using 
> xs:any together with the 'sentry' approach proposed by David 
> Orchard (and others) or whether this is a recipe for an 
> uncontrollable vocabulary.
> 
> I think the battle-ground is in part characterised by a 
> schema (or service) that, once published is considered as 
> immutable, hence any changes REQUIRE a NEW VERSION with a NEW 
> NAMESPACE, versus a schema which allows non breaking changes 
> to be introduced by both the schema owner and non schema 
> authors and supports both forward and backwards compatibility.
> 
> The first situation is a 'clean' and explicit model where the 
> semantics are guaranteed not to be usurped by a non schema 
> owner but where even relatively minor change requirements can 
> have a large impact to implementations (especially when there 
> are a large number of external users of this vocabulary). 
> Changes often take a relatively long while to surface through 
> into the standard and this may impact business priorities. 
> Versioning is enabled through support for one or more of the 
> available schema where, from time to time, old versions may 
> be deprecated.
> 
> The schema extensibility approach promotes the idea that 
> organisations may want to represent private relationships 
> using data carried at specified points within the standard 
> schema in such a way that that data is only relevant between 
> those parties (using a foreign namepsace) and all others can 
> safely ignore it (and that the schema author should not 
> necessarily attempt to constrain this type of usage). It 
> recognises that the pace of change to a standard schema often 
> lags behind the operational requirements of user 
> organisations, but those organisations don't want to throw 
> out the whole standard and 'go private'. It can imply that 
> some TP extensions may be incorporated back into the main 
> body of the standard at a later point in which case anyone 
> pair or parties using that extension can agree a move back to 
> the standard definition, at a time of their choosing. It also 
> allows the schema owner to add non breaking 'compatible' 
> change to a schema. The down sides seem to be, that a TP 
> could introduce changes which subvert the intended semantics, 
> and that, over time, what might have started out as a 
> temporary expedient, turns into an entrenched working 
> implementation that is unlikely to be allocated budget to be 
> re-synchronised with the standard.
> 
> So, in part the question is, should a schema allow for 
> unknown extensions for unknown purposes (but in specified 
> locations) and still be considered as 'compliant', or should 
> schema authors attempt to constrain (eliminate) that 
> behaviour. I can't help feeling the attraction of the second 
> model, but my 'gut' tells me that something as inflexible 
> will soon become a business constraint and that will signal 
> it's demise.
> 
> With my SOA hat on I would recognise the importance of 
> interoperability and the significant role that standardised 
> vocabularies have to play. I also don't especially want to 
> promote the myriad of point-to-point relationships that 
> 'going private' implies and instead want to leverage the 
> 'reach' of a market standard.
> 
> Personally I still have no definative conclusion that I feel 
> comfortable in turning into a recommended approach within my 
> own organisation and within the industry standards body that 
> I work with from time to time, so I thought I'd give it one more go.
> 
> Some of the issues and comments highlighted by the earlier 
> thread are provided below. Some are direct quotes from 
> contributors, others are excepts from various ramblings :-)
> 
> Cheers
> 
> Fraser
> 
> ========================
> 
> - extensibility is a critical aspect of any data [or service] 
> model. Without extensibility all changes (however minor) 
> effectively 'break' all provider and consumer implementations.
> 
> - there are no 'minor' changes, any change implies a semantic 
> difference.
> 
> - backwards compatible yes (the previous version of a schema 
> must be a valid instance of the new version), but not 
> necessarily the other way around
> 
> - xs:any together with the 'sentry' approach proposed by 
> David Orchard (and
> others) provides a mechanism that allows XML schema to be 
> extended by both the schema namespace owner and a non schema 
> author independantly, in a manner which supports forwards and 
> backwards compatibility for instance documents. That is, some 
> category of change can be accomodated which do NOT cause 
> either the consumer or provider implementation to REQUIRE 
> change. Of course extensions added by non schema owners 
> represent a private relationship between the communicating 
> parties and therfore require an out of band exchange of the 
> type definitions and semantics. Also such extensions can only 
> be applied to specific locations in the base schema AND using 
> a foreign namespace. This is sometimes referred to as the 
> 'must ignore' 
> pattern.
> 
> - A 'big bang' approach to versioning is not usually 
> achievable in any practical sense. That is, it is generally 
> not possible to enforce a 'breaking' change on all users of a 
> schema/service simultaneously (or even within a constrained 
> time window).
> 
> - Support for a version of a schema/service can in some cases 
> be self regulating. That is, if provider A only supports 
> version 1.0 of a service whilst the majority of consumers 
> expect to be able to integrate with version
> 1.1 (or 2.0), then chances are that provider A will be unable 
> to win any business and will therefore be forced to upgrade. 
> If a consumer supports version 1.0 but all potential 
> [preferred] providers have upgraded to a later version, the 
> consumer may not be able to place any business on behalf of 
> its customers, and will therefore be forced to upgrade 
> (assuming that version 1.0 and later versions are NOT 
> backwardsly compatible).
> 
> - a schema or service interface is immutable. Once published 
> it should never be changed (perhaps this is better stated as 
> the operations which make up the service interface should 
> never be changed).
> 
> - support for concurrent versions of a schema/service is more 
> effective method of dealing with change than through schema 
> extensibility. It makes versions explicitly typed without the 
> ambiguity of untyped sections (xs:any) which require some out 
> of band mechanism to be entered into by each participant. 
> Implementing an explicit new version has the crucial 
> advantage that it is guaranteed NOT to break a consumer 
> implementation using the current vesion unless the provider 
> removes that version.
> 
> - Any change to a schema represents a semantic difference and 
> therefore cannot be considered as 'minor' and therefore 
> requires a new version.
> 
> - We have come to the conclusion that semantically the 
> definition of an enumerated field is its enumerations.  
> Therefore changing the enumerations changes the definition. 
> Adding enumerations locally seems like a poor practice.
> 
> - Adding a new value to a enumeration is not a compatible 
> change if that value could be returned to a consumer who 
> currently doesn't know about it (using the previous schema 
> definition). If it's just of the receiving side, it MAY be 
> compatible since the previous version remains a valid sub-set.
> 
> - schema's defined and managed by a standards body often move 
> too slowly to accomodate the business priorities of 
> particpants. Allowing local extensions can enable an 
> organisation to gain advantage from the broader 'reach' of 
> the base standard to the majority of its partners whilst 
> supporting specific third party relationships which require 
> additional [private] data not [currently] available within 
> the base standard. Sometimes this additional data can 
> represent a 'candidate' standard which may be encorporated at 
> a future time.
> 
> - When standards become an inhibitor to business operations 
> they will be usurped by local arrangements.
> 
> - Value based validation can be implemented as a separate 
> layer, on top of structural conformance.
> 
> - Synchronisation of schema variants is necessary at the 
> point when the number of variants indicates that the original 
> semantics may have become obfusticated or a new semantic 
> ecosystem [related] is emerging.
> 
> - If a large number (more than 1 :-) of buisness 
> transactional schema include a common complex type, and that 
> complex type needs to be changed, this can create a 
> synchronisation problem. So is there a differnt approach to 
> dealing with versioning of shared types ?
> 
> - We are undertaking a new position where the schema are 
> going to be used solely for structural validation, and code 
> list value validation (as agreed upon by trading partners) is 
> a separate step.
> 
> 
> 
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org 
> <http://www.xml.org>, an initiative of OASIS 
> <http://www.oasis-open.org>
> 
> The list archives are at http://lists.xml.org/archives/xml-dev/
> 
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>
> 

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.