ivoa-std / VOTable

VOTable Format Definition
4 stars 15 forks source link

Change recommendation on schema version reference. #19

Open tomdonaldson opened 4 years ago

tomdonaldson commented 4 years ago

The current guidance on versioning is that the namespace URI should remain constant for all minor revisions of a major document version (see the endorsed note on XML Schema Versioning Policies, section 2.2.3). That's fine, but the added feature of having that URI be a URL that redirects to the latest schema version is more confusing than convenient, and we should not be recommending it.

That endorsed note was not in force for VOTable version 1.0 through 1.3, so 1.x versions after 1.3 became somewhat confusing. For VOTable 1.4, the schema location is http://www.ivoa.net/xml/VOTable/votable-1.4.xsd, while the namespace URI is http://www.ivoa.net/xml/VOTable/v1.3 (which for "convenience" functions as a URL that redirects to the actual 1.4 schema location).

The need to support that namespace redirection forces the VOTable schema to actually be incorrect in that it allows version="1.3" and the TIMESYS element in the same document. It must do this to simultaneously support the backward compatibility required by the namespace redirection and 1.4-only features like TIMESYS.

The fact that the namespace URI redirects to the schema URL is outside the scope of the VOTable specification. Nevertheless, we should recommend that if a VOTable specifies the schema location, it should use the explicitly versioned URL (e.g., http://www.ivoa.net/xml/VOTable/votable-1.4.xsd). Can we even override the note and not permit the use of the namespace URI for the schema location?

tomdonaldson commented 1 year ago

Let's make this a lot clearer in v2.0.