Sur cette page

QXmlDefaultHandler Class

La classe QXmlDefaultHandler fournit une implémentation par défaut de toutes les classes de gestionnaires XML. En savoir plus...

En-tête : #include <QXmlDefaultHandler>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake : QT += core5compat
Hérite de :QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, et QXmlDeclHandler

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

Fonctions publiques réimplémentées

virtual bool attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value) override
virtual bool characters(const QString &ch) override
virtual bool comment(const QString &ch) override
virtual bool endCDATA() override
virtual bool endDTD() override
virtual bool endDocument() override
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override
virtual bool endEntity(const QString &name) override
virtual bool endPrefixMapping(const QString &prefix) override
virtual bool error(const QXmlParseException &exception) override
virtual QString errorString() const override
virtual bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool fatalError(const QXmlParseException &exception) override
virtual bool ignorableWhitespace(const QString &ch) override
virtual bool internalEntityDecl(const QString &name, const QString &value) override
virtual bool notationDecl(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool processingInstruction(const QString &target, const QString &data) override
virtual bool resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret) override
virtual void setDocumentLocator(QXmlLocator *locator) override
virtual bool skippedEntity(const QString &name) override
virtual bool startCDATA() override
virtual bool startDTD(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool startDocument() override
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) override
virtual bool startEntity(const QString &name) override
virtual bool startPrefixMapping(const QString &prefix, const QString &uri) override
virtual bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName) override
virtual bool warning(const QXmlParseException &exception) override

Description détaillée

Cette classe regroupe les fonctionnalités des classes de gestionnaires spécialisées, ce qui en fait un point de départ pratique pour l'implémentation de gestionnaires personnalisés destinés aux sous-classes de ` QXmlReader`, en particulier ` QXmlSimpleReader`. Les fonctions virtuelles de chacune des classes de base sont réimplémentées dans cette classe, offrant ainsi un comportement par défaut adapté à de nombreux cas courants. En créant une sous-classe de cette classe et en redéfinissant ces fonctions, vous pouvez vous concentrer sur la mise en œuvre des parties du gestionnaire pertinentes pour votre application.

Il faut indiquer au lecteur XML quel gestionnaire utiliser pour les différents types d’événements lors de l’analyse. Cela signifie que, bien que `QXmlDefaultHandler` fournisse des implémentations par défaut des fonctions héritées de toutes ses classes de base, il est toujours possible d’utiliser des gestionnaires spécialisés pour des types d’événements particuliers.

Par exemple, `QXmlDefaultHandler` est une sous-classe à la fois de ` QXmlContentHandler ` et de ` QXmlErrorHandler` ; ainsi, en créant une sous-classe de celle-ci, nous pouvons utiliser le même gestionnaire pour les deux fonctions de lecture suivantes :

    xmlReader.setContentHandler(handler);
    xmlReader.setErrorHandler(handler);

Étant donné que le lecteur signalera les erreurs d’analyse au gestionnaire, il est nécessaire de réimplémenter QXmlErrorHandler::fatalError() si, par exemple, nous souhaitons interrompre l’analyse lorsqu’une telle erreur se produit :

bool Handler::fatalError (const QXmlParseException& exception)
{
    qWarning() << "Fatal error on line" << exception.lineNumber()
              << ", colonne" << exception.columnNumber() << ':'
               << exception.message();

    return false;
}

La fonction ci-dessus renvoie ` false`, ce qui indique au lecteur d'arrêter l'analyse. Pour continuer à utiliser le même lecteur, il est nécessaire de créer une nouvelle instance de gestionnaire et de configurer le lecteur pour qu'il l'utilise de la manière décrite ci-dessus.

