fpml versioning an awg discusion document. namespace uris & versions an xml parser locates the...

16
FpML Versioning An AWG Discusion Document

Upload: jacob-crowley

Post on 27-Mar-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

FpML Versioning

An AWG Discusion Document

Page 2: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Namespace URIs & Versions

• An XML parser locates the schema for a document based on its namespace URI

• To be backwards or forwards compatible the namespace used to reference the schema MUST be the same across several versions– Otherwise you MUST edit the instance to change the namespace

before reprocessing

• You can not use resolution to map several namespaces to the same schema– The parser detects that the namespace used within the schema is

different from the one being referenced– Neither can you resolve to a chameleon schema with no target

namespace

Page 3: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Versioning in FpML To Date

• Based on major.minor numbering– Major increments to indicate a breaking change– Minor increments with each non-breaking change

• Instance documents can only be processed against the specific schema they reference– Must be edited to use another

• Numbering rules have not be rigorously implemented– 4.1 EQD model incompatible with 4.0– 4.3 CD model ‘technically’ incompatible with 4.2

Page 4: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Technical vs. Marketing Numbering

• Standards committee prefers to minimise major number changes– Makes it ‘seem’ that differences between all

releases are minor – historically not true– Must read the release notes to discover the

details of the changes

• Goes against FpML rules of operation

Page 5: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Why Change?

• To implement document backwards compatibility– Compatible schemas must share a common namespace

• Most FpML releases are ‘structurally’ backwards compatible BUT documents must be altered before processing– Change would eliminate need for document alterations

– Can reduce the maintain required to update implementations

Page 6: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Build Numbers

• Can be considered as an additional part of the version number– e.g. Major.Minor.Build

• Useful to implementers using working drafts

• No changes to build numbers are considered

Page 7: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Options

Page 8: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Option 1: Continue Ad-hoc Numbering

• Continue with current system for 5 and later• Pros:

– More control over version numbering

• Cons:– Not possible to implement backwards

compatibility– Versions give no indication of technical

difference since last release

Page 9: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Option 2: Rigorous Two Part Numbering

• Implement version rigorously to FpML operating rules– Current FpML 4.3 should be 6.1!

• Pros:– Version numbers reflect technical difference and ease of

implementation– Allows backwards compatibility through namespace URI

containing only major number

• Cons:– Major version numbers would increment more frequently

Page 10: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Option 3: Two Versions

• Each schema given two identifiers– A marketing name used in publications

• e.g. FpML 5-A

– A technical major.minor number in the schema

• Pros:– Marketing identifier changes less frequently than technical version

• Cons:– Not easy to determine compatibility from marketing name– Not easy to map between marketing and technical numbering– Namespace based on marketing name would not support

backwards compatibility

Page 11: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Option 4: Three Part Version Number

• Version number becomes– Architecture.Major.Minor (e.g 5.0.0, 5.0.1, 5.1.0)

• Schema namespace URI predictably derived from version number– Architecture.Major (e.g. 5.0, 5.1)

• Pros:– Leading digit remains consistent across many releases

– Supports document backwards compatibility

• Cons:– Architecture number out of synchronisation with documentation

• Come up with a better name?

– Changes version attribute

– Version is not a number - may affect some implementations

Page 12: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Option 5: Three Separate Values

• The version ‘number’ in Option 4 is not a syntactically valid number– Has two decimal points

• Could use three different attributes

• Derive namespace from Architecture and Major numbers

Page 13: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Option 6: Backwards Compatibility Attribute

• Define additional attributes to define minimum compatible version number

• [AJ] How does this help define a series of compatible namespace URLs?

Page 14: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Observations

• Implementers need to see how similar or different releases are– Current scheme ‘disguises’ the amount of

change

• Backwards compatibility can only be done if version numbers are technically defined– Breaking changes MUST change the URI

Page 15: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Other Thoughts

• Should we have a standard root element attribute that defines schema status?– status=“wd” or “tr” or “rec”

Page 16: FpML Versioning An AWG Discusion Document. Namespace URIs & Versions An XML parser locates the schema for a document based on its namespace URI To be

Recommendation

• What?