Класс QDomImplementation
Класс QDomImplementation предоставляет информацию о возможностях реализации DOM. Подробнее...
| Заголовок: | #include <QDomImplementation> |
| CMake: | find_package(Qt6 COMPONENTS Xml REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
| qmake: | QT += xml |
Примечание: Все функции в этом классе являются реентерабельными, за исключением:
- invalidDataPolicy()
- setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)
Типы публичного доступа
| Перечисление | InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode } |
Функции публичного доступа
| QDomImplementation(const QDomImplementation &x) | |
| QDomImplementation() | |
| QDomImplementation & | operator=(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 |
| bool | operator==(const QDomImplementation &x) const |
Статические публичные члены
| QDomImplementation::InvalidDataPolicy | invalidDataPolicy() |
| void | setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy) |
Подробное описание
Этот класс описывает поддерживаемые возможности реализации DOM. В настоящее время поддерживаются XML-подмножество DOM Level 1 и DOM Level 2 Core.
Обычно вы будете использовать функцию QDomDocument::implementation() для получения объекта реализации.
Вы можете создать новый тип документа с помощью createDocumentType() и новый документ с помощью createDocument().
Для получения дополнительной информации о Document Object Model, см. Level 1 и Level 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(const QDomImplementation &x)
Создает копию x.
QDomImplementation::QDomImplementation()
Создает объект QDomImplementation.
QDomImplementation &QDomImplementation::operator=(const QDomImplementation &x)
Присваивает x этой реализации DOM.
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 указывает системный идентификатор внешнего подмножества. Если вы указываете пустую строку в качестве systemId, это означает, что тип документа не имеет системного идентификатора.
Так как у вас не может быть общедоступного идентификатора без системного идентификатора, общедоступный идентификатор устанавливается в пустую строку, если нет системного идентификатора.
DOM level 2 не поддерживает другие возможности объявления типа документа.
Единственный способ использовать тип документа, созданный таким образом, — в сочетании с функцией createDocument() для создания QDomDocument с этим типом документа.
В спецификации DOM это единственный способ создать ненулевой документ. По историческим причинам Qt также позволяет создать документ, используя конструктор по умолчанию с пустым параметром. Результирующий документ является нулевым, но становится ненулевым при вызове функции-фабрики, например QDomDocument::createElement(). Документ также становится ненулевым при вызове setContent().
См. также createDocument().
bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const
Функция возвращает true , если QDom реализует запрошенную версию функции; в противном случае возвращает false.
В настоящее время поддерживаемые функции и их версии:
| Функция | Версия |
|---|---|
| XML | 1.0 |
[static] QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy()
Возвращает политику недопустимых данных, которая определяет, что делать при передаче функции-фабрики в QDomDocument недопустимых данных.
Предупреждение: Эта функция не реентерабельна.
END_OF_DOCUMENT_MARKERСм. также setInvalidDataPolicy() и InvalidDataPolicy.
bool QDomImplementation::isNull()
Возвращает false, если объект был создан с помощью QDomDocument::implementation(); в противном случае возвращает true.
[static] void QDomImplementation::setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)
Устанавливает политику обработки некорректных данных, которая определяет, что должно быть сделано, когда функция-фабрика в QDomDocument получает некорректные данные.
Политика policy устанавливается для всех существующих и будущих экземпляров QDomDocument.
void XML_snippet_main()
{
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::AcceptInvalidChars);
QDomElement elt1 = doc.createElement("foo~bar");
// This will create an element with the tag name "foobar".
impl.setInvalidDataPolicy(QDomImplementation::DropInvalidChars);
QDomElement elt2 = doc.createElement("foo~bar");
// This will create a null element.
impl.setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
QDomElement elt3 = doc.createElement("foo~bar");
} Предупреждение: Эта функция не является реентерабельной.
См. также invalidDataPolicy() и InvalidDataPolicy.
bool QDomImplementation::operator!=(const QDomImplementation &x) const
Возвращает true, если x и этот объект реализации DOM были созданы из разных QDomDocument; в противном случае возвращает false.
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-6.0/qdomimplementation.html