org.apache.xerces.impl.validation.grammars
Class DTDGrammar

java.lang.Object
  |
  +--org.apache.xerces.impl.validation.Grammar
        |
        +--org.apache.xerces.impl.validation.grammars.DTDGrammar

public class DTDGrammar
extends Grammar
implements org.apache.xerces.xni.XMLDTDHandler, org.apache.xerces.xni.XMLDTDContentModelHandler

A DTD grammar. This class implements the XNI handler interfaces for DTD information so that it can build the approprate validation structures automatically from the callbacks.

Version:
$Id: DTDGrammar.java,v 1.1.2.47 2001/08/09 07:08:44 andyc Exp $
Author:
Stubs generated by DesignDoc on Mon Sep 11 11:10:57 PDT 2000, Eric Ye, IBM, Jeffrey Rodriguez, IBM, Andy Clark, IBM

Inner classes inherited from class org.apache.xerces.impl.validation.Grammar
Grammar.TupleHashtable
 
Field Summary
protected  int fCurrentAttributeIndex
          Current attribute index.
protected  int fCurrentElementIndex
          Current element index.
protected  DatatypeValidatorFactory fDatatypeValidatorFactory
          Datatype validator factory.
protected  boolean fReadingExternalDTD
          fReadingExternalDTD
 
Fields inherited from class org.apache.xerces.impl.validation.Grammar
fAttributeDecl, TOP_LEVEL_SCOPE
 
Fields inherited from interface org.apache.xerces.xni.XMLDTDHandler
CONDITIONAL_IGNORE, CONDITIONAL_INCLUDE
 
Fields inherited from interface org.apache.xerces.xni.XMLDTDContentModelHandler
OCCURS_ONE_OR_MORE, OCCURS_ZERO_OR_MORE, OCCURS_ZERO_OR_ONE, SEPARATOR_CHOICE, SEPARATOR_SEQUENCE
 
Constructor Summary
DTDGrammar(SymbolTable symbolTable)
          Default constructor.
 
Method Summary
protected  int addContentSpecNode(short nodeType, int leftNodeIndex, int rightNodeIndex)
          Create an XMLContentSpec for a two child leaf
protected  int addContentSpecNode(short nodeType, java.lang.String nodeValue)
          Create an XMLContentSpec for a single non-leaf
protected  int addUniqueLeafNode(java.lang.String elementName)
          create an XMLContentSpec for a leaf
 void any()
          A content model of ANY.
 void attributeDecl(java.lang.String elementName, java.lang.String attributeName, java.lang.String type, java.lang.String[] enumeration, java.lang.String defaultType, org.apache.xerces.xni.XMLString defaultValue)
          An attribute declaration.
 void characters(org.apache.xerces.xni.XMLString text)
          Characters within an IGNORE conditional section.
 void comment(org.apache.xerces.xni.XMLString text)
          A comment.
 void element(java.lang.String elementName)
          A referenced element in a mixed or children content model.
 void elementDecl(java.lang.String name, java.lang.String contentModel)
          An element declaration.
 void empty()
          A content model of EMPTY.
 void endAttlist()
          The end of an attribute list.
 void endConditional()
          The end of a conditional section.
 void endContentModel()
          The end of a content model.
 void endDTD()
          The end of the DTD.
 void endEntity(java.lang.String name)
          This method notifies the end of an entity.
 void endGroup()
          The end of a group for mixed or children content models.
protected  boolean ensureAttributeDeclCapacity(int chunk)
          Ensures storage for attribute declaration mappings.
protected  boolean ensureElementDeclCapacity(int chunk)
          Ensures storage for element declaration mappings.
 void externalEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId)
          An external entity declaration.
 int getAttributeDeclIndex(int elementDeclIndex, java.lang.String attributeDeclName)
          getAttributeDeclIndex
 boolean getAttributeDeclIsExternal(int attributeDeclIndex)
          Returns true if the specified attribute declaration is external.
 int getElementDeclIndex(org.apache.xerces.xni.QName elementDeclQName, int scope)
          Returns the element decl index.
 boolean getElementDeclIsExternal(int elementDeclIndex)
          Returns true if the specified element declaration is external.
