- Qt 6.6
- Qt 5 Core Compatibility APIs
- C++ Classes
- QXmlLexicalHandler
- Qt 6.6.3 Reference Documentation

# QXmlLexicalHandler Class

The QXmlLexicalHandler class provides an interface to report the lexical content of XML data. More...

Header: | #include <QXmlLexicalHandler>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: | QT += core5compat
Inherited By: | QXmlDefaultHandler

- List of all members, including inherited members

Note: All functions in this class are reentrant.

## Public Functions

virtual | ~QXmlLexicalHandler()
virtual bool | comment(const QString &ch) = 0
virtual bool | endCDATA() = 0
virtual bool | endDTD() = 0
virtual bool | endEntity(const QString &name) = 0
virtual QString | errorString() const = 0
virtual bool | startCDATA() = 0
virtual bool | startDTD(const QString &name, const QString &publicId, const QString &systemId) = 0
virtual bool | startEntity(const QString &name) = 0

## Detailed Description

The events in the lexical handler apply to the entire document, not just to the document element, and all lexical handler events appear between the content handler's startDocument and endDocument events.

You can set the lexical handler with QXmlReader::setLexicalHandler().

This interface's design is based on the SAX2 extension LexicalHandler.

The interface provides the startDTD(), endDTD(), startEntity(), endEntity(), startCDATA(), endCDATA() and comment() functions.

See also QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, and QXmlErrorHandler.

## Member Function Documentation

### `[virtual noexcept]` QXmlLexicalHandler::~QXmlLexicalHandler()

Destroys the lexical handler.

### `[pure virtual]` bool QXmlLexicalHandler::comment(const QString &ch)

The reader calls this function to report an XML comment anywhere in the document. It reports the text of the comment in ch.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

### `[pure virtual]` bool QXmlLexicalHandler::endCDATA()

The reader calls this function to report the end of a CDATA section.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startCDATA() and QXmlContentHandler::characters().

### `[pure virtual]` bool QXmlLexicalHandler::endDTD()

The reader calls this function to report the end of a DTD declaration, if any.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startDTD().

### `[pure virtual]` bool QXmlLexicalHandler::endEntity(const QString &name)

The reader calls this function to report the end of an entity called name.

For every startEntity() call, there is a corresponding endEntity() call. The calls to startEntity() and endEntity() are properly nested.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startEntity(), QXmlContentHandler::skippedEntity(), and QXmlSimpleReader::setFeature().

### `[pure virtual]` QString QXmlLexicalHandler::errorString() const

The reader calls this function to get an error string if any of the handler functions returns `false`.

### `[pure virtual]` bool QXmlLexicalHandler::startCDATA()

The reader calls this function to report the start of a CDATA section. The content of the CDATA section is reported through the QXmlContentHandler::characters() function. This function is intended only to report the boundary.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endCDATA().

### `[pure virtual]` bool QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)

The reader calls this function to report the start of a DTD declaration, if any. It reports the name of the document type in name, the public identifier in publicId and the system identifier in systemId.

If the public identifier is missing, publicId is set to an empty string. If the system identifier is missing, systemId is set to an empty string. Note that it is not valid XML to have a public identifier but no system identifier; in such cases a parse error will occur.

All declarations reported through QXmlDTDHandler or QXmlDeclHandler appear between the startDTD() and endDTD() calls.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endDTD().

### `[pure virtual]` bool QXmlLexicalHandler::startEntity(const QString &name)

The reader calls this function to report the start of an entity called name.

Note that if the entity is unknown, the reader reports it through QXmlContentHandler::skippedEntity() and not through this function.

If this function returns `false` the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endEntity() and QXmlSimpleReader::setFeature().