Класс QDomImplementation
Класс QDomImplementation предоставляет информацию о возможностях реализации DOM. Подробнее...
| Заголовок: | #include <QDomImplementation> |
| qmake: | QT += xml |
Примечание: Все функции в этом классе являются повторно-входными за исключением следующих:
- invalidDataPolicy()
- setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)
Типы публичного доступа
| Перечисление | InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode } |
Функции публичного доступа
| QDomImplementation() | |
| QDomImplementation(const QDomImplementation &x) | |
| ~QDomImplementation() | |
| QDomDocument | createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype) |
| QDomDocumentType | createDocumentType(const QString &qName, const QString &publicId, const QString &systemId) |
| bool | hasFeature(const QString &feature, const QString &version) const |
| bool | isNull() |
| bool | operator!=(const QDomImplementation &x) const |
| QDomImplementation & | operator=(const QDomImplementation &x) |
| bool | operator==(const QDomImplementation &x) const |
Статические члены публичного доступа
| QDomImplementation::InvalidDataPolicy | invalidDataPolicy() |
| void | setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy) |
Подробное описание
Класс QDomImplementation предоставляет информацию о возможностях реализации DOM.
Этот класс описывает поддерживаемые реализацией DOM возможности. В настоящее время поддерживаются XML подмножества DOM уровня 1 и DOM уровня 2 Core.
Обычно вы будете использовать функцию QDomDocument::implementation() для получения объекта реализации.
Вы можете создать новый тип документа с помощью createDocumentType() и новый документ с помощью createDocument().
Для получения дополнительной информации о модели объекта документа обратитесь к уровню 1 и уровню 2 Core. Для более общего введения в реализацию DOM см. документацию QDomDocument.
Классы QDom имеют несколько проблем несоответствия спецификациям XML, которые не могут быть исправлены в Qt 4 без нарушения обратной совместимости. Модуль Qt XML Patterns и классы QXmlStreamReader и QXmlStreamWriter обладают более высокой степенью соответствия.
См. также hasFeature().
Документация по типам членов
Перечисление QDomImplementation::InvalidDataPolicy
Это перечисление определяет, что должно быть выполнено при вызове функции-фабрики в QDomDocument с недопустимыми данными.
| Постоянная | Значение | Описание |
|---|---|---|
QDomImplementation::AcceptInvalidChars |
0 |
Данные должны храниться в объекте DOM в любом случае. В этом случае результирующий XML-документ может быть некорректным. Это значение по умолчанию и поведение QDom в Qt < 4.1. |
QDomImplementation::DropInvalidChars |
1 |
Недопустимые символы должны быть удалены из данных. |
QDomImplementation::ReturnNullNode |
2 |
Функция-фабрика должна возвращать узел null. |
См. также setInvalidDataPolicy() и invalidDataPolicy().
Документация по функциям-членам
QDomImplementation::QDomImplementation()
Конструирует объект QDomImplementation.
QDomImplementation::QDomImplementation(const QDomImplementation &x)
Конструирует копию x.
QDomImplementation::~QDomImplementation()
Удаляет объект и освобождает его ресурсы.
QDomDocument QDomImplementation::createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype)
Создает документ DOM с типом документа doctype. Эта функция также добавляет узел корневого элемента с квалифицированным именем qName и URI пространства имен nsURI.
QDomDocumentType QDomImplementation::createDocumentType(const QString &qName, const QString &publicId, const QString &systemId)
Создает узел типа документа для имени qName.
publicId указывает общедоступный идентификатор внешнего подмножества. Если вы укажете пустую строку (QString()), это означает, что тип документа не имеет общедоступного идентификатора.
systemId указывает системный идентификатор внешнего подмножества. Если вы укажете пустую строку, это означает, что тип документа не имеет системного идентификатора.
Поскольку у вас не может быть общедоступного идентификатора без системного идентификатора, общедоступный идентификатор устанавливается в пустую строку, если нет системного идентификатора.
DOM уровня 2 не поддерживает никаких других функций объявления типов документов.
Единственный способ использования созданного таким образом типа документа — в сочетании с функцией createDocument() для создания QDomDocument с этим типом документа.
В спецификации DOM это единственный способ создания непустого документа. По историческим причинам Qt также позволяет создать документ с помощью конструктора по умолчанию без параметров. Результирующий документ равен null, но становится неравен null при вызове функции-фабрики, например QDomDocument::createElement(). Документ также становится не равным null, когда вызывается setContent().
См. также createDocument().
bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const
Функция возвращает true если QDom реализует запрошенную версию функции; в противном случае возвращает false.
В настоящее время поддерживаемые функции и их версии:
| Функция | Версия |
|---|---|
| XML | 1.0 |
[static] QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy()
Возвращает политику недопустимых данных, которая определяет, что должно быть выполнено при передаче функции-фабрики в QDomDocument недопустимых данных.
Предупреждение: Эта функция не повторно-входная.
Эта функция была представлена в Qt 4.1.
См. также setInvalidDataPolicy() и InvalidDataPolicy.
bool QDomImplementation::isNull()
Возвращает false если объект был создан с помощью QDomDocument::implementation(); в противном случае возвращает true.
[static] void QDomImplementation::setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)
Устанавливает политику обработки некорректных данных, которая определяет, что делать, когда фабричная функция в QDomDocument получает некорректные данные.
Политика policy устанавливается для всех существующих и будущих экземпляров QDomDocument.
QDomDocument doc;
QDomImplementation impl;
// This will create the element, but the resulting XML document will
// be invalid, because '~' is not a valid character in a tag name.
impl.setInvalidDataPolicy(QDomImplementation::AcceptInvalidData);
QDomElement elt1 = doc.createElement("foo~bar");
// This will create an element with the tag name "foobar".
impl.setInvalidDataPolicy(QDomImplementation::DropInvalidData);
QDomElement elt2 = doc.createElement("foo~bar");
// This will create a null element.
impl.setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
QDomElement elt3 = doc.createElement("foo~bar"); Предупреждение: Эта функция не является реентерабельной.
Эта функция была добавлена в Qt 4.1.
См. также invalidDataPolicy() и InvalidDataPolicy.
bool QDomImplementation::operator!=(const QDomImplementation &x) const
Возвращает true если x и этот объект реализации DOM были созданы из разных QDomDocument; в противном случае возвращает false.
QDomImplementation &QDomImplementation::operator=(const QDomImplementation &x)
Присваивает x этому объекту реализации DOM.
bool QDomImplementation::operator==(const QDomImplementation &x) const
Возвращает true если x и этот объект реализации DOM были созданы из одного QDomDocument; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qdomimplementation.html