## org.apache.xerces.impl.dtd
Class DTDGrammar

    java.lang.Object
      |
      +--org.apache.xerces.impl.dtd.DTDGrammar

All Implemented Interfaces:
  EntityState, org.apache.xerces.xni.grammars.Grammar, org.apache.xerces.xni.XMLDTDContentModelHandler, org.apache.xerces.xni.XMLDTDHandler

public class DTDGrammar
extends java.lang.Object
implements org.apache.xerces.xni.XMLDTDHandler, org.apache.xerces.xni.XMLDTDContentModelHandler, EntityState, org.apache.xerces.xni.grammars.Grammar

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.

# INTERNAL:

  Usage of this class is not supported. It may be altered or removed at any time.

Version:
  $Id: DTDGrammar.java 572055 2007-09-02 17:55:43Z mrglavas $
Author:
  Eric Ye, IBM, Jeffrey Rodriguez, IBM, Andy Clark, IBM, Neil Graham, IBM

Inner Class Summary
`protected static class` `DTDGrammar.QNameHashtable` A simple Hashtable implementation that takes a tuple (String, String) as the key and a int as value.

Field Summary
`protected XMLAttributeDecl` `fAttributeDecl` Temporary Attribute decl.
`protected int` `fCurrentAttributeIndex` Current attribute index.
`protected int` `fCurrentElementIndex` Current element index.
`protected org.apache.xerces.xni.parser.XMLDTDContentModelSource` `fDTDContentModelSource`
`protected org.apache.xerces.xni.parser.XMLDTDSource` `fDTDSource`
`protected XMLDTDDescription` `fGrammarDescription`
`protected boolean` `fReadingExternalDTD` fReadingExternalDTD
`static int` `TOP_LEVEL_SCOPE` Top level scope (-1).

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, XMLDTDDescription desc)` 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 void` `addContentSpecToElement(XMLElementDecl elementDecl)` Adds the content spec to the given element declaration.
`protected int` `addUniqueLeafNode(java.lang.String elementName)` create an XMLContentSpec for a leaf
`void` `any(org.apache.xerces.xni.Augmentations augs)` 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, org.apache.xerces.xni.XMLString nonNormalizedDefaultValue, org.apache.xerces.xni.Augmentations augs)` An attribute declaration.
`void` `comment(org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.Augmentations augs)` A comment.
`protected int` `createAttributeDecl()`
`protected int` `createContentSpec()`
`protected int` `createElementDecl()`
`protected int` `createEntityDecl()`
`protected int` `createNotationDecl()`
`void` `element(java.lang.String elementName, org.apache.xerces.xni.Augmentations augs)` A referenced element in a mixed or children content model.
`void` `elementDecl(java.lang.String name, java.lang.String contentModel, org.apache.xerces.xni.Augmentations augs)` An element declaration.
`void` `empty(org.apache.xerces.xni.Augmentations augs)` A content model of EMPTY.
`void` `endAttlist(org.apache.xerces.xni.Augmentations augs)` The end of an attribute list.
`void` `endConditional(org.apache.xerces.xni.Augmentations augs)` The end of a conditional section.
`void` `endContentModel(org.apache.xerces.xni.Augmentations augs)` The end of a content model.
`void` `endDTD(org.apache.xerces.xni.Augmentations augs)` The end of the DTD.
`void` `endExternalSubset(org.apache.xerces.xni.Augmentations augs)` The end of the DTD external subset.
`void` `endGroup(org.apache.xerces.xni.Augmentations augs)` The end of a group for mixed or children content models.
`void` `endParameterEntity(java.lang.String name, org.apache.xerces.xni.Augmentations augs)` This method notifies the end of an entity.
`void` `externalEntityDecl(java.lang.String name, org.apache.xerces.xni.XMLResourceIdentifier identifier, org.apache.xerces.xni.Augmentations augs)` An external entity declaration.
`boolean` `getAttributeDecl(int attributeDeclIndex, XMLAttributeDecl attributeDecl)` getAttributeDecl
`int` `getAttributeDeclIndex(int elementDeclIndex, java.lang.String attributeDeclName)`
`boolean` `getAttributeDeclIsExternal(int attributeDeclIndex)` Returns true if the specified attribute declaration is external.
`boolean` `getContentSpec(int contentSpecIndex, XMLContentSpec contentSpec)` getContentSpec
`java.lang.String` `getContentSpecAsString(int elementDeclIndex)` getContentSpecAsString
`int` `getContentSpecIndex(int elementDeclIndex)` Returns the index to the content spec for the given element declaration, or `-1` if the element declaration index was invalid.
`short` `getContentSpecType(int elementIndex)` make separate function for getting contentSpecType of element.
`org.apache.xerces.xni.parser.XMLDTDContentModelSource` `getDTDContentModelSource()`
`org.apache.xerces.xni.parser.XMLDTDSource` `getDTDSource()`
`protected ContentModelValidator` `getElementContentModelValidator(int elementDeclIndex)` getElementContentModelValidator
`boolean` `getElementDecl(int elementDeclIndex, XMLElementDecl elementDecl)` getElementDecl
`int` `getElementDeclIndex(org.apache.xerces.xni.QName elementDeclQName)` Returns the element decl index.
`int` `getElementDeclIndex(java.lang.String elementDeclName)` getElementDeclIndex
`boolean` `getElementDeclIsExternal(int elementDeclIndex)` Returns true if the specified element declaration is external.
`boolean` `getEntityDecl(int entityDeclIndex, XMLEntityDecl entityDecl)` getEntityDecl
`int` `getEntityDeclIndex(java.lang.String entityDeclName)` getEntityDeclIndex
`int` `getFirstAttributeDeclIndex(int elementDeclIndex)` getFirstAttributeDeclIndex
`int` `getFirstElementDeclIndex()` Returns the index of the first element declaration.
`org.apache.xerces.xni.grammars.XMLGrammarDescription` `getGrammarDescription()` get the `XMLGrammarDescription` associated with this object
`int` `getNextAttributeDeclIndex(int attributeDeclIndex)` getNextAttributeDeclIndex
`int` `getNextElementDeclIndex(int elementDeclIndex)` Returns the next index of the element declaration following the specified element declaration.
`boolean` `getNotationDecl(int notationDeclIndex, XMLNotationDecl notationDecl)` getNotationDecl
`int` `getNotationDeclIndex(java.lang.String notationDeclName)` getNotationDeclIndex
`SymbolTable` `getSymbolTable()` Returns the symbol table.
`void` `ignoredCharacters(org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.Augmentations augs)` Characters within an IGNORE conditional section.
`protected void` `initializeContentModelStack()` Initialize content model stack.
`void` `internalEntityDecl(java.lang.String name, org.apache.xerces.xni.XMLString text, org.apache.xerces.xni.XMLString nonNormalizedText, org.apache.xerces.xni.Augmentations augs)` An internal entity declaration.
`boolean` `isCDATAAttribute(org.apache.xerces.xni.QName elName, org.apache.xerces.xni.QName atName)` Returns whether the given attribute is of type CDATA or not
`boolean` `isEntityDeclared(java.lang.String name)` Query method to check if entity with this name was declared.
`boolean` `isEntityUnparsed(java.lang.String name)` Query method to check if entity is unparsed.
`boolean` `isNamespaceAware()` Returns true if this grammar is namespace aware.
`void` `notationDecl(java.lang.String name, org.apache.xerces.xni.XMLResourceIdentifier identifier, org.apache.xerces.xni.Augmentations augs)` A notation declaration
`void` `occurrence(short occurrence, org.apache.xerces.xni.Augmentations augs)` The occurrence count for a child in a children content model or for the mixed content model group.
`void` `pcdata(org.apache.xerces.xni.Augmentations augs)` The appearance of "#PCDATA" within a group signifying a mixed content model.
`void` `printAttributes(int elementDeclIndex)`
`void` `printElements()`
`void` `processingInstruction(java.lang.String target, org.apache.xerces.xni.XMLString data, org.apache.xerces.xni.Augmentations augs)` A processing instruction.
`protected void` `putElementNameMapping(org.apache.xerces.xni.QName name, int scope, int elementDeclIndex)`
`void` `separator(short separator, org.apache.xerces.xni.Augmentations augs)` The separator between choices or sequences of a mixed or children content model.
`protected void` `setAttributeDecl(int elementDeclIndex, int attributeDeclIndex, XMLAttributeDecl attributeDecl)`
`protected void` `setContentSpec(int contentSpecIndex, XMLContentSpec contentSpec)`
`protected void` `setContentSpecIndex(int elementDeclIndex, int contentSpecIndex)`
`void` `setDTDContentModelSource(org.apache.xerces.xni.parser.XMLDTDContentModelSource source)`
`void` `setDTDSource(org.apache.xerces.xni.parser.XMLDTDSource source)`
`protected void` `setElementDecl(int elementDeclIndex, XMLElementDecl elementDecl)`
`protected void` `setEntityDecl(int entityDeclIndex, XMLEntityDecl entityDecl)`
`protected void` `setFirstAttributeDeclIndex(int elementDeclIndex, int newFirstAttrIndex)`
`protected void` `setNotationDecl(int notationDeclIndex, XMLNotationDecl notationDecl)`
`void` `startAttlist(java.lang.String elementName, org.apache.xerces.xni.Augmentations augs)` The start of an attribute list.
`void` `startConditional(short type, org.apache.xerces.xni.Augmentations augs)` The start of a conditional section.
`void` `startContentModel(java.lang.String elementName, org.apache.xerces.xni.Augmentations augs)` The start of a content model.
`void` `startDTD(org.apache.xerces.xni.XMLLocator locator, org.apache.xerces.xni.Augmentations augs)` The start of the DTD.
`void` `startExternalSubset(org.apache.xerces.xni.XMLResourceIdentifier identifier, org.apache.xerces.xni.Augmentations augs)` The start of the DTD external subset.
`void` `startGroup(org.apache.xerces.xni.Augmentations augs)` A start of either a mixed or children content model.
`void` `startParameterEntity(java.lang.String name, org.apache.xerces.xni.XMLResourceIdentifier identifier, java.lang.String encoding, org.apache.xerces.xni.Augmentations augs)` This method notifies of the start of an entity.
`void` `textDecl(java.lang.String version, java.lang.String encoding, org.apache.xerces.xni.Augmentations augs)` Notifies of the presence of a TextDecl line in an entity.
`void` `unparsedEntityDecl(java.lang.String name, org.apache.xerces.xni.XMLResourceIdentifier identifier, java.lang.String notation, org.apache.xerces.xni.Augmentations augs)` An unparsed entity declaration.

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

Field Detail

### TOP_LEVEL_SCOPE

    public static final int TOP_LEVEL_SCOPE

  Top level scope (-1).

### fDTDSource

    protected org.apache.xerces.xni.parser.XMLDTDSource fDTDSource

### fDTDContentModelSource

    protected org.apache.xerces.xni.parser.XMLDTDContentModelSource fDTDContentModelSource

### fCurrentElementIndex

    protected int fCurrentElementIndex

  Current element index.

### fCurrentAttributeIndex

    protected int fCurrentAttributeIndex

  Current attribute index.

### fReadingExternalDTD

    protected boolean fReadingExternalDTD

  fReadingExternalDTD

### fGrammarDescription

    protected XMLDTDDescription fGrammarDescription

### fAttributeDecl

    protected final XMLAttributeDecl fAttributeDecl

  Temporary Attribute decl.

Constructor Detail

### DTDGrammar

    public DTDGrammar(SymbolTable symbolTable,
                      XMLDTDDescription desc)

  Default constructor.

Method Detail

### getGrammarDescription

    public org.apache.xerces.xni.grammars.XMLGrammarDescription getGrammarDescription()

  Description copied from interface: `org.apache.xerces.xni.grammars.Grammar`
  get the `XMLGrammarDescription` associated with this object
  Specified by:
    `getGrammarDescription` in interface `org.apache.xerces.xni.grammars.Grammar`

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

### startDTD

    public void startDTD(org.apache.xerces.xni.XMLLocator locator,
                         org.apache.xerces.xni.Augmentations augs)
                  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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### startParameterEntity

    public void startParameterEntity(java.lang.String name,
                                     org.apache.xerces.xni.XMLResourceIdentifier identifier,
                                     java.lang.String encoding,
                                     org.apache.xerces.xni.Augmentations augs)
                              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 startParameterEntity method with the entity name "[dtd]" before calling the startDTD method.

  Specified by:
    `startParameterEntity` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `name` - The name of the parameter entity.
    `identifier` - The resource identifier.
    `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).
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### startExternalSubset

    public void startExternalSubset(org.apache.xerces.xni.XMLResourceIdentifier identifier,
                                    org.apache.xerces.xni.Augmentations augs)
                             throws org.apache.xerces.xni.XNIException

  The start of the DTD external subset.
  Specified by:
    `startExternalSubset` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### endParameterEntity

    public void endParameterEntity(java.lang.String name,
                                   org.apache.xerces.xni.Augmentations augs)
                            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:
    `endParameterEntity` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `name` - The name of the entity.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### endExternalSubset

    public void endExternalSubset(org.apache.xerces.xni.Augmentations augs)
                           throws org.apache.xerces.xni.XNIException

  The end of the DTD external subset.
  Specified by:
    `endExternalSubset` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  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,
                            org.apache.xerces.xni.Augmentations augs)
                     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.
    `augs` - Additional information that may include infoset augmentations.
  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,
                              org.apache.xerces.xni.XMLString nonNormalizedDefaultValue,
                              org.apache.xerces.xni.Augmentations augs)
                       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.
    `nonNormalizedDefaultValue` - The attribute default value with no normalization performed, or null if no default value is specified.
    `augs` - Additional information that may include infoset augmentations.
  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,
                                   org.apache.xerces.xni.XMLString nonNormalizedText,
                                   org.apache.xerces.xni.Augmentations augs)
                            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.
    `nonNormalizedText` - The non-normalized value of the entity. This value contains the same sequence of characters that was in the internal entity declaration, without any entity references expanded.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### externalEntityDecl

    public void externalEntityDecl(java.lang.String name,
                                   org.apache.xerces.xni.XMLResourceIdentifier identifier,
                                   org.apache.xerces.xni.Augmentations augs)
                            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.
    `identifier` - An object containing all location information pertinent to this external entity declaration.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### unparsedEntityDecl

    public void unparsedEntityDecl(java.lang.String name,
                                   org.apache.xerces.xni.XMLResourceIdentifier identifier,
                                   java.lang.String notation,
                                   org.apache.xerces.xni.Augmentations augs)
                            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.
    `identifier` - An object containing all location information pertinent to this entity.
    `notation` - The name of the notation.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### notationDecl

    public void notationDecl(java.lang.String name,
                             org.apache.xerces.xni.XMLResourceIdentifier identifier,
                             org.apache.xerces.xni.Augmentations augs)
                      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.
    `identifier` - An object containing all location information pertinent to this notation.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### endDTD

    public void endDTD(org.apache.xerces.xni.Augmentations augs)
                throws org.apache.xerces.xni.XNIException

  The end of the DTD.
  Specified by:
    `endDTD` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### setDTDSource

    public void setDTDSource(org.apache.xerces.xni.parser.XMLDTDSource source)

  Specified by:
    `setDTDSource` in interface `org.apache.xerces.xni.XMLDTDHandler`

