public class

DTDGrammar

extends Object
implements EntityState XMLDTDContentModelHandler XMLDTDHandler Grammar
java.lang.Object
   ↳ org.apache.xerces.impl.dtd.DTDGrammar

Class Overview

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.@xerces.internal

Summary

Nested Classes
class DTDGrammar.QNameHashtable A simple Hashtable implementation that takes a tuple (String, String) as the key and a int as value.@xerces.internal 
Constants
int TOP_LEVEL_SCOPE Top level scope (-1).
[Expand]
Inherited Constants
From interface org.apache.xerces.xni.XMLDTDContentModelHandler
From interface org.apache.xerces.xni.XMLDTDHandler
Fields
protected XMLAttributeDecl fAttributeDecl Temporary Attribute decl.
protected int fCurrentAttributeIndex Current attribute index.
protected int fCurrentElementIndex Current element index.
protected XMLDTDContentModelSource fDTDContentModelSource
protected XMLDTDSource fDTDSource
protected XMLDTDDescription fGrammarDescription
protected boolean fReadingExternalDTD fReadingExternalDTD
Public Constructors
DTDGrammar(SymbolTable symbolTable, XMLDTDDescription desc)
Default constructor.
Public Methods
void any(Augmentations augs)
A content model of ANY.
void attributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)
An attribute declaration.
void comment(XMLString text, Augmentations augs)
A comment.
void element(String elementName, Augmentations augs)
A referenced element in a mixed or children content model.
void elementDecl(String name, String contentModel, Augmentations augs)
An element declaration.
void empty(Augmentations augs)
A content model of EMPTY.
void endAttlist(Augmentations augs)
The end of an attribute list.
void endConditional(Augmentations augs)
The end of a conditional section.
void endContentModel(Augmentations augs)
The end of a content model.
void endDTD(Augmentations augs)
The end of the DTD.
void endExternalSubset(Augmentations augs)
The end of the DTD external subset.
void endGroup(Augmentations augs)
The end of a group for mixed or children content models.
void endParameterEntity(String name, Augmentations augs)
This method notifies the end of an entity.
void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
An external entity declaration.
boolean getAttributeDecl(int attributeDeclIndex, XMLAttributeDecl attributeDecl)
getAttributeDecl
int getAttributeDeclIndex(int elementDeclIndex, String attributeDeclName)
boolean getAttributeDeclIsExternal(int attributeDeclIndex)
Returns true if the specified attribute declaration is external.
boolean getContentSpec(int contentSpecIndex, XMLContentSpec contentSpec)
getContentSpec
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.
XMLDTDContentModelSource getDTDContentModelSource()
XMLDTDSource getDTDSource()
boolean getElementDecl(int elementDeclIndex, XMLElementDecl elementDecl)
getElementDecl
int getElementDeclIndex(QName elementDeclQName)
Returns the element decl index.
int getElementDeclIndex(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(String entityDeclName)
getEntityDeclIndex
int getFirstAttributeDeclIndex(int elementDeclIndex)
getFirstAttributeDeclIndex
int getFirstElementDeclIndex()
Returns the index of the first element declaration.
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(String notationDeclName)
getNotationDeclIndex
SymbolTable getSymbolTable()
Returns the symbol table.
void ignoredCharacters(XMLString text, Augmentations augs)
Characters within an IGNORE conditional section.
void internalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)
An internal entity declaration.
boolean isCDATAAttribute(QName elName, QName atName)
Returns whether the given attribute is of type CDATA or not
boolean isEntityDeclared(String name)
Query method to check if entity with this name was declared.
boolean isEntityUnparsed(String name)
Query method to check if entity is unparsed.
boolean isNamespaceAware()
Returns true if this grammar is namespace aware.
void notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
A notation declaration
void occurrence(short occurrence, Augmentations augs)
The occurrence count for a child in a children content model or for the mixed content model group.
void pcdata(Augmentations augs)
The appearance of "#PCDATA" within a group signifying a mixed content model.
void printAttributes(int elementDeclIndex)
void printElements()
void processingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction.
void separator(short separator, Augmentations augs)
The separator between choices or sequences of a mixed or children content model.
void setDTDContentModelSource(XMLDTDContentModelSource source)
void setDTDSource(XMLDTDSource source)
void startAttlist(String elementName, Augmentations augs)
The start of an attribute list.
void startConditional(short type, Augmentations augs)
The start of a conditional section.
void startContentModel(String elementName, Augmentations augs)
The start of a content model.
void startDTD(XMLLocator locator, Augmentations augs)
The start of the DTD.
void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augs)
The start of the DTD external subset.
void startGroup(Augmentations augs)
A start of either a mixed or children content model.
void startParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies of the start of an entity.
void textDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity.
void unparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)
An unparsed entity declaration.
Protected Methods
int addContentSpecNode(short nodeType, String nodeValue)
Create an XMLContentSpec for a single non-leaf
int addContentSpecNode(short nodeType, int leftNodeIndex, int rightNodeIndex)
Create an XMLContentSpec for a two child leaf
void addContentSpecToElement(XMLElementDecl elementDecl)
Adds the content spec to the given element declaration.
int addUniqueLeafNode(String elementName)
create an XMLContentSpec for a leaf
int createAttributeDecl()
int createContentSpec()
int createElementDecl()
int createEntityDecl()
int createNotationDecl()
ContentModelValidator getElementContentModelValidator(int elementDeclIndex)
getElementContentModelValidator
void initializeContentModelStack()
Initialize content model stack.
void putElementNameMapping(QName name, int scope, int elementDeclIndex)
void setAttributeDecl(int elementDeclIndex, int attributeDeclIndex, XMLAttributeDecl attributeDecl)
void setContentSpec(int contentSpecIndex, XMLContentSpec contentSpec)
void setContentSpecIndex(int elementDeclIndex, int contentSpecIndex)
void setElementDecl(int elementDeclIndex, XMLElementDecl elementDecl)
void setEntityDecl(int entityDeclIndex, XMLEntityDecl entityDecl)
void setFirstAttributeDeclIndex(int elementDeclIndex, int newFirstAttrIndex)
void setNotationDecl(int notationDeclIndex, XMLNotationDecl notationDecl)
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.xerces.impl.validation.EntityState
From interface org.apache.xerces.xni.XMLDTDContentModelHandler
From interface org.apache.xerces.xni.XMLDTDHandler
From interface org.apache.xerces.xni.grammars.Grammar

