QXmlDefaultHandler Class
La classe QXmlDefaultHandler fournit une implémentation par défaut de toutes les classes de gestionnaires XML. Plus d'informations...
| En-tête : | #include <QXmlDefaultHandler> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core5Compat)target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake : | QT += core5compat |
| Hérite : | QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, et QXmlDeclHandler |
Remarque : toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| QXmlDefaultHandler() | |
| virtual | ~QXmlDefaultHandler() |
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 ¬ationName) override |
| virtual bool | warning(const QXmlParseException &exception) override |
Description détaillée
Cette classe rassemble les caractéristiques des classes de gestionnaires spécialisés, ce qui en fait un point de départ pratique pour l'implémentation de gestionnaires personnalisés pour les sous-classes de QXmlReader, en particulier QXmlSimpleReader. Les fonctions virtuelles de chacune des classes de base sont réimplémentées dans cette classe, ce qui permet d'obtenir un comportement par défaut judicieux dans de nombreux cas courants. En sous-classant cette classe et en surchargeant ces fonctions, vous pouvez vous concentrer sur l'implémentation des parties du gestionnaire pertinentes pour votre application.
Le lecteur XML doit savoir quel gestionnaire utiliser pour les différents types d'événements au cours de l'analyse syntaxique. Cela signifie que, bien que QXmlDefaultHandler fournisse des implémentations par défaut de fonctions héritées de toutes ses classes de base, nous pouvons toujours utiliser des gestionnaires spécialisés pour des types d'événements particuliers.
Par exemple, QXmlDefaultHandler sous-classe à la fois QXmlContentHandler et QXmlErrorHandler, de sorte qu'en le sous-classant, 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 informe le gestionnaire des erreurs d'analyse, il est nécessaire de réimplémenter QXmlErrorHandler::fatalError() si, par exemple, nous voulons arrêter l'analyse lorsqu'une telle erreur se produit :
bool Handler::fatalError(const QXmlParseException & exception){ qWarning() << "Fatal error on line" << exception.lineNumber() << ", column"<< 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 de QXmlDefaultHandler et de se demander pourquoi elles pourraient être réimplémentées dans un gestionnaire personnalisé. Les gestionnaires personnalisés réimplémentent généralement QXmlContentHandler::startDocument() pour 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 QXmlContentHandler::startElement(), QXmlContentHandler::endElement() et QXmlContentHandler::characters(). Vous souhaiterez peut-être réimplémenter QXmlContentHandler::endDocument() pour effectuer une finalisation ou une validation du contenu une fois que le document a été entièrement lu.
Voir aussi QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler, et QXmlLexicalHandler.
Documentation des fonctions membres
QXmlDefaultHandler::QXmlDefaultHandler()
Construit un gestionnaire à utiliser avec les sous-classes de QXmlReader.
[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()
Détruit 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 &nom).
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 à nullptr, de sorte que le lecteur utilise l'identificateur de 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 &nom).
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émente : 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 &nom).
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 ¬ationName)
Réimplémente : QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName).
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.