Package uk.ac.starlink.votable

# Class VOTableDOMBuilder

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

All Implemented Interfaces:
  `ContentHandler`

public class VOTableDOMBuilder extends Object implements 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
Constructor
Description
`VOTableDOMBuilder(uk.ac.starlink.table.StoragePolicy storagePolicy, boolean strict)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`characters(char[] ch, int start, int length)`
`void`
`endDocument()`
`void`
`endElement(String uri, String localName, String qName)`
`void`
`endPrefixMapping(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(String target, String data)`
`void`
`setDocumentLocator(Locator locator)`
`void`
`skippedEntity(String name)`
`void`
`startDocument()`
`void`
`startElement(String uri, String localName, String qName, Attributes atts)`
`void`
`startPrefixMapping(String prefix, String uri)`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface org.xml.sax.ContentHandler

`declaration`

## Constructor Details

### 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 Details

### 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(Locator locator)

Specified by:
  `setDocumentLocator` in interface `ContentHandler`

### startDocument

public void startDocument() throws SAXException

Specified by:
  `startDocument` in interface `ContentHandler`
Throws:
  `SAXException`

### endDocument

public void endDocument() throws SAXException

Specified by:
  `endDocument` in interface `ContentHandler`
Throws:
  `SAXException`

### startPrefixMapping

public void startPrefixMapping(String prefix, String uri) throws SAXException

Specified by:
  `startPrefixMapping` in interface `ContentHandler`
Throws:
  `SAXException`

### endPrefixMapping

public void endPrefixMapping(String prefix) throws SAXException

Specified by:
  `endPrefixMapping` in interface `ContentHandler`
Throws:
  `SAXException`

### startElement

public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException

Specified by:
  `startElement` in interface `ContentHandler`
Throws:
  `SAXException`

### endElement

public void endElement(String uri, String localName, String qName) throws SAXException

Specified by:
  `endElement` in interface `ContentHandler`
Throws:
  `SAXException`

### characters

public void characters(char[] ch, int start, int length) throws SAXException

Specified by:
  `characters` in interface `ContentHandler`
Throws:
  `SAXException`

### ignorableWhitespace

public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException

Specified by:
  `ignorableWhitespace` in interface `ContentHandler`
Throws:
  `SAXException`

### processingInstruction

public void processingInstruction(String target, String data) throws SAXException

Specified by:
  `processingInstruction` in interface `ContentHandler`
Throws:
  `SAXException`

### skippedEntity

public void skippedEntity(String name) throws SAXException

Specified by:
  `skippedEntity` in interface `ContentHandler`
Throws:
  `SAXException`