Package 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.

Author:
  Mark Taylor (Starlink)

### Constructor Summary

Constructors
`VOTableDOMBuilder​(uk.ac.starlink.table.StoragePolicy storagePolicy, boolean strict)` Constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`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​(uk.ac.starlink.table.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`