org.apache.xerces.impl.dtd

## Class XMLDTDLoader

- java.lang.Object
- - org.apache.xerces.impl.dtd.XMLDTDProcessor
  - - org.apache.xerces.impl.dtd.XMLDTDLoader

All Implemented Interfaces:
  org.apache.xerces.xni.grammars.XMLGrammarLoader, org.apache.xerces.xni.parser.XMLComponent, org.apache.xerces.xni.parser.XMLDTDContentModelFilter, org.apache.xerces.xni.parser.XMLDTDContentModelSource, org.apache.xerces.xni.parser.XMLDTDFilter, org.apache.xerces.xni.parser.XMLDTDSource, org.apache.xerces.xni.XMLDTDContentModelHandler, org.apache.xerces.xni.XMLDTDHandler

Direct Known Subclasses:
  XML11DTDProcessor

    public class XMLDTDLoader
    extends XMLDTDProcessor
    implements org.apache.xerces.xni.grammars.XMLGrammarLoader

The DTD loader. The loader knows how to build grammars from XMLInputSources. It extends the DTD processor in order to do this; it's a separate class because DTD processors don't need to know how to talk to the outside world in their role as instance-document helpers.

This component requires the following features and properties. It know ho to set them if no one else does:from the

- 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

Version:
  $Id: XMLDTDLoader.java 713638 2008-11-13 04:42:18Z mrglavas $
Author:
  Neil Graham, IBM, Michael Glavassevich, IBM

# INTERNAL:

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

### Field Summary

Fields
`protected static java.lang.String` `BALANCE_SYNTAX_TREES` Feature identifier: balance syntax trees.
`static java.lang.String` `ENTITY_RESOLVER` Property identifier: entity resolver.
`protected static java.lang.String` `ERROR_HANDLER` Property identifier: error handler.
`protected XMLDTDScannerImpl` `fDTDScanner`
`protected XMLEntityManager` `fEntityManager`
`protected org.apache.xerces.xni.parser.XMLEntityResolver` `fEntityResolver` Entity resolver .
`protected java.util.Locale` `fLocale`
`static java.lang.String` `LOCALE` Property identifier: locale.
`protected static java.lang.String` `STANDARD_URI_CONFORMANT_FEATURE` Feature identifier: standard uri conformant feature.

### Fields inherited from class org.apache.xerces.impl.dtd.XMLDTDProcessor

`DTD_VALIDATOR, ERROR_REPORTER, fDTDContentModelHandler, fDTDContentModelSource, fDTDGrammar, fDTDHandler, fDTDSource, fDTDValidation, fErrorReporter, fGrammarBucket, fGrammarPool, fInDTDIgnore, fSymbolTable, fValidation, fValidator, fWarnDuplicateAttdef, fWarnOnUndeclaredElemdef, GRAMMAR_POOL, NOTIFY_CHAR_REFS, PARSER_SETTINGS, SYMBOL_TABLE, VALIDATION, WARN_ON_DUPLICATE_ATTDEF, WARN_ON_UNDECLARED_ELEMDEF`

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

Constructors
Constructor and Description
`XMLDTDLoader()` Deny default construction; we need a SymtolTable!
`XMLDTDLoader(SymbolTable symbolTable)`
`XMLDTDLoader(SymbolTable symbolTable, org.apache.xerces.xni.grammars.XMLGrammarPool grammarPool)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected XMLDTDScannerImpl` `createDTDScanner(SymbolTable symbolTable, XMLErrorReporter errorReporter, XMLEntityManager entityManager)`
`org.apache.xerces.xni.parser.XMLEntityResolver` `getEntityResolver()` Returns the registered entity resolver.
`org.apache.xerces.xni.parser.XMLErrorHandler` `getErrorHandler()` Returns the registered error handler.
`boolean` `getFeature(java.lang.String featureId)` Returns the state of a feature.
`java.util.Locale` `getLocale()` Return the Locale the XMLGrammarLoader is using.
`java.lang.Object` `getProperty(java.lang.String propertyId)` Returns the state of a property.
`java.lang.String[]` `getRecognizedFeatures()` Returns a list of feature identifiers that are recognized by this component.
`java.lang.String[]` `getRecognizedProperties()` Returns a list of property identifiers that are recognized by this component.
`protected short` `getScannerVersion()`
`org.apache.xerces.xni.grammars.Grammar` `loadGrammar(org.apache.xerces.xni.parser.XMLInputSource source)` Returns a Grammar object by parsing the contents of the entity pointed to by source.
`void` `loadGrammarWithContext(XMLDTDValidator validator, java.lang.String rootName, java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId, java.lang.String internalSubset)` Parse a DTD internal and/or external subset and insert the content into the existing DTD grammar owned by the given DTDValidator.
`protected void` `reset()`
`void` `setEntityResolver(org.apache.xerces.xni.parser.XMLEntityResolver entityResolver)` Sets the entity resolver.
`void` `setErrorHandler(org.apache.xerces.xni.parser.XMLErrorHandler errorHandler)` Sets the error handler.
`void` `setFeature(java.lang.String featureId, boolean state)` Sets the state of a feature.
`void` `setLocale(java.util.Locale locale)` Set the locale to use for messages.
`void` `setProperty(java.lang.String propertyId, java.lang.Object value)` Sets the value of a property.

