org.apache.xerces.readers
Class DefaultEntityHandler

java.lang.Object
  |
  +--org.apache.xerces.readers.DefaultEntityHandler
All Implemented Interfaces:
Locator, XMLEntityHandler, XMLEntityHandler.DTDHandler

public class DefaultEntityHandler
extends java.lang.Object
implements XMLEntityHandler, XMLEntityHandler.DTDHandler

Default entity handler implementation.

Version:
$Id: DefaultEntityHandler.java 317878 2001-11-05 19:48:21Z neilg $

Inner Class Summary
 class DefaultEntityHandler.EntityPool
           
static interface DefaultEntityHandler.EventHandler
           
 
Inner classes inherited from class org.apache.xerces.readers.XMLEntityHandler
XMLEntityHandler.CharBuffer, XMLEntityHandler.CharDataHandler, XMLEntityHandler.DTDHandler, XMLEntityHandler.EntityReader
 
Field Summary
protected  XMLEntityReaderFactory fReaderFactory
           
 
Fields inherited from interface org.apache.xerces.readers.XMLEntityHandler
ATTVALUE_RESULT_COMPLEX, ATTVALUE_RESULT_INVALID_CHAR, ATTVALUE_RESULT_LESSTHAN, CHARREF_RESULT_INVALID_CHAR, CHARREF_RESULT_OUT_OF_RANGE, CHARREF_RESULT_SEMICOLON_REQUIRED, CONTENT_RESULT_END_OF_CDSECT, CONTENT_RESULT_INVALID_CHAR, CONTENT_RESULT_MARKUP_END_OF_INPUT, CONTENT_RESULT_MARKUP_NOT_RECOGNIZED, CONTENT_RESULT_MATCHING_ETAG, CONTENT_RESULT_REFERENCE_END_OF_INPUT, CONTENT_RESULT_START_OF_CDSECT, CONTENT_RESULT_START_OF_CHARREF, CONTENT_RESULT_START_OF_COMMENT, CONTENT_RESULT_START_OF_ELEMENT, CONTENT_RESULT_START_OF_ENTITYREF, CONTENT_RESULT_START_OF_ETAG, CONTENT_RESULT_START_OF_PI, ENTITYREF_DOCUMENT, ENTITYREF_EXTERNAL_SUBSET, ENTITYREF_IN_ATTVALUE, ENTITYREF_IN_CONTENT, ENTITYREF_IN_DEFAULTATTVALUE, ENTITYREF_IN_DTD_AS_MARKUP, ENTITYREF_IN_DTD_WITHIN_MARKUP, ENTITYREF_IN_ENTITYVALUE, ENTITYTYPE_DOCUMENT, ENTITYTYPE_EXTERNAL, ENTITYTYPE_EXTERNAL_PE, ENTITYTYPE_EXTERNAL_SUBSET, ENTITYTYPE_INTERNAL, ENTITYTYPE_INTERNAL_PE, ENTITYTYPE_UNPARSED, ENTITYVALUE_RESULT_END_OF_INPUT, ENTITYVALUE_RESULT_FINISHED, ENTITYVALUE_RESULT_INVALID_CHAR, ENTITYVALUE_RESULT_PEREF, ENTITYVALUE_RESULT_REFERENCE, STRINGLIT_RESULT_INVALID_CHAR, STRINGLIT_RESULT_QUOTE_REQUIRED
 
Constructor Summary
DefaultEntityHandler(StringPool stringPool, XMLErrorReporter errorReporter)
           
 
Method Summary
 int addExternalEntityDecl(int name, int publicId, int systemId, boolean isExternal)
           
 int addExternalPEDecl(int name, int publicId, int systemId, boolean isExternal)
           
 int addInternalEntityDecl(int name, int value, boolean isExternal)
           
 int addInternalPEDecl(int name, int value, boolean isExternal)
          Declare entities and notations.
 int addNotationDecl(int notationName, int publicId, int systemId, boolean isExternal)
           
 void addRecognizer(XMLDeclRecognizer recognizer)
          Adds a recognizer.
 void addRequiredNotation(int notationName, Locator locator, int majorCode, int minorCode, java.lang.Object[] args)
          Remember a required but undeclared notation.
 int addUnparsedEntityDecl(int name, int publicId, int systemId, int notationName, boolean isExternal)
           
 XMLEntityHandler.EntityReader changeReaders()
          This method is called by the reader subclasses at the end of input, and also by the scanner directly to force a reader change during error recovery.
 void checkRequiredNotations()
          Check required but undeclared notations.
 void endEntityDecl()
          end an entity declaration
 java.lang.String expandSystemId(java.lang.String systemId)
          Expands a system id and returns the system id as a URI, if it can be expanded.
 boolean externalReferenceInContent(int entityHandle)
           
 boolean getAllowJavaEncodings()
           
 XMLEntityHandler.CharDataHandler getCharDataHandler()
          Get the character data handler.
 int getColumnNumber()
          Return the column number of the current position within the document that we are processing.
 XMLEntityHandler.EntityReader getEntityReader()
          get the Entity reader.
 EntityResolver getEntityResolver()
          Gets the resolver used to resolve external entities.
