Класс 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/qt-5.12/qxmldefaulthandler.html