Interface Summary : IBufferedDTDHandler

Receive notification of basic DTD-related events.
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY.

If a SAX application needs information about notations and unparsed entities, then the application implements this interface and registers an instance with the SAX parser using the parser's setDTDHandler method. The parser uses the instance to report notation and unparsed entity declarations to the application.

Note that this interface includes only those DTD events that the XML recommendation requires processors to report: notation and unparsed entity declarations.

The SAX parser may report these events in any order, regardless of the order in which the notations and unparsed entities were declared; however, all DTD events must be reported after the document handler's startDocument event, and before the first startElement event. If the IBufferedLexicalHandler is used, these events must also be reported before the endDTD event.)

It is up to the application to store the information for future use (perhaps in a hash table or object tree). If the application encounters attributes of type "NOTATION", "ENTITY", or "ENTITIES", it can use the information that it obtained through this interface to find the entity and/or notation corresponding with the attribute value.

For reasons of generality and efficiency, strings that are returned from the interface are declared as pointers (PSAXChar) and lengths. This requires that the model use procedural out parameters rather than functions as in the original interfaces.


Since : SAX 1.0
See : IBufferedXMLReader.setDTDHandler

Methods

procedure notationDecl(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)
procedure unparsedEntityDecl(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)


procedure notationDecl( name : PSAXChar; nameLength : Integer; publicId : PSAXChar; publicIdLength : Integer; systemId : PSAXChar; systemIdLength : Integer);

Receive notification of a notation declaration event.

It is up to the application to record the notation for later reference, if necessary; notations may appear as attribute values and in unparsed entity declarations, and are sometime used with processing instruction target names.

At least one of publicId and systemId must be non-empty. If a system identifier is present, and it is a URL, the SAX parser must resolve it fully before passing it to the application through this event.

There is no guarantee that the notation declaration will be reported before any unparsed entities that use it.


Parameter : name The notation name.
Parameter : nameLength The length of the name buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : publicId The notation's public identifier, or empty if none was given.
Parameter : publicIdLength The length of the publicId buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : systemId The notation's system identifier, or empty if none was given.
Parameter : systemIdLength The length of the systemId buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Exception : ESAXException Any SAX exception.
See : IBufferedDTDHandler.unparsedEntityDecl
See : IBufferedAttributes

Top


procedure unparsedEntityDecl( name : PSAXChar; nameLength : Integer; publicId : PSAXChar; publicIdLength : Integer; systemId : PSAXChar; systemIdLength : Integer; notationName : PSAXChar; notationNameLength : Integer);

Receive notification of an unparsed entity declaration event.

Note that the notation name corresponds to a notation reported by the notationDecl event. It is up to the application to record the entity for later reference, if necessary; unparsed entities may appear as attribute values.

If the system identifier is a URL, the parser must resolve it fully before passing it to the application.


Exception : ESAXException Any SAX exception.
Parameter : name The unparsed entity's name.
Parameter : nameLength The length of the name buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : publicId The entity's public identifier, or empty if none was given.
Parameter : publicIdLength The length of the publicId buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : systemId The entity's system identifier.
Parameter : systemIdLength The length of the systemId buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
Parameter : notationName The name of the associated notation.
Parameter : notationNameLength The length of the notationNameLength buffer. The value may be -1 which indicates that the buffer is null-terminated. If the value is 0 then the buffer may be nil.
See : IBufferedDTDHandler.notationDecl
See : IBufferedAttributes

Top