Package gov.usgs.util

Class SAXAdapter

All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler
Direct Known Subclasses:
EventAddonParser, RegionsHandler, URLNotificationParser

public class SAXAdapter extends DefaultHandler
SAXAdapter is a sax handler that accumulates element content, which is a common sax handler task. Users should be cautious because this in some ways removes efficiency gained by handling streaming events, because element content is being buffered. One buffer for each element nesting is maintained, so this works best for shallow documents, whose elements contain little content.
  • Constructor Details

    • SAXAdapter

      public SAXAdapter()
  • Method Details

    • onStartElement

      public void onStartElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
      SAXAdapter start element handler.
      Parameters:
      uri - element uri.
      localName - element localName.
      qName - element qName.
      attributes - element attributes.
      Throws:
      SAXException - if there is an error.
    • onEndElement

      public void onEndElement(String uri, String localName, String qName, String content) throws SAXException
      SAXAdapter end element handler. Content only includes characters that were read from this element, NOT any characters from child elements.
      Parameters:
      uri - element uri.
      localName - element localName.
      qName - element qName.
      content - element content.
      Throws:
      SAXException - if onEndElement throws a SAXException.
    • startElement

      public final void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
      Override DefaultHandler startElement. Adds a new element content buffer and calls onStartElement.
      Specified by:
      startElement in interface ContentHandler
      Overrides:
      startElement in class DefaultHandler
      Parameters:
      uri - element uri.
      localName - element localName.
      qName - element qName.
      attributes - element attributes.
      Throws:
      SAXException - if onStartElement throws a SAXException.
    • endElement

      public final void endElement(String uri, String localName, String qName) throws SAXException
      Override DefaultHandler endElement. Retrieves element content buffer and passes it to onEndElement.
      Specified by:
      endElement in interface ContentHandler
      Overrides:
      endElement in class DefaultHandler
      Parameters:
      uri - element uri.
      localName - element localName.
      qName - element qName.
      Throws:
      SAXException - if onEndElement throws a SAXException.
    • characters

      public final void characters(char[] ch, int start, int length) throws SAXException
      Override DefaultHandler characters. Appends content to current element buffer, or skips if before first element.
      Specified by:
      characters in interface ContentHandler
      Overrides:
      characters in class DefaultHandler
      Parameters:
      ch - content.
      start - position in content to read.
      length - lenth of content to read.
      Throws:
      SAXException - never.
    • parse

      public final Exception parse(String xml)
      Use this handler to parse a string. Wraps string bytes in a ByteArrayInputStream.
      Parameters:
      xml - string containing xml to parse.
      Returns:
      any exception that occurs while parsing, or null if no exceptions occur.
    • parse

      public final Exception parse(InputStream xml)
      Use this handler to parse an input stream. Uses self as a content and error handler in an XMLReader. If an error occurs, use getException to retrieve the error.
      Parameters:
      xml - input stream of xml to parse.
      Returns:
      any exception that occurs while parsing, or null if no exceptions occur.