[
Lists Home |
Date Index |
Thread Index
]
>>>>> "Barwell" == Barwell Jonathan <Jonathan.Barwell@aah.co.uk> writes:
Barwell> Our organisation is just getting up to speed with XML and we are currently trying to put some standards together. As part
Barwell> of this initiative I am trying to come up with a strategy for versioning of XML Schemas. My current plan is that we
Barwell> develop 3 types of schemas 1) Core Component Library - A library of commonly used simple types and attributes that define
Barwell> the structure of elements, e.g. "string20Type" defines a string with a maximum length of 20 characters etc. 2) Business
Barwell> Component Library - A library of simple and complex types that are more specific to our individual business requirements,
Barwell> e.g. UnitOfMeasureType that defines an enumerated list of Units of Measure, uses structures defined in the Core Component
Barwell> Library. 3) Application/Service specific schema - Schema specifically related to the application or service to support a
Barwell> business process, reuses structures from the Core Component Library and the Business Component Library.
Barwell> The reason I have structured our schemas like this is to try and get reuse out of standard elements and to avoid semantic
Barwell> translations between applications that are reusing the same information.
Barwell> However, this is causing me a big headache trying to come up with a versioning strategy. It is likely that our schemas
Barwell> will form the basis of Web Services and therefore will need to be both forward and backward compatible. Obviously adding
Barwell> new types to my library will not be a problem but if the business changes the validation rules for a specific type, e.g.
Barwell> changes a pattern of a string from [A-Z]{3}\d{1,4} to [A-Z]{4}\d{1,4}, then this has broken my compatibility.
Barwell> I want the schemas to do most of the validation therefore "version" attribute in the <schema> tag is insufficient.
Barwell> Creating my own <simpleType> of "SchemaVersion" is also insufficient as I am referencing 3 types of schema and my
Barwell> application schema needs to be valid against the library schemas. Namespacing does provide me with the validation levels
Barwell> I am looking for but then the schemaLocation will also need some level of versioning by using file name versioning or
Barwell> directory versioning structure.
Barwell> Does anyone have any experience of version controlling their schemas, UBL has included versioning but to me their solution
Barwell> doesn't really seem to hang together tightly enough.
Barwell> I would be grateful for any feedback from your experiences.
You might be interested in the following recent article titled "Versioning
XML Vocabularies":
http://www.xml.com/pub/a/2003/12/03/versioning.html
Regards.
--
Hugues Lafarge || Email: Hugues.Lafarge@afp.com
Agence France Presse || Phone: +33 1 40 41 77 15
4 rue de la bourse, 75002 Paris || Fax: +33 1 40 41 79 24
|