Constants

public static final int TOP_LEVEL_SCOPE

Top level scope (-1).

Constant Value: -1 (0xffffffff)

Fields

protected XMLAttributeDecl fAttributeDecl

Temporary Attribute decl.

protected int fCurrentAttributeIndex

Current attribute index.

protected int fCurrentElementIndex

Current element index.

protected XMLDTDContentModelSource fDTDContentModelSource

protected XMLDTDSource fDTDSource

protected XMLDTDDescription fGrammarDescription

protected boolean fReadingExternalDTD

fReadingExternalDTD

Public Constructors

public DTDGrammar (SymbolTable symbolTable, XMLDTDDescription desc)

Default constructor.

Public Methods

public void any (Augmentations augs)

A content model of ANY.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void attributeDecl (String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)

An attribute declaration.

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
XNIException Thrown by handler to signal an error.

public void comment (XMLString text, Augmentations augs)

A comment.

Parameters
text The text in the comment.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by application to signal an error.

public void element (String elementName, Augmentations augs)

A referenced element in a mixed or children content model.

Parameters
elementName The name of the referenced element.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void elementDecl (String name, String contentModel, Augmentations augs)

An element declaration.

Parameters
name The name of the element.
contentModel The element content model.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void empty (Augmentations augs)

A content model of EMPTY.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endAttlist (Augmentations augs)

The end of an attribute list.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endConditional (Augmentations augs)

The end of a conditional section.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endContentModel (Augmentations augs)

The end of a content model.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endDTD (Augmentations augs)

The end of the DTD.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endExternalSubset (Augmentations augs)

The end of the DTD external subset.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endGroup (Augmentations augs)

The end of a group for mixed or children content models.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void endParameterEntity (String name, Augmentations augs)

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.

Parameters
name The name of the entity.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void externalEntityDecl (String name, XMLResourceIdentifier identifier, Augmentations augs)

An external entity declaration.

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
XNIException Thrown by handler to signal an error.

public boolean getAttributeDecl (int attributeDeclIndex, XMLAttributeDecl attributeDecl)

getAttributeDecl

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

public int getAttributeDeclIndex (int elementDeclIndex, String attributeDeclName)

public boolean getAttributeDeclIsExternal (int attributeDeclIndex)

Returns true if the specified attribute declaration is external.

Parameters
attributeDeclIndex Attribute declaration index.

public boolean getContentSpec (int contentSpecIndex, XMLContentSpec contentSpec)

getContentSpec

Returns
  • true if find the requested contentSpec node, false otherwise

public String getContentSpecAsString (int elementDeclIndex)

getContentSpecAsString

Returns
  • String

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.

public short getContentSpecType (int elementIndex)

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

public XMLDTDContentModelSource getDTDContentModelSource ()

public XMLDTDSource getDTDSource ()

public boolean getElementDecl (int elementDeclIndex, XMLElementDecl elementDecl)

getElementDecl

Parameters
elementDecl The values of this structure are set by this call.
Returns
  • True if find the element, False otherwise.

public int getElementDeclIndex (QName elementDeclQName)

Returns the element decl index.

Parameters
elementDeclQName qualilfied name of the element

public int getElementDeclIndex (String elementDeclName)

getElementDeclIndex

Returns
  • index of the elementDeclName in scope

public boolean getElementDeclIsExternal (int elementDeclIndex)

Returns true if the specified element declaration is external.

Parameters
elementDeclIndex The element declaration index.

public boolean getEntityDecl (int entityDeclIndex, XMLEntityDecl entityDecl)

getEntityDecl

