Package uk.ac.starlink.vo
Class TableSetSaxHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- uk.ac.starlink.vo.TableSetSaxHandler
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler,org.xml.sax.DTDHandler,org.xml.sax.EntityResolver,org.xml.sax.ErrorHandler
public class TableSetSaxHandler extends org.xml.sax.helpers.DefaultHandlerParses an XML document which describes Tabular Data as prescribed by the VODataService standard. It will pick up <table> elements (of type vs:Table), or elements that look like them, to build a picture of the tables and their columns and foreign keys. XML documents of this type are exposed by VOSI and TAP services.The easiest way to make use of this class is via the static method
readTableSet(java.net.URL, uk.ac.starlink.util.ContentCoding)or the conveniencemain(java.lang.String[])method.- See Also:
- IVOA VODataService Recommendation
-
-
Constructor Summary
Constructors Constructor Description TableSetSaxHandler()Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcharacters(char[] ch, int start, int length)voidendDocument()voidendElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)voidendPrefixMapping(java.lang.String prefix)TableMeta[]getNakedTables()Returns the array of table metadata objects which were found outside of any schema.SchemaMeta[]getSchemas(boolean includeNaked)Returns the array of schema metadata objects which have been read by this parser.voidignorableWhitespace(char[] ch, int start, int length)static voidmain(java.lang.String[] args)Main method to parse a tableset from the command line.static TableSetSaxHandlerpopulateHandler(java.net.URL url, uk.ac.starlink.util.ContentCoding coding)Uses an instance of this class to parse the document at a given URL.voidprocessingInstruction(java.lang.String target, java.lang.String data)static TableMeta[]readTables(java.net.URL url, uk.ac.starlink.util.ContentCoding coding)Uses an instance of this class to read an XML document from a given URL and extracts a flat list of all the TableMeta objects it represents.static SchemaMeta[]readTableSet(java.net.URL url, uk.ac.starlink.util.ContentCoding coding)Uses an instance of this class to read an XML document from a given URL and extract the SchemaMeta objects it represents.voidsetDocumentLocator(org.xml.sax.Locator locator)voidskippedEntity(java.lang.String name)voidstartDocument()voidstartElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)voidstartPrefixMapping(java.lang.String prefix, java.lang.String uri)
-
-
-
Method Detail
-
getSchemas
public SchemaMeta[] getSchemas(boolean includeNaked)
Returns the array of schema metadata objects which have been read by this parser. Only non-empty following a parse.- Parameters:
includeNaked- if false, only the schemas actually encountered are returned; if true, then any naked tables will be included in a dummy schema in the result- Returns:
- fully populated table metadata
-
getNakedTables
public TableMeta[] getNakedTables()
Returns the array of table metadata objects which were found outside of any schema. Only non-empty following a parse.- Returns:
- table metadata
-
startDocument
public void startDocument()
- Specified by:
startDocumentin interfaceorg.xml.sax.ContentHandler- Overrides:
startDocumentin classorg.xml.sax.helpers.DefaultHandler
-
endDocument
public void endDocument()
- Specified by:
endDocumentin interfaceorg.xml.sax.ContentHandler- Overrides:
endDocumentin classorg.xml.sax.helpers.DefaultHandler
-
startElement
public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)- Specified by:
startElementin interfaceorg.xml.sax.ContentHandler- Overrides:
startElementin classorg.xml.sax.helpers.DefaultHandler
-
endElement
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)- Specified by:
endElementin interfaceorg.xml.sax.ContentHandler- Overrides:
endElementin classorg.xml.sax.helpers.DefaultHandler
-
characters
public void characters(char[] ch, int start, int length)- Specified by:
charactersin interfaceorg.xml.sax.ContentHandler- Overrides:
charactersin classorg.xml.sax.helpers.DefaultHandler
-
ignorableWhitespace
public void ignorableWhitespace(char[] ch, int start, int length)- Specified by:
ignorableWhitespacein interfaceorg.xml.sax.ContentHandler- Overrides:
ignorableWhitespacein classorg.xml.sax.helpers.DefaultHandler
-
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri)- Specified by:
startPrefixMappingin interfaceorg.xml.sax.ContentHandler- Overrides:
startPrefixMappingin classorg.xml.sax.helpers.DefaultHandler
-
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix)
- Specified by:
endPrefixMappingin interfaceorg.xml.sax.ContentHandler- Overrides:
endPrefixMappingin classorg.xml.sax.helpers.DefaultHandler
-
processingInstruction
public void processingInstruction(java.lang.String target, java.lang.String data)- Specified by:
processingInstructionin interfaceorg.xml.sax.ContentHandler- Overrides:
processingInstructionin classorg.xml.sax.helpers.DefaultHandler
-
skippedEntity
public void skippedEntity(java.lang.String name)
- Specified by:
skippedEntityin interfaceorg.xml.sax.ContentHandler- Overrides:
skippedEntityin classorg.xml.sax.helpers.DefaultHandler
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocatorin interfaceorg.xml.sax.ContentHandler- Overrides:
setDocumentLocatorin classorg.xml.sax.helpers.DefaultHandler
-
readTableSet
public static SchemaMeta[] readTableSet(java.net.URL url, uk.ac.starlink.util.ContentCoding coding) throws java.io.IOException, org.xml.sax.SAXException
Uses an instance of this class to read an XML document from a given URL and extract the SchemaMeta objects it represents.- Parameters:
url- containing a TableSet document or similarcoding- configures HTTP content-coding- Returns:
- array of schema metadata objects giving table metadata
- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
readTables
public static TableMeta[] readTables(java.net.URL url, uk.ac.starlink.util.ContentCoding coding) throws java.io.IOException, org.xml.sax.SAXException
Uses an instance of this class to read an XML document from a given URL and extracts a flat list of all the TableMeta objects it represents. This includes all the tables in schemas, as well as any outside any<schema>element.- Parameters:
url- containing a TableSet document or similarcoding- configures HTTP content-coding- Returns:
- flat list of all tables
- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
populateHandler
public static TableSetSaxHandler populateHandler(java.net.URL url, uk.ac.starlink.util.ContentCoding coding) throws java.io.IOException, org.xml.sax.SAXException
Uses an instance of this class to parse the document at a given URL.- Parameters:
url- containing a TableSet document or similarcoding- configures HTTP content-coding- Returns:
- handler containing located items
- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
main
public static void main(java.lang.String[] args) throws java.io.IOException, org.xml.sax.SAXExceptionMain method to parse a tableset from the command line.- Parameters:
args- first element is a URL to read from- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
-