Класс QXmlDefaultHandler
Класс QXmlDefaultHandler предоставляет реализацию по умолчанию для всех классов обработчиков XML. Подробнее...
| Заголовок: | #include <QXmlDefaultHandler> |
| qmake: | QT += xml |
| Наследует: | 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 |
- 12 открытых функций, унаследованных от QXmlContentHandler
- 4 открытых функции, унаследованных от QXmlErrorHandler
- 3 открытых функции, унаследованных от QXmlDTDHandler
- 2 открытых функции, унаследованных от QXmlEntityResolver
- 8 открытых функций, унаследованных от QXmlLexicalHandler
- 4 открытых функции, унаследованных от QXmlDeclHandler
Подробное описание
Класс QXmlDefaultHandler предоставляет реализацию по умолчанию для всех классов обработчиков XML.
Этот класс объединяет функции специализированных классов обработчиков, делая его удобной отправной точкой при реализации пользовательских обработчиков для подклассов 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 и Введение в SAX2.
Документация по членам-функциям
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().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::characters(const QString &ch)
Переопределено из QXmlContentHandler::characters().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::comment(const QString &ch)
Переопределено из QXmlLexicalHandler::comment().
Это переопределение ничего не делает.
[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().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::endEntity(const QString &name)
Переопределено из QXmlLexicalHandler::endEntity().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::endPrefixMapping(const QString &prefix)
Переопределено из QXmlContentHandler::endPrefixMapping().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::error(const QXmlParseException &exception)
Переопределено из QXmlErrorHandler::error().
Это переопределение ничего не делает.
[override virtual] QString QXmlDefaultHandler::errorString() const
Переопределено из QXmlContentHandler::errorString().
Возвращает стандартную строку ошибки.
[override virtual] bool QXmlDefaultHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)
Переопределено из QXmlDeclHandler::externalEntityDecl().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::fatalError(const QXmlParseException &exception)
Переопределено из QXmlErrorHandler::fatalError().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::ignorableWhitespace(const QString &ch)
Переопределено из QXmlContentHandler::ignorableWhitespace().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::internalEntityDecl(const QString &name, const QString &value)
Переопределено из QXmlDeclHandler::internalEntityDecl().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)
Переопределено из QXmlDTDHandler::notationDecl().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::processingInstruction(const QString &target, const QString &data)
Переопределено из QXmlContentHandler::processingInstruction().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)
Переопределено из QXmlEntityResolver::resolveEntity().
Устанавливает ret в 0, чтобы читатель использовал идентификатор системы, предоставленный в XML-документе.
[override virtual] void QXmlDefaultHandler::setDocumentLocator(QXmlLocator *locator)
Переопределено из QXmlContentHandler::setDocumentLocator().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::skippedEntity(const QString &name)
Переопределено из QXmlContentHandler::skippedEntity().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::startCDATA()
Переопределено из QXmlLexicalHandler::startCDATA().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)
Переопределено из QXmlLexicalHandler::startDTD().
Это переопределение ничего не делает.
[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().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::startEntity(const QString &name)
Переопределено из QXmlLexicalHandler::startEntity().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::startPrefixMapping(const QString &prefix, const QString &uri)
Переопределено из QXmlContentHandler::startPrefixMapping().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName)
Переопределено из QXmlDTDHandler::unparsedEntityDecl().
Это переопределение ничего не делает.
[override virtual] bool QXmlDefaultHandler::warning(const QXmlParseException &exception)
Переопределено из QXmlErrorHandler::warning().
Это переопределение ничего не делает.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qxmldefaulthandler.html