Class XMLParserHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.eclipse.birt.core.framework.parser.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.DefaultHandlerFramework 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classXMLParserHandler.InnerAnyTagStateParses any valid XML; handles unimplemented tags.classXMLParserHandler.InnerParseStateBase class provides the parse state framework.
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringcurrentElementThe current element being parsed.protected java.util.ArrayListerrorsThe list contains errors encountered when parsing a XML file.protected org.xml.sax.LocatorlocatorSAXLocatorfor reporting errors.protected java.util.StackstateStackStack 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 voidcharacters(char[] ch, int start, int length)abstract AbstractParseStatecreateStartState()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.voidendDocument()voidendElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)Ends the parse state for an element.voiderror(org.xml.sax.SAXParseException e)voidfatalError(org.xml.sax.SAXParseException e)java.util.ListgetErrors()Returns the error list when parsing xml file.protected voidpushState(AbstractParseState state)Private method to add a parse state to the state stack.voidsemanticError(java.lang.Exception e)Add a recoverable semantic error to the error list.abstract voidsemanticError(XMLParserException e)Add a recoverable semantic error to the error list.voidsetDocumentLocator(org.xml.sax.Locator theLocator)voidstartDocument()voidstartElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)Starts an XML element.protected AbstractParseStatetopState()Private method to return the top of the state stack.voidwarning(org.xml.sax.SAXParseException e)
-
-
-
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
SAXLocatorfor reporting errors.
-
errors
protected java.util.ArrayList errors
The list contains errors encountered when parsing a XML file.
-
-
Method Detail
-
startDocument
public void startDocument() throws org.xml.sax.SAXException- Specified by:
startDocumentin interfaceorg.xml.sax.ContentHandler- Overrides:
startDocumentin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
endDocument
public void endDocument() throws org.xml.sax.SAXException- Specified by:
endDocumentin interfaceorg.xml.sax.ContentHandler- Overrides:
endDocumentin classorg.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.SAXExceptionStarts an XML element. Delegates to the current state the task of creating a new parse state for the new element.- Specified by:
startElementin interfaceorg.xml.sax.ContentHandler- Overrides:
startElementin classorg.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.SAXExceptionEnds the parse state for an element.- Specified by:
endElementin interfaceorg.xml.sax.ContentHandler- Overrides:
endElementin classorg.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:
charactersin interfaceorg.xml.sax.ContentHandler- Overrides:
charactersin classorg.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:
setDocumentLocatorin interfaceorg.xml.sax.ContentHandler- Overrides:
setDocumentLocatorin classorg.xml.sax.helpers.DefaultHandler
-
error
public void error(org.xml.sax.SAXParseException e) throws org.xml.sax.SAXException- Specified by:
errorin interfaceorg.xml.sax.ErrorHandler- Overrides:
errorin classorg.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:
warningin interfaceorg.xml.sax.ErrorHandler- Overrides:
warningin classorg.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:
fatalErrorin interfaceorg.xml.sax.ErrorHandler- Overrides:
fatalErrorin classorg.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
-
-