Title: Software Features
1(No Transcript)
2Software Features
- Java
- J2SE 1.4/1.5, portable, easy deployment
- Open source
- Licenced under the GPL
- Full documentation
- Tutorial/reference user documents, javadocs
- Scalable
- Designed for use with large tables, not
memory-limited - Switch between memory disk caching of bulk data
using pluggable Storage Policies
3(No Transcript)
4(No Transcript)
5STIL VOTable features
- Fully implements VOTable standard
- Understands TABLEDATA, BINARY, FITS (inline or by
URL) - VOTable 1.0 or 1.1 versions
- Flexible options for writing VOTables
- Can write TABLEDATA, BINARY, FITS (inline or by
URL) - Full access to structure of VOTable document
- Table-aware SAX (streamed) parsing
- Table-aware DOM (memory-based) processing
- Best-efforts parsing of non-conforming documents
- Processing is mainly FIELD and DATA elements
- Non-catastrophic schema changes easy to cope with
6(No Transcript)
7Table-aware SAX
- Extends SAX (streaming) XML parser with
VOTable-aware callback methods - Parsing code receives notification for start, end
and each row of TABLE data as well as XML
elements, entities, etc
Standard SAX handler
public interface ContentHandler void
startDocument() void endDocument() void
startElement( name, atts ...) void
endElement( name, ... ) void characters(
char-data, ... )
STIL extension for VOTables
public interface TableHandler void
startTable( StarTable metadata ) void
rowData( Object row ) void endTable()
8Axis VOTable de/serialization
- STIL provides custom serializer/deserializers for
use with Axis web services - JAX-RPC calls send StarTable objects over the
wire as VOTable documents - In principle, streaming means this works with
large tables - (but there are problems at Axis 1.1)
9(No Transcript)
10(No Transcript)
11(No Transcript)
12votlint
- Many VOTables are in violation of the standard
- Makes it hard for parsing software
- Data might get garbled
- DTD/Schema validation misses many errors
- Content of TD/STREAM elements can't be checked
against FIELDs - arraysize attribute values may be meaningless
- ref/ID crossreferences might make no sense
- etc, etc, etc ...
- votlint parses a VOTable document and warns of
trouble - Doesn't pick up everything, but it's a lot better
than not using it - Useful for VOTable authors and parser developers
- If you are producing VOTables or VOTable-writing
software - please use it to check your VOTables
are legal!
13votlint example
Running votlint on this valid document
ltVOTABLE xmlnsxsihttp//www.w3.org/2001/XMLSche
ma-instance xsischemaLocationhttp//w
ww.ivoa.net/xml/VOTable/v1.1
http//www.ivoa.net/xml/VOTable/v1.1
xmlnshttp//www.ivoa.net/xml/VOTable/v1.1
version1.1gt ltRESOURCEgt ltTABLE
nrows2gt ltDESCRIPTIONgtA very small
tablelt/DESCRIPTIONgt ltFIELD
nameIdentifier datatypechar/gt ltFIELD
nameRA datatypedouble/gt ltFIELD
nameDec datatyedouble/gt ltDATAgt
ltTABLEDATAgt ltTRgt
ltTDgtFomalhautlt/TDgt ltTDgt344.48lt/TDgt
ltTDgt-29.618d0lt/TDgt lt/TRgt
lt/TABLEDATAgt lt/DATAgt lt/TABLEgt
lt/RESOURCEgt lt/VOTABLEgt
gives these warnings
INFO (l.4) No arraysize for character, FIELD
implies single character WARNING (l.15)
Characters after first in char scalar ignored
(missing arraysize?) ERROR(l.17) Bad double
string -29.618d0 WARNING (l.19) Wrong number of
TDs in row (expecting 3 found 4) ERROR (l.22)
Row count (1) not equal to nrows attribute (2)
14Summary
- STIL http//www.starlink.ac.uk/stil/
- Table-aware DOM
- Table-aware SAX
- STILTS http/www.starlink.ac.uk/stilts/
- votcopy
- votlint
- Other features available
- TOPCAT, generic parts of STIL STILTS
- Applications session tomorrow, or talk to me
- The future is uncertain...