Spec-Zone.ru › Qt 5.6

Класс 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 Schema 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/archives/qt-5.6/qxmlschema.html

Spec-Zone.ru

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