Spec-Zone.ru › Qt 5.6

Класс QXmlSerializer

Класс QXmlSerializer представляет собой реализацию QAbstractXmlReceiver для преобразования вывода запроса XQuery в неформатированный XML. Подробнее...

Заголовок: #include <QXmlSerializer>
qmake: QT += xmlpatterns
С момента: Qt 4.4
Наследует: QAbstractXmlReceiver
Наследуется от:

QXmlFormatter

  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Открытые функции

QXmlSerializer(const QXmlQuery &query, QIODevice *outputDevice)
const QTextCodec * codec() const
QIODevice * outputDevice() const
void setCodec(const QTextCodec *outputCodec)

Переопределенные открытые функции

virtual void atomicValue(const QVariant &value)
virtual void attribute(const QXmlName &name, const QStringRef &value)
virtual void characters(const QStringRef &value)
virtual void comment(const QString &value)
virtual void endDocument()
virtual void endElement()
virtual void endOfSequence()
virtual void namespaceBinding(const QXmlName &nb)
virtual void processingInstruction(const QXmlName &name, const QString &value)
virtual void startDocument()
virtual void startElement(const QXmlName &name)
virtual void startOfSequence()
  • 12 открытых функций унаследовано от QAbstractXmlReceiver

Подробное описание

Класс QXmlSerializer представляет собой реализацию QAbstractXmlReceiver для преобразования вывода запроса XQuery в неформатированный XML.

QXmlSerializer преобразует последовательность XQuery, обычно вывод QXmlQuery, в XML. Рассмотрим пример:

QXmlQuery query;
query.setQuery("doc('index.html')/html/body/p[1]");

QXmlSerializer serializer(query, myOutputDevice);
query.evaluateTo(&serializer);

Сначала создаётся запрос, который получает первый абзац из документа index.html. Затем создаётся экземпляр этого класса с запросом и myOutputDevice. Наконец, происходит оценка запроса, что порождает упорядоченную последовательность вызовов функций обратного вызова сериализатора. Последовательность вызовов обратного вызова преобразует вывод запроса в XML и записывает его в myOutputDevice.

QXmlSerializer будет:

  • Объявлять пространства имён при необходимости,
  • Использовать соответствующие экранирования, когда символы не могут быть представлены в XML,
  • Обрабатывать окончания строк соответствующим образом,
  • Сообщать об ошибках, когда он не может выполнить сериализацию содержимого, например, когда ему предлагается сериализовать атрибут, являющийся узлом верхнего уровня, или когда встречается более одного элемента верхнего уровня.

В случае возникновения ошибки во время сериализации, результат неопределён, за исключением случаев, когда сериализатор управляется через вызов QXmlQuery::evaluateTo().

Если сгенерированный XML должен быть отформатирован и отступлен для удобства чтения, используйте QXmlFormatter.

См. также XSLT 2.0 и XQuery 1.0 Serialization и QXmlFormatter.

Документация по функциям-членам

QXmlSerializer::QXmlSerializer(const QXmlQuery &query, QIODevice *outputDevice)

Создаёт сериализатор, который использует пул имён и обработчик сообщений в query и записывает вывод в outputDevice.

outputDevice должен быть допустимым, не равным null устройством, открытым в режиме записи, в противном случае поведение не определено.

outputDevice не должен быть открыт с QIODevice::Text, так как это приведёт к некорректности вывода. Этот класс будет гарантировать, что окончания строк сериализуются в соответствии со спецификацией XML. QXmlSerializer не принимает на себя владение outputDevice.

[virtual] void QXmlSerializer::atomicValue(const QVariant &value)

Переопределено из QAbstractXmlReceiver::atomicValue().

[virtual] void QXmlSerializer::attribute(const QXmlName &name, const QStringRef &value)

Переопределено из QAbstractXmlReceiver::attribute().

[virtual] void QXmlSerializer::characters(const QStringRef &value)

Переопределено из QAbstractXmlReceiver::characters().

const QTextCodec *QXmlSerializer::codec() const

Возвращает кодек, используемый сериализатором для кодирования вывода XML.

См. также setCodec().

[virtual] void QXmlSerializer::comment(const QString &value)

Переопределено из QAbstractXmlReceiver::comment().

[virtual] void QXmlSerializer::endDocument()

Переопределено из QAbstractXmlReceiver::endDocument().

[virtual] void QXmlSerializer::endElement()

Переопределено из QAbstractXmlReceiver::endElement().

[virtual] void QXmlSerializer::endOfSequence()

Переопределено из QAbstractXmlReceiver::endOfSequence().

[virtual] void QXmlSerializer::namespaceBinding(const QXmlName &nb)

Переопределено из QAbstractXmlReceiver::namespaceBinding().

QIODevice *QXmlSerializer::outputDevice() const

Возвращает указатель на устройство вывода. Нет соответствующей функции для *установки* устройства вывода, так как устройство вывода должно быть передано в конструктор. Сериализатор не принимает на себя владение устройством ввода/вывода.

[virtual] void QXmlSerializer::processingInstruction(const QXmlName &name, const QString &value)

Переопределено из QAbstractXmlReceiver::processingInstruction().

void QXmlSerializer::setCodec(const QTextCodec *outputCodec)

Устанавливает кодек, который сериализатор будет использовать для кодирования вывода XML. Кодек вывода устанавливается в outputCodec. По умолчанию кодек вывода устанавливается в кодек для UTF-8. Сериализатор не принимает на себя владение кодеком.

См. также codec().

[virtual] void QXmlSerializer::startDocument()

Переопределено из QAbstractXmlReceiver::startDocument().

[virtual] void QXmlSerializer::startElement(const QXmlName &name)

Переопределено из QAbstractXmlReceiver::startElement().

[virtual] void QXmlSerializer::startOfSequence()

Переопределено из QAbstractXmlReceiver::startOfSequence().

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

Spec-Zone.ru

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