### getDTDSource

    public org.apache.xerces.xni.parser.XMLDTDSource getDTDSource()

  Specified by:
    `getDTDSource` in interface `org.apache.xerces.xni.XMLDTDHandler`

### textDecl

    public void textDecl(java.lang.String version,
                         java.lang.String encoding,
                         org.apache.xerces.xni.Augmentations augs)
                  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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### comment

    public void comment(org.apache.xerces.xni.XMLString text,
                        org.apache.xerces.xni.Augmentations augs)
                 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.
    `augs` - Additional information that may include infoset augmentations.
  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,
                                      org.apache.xerces.xni.Augmentations augs)
                               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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### startAttlist

    public void startAttlist(java.lang.String elementName,
                             org.apache.xerces.xni.Augmentations augs)
                      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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### endAttlist

    public void endAttlist(org.apache.xerces.xni.Augmentations augs)
                    throws org.apache.xerces.xni.XNIException

  The end of an attribute list.
  Specified by:
    `endAttlist` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### startConditional

    public void startConditional(short type,
                                 org.apache.xerces.xni.Augmentations augs)
                          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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.
  See Also:
    `XMLDTDHandler.CONDITIONAL_INCLUDE`, `XMLDTDHandler.CONDITIONAL_IGNORE`

### ignoredCharacters

    public void ignoredCharacters(org.apache.xerces.xni.XMLString text,
                                  org.apache.xerces.xni.Augmentations augs)
                           throws org.apache.xerces.xni.XNIException

  Characters within an IGNORE conditional section.
  Specified by:
    `ignoredCharacters` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `text` - The ignored text.
    `augs` - Additional information that may include infoset augmentations.

