.TH STILTS-DATALINKLINT 1 "Mar 2017" "" "Stilts commands" .SH NAME stilts-datalinklint \- Validates DataLink documents .SH SYNOPSIS .ad l .HP 20 .hy 0 \fBstilts datalinklint\fR [votable=\fI||-\fR] [format=\fItext|json\fR] [report=\fI[EWISF]+\fR] [maxrepeat=\fI\fR] [truncate=\fI\fR] [debug=\fItrue|false\fR] .hy .ad .SH DESCRIPTION .PP \fIdatalinklint\fR runs a series of tests on a VOTable that is supposed to conform to the {links}-response format defined in the IVOA DataLink specification, and reports the results. This is not likely to be of use to normal users, it is intended for people developing or operating DataLink-compliant services to assess correctness, perhaps with a view to improving compliance. .PP To run it, you point it at the URL or filename of a VOTable of interest, and it runs various tests on it and reports them to standard output. Only the input table itself, and if the input location uses HTTP the HTTP headers, are tested, this validator does not inspect any other resources. As well as validation checks, some reporting of the table's content (such as a summary of the link defined by each row and a listing of the defined service descriptors) is provided as INFO-level output for convenience. This can be suppressed if preferred by use of the \fIreport\fR parameter. .PP This operates in much the same way as the \fItaplint\fR command, and the output has a similar format, though unlike \fItaplint\fR this command does not divide the testing up into stages. Each report line is of the form: T-MMMMxN aaaaa... where the parts have the following meanings: .RS 2 .IP * 2 \fIT\fR: Report type, one of E(rror), W(arning), I(nfo), S(ummary), F(ailure). See the documentation of the \fIreport\fR parameter for further description of what these mean. The \fIreport\fR parameter can be used to suppress some of these; only \fIE\fR indicates actual service compliance errors, but including the others may make it easier to see what's going on. .IP * 2 \fIMMMM\fR: Message label, which is always the same for messages generated by the same test, is usually different for messages generated by different tests, and may be somewhat mnemonic. .IP * 2 \fIx\fR: Continuation indicator, either "\fI-\fR" or "\fI+\fR". In most cases it is "\fI-\fR", indicating the first line of a message, but multi-line messages (rare) use "\fI-\fR" for the first line and "\fI+\fR" for any continuation lines. .IP * 2 \fIN\fR: Sequence number, which is 1 for the first time message \fIT-MMMM\fR is reported, and increases by one for each subsequent appearance. After a certain maximum (determined by the \fImaxrepeat\fR parameter) additional reports with the same code are no longer output individually, but a summary of the number of reports so discarded is written at the end of the section with the character "\fIx\fR" instead of the sequence number. This behaviour prevents the output being swamped by multiple reports of the same issue. If the \fImaxrepeat\fR parameter is increased above 9, more than one digit will be used here (so e.g. for maxrepeat=999, the format would be \fINNN\fR not \fIN\fR). .IP * 2 \fIaaaaa...\fR: Message text, a free text description of what is being reported. .RE .PP If you don't like that format, others may be selected using the \fIformat\fR parameter, which currently also supports JSON. For more flexible interaction with the output you can invoke \fItaplint\fR programmatically and supply your own instance. .PP As with any validator, this command does not guarantee to pick up everything wrong with the indicated VOTable, but it tries as hard as it can to check against the rules set out in the DataLink specification and other related documents as appropriate. A non-exhaustive list of the items checked is: .RS 2 .IP * 2 VOTable validation à la \fIvotlint\fR .IP * 2 Correct RESOURCE structure of VOTable document .IP * 2 All required columns are present with mandated metadata .IP * 2 Each row contains one of \fIaccess_url\fR, \fIservice_def\fR, \fIerror_message\fR .IP * 2 Service descriptors correctly specified and referenced .IP * 2 Syntax of \fIerror_message\fR column values .IP * 2 Syntax of \fIcontent_type\fR column values .IP * 2 Syntax of \fIsemantics\fR column values .IP * 2 Reported HTTP content-type, if applicable .IP * 2 Correct serialization (TABLEDATA) is used .IP * 2 DALI error-response checking, if applicable .RE At present \fBno checking\fR is performed on the link targets; tests are confined to the presented document itself. .PP HTTP connections made by this validator are flagged in the \fIUser-Agent\fR field with the token "\fI(IVOA-test)\fR". .SH OPTIONS .TP \fBvotable=\fI||-\fR .RS Location of the DataLink VOTable document to check. This may be a URL, or a filename, or the special value "\fI-\fR" to indicate standard input. .RE .TP \fBformat=\fItext|json\fR .RS Determines the format of the output. Possible values are \fItext\fR, \fIjson\fR. .PP Note not all of the other parameters may be applicable to all output formats. .RE .TP \fBreport=\fI[EWISF]+\fR .RS Letters indicating which message types should be listed. Each character of the string is one of the letters \fIE\fR, \fIW\fR, \fII\fR, \fIS\fR, \fIF\fR with the following meanings: .RS 2 .IP * 2 \fIE\fR: Error in operation or standard compliance of the service. .IP * 2 \fIW\fR: Warning that service behaviour is questionable, or contravenes a standard recommendation, but is not in actual violation of the standard. .IP * 2 \fII\fR: Information about progress, for instance details of queries made. .IP * 2 \fIS\fR: Summary of previous successful/unsuccessful reports. .IP * 2 \fIF\fR: Failure of the validator to perform some testing. The cause is either some error internal to the validator, or some error or missing functionality in the service which has already been reported. .RE .RE .TP \fBmaxrepeat=\fI\fR .RS Puts a limit on the number of times that a single message will be repeated. By setting this to some reasonably small number, you can ensure that the output does not get cluttered up by millions of repetitions of essentially the same error. .RE .TP \fBtruncate=\fI\fR .RS Limits the line length written to the output. .RE .TP \fBdebug=\fItrue|false\fR .RS If true, debugging output including stack traces will be output along with the normal validation messages. .RE .SH SEE ALSO \fBstilts\fR(1) .PP If the package stilts-doc is installed, the full documentation \fBSUN/256\fR is available in HTML format: .br \%file:///usr/share/doc/stilts/sun256/index.html .SH VERSION STILTS version 3.4.7-debian .PP This is the Debian version of Stilts, which lack the support of some file formats and network protocols. For differences see .br \%file:///usr/share/doc/stilts/README.Debian .SH AUTHOR Mark Taylor (Bristol University)