org.apache.xerces.impl.dtd

Class XMLDTDProcessor

public class XMLDTDProcessor extends Object implements XMLComponent, XMLDTDFilter, XMLDTDContentModelFilter

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:

INTERNAL:

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

Version: $Id: XMLDTDProcessor.java,v 1.15 2005/03/07 23:28:41 mrglavas Exp $

Author: Neil Graham, IBM

Field Summary
protected static StringDTD_VALIDATOR
Property identifier: validator .
protected static StringERROR_REPORTER
Property identifier: error reporter.
protected XMLDTDContentModelHandlerfDTDContentModelHandler
DTD content model handler.
protected XMLDTDContentModelSourcefDTDContentModelSource
DTD content model source.
protected DTDGrammarfDTDGrammar
DTD Grammar.
protected XMLDTDHandlerfDTDHandler
DTD handler.
protected XMLDTDSourcefDTDSource
DTD source.
protected booleanfDTDValidation
Validation against only DTD
protected XMLErrorReporterfErrorReporter
Error reporter.
protected DTDGrammarBucketfGrammarBucket
Grammar bucket.
protected XMLGrammarPoolfGrammarPool
protected booleanfInDTDIgnore
True if in an ignore conditional section of the DTD.
protected LocalefLocale
protected SymbolTablefSymbolTable
Symbol table.
protected booleanfValidation
Validation.
protected XMLDTDValidatorfValidator
protected booleanfWarnDuplicateAttdef
warn on duplicate attribute definition, this feature works only when validation is true
protected static StringGRAMMAR_POOL
Property identifier: grammar pool.
protected static StringNOTIFY_CHAR_REFS
Feature identifier: notify character references.
protected static StringPARSER_SETTINGS
protected static StringSYMBOL_TABLE
Property identifier: symbol table.
protected static StringVALIDATION
Feature identifier: validation.
protected static StringWARN_ON_DUPLICATE_ATTDEF
Feature identifier: warn on duplicate attdef
Constructor Summary
XMLDTDProcessor()
Default constructor.
Method Summary
voidany(Augmentations augs)
A content model of ANY.
voidattributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs)
An attribute declaration.
protected static voidcheckStandaloneEntityRef(String name, DTDGrammar grammar, XMLEntityDecl tempEntityDecl, XMLErrorReporter errorReporter)
Check standalone entity reference.
voidcomment(XMLString text, Augmentations augs)
A comment.
voidelement(String elementName, Augmentations augs)
A referenced element in a mixed or children content model.
voidelementDecl(String name, String contentModel, Augmentations augs)
An element declaration.
voidempty(Augmentations augs)
A content model of EMPTY.
voidendAttlist(Augmentations augs)
The end of an attribute list.
voidendConditional(Augmentations augs)
The end of a conditional section.
voidendContentModel(Augmentations augs)
The end of a content model.
voidendDTD(Augmentations augs)
The end of the DTD.
voidendExternalSubset(Augmentations augs)
The end of the DTD external subset.
voidendGroup(Augmentations augs)
The end of a group for mixed or children content models.
voidendParameterEntity(String name, Augmentations augs)
This method notifies the end of a parameter entity.
voidexternalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
An external entity declaration.
XMLDTDContentModelHandlergetDTDContentModelHandler()
Gets the DTD content model handler.
XMLDTDContentModelSourcegetDTDContentModelSource()
XMLDTDHandlergetDTDHandler()
Returns the DTD handler.
XMLDTDSourcegetDTDSource()
BooleangetFeatureDefault(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.
ObjectgetPropertyDefault(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.
voidignoredCharacters(XMLString text, Augmentations augs)
Characters within an IGNORE conditional section.
voidinternalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs)
An internal entity declaration.
protected booleanisValidName(String name)
protected booleanisValidNmtoken(String nmtoken)
voidnotationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs)
A notation declaration
voidoccurrence(short occurrence, Augmentations augs)
The occurrence count for a child in a children content model or for the mixed content model group.
voidpcdata(Augmentations augs)
The appearance of "#PCDATA" within a group signifying a mixed content model.
voidprocessingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction.
voidreset(XMLComponentManager componentManager)
protected voidreset()
voidseparator(short separator, Augmentations augs)
The separator between choices or sequences of a mixed or children content model.
voidsetDTDContentModelHandler(XMLDTDContentModelHandler dtdContentModelHandler)
Sets the DTD content model handler.
voidsetDTDContentModelSource(XMLDTDContentModelSource source)
voidsetDTDHandler(XMLDTDHandler dtdHandler)
Sets the DTD handler.
voidsetDTDSource(XMLDTDSource source)
voidsetFeature(String featureId, boolean state)
Sets the state of a feature.
voidsetProperty(String propertyId, Object value)
Sets the value of a property.
voidstartAttlist(String elementName, Augmentations augs)
The start of an attribute list.
voidstartConditional(short type, Augmentations augs)
The start of a conditional section.
voidstartContentModel(String elementName, Augmentations augs)
The start of a content model.
voidstartDTD(XMLLocator locator, Augmentations augs)
The start of the DTD.
voidstartExternalSubset(XMLResourceIdentifier identifier, Augmentations augs)
The start of the DTD external subset.
voidstartGroup(Augmentations augs)
A start of either a mixed or children content model.
voidstartParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies of the start of a parameter entity.
voidtextDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity.
voidunparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs)
An unparsed entity declaration.

