|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.enhydra.apache.xerces.framework.XMLDocumentScanner
This class recognizes most of the grammer for an XML processor. Additional support is provided by the XMLEntityHandler, via the XMLEntityReader instances it creates, which are used to process simple constructs like string literals and character data between markup. The XMLDTDScanner class contains the remaining support for the grammer of DTD declarations. When a <!DOCTYPE ...> is found in the document, the scanDoctypeDecl method will then be called and the XMLDocumentScanner subclass is responsible for "connecting" that method to the corresponding method provided by the XMLDTDScanner class.
Inner Class Summary | |
(package private) class |
XMLDocumentScanner.ContentDispatcher
|
(package private) class |
XMLDocumentScanner.EndOfInputDispatcher
|
static interface |
XMLDocumentScanner.EventHandler
This interface must be implemented by the users of the XMLDocumentScanner class. |
(package private) class |
XMLDocumentScanner.PrologDispatcher
|
(package private) static interface |
XMLDocumentScanner.ScannerDispatcher
The main loop of the scanner is implemented by calling the dispatch method of ScannerDispatcher with a flag which tells the dispatcher whether to continue or return. |
(package private) class |
XMLDocumentScanner.TrailingMiscDispatcher
|
(package private) class |
XMLDocumentScanner.XMLDeclDispatcher
|
Field Summary | |
(package private) static char[] |
cdata_string
|
(package private) static char[] |
doctype_string
|
(package private) QName |
fAttributeQName
|
(package private) XMLAttrList |
fAttrList
|
(package private) int |
fAttrListHandle
|
(package private) int |
fAttValueAttrName
|
(package private) int |
fAttValueElementType
|
(package private) int |
fAttValueMark
|
(package private) int |
fAttValueOffset
|
(package private) int |
fAttValueReader
|
(package private) QName |
fCurrentElementQName
|
(package private) int |
fCurrentElementType
|
(package private) XMLDocumentScanner.ScannerDispatcher |
fDispatcher
|
(package private) XMLDocumentHandler.DTDHandler |
fDTDHandler
|
(package private) XMLDTDScanner |
fDTDScanner
|
(package private) QName |
fElementQName
|
(package private) XMLEntityHandler |
fEntityHandler
|
(package private) XMLEntityHandler.EntityReader |
fEntityReader
|
(package private) XMLErrorReporter |
fErrorReporter
|
(package private) XMLDocumentScanner.EventHandler |
fEventHandler
|
(package private) GrammarResolver |
fGrammarResolver
|
(package private) XMLEntityHandler.CharBuffer |
fLiteralData
|
(package private) boolean |
fLoadExternalDTD
|
(package private) boolean |
fNamespacesEnabled
|
(package private) boolean |
fParseTextDecl
|
(package private) int |
fReaderId
|
(package private) int |
fScannerMarkupDepth
|
(package private) int |
fScannerState
|
(package private) boolean |
fScanningDTD
|
(package private) boolean |
fSeenDoctypeDecl
|
(package private) boolean |
fSeenRootElement
|
(package private) boolean |
fStandalone
|
(package private) StringPool |
fStringPool
|
(package private) boolean |
fValidationEnabled
|
static int |
RESULT_DUPLICATE_ATTR
|
static int |
RESULT_FAILURE
|
static int |
RESULT_SUCCESS
|
(package private) static int |
SCANNER_STATE_ATTRIBUTE_LIST
Scanner states |
(package private) static int |
SCANNER_STATE_ATTRIBUTE_NAME
Scanner states |
(package private) static int |
SCANNER_STATE_ATTRIBUTE_VALUE
Scanner states |
(package private) static int |
SCANNER_STATE_COMMENT
Scanner states |
(package private) static int |
SCANNER_STATE_CONTENT
Scanner states |
(package private) static int |
SCANNER_STATE_DOCTYPE
Scanner states |
(package private) static int |
SCANNER_STATE_END_OF_INPUT
Scanner states |
(package private) static int |
SCANNER_STATE_PI
Scanner states |
(package private) static int |
SCANNER_STATE_PROLOG
Scanner states |
(package private) static int |
SCANNER_STATE_REFERENCE
Scanner states |
(package private) static int |
SCANNER_STATE_ROOT_ELEMENT
Scanner states |
(package private) static int |
SCANNER_STATE_START_OF_MARKUP
Scanner states |
(package private) static int |
SCANNER_STATE_TERMINATED
Scanner states |
(package private) static int |
SCANNER_STATE_TRAILING_MISC
Scanner states |
(package private) static int |
SCANNER_STATE_XML_DECL
Scanner states |
(package private) static char[] |
xml_string
|
Constructor Summary | |
XMLDocumentScanner(StringPool stringPool,
XMLErrorReporter errorReporter,
XMLEntityHandler entityHandler,
XMLEntityHandler.CharBuffer literalData)
Constructor |
Method Summary | |
(package private) void |
abortMarkup(int majorCode,
int minorCode)
|
(package private) void |
abortMarkup(int majorCode,
int minorCode,
int stringIndex1)
|
(package private) void |
abortMarkup(int majorCode,
int minorCode,
int stringIndex1,
int stringIndex2)
|
(package private) void |
abortMarkup(int majorCode,
int minorCode,
String string1)
|
boolean |
atEndOfInput()
Tell if scanner has reached end of input |
void |
endOfInput(int entityName,
boolean moreToFollow)
Handle the end of input |
int |
getCurrentElementType()
|
boolean |
getLoadExternalDTD()
Returns true if loading the external DTD is turned on. |
boolean |
getNamespacesEnabled()
Returns whether the parser processes namespaces. |
boolean |
getValidationEnabled()
Returns true if validation is turned on. |
boolean |
parseSome(boolean doItAll)
Entry point for parsing |
void |
readerChange(XMLEntityHandler.EntityReader nextReader,
int nextReaderId)
Change readers |
(package private) void |
reportFatalXMLError(int majorCode,
int minorCode)
|
(package private) void |
reportFatalXMLError(int majorCode,
int minorCode,
int stringIndex1)
|
(package private) void |
reportFatalXMLError(int majorCode,
int minorCode,
int stringIndex1,
int stringIndex2)
|
(package private) void |
reportFatalXMLError(int majorCode,
int minorCode,
String string1)
|
(package private) void |
reportFatalXMLError(int majorCode,
int minorCode,
String string1,
String string2)
|
(package private) void |
reportFatalXMLError(int majorCode,
int minorCode,
String string1,
String string2,
String string3)
|
void |
reset(StringPool stringPool,
XMLEntityHandler.CharBuffer literalData)
reset the parser so that the instance can be reused |
(package private) void |
restoreScannerState(int state)
|
int |
scanAttValue(QName element,
QName attribute,
boolean asSymbol)
Scan an attribute value |
(package private) int |
scanCharRef()
|
(package private) void |
scanComment()
|
(package private) boolean |
scanElement(QName element)
|
(package private) void |
scanPI(int piTarget)
|
(package private) void |
scanXMLDeclOrTextDecl(boolean scanningTextDecl)
|
void |
setDTDHandler(XMLDocumentHandler.DTDHandler dtdHandler)
Set the DTD handler. |
void |
setEventHandler(XMLDocumentScanner.EventHandler eventHandler)
Set the event handler |
void |
setGrammarResolver(GrammarResolver resolver)
Sets the grammar resolver. |
void |
setLoadExternalDTD(boolean enabled)
Sets whether the parser loads the external DTD. |
void |
setNamespacesEnabled(boolean enabled)
Sets whether the parser preprocesses namespaces. |
(package private) int |
setScannerState(int state)
|
void |
setValidationEnabled(boolean enabled)
Sets whether the parser validates. |
(package private) void |
skipPastEndOfCurrentMarkup()
|
Methods inherited from class java.lang.Object |
|
Field Detail |
static final char[] cdata_string
static final char[] xml_string
static final char[] doctype_string
public static final int RESULT_SUCCESS
public static final int RESULT_FAILURE
public static final int RESULT_DUPLICATE_ATTR
static final int SCANNER_STATE_XML_DECL
static final int SCANNER_STATE_START_OF_MARKUP
static final int SCANNER_STATE_COMMENT
static final int SCANNER_STATE_PI
static final int SCANNER_STATE_DOCTYPE
static final int SCANNER_STATE_PROLOG
static final int SCANNER_STATE_ROOT_ELEMENT
static final int SCANNER_STATE_CONTENT
static final int SCANNER_STATE_REFERENCE
static final int SCANNER_STATE_ATTRIBUTE_LIST
static final int SCANNER_STATE_ATTRIBUTE_NAME
static final int SCANNER_STATE_ATTRIBUTE_VALUE
static final int SCANNER_STATE_TRAILING_MISC
static final int SCANNER_STATE_END_OF_INPUT
static final int SCANNER_STATE_TERMINATED
int fAttrListHandle
XMLAttrList fAttrList
GrammarResolver fGrammarResolver
XMLDTDScanner fDTDScanner
boolean fNamespacesEnabled
boolean fValidationEnabled
boolean fLoadExternalDTD
QName fElementQName
QName fAttributeQName
QName fCurrentElementQName
XMLDocumentScanner.ScannerDispatcher fDispatcher
XMLDocumentScanner.EventHandler fEventHandler
XMLDocumentHandler.DTDHandler fDTDHandler
StringPool fStringPool
XMLErrorReporter fErrorReporter
XMLEntityHandler fEntityHandler
XMLEntityHandler.EntityReader fEntityReader
XMLEntityHandler.CharBuffer fLiteralData
boolean fSeenRootElement
boolean fSeenDoctypeDecl
boolean fStandalone
boolean fParseTextDecl
boolean fScanningDTD
int fScannerState
int fReaderId
int fAttValueReader
int fAttValueElementType
int fAttValueAttrName
int fAttValueOffset
int fAttValueMark
int fScannerMarkupDepth
int fCurrentElementType
Constructor Detail |
public XMLDocumentScanner(StringPool stringPool, XMLErrorReporter errorReporter, XMLEntityHandler entityHandler, XMLEntityHandler.CharBuffer literalData)
Method Detail |
public void setEventHandler(XMLDocumentScanner.EventHandler eventHandler)
eventHandler
- The place to send our callbacks.public void setDTDHandler(XMLDocumentHandler.DTDHandler dtdHandler)
public void setGrammarResolver(GrammarResolver resolver)
public void reset(StringPool stringPool, XMLEntityHandler.CharBuffer literalData)
stringPool
- the string pool instance to be used by the reset parserpublic boolean parseSome(boolean doItAll) throws Exception
doItAll
- if true the entire document is parsed otherwise just
the next segment of the document is parsedpublic void readerChange(XMLEntityHandler.EntityReader nextReader, int nextReaderId) throws Exception
nextReader
- the new reader that the scanner will usenextReaderId
- id of the reader to change tothrows
- java.lang.Exceptionpublic void endOfInput(int entityName, boolean moreToFollow) throws Exception
entityName
- the handle in the string pool of the name of the entity which has reached end of inputmoreToFollow
- if true, there is still input left to process in other readersException
- public boolean atEndOfInput()
public int scanAttValue(QName element, QName attribute, boolean asSymbol) throws Exception
elementType
- handle to the element whose attribute value is being scannedattrName
- handle in the string pool of the name of attribute being scannedasSymbol
- controls whether the value is a string (duplicates allowed) or a symbol (duplicates not allowed)Exception
- void reportFatalXMLError(int majorCode, int minorCode) throws Exception
void reportFatalXMLError(int majorCode, int minorCode, int stringIndex1) throws Exception
void reportFatalXMLError(int majorCode, int minorCode, String string1) throws Exception
void reportFatalXMLError(int majorCode, int minorCode, int stringIndex1, int stringIndex2) throws Exception
void reportFatalXMLError(int majorCode, int minorCode, String string1, String string2) throws Exception
void reportFatalXMLError(int majorCode, int minorCode, String string1, String string2, String string3) throws Exception
void abortMarkup(int majorCode, int minorCode) throws Exception
void abortMarkup(int majorCode, int minorCode, int stringIndex1) throws Exception
void abortMarkup(int majorCode, int minorCode, String string1) throws Exception
void abortMarkup(int majorCode, int minorCode, int stringIndex1, int stringIndex2) throws Exception
void skipPastEndOfCurrentMarkup() throws Exception
int setScannerState(int state)
void restoreScannerState(int state)
public int getCurrentElementType()
void scanXMLDeclOrTextDecl(boolean scanningTextDecl) throws Exception
boolean scanElement(QName element) throws Exception
int scanCharRef() throws Exception
void scanComment() throws Exception
void scanPI(int piTarget) throws Exception
public void setNamespacesEnabled(boolean enabled)
public boolean getNamespacesEnabled()
public void setValidationEnabled(boolean enabled)
public boolean getValidationEnabled()
public void setLoadExternalDTD(boolean enabled)
public boolean getLoadExternalDTD()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |