uk.ac.starlink.votable

## Class VOTableDOMBuilder

- java.lang.Object
- - uk.ac.starlink.votable.VOTableDOMBuilder

- All Implemented Interfaces:
    org.xml.sax.ContentHandler

      public class VOTableDOMBuilder
      extends java.lang.Object
      implements org.xml.sax.ContentHandler

  Custom DOM builder for parsing VOTable documents or fragments. For the most part it builds a DOM, but within data-heavy elements (those which represent table data) it intercepts SAX events directly to construct the table data which it stores in the corresponding TableElement node, rather than installing bulk data as CDATA or Element nodes within the resulting DOM.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `VOTableDOMBuilder(StoragePolicy storagePolicy, boolean strict)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `characters(char[] ch, int start, int length)`
    `void` | `endDocument()`
    `void` | `endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)`
    `void` | `endPrefixMapping(java.lang.String prefix)`
    `VODocument` | `getDocument()` Returns the DOM document built by this parser, following a parse.
    `void` | `ignorableWhitespace(char[] ch, int start, int length)`
    `void` | `processingInstruction(java.lang.String target, java.lang.String data)`
    `void` | `setDocumentLocator(org.xml.sax.Locator locator)`
    `void` | `skippedEntity(java.lang.String name)`
    `void` | `startDocument()`
    `void` | `startElement(java.lang.String uri, 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 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### VOTableDOMBuilder

          public VOTableDOMBuilder(StoragePolicy storagePolicy,
                                   boolean strict)

      Constructor.
      Parameters:
        `storagePolicy` - policy for bulk data storage
        `strict` - true iff you want strict enforcement of VOTable standard

  - ### Method Detail

    - #### getDocument

          public VODocument getDocument()

      Returns the DOM document built by this parser, following a parse. Each TableElement has a TabularData object attached from which the actual table data can be retrieved.
      Returns:
        VOTable DOM

    - #### setDocumentLocator

          public void setDocumentLocator(org.xml.sax.Locator locator)

      Specified by:
        `setDocumentLocator` in interface `org.xml.sax.ContentHandler`

    - #### startDocument

          public void startDocument()
                             throws org.xml.sax.SAXException

      Specified by:
        `startDocument` in interface `org.xml.sax.ContentHandler`
      Throws:
        `org.xml.sax.SAXException`

    - #### endDocument

          public void endDocument()
                           throws org.xml.sax.SAXException

      Specified by:
        `endDocument` in interface `org.xml.sax.ContentHandler`
      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`
      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`
      Throws:
        `org.xml.sax.SAXException`

    - #### startElement

          public void startElement(java.lang.String uri,
                                   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`
      Throws:
        `org.xml.sax.SAXException`

    - #### endElement

          public void endElement(java.lang.String uri,
                                 java.lang.String localName,
                                 java.lang.String qName)
                          throws org.xml.sax.SAXException

      Specified by:
        `endElement` in interface `org.xml.sax.ContentHandler`
      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`
      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`
      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`
      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`
      Throws:
        `org.xml.sax.SAXException`