### Methods inherited from class org.apache.xerces.impl.dtd.XMLDTDProcessor

`any, attributeDecl, checkStandaloneEntityRef, comment, element, elementDecl, empty, endAttlist, endConditional, endContentModel, endDTD, endExternalSubset, endGroup, endParameterEntity, externalEntityDecl, getDTDContentModelHandler, getDTDContentModelSource, getDTDHandler, getDTDSource, getFeatureDefault, getPropertyDefault, ignoredCharacters, internalEntityDecl, isValidName, isValidNmtoken, notationDecl, occurrence, pcdata, processingInstruction, reset, separator, setDTDContentModelHandler, setDTDContentModelSource, setDTDHandler, setDTDSource, startAttlist, startConditional, startContentModel, startDTD, startExternalSubset, startGroup, startParameterEntity, textDecl, unparsedEntityDecl`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### STANDARD_URI_CONFORMANT_FEATURE

    protected static final java.lang.String STANDARD_URI_CONFORMANT_FEATURE

Feature identifier: standard uri conformant feature.

See Also:
  Constant Field Values

#### BALANCE_SYNTAX_TREES

    protected static final java.lang.String BALANCE_SYNTAX_TREES

Feature identifier: balance syntax trees.

See Also:
  Constant Field Values

#### ERROR_HANDLER

    protected static final java.lang.String ERROR_HANDLER

Property identifier: error handler.

See Also:
  Constant Field Values

#### ENTITY_RESOLVER

    public static final java.lang.String ENTITY_RESOLVER

Property identifier: entity resolver.

See Also:
  Constant Field Values

#### LOCALE

    public static final java.lang.String LOCALE

Property identifier: locale.

See Also:
  Constant Field Values

#### fEntityResolver

    protected org.apache.xerces.xni.parser.XMLEntityResolver fEntityResolver

Entity resolver .

#### fDTDScanner

    protected XMLDTDScannerImpl fDTDScanner

#### fEntityManager

    protected XMLEntityManager fEntityManager

#### fLocale

    protected java.util.Locale fLocale

### Constructor Detail

#### XMLDTDLoader

    public XMLDTDLoader()

Deny default construction; we need a SymtolTable!

#### XMLDTDLoader

    public XMLDTDLoader(SymbolTable symbolTable)

#### XMLDTDLoader

    public XMLDTDLoader(SymbolTable symbolTable,
                        org.apache.xerces.xni.grammars.XMLGrammarPool grammarPool)

### Method Detail

#### getRecognizedFeatures

    public java.lang.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.

Specified by:
  `getRecognizedFeatures` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Specified by:
  `getRecognizedFeatures` in interface `org.apache.xerces.xni.parser.XMLComponent`
Overrides:
  `getRecognizedFeatures` in class `XMLDTDProcessor`

#### setFeature

    public void setFeature(java.lang.String featureId,
                           boolean state)
                    throws org.apache.xerces.xni.parser.XMLConfigurationException

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.

Specified by:
  `setFeature` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Specified by:
  `setFeature` in interface `org.apache.xerces.xni.parser.XMLComponent`
Overrides:
  `setFeature` in class `XMLDTDProcessor`
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.
  `org.apache.xerces.xni.parser.XMLConfigurationException` - Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.

#### getRecognizedProperties

    public java.lang.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.

Specified by:
  `getRecognizedProperties` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Specified by:
  `getRecognizedProperties` in interface `org.apache.xerces.xni.parser.XMLComponent`