protected  void initializeContentModelStack()
          Initialize content model stack.
 void internalEntityDecl(java.lang.String name, org.apache.xerces.xni.XMLString text)
          An internal entity declaration.
 boolean isNamespaceAware()
          Returns true if this grammar is namespace aware.
 void notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
          A notation declaration
 void occurrence(short occurrence)
          The occurrence count for a child in a children content model or for the mixed content model group.
 void pcdata()
          The appearance of "#PCDATA" within a group signifying a mixed content model.
 void processingInstruction(java.lang.String target, org.apache.xerces.xni.XMLString data)
          A processing instruction.
protected  int[][] resize(int[][] array, int newsize)
          Resizes chunked integer arrays.
 void separator(short separator)
          The separator between choices or sequences of a mixed or children content model.
 void setDatatypeValidatorFactory(DatatypeValidatorFactory factory)
          Sets the datatype validator factory.
 void startAttlist(java.lang.String elementName)
          The start of an attribute list.
 void startConditional(short type)
          The start of a conditional section.
 void startContentModel(java.lang.String elementName)
          The start of a content model.
 void startDTD(org.apache.xerces.xni.XMLLocator locator)
          The start of the DTD.
 void startEntity(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId, java.lang.String encoding)
          This method notifies of the start of an entity.
 void startGroup()
          A start of either a mixed or children content model.
 void textDecl(java.lang.String version, java.lang.String encoding)
          Notifies of the presence of a TextDecl line in an entity.
 void unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notation)
          An unparsed entity declaration.
 
Methods inherited from class org.apache.xerces.impl.validation.Grammar
createAttributeDecl, createContentSpec, createElementDecl, createEntityDecl, createNotationDecl, getAttributeDecl, getContentSpec, getContentSpecAsString, getElementContentModelValidator, getElementDecl, getElementDeclIndex, getEntityDecl, getEntityDeclIndex, getFirstAttributeDeclIndex, getFirstElementDeclIndex, getFirstEntityDeclIndex, getFirstNotationDeclIndex, getNextAttributeDeclIndex, getNextElementDeclIndex, getNextEntityDeclIndex, getNextNotationDeclIndex, getNotationDecl, getNotationDeclIndex, getSymbolTable, getTargetNamespace, isCDATAAttribute, isDTD, printAttributes, printElements, putElementNameMapping, setAttributeDecl, setContentSpec, setContentSpecIndex, setElementDecl, setEntityDecl, setFirstAttributeDeclIndex, setNotationDecl, setTargetNamespace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fDatatypeValidatorFactory

protected DatatypeValidatorFactory fDatatypeValidatorFactory
Datatype validator factory.

fCurrentElementIndex

protected int fCurrentElementIndex
Current element index.

fCurrentAttributeIndex

protected int fCurrentAttributeIndex
Current attribute index.

fReadingExternalDTD

protected boolean fReadingExternalDTD
fReadingExternalDTD
Constructor Detail

DTDGrammar

public DTDGrammar(SymbolTable symbolTable)
Default constructor.
Method Detail

setDatatypeValidatorFactory

public void setDatatypeValidatorFactory(DatatypeValidatorFactory factory)
Sets the datatype validator factory.

getElementDeclIsExternal

public boolean getElementDeclIsExternal(int elementDeclIndex)
Returns true if the specified element declaration is external.
Parameters:
elementDeclIndex - The element declaration index.

getAttributeDeclIsExternal

public boolean getAttributeDeclIsExternal(int attributeDeclIndex)
Returns true if the specified attribute declaration is external.
Parameters:
attributeDeclIndex - Attribute declaration index.

getAttributeDeclIndex

public int getAttributeDeclIndex(int elementDeclIndex,
                                 java.lang.String attributeDeclName)