### endConditional

    public void endConditional(org.apache.xerces.xni.Augmentations augs)
                        throws org.apache.xerces.xni.XNIException

  The end of a conditional section.
  Specified by:
    `endConditional` in interface `org.apache.xerces.xni.XMLDTDHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### setDTDContentModelSource

    public void setDTDContentModelSource(org.apache.xerces.xni.parser.XMLDTDContentModelSource source)

  Specified by:
    `setDTDContentModelSource` in interface `org.apache.xerces.xni.XMLDTDContentModelHandler`

### getDTDContentModelSource

    public org.apache.xerces.xni.parser.XMLDTDContentModelSource getDTDContentModelSource()

  Specified by:
    `getDTDContentModelSource` in interface `org.apache.xerces.xni.XMLDTDContentModelHandler`

### startContentModel

    public void startContentModel(java.lang.String elementName,
                                  org.apache.xerces.xni.Augmentations augs)
                           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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### startGroup

    public void startGroup(org.apache.xerces.xni.Augmentations augs)
                    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`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.
  See Also:
    `any(org.apache.xerces.xni.Augmentations)`, `empty(org.apache.xerces.xni.Augmentations)`

### pcdata

    public void pcdata(org.apache.xerces.xni.Augmentations augs)
                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`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.
  See Also:
    `startGroup(org.apache.xerces.xni.Augmentations)`

### element

    public void element(java.lang.String elementName,
                        org.apache.xerces.xni.Augmentations augs)
                 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.
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### separator

    public void separator(short separator,
                          org.apache.xerces.xni.Augmentations augs)
                   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.
    `augs` - Additional information that may include infoset augmentations.
  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,
                           org.apache.xerces.xni.Augmentations augs)
                    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.
    `augs` - Additional information that may include infoset augmentations.
  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(org.apache.xerces.xni.Augmentations augs)
                  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`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.

