Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.xerces.framework
Class XMLDocumentScanner  view XMLDocumentScanner download XMLDocumentScanner.java

java.lang.Object
  extended byorg.apache.xerces.framework.XMLDocumentScanner

public final class XMLDocumentScanner
extends java.lang.Object

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.

Version:
$Id: XMLDocumentScanner.java,v 1.3 2000/10/07 18:06:53 markd Exp $

Nested 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
           
private static char[] encoding_string
           
(package private)  org.apache.xerces.utils.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
           
private  org.apache.xerces.utils.StringPool.CharArrayRange fCurrentElementCharArrayRange
           
(package private)  org.apache.xerces.utils.QName fCurrentElementQName
           
(package private)  int fCurrentElementType
           
(package private)  XMLDocumentScanner.ScannerDispatcher fDispatcher
           
(package private)  XMLDocumentHandler.DTDHandler fDTDHandler
           
(package private)  XMLDTDScanner fDTDScanner
           
(package private)  org.apache.xerces.utils.QName fElementQName
           
(package private)  org.apache.xerces.readers.XMLEntityHandler fEntityHandler
           
(package private)  org.apache.xerces.readers.XMLEntityHandler.EntityReader fEntityReader
           
(package private)  XMLErrorReporter fErrorReporter
           
(package private)  XMLDocumentScanner.EventHandler fEventHandler
           
(package private)  org.apache.xerces.validators.common.GrammarResolver fGrammarResolver
           
(package private)  org.apache.xerces.readers.XMLEntityHandler.CharBuffer fLiteralData
           
(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)  org.apache.xerces.utils.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
private static char[] standalone_string
           
private static char[] version_string
           
(package private) static char[] xml_string
           
 
Constructor Summary
XMLDocumentScanner(org.apache.xerces.utils.StringPool stringPool, XMLErrorReporter errorReporter, org.apache.xerces.readers.XMLEntityHandler entityHandler, org.apache.xerces.readers.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, java.lang.String string1)
           
 boolean atEndOfInput()
          Tell if scanner has reached end of input
 void checkXMLLangAttributeValue(int langValue)
          Check the value of an XML Language attribute
 void endOfInput(int entityName, boolean moreToFollow)
          Handle the end of input
 int getCurrentElementType()
           
 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(org.apache.xerces.readers.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, java.lang.String string1)
           
(package private)  void reportFatalXMLError(int majorCode, int minorCode, java.lang.String string1, java.lang.String string2)
           
(package private)  void reportFatalXMLError(int majorCode, int minorCode, java.lang.String string1, java.lang.String string2, java.lang.String string3)
           
 void reset(org.apache.xerces.utils.StringPool stringPool, org.apache.xerces.readers.XMLEntityHandler.CharBuffer literalData)
          reset the parser so that the instance can be reused
(package private)  void restoreScannerState(int state)
           
private  void scanAttributeName(org.apache.xerces.readers.XMLEntityHandler.EntityReader entityReader, org.apache.xerces.utils.QName element, org.apache.xerces.utils.QName attribute)
          Scans attribute name.
private  int scanAttValue(org.apache.xerces.utils.QName element, org.apache.xerces.utils.QName attribute)
          Scan attribute value.
 int scanAttValue(org.apache.xerces.utils.QName element, org.apache.xerces.utils.QName attribute, boolean asSymbol)
          Scan an attribute value
(package private)  int scanCharRef()
           
(package private)  void scanComment()
           
private  void scanDoctypeDecl(boolean standalone)
          Scan doctype declaration.
(package private)  boolean scanElement(org.apache.xerces.utils.QName element)
           
private  void scanElementType(org.apache.xerces.readers.XMLEntityHandler.EntityReader entityReader, char fastchar, org.apache.xerces.utils.QName element)
          Scans element type.
private  boolean scanExpectedElementType(org.apache.xerces.readers.XMLEntityHandler.EntityReader entityReader, char fastchar, int elementType)
          Scans expected element type.
