Spec-Zone.ru › Qt 6.1

Класс QXmlDefaultHandler

Класс QXmlDefaultHandler предоставляет реализацию по умолчанию для всех классов обработчиков XML. Подробнее...

Заголовок: #include <QXmlDefaultHandler>
CMake: find_package(Qt6 COMPONENTS Core5Compat REQUIRED) 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 &notationName) 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] 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).

Устанавливает ret в nullptr, чтобы читатель использовал идентификатор системы, предоставленный в документе XML.

[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).

Это переопределение ничего не делает.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qxmldefaulthandler.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API