Returns
  • true if getEntityDecl was able to fill entityDecl with the contents of the entity with index entityDeclIndex

public int getEntityDeclIndex (String entityDeclName)

getEntityDeclIndex

Returns
  • the index of the EntityDecl

public int getFirstAttributeDeclIndex (int elementDeclIndex)

getFirstAttributeDeclIndex

Returns
  • index of the first attribute for element declaration elementDeclIndex

public int getFirstElementDeclIndex ()

Returns the index of the first element declaration. This index is then used to query more information about the element declaration.

public XMLGrammarDescription getGrammarDescription ()

get the XMLGrammarDescription associated with this object

public int getNextAttributeDeclIndex (int attributeDeclIndex)

getNextAttributeDeclIndex

Returns
  • index of the next attribute of the attribute at attributeDeclIndex

public int getNextElementDeclIndex (int elementDeclIndex)

Returns the next index of the element declaration following the specified element declaration.

Parameters
elementDeclIndex The element declaration index.

public boolean getNotationDecl (int notationDeclIndex, XMLNotationDecl notationDecl)

getNotationDecl

Returns
  • return true of getNotationDecl can fill notationDecl with information about the notation at notationDeclIndex.

public int getNotationDeclIndex (String notationDeclName)

getNotationDeclIndex

Returns
  • the index if found a notation with the name, otherwise -1.

public SymbolTable getSymbolTable ()

Returns the symbol table.

public void ignoredCharacters (XMLString text, Augmentations augs)

Characters within an IGNORE conditional section.

Parameters
text The ignored text.
augs Additional information that may include infoset augmentations.
Throws
XNIException

public void internalEntityDecl (String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)

An internal entity declaration.

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
XNIException Thrown by handler to signal an error.

public boolean isCDATAAttribute (QName elName, 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

public boolean isEntityDeclared (String name)

Query method to check if entity with this name was declared.

Returns
  • true if name is a declared entity

public boolean isEntityUnparsed (String name)

Query method to check if entity is unparsed.

Returns
  • true if name is an unparsed entity

public boolean isNamespaceAware ()

Returns true if this grammar is namespace aware.

public void notationDecl (String name, XMLResourceIdentifier identifier, Augmentations augs)

A notation declaration

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
XNIException Thrown by handler to signal an error.

public void occurrence (short occurrence, Augmentations augs)

The occurrence count for a child in a children content model or for the mixed content model group.

Parameters
occurrence The occurrence count for the last element or group.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void pcdata (Augmentations augs)

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().

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void printAttributes (int elementDeclIndex)

public void printElements ()

public void processingInstruction (String target, XMLString data, Augmentations augs)

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.

Parameters
target The target.
data The data or null if none specified.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void separator (short separator, Augmentations augs)

The separator between choices or sequences of a mixed or children content model.

Parameters
separator The type of children separator.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void setDTDContentModelSource (XMLDTDContentModelSource source)

public void setDTDSource (XMLDTDSource source)

public void startAttlist (String elementName, Augmentations augs)

The start of an attribute list.

Parameters
elementName The name of the element that this attribute list is associated with.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void startConditional (short type, Augmentations augs)

The start of a conditional section.

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
XNIException Thrown by handler to signal an error.

public void startContentModel (String elementName, Augmentations augs)

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.

Parameters
elementName The name of the element.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void startDTD (XMLLocator locator, Augmentations augs)

The start of the DTD.

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
XNIException Thrown by handler to signal an error.

public void startExternalSubset (XMLResourceIdentifier identifier, Augmentations augs)

The start of the DTD external subset.

Parameters
identifier The resource identifier.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void startGroup (Augmentations augs)

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.

Parameters
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public void startParameterEntity (String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)

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.

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
XNIException Thrown by handler to signal an error.

public void textDecl (String version, String encoding, Augmentations augs)

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.

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
XNIException Thrown by handler to signal an error.

public void unparsedEntityDecl (String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)

An unparsed entity declaration.

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
XNIException Thrown by handler to signal an error.

Protected Methods

protected int addContentSpecNode (short nodeType, 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

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

protected void addContentSpecToElement (XMLElementDecl elementDecl)

Adds the content spec to the given element declaration.

protected int addUniqueLeafNode (String elementName)

create an XMLContentSpec for a leaf

Parameters
elementName the name (Element) for the node
Returns
  • handle to the newly create XMLContentSpec

protected int createAttributeDecl ()

protected int createContentSpec ()

protected int createElementDecl ()

protected int createEntityDecl ()

protected int createNotationDecl ()

protected ContentModelValidator getElementContentModelValidator (int elementDeclIndex)

getElementContentModelValidator

Returns
  • its ContentModelValidator if any.

protected void initializeContentModelStack ()

Initialize content model stack.

protected void putElementNameMapping (QName name, int scope, int elementDeclIndex)

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

protected void setContentSpec (int contentSpecIndex, XMLContentSpec contentSpec)

protected void setContentSpecIndex (int elementDeclIndex, int contentSpecIndex)

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)