Overrides:
  `getRecognizedProperties` in class `XMLDTDProcessor`

#### getProperty

    public java.lang.Object getProperty(java.lang.String propertyId)
                                 throws org.apache.xerces.xni.parser.XMLConfigurationException

Returns the state of a property.

Specified by:
  `getProperty` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Parameters:
  `propertyId` - The property identifier.
Throws:
  `org.apache.xerces.xni.parser.XMLConfigurationException` - Thrown on configuration error.

#### setProperty

    public void setProperty(java.lang.String propertyId,
                            java.lang.Object value)
                     throws org.apache.xerces.xni.parser.XMLConfigurationException

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.

Specified by:
  `setProperty` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Specified by:
  `setProperty` in interface `org.apache.xerces.xni.parser.XMLComponent`
Overrides:
  `setProperty` in class `XMLDTDProcessor`
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.
  `org.apache.xerces.xni.parser.XMLConfigurationException` - Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.

#### getFeature

    public boolean getFeature(java.lang.String featureId)
                       throws org.apache.xerces.xni.parser.XMLConfigurationException

Returns the state of a feature.

Specified by:
  `getFeature` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Parameters:
  `featureId` - The feature identifier.
Throws:
  `org.apache.xerces.xni.parser.XMLConfigurationException` - Thrown on configuration error.

#### setLocale

    public void setLocale(java.util.Locale locale)

Set the locale to use for messages.

Specified by:
  `setLocale` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Parameters:
  `locale` - The locale object to use for localization of messages.
Throws:
  `org.apache.xerces.xni.XNIException` - Thrown if the parser does not support the specified locale.

#### getLocale

    public java.util.Locale getLocale()

Return the Locale the XMLGrammarLoader is using.

Specified by:
  `getLocale` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`

#### setErrorHandler

    public void setErrorHandler(org.apache.xerces.xni.parser.XMLErrorHandler errorHandler)

Sets the error handler.

Specified by:
  `setErrorHandler` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Parameters:
  `errorHandler` - The error handler.

#### getErrorHandler

    public org.apache.xerces.xni.parser.XMLErrorHandler getErrorHandler()

Returns the registered error handler.

Specified by:
  `getErrorHandler` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`

#### setEntityResolver

    public void setEntityResolver(org.apache.xerces.xni.parser.XMLEntityResolver entityResolver)

Sets the entity resolver.

Specified by:
  `setEntityResolver` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Parameters:
  `entityResolver` - The new entity resolver.

#### getEntityResolver

    public org.apache.xerces.xni.parser.XMLEntityResolver getEntityResolver()

Returns the registered entity resolver.

Specified by:
  `getEntityResolver` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`

#### loadGrammar

    public org.apache.xerces.xni.grammars.Grammar loadGrammar(org.apache.xerces.xni.parser.XMLInputSource source)
                                                       throws java.io.IOException,
                                                              org.apache.xerces.xni.XNIException

Returns a Grammar object by parsing the contents of the entity pointed to by source.

Specified by:
  `loadGrammar` in interface `org.apache.xerces.xni.grammars.XMLGrammarLoader`
Parameters:
  `source` - the location of the entity which forms the starting point of the grammar to be constructed.
Throws:
  `java.io.IOException` - When a problem is encountered reading the entity XNIException When a condition arises (such as a FatalError) that requires parsing of the entity be terminated.
  `org.apache.xerces.xni.XNIException`

#### loadGrammarWithContext

    public void loadGrammarWithContext(XMLDTDValidator validator,
                                       java.lang.String rootName,
                                       java.lang.String publicId,
                                       java.lang.String systemId,
                                       java.lang.String baseSystemId,
                                       java.lang.String internalSubset)
                                throws java.io.IOException,
                                       org.apache.xerces.xni.XNIException

Parse a DTD internal and/or external subset and insert the content into the existing DTD grammar owned by the given DTDValidator.

Throws:
  `java.io.IOException`
  `org.apache.xerces.xni.XNIException`

#### reset

    protected void reset()

Overrides:
  `reset` in class `XMLDTDProcessor`

#### createDTDScanner

    protected XMLDTDScannerImpl createDTDScanner(SymbolTable symbolTable,
                                                 XMLErrorReporter errorReporter,
                                                 XMLEntityManager entityManager)

#### getScannerVersion

    protected short getScannerVersion()