Class DalResultXMLFilter

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, org.xml.sax.XMLFilter, org.xml.sax.XMLReader

    public class DalResultXMLFilter
    extends org.xml.sax.helpers.XMLFilterImpl
    SAX filter which ignores any tables in a VOTable document, except those in a RESOURCE which has type="results". This is suitable for getting the basic table from the result of an SIA or SSA service. Under some circumstances the results can come with a large amount of non-result information (for instance massive numbers of small footprint tables from http://www.stecf.org/hst-vo/hst_ssa?), which can have a very serious impact on performance when trying to build a DOM. So if all you are interested in is the results table which the SIA/SSA protocol says has to be there, using this filter can save a lot of unnecessary processing.

    In many cases, you can just use the getDalResultTable(uk.ac.starlink.votable.VOElementFactory, org.xml.sax.InputSource) utility method.

    See Also:
    Simple Spectral Access Protocol, Simple Image Access Protocol
    • Constructor Summary

      Constructors 
      Constructor Description
      DalResultXMLFilter​(org.xml.sax.XMLReader parent, uk.ac.starlink.votable.Namespacing namespacing)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void characters​(char[] ch, int start, int length)  
      void endElement​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)  
      void endPrefixMapping​(java.lang.String prefix)  
      static uk.ac.starlink.table.StarTable getDalResultTable​(uk.ac.starlink.votable.VOElementFactory vofact, org.xml.sax.InputSource inSrc)
      Utility method which can return the single results table from a DAL-type response.
      void ignorableWhitespace​(char[] ch, int start, int length)  
      static uk.ac.starlink.votable.VOElement parseDalResult​(uk.ac.starlink.votable.VOElementFactory vofact, org.xml.sax.InputSource inSrc)
      Utility method which uses an instance of this class to turn a SAX InputSource into a DOM.
      void processingInstruction​(java.lang.String target, java.lang.String data)  
      void skippedEntity​(java.lang.String name)  
      void startElement​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)  
      void startPrefixMapping​(java.lang.String prefix, java.lang.String uri)  
      • Methods inherited from class org.xml.sax.helpers.XMLFilterImpl

        endDocument, error, fatalError, getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, getFeature, getParent, getProperty, notationDecl, parse, parse, resolveEntity, setContentHandler, setDocumentLocator, setDTDHandler, setEntityResolver, setErrorHandler, setFeature, setParent, setProperty, startDocument, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DalResultXMLFilter

        public DalResultXMLFilter​(org.xml.sax.XMLReader parent,
                                  uk.ac.starlink.votable.Namespacing namespacing)
        Constructor.
        Parameters:
        parent - parent SAX reader
        namespacing - VOTable namespacing policy to employ
    • Method Detail

      • startElement

        public void startElement​(java.lang.String namespaceURI,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes atts)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • endElement

        public void endElement​(java.lang.String namespaceURI,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • startPrefixMapping

        public void startPrefixMapping​(java.lang.String prefix,
                                       java.lang.String uri)
                                throws org.xml.sax.SAXException
        Specified by:
        startPrefixMapping in interface org.xml.sax.ContentHandler
        Overrides:
        startPrefixMapping in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • endPrefixMapping

        public void endPrefixMapping​(java.lang.String prefix)
                              throws org.xml.sax.SAXException
        Specified by:
        endPrefixMapping in interface org.xml.sax.ContentHandler
        Overrides:
        endPrefixMapping in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
                        throws org.xml.sax.SAXException
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • ignorableWhitespace

        public void ignorableWhitespace​(char[] ch,
                                        int start,
                                        int length)
                                 throws org.xml.sax.SAXException
        Specified by:
        ignorableWhitespace in interface org.xml.sax.ContentHandler
        Overrides:
        ignorableWhitespace in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          java.lang.String data)
                                   throws org.xml.sax.SAXException
        Specified by:
        processingInstruction in interface org.xml.sax.ContentHandler
        Overrides:
        processingInstruction in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • skippedEntity

        public void skippedEntity​(java.lang.String name)
                           throws org.xml.sax.SAXException
        Specified by:
        skippedEntity in interface org.xml.sax.ContentHandler
        Overrides:
        skippedEntity in class org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • parseDalResult

        public static uk.ac.starlink.votable.VOElement parseDalResult​(uk.ac.starlink.votable.VOElementFactory vofact,
                                                                      org.xml.sax.InputSource inSrc)
                                                               throws java.io.IOException
        Utility method which uses an instance of this class to turn a SAX InputSource into a DOM. The DOM will lack non-results tables.
        Parameters:
        vofact - factory which can generate VOTable DOMs
        inSrc - source of the SAX stream
        Throws:
        java.io.IOException
      • getDalResultTable

        public static uk.ac.starlink.table.StarTable getDalResultTable​(uk.ac.starlink.votable.VOElementFactory vofact,
                                                                       org.xml.sax.InputSource inSrc)
                                                                throws java.io.IOException
        Utility method which can return the single results table from a DAL-type response. This is the single table within the RESOURCE element marked with type="results", as described by the SIA and SSA standards. The QUERY_STATUS INFO element is checked; in case of ERROR, an exception is thrown.
        Parameters:
        vofact - factory which can generate VOTable DOMs
        inSrc - source of the SAX stream
        Returns:
        result table, never null
        Throws:
        java.io.IOException - in case of error, including an ERROR-valued QUERY_STATUS in the response, or no suitable table found