protected  int getEntityValue(int entityHandle)
           
 int getLineNumber()
          Return the line number of the current position within the document that we are processing.
protected  int getParameterEntityValue(int peIndex)
           
 java.lang.String getPublicId()
          Return the public identifier of the InputSource that we are processing.
protected  java.lang.String getPublicIdOfEntity(int entityHandle)
           
protected  java.lang.String getPublicIdOfParameterEntity(int peIndex)
           
 int getReaderDepth()
          This method is provided for scanner implementations.
 int getReaderId()
          This method is provided for scanner implementations.
 java.lang.String getSystemId()
          Return the system identifier of the InputSource that we are processing.
protected  java.lang.String getSystemIdOfEntity(int entityHandle)
           
protected  java.lang.String getSystemIdOfParameterEntity(int peIndex)
           
protected  boolean isExternalEntity(int entityHandle)
           
protected  boolean isExternalParameterEntity(int peIndex)
           
 boolean isNotationDeclared(int notationName)
          Check for declared notation.
 boolean isUnparsedEntity(int entityName)
          Check for unparsed entity.
protected  int lookupEntity(int entityNameIndex)
           
protected  int lookupParameterEntity(int peName)
           
 void reset(StringPool stringPool)
          Reset the entity handler.
 void setAllowJavaEncodings(boolean flag)
           
 void setCharDataHandler(XMLEntityHandler.CharDataHandler charDataHandler)
          Set the character data handler.
 void setEntityResolver(EntityResolver resolver)
          Sets the resolver used to resolve external entities.
 void setEventHandler(DefaultEntityHandler.EventHandler eventHandler)
           
 void setReaderDepth(int depth)
          This method is provided for scanner implementations.
 void setReaderFactory(XMLEntityReaderFactory readerFactory)
          Set the reader factory.
 void setSendCharDataAsCharArray(boolean flag)
          Set char data processing preference.
 boolean startEntityDecl(boolean isPE, int entityName)
          start an entity declaration
 boolean startReadingFromDocument(InputSource source)
          Start reading document from an InputSource.
 boolean startReadingFromEntity(int entityName, int readerDepth, int context)
          start reading from an external entity
 void startReadingFromExternalSubset(java.lang.String publicId, java.lang.String systemId, int readerDepth)
          start reading from an external DTD subset
 void stopReadingFromExternalSubset()
          stop reading from an external DTD subset
protected  int valueOfReferenceInAttValue(int entityHandle)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fReaderFactory

protected XMLEntityReaderFactory fReaderFactory
Constructor Detail

DefaultEntityHandler

public DefaultEntityHandler(StringPool stringPool,
                            XMLErrorReporter errorReporter)
Method Detail

setEventHandler

public void setEventHandler(DefaultEntityHandler.EventHandler eventHandler)

setCharDataHandler

public void setCharDataHandler(XMLEntityHandler.CharDataHandler charDataHandler)
Description copied from interface: XMLEntityHandler
Set the character data handler.
Specified by:
setCharDataHandler in interface XMLEntityHandler

getCharDataHandler

public XMLEntityHandler.CharDataHandler getCharDataHandler()
Description copied from interface: XMLEntityHandler
Get the character data handler.
Specified by:
getCharDataHandler in interface XMLEntityHandler

setSendCharDataAsCharArray

public void setSendCharDataAsCharArray(boolean flag)
Set char data processing preference.

setReaderFactory

public void setReaderFactory(XMLEntityReaderFactory readerFactory)
Set the reader factory.

reset

public void reset(StringPool stringPool)
Reset the entity handler.

setAllowJavaEncodings

public void setAllowJavaEncodings(boolean flag)

getAllowJavaEncodings

public boolean getAllowJavaEncodings()

addInternalPEDecl

public int addInternalPEDecl(int name,
                             int value,
                             boolean isExternal)
                      throws java.lang.Exception
Description copied from interface: XMLEntityHandler.DTDHandler
Declare entities and notations.
Specified by:
addInternalPEDecl in interface XMLEntityHandler.DTDHandler