Description copied from class: Grammar
getAttributeDeclIndex
Overrides:
getAttributeDeclIndex in class Grammar
Tags copied from class: Grammar
Parameters:
elementDeclIndex -  
attributeDeclName -  
Returns:
 

startDTD

public void startDTD(org.apache.xerces.xni.XMLLocator locator)
              throws org.apache.xerces.xni.XNIException
The start of the DTD.
Specified by:
startDTD in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
locator - The document locator, or null if the document location cannot be reported during the parsing of the document DTD. However, it is strongly recommended that a locator be supplied that can at least report the base system identifier of the DTD.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startEntity

public void startEntity(java.lang.String name,
                        java.lang.String publicId,
                        java.lang.String systemId,
                        java.lang.String baseSystemId,
                        java.lang.String encoding)
                 throws org.apache.xerces.xni.XNIException
This method notifies of the start of an entity. The DTD has the pseudo-name of "[dtd]; and parameter entity names start with '%'.

Note: Since the DTD is an entity, the handler will be notified of the start of the DTD entity by calling the startEntity method with the entity name "[dtd]" before calling the startDTD method.

Specified by:
startEntity in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the entity.
publicId - The public identifier of the entity if the entity is external, null otherwise.
systemId - The system identifier of the entity if the entity is external, null otherwise.
baseSystemId - The base system identifier of the entity if the entity is external, null otherwise.
encoding - The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal parameter entities).
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endEntity

public void endEntity(java.lang.String name)
               throws org.apache.xerces.xni.XNIException
This method notifies the end of an entity. The DTD has the pseudo-name of "[dtd]; and parameter entity names start with '%'.

Note: Since the DTD is an entity, the handler will be notified of the end of the DTD entity by calling the endEntity method with the entity name "[dtd]" after calling the endDTD method.

Specified by:
endEntity in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the entity.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

elementDecl

public void elementDecl(java.lang.String name,
                        java.lang.String contentModel)
                 throws org.apache.xerces.xni.XNIException
An element declaration.
Specified by:
elementDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the element.
contentModel - The element content model.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

attributeDecl

public void attributeDecl(java.lang.String elementName,
                          java.lang.String attributeName,
                          java.lang.String type,
                          java.lang.String[] enumeration,
                          java.lang.String defaultType,
                          org.apache.xerces.xni.XMLString defaultValue)
                   throws org.apache.xerces.xni.XNIException
An attribute declaration.
Specified by:
attributeDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
elementName - The name of the element that this attribute is associated with.
attributeName - The name of the attribute.
type - The attribute type. This value will be one of the following: "CDATA", "ENTITY", "ENTITIES", "ENUMERATION", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", or "NOTATION".
enumeration - If the type has the value "ENUMERATION", this array holds the allowed attribute values; otherwise, this array is null.
defaultType - The attribute default type. This value will be one of the following: "#FIXED", "#IMPLIED", "#REQUIRED", or null.
defaultValue - The attribute default value, or null if no default value is specified.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

internalEntityDecl

public void internalEntityDecl(java.lang.String name,
                               org.apache.xerces.xni.XMLString text)
                        throws org.apache.xerces.xni.XNIException
An internal entity declaration.
Specified by:
internalEntityDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the entity. Parameter entity names start with '%', whereas the name of a general entity is just the entity name.
text - The value of the entity.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

externalEntityDecl

public void externalEntityDecl(java.lang.String name,
                               java.lang.String publicId,
                               java.lang.String systemId,
                               java.lang.String baseSystemId)
                        throws org.apache.xerces.xni.XNIException
An external entity declaration.
Specified by:
externalEntityDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the entity. Parameter entity names start with '%', whereas the name of a general entity is just the entity name.
publicId - The public identifier of the entity or null if the the entity was specified with SYSTEM.
systemId - The system identifier of the entity.
baseSystemId - The base system identifier of the entity if the entity is external, null otherwise.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

unparsedEntityDecl

public void unparsedEntityDecl(java.lang.String name,
                               java.lang.String publicId,
                               java.lang.String systemId,
                               java.lang.String notation)
                        throws org.apache.xerces.xni.XNIException
