vollt
vollt copied to clipboard
`capabilities`: add IVO ids in output formats to support TAPRegExt
Hi, I was notified by @mbtaylor that the capabilities
endpoint from our TAP service does not follow the TAPRegExt recommendation as it lacks the ivo-id
attribute for the relevant output formats (outputFormat
in the XML). This ID is used by some clients to interpret (for the time being) VOTable types, as shown on the recommendation: https://www.ivoa.net/documents/TAPRegExt/20120827/REC-TAPRegExt-1.0.html#outforms
Current output:
<outputFormat>
<mime>application/x-votable+xml</mime>
<alias>votable</alias>
</outputFormat>
<outputFormat>
<mime>application/x-votable+xml;serialization=BINARY2</mime>
<alias>votable/b2</alias>
</outputFormat>
<outputFormat>
<mime>application/x-votable+xml;serialization=TABLEDATA</mime>
<alias>votable/td</alias>
</outputFormat>
Expected (TapRegExt-supporting) output:
<outputFormat ivo-id="ivo://ivoa.net/std/TAPRegExt#output-votable-td">
<mime>application/x-votable+xml</mime>
<alias>votable</alias>
</outputFormat>
<outputFormat ivo-id="ivo://ivoa.net/std/TAPRegExt#output-votable-binary2">
<mime>application/x-votable+xml;serialization=BINARY2</mime>
<alias>votable/b2</alias>
</outputFormat>
<outputFormat ivo-id="ivo://ivoa.net/std/TAPRegExt#output-votable-td">
<mime>application/x-votable+xml;serialization=TABLEDATA</mime>
<alias>votable/td</alias>
</outputFormat>
Looking into the code, seems like its implementation is somewhat trivial, by adding support for a ivoId
field in tap.formatter.OutputFormat
(and the classes which implement it) and adding the attribute when getting the output formats when writing the capabilities in tap.resource.TAP
.