addExternalPEDecl

public int addExternalPEDecl(int name,
                             int publicId,
                             int systemId,
                             boolean isExternal)
                      throws java.lang.Exception
Specified by:
addExternalPEDecl in interface XMLEntityHandler.DTDHandler

addInternalEntityDecl

public int addInternalEntityDecl(int name,
                                 int value,
                                 boolean isExternal)
                          throws java.lang.Exception
Specified by:
addInternalEntityDecl in interface XMLEntityHandler.DTDHandler

addExternalEntityDecl

public int addExternalEntityDecl(int name,
                                 int publicId,
                                 int systemId,
                                 boolean isExternal)
                          throws java.lang.Exception
Specified by:
addExternalEntityDecl in interface XMLEntityHandler.DTDHandler

addUnparsedEntityDecl

public int addUnparsedEntityDecl(int name,
                                 int publicId,
                                 int systemId,
                                 int notationName,
                                 boolean isExternal)
                          throws java.lang.Exception
Specified by:
addUnparsedEntityDecl in interface XMLEntityHandler.DTDHandler

addNotationDecl

public int addNotationDecl(int notationName,
                           int publicId,
                           int systemId,
                           boolean isExternal)
                    throws java.lang.Exception
Specified by:
addNotationDecl in interface XMLEntityHandler.DTDHandler

isUnparsedEntity

public boolean isUnparsedEntity(int entityName)
Description copied from interface: XMLEntityHandler.DTDHandler
Check for unparsed entity.
Specified by:
isUnparsedEntity in interface XMLEntityHandler.DTDHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler.DTDHandler
Parameters:
entityName - The string handle for the entity name.
Returns:
true if entityName is an unparsed entity; otherwise false if entityName is not declared or not an unparsed entity.

isNotationDeclared

public boolean isNotationDeclared(int notationName)
Description copied from interface: XMLEntityHandler.DTDHandler
Check for declared notation.
Specified by:
isNotationDeclared in interface XMLEntityHandler.DTDHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler.DTDHandler
Parameters:
notationName - The string handle for the notation name.
Returns:
true if notationName is a declared notation; otherwise false if notationName is not declared.

addRequiredNotation

public void addRequiredNotation(int notationName,
                                Locator locator,
                                int majorCode,
                                int minorCode,
                                java.lang.Object[] args)
Description copied from interface: XMLEntityHandler.DTDHandler
Remember a required but undeclared notation.
Specified by:
addRequiredNotation in interface XMLEntityHandler.DTDHandler

checkRequiredNotations

public void checkRequiredNotations()
                            throws java.lang.Exception
Description copied from interface: XMLEntityHandler.DTDHandler
Check required but undeclared notations.
Specified by:
checkRequiredNotations in interface XMLEntityHandler.DTDHandler

lookupEntity

protected int lookupEntity(int entityNameIndex)

externalReferenceInContent

public boolean externalReferenceInContent(int entityHandle)
                                   throws java.lang.Exception

valueOfReferenceInAttValue

protected int valueOfReferenceInAttValue(int entityHandle)
                                  throws java.lang.Exception

isExternalEntity

protected boolean isExternalEntity(int entityHandle)

getEntityValue

protected int getEntityValue(int entityHandle)

getPublicIdOfEntity

protected java.lang.String getPublicIdOfEntity(int entityHandle)

getSystemIdOfEntity

protected java.lang.String getSystemIdOfEntity(int entityHandle)

lookupParameterEntity

protected int lookupParameterEntity(int peName)
                             throws java.lang.Exception

isExternalParameterEntity

protected boolean isExternalParameterEntity(int peIndex)

getParameterEntityValue

protected int getParameterEntityValue(int peIndex)

getPublicIdOfParameterEntity

protected java.lang.String getPublicIdOfParameterEntity(int peIndex)

getSystemIdOfParameterEntity

protected java.lang.String getSystemIdOfParameterEntity(int peIndex)

getEntityReader

public XMLEntityHandler.EntityReader getEntityReader()
get the Entity reader.
Specified by:
getEntityReader in interface XMLEntityHandler

addRecognizer

public void addRecognizer(XMLDeclRecognizer recognizer)
Adds a recognizer.
Parameters:
recognizer - The XML recognizer to add.

setEntityResolver

public void setEntityResolver(EntityResolver resolver)
Sets the resolver used to resolve external entities. The EntityResolver interface supports resolution of public and system identifiers.
Parameters:
resolver - The new entity resolver. Passing a null value will uninstall the currently installed resolver.

getEntityResolver

