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 |
注:このクラスの関数はすべてリエントラントです。
パブリック関数
QXmlDefaultHandler() | |
virtual | ~QXmlDefaultHandler() |
再実装パブリック関数
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 |
詳細説明
このクラスは、QXmlReader のサブクラス、特にQXmlSimpleReader のためのカスタムハンドラを実装するときに便利な出発点となるように、特殊なハンドラクラスの機能をまとめています。各基本クラスの仮想関数はこのクラスで再実装され、多くの一般的なケースに対して賢明なデフォルト動作を提供します。このクラスをサブクラス化し、これらの関数をオーバーライドすることで、アプリケーションに関連するハンドラの部分の実装に集中することができます。
XML リーダーは、解析中に異なる種類のイベントに対してどのハンドラーを使用するかを指定する必要があります。つまり、QXmlDefaultHandler はすべての基本クラスから継承された関数のデフォルト実装を提供しますが、特定の種類のイベントに特化したハンドラを使用することもできます。
たとえば、QXmlDefaultHandler は、QXmlContentHandler とQXmlErrorHandler の両方をサブクラス化することで、次の両方のリーダー関数に同じハンドラを使用できます:
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() を再実装して、ドキュメントが完全に読み込まれた時点で、コンテンツの最終処理や検証を行いたい場合もあるでしょう。
QXmlDTDHandler 、QXmlDeclHandler 、QXmlContentHandler 、QXmlEntityResolver 、QXmlErrorHandler 、QXmlLexicalHandlerも参照 。
メンバ関数ドキュメント
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 ドキュメントで提供されたシステム識別子を使用するように、ret をnullptr
に設定します。
[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 ¬ationName)
再実装:QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName)。
この再実装は何もしません。
[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.