### any

    public void any(org.apache.xerces.xni.Augmentations augs)
             throws org.apache.xerces.xni.XNIException

  A content model of ANY.
  Specified by:
    `any` in interface `org.apache.xerces.xni.XMLDTDContentModelHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.
  See Also:
    `empty(org.apache.xerces.xni.Augmentations)`, `startGroup(org.apache.xerces.xni.Augmentations)`

### empty

    public void empty(org.apache.xerces.xni.Augmentations augs)
               throws org.apache.xerces.xni.XNIException

  A content model of EMPTY.
  Specified by:
    `empty` in interface `org.apache.xerces.xni.XMLDTDContentModelHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  Throws:
    `org.apache.xerces.xni.XNIException` - Thrown by handler to signal an error.
  See Also:
    `any(org.apache.xerces.xni.Augmentations)`, `startGroup(org.apache.xerces.xni.Augmentations)`

### endContentModel

    public void endContentModel(org.apache.xerces.xni.Augmentations augs)
                         throws org.apache.xerces.xni.XNIException

  The end of a content model.
  Specified by:
    `endContentModel` in interface `org.apache.xerces.xni.XMLDTDContentModelHandler`
  Parameters:
    `augs` - Additional information that may include infoset augmentations.
  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.

### getSymbolTable

    public SymbolTable getSymbolTable()

  Returns the symbol table.

