public class

XMLDTDProcessor

extends Object
implements XMLComponent XMLDTDContentModelFilter XMLDTDFilter
java.lang.Object
   ↳ org.apache.xerces.impl.dtd.XMLDTDProcessor
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

The DTD processor. The processor implements a DTD filter: receiving DTD events from the DTD scanner; validating the content and structure; building a grammar, if applicable; and notifying the DTDHandler of the information resulting from the process.

This component requires the following features and properties from the component manager that uses it:

  • http://xml.org/sax/features/namespaces
  • http://apache.org/xml/properties/internal/symbol-table
  • http://apache.org/xml/properties/internal/error-reporter
  • http://apache.org/xml/properties/internal/grammar-pool
  • http://apache.org/xml/properties/internal/datatype-validator-factory
@xerces.internal

Summary

Constants
String DTD_VALIDATOR Property identifier: validator .
String ERROR_REPORTER Property identifier: error reporter.
String GRAMMAR_POOL Property identifier: grammar pool.
String NOTIFY_CHAR_REFS Feature identifier: notify character references.
String PARSER_SETTINGS
String SYMBOL_TABLE Property identifier: symbol table.
String VALIDATION Feature identifier: validation.
String WARN_ON_DUPLICATE_ATTDEF Feature identifier: warn on duplicate attdef
String WARN_ON_UNDECLARED_ELEMDEF Feature identifier: warn on undeclared element referenced in content model.
[Expand]
Inherited Constants
From interface org.apache.xerces.xni.XMLDTDContentModelHandler
From interface org.apache.xerces.xni.XMLDTDHandler
Fields
protected XMLDTDContentModelHandler fDTDContentModelHandler DTD content model handler.
protected XMLDTDContentModelSource fDTDContentModelSource DTD content model source.
protected DTDGrammar fDTDGrammar DTD Grammar.
protected XMLDTDHandler fDTDHandler DTD handler.
protected XMLDTDSource fDTDSource DTD source.
protected boolean fDTDValidation Validation against only DTD
protected XMLErrorReporter fErrorReporter Error reporter.
protected DTDGrammarBucket fGrammarBucket Grammar bucket.
protected XMLGrammarPool fGrammarPool
protected boolean fInDTDIgnore True if in an ignore conditional section of the DTD.
protected Locale fLocale
protected SymbolTable fSymbolTable Symbol table.
protected boolean fValidation Validation.
protected XMLDTDValidator fValidator
protected boolean fWarnDuplicateAttdef warn on duplicate attribute definition, this feature works only when validation is true
protected boolean fWarnOnUndeclaredElemdef warn on undeclared element referenced in content model, this feature only works when valiation is true
Public Constructors
XMLDTDProcessor()
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 a parameter entity.
void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
An external entity declaration.
XMLDTDContentModelHandler getDTDContentModelHandler()
Gets the DTD content model handler.
XMLDTDContentModelSource getDTDContentModelSource()
XMLDTDHandler getDTDHandler()
Returns the DTD handler.
XMLDTDSource getDTDSource()
Boolean getFeatureDefault(String featureId)
Returns the default state for a feature, or null if this component does not want to report a default value for this feature.
Object getPropertyDefault(String propertyId)
Returns the default state for a property, or null if this component does not want to report a default value for this property.
String[] getRecognizedFeatures()
Returns a list of feature identifiers that are recognized by this component.
String[] getRecognizedProperties()
Returns a list of property identifiers that are recognized by this component.
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.
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 processingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction.
void reset(XMLComponentManager componentManager)
Resets the component.
void separator(short separator, Augmentations augs)
The separator between choices or sequences of a mixed or children content model.
void setDTDContentModelHandler(XMLDTDContentModelHandler dtdContentModelHandler)
Sets the DTD content model handler.
void setDTDContentModelSource(XMLDTDContentModelSource source)
void setDTDHandler(XMLDTDHandler dtdHandler)
Sets the DTD handler.
void setDTDSource(XMLDTDSource source)
void setFeature(String featureId, boolean state)
Sets the state of a feature.
void setProperty(String propertyId, Object value)
Sets the value of a property.
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 a parameter 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
static void checkStandaloneEntityRef(String name, DTDGrammar grammar, XMLEntityDecl tempEntityDecl, XMLErrorReporter errorReporter)
Check standalone entity reference.
boolean isValidName(String name)
boolean isValidNmtoken(String nmtoken)
void reset()
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.xerces.xni.XMLDTDContentModelHandler
From interface org.apache.xerces.xni.XMLDTDHandler
From interface org.apache.xerces.xni.parser.XMLComponent
From interface org.apache.xerces.xni.parser.XMLDTDContentModelSource
From interface org.apache.xerces.xni.parser.XMLDTDSource

Constants

protected static final String DTD_VALIDATOR

Property identifier: validator .

Constant Value: "http://apache.org/xml/properties/internal/validator/dtd"

protected static final String ERROR_REPORTER

Property identifier: error reporter.

Constant Value: "http://apache.org/xml/properties/internal/error-reporter"

protected static final String GRAMMAR_POOL

Property identifier: grammar pool.

Constant Value: "http://apache.org/xml/properties/internal/grammar-pool"

protected static final String NOTIFY_CHAR_REFS