public EntityResolver getEntityResolver()
Gets the resolver used to resolve external entities. The EntityResolver interface supports resolution of public and system identifiers.
Returns:
The current entity resolver.

expandSystemId

public java.lang.String expandSystemId(java.lang.String systemId)
Expands a system id and returns the system id as a URI, if it can be expanded. A return value of null means that the identifier is already expanded. An exception thrown indicates a failure to expand the id.
Specified by:
expandSystemId in interface XMLEntityHandler
Parameters:
systemId - The systemId to be expanded.
Returns:
Returns the URI string representing the expanded system identifier. A null value indicates that the given system identifier is already expanded.

startReadingFromDocument

public boolean startReadingFromDocument(InputSource source)
                                 throws java.lang.Exception
Description copied from interface: XMLEntityHandler
Start reading document from an InputSource.
Specified by:
startReadingFromDocument in interface XMLEntityHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler
Parameters:
source - The input source for the document to process.
Returns:
true if we were able to open the document source; false otherwise.
Throws:
java.lang.Exception -  

startReadingFromExternalSubset

public void startReadingFromExternalSubset(java.lang.String publicId,
                                           java.lang.String systemId,
                                           int readerDepth)
                                    throws java.lang.Exception
start reading from an external DTD subset
Specified by:
startReadingFromExternalSubset in interface XMLEntityHandler.DTDHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler.DTDHandler
Parameters:
publicId - The public identifier for the external subset.
systemId - The system identifier for the external subset.
readerDepth - The depth to associate with the reader for the external subset.
Throws:
java.lang.Exception -  

stopReadingFromExternalSubset

public void stopReadingFromExternalSubset()
                                   throws java.lang.Exception
stop reading from an external DTD subset
Specified by:
stopReadingFromExternalSubset in interface XMLEntityHandler.DTDHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler.DTDHandler
Throws:
java.lang.Exception -  

startReadingFromEntity

public boolean startReadingFromEntity(int entityName,
                                      int readerDepth,
                                      int context)
                               throws java.lang.Exception
start reading from an external entity
Specified by:
startReadingFromEntity in interface XMLEntityHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler
Parameters:
entityName - The entity name handle in the string pool.
readerDepth - The depth to associate with the reader for this entity.
context - The context of the entity reference; see ENTITYREF_IN_*.
Returns:
true if the entity might start with a TextDecl; false otherwise.
Throws:
java.lang.Exception -  

startEntityDecl

public boolean startEntityDecl(boolean isPE,
                               int entityName)
                        throws java.lang.Exception
start an entity declaration
Specified by:
startEntityDecl in interface XMLEntityHandler.DTDHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler.DTDHandler
Returns:
true on success; otherwise false if the entity declaration is recursive.
Throws:
java.lang.Exception -  

endEntityDecl

public void endEntityDecl()
                   throws java.lang.Exception
end an entity declaration
Specified by:
endEntityDecl in interface XMLEntityHandler.DTDHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler.DTDHandler
Throws:
java.lang.Exception -  

getReaderId

public int getReaderId()
This method is provided for scanner implementations.
Specified by:
getReaderId in interface XMLEntityHandler

setReaderDepth

public void setReaderDepth(int depth)
This method is provided for scanner implementations.
Specified by:
setReaderDepth in interface XMLEntityHandler

getReaderDepth

public int getReaderDepth()
This method is provided for scanner implementations.
Specified by:
getReaderDepth in interface XMLEntityHandler

getPublicId

public java.lang.String getPublicId()
Return the public identifier of the InputSource that we are processing.
Specified by:
getPublicId in interface Locator
Returns:
The public identifier, or null if not provided.

getSystemId

public java.lang.String getSystemId()
Return the system identifier of the InputSource that we are processing.
Specified by:
getSystemId in interface Locator
Returns:
The system identifier, or null if not provided.

getLineNumber

public int getLineNumber()
Return the line number of the current position within the document that we are processing.
Specified by:
getLineNumber in interface Locator
Returns:
The current line number.

getColumnNumber

public int getColumnNumber()
Return the column number of the current position within the document that we are processing.
Specified by:
getColumnNumber in interface Locator
Returns:
The current column number.

changeReaders

public XMLEntityHandler.EntityReader changeReaders()
                                            throws java.lang.Exception
This method is called by the reader subclasses at the end of input, and also by the scanner directly to force a reader change during error recovery.
Specified by:
changeReaders in interface XMLEntityHandler
Following copied from interface: org.apache.xerces.readers.XMLEntityHandler
Returns:
The reader to use next.
Throws:
java.lang.Exception -  


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