### getFirstElementDeclIndex

    public int getFirstElementDeclIndex()

  Returns the index of the first element declaration. This index is then used to query more information about the element declaration.
  See Also:
    `getNextElementDeclIndex(int)`, `getElementDecl(int, org.apache.xerces.impl.dtd.XMLElementDecl)`

### getNextElementDeclIndex

    public int getNextElementDeclIndex(int elementDeclIndex)

  Returns the next index of the element declaration following the specified element declaration.
  Parameters:
    `elementDeclIndex` - The element declaration index.

### getElementDeclIndex

    public int getElementDeclIndex(java.lang.String elementDeclName)

  getElementDeclIndex
  Parameters:
    `elementDeclName` -
  Returns:
    index of the elementDeclName in scope

### getElementDeclIndex

    public int getElementDeclIndex(org.apache.xerces.xni.QName elementDeclQName)

  Returns the element decl index.
  Parameters:
    `elementDeclQName` - qualilfied name of the element

### getContentSpecType

    public short getContentSpecType(int elementIndex)

  make separate function for getting contentSpecType of element. we can avoid setting of the element values.

### getElementDecl

    public boolean getElementDecl(int elementDeclIndex,
                                  XMLElementDecl elementDecl)

  getElementDecl
  Parameters:
    `elementDeclIndex` -
    `elementDecl` - The values of this structure are set by this call.
  Returns:
    True if find the element, False otherwise.

