## org.apache.xerces.framework
Class XMLDocumentScanner

    java.lang.Object
      |
      +--org.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.12 2001/08/08 18:20:19 neilg Exp $

Inner Class Summary
`static interface` `XMLDocumentScanner.EventHandler` This interface must be implemented by the users of the XMLDocumentScanner class.

Field Summary
`static int` `RESULT_DUPLICATE_ATTR`
`static int` `RESULT_FAILURE`
`static int` `RESULT_SUCCESS`

Constructor Summary
`XMLDocumentScanner(StringPool stringPool, XMLErrorReporter errorReporter, XMLEntityHandler entityHandler, XMLEntityHandler.CharBuffer literalData)` Constructor

Method Summary
`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
`void` `reset(StringPool stringPool, XMLEntityHandler.CharBuffer literalData)` reset the parser so that the instance can be reused
`int` `scanAttValue(QName element, QName attribute, boolean asSymbol)` Scan an attribute value
`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.
`void` `setValidationEnabled(boolean enabled)` Sets whether the parser validates.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### RESULT_SUCCESS

    public static final int RESULT_SUCCESS

### RESULT_FAILURE

    public static final int RESULT_FAILURE

### RESULT_DUPLICATE_ATTR

    public static final int RESULT_DUPLICATE_ATTR

Constructor Detail

### XMLDocumentScanner

    public XMLDocumentScanner(StringPool stringPool,
                              XMLErrorReporter errorReporter,
                              XMLEntityHandler entityHandler,
                              XMLEntityHandler.CharBuffer literalData)

  Constructor

Method Detail

### setEventHandler

    public void setEventHandler(XMLDocumentScanner.EventHandler eventHandler)

  Set the event handler
  Parameters:
    `eventHandler` - The place to send our callbacks.

### setDTDHandler

    public void setDTDHandler(XMLDocumentHandler.DTDHandler dtdHandler)

  Set the DTD handler.

### setGrammarResolver

    public void setGrammarResolver(GrammarResolver resolver)

  Sets the grammar resolver.

### reset

    public void reset(StringPool stringPool,
                      XMLEntityHandler.CharBuffer literalData)

  reset the parser so that the instance can be reused
  Parameters:
    `stringPool` - the string pool instance to be used by the reset parser

### parseSome

    public boolean parseSome(boolean doItAll)
                      throws java.lang.Exception

  Entry point for parsing
  Parameters:
    `doItAll` - if true the entire document is parsed otherwise just the next segment of the document is parsed

### readerChange

    public void readerChange(XMLEntityHandler.EntityReader nextReader,
                             int nextReaderId)
                      throws java.lang.Exception

  Change readers
  Parameters:
    `nextReader` - the new reader that the scanner will use
    `nextReaderId` - id of the reader to change to
  Throws:
    throws - java.lang.Exception

### endOfInput

    public void endOfInput(int entityName,
                           boolean moreToFollow)
                    throws java.lang.Exception

  Handle the end of input
  Parameters:
    `entityName` - the handle in the string pool of the name of the entity which has reached end of input
    `moreToFollow` - if true, there is still input left to process in other readers
  Throws:
    java.lang.Exception -

### atEndOfInput

    public boolean atEndOfInput()

  Tell if scanner has reached end of input
  Returns:
    true if scanner has reached end of input.

### scanAttValue

    public int scanAttValue(QName element,
                            QName attribute,
                            boolean asSymbol)
                     throws java.lang.Exception

  Scan an attribute value
  Parameters:
    `elementType` - handle to the element whose attribute value is being scanned
    `attrName` - handle in the string pool of the name of attribute being scanned
    `asSymbol` - controls whether the value is a string (duplicates allowed) or a symbol (duplicates not allowed)
  Returns:
    handle in the string pool of the scanned value
  Throws:
    java.lang.Exception -

### getCurrentElementType

    public int getCurrentElementType()

### 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.

### setLoadExternalDTD

    public void setLoadExternalDTD(boolean enabled)

  Sets whether the parser loads the external DTD.

### getLoadExternalDTD

    public boolean getLoadExternalDTD()

  Returns true if loading the external DTD is turned on.

Copyright © 1999-2001 Apache XML Project. All Rights Reserved.