An unparsed entity declaration.
Specified by:
unparsedEntityDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the entity.
publicId - The public identifier of the entity, or null if not specified.
systemId - The system identifier of the entity, or null if not specified.
notation - The name of the notation.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

notationDecl

public void notationDecl(java.lang.String name,
                         java.lang.String publicId,
                         java.lang.String systemId)
                  throws org.apache.xerces.xni.XNIException
A notation declaration
Specified by:
notationDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
name - The name of the notation.
publicId - The public identifier of the notation, or null if not specified.
systemId - The system identifier of the notation, or null if not specified.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endDTD

public void endDTD()
            throws org.apache.xerces.xni.XNIException
The end of the DTD.
Specified by:
endDTD in interface org.apache.xerces.xni.XMLDTDHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

textDecl

public void textDecl(java.lang.String version,
                     java.lang.String encoding)
              throws org.apache.xerces.xni.XNIException
Notifies of the presence of a TextDecl line in an entity. If present, this method will be called immediately following the startEntity call.

Note: This method is only called for external parameter entities referenced in the DTD.

Specified by:
textDecl in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
version - The XML version, or null if not specified.
encoding - The IANA encoding name of the entity.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

comment

public void comment(org.apache.xerces.xni.XMLString text)
             throws org.apache.xerces.xni.XNIException
A comment.
Specified by:
comment in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
text - The text in the comment.
Throws:
org.apache.xerces.xni.XNIException - Thrown by application to signal an error.

processingInstruction

public void processingInstruction(java.lang.String target,
                                  org.apache.xerces.xni.XMLString data)
                           throws org.apache.xerces.xni.XNIException
A processing instruction. Processing instructions consist of a target name and, optionally, text data. The data is only meaningful to the application.

Typically, a processing instruction's data will contain a series of pseudo-attributes. These pseudo-attributes follow the form of element attributes but are not parsed or presented to the application as anything other than text. The application is responsible for parsing the data.

Specified by:
processingInstruction in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
target - The target.
data - The data or null if none specified.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startAttlist

public void startAttlist(java.lang.String elementName)
                  throws org.apache.xerces.xni.XNIException
The start of an attribute list.
Specified by:
startAttlist in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
elementName - The name of the element that this attribute list is associated with.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

endAttlist

public void endAttlist()
                throws org.apache.xerces.xni.XNIException
The end of an attribute list.
Specified by:
endAttlist in interface org.apache.xerces.xni.XMLDTDHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startConditional

public void startConditional(short type)
                      throws org.apache.xerces.xni.XNIException
The start of a conditional section.
Specified by:
startConditional in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
type - The type of the conditional section. This value will either be CONDITIONAL_INCLUDE or CONDITIONAL_IGNORE.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
XMLDTDHandler.CONDITIONAL_INCLUDE, XMLDTDHandler.CONDITIONAL_IGNORE

characters

public void characters(org.apache.xerces.xni.XMLString text)
                throws org.apache.xerces.xni.XNIException
Characters within an IGNORE conditional section.
Specified by:
characters in interface org.apache.xerces.xni.XMLDTDHandler
Parameters:
text - The ignored text.

endConditional

public void endConditional()
                    throws org.apache.xerces.xni.XNIException
The end of a conditional section.
Specified by:
endConditional in interface org.apache.xerces.xni.XMLDTDHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startContentModel

public void startContentModel(java.lang.String elementName)
                       throws org.apache.xerces.xni.XNIException
The start of a content model. Depending on the type of the content model, specific methods may be called between the call to the startContentModel method and the call to the endContentModel method.
Specified by:
startContentModel in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Parameters:
elementName - The name of the element.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

startGroup

public void startGroup()
                throws org.apache.xerces.xni.XNIException
A start of either a mixed or children content model. A mixed content model will immediately be followed by a call to the pcdata() method. A children content model will contain additional groups and/or elements.
Specified by:
startGroup in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
any(), empty()

pcdata

