QXmlDefaultHandler Class

QXmlDefaultHandler クラスは、すべての XML ハンドラクラスのデフォルト実装を提供します。詳細...

ヘッダ #include <QXmlDefaultHandler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
を継承しています:QXmlContentHandler QXmlErrorHandler, , , , およびQXmlDTDHandler QXmlEntityResolver QXmlLexicalHandler QXmlDeclHandler

注:このクラスの関数はすべてリエントラントです。

パブリック関数

再実装パブリック関数

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

詳細説明

このクラスは、QXmlReader のサブクラス、特にQXmlSimpleReader のためのカスタムハンドラを実装するときに便利な出発点となるように、特殊なハンドラクラスの機能をまとめています。各基本クラスの仮想関数はこのクラスで再実装され、多くの一般的なケースに対して賢明なデフォルト動作を提供します。このクラスをサブクラス化し、これらの関数をオーバーライドすることで、アプリケーションに関連するハンドラの部分の実装に集中することができます。

XML リーダーは、解析中に異なる種類のイベントに対してどのハンドラーを使用するかを指定する必要があります。つまり、QXmlDefaultHandler はすべての基本クラスから継承された関数のデフォルト実装を提供しますが、特定の種類のイベントに特化したハンドラを使用することもできます。

たとえば、QXmlDefaultHandler は、QXmlContentHandlerQXmlErrorHandler の両方をサブクラス化することで、次の両方のリーダー関数に同じハンドラを使用できます:

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

リーダはパージング・エラーをハンドラに通知するため、例えばそのようなエラーが発生したときにパージングを停止したい場合は、QXmlErrorHandler::fatalError ()を再実装する必要があります:

boolHandler::fatalError(constQXmlParseException例外){
    qWarning() << "Fatal error on line" << exception.lineNumber()
              << ", column"<<exception.columnNumber()<< ':'<<exception.message();return false; }

上記の関数はfalse を返し、リーダに解析の停止を指示する。同じリーダーを使い続けるには、新しいハンドラー・インスタンスを作成し、上記の方法でそれを使うようにリーダーをセットアップする必要がある。

QXmlDefaultHandlerによって継承された関数のいくつかを調べ、それらがカスタムハンドラで再実装される理由を考えることは有益です。カスタムハンドラは通常、QXmlContentHandler::startDocument ()を再実装し、ハンドラが新しいコンテンツに対応できるようにします。ドキュメント要素とその中のテキストは、QXmlContentHandler::startElement ()、QXmlContentHandler::endElement ()、QXmlContentHandler::characters ()を再実装することで処理できます。QXmlContentHandler::endDocument() を再実装して、ドキュメントが完全に読み込まれた時点で、コンテンツの最終処理や検証を行いたい場合もあるでしょう。

QXmlDTDHandlerQXmlDeclHandlerQXmlContentHandlerQXmlEntityResolverQXmlErrorHandlerQXmlLexicalHandlerも参照

メンバ関数ドキュメント

QXmlDefaultHandler::QXmlDefaultHandler()

QXmlReader のサブクラスで使用するハンドラを構築します。

[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()

ハンドラを破壊する。

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

再実装:QXmlDeclHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)。

この再実装は何もしません。

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

再実装:QXmlContentHandler::characters(const QString &ch)。

この再実装は何もしない。

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

再実装:QXmlLexicalHandler::comment(const QString &ch)。

この再実装は何もしない。

[override virtual] bool QXmlDefaultHandler::endCDATA()

再インプリメント:QXmlLexicalHandler::endCDATA().

この再実装は何もしない。

[override virtual] bool QXmlDefaultHandler::endDTD()

再インプリメント:QXmlLexicalHandler::endDTD().

この再実装は何もしない。

[override virtual] bool QXmlDefaultHandler::endDocument()

再インプリメント:QXmlContentHandler::endDocument().

この再実装は何もしない。

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

再実装:QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)。

この再実装は何もしません。

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

再実装:QXmlLexicalHandler::endEntity(const QString &name).

この再実装は何もしない。

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

再実装:QXmlContentHandler::endPrefixMapping(const QString &prefix)。

この再実装は何もしません。

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

を再実装します:QXmlErrorHandler::error(const QXmlParseException &exception)。

この再実装は何もしません。

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

再実装:QXmlContentHandler::errorString() const.

デフォルトのエラー文字列を返します。

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

再実装:QXmlDeclHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)。

この再実装は何もしません。

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

を再実装します:QXmlErrorHandler::fatalError(const QXmlParseException &exception)。

この再実装は何もしません。

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

再実装:QXmlContentHandler::ignorableWhitespace(const QString &ch)。

この再実装は何もしない。

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

再実装:QXmlDeclHandler::internalEntityDecl(const QString &name, const QString &value)。

この再実装は何もしません。

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

再実装:QXmlDTDHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)。

この再実装は何もしません。

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

再実装:QXmlContentHandler::processingInstruction(const QString &target, const QString &data)。

この再実装は何もしません。

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

再実装:QXmlEntityResolver::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)。

読者が XML ドキュメントで提供されたシステム識別子を使用するように、retnullptr に設定します。

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

を再実装します:QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)。

この再実装は何もしません。

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

再実装:QXmlContentHandler::skippedEntity(const QString &name).

この再実装は何もしない。

[override virtual] bool QXmlDefaultHandler::startCDATA()

再インプリメント:QXmlLexicalHandler::startCDATA().

この再実装は何もしない。

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

再実装:QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)。

この再実装は何もしません。

[override virtual] bool QXmlDefaultHandler::startDocument()

再インプリメント:QXmlContentHandler::startDocument().

この再実装は何もしない。

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

再実装:QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)。

この再実装は何もしません。

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

再実装:QXmlLexicalHandler::startEntity(const QString &name).

この再実装は何もしない。

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

再実装:QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)。

この再実装は何もしません。

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

再実装:QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName)。

この再実装は何もしません。

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

を再実装します:QXmlErrorHandler::warning(const QXmlParseException &exception)。

この再実装は何もしません。

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