Spec-Zone.ru › Qt 5.9

Класс QXmlSchema

Класс QXmlSchema предоставляет возможность загрузки и валидации схемы W3C XML. Подробнее...

Заголовок: #include <QXmlSchema>
qmake: QT += xmlpatterns
С тех пор: Qt 4.6
  • Список всех членов, включая унаследованные

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

Публичные функции

QXmlSchema()
QXmlSchema(const QXmlSchema &other)
~QXmlSchema()
QUrl documentUri() const
bool isValid() const
bool load(const QUrl &source)
bool load(QIODevice *source, const QUrl &documentUri = QUrl())
bool load(const QByteArray &data, const QUrl &documentUri = QUrl())
QAbstractMessageHandler * messageHandler() const
QXmlNamePool namePool() const
QNetworkAccessManager * networkAccessManager() const
void setMessageHandler(QAbstractMessageHandler *handler)
void setNetworkAccessManager(QNetworkAccessManager *manager)
void setUriResolver(const QAbstractUriResolver *resolver)
const QAbstractUriResolver * uriResolver() const
QXmlSchema & operator=(const QXmlSchema &other)

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

Класс QXmlSchema предоставляет возможность загрузки и валидации схемы W3C XML.

Класс QXmlSchema загружает, компилирует и валидирует файлы схем W3C XML, которые могут быть далее использованы для валидации документов XML-инстансов с помощью QXmlSchemaValidator.

Следующий пример демонстрирует, как загрузить файл XML-схемы из сети и проверить, является ли он допустимым документом схемы:

    QUrl url("http://www.schema-example.org/myschema.xsd");

    QXmlSchema schema;
    if (schema.load(url) == true)
        qDebug() << "schema is valid";
    else
        qDebug() << "schema is invalid";

Версия XML-схемы

Этот класс используется для представления схем, которые соответствуют спецификации XML-схемы 1.0.

См. также QXmlSchemaValidator и Пример валидации XML-схемы.

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

QXmlSchema::QXmlSchema()

Создает недопустимую пустую схему, которую нельзя использовать до вызова load().

QXmlSchema::QXmlSchema(const QXmlSchema &other)

Создает QXmlSchema, являющийся копией other. Новый экземпляр будет совместно использовать ресурсы с существующей схемой в максимально возможной степени.

QXmlSchema::~QXmlSchema()

Удаляет этот QXmlSchema.

QUrl QXmlSchema::documentUri() const

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

bool QXmlSchema::isValid() const

Возвращает true, если эта схема допустима. Примеры недопустимых схем — схемы, содержащие синтаксические ошибки или не соответствующие спецификации W3C XML Schema.

bool QXmlSchema::load(const QUrl &source)

Устанавливает этот QXmlSchema в схему, загруженную из URI source.

Если схема недопустима, возвращается false и поведение не определено.

Пример:

    QUrl url("http://www.schema-example.org/myschema.xsd");

    QXmlSchema schema;
    if (schema.load(url) == true)
        qDebug() << "schema is valid";
    else
        qDebug() << "schema is invalid";

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

bool QXmlSchema::load(QIODevice *source, const QUrl &documentUri = QUrl())

Устанавливает этот QXmlSchema в схему, считанную из устройства source. Устройство должно быть открыто как минимум с флагом QIODevice::ReadOnly.

documentUri представляет схему, полученную из устройства source. Это базовый URI схемы, который используется для разрешения относительных URI, которые появляются в схеме, и для сообщений об ошибках.

Если source null или нечитаем, или если documentUri не является допустимым URI, поведение не определено.

Если схема недопустима, возвращается false и поведение не определено.

Пример:

    QFile file("myschema.xsd");
    file.open(QIODevice::ReadOnly);

    QXmlSchema schema;
    schema.load(&file, QUrl::fromLocalFile(file.fileName()));

    if (schema.isValid())
        qDebug() << "schema is valid";
    else
        qDebug() << "schema is invalid";

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