(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(org.apache.xerces.validators.common.GrammarResolver resolver)
          Sets the grammar resolver.
 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()
           
private  boolean validEncName(java.lang.String encoding)
          Returns true if the encoding name is valid.
private  boolean validVersionNum(java.lang.String version)
          Returns true if the version number is valid.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cdata_string

static final char[] cdata_string

xml_string

static final char[] xml_string

version_string

private static final char[] version_string

doctype_string

static final char[] doctype_string

standalone_string

private static final char[] standalone_string

encoding_string

private static final char[] encoding_string

RESULT_SUCCESS

public static final int RESULT_SUCCESS
See Also:
Constant Field Values

RESULT_FAILURE

public static final int RESULT_FAILURE
See Also:
Constant Field Values

RESULT_DUPLICATE_ATTR

public static final int RESULT_DUPLICATE_ATTR
See Also:
Constant Field Values

SCANNER_STATE_XML_DECL

static final int SCANNER_STATE_XML_DECL
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_START_OF_MARKUP

static final int SCANNER_STATE_START_OF_MARKUP
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_COMMENT

static final int SCANNER_STATE_COMMENT
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_PI

static final int SCANNER_STATE_PI
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_DOCTYPE

static final int SCANNER_STATE_DOCTYPE
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_PROLOG

static final int SCANNER_STATE_PROLOG
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_ROOT_ELEMENT

static final int SCANNER_STATE_ROOT_ELEMENT
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_CONTENT

static final int SCANNER_STATE_CONTENT
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_REFERENCE

static final int SCANNER_STATE_REFERENCE
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_ATTRIBUTE_LIST

static final int SCANNER_STATE_ATTRIBUTE_LIST
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_ATTRIBUTE_NAME

static final int SCANNER_STATE_ATTRIBUTE_NAME
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_ATTRIBUTE_VALUE

static final int SCANNER_STATE_ATTRIBUTE_VALUE
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_TRAILING_MISC

static final int SCANNER_STATE_TRAILING_MISC
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_END_OF_INPUT

static final int SCANNER_STATE_END_OF_INPUT
Scanner states

See Also:
Constant Field Values

SCANNER_STATE_TERMINATED

static final int SCANNER_STATE_TERMINATED
Scanner states

See Also:
Constant Field Values

fCurrentElementCharArrayRange

private org.apache.xerces.utils.StringPool.CharArrayRange fCurrentElementCharArrayRange

fAttrListHandle

int fAttrListHandle

fAttrList

XMLAttrList fAttrList

fGrammarResolver

org.apache.xerces.validators.common.GrammarResolver fGrammarResolver

fDTDScanner

XMLDTDScanner fDTDScanner

fNamespacesEnabled

boolean fNamespacesEnabled

fValidationEnabled

boolean fValidationEnabled

fElementQName

org.apache.xerces.utils.QName fElementQName

fAttributeQName

org.apache.xerces.utils.QName fAttributeQName

fCurrentElementQName

org.apache.xerces.utils.QName fCurrentElementQName

fDispatcher

XMLDocumentScanner.ScannerDispatcher fDispatcher

fEventHandler

XMLDocumentScanner.EventHandler fEventHandler

fDTDHandler

XMLDocumentHandler.DTDHandler fDTDHandler

fStringPool

org.apache.xerces.utils.StringPool fStringPool

fErrorReporter

XMLErrorReporter fErrorReporter

fEntityHandler

org.apache.xerces.readers.XMLEntityHandler fEntityHandler

fEntityReader

org.apache.xerces.readers.XMLEntityHandler.EntityReader fEntityReader

fLiteralData

org.apache.xerces.readers.XMLEntityHandler.CharBuffer fLiteralData

fSeenRootElement

boolean fSeenRootElement

fSeenDoctypeDecl

boolean fSeenDoctypeDecl

fStandalone

boolean fStandalone

fParseTextDecl

boolean fParseTextDecl

fScanningDTD

boolean fScanningDTD

fScannerState

int fScannerState

fReaderId

int fReaderId

fAttValueReader

int fAttValueReader

fAttValueElementType

int fAttValueElementType

fAttValueAttrName

int fAttValueAttrName

fAttValueOffset

int fAttValueOffset

fAttValueMark

int fAttValueMark

fScannerMarkupDepth

int fScannerMarkupDepth

fCurrentElementType

int fCurrentElementType
Constructor Detail

XMLDocumentScanner

public XMLDocumentScanner(org.apache.xerces.utils.StringPool stringPool,
                          XMLErrorReporter errorReporter,
                          org.apache.xerces.readers.XMLEntityHandler entityHandler,
                          org.apache.xerces.readers.XMLEntityHandler.CharBuffer literalData)
Constructor

Method Detail

setEventHandler

public void setEventHandler(XMLDocumentScanner.EventHandler eventHandler)
Set the event handler


setDTDHandler

public void setDTDHandler(XMLDocumentHandler.DTDHandler dtdHandler)
Set the DTD handler.


setGrammarResolver

public void setGrammarResolver(org.apache.xerces.validators.common.GrammarResolver resolver)
Sets the grammar resolver.


reset

public void reset(org.apache.xerces.utils.StringPool stringPool,
                  org.apache.xerces.readers.XMLEntityHandler.CharBuffer literalData)
reset the parser so that the instance can be reused


parseSome

public boolean parseSome(boolean doItAll)
                  throws java.lang.Exception
Entry point for parsing


readerChange

public void readerChange(org.apache.xerces.readers.XMLEntityHandler.EntityReader nextReader,
                         int nextReaderId)
                  throws java.lang.Exception
Change readers


endOfInput

public void endOfInput(int entityName,
                       boolean moreToFollow)
                throws java.lang.Exception
Handle the end of input


atEndOfInput

public boolean atEndOfInput()
Tell if scanner has reached end of input


scanAttValue

public int scanAttValue(org.apache.xerces.utils.QName element,
                        org.apache.xerces.utils.QName attribute,
                        boolean asSymbol)
                 throws java.lang.Exception
Scan an attribute value


checkXMLLangAttributeValue

public void checkXMLLangAttributeValue(int langValue)
                                throws java.lang.Exception
Check the value of an XML Language attribute


reportFatalXMLError

void reportFatalXMLError(int majorCode,
                         int minorCode)
                   throws java.lang.Exception

reportFatalXMLError

void reportFatalXMLError(int majorCode,
                         int minorCode,
                         int stringIndex1)
                   throws java.lang.Exception

reportFatalXMLError

void reportFatalXMLError(int majorCode,
                         int minorCode,
                         java.lang.String string1)
                   throws java.lang.Exception

reportFatalXMLError

void reportFatalXMLError(int majorCode,
                         int minorCode,
                         int stringIndex1,
                         int stringIndex2)
                   throws java.lang.Exception

reportFatalXMLError

void reportFatalXMLError(int majorCode,
                         int minorCode,
                         java.lang.String string1,
                         java.lang.String string2)
                   throws java.lang.Exception

reportFatalXMLError

void reportFatalXMLError(int majorCode,
                         int minorCode,
                         java.lang.String string1,
                         java.lang.String string2,
                         java.lang.String string3)
                   throws java.lang.Exception

abortMarkup

void abortMarkup(int majorCode,
                 int minorCode)
           throws java.lang.Exception

abortMarkup

void abortMarkup(int majorCode,
                 int minorCode,
                 int stringIndex1)
           throws java.lang.Exception

abortMarkup

void abortMarkup(int majorCode,
                 int minorCode,
                 java.lang.String string1)
           throws java.lang.Exception

abortMarkup

void abortMarkup(int majorCode,
                 int minorCode,
                 int stringIndex1,
                 int stringIndex2)
           throws java.lang.Exception

skipPastEndOfCurrentMarkup

void skipPastEndOfCurrentMarkup()
                          throws java.lang.Exception

setScannerState

int setScannerState(int state)

restoreScannerState

void restoreScannerState(int state)

getCurrentElementType

public int getCurrentElementType()

scanXMLDeclOrTextDecl

void scanXMLDeclOrTextDecl(boolean scanningTextDecl)
                     throws java.lang.Exception

scanElement

boolean scanElement(org.apache.xerces.utils.QName element)
              throws java.lang.Exception

scanCharRef

int scanCharRef()
          throws java.lang.Exception

scanComment

void scanComment()
           throws java.lang.Exception

scanPI

void scanPI(int piTarget)
      throws java.lang.Exception

setNamespacesEnabled

public void setNamespacesEnabled(boolean enabled)
Sets whether the parser preprocesses namespaces.


getNamespacesEnabled

public boolean getNamespacesEnabled()
Returns whether the parser processes namespaces.


setValidationEnabled

public void setValidationEnabled(boolean enabled)
Sets whether the parser validates.


getValidationEnabled

public boolean getValidationEnabled()
Returns true if validation is turned on.


scanElementType

private void scanElementType(org.apache.xerces.readers.XMLEntityHandler.EntityReader entityReader,
                             char fastchar,
                             org.apache.xerces.utils.QName element)
                      throws java.lang.Exception
Scans element type.


scanExpectedElementType

private boolean scanExpectedElementType(org.apache.xerces.readers.XMLEntityHandler.EntityReader entityReader,
                                        char fastchar,
                                        int elementType)
                                 throws java.lang.Exception
Scans expected element type.


scanAttributeName

private void scanAttributeName(org.apache.xerces.readers.XMLEntityHandler.EntityReader entityReader,
                               org.apache.xerces.utils.QName element,
                               org.apache.xerces.utils.QName attribute)
                        throws java.lang.Exception
Scans attribute name.


scanDoctypeDecl

private void scanDoctypeDecl(boolean standalone)
                      throws java.lang.Exception
Scan doctype declaration.


scanAttValue

private int scanAttValue(org.apache.xerces.utils.QName element,
                         org.apache.xerces.utils.QName attribute)
                  throws java.lang.Exception
Scan attribute value.


validVersionNum

private boolean validVersionNum(java.lang.String version)
Returns true if the version number is valid.


validEncName

private boolean validEncName(java.lang.String encoding)
Returns true if the encoding name is valid.