xml.parser
Class SAXParserImpl.Handler
java.lang.Object
org.xml.sax.helpers.DefaultHandler
xml.parser.SAXParserImpl.Handler
- All Implemented Interfaces:
- org.xml.sax.ContentHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
- Enclosing class:
- SAXParserImpl
- class SAXParserImpl.Handler
- extends org.xml.sax.helpers.DefaultHandler
- implements org.xml.sax.ext.DeclHandler
Constructor Summary |
(package private) |
SAXParserImpl.Handler(Buffer buffer,
java.lang.String text,
DefaultErrorSource errorSource,
XmlParsedData data,
XMLGrammarPoolImpl grammarPool)
|
Method Summary |
private void |
addError(int type,
java.lang.String uri,
int line,
java.lang.String message)
|
void |
addText()
This method adds the text to the tree
if the text is longer than 20 letters it shows
only three words and then three dots |
void |
attributeDecl(java.lang.String eName,
java.lang.String aName,
java.lang.String type,
java.lang.String valueDefault,
java.lang.String value)
|
void |
characters(char[] ch,
int start,
int length)
|
void |
elementDecl(java.lang.String name,
java.lang.String model)
|
void |
endDocument()
|
void |
endElement(java.lang.String namespaceURI,
java.lang.String sName,
java.lang.String qName)
|
void |
endPrefixMapping(java.lang.String prefix)
|
void |
error(org.xml.sax.SAXParseException spe)
|
void |
externalEntityDecl(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
|
void |
fatalError(org.xml.sax.SAXParseException spe)
|
private int |
findTagStart(int offset)
|
private Grammar |
getGrammarForNamespace(java.lang.String uri)
|
private CompletionInfo |
grammarToCompletionInfo(Grammar grammar)
|
void |
internalEntityDecl(java.lang.String name,
java.lang.String value)
|
private org.xml.sax.Attributes |
matchAttributes(org.xml.sax.Attributes attrs,
int offset)
This method fixes the problem with SAX
It compares the attributes from buffer and attrs list
if they don't match it changes the attrs list so that
it matches the information from the buffer
TODO: compare the buffer attributes to the attributelist
for example saxparser parses off the xmlns attribute
from html element so it should be added to the attribute
list
does not work with form -> enctype.... |
org.xml.sax.InputSource |
resolveEntity(java.lang.String publicId,
java.lang.String systemId)
|
void |
setDocumentLocator(org.xml.sax.Locator locator)
|
void |
startElement(java.lang.String namespaceURI,
java.lang.String lName,
java.lang.String qName,
org.xml.sax.Attributes attrs)
|
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
|
void |
warning(org.xml.sax.SAXParseException spe)
|
Methods inherited from class org.xml.sax.helpers.DefaultHandler |
ignorableWhitespace, notationDecl, processingInstruction, skippedEntity, startDocument, unparsedEntityDecl |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
buffer
Buffer buffer
errorSource
DefaultErrorSource errorSource
text
java.lang.String text
data
XmlParsedData data
grammarPool
XMLGrammarPoolImpl grammarPool
activePrefixes
java.util.HashMap activePrefixes
currentNodeStack
java.util.Stack currentNodeStack
loc
org.xml.sax.Locator loc
empty
boolean empty
lastCallChar
boolean lastCallChar
textContent
java.lang.StringBuffer textContent
charStartOffset
int charStartOffset
charEndOffset
int charEndOffset
MAX_TEXT_LENGTH
private static final int MAX_TEXT_LENGTH
- See Also:
- Constant Field Values
SAXParserImpl.Handler
SAXParserImpl.Handler(Buffer buffer,
java.lang.String text,
DefaultErrorSource errorSource,
XmlParsedData data,
XMLGrammarPoolImpl grammarPool)
addError
private void addError(int type,
java.lang.String uri,
int line,
java.lang.String message)
getGrammarForNamespace
private Grammar getGrammarForNamespace(java.lang.String uri)
grammarToCompletionInfo
private CompletionInfo grammarToCompletionInfo(Grammar grammar)
endDocument
public void endDocument()
throws org.xml.sax.SAXException
- Specified by:
endDocument
in interface org.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocator
in interface org.xml.sax.ContentHandler
resolveEntity
public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
java.lang.String systemId)
throws org.xml.sax.SAXException
- Specified by:
resolveEntity
in interface org.xml.sax.EntityResolver
- Throws:
org.xml.sax.SAXException
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
- Specified by:
startPrefixMapping
in interface org.xml.sax.ContentHandler
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix)
- Specified by:
endPrefixMapping
in interface org.xml.sax.ContentHandler
startElement
public void startElement(java.lang.String namespaceURI,
java.lang.String lName,
java.lang.String qName,
org.xml.sax.Attributes attrs)
throws org.xml.sax.SAXException
- Specified by:
startElement
in interface org.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
matchAttributes
private org.xml.sax.Attributes matchAttributes(org.xml.sax.Attributes attrs,
int offset)
- This method fixes the problem with SAX
It compares the attributes from buffer and attrs list
if they don't match it changes the attrs list so that
it matches the information from the buffer
TODO: compare the buffer attributes to the attributelist
for example saxparser parses off the xmlns attribute
from html element so it should be added to the attribute
list
does not work with form -> enctype....
- Parameters:
attrs
- Attributesoffset
- int
- Returns:
- Attributes
endElement
public void endElement(java.lang.String namespaceURI,
java.lang.String sName,
java.lang.String qName)
throws org.xml.sax.SAXException
- Specified by:
endElement
in interface org.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
characters
public void characters(char[] ch,
int start,
int length)
throws org.xml.sax.SAXException
- Specified by:
characters
in interface org.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
error
public void error(org.xml.sax.SAXParseException spe)
- Specified by:
error
in interface org.xml.sax.ErrorHandler
warning
public void warning(org.xml.sax.SAXParseException spe)
- Specified by:
warning
in interface org.xml.sax.ErrorHandler
fatalError
public void fatalError(org.xml.sax.SAXParseException spe)
throws org.xml.sax.SAXParseException
- Specified by:
fatalError
in interface org.xml.sax.ErrorHandler
- Throws:
org.xml.sax.SAXParseException
elementDecl
public void elementDecl(java.lang.String name,
java.lang.String model)
- Specified by:
elementDecl
in interface org.xml.sax.ext.DeclHandler
attributeDecl
public void attributeDecl(java.lang.String eName,
java.lang.String aName,
java.lang.String type,
java.lang.String valueDefault,
java.lang.String value)
- Specified by:
attributeDecl
in interface org.xml.sax.ext.DeclHandler
internalEntityDecl
public void internalEntityDecl(java.lang.String name,
java.lang.String value)
- Specified by:
internalEntityDecl
in interface org.xml.sax.ext.DeclHandler
externalEntityDecl
public void externalEntityDecl(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
- Specified by:
externalEntityDecl
in interface org.xml.sax.ext.DeclHandler
addText
public void addText()
- This method adds the text to the tree
if the text is longer than 20 letters it shows
only three words and then three dots
findTagStart
private int findTagStart(int offset)