Class SAXAdapter

  • All Implemented Interfaces:
    IXMLBuilder

    public class SAXAdapter
    extends java.lang.Object
    implements IXMLBuilder
    SAXAdapter is the core adapter for using NanoXML/Java with SAX, the "Simple" API For XML.
    Author:
    Marc De Scheemaecker
    See Also:
    IXMLBuilder
    • Constructor Summary

      Constructors 
      Constructor Description
      SAXAdapter()
      Creates the adapter.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAttribute​(java.lang.String key, java.lang.String nsPrefix, java.lang.String nsSystemId, java.lang.String value, java.lang.String type)
      This method is called when a new attribute of an XML element is encountered.
      void addPCData​(java.io.Reader reader, java.lang.String systemID, int lineNr)
      This method is called when a PCDATA element is encountered.
      void elementAttributesProcessed​(java.lang.String name, java.lang.String nsPrefix, java.lang.String nsSystemId)
      This method is called when the attributes of an XML element have been processed.
      void endDocument()
      Indicates that parsing has been completed.
      void endElement​(java.lang.String name, java.lang.String nsPrefix, java.lang.String nsSystemId)
      This method is called when the end of an XML elemnt is encountered.
      protected void finalize()
      Cleans up the object when it's destroyed.
      java.lang.Object getResult()
      Returns the result of the building process.
      void newProcessingInstruction​(java.lang.String target, java.io.Reader reader)
      This method is called when a processing instruction is encountered.
      void setDocumentHandler​(org.xml.sax.DocumentHandler handler)
      Sets the document handler.
      void setReader​(IXMLReader reader)
      Sets the reader.
      void startBuilding​(java.lang.String systemID, int lineNr)
      This method is called before the parser starts processing its input.
      void startElement​(java.lang.String name, java.lang.String nsPrefix, java.lang.String nsSystemId, java.lang.String systemID, int lineNr)
      This method is called when a new XML element is encountered.
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SAXAdapter

        public SAXAdapter()
        Creates the adapter.
    • Method Detail

      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Cleans up the object when it's destroyed.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • setDocumentHandler

        public void setDocumentHandler​(org.xml.sax.DocumentHandler handler)
        Sets the document handler.
        Parameters:
        handler - the document handler
      • setReader

        public void setReader​(IXMLReader reader)
        Sets the reader.
        Parameters:
        reader - the reader.
      • startBuilding

        public void startBuilding​(java.lang.String systemID,
                                  int lineNr)
                           throws java.lang.Exception
        This method is called before the parser starts processing its input.
        Specified by:
        startBuilding in interface IXMLBuilder
        Parameters:
        systemID - the system ID of the data source
        lineNr - the line on which the parsing starts
        Throws:
        java.lang.Exception - If an exception occurred while processing the event.
      • newProcessingInstruction

        public void newProcessingInstruction​(java.lang.String target,
                                             java.io.Reader reader)
                                      throws java.lang.Exception
        This method is called when a processing instruction is encountered. PIs with target "xml" are handled by the parser.
        Specified by:
        newProcessingInstruction in interface IXMLBuilder
        Parameters:
        target - the PI target
        reader - to read the data from the PI
        Throws:
        java.lang.Exception - If an exception occurred while processing the event.
      • startElement

        public void startElement​(java.lang.String name,
                                 java.lang.String nsPrefix,
                                 java.lang.String nsSystemId,
                                 java.lang.String systemID,
                                 int lineNr)
                          throws java.lang.Exception
        This method is called when a new XML element is encountered.
        Specified by:
        startElement in interface IXMLBuilder
        Parameters:
        name - the name of the element
        nsPrefix - the prefix used to identify the namespace
        nsSystemId - the system ID associated with the namespace
        systemID - the system ID of the data source
        lineNr - the line in the source where the element starts
        Throws:
        java.lang.Exception - If an exception occurred while processing the event.
        See Also:
        endElement(java.lang.String, java.lang.String, java.lang.String)
      • endElement

        public void endElement​(java.lang.String name,
                               java.lang.String nsPrefix,
                               java.lang.String nsSystemId)
                        throws java.lang.Exception
        This method is called when the end of an XML elemnt is encountered.
        Specified by:
        endElement in interface IXMLBuilder
        Parameters:
        name - the name of the element
        nsPrefix - the prefix used to identify the namespace
        nsSystemId - the system ID associated with the namespace
        Throws:
        java.lang.Exception - If an exception occurred while processing the event.
        See Also:
        startElement(java.lang.String, java.lang.String, java.lang.String, java.lang.String, int)
      • addAttribute

        public void addAttribute​(java.lang.String key,
                                 java.lang.String nsPrefix,
                                 java.lang.String nsSystemId,
                                 java.lang.String value,
                                 java.lang.String type)
                          throws java.lang.Exception
        This method is called when a new attribute of an XML element is encountered.
        Specified by:
        addAttribute in interface IXMLBuilder
        Parameters:
        key - the key (name) of the attribute
        nsPrefix - the prefix used to identify the namespace
        nsSystemId - the system ID associated with the namespace
        value - the value of the attribute
        type - the type of the attribute ("CDATA" if unknown)
        Throws:
        java.lang.Exception - If an exception occurred while processing the event.
      • addPCData

        public void addPCData​(java.io.Reader reader,
                              java.lang.String systemID,
                              int lineNr)
                       throws java.lang.Exception
        This method is called when a PCDATA element is encountered. A Java reader is supplied from which you can read the data. The reader will only read the data of the element. You don't need to check for boundaries. If you don't read the full element, the rest of the data is skipped. You also don't have to care about entities; they are resolved by the parser.
        Specified by:
        addPCData in interface IXMLBuilder
        Parameters:
        reader - the Java reader from which you can retrieve the data
        systemID - the system ID of the data source
        lineNr - the line in the source where the element starts
        Throws:
        java.io.IOException - when the reader throws such exception
        java.lang.Exception - If an exception occurred while processing the event.
      • getResult

        public java.lang.Object getResult()
                                   throws java.lang.Exception
        Returns the result of the building process. This method is called just before the parse() method of IXMLParser returns.
        Specified by:
        getResult in interface IXMLBuilder
        Returns:
        the result of the building process.
        Throws:
        java.lang.Exception - If an exception occurred while processing the event.
        See Also:
        IXMLParser.parse()
      • endDocument

        public void endDocument()
                         throws java.lang.Exception
        Indicates that parsing has been completed.
        Throws:
        java.lang.Exception