Класс 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 ¬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] 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 ¬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).
Это переопределение ничего не делает.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qxmldefaulthandler.html