QXmlDefaultHandler Class
QXmlDefaultHandler クラスは、すべての XML ハンドラクラスのデフォルト実装を提供します。詳細...
Header: | #include <QXmlDefaultHandler> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
Inherits: | QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, and 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 ()を再実装する必要があります:
bool Handler::fatalError (const QXmlParseException & exception) { 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)。
この再実装は何もしません。
©2024 The Qt Company Ltd. 本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。