### getFirstAttributeDeclIndex

    public int getFirstAttributeDeclIndex(int elementDeclIndex)

  getFirstAttributeDeclIndex
  Parameters:
    `elementDeclIndex` -
  Returns:
    index of the first attribute for element declaration elementDeclIndex

### getNextAttributeDeclIndex

    public int getNextAttributeDeclIndex(int attributeDeclIndex)

  getNextAttributeDeclIndex
  Parameters:
    `attributeDeclIndex` -
  Returns:
    index of the next attribute of the attribute at attributeDeclIndex

### getAttributeDecl

    public boolean getAttributeDecl(int attributeDeclIndex,
                                    XMLAttributeDecl attributeDecl)

  getAttributeDecl
  Parameters:
    `attributeDeclIndex` -
    `attributeDecl` - The values of this structure are set by this call.
  Returns:
    true if getAttributeDecl was able to fill in the value of attributeDecl

### isCDATAAttribute

    public boolean isCDATAAttribute(org.apache.xerces.xni.QName elName,
                                    org.apache.xerces.xni.QName atName)

  Returns whether the given attribute is of type CDATA or not
  Parameters:
    `elName` - The element name.
    `atName` - The attribute name.
  Returns:
    true if the attribute is of type CDATA

### getEntityDeclIndex

    public int getEntityDeclIndex(java.lang.String entityDeclName)

  getEntityDeclIndex
  Parameters:
    `entityDeclName` -
  Returns:
    the index of the EntityDecl

### getEntityDecl

    public boolean getEntityDecl(int entityDeclIndex,
                                 XMLEntityDecl entityDecl)

  getEntityDecl
  Parameters:
    `entityDeclIndex` -
    `entityDecl` -
  Returns:
    true if getEntityDecl was able to fill entityDecl with the contents of the entity with index entityDeclIndex

