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.
Hi, I was notified by @mbtaylor that the
capabilitiesendpoint from our TAP service does not follow the TAPRegExt recommendation as it lacks theivo-idattribute for the relevant output formats (outputFormatin 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#outformsCurrent output:
Expected (TapRegExt-supporting) output:
Looking into the code, seems like its implementation is somewhat trivial, by adding support for a
ivoIdfield intap.formatter.OutputFormat(and the classes which implement it) and adding the attribute when getting the output formats when writing the capabilities intap.resource.TAP.