Feature identifier: notify character references.

Constant Value: "http://apache.org/xml/features/scanner/notify-char-refs"

protected static final String PARSER_SETTINGS

Constant Value: "http://apache.org/xml/features/internal/parser-settings"

protected static final String SYMBOL_TABLE

Property identifier: symbol table.

Constant Value: "http://apache.org/xml/properties/internal/symbol-table"

protected static final String VALIDATION

Feature identifier: validation.

Constant Value: "http://xml.org/sax/features/validation"

protected static final String WARN_ON_DUPLICATE_ATTDEF

Feature identifier: warn on duplicate attdef

Constant Value: "http://apache.org/xml/features/validation/warn-on-duplicate-attdef"

protected static final String WARN_ON_UNDECLARED_ELEMDEF

Feature identifier: warn on undeclared element referenced in content model.

Constant Value: "http://apache.org/xml/features/validation/warn-on-undeclared-elemdef"

Fields

protected XMLDTDContentModelHandler fDTDContentModelHandler

DTD content model handler.

protected XMLDTDContentModelSource fDTDContentModelSource

DTD content model source.

protected DTDGrammar fDTDGrammar

DTD Grammar.

protected XMLDTDHandler fDTDHandler

DTD handler.

protected XMLDTDSource fDTDSource

DTD source.

protected boolean fDTDValidation

Validation against only DTD

protected XMLErrorReporter fErrorReporter

Error reporter.

protected DTDGrammarBucket fGrammarBucket

Grammar bucket.

protected XMLGrammarPool fGrammarPool

protected boolean fInDTDIgnore

True if in an ignore conditional section of the DTD.

protected Locale fLocale

protected SymbolTable fSymbolTable

Symbol table.

protected boolean fValidation

Validation.

protected XMLDTDValidator fValidator

protected boolean fWarnDuplicateAttdef

warn on duplicate attribute definition, this feature works only when validation is true

protected boolean fWarnOnUndeclaredElemdef

warn on undeclared element referenced in content model, this feature only works when valiation is true

Public Constructors

public XMLDTDProcessor ()

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" or "NOTATION", 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 a parameter entity. Parameter entity names begin with a '%' character.

Parameters
name The name of the parameter 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.
augs Additional information that may include infoset augmentations.
Throws
XNIException Thrown by handler to signal an error.

public XMLDTDContentModelHandler getDTDContentModelHandler ()

Gets the DTD content model handler.

Returns
  • dtdContentModelHandler The DTD content model handler.

public XMLDTDContentModelSource getDTDContentModelSource ()

public XMLDTDHandler getDTDHandler ()

Returns the DTD handler.

Returns
  • The DTD handler.

public XMLDTDSource getDTDSource ()

public Boolean getFeatureDefault (String featureId)

Returns the default state for a feature, or null if this component does not want to report a default value for this feature.

Parameters
featureId The feature identifier.

public Object getPropertyDefault (String propertyId)

Returns the default state for a property, or null if this component does not want to report a default value for this property.

Parameters
propertyId The property identifier.

public String[] getRecognizedFeatures ()

Returns a list of feature identifiers that are recognized by this component. This method may return null if no features are recognized by this component.

public String[] getRecognizedProperties ()

Returns a list of property identifiers that are recognized by this component. This method may return null if no properties are recognized by this component.

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

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 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 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 reset (XMLComponentManager componentManager)

Resets the component. The component can query the component manager about any features and properties that affect the operation of the component.

Parameters
componentManager The component manager.

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 setDTDContentModelHandler (XMLDTDContentModelHandler dtdContentModelHandler)

Sets the DTD content model handler.

Parameters
dtdContentModelHandler The DTD content model handler.

public void setDTDContentModelSource (XMLDTDContentModelSource source)

public void setDTDHandler (XMLDTDHandler dtdHandler)

Sets the DTD handler.

Parameters
dtdHandler The DTD handler.

public void setDTDSource (XMLDTDSource source)

public void setFeature (String featureId, boolean state)

Sets the state of a feature. This method is called by the component manager any time after reset when a feature changes state.

Note: Components should silently ignore features that do not affect the operation of the component.

Parameters
featureId The feature identifier.
state The state of the feature.
Throws
The component should not throw this exception.
The component should not throw this exception.
XMLConfigurationException

public void setProperty (String propertyId, Object value)

Sets the value of a property. This method is called by the component manager any time after reset when a property changes value.

Note: Components should silently ignore properties that do not affect the operation of the component.

Parameters
propertyId The property identifier.
value The value of the property.
Throws
The component should not throw this exception.
The component should not throw this exception.
XMLConfigurationException

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 a parameter entity. The parameter entity name start with a '%' character.

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 startParameterEntity 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 static void checkStandaloneEntityRef (String name, DTDGrammar grammar, XMLEntityDecl tempEntityDecl, XMLErrorReporter errorReporter)

Check standalone entity reference. Made static to make common between the validator and loader.

Parameters
grammar grammar to which entity belongs
tempEntityDecl empty entity declaration to put results in
errorReporter error reporter to send errors to
Throws
XNIException Thrown by application to signal an error.

protected boolean isValidName (String name)

protected boolean isValidNmtoken (String nmtoken)

protected void reset ()