### getNotationDeclIndex

    public int getNotationDeclIndex(java.lang.String notationDeclName)

  getNotationDeclIndex
  Parameters:
    `notationDeclName` -
  Returns:
    the index if found a notation with the name, otherwise -1.

### getNotationDecl

    public boolean getNotationDecl(int notationDeclIndex,
                                   XMLNotationDecl notationDecl)

  getNotationDecl
  Parameters:
    `notationDeclIndex` -
    `notationDecl` -
  Returns:
    return true of getNotationDecl can fill notationDecl with information about the notation at notationDeclIndex.

### getContentSpec

    public boolean getContentSpec(int contentSpecIndex,
                                  XMLContentSpec contentSpec)

  getContentSpec
  Parameters:
    `contentSpecIndex` -
    `contentSpec` -
  Returns:
    true if find the requested contentSpec node, false otherwise

### getContentSpecIndex

    public int getContentSpecIndex(int elementDeclIndex)

  Returns the index to the content spec for the given element declaration, or `-1` if the element declaration index was invalid.

### getContentSpecAsString

    public java.lang.String getContentSpecAsString(int elementDeclIndex)

  getContentSpecAsString
  Parameters:
    `elementDeclIndex` -
  Returns:
    String

### printElements

    public void printElements()

### printAttributes

    public void printAttributes(int elementDeclIndex)

### addContentSpecToElement

    protected void addContentSpecToElement(XMLElementDecl elementDecl)

  Adds the content spec to the given element declaration.

### getElementContentModelValidator

    protected ContentModelValidator getElementContentModelValidator(int elementDeclIndex)

  getElementContentModelValidator
  Parameters:
    `elementDeclIndex` -
  Returns:
    its ContentModelValidator if any.

### createElementDecl

    protected int createElementDecl()

### setElementDecl

    protected void setElementDecl(int elementDeclIndex,
                                  XMLElementDecl elementDecl)

### putElementNameMapping

    protected void putElementNameMapping(org.apache.xerces.xni.QName name,
                                         int scope,
                                         int elementDeclIndex)

### setFirstAttributeDeclIndex

    protected void setFirstAttributeDeclIndex(int elementDeclIndex,
                                              int newFirstAttrIndex)

### setContentSpecIndex

    protected void setContentSpecIndex(int elementDeclIndex,
                                       int contentSpecIndex)

### createAttributeDecl

    protected int createAttributeDecl()

### setAttributeDecl

    protected void setAttributeDecl(int elementDeclIndex,
                                    int attributeDeclIndex,
                                    XMLAttributeDecl attributeDecl)

### createContentSpec

    protected int createContentSpec()

### setContentSpec

    protected void setContentSpec(int contentSpecIndex,
                                  XMLContentSpec contentSpec)

### createEntityDecl

    protected int createEntityDecl()

### setEntityDecl

    protected void setEntityDecl(int entityDeclIndex,
                                 XMLEntityDecl entityDecl)

### createNotationDecl

    protected int createNotationDecl()

### setNotationDecl

    protected void setNotationDecl(int notationDeclIndex,
                                   XMLNotationDecl notationDecl)

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

### isEntityDeclared

    public boolean isEntityDeclared(java.lang.String name)

  Description copied from interface: `EntityState`
  Query method to check if entity with this name was declared.
  Specified by:
    `isEntityDeclared` in interface `EntityState`
  Following copied from interface: `org.apache.xerces.impl.validation.EntityState`
  Parameters:
    `name` -
  Returns:
    true if name is a declared entity

### isEntityUnparsed

    public boolean isEntityUnparsed(java.lang.String name)

  Description copied from interface: `EntityState`
  Query method to check if entity is unparsed.
  Specified by:
    `isEntityUnparsed` in interface `EntityState`
  Following copied from interface: `org.apache.xerces.impl.validation.EntityState`
  Parameters:
    `name` -
  Returns:
    true if name is an unparsed entity

Copyright © 1999-2007 The Apache Software Foundation. All Rights Reserved.