Il est utile d’examiner certaines des fonctions héritées par `QXmlDefaultHandler` et de réfléchir aux raisons pour lesquelles elles pourraient être réimplémentées dans un gestionnaire personnalisé. Les gestionnaires personnalisés réimplémentent généralement ` QXmlContentHandler::startDocument()` afin de préparer le gestionnaire à un nouveau contenu. Les éléments du document et le texte qu’ils contiennent peuvent être traités en réimplémentant les méthodes ` QXmlContentHandler::startElement()`, ` QXmlContentHandler::endElement()` et ` QXmlContentHandler::characters()`. Vous pouvez également réimplémenter la méthode ` QXmlContentHandler::endDocument()` pour effectuer des opérations de finalisation ou de validation sur le contenu une fois le document entièrement lu.

Voir également QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler et QXmlLexicalHandler.

Documentation sur les fonctions membres

QXmlDefaultHandler::QXmlDefaultHandler()

Crée un gestionnaire destiné à être utilisé avec les sous-classes de ` QXmlReader`.

[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()

Supprime le gestionnaire.

[override virtual] bool QXmlDefaultHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)

Réimplémente : QXmlDeclHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::characters(const QString &ch)

Réimplémente : QXmlContentHandler::characters(const QString &ch).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::comment(const QString &ch)

Réimplémente : QXmlLexicalHandler::comment(const QString &ch).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::endCDATA()

Réimplémente : ` QXmlLexicalHandler::endCDATA()`.

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::endDTD()

Réimplémente : QXmlLexicalHandler::endDTD().

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::endDocument()

Réimplémente : QXmlContentHandler::endDocument().

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)

Réimplémente : QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::endEntity(const QString &name)

Réimplémente : QXmlLexicalHandler::endEntity(const QString &name).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::endPrefixMapping(const QString &prefix)

Réimplémente : QXmlContentHandler::endPrefixMapping(const QString &prefix).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::error(const QXmlParseException &exception)

Réimplémente : QXmlErrorHandler::error(const QXmlParseException &exception).

Cette réimplémentation ne fait rien.

[override virtual] QString QXmlDefaultHandler::errorString() const

Réimplémente : QXmlContentHandler::errorString() const.

Renvoie la chaîne d'erreur par défaut.

[override virtual] bool QXmlDefaultHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)

Réimplémente : QXmlDeclHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::fatalError(const QXmlParseException &exception)

Réimplémente : QXmlErrorHandler::fatalError(const QXmlParseException &exception).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::ignorableWhitespace(const QString &ch)

Réimplémente : QXmlContentHandler::ignorableWhitespace(const QString &ch).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::internalEntityDecl(const QString &name, const QString &value)

Réimplémente : QXmlDeclHandler::internalEntityDecl(const QString &name, const QString &value).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)

Réimplémente : QXmlDTDHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::processingInstruction(const QString &target, const QString &data)

Réimplémente : QXmlContentHandler::processingInstruction(const QString &target, const QString &data).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)

Réimplémente : QXmlEntityResolver::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret).

Définit ret sur nullptr, afin que le lecteur utilise l'identifiant système fourni dans le document XML.

[override virtual] void QXmlDefaultHandler::setDocumentLocator(QXmlLocator *locator)

Réimplémente : QXmlContentHandler::setDocumentLocator(QXmlLocator *locator).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::skippedEntity(const QString &name)

Réimplémente : QXmlContentHandler::skippedEntity(const QString &name).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::startCDATA()

Réimplémente : QXmlLexicalHandler::startCDATA().

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)

Réimplémentation de : QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::startDocument()

Réimplémente : ` QXmlContentHandler::startDocument()`.

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)

Réimplémente : QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::startEntity(const QString &name)

Réimplémente : QXmlLexicalHandler::startEntity(const QString &name).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::startPrefixMapping(const QString &prefix, const QString &uri)

Réimplémente : QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName)

Réimplémente : QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName).

Cette réimplémentation ne fait rien.

[override virtual] bool QXmlDefaultHandler::warning(const QXmlParseException &exception)

Réimplémente : QXmlErrorHandler::warning(const QXmlParseException &exception).

Cette réimplémentation ne fait rien.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.