/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.xerces.xni;

import org.apache.xerces.xni.parser.XMLDTDSource;

The DTD handler interface defines callback methods to report information items in the DTD of an XML document. Parser components interested in DTD information implement this interface and are registered as the DTD handler on the DTD source.
Author:Andy Clark, IBM
See Also:
  • XMLDTDContentModelHandler
Version:$Id: XMLDTDHandler.java 447247 2006-09-18 05:23:52Z mrglavas $
/** * The DTD handler interface defines callback methods to report * information items in the DTD of an XML document. Parser components * interested in DTD information implement this interface and are * registered as the DTD handler on the DTD source. * * @see XMLDTDContentModelHandler * * @author Andy Clark, IBM * * @version $Id: XMLDTDHandler.java 447247 2006-09-18 05:23:52Z mrglavas $ */
public interface XMLDTDHandler { // // Constants //
Conditional section: INCLUDE.
See Also:
  • CONDITIONAL_IGNORE
/** * Conditional section: INCLUDE. * * @see #CONDITIONAL_IGNORE */
public static final short CONDITIONAL_INCLUDE = 0;
Conditional section: IGNORE.
See Also:
  • CONDITIONAL_INCLUDE
/** * Conditional section: IGNORE. * * @see #CONDITIONAL_INCLUDE */
public static final short CONDITIONAL_IGNORE = 1; // // XMLDTDHandler methods //
The start of the DTD.
Params:
  • 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.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The start of the DTD. * * @param locator The document locator, or null if the document * location cannot be reported during the parsing of * the document DTD. However, it is <em>strongly</em> * recommended that a locator be supplied that can * at least report the base system identifier of the * DTD. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void startDTD(XMLLocator locator, Augmentations augmentations) throws XNIException;
This method notifies of the start of a parameter entity. The parameter entity name start with a '%' character.
Params:
  • 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).
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * This method notifies of the start of a parameter entity. The parameter * entity name start with a '%' character. * * @param name The name of the parameter entity. * @param identifier The resource identifier. * @param 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). * @param augmentations 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 augmentations) throws XNIException;
Notifies of the presence of a TextDecl line in an entity. If present, this method will be called immediately following the startEntity call.

Note: This method is only called for external parameter entities referenced in the DTD.

Params:
  • version – The XML version, or null if not specified.
  • encoding – The IANA encoding name of the entity.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * Notifies of the presence of a TextDecl line in an entity. If present, * this method will be called immediately following the startEntity call. * <p> * <strong>Note:</strong> This method is only called for external * parameter entities referenced in the DTD. * * @param version The XML version, or null if not specified. * @param encoding The IANA encoding name of the entity. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void textDecl(String version, String encoding, Augmentations augmentations) throws XNIException;
This method notifies the end of a parameter entity. Parameter entity names begin with a '%' character.
Params:
  • name – The name of the parameter entity.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * This method notifies the end of a parameter entity. Parameter entity * names begin with a '%' character. * * @param name The name of the parameter entity. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void endParameterEntity(String name, Augmentations augmentations) throws XNIException;
The start of the DTD external subset.
Params:
  • identifier – The resource identifier.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The start of the DTD external subset. * * @param identifier The resource identifier. * @param augmentations * Additional information that may include infoset * augmentations. * @exception XNIException * Thrown by handler to signal an error. */
public void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augmentations) throws XNIException;
The end of the DTD external subset.
Params:
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The end of the DTD external subset. * * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void endExternalSubset(Augmentations augmentations) throws XNIException;
A comment.
Params:
  • text – The text in the comment.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * A comment. * * @param text The text in the comment. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by application to signal an error. */
public void comment(XMLString text, Augmentations augmentations) throws XNIException;
A processing instruction. Processing instructions consist of a target name and, optionally, text data. The data is only meaningful to the application.

Typically, a processing instruction's data will contain a series of pseudo-attributes. These pseudo-attributes follow the form of element attributes but are not parsed or presented to the application as anything other than text. The application is responsible for parsing the data.

Params:
  • target – The target.
  • data – The data or null if none specified.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * A processing instruction. Processing instructions consist of a * target name and, optionally, text data. The data is only meaningful * to the application. * <p> * Typically, a processing instruction's data will contain a series * of pseudo-attributes. These pseudo-attributes follow the form of * element attributes but are <strong>not</strong> parsed or presented * to the application as anything other than text. The application is * responsible for parsing the data. * * @param target The target. * @param data The data or null if none specified. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void processingInstruction(String target, XMLString data, Augmentations augmentations) throws XNIException;
An element declaration.
Params:
  • name – The name of the element.
  • contentModel – The element content model.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * An element declaration. * * @param name The name of the element. * @param contentModel The element content model. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void elementDecl(String name, String contentModel, Augmentations augmentations) throws XNIException;
The start of an attribute list.
Params:
  • elementName – The name of the element that this attribute list is associated with.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The start of an attribute list. * * @param elementName The name of the element that this attribute * list is associated with. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void startAttlist(String elementName, Augmentations augmentations) throws XNIException;
An attribute declaration.
Params:
  • 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.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * An attribute declaration. * * @param elementName The name of the element that this attribute * is associated with. * @param attributeName The name of the attribute. * @param type The attribute type. This value will be one of * the following: "CDATA", "ENTITY", "ENTITIES", * "ENUMERATION", "ID", "IDREF", "IDREFS", * "NMTOKEN", "NMTOKENS", or "NOTATION". * @param enumeration If the type has the value "ENUMERATION" or * "NOTATION", this array holds the allowed attribute * values; otherwise, this array is null. * @param defaultType The attribute default type. This value will be * one of the following: "#FIXED", "#IMPLIED", * "#REQUIRED", or null. * @param defaultValue The attribute default value, or null if no * default value is specified. * @param nonNormalizedDefaultValue The attribute default value with no normalization * performed, or null if no default value is specified. * @param augmentations 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 augmentations) throws XNIException;
The end of an attribute list.
Params:
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The end of an attribute list. * * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void endAttlist(Augmentations augmentations) throws XNIException;
An internal entity declaration.
Params:
  • 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.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * An internal entity declaration. * * @param name The name of the entity. Parameter entity names start with * '%', whereas the name of a general entity is just the * entity name. * @param text The value of the entity. * @param 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. * @param augmentations 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 augmentations) throws XNIException;
An external entity declaration.
Params:
  • 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.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * An external entity declaration. * * @param name The name of the entity. Parameter entity names start * with '%', whereas the name of a general entity is just * the entity name. * @param identifier An object containing all location information * pertinent to this external entity. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augmentations) throws XNIException;
An unparsed entity declaration.
Params:
  • name – The name of the entity.
  • identifier – An object containing all location information pertinent to this unparsed entity declaration.
  • notation – The name of the notation.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * An unparsed entity declaration. * * @param name The name of the entity. * @param identifier An object containing all location information * pertinent to this unparsed entity declaration. * @param notation The name of the notation. * @param augmentations 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 augmentations) throws XNIException;
A notation declaration
Params:
  • name – The name of the notation.
  • identifier – An object containing all location information pertinent to this notation.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * A notation declaration * * @param name The name of the notation. * @param identifier An object containing all location information * pertinent to this notation. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augmentations) throws XNIException;
The start of a conditional section.
Params:
  • type – The type of the conditional section. This value will either be CONDITIONAL_INCLUDE or CONDITIONAL_IGNORE.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
See Also:
/** * The start of a conditional section. * * @param type The type of the conditional section. This value will * either be CONDITIONAL_INCLUDE or CONDITIONAL_IGNORE. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. * * @see #CONDITIONAL_INCLUDE * @see #CONDITIONAL_IGNORE */
public void startConditional(short type, Augmentations augmentations) throws XNIException;
Characters within an IGNORE conditional section.
Params:
  • text – The ignored text.
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * Characters within an IGNORE conditional section. * * @param text The ignored text. * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void ignoredCharacters(XMLString text, Augmentations augmentations) throws XNIException;
The end of a conditional section.
Params:
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The end of a conditional section. * * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void endConditional(Augmentations augmentations) throws XNIException;
The end of the DTD.
Params:
  • augmentations – Additional information that may include infoset augmentations.
Throws:
/** * The end of the DTD. * * @param augmentations Additional information that may include infoset * augmentations. * * @throws XNIException Thrown by handler to signal an error. */
public void endDTD(Augmentations augmentations) throws XNIException; // set the source of this handler public void setDTDSource(XMLDTDSource source); // return the source from which this handler derives its events public XMLDTDSource getDTDSource(); } // interface XMLDTDHandler