Package uk.ac.starlink.votable

# Class VOTableVersion

java.lang.Object
uk.ac.starlink.votable.VOTableVersion

All Implemented Interfaces:
  `Comparable<VOTableVersion>`

public abstract class VOTableVersion extends Object implements Comparable<VOTableVersion>
Provides characteristics for a given version of the VOTable standard. An instance of this class is passed to a `VOTableWriter` to indicate what version of the standard should be followed when generating VOTable output.

Since:
  15 Nov 2012
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`DEFAULT_VERSION_STRING`
Default VOTable version number which output will conform to if not otherwise specified ("1.4").
`static final VOTableVersion`
`V10`
VOTable 1.0.
`static final VOTableVersion`
`V11`
VOTable 1.1.
`static final VOTableVersion`
`V12`
VOTable 1.2.
`static final VOTableVersion`
`V13`
VOTable 1.3.
`static final VOTableVersion`
`V14`
VOTable 1.4.
`static final VOTableVersion`
`V15`
VOTable 1.5.
`static final String`
`VOTABLE_VERSION_PROP`
System property name whose value gives the default VOTable version written by instances of this class if no version is given explicitly.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`VOTableVersion(String versionNumber)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`abstract boolean`
`allowBinary2()`
Indicates whether the BINARY2 serialization format is defined by this version.
`abstract boolean`
`allowEmptyTd()`
Indicates whether this version permits an empty TD element to represent a null value for all data types.
`abstract boolean`
`allowTimesys()`
Indicates whether the TIMESYS element is supported in this version.
`abstract boolean`
`allowXtype()`
Indicates whether the xtype attribute is permitted on FIELD elements etc in this version.
`int`
`compareTo(VOTableVersion other)`
`static VOTableVersion`
`getDefaultVersion()`
Returns the version instance used by default for output in this JVM.
`abstract String`
`getDoctypeDeclaration()`
Returns the text of the DOCTYPE XML declaration for this version.
`String`
`getDraftIdentifier()`
Returns a draft-version identifier for VOTable versions that are not yet in their final form.
`abstract URL`
`getDtdUrl()`
Returns a URL from which the DTD can be retrieved.
`static Map<String,VOTableVersion>`
`getKnownVersions()`
Returns a number->version map for all known versions.
`abstract Schema`
`getSchema()`
Returns a schema which may be used to validate document instances of this VOTable version.
`abstract String`
`getSchemaLocation()`
Returns the URL of the VOTable schema corresponding to this version.
`String`
`getVersionNumber()`
Returns the version number for this version.
`abstract String`
`getXmlNamespace()`
Returns the XML namespace in which the VOTable elements reside.
`abstract boolean`
`isVOUnitSyntax()`
Indicates whether this version of VOTable is supposed to use the VOUnit standard for the content of unit attributes.
`String`
`toString()`
Returns version number.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### V10

public static final VOTableVersion V10
VOTable 1.0.

### V11

public static final VOTableVersion V11
VOTable 1.1.

### V12

public static final VOTableVersion V12
VOTable 1.2.

### V13

public static final VOTableVersion V13
VOTable 1.3.

### V14

public static final VOTableVersion V14
VOTable 1.4.

### V15

public static final VOTableVersion V15
VOTable 1.5.

### DEFAULT_VERSION_STRING

public static final String DEFAULT_VERSION_STRING
Default VOTable version number which output will conform to if not otherwise specified ("1.4").

See Also:
  - Constant Field Values

### VOTABLE_VERSION_PROP

public static final String VOTABLE_VERSION_PROP
System property name whose value gives the default VOTable version written by instances of this class if no version is given explicitly. The property is named "votable.version" and if it is not supplied the version defaults to the value of `DEFAULT_VERSION_STRING` (="1.4").

See Also:
  - Constant Field Values

## Constructor Details

### VOTableVersion

protected VOTableVersion(String versionNumber)
Constructor.

Parameters:
  `versionNumber` - the number (like "1.1") identifying this version

## Method Details

### getVersionNumber

public String getVersionNumber()
Returns the version number for this version.

Returns:
  version number (like "1.1")

### getXmlNamespace

public abstract String getXmlNamespace()
Returns the XML namespace in which the VOTable elements reside.

Returns:
  VOTable XML namespace, or null

### getSchemaLocation

public abstract String getSchemaLocation()
Returns the URL of the VOTable schema corresponding to this version.

Returns:
  VOTable schema, or null

### getSchema

public abstract Schema getSchema()
Returns a schema which may be used to validate document instances of this VOTable version. Will return non-null iff `getSchemaLocation()` returns non-null.

Returns:
  validation schema, or null

### getDoctypeDeclaration

public abstract String getDoctypeDeclaration()
Returns the text of the DOCTYPE XML declaration for this version.

Returns:
  doctype declaration, or null

### getDtdUrl

public abstract URL getDtdUrl()
Returns a URL from which the DTD can be retrieved. This is not the canonical DTD url, but a pointer to a local resource. Will return non-null iff `getDoctypeDeclaration()` returns non-null.

Returns:
  local URL from which the DTD can be retrieved, or null

### getDraftIdentifier

public String getDraftIdentifier()
Returns a draft-version identifier for VOTable versions that are not yet in their final form.

If the standard to which this version applies is still subject to change, a version-specific document identifier of the form XX-VOTable-A.B-YYYYMMD should be returned, as described in the IVOA DocStd document. XX will presumably be WD or PR.

For final (REC-status) documents, null is returned.

Returns:
  version identifier for non-REC VOTable versions, null for REC-status versions
See Also:
  - DocStd v2.0 sec 1.2

### compareTo

public int compareTo(VOTableVersion other)

Specified by:
  `compareTo` in interface `Comparable<VOTableVersion>`

### toString

public String toString()
Returns version number.

Overrides:
  `toString` in class `Object`

### allowEmptyTd

public abstract boolean allowEmptyTd()
Indicates whether this version permits an empty TD element to represent a null value for all data types.

Returns:
  true iff empty TD elements are always permitted

### allowBinary2

public abstract boolean allowBinary2()
Indicates whether the BINARY2 serialization format is defined by this version.

Returns:
  true iff BINARY2 is allowed

### allowXtype

public abstract boolean allowXtype()
Indicates whether the xtype attribute is permitted on FIELD elements etc in this version.

Returns:
  true iff xtype attribute is allowed

### allowTimesys

public abstract boolean allowTimesys()
Indicates whether the TIMESYS element is supported in this version.

Returns:
  true iff TIMESYS is allowed

### isVOUnitSyntax

public abstract boolean isVOUnitSyntax()
Indicates whether this version of VOTable is supposed to use the VOUnit standard for the content of unit attributes.

Returns:
  true if VOUnits are supposed to be used
See Also:
  - VOUnits

### getKnownVersions

public static Map<String,VOTableVersion> getKnownVersions()
Returns a number->version map for all known versions. The map keys are version number strings like "1.1". The order of entries in this map is in ascending order of version number.

Returns:
  version map

### getDefaultVersion

public static VOTableVersion getDefaultVersion()
Returns the version instance used by default for output in this JVM. By default this is determined by the value of the `DEFAULT_VERSION_STRING` constant, but it can be overridden by use of the `VOTABLE_VERSION_PROP` ("votable.version") system property.

Returns:
  default VOTable version for output