STILTS-VOTLINT(1) | Stilts commands | STILTS-VOTLINT(1) |
stilts-votlint - Validates VOTable documents
stilts votlint [votable=<location>] [ucd=true|false] [unit=true|false] [maxrepeat=<int-value>] [validate=true|false] [version=1.0|1.1|1.2|1.3|1.4] [out=<location>]
The VOTable standard, while not hugely complicated, has a number of subtleties and it's not difficult to produce VOTable documents which violate it in various ways. In some cases the errors are small and a parser is likely to process the document without noticing the trouble. In other cases, the errors are so serious that it's hard for any software to make sense of it. In many cases in between, different software will react in different ways, in the worst case appearing to parse a VOTable but in fact understanding the wrong data.
votlint is a program which can check a VOTable document and spot places where it does not conform to the VOTable standard, or places which look like they may not mean what the author intended. It is meant for use in two main scenarios:
Validating a VOTable document against the VOTable schema or DTD of course goes a long way towards checking a VOTable document for errors, but it by no means does the whole job, simply because the schema/DTD specification languages don't have the facilities to understand the data structure of a VOTable document. For instance the VOTable schema will allow any plain text content in a TD element, but whether this makes sense in a VOTable depends on the datatype attribute of the corresponding FIELD element. There are many other examples. votlint tackles this by parsing the VOTable document in a way which understands its structure and assessing the content as critically as it can. For any incorrect or questionable content it finds, it will output a short message describing the problem and giving its location in the document. What you do with this information is then up to you.
Using votlint is very straightforward. The votable argument gives the location (filename or URL) of a VOTable document. Otherwise, the document will be read from standard input. Error and warning messages will be written on standard output. Each message is prefixed with the location at which the error was found (if possible the line and column are shown, though this is dependent on your JVM's default XML parser). If multiple instances of the same problem are found, by default only a few repeats of the message are reported; this can be controlled with the maxrepeat parameter. The processing is SAX-based, so arbitrarily long tables can be processed without heavy memory use.
votlint can't guarantee to pick up every possible error in a VOTable document, but it ought to pick up many of the most serious errors that are commonly made in authoring VOTables.
Note: votlint's handling of XML namespaces seems to be somewhat dependent on the XML parser in use. As far as I can see, Crimson (the default in many JREs) works for any namespace arrangements, but Xerces seems to have problems when validating documents which use namespace prefixes. Not sure about other parsers. This probably won't cause you trouble, but if it does you may need to set validate=false to work around it. Contact the author if this seems to be a serious issue for you.
The VOTable 1.4 standard recommends use of VOUnits, though there are some inconsistencies in the text on this topic. Earlier VOTable versions refer to a different (CDS) unit syntax, which is not checked by votlint. So by default unit syntax is checked when the VOTable is 1.4 or greater, and not for earlier versions, but that can be overridden by giving a true or false value for this parameter.
The wording of the VOTable and VOUnit standards do not strictly require use of VOUnit syntax even at VOTable 1.4, so failed checks result in Warning rather than Error reports.
If no value is provided for this parameter (the default), the version will be determined from the VOTable itself.
If the package stilts-doc is installed, the full documentation
SUN/256 is available in HTML format:
file:///usr/share/doc/stilts/sun256/index.html
STILTS version 3.4.7-debian
This is the Debian version of Stilts, which lack the support of
some file formats and network protocols. For differences see
file:///usr/share/doc/stilts/README.Debian
Mark Taylor (Bristol University)
Mar 2017 |