bool QXmlSchema::load(const QByteArray &data, const QUrl &documentUri = QUrl())

Устанавливает этот QXmlSchema в схему, считанную из data.

documentUri представляет схему, полученную из data. Это базовый URI схемы, который используется для разрешения относительных URI, которые появляются в схеме, и для сообщений об ошибках.

Если documentUri не является допустимым URI, поведение не определено.

Если схема недопустима, возвращается false и поведение не определено.

Пример:

    QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                     "<xsd:schema"
                     "        xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
                     "        xmlns=\"http://www.qt-project.org/xmlschematest\""
                     "        targetNamespace=\"http://www.qt-project.org/xmlschematest\""
                     "        version=\"1.0\""
                     "        elementFormDefault=\"qualified\">"
                     "</xsd:schema>" );

    QXmlSchema schema;
    schema.load(data);

    if (schema.isValid())
        qDebug() << "schema is valid";
    else
        qDebug() << "schema is invalid";

См. также isValid() и isValid().

QAbstractMessageHandler *QXmlSchema::messageHandler() const

Возвращает обработчик сообщений, который обрабатывает сообщения о компиляции и валидации для этого QXmlSchema.

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

QXmlNamePool QXmlSchema::namePool() const

Возвращает пул имён, используемый этим QXmlSchema для построения имён. Нет установщика для пула имён, поскольку смешивание пулов имён приводит к ошибкам из-за путаницы имён.

QNetworkAccessManager *QXmlSchema::networkAccessManager() const

Возвращает менеджер сети или 0, если он не был установлен.

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

void QXmlSchema::setMessageHandler(QAbstractMessageHandler *handler)

Изменяет обработчик сообщений для этого QXmlSchema на handler. Схема отправляет все сообщения о компиляции и валидации этому обработчику сообщений. QXmlSchema не принимает на себя ответственность за handler.

Обычно достаточно стандартного обработчика сообщений. Он записывает сообщения о компиляции и валидации в stderr. Стандартный обработчик сообщений включает цветовые коды, если stderr может отображать цвета.

Когда QXmlSchema вызывает QAbstractMessageHandler::message(), аргументы выглядят следующим образом:

Аргумент message() Семантика
QtMsgType type Используются только QtWarningMsg и QtFatalMsg. Первый указывает на предупреждение, второй — на ошибку.
const QString & description Документ XHTML, представляющий собой само сообщение. Он переводится на текущий язык.
const QUrl &identifier Идентифицирует ошибку с помощью URI, где фрагмент — код ошибки, а остальная часть URI — пространство имён ошибки.
const QSourceLocation & sourceLocation Указывает, где произошла ошибка.

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

void QXmlSchema::setNetworkAccessManager(QNetworkAccessManager *manager)

Устанавливает менеджер сети в manager. QXmlSchema не принимает на себя управление manager.

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

void QXmlSchema::setUriResolver(const QAbstractUriResolver *resolver)

Устанавливает разрешитель URI в resolver. QXmlSchema не принимает на себя управление resolver.

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

const QAbstractUriResolver *QXmlSchema::uriResolver() const

Возвращает разрешитель URI схемы. Если разрешитель URI не задан, Qt XML Patterns будет использовать URI в схемах как есть.

Разрешитель URI обеспечивает уровень абстракции или полиморфные URI. Разрешитель может переписать логические URI на физические или перевести устаревшие или некорректные URI в корректные.

Когда Qt XML Patterns вызывает QAbstractUriResolver::resolve(), абсолютный URI — это URI, предписанный спецификацией схемы, а относительный URI — это URI, указанный пользователем.

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

QXmlSchema &QXmlSchema::operator=(const QXmlSchema &other)

Копирует ресурсы other в текущий экземпляр, совмещая их по возможности.

Эта функция была введена в Qt 5.4.

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

Spec-Zone.ru

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