QXmlDefaultHandler Class

Die Klasse QXmlDefaultHandler bietet eine Standardimplementierung aller XML-Handler-Klassen. Mehr...

Kopfzeile: #include <QXmlDefaultHandler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
Erbt: QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, und QXmlDeclHandler

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Funktionen

Reimplementierte öffentliche Funktionen

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

Detaillierte Beschreibung

Diese Klasse fasst die Funktionen der spezialisierten Handler-Klassen zusammen und ist damit ein praktischer Ausgangspunkt für die Implementierung benutzerdefinierter Handler für Unterklassen von QXmlReader, insbesondere QXmlSimpleReader. Die virtuellen Funktionen der einzelnen Basisklassen werden in dieser Klasse neu implementiert, so dass ein sinnvolles Standardverhalten für viele gängige Fälle zur Verfügung steht. Indem Sie diese Klasse unterklassifizieren und diese Funktionen überschreiben, können Sie sich auf die Implementierung der für Ihre Anwendung relevanten Teile des Handlers konzentrieren.

Dem XML-Reader muss mitgeteilt werden, welcher Handler für die verschiedenen Arten von Ereignissen während des Parsens zu verwenden ist. Das bedeutet, dass QXmlDefaultHandler zwar Standardimplementierungen von Funktionen bereitstellt, die von allen seinen Basisklassen geerbt wurden, wir aber dennoch spezielle Handler für bestimmte Arten von Ereignissen verwenden können.

QXmlDefaultHandler ist zum Beispiel eine Unterklasse von QXmlContentHandler und QXmlErrorHandler, so dass wir durch Unterklassifizierung denselben Handler für beide der folgenden Leserfunktionen verwenden können:

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

Da der Reader den Handler über Parsing-Fehler informiert, ist es notwendig, QXmlErrorHandler::fatalError() neu zu implementieren, wenn wir z.B. das Parsing beim Auftreten eines solchen Fehlers beenden wollen:

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

Die obige Funktion gibt false zurück, was dem Leser mitteilt, dass er das Parsen beenden soll. Um denselben Reader weiter zu verwenden, muss eine neue Handler-Instanz erstellt und der Reader so eingerichtet werden, dass er sie auf die oben beschriebene Weise verwendet.

Es ist sinnvoll, einige der von QXmlDefaultHandler geerbten Funktionen zu untersuchen und zu überlegen, warum sie in einem eigenen Handler neu implementiert werden könnten. Benutzerdefinierte Handler werden typischerweise QXmlContentHandler::startDocument() reimplementieren, um den Handler auf neue Inhalte vorzubereiten. Dokumentelemente und der darin enthaltene Text können durch Neuimplementierung von QXmlContentHandler::startElement(), QXmlContentHandler::endElement() und QXmlContentHandler::characters() verarbeitet werden. Möglicherweise möchten Sie QXmlContentHandler::endDocument() neu implementieren, um den Inhalt abzuschließen oder zu validieren, sobald das Dokument vollständig gelesen wurde.

Siehe auch QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler, und QXmlLexicalHandler.

Dokumentation der Mitgliedsfunktionen

QXmlDefaultHandler::QXmlDefaultHandler()

Konstruiert einen Handler zur Verwendung mit Unterklassen von QXmlReader.

[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()

Zerstört den Handler.

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

Reimplements: QXmlDeclHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::characters(const QString &ch).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlLexicalHandler::comment(const QString &ch).

Diese Reimplementierung bewirkt nichts.

[override virtual] bool QXmlDefaultHandler::endCDATA()

Reimplements: QXmlLexicalHandler::endCDATA().

Diese Neuimplementierung bewirkt nichts.

[override virtual] bool QXmlDefaultHandler::endDTD()

Reimplements: QXmlLexicalHandler::endDTD().

Diese Neuimplementierung bewirkt nichts.

[override virtual] bool QXmlDefaultHandler::endDocument()

Reimplements: QXmlContentHandler::endDocument().

Diese Neuimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName).

Diese Neuimplementierung bewirkt nichts.

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

Reimplements: QXmlLexicalHandler::endEntity(const QString &name).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::endPrefixMapping(const QString &prefix).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlErrorHandler::error(const QXmlParseException &exception).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::errorString() const.

Gibt die Standard-Fehlerzeichenfolge zurück.

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

Reimplements: QXmlDeclHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlErrorHandler::fatalError(const QXmlParseException &exception).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::ignorableWhitespace(const QString &ch).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlDeclHandler::internalEntityDecl(const QString &name, const QString &value).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlDTDHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::processingInstruction(const QString &target, const QString &data).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlEntityResolver::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret).

Setzt ret auf nullptr, so dass der Reader den im XML-Dokument angegebenen Systemidentifikator verwendet.

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

Reimplements: QXmlContentHandler::setDocumentLocator(QXmlLocator *locator).

Diese Neuimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::skippedEntity(const QString &name).

Diese Reimplementierung bewirkt nichts.

[override virtual] bool QXmlDefaultHandler::startCDATA()

Reimplements: QXmlLexicalHandler::startCDATA().

Diese Neuimplementierung bewirkt nichts.

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

Reimplements: QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId).

Diese Reimplementierung bewirkt nichts.

[override virtual] bool QXmlDefaultHandler::startDocument()

Reimplements: QXmlContentHandler::startDocument().

Diese Neuimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlLexicalHandler::startEntity(const QString &name).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName).

Diese Reimplementierung bewirkt nichts.

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

Reimplements: QXmlErrorHandler::warning(const QXmlParseException &exception).

Diese Reimplementierung bewirkt nichts.

© 2025 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.