Class ToSAXHandler

java.lang.Object
org.apache.xml.serializer.SerializerBase
org.apache.xml.serializer.ToSAXHandler
All Implemented Interfaces:
DOMSerializer, ExtendedContentHandler, ExtendedLexicalHandler, SerializationHandler, Serializer, ContentHandler, DTDHandler, ErrorHandler, DeclHandler, LexicalHandler
Direct Known Subclasses:
ToTextSAXHandler, ToXMLSAXHandler

public abstract class ToSAXHandler
extends SerializerBase
This class is used to provide a base behavior to be inherited by other To...SAXHandler serializers. This class is not a public API.
  • Field Details

  • Constructor Details

  • Method Details

    • startDocumentInternal

      protected void startDocumentInternal() throws SAXException
      Pass callback to the SAX Handler
      Overrides:
      startDocumentInternal in class SerializerBase
      Throws:
      SAXException
    • startDTD

      public void startDTD​(String arg0, String arg1, String arg2) throws SAXException
      Do nothing.
      Parameters:
      arg0 - The document type name.
      arg1 - The declared public identifier for the external DTD subset, or null if none was declared.
      arg2 - The declared system identifier for the external DTD subset, or null if none was declared. (Note that this is not resolved against the document base URI.)
      Throws:
      SAXException - The application may raise an exception.
      See Also:
      LexicalHandler.startDTD(String, String, String)
    • characters

      public void characters​(String characters) throws SAXException
      Receive notification of character data.
      Parameters:
      characters - The string of characters to process.
      Throws:
      SAXException
      See Also:
      ExtendedContentHandler.characters(String)
    • comment

      public void comment​(String comment) throws SAXException
      Receive notification of a comment.
      Specified by:
      comment in interface ExtendedLexicalHandler
      Overrides:
      comment in class SerializerBase
      Parameters:
      comment - the comment, but unlike the SAX comment() method this method takes a String rather than a character array.
      Throws:
      SAXException
      See Also:
      ExtendedLexicalHandler.comment(String)
    • processingInstruction

      public void processingInstruction​(String target, String data) throws SAXException
      Do nothing as this is an abstract class. All subclasses will need to define their behavior if it is different.
      Parameters:
      target - the processing instruction target
      data - the processing instruction data, or null if none was supplied. The data does not include any whitespace separating it from the target
      Throws:
      SAXException - any SAX exception, possibly wrapping another exception
      See Also:
      ContentHandler.processingInstruction(String, String)
    • closeStartTag

      protected void closeStartTag() throws SAXException
      Throws:
      SAXException
    • closeCDATA

      protected void closeCDATA() throws SAXException
      Throws:
      SAXException
    • startElement

      public void startElement​(String arg0, String arg1, String arg2, Attributes arg3) throws SAXException
      Receive notification of the beginning of an element, although this is a SAX method additional namespace or attribute information can occur before or after this call, that is associated with this element.
      Parameters:
      arg0 - the Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed
      arg1 - the local name (without prefix), or the empty string if Namespace processing is not being performed
      arg2 - the qualified name (with prefix), or the empty string if qualified names are not available
      arg3 - the attributes attached to the element. If there are no attributes, it shall be an empty Attributes object. The value of this object after startElement returns is undefined
      Throws:
      SAXException - Any SAX exception, possibly wrapping another exception.
      SAXException
      See Also:
      ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes), ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String), AttributeList, ContentHandler.startElement(String,String,String,Attributes)
    • setLexHandler

      public void setLexHandler​(LexicalHandler _lexHandler)
      Sets the LexicalHandler.
      Parameters:
      _lexHandler - The LexicalHandler to set
    • setContentHandler

      public void setContentHandler​(ContentHandler _saxHandler)
      Sets the SAX ContentHandler.
      Parameters:
      _saxHandler - The ContentHandler to set
      See Also:
      Serializer.asContentHandler(), ToSAXHandler
    • setCdataSectionElements

      public void setCdataSectionElements​(Vector URI_and_localNames)
      Does nothing. The setting of CDATA section elements has an impact on stream serializers.
      See Also:
      XSLOutputAttributes.setCdataSectionElements(java.util.Vector)
    • setShouldOutputNSAttr

      public void setShouldOutputNSAttr​(boolean doOutputNSAttr)
      Set whether or not namespace declarations (e.g. xmlns:foo) should appear as attributes of elements
      Parameters:
      doOutputNSAttr - whether or not namespace declarations should appear as attributes
    • flushPending

      public void flushPending() throws SAXException
      This method flushes any pending events, which can be startDocument() closing the opening tag of an element, or closing an open CDATA section.
      Throws:
      SAXException
    • setTransformState

      public void setTransformState​(TransformStateSetter ts)
      Pass in a reference to a TransformState object, which can be used during SAX ContentHandler events to obtain information about he state of the transformation. This method will be called before each startDocument event.
      Parameters:
      ts - A reference to a TransformState object
    • startElement

      public void startElement​(String uri, String localName, String qName) throws SAXException
      Receives notification that an element starts, but attributes are not fully known yet.
      Parameters:
      uri - the URI of the namespace of the element (optional)
      localName - the element name, but without prefix (optional)
      qName - the element name, with prefix, if any (required)
      Throws:
      SAXException
      See Also:
      ExtendedContentHandler.startElement(String, String, String)
    • startElement

      public void startElement​(String qName) throws SAXException
      An element starts, but attributes are not fully known yet.
      Parameters:
      qName - the element name, with prefix (if any).
      Throws:
      SAXException
      See Also:
      ExtendedContentHandler.startElement(String)
    • characters

      public void characters​(Node node) throws SAXException
      This method gets the node's value as a String and uses that String as if it were an input character notification.
      Specified by:
      characters in interface ExtendedContentHandler
      Overrides:
      characters in class SerializerBase
      Parameters:
      node - the Node to serialize
      Throws:
      SAXException
    • fatalError

      public void fatalError​(SAXParseException exc) throws SAXException
      Description copied from interface: ErrorHandler
      Receive notification of a non-recoverable error.

      There is an apparent contradiction between the documentation for this method and the documentation for ContentHandler.endDocument(). Until this ambiguity is resolved in a future major release, clients should make no assumptions about whether endDocument() will or will not be invoked when the parser has reported a fatalError() or thrown an exception.

      This corresponds to the definition of "fatal error" in section 1.2 of the W3C XML 1.0 Recommendation. For example, a parser would use this callback to report the violation of a well-formedness constraint.

      The application must assume that the document is unusable after the parser has invoked this method, and should continue (if at all) only for the sake of collecting additional error messages: in fact, SAX parsers are free to stop reporting any other events once this method has been invoked.

      Specified by:
      fatalError in interface ErrorHandler
      Overrides:
      fatalError in class SerializerBase
      Parameters:
      exc - The error information encapsulated in a SAX parse exception.
      Throws:
      SAXException - Any SAX exception, possibly wrapping another exception.
      See Also:
      ErrorHandler.fatalError(SAXParseException)
    • error

      public void error​(SAXParseException exc) throws SAXException
      Description copied from interface: ErrorHandler
      Receive notification of a recoverable error.

      This corresponds to the definition of "error" in section 1.2 of the W3C XML 1.0 Recommendation. For example, a validating parser would use this callback to report the violation of a validity constraint. The default behaviour is to take no action.

      The SAX parser must continue to provide normal parsing events after invoking this method: it should still be possible for the application to process the document through to the end. If the application cannot do so, then the parser should report a fatal error even if the XML recommendation does not require it to do so.

      Filters may use this method to report other, non-XML errors as well.

      Specified by:
      error in interface ErrorHandler
      Overrides:
      error in class SerializerBase
      Parameters:
      exc - The error information encapsulated in a SAX parse exception.
      Throws:
      SAXException - Any SAX exception, possibly wrapping another exception.
      See Also:
      ErrorHandler.error(SAXParseException)
    • warning

      public void warning​(SAXParseException exc) throws SAXException
      Description copied from interface: ErrorHandler
      Receive notification of a warning.

      SAX parsers will use this method to report conditions that are not errors or fatal errors as defined by the XML recommendation. The default behaviour is to take no action.

      The SAX parser must continue to provide normal parsing events after invoking this method: it should still be possible for the application to process the document through to the end.

      Filters may use this method to report other, non-XML warnings as well.

      Specified by:
      warning in interface ErrorHandler
      Overrides:
      warning in class SerializerBase
      Parameters:
      exc - The warning information encapsulated in a SAX parse exception.
      Throws:
      SAXException - Any SAX exception, possibly wrapping another exception.
      See Also:
      ErrorHandler.warning(SAXParseException)
    • reset

      public boolean reset()
      Try's to reset the super class and reset this class for re-use, so that you don't need to create a new serializer (mostly for performance reasons).
      Specified by:
      reset in interface Serializer
      Overrides:
      reset in class SerializerBase
      Returns:
      true if the class was successfuly reset.
      See Also:
      Serializer.reset()
    • addUniqueAttribute

      public void addUniqueAttribute​(String qName, String value, int flags) throws SAXException
      Add a unique attribute
      Parameters:
      qName - the fully qualified attribute name.
      value - the attribute value
      flags - a bitwise flag
      Throws:
      SAXException