org.xml.sax.helpers

## Class XMLReaderAdapter

- java.lang.Object
- - org.xml.sax.helpers.XMLReaderAdapter

- All Implemented Interfaces:
    ContentHandler, Parser

      public class XMLReaderAdapter
      extends java.lang.Object
      implements Parser, ContentHandler

  Adapt a SAX2 XMLReader as a SAX1 Parser.

  > This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.

  This class wraps a SAX2 `XMLReader` and makes it act as a SAX1 `Parser`. The XMLReader must support a true value for the http://xml.org/sax/features/namespace-prefixes property or parsing will fail with a `SAXException`; if the XMLReader supports a false value for the http://xml.org/sax/features/namespaces property, that will also be used to improve efficiency.

  Since:
    SAX 2.0
  Version:
    2.0.1 (sax2r2)
  Author:
    David Megginson
  See Also:
    `Parser`, `XMLReader`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMLReaderAdapter()` Create a new adapter.
    `XMLReaderAdapter(XMLReader xmlReader)` Create a new adapter.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `characters(char[] ch, int start, int length)` Adapt a SAX2 characters event.
    `void` | `endDocument()` End document event.
    `void` | `endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)` Adapt a SAX2 end element event.
    `void` | `endPrefixMapping(java.lang.String prefix)` Adapt a SAX2 end prefix mapping event.
    `void` | `ignorableWhitespace(char[] ch, int start, int length)` Adapt a SAX2 ignorable whitespace event.
    `void` | `parse(InputSource input)` Parse the document.
    `void` | `parse(java.lang.String systemId)` Parse the document.
    `void` | `processingInstruction(java.lang.String target, java.lang.String data)` Adapt a SAX2 processing instruction event.
    `void` | `setDocumentHandler(DocumentHandler handler)` Register the SAX1 document event handler.
    `void` | `setDocumentLocator(Locator locator)` Set a document locator.
    `void` | `setDTDHandler(DTDHandler handler)` Register the DTD event handler.
    `void` | `setEntityResolver(EntityResolver resolver)` Register the entity resolver.
    `void` | `setErrorHandler(ErrorHandler handler)` Register the error event handler.
    `void` | `setLocale(java.util.Locale locale)` Set the locale for error reporting.
    `void` | `skippedEntity(java.lang.String name)` Adapt a SAX2 skipped entity event.
    `void` | `startDocument()` Start document event.
    `void` | `startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, Attributes atts)` Adapt a SAX2 start element event.
    `void` | `startPrefixMapping(java.lang.String prefix, java.lang.String uri)` Adapt a SAX2 start prefix mapping event.

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

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

- - ### Constructor Detail

    - #### XMLReaderAdapter

          public XMLReaderAdapter()
                           throws SAXException

      Create a new adapter.

      Use the "org.xml.sax.driver" property to locate the SAX2 driver to embed.

      Throws:
        `SAXException` - If the embedded driver cannot be instantiated or if the org.xml.sax.driver property is not specified.

    - #### XMLReaderAdapter

          public XMLReaderAdapter(XMLReader xmlReader)

      Create a new adapter.

      Create a new adapter, wrapped around a SAX2 XMLReader. The adapter will make the XMLReader act like a SAX1 Parser.

      Parameters:
        `xmlReader` - The SAX2 XMLReader to wrap.
      Throws:
        `java.lang.NullPointerException` - If the argument is null.

  - ### Method Detail

    - #### setLocale

          public void setLocale(java.util.Locale locale)
                         throws SAXException

      Set the locale for error reporting.

      This is not supported in SAX2, and will always throw an exception.

      Specified by:
        `setLocale` in interface `Parser`
      Parameters:
        `locale` - the locale for error reporting.
      Throws:
        `SAXException` - Thrown unless overridden.
      See Also:
        `Parser.setLocale(java.util.Locale)`

    - #### setEntityResolver

          public void setEntityResolver(EntityResolver resolver)

      Register the entity resolver.
      Specified by:
        `setEntityResolver` in interface `Parser`
      Parameters:
        `resolver` - The new resolver.
      See Also:
        `Parser.setEntityResolver(org.xml.sax.EntityResolver)`

    - #### setDTDHandler

          public void setDTDHandler(DTDHandler handler)

      Register the DTD event handler.
      Specified by:
        `setDTDHandler` in interface `Parser`
      Parameters:
        `handler` - The new DTD event handler.
      See Also:
        `Parser.setDTDHandler(org.xml.sax.DTDHandler)`

    - #### setDocumentHandler

          public void setDocumentHandler(DocumentHandler handler)

      Register the SAX1 document event handler.

      Note that the SAX1 document handler has no Namespace support.

      Specified by:
        `setDocumentHandler` in interface `Parser`
      Parameters:
        `handler` - The new SAX1 document event handler.
      See Also:
        `Parser.setDocumentHandler(org.xml.sax.DocumentHandler)`

    - #### setErrorHandler

          public void setErrorHandler(ErrorHandler handler)

      Register the error event handler.
      Specified by:
        `setErrorHandler` in interface `Parser`
      Parameters:
        `handler` - The new error event handler.
      See Also:
        `Parser.setErrorHandler(org.xml.sax.ErrorHandler)`

    - #### parse

          public void parse(java.lang.String systemId)
                     throws java.io.IOException,
                            SAXException

      Parse the document.

      This method will throw an exception if the embedded XMLReader does not support the http://xml.org/sax/features/namespace-prefixes property.

      Specified by:
        `parse` in interface `Parser`
      Parameters:
        `systemId` - The absolute URL of the document.
      Throws:
        `java.io.IOException` - If there is a problem reading the raw content of the document.
        `SAXException` - If there is a problem processing the document.
      See Also:
        `parse(org.xml.sax.InputSource)`, `Parser.parse(java.lang.String)`

    - #### parse

          public void parse(InputSource input)
                     throws java.io.IOException,
                            SAXException

      Parse the document.

      This method will throw an exception if the embedded XMLReader does not support the http://xml.org/sax/features/namespace-prefixes property.

      Specified by:
        `parse` in interface `Parser`
      Parameters:
        `input` - An input source for the document.
      Throws:
        `java.io.IOException` - If there is a problem reading the raw content of the document.
        `SAXException` - If there is a problem processing the document.
      See Also:
        `parse(java.lang.String)`, `Parser.parse(org.xml.sax.InputSource)`

    - #### setDocumentLocator

          public void setDocumentLocator(Locator locator)

      Set a document locator.
      Specified by:
        `setDocumentLocator` in interface `ContentHandler`
      Parameters:
        `locator` - The document locator.
      See Also:
        `ContentHandler.setDocumentLocator(org.xml.sax.Locator)`

    - #### startDocument

          public void startDocument()
                             throws SAXException

      Start document event.
      Specified by:
        `startDocument` in interface `ContentHandler`
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.startDocument()`

    - #### endDocument

          public void endDocument()
                           throws SAXException

      End document event.
      Specified by:
        `endDocument` in interface `ContentHandler`
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.endDocument()`

    - #### startPrefixMapping

          public void startPrefixMapping(java.lang.String prefix,
                                java.lang.String uri)

      Adapt a SAX2 start prefix mapping event.
      Specified by:
        `startPrefixMapping` in interface `ContentHandler`
      Parameters:
        `prefix` - The prefix being mapped.
        `uri` - The Namespace URI being mapped to.
      See Also:
        `ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)`

    - #### endPrefixMapping

          public void endPrefixMapping(java.lang.String prefix)

      Adapt a SAX2 end prefix mapping event.
      Specified by:
        `endPrefixMapping` in interface `ContentHandler`
      Parameters:
        `prefix` - The prefix being mapped.
      See Also:
        `ContentHandler.endPrefixMapping(java.lang.String)`

    - #### startElement

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

      Adapt a SAX2 start element event.
      Specified by:
        `startElement` in interface `ContentHandler`
      Parameters:
        `uri` - The Namespace URI.
        `localName` - The Namespace local name.
        `qName` - The qualified (prefixed) name.
        `atts` - The SAX2 attributes.
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.endDocument()`

    - #### endElement

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

      Adapt a SAX2 end element event.
      Specified by:
        `endElement` in interface `ContentHandler`
      Parameters:
        `uri` - The Namespace URI.
        `localName` - The Namespace local name.
        `qName` - The qualified (prefixed) name.
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)`

    - #### characters

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

      Adapt a SAX2 characters event.
      Specified by:
        `characters` in interface `ContentHandler`
      Parameters:
        `ch` - An array of characters.
        `start` - The starting position in the array.
        `length` - The number of characters to use.
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.characters(char[], int, int)`

    - #### ignorableWhitespace

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

      Adapt a SAX2 ignorable whitespace event.
      Specified by:
        `ignorableWhitespace` in interface `ContentHandler`
      Parameters:
        `ch` - An array of characters.
        `start` - The starting position in the array.
        `length` - The number of characters to use.
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.ignorableWhitespace(char[], int, int)`

    - #### processingInstruction

          public void processingInstruction(java.lang.String target,
                                   java.lang.String data)
                                     throws SAXException

      Adapt a SAX2 processing instruction event.
      Specified by:
        `processingInstruction` in interface `ContentHandler`
      Parameters:
        `target` - The processing instruction target.
        `data` - The remainder of the processing instruction
      Throws:
        `SAXException` - The client may raise a processing exception.
      See Also:
        `ContentHandler.processingInstruction(java.lang.String, java.lang.String)`

    - #### skippedEntity

          public void skippedEntity(java.lang.String name)
                             throws SAXException

      Adapt a SAX2 skipped entity event.
      Specified by:
        `skippedEntity` in interface `ContentHandler`
      Parameters:
        `name` - The name of the skipped entity.
      Throws:
        `SAXException` - Throwable by subclasses.
      See Also:
        `ContentHandler.skippedEntity(java.lang.String)`

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.