Class XMLParserHandler

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

    public abstract class XMLParserHandler
    extends org.xml.sax.helpers.DefaultHandler
    Framework for parsing an XML file using a SAX parser. This framework provides a separate class for each element. These classes are called "state" classes because they represent the state of the parser. Generally, a state represents some object being created. This handler manages the stack of active states, and routes the SAX callbacks to the current state.
    See Also:
    AbstractParseState, AnyElementState, ParseState, XMLParserException
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String currentElement
      The current element being parsed.
      protected java.util.ArrayList errors
      The list contains errors encountered when parsing a XML file.
      protected org.xml.sax.Locator locator
      SAX Locator for reporting errors.
      protected java.util.Stack stateStack
      Stack of active parse states.
    • Constructor Summary

      Constructors 
      Constructor Description
      XMLParserHandler()
      Constructor
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void characters​(char[] ch, int start, int length)  
      abstract AbstractParseState createStartState()
      Parser handlers must implement this method to return the "start state": the state that will recognize the top-level element(s) in the XML file.
      void endDocument()  
      void endElement​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
      Ends the parse state for an element.
      void error​(org.xml.sax.SAXParseException e)  
      void fatalError​(org.xml.sax.SAXParseException e)  
      java.util.List getErrors()
      Returns the error list when parsing xml file.
      protected void pushState​(AbstractParseState state)
      Private method to add a parse state to the state stack.
      void semanticError​(java.lang.Exception e)
      Add a recoverable semantic error to the error list.
      abstract void semanticError​(XMLParserException e)
      Add a recoverable semantic error to the error list.
      void setDocumentLocator​(org.xml.sax.Locator theLocator)  
      void startDocument()  
      void startElement​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
      Starts an XML element.
      protected AbstractParseState topState()
      Private method to return the top of the state stack.
      void warning​(org.xml.sax.SAXParseException e)  
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        endPrefixMapping, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, skippedEntity, startPrefixMapping, unparsedEntityDecl
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • currentElement

        protected java.lang.String currentElement
        The current element being parsed.
      • stateStack

        protected java.util.Stack stateStack
        Stack of active parse states. Corresponds to the stack of currently active elements.
      • locator

        protected org.xml.sax.Locator locator
        SAX Locator for reporting errors.
      • errors

        protected java.util.ArrayList errors
        The list contains errors encountered when parsing a XML file.
    • Constructor Detail

      • XMLParserHandler

        public XMLParserHandler()
        Constructor
    • Method Detail

      • startDocument

        public void startDocument()
                           throws org.xml.sax.SAXException
        Specified by:
        startDocument in interface org.xml.sax.ContentHandler
        Overrides:
        startDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endDocument

        public void endDocument()
                         throws org.xml.sax.SAXException
        Specified by:
        endDocument in interface org.xml.sax.ContentHandler
        Overrides:
        endDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • semanticError

        public void semanticError​(java.lang.Exception e)
        Add a recoverable semantic error to the error list.
        Parameters:
        e - The exception to log.
      • semanticError

        public abstract void semanticError​(XMLParserException e)
        Add a recoverable semantic error to the error list.
        Parameters:
        e - The exception to log.
      • pushState

        protected void pushState​(AbstractParseState state)
        Private method to add a parse state to the state stack.
        Parameters:
        state - the state to push
      • topState

        protected AbstractParseState topState()
        Private method to return the top of the state stack.
        Returns:
        the state at the top of the state stack
      • startElement

        public void startElement​(java.lang.String namespaceURI,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes atts)
                          throws org.xml.sax.SAXException
        Starts an XML element. Delegates to the current state the task of creating a new parse state for the new element.
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        ContentHandler.startElement(String, String, String, Attributes)
      • endElement

        public void endElement​(java.lang.String namespaceURI,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Ends the parse state for an element.
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        ContentHandler.endElement(String, String, String)
      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
                        throws org.xml.sax.SAXException
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        ContentHandler.characters(char[], int, int)
      • createStartState

        public abstract AbstractParseState createStartState()
        Parser handlers must implement this method to return the "start state": the state that will recognize the top-level element(s) in the XML file.
        Returns:
        the start state specific to the derived parser
      • setDocumentLocator

        public void setDocumentLocator​(org.xml.sax.Locator theLocator)
        Specified by:
        setDocumentLocator in interface org.xml.sax.ContentHandler
        Overrides:
        setDocumentLocator in class org.xml.sax.helpers.DefaultHandler
      • error

        public void error​(org.xml.sax.SAXParseException e)
                   throws org.xml.sax.SAXException
        Specified by:
        error in interface org.xml.sax.ErrorHandler
        Overrides:
        error in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • warning

        public void warning​(org.xml.sax.SAXParseException e)
                     throws org.xml.sax.SAXException
        Specified by:
        warning in interface org.xml.sax.ErrorHandler
        Overrides:
        warning in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • fatalError

        public void fatalError​(org.xml.sax.SAXParseException e)
                        throws org.xml.sax.SAXException
        Specified by:
        fatalError in interface org.xml.sax.ErrorHandler
        Overrides:
        fatalError in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • getErrors

        public java.util.List getErrors()
        Returns the error list when parsing xml file.
        Returns:
        the errors