Here is a brief example of running votlint against
a (very short) imperfect VOTable document. If the document looks like
this:
<VOTABLE version="1.1">
<RESOURCE>
<TABLE nrows="2">
<FIELD name="Identifier" datatype="char"/>
<FIELD name="RA" datatype="double"/>
<FIELD name="Dec" datatype="double"/>
<DESCRIPTION>A very small table</DESCRIPTION>
<DATA>
<TABLEDATA>
<TR>
<TD>Fomalhaut</TD>
<TD>344.48</TD>
<TD>-29.618</TD>
<TD>HD 216956</TD>
</TR>
</TABLEDATA>
</DATA>
</TABLE>
</RESOURCE>
</VOTABLE>
then the output of a votlint run looks like this:
INFO (l.4): No arraysize for character, FIELD implies single character ERROR (l.7): Element "TABLE" does not allow "DESCRIPTION" here. WARNING (l.11): Characters after first in char scalar ignored (missing arraysize?) WARNING (l.15): Wrong number of TDs in row (expecting 3 found 4) ERROR (l.18): Row count (1) not equal to nrows attribute (2)(Note that the details of the reports will vary according to the XML parser/validator that forms part of your Java installation.)
Note also that the warning at line 11 has resulted from
the same error as the
one at line 4 - because the FIELD element has no
arraysize attribute, arraysize="1"
(single character) is assumed,
while the author almost certainly intended arraysize="*"
(unknown length string).
By examining these warnings you can see what needs to be done to fix this table up. Here is what it should look like:
<VOTABLE version="1.1">
<RESOURCE>
<TABLE nrows="1"> <!-- change row count -->
<DESCRIPTION>A very small table</DESCRIPTION> <!-- move DESCRIPTION -->
<FIELD name="Identifier" datatype="char"
arraysize="*"/> <!-- add arraysize -->
<FIELD name="RA" datatype="double"/>
<FIELD name="Dec" datatype="double"/>
<DATA>
<TABLEDATA>
<TR>
<TD>Fomalhaut</TD>
<TD>344.48</TD>
<TD>-29.618</TD>
</TR> <!-- remove extra TD -->
</TABLEDATA>
</DATA>
</TABLE>
</RESOURCE>
</VOTABLE>
When fed this version, votlint gives no warnings.