Класс 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) |
| virtual bool | characters(const QString &ch) |
| virtual bool | comment(const QString &ch) |
| virtual bool | endCDATA() |
| virtual bool | endDTD() |
| virtual bool | endDocument() |
| virtual bool | endElement(const QString &namespaceURI, const QString &localName, const QString &qName) |
| virtual bool | endEntity(const QString &name) |
| virtual bool | endPrefixMapping(const QString &prefix) |
| virtual bool | error(const QXmlParseException &exception) |
| virtual QString | errorString() const |
| virtual bool | externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) |
| virtual bool | fatalError(const QXmlParseException &exception) |
| virtual bool | ignorableWhitespace(const QString &ch) |
| virtual bool | internalEntityDecl(const QString &name, const QString &value) |
| virtual bool | notationDecl(const QString &name, const QString &publicId, const QString &systemId) |
| virtual bool | processingInstruction(const QString &target, const QString &data) |
| virtual bool | resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret) |
| virtual void | setDocumentLocator(QXmlLocator *locator) |
| virtual bool | skippedEntity(const QString &name) |
| virtual bool | startCDATA() |
| virtual bool | startDTD(const QString &name, const QString &publicId, const QString &systemId) |
| virtual bool | startDocument() |
| virtual bool | startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) |
| virtual bool | startEntity(const QString &name) |
| virtual bool | startPrefixMapping(const QString &prefix, const QString &uri) |
| virtual bool | unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName) |
| virtual bool | warning(const QXmlParseException &exception) |
- 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()
Удаляет обработчик.
[virtual] bool QXmlDefaultHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)
Переопределено из QXmlDeclHandler::attributeDecl().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::characters(const QString &ch)
Переопределено из QXmlContentHandler::characters().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::comment(const QString &ch)
Переопределено из QXmlLexicalHandler::comment().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::endCDATA()
Переопределено из QXmlLexicalHandler::endCDATA().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::endDTD()
Переопределено из QXmlLexicalHandler::endDTD().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::endDocument()
Переопределено из QXmlContentHandler::endDocument().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Переопределено из QXmlContentHandler::endElement().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::endEntity(const QString &name)
Переопределено из QXmlLexicalHandler::endEntity().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::endPrefixMapping(const QString &prefix)
Переопределено из QXmlContentHandler::endPrefixMapping().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::error(const QXmlParseException &exception)
Переопределено из QXmlErrorHandler::error().
Это переопределение ничего не делает.
[virtual] QString QXmlDefaultHandler::errorString() const
Переопределено из QXmlContentHandler::errorString().
Возвращает строку ошибки по умолчанию.
[virtual] bool QXmlDefaultHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)
Переопределено из QXmlDeclHandler::externalEntityDecl().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::fatalError(const QXmlParseException &exception)
Переопределено из QXmlErrorHandler::fatalError().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::ignorableWhitespace(const QString &ch)
Переопределено из QXmlContentHandler::ignorableWhitespace().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::internalEntityDecl(const QString &name, const QString &value)
Переопределено из QXmlDeclHandler::internalEntityDecl().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)
Переопределено из QXmlDTDHandler::notationDecl().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::processingInstruction(const QString &target, const QString &data)
Переопределено из QXmlContentHandler::processingInstruction().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)
Переопределено из QXmlEntityResolver::resolveEntity().
Устанавливает ret в 0, чтобы читатель использовал идентификатор системы, указанный в документе XML.
[virtual] void QXmlDefaultHandler::setDocumentLocator(QXmlLocator *locator)
Переопределено из QXmlContentHandler::setDocumentLocator().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::skippedEntity(const QString &name)
Переопределено из QXmlContentHandler::skippedEntity().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::startCDATA()
Переопределено из QXmlLexicalHandler::startCDATA().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)
Переопределено из QXmlLexicalHandler::startDTD().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::startDocument()
Переопределено из QXmlContentHandler::startDocument().
Это переопределение ничего не делает.
[virtual] bool QXmlDefaultHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Переопределено из QXmlContentHandler::startElement().
Эта переопределённая реализация ничего не делает.
[virtual] bool QXmlDefaultHandler::startEntity(const QString &name)
Переопределено из QXmlLexicalHandler::startEntity().
Эта переопределённая реализация ничего не делает.
[virtual] bool QXmlDefaultHandler::startPrefixMapping(const QString &prefix, const QString &uri)
Переопределено из QXmlContentHandler::startPrefixMapping().
Эта переопределённая реализация ничего не делает.
[virtual] bool QXmlDefaultHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName)
Переопределено из QXmlDTDHandler::unparsedEntityDecl().
Эта переопределённая реализация ничего не делает.
[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.6/qxmldefaulthandler.html