fpml versioning an awg discusion document. namespace uris & versions an xml parser locates the...
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082917/5514ba34550346f06e8b6665/html5/thumbnails/16.jpg)
Recommendation
• What?