public void pcdata()
            throws org.apache.xerces.xni.XNIException
The appearance of "#PCDATA" within a group signifying a mixed content model. This method will be the first called following the content model's startGroup().
Specified by:
pcdata in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
startGroup()

element

public void element(java.lang.String elementName)
             throws org.apache.xerces.xni.XNIException
A referenced element in a mixed or children content model.
Specified by:
element in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Parameters:
elementName - The name of the referenced element.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

separator

public void separator(short separator)
               throws org.apache.xerces.xni.XNIException
The separator between choices or sequences of a mixed or children content model.
Specified by:
separator in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Parameters:
separator - The type of children separator.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
XMLDTDContentModelHandler.SEPARATOR_CHOICE, XMLDTDContentModelHandler.SEPARATOR_SEQUENCE

occurrence

public void occurrence(short occurrence)
                throws org.apache.xerces.xni.XNIException
The occurrence count for a child in a children content model or for the mixed content model group.
Specified by:
occurrence in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Parameters:
occurrence - The occurrence count for the last element or group.
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
XMLDTDContentModelHandler.OCCURS_ZERO_OR_ONE, XMLDTDContentModelHandler.OCCURS_ZERO_OR_MORE, XMLDTDContentModelHandler.OCCURS_ONE_OR_MORE

endGroup

public void endGroup()
              throws org.apache.xerces.xni.XNIException
The end of a group for mixed or children content models.
Specified by:
endGroup in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

any

public void any()
         throws org.apache.xerces.xni.XNIException
A content model of ANY.
Specified by:
any in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
empty(), startGroup()

empty

public void empty()
           throws org.apache.xerces.xni.XNIException
A content model of EMPTY.
Specified by:
empty in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
See Also:
any(), startGroup()

endContentModel

public void endContentModel()
                     throws org.apache.xerces.xni.XNIException
The end of a content model.
Specified by:
endContentModel in interface org.apache.xerces.xni.XMLDTDContentModelHandler
Throws:
org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.

isNamespaceAware

public boolean isNamespaceAware()
Returns true if this grammar is namespace aware.
Overrides:
isNamespaceAware in class Grammar

getElementDeclIndex

public int getElementDeclIndex(org.apache.xerces.xni.QName elementDeclQName,
                               int scope)
Returns the element decl index.
Overrides:
getElementDeclIndex in class Grammar
Tags copied from class: Grammar
Parameters:
elementDeclQName -  
scope -  
Returns:
 

addContentSpecNode

protected int addContentSpecNode(short nodeType,
                                 java.lang.String nodeValue)
Create an XMLContentSpec for a single non-leaf
Parameters:
nodeType - the type of XMLContentSpec to create - from XMLContentSpec.CONTENTSPECNODE_*
nodeValue - handle to an XMLContentSpec
Returns:
handle to the newly create XMLContentSpec

addUniqueLeafNode

protected int addUniqueLeafNode(java.lang.String elementName)
create an XMLContentSpec for a leaf
Parameters:
elementName - the name (Element) for the node
Returns:
handle to the newly create XMLContentSpec

addContentSpecNode

protected int addContentSpecNode(short nodeType,
                                 int leftNodeIndex,
                                 int rightNodeIndex)
Create an XMLContentSpec for a two child leaf
Parameters:
nodeType - the type of XMLContentSpec to create - from XMLContentSpec.CONTENTSPECNODE_*
leftNodeIndex - handle to an XMLContentSpec
rightNodeIndex - handle to an XMLContentSpec
Returns:
handle to the newly create XMLContentSpec

initializeContentModelStack

protected void initializeContentModelStack()
Initialize content model stack.

ensureElementDeclCapacity

protected boolean ensureElementDeclCapacity(int chunk)
Ensures storage for element declaration mappings.

ensureAttributeDeclCapacity

protected boolean ensureAttributeDeclCapacity(int chunk)
Ensures storage for attribute declaration mappings.

resize

protected int[][] resize(int[][] array,
                         int newsize)
Resizes chunked integer arrays.


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