Field Detail

DTD_VALIDATOR

protected static final String DTD_VALIDATOR
Property identifier: validator .

ERROR_REPORTER

protected static final String ERROR_REPORTER
Property identifier: error reporter.

fDTDContentModelHandler

protected XMLDTDContentModelHandler fDTDContentModelHandler
DTD content model handler.

fDTDContentModelSource

protected XMLDTDContentModelSource fDTDContentModelSource
DTD content model source.

fDTDGrammar

protected DTDGrammar fDTDGrammar
DTD Grammar.

fDTDHandler

protected XMLDTDHandler fDTDHandler
DTD handler.

fDTDSource

protected XMLDTDSource fDTDSource
DTD source.

fDTDValidation

protected boolean fDTDValidation
Validation against only DTD

fErrorReporter

protected XMLErrorReporter fErrorReporter
Error reporter.

fGrammarBucket

protected DTDGrammarBucket fGrammarBucket
Grammar bucket.

fGrammarPool

protected XMLGrammarPool fGrammarPool

fInDTDIgnore

protected boolean fInDTDIgnore
True if in an ignore conditional section of the DTD.

fLocale

protected Locale fLocale

fSymbolTable

protected SymbolTable fSymbolTable
Symbol table.

fValidation

protected boolean fValidation
Validation.

fValidator

protected XMLDTDValidator fValidator

fWarnDuplicateAttdef

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

GRAMMAR_POOL

protected static final String GRAMMAR_POOL
Property identifier: grammar pool.

NOTIFY_CHAR_REFS

protected static final String NOTIFY_CHAR_REFS
Feature identifier: notify character references.

PARSER_SETTINGS

protected static final String PARSER_SETTINGS

SYMBOL_TABLE

protected static final String SYMBOL_TABLE
Property identifier: symbol table.

VALIDATION

protected static final String VALIDATION
Feature identifier: validation.

WARN_ON_DUPLICATE_ATTDEF

protected static final String WARN_ON_DUPLICATE_ATTDEF
Feature identifier: warn on duplicate attdef

Constructor Detail

XMLDTDProcessor

public XMLDTDProcessor()
Default constructor.

Method Detail

any

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.

See Also: XMLDTDProcessor XMLDTDProcessor

attributeDecl

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.

checkStandaloneEntityRef

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: name 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.

comment

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.

element

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.

elementDecl

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.

empty

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.

See Also: XMLDTDProcessor XMLDTDProcessor

endAttlist

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.

endConditional

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.

endContentModel

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.

endDTD

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.

endExternalSubset

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.

endGroup

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.

endParameterEntity

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.

externalEntityDecl

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.

getDTDContentModelHandler

public XMLDTDContentModelHandler getDTDContentModelHandler()
Gets the DTD content model handler.

Returns: dtdContentModelHandler The DTD content model handler.

getDTDContentModelSource

public XMLDTDContentModelSource getDTDContentModelSource()

getDTDHandler

public XMLDTDHandler getDTDHandler()
Returns the DTD handler.

Returns: The DTD handler.

getDTDSource

public XMLDTDSource getDTDSource()

getFeatureDefault

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.

Since: Xerces 2.2.0

getPropertyDefault

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.

Since: Xerces 2.2.0

getRecognizedFeatures

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.

getRecognizedProperties

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.

ignoredCharacters

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.

internalEntityDecl

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.

isValidName

protected boolean isValidName(String name)

isValidNmtoken

protected boolean isValidNmtoken(String nmtoken)

notationDecl

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.

occurrence

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.

See Also: XMLDTDProcessor XMLDTDProcessor XMLDTDProcessor

pcdata

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.

See Also: XMLDTDProcessor

processingInstruction

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.

reset

public void reset(XMLComponentManager componentManager)

reset

protected void reset()

separator

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.

See Also: XMLDTDProcessor XMLDTDProcessor

setDTDContentModelHandler

public void setDTDContentModelHandler(XMLDTDContentModelHandler dtdContentModelHandler)
Sets the DTD content model handler.

Parameters: dtdContentModelHandler The DTD content model handler.

setDTDContentModelSource

public void setDTDContentModelSource(XMLDTDContentModelSource source)

setDTDHandler

public void setDTDHandler(XMLDTDHandler dtdHandler)
Sets the DTD handler.

Parameters: dtdHandler The DTD handler.

setDTDSource

public void setDTDSource(XMLDTDSource source)

setFeature

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: SAXNotRecognizedException The component should not throw this exception. SAXNotSupportedException The component should not throw this exception.

setProperty

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: SAXNotRecognizedException The component should not throw this exception. SAXNotSupportedException The component should not throw this exception.

startAttlist

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.

startConditional

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.

See Also: XMLDTDProcessor XMLDTDProcessor

startContentModel

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.

startDTD

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.

startExternalSubset

public void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augs)
The start of the DTD external subset.

Parameters: augs Additional information that may include infoset augmentations.

Throws: XNIException Thrown by handler to signal an error.

startGroup

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.

See Also: XMLDTDProcessor XMLDTDProcessor

startParameterEntity

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.

textDecl

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.

unparsedEntityDecl

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.

Copyright B) 1999-2005 Apache XML Project. All Rights Reserved.