SAX2 extension handler for DTD declaration events.
This module, both source code and documentation, is in the
Public Domain, and comes with NO WARRANTY.
for further information.
This is an optional extension handler for SAX2 to provide more
complete information about DTD declarations in an XML document.
XML readers are not required to recognize this handler, and it
is not part of core-only SAX2 distributions.
Note that data-related DTD declarations (unparsed entities and
notations) are already reported through the DTDHandler interface.
If you are using the declaration handler together with a lexical
handler, all of the events will occur between the
startDTD and the
To set the DeclHandler for an XML reader, use the
with the property name
and an object implementing this interface (or null) as the value.
If the reader does not report declaration events, it will throw a
when you attempt to register the handler.
The content model will consist of the string "EMPTY", the
string "ANY", or a parenthesised group, optionally followed
by an occurrence indicator. The model will be normalized so
that all parameter entities are fully resolved and all whitespace
is removed,and will include the enclosing parentheses. Other
normalization (such as removing redundant parentheses or
simplifying occurrence indicators) is at the discretion of the
Only the effective (first) declaration for an attribute will
be reported. The type will be one of the strings "CDATA",
"ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY",
"ENTITIES", a parenthesized token group with
the separator "|" and all whitespace removed, or the word
"NOTATION" followed by a space followed by a parenthesized
token group with all whitespace removed.
The value will be the value as reported to applications,
appropriately normalized and with entity and character
eName - The name of the associated element.
aName - The name of the attribute.
type - A string representing the attribute type.
mode - A string representing the attribute defaulting mode
("#IMPLIED", "#REQUIRED", or "#FIXED") or null if
none of these applies.
value - A string representing the attribute's default value,
or null if there is none.