ISAXLexicalHandler Interface
The ISAXLexicalHandler
/IVBSAXLexicalHandler
interface enables a Simple API for XML (SAX2) application to implement an optional extension handler for receiving information from the SAX2 reader, such as comments, the document type declaration, CDATA sections, and the start and end of an entity within a document. The events in the LexicalHandler
apply to the entire document, not just to the document elements. All LexicalHandler
events must appear between the startDocument
and endDocument
events of the ContentHandler
.
To set the LexicalHandler
for the reader, use the putProperty
method with the property ID "http://xml.org/sax/properties/lexical-handler"
.
Methods
comment | Receives XML comments from either inside or outside the document element, including comments in the external document type definition (DTD) or schema subset. |
endCDATA | Receives the end of a character data (CDATA) section. |
startCDATA | Receives the beginning of a CDATA section. |
endDTD | Receives the end of a document type declaration. |
startDTD | Receives the beginning of a document type declaration. |
endEntity | Indicates that the reader has opened and finished processing an externally defined entity in the content of the document. |
startEntity | Indicates that the reader has opened and started to process an internally or externally defined entity in the content of the document. |
The IVBSAXLexicalHandler
interface includes a series of methods that are invoked by the reader during the parsing operation. The reader passes the appropriate information to the method's parameters. To perform processing for a method, you simply add code to the method in the LexicalHandler
implementation. In general, it's rare that you would call these methods yourself from within the LexicalHandler
. The syntax shown for the IVBSAXLexicalHandler
interface focuses on implementation rather than usage.
Important
The SAX2 reader passes string values to IVBSAXContentHandler
methods by reference, rather than by value.
The code to register the LexicalHandler
may look like the following.
... SAXXMLReader * r = ...
SAXLexicalHandler * lh = new SAXLexicalHandler ();
r->putProperty("http://xml.org/sax/properties/lexical-handler",_variant_t(lh));
Requirements
Implementation:
msxml3.dll (MSXML 3.0)
msxml6.dll (MSXML 6.0)
Header and LIB files: msxml2.h, msxml2.lib, msxml6.h, msxml6.lib
Versioning
Implemented in: MSXML 3.0 and later