Класс 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 уровня 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(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()) как publicId, это означает, что тип документа не имеет общедоступного идентификатора.
systemId задает системный идентификатор внешнего подмножества. Если вы зададите пустую строку в качестве systemId, это означает, что тип документа не имеет системного идентификатора.
Так как вы не можете иметь общедоступный идентификатор без системного идентификатора, общедоступный идентификатор устанавливается в пустую строку, если системный идентификатор отсутствует.
DOM уровня 2 не поддерживает другие функции объявления типов документов.
Единственный способ использовать тип документа, созданный таким образом, — в сочетании с функцией createDocument() для создания QDomDocument с этим типом документа.
Согласно спецификации DOM, это единственный способ создать не нулевой документ. По историческим причинам Qt также позволяет создавать документ с помощью конструктора по умолчанию. Полученный документ будет нулевым, но станет ненулевым при вызове функции-фабрики, например QDomDocument::createElement(). Документ также станет ненулевым при вызове setContent().
См. также createDocument().
bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const
Функция возвращает true , если QDom реализует запрошенную version feature, в противном случае возвращает false.
В настоящее время поддерживаемые функции и их версии:
| Функция | Версия |
|---|---|
| XML | 1.0 |
[static] QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy()
Возвращает политику обработки недопустимых данных, которая определяет действия при передаче функции-фабрике в QDomDocument недопустимых данных.
Предупреждение: Эта функция не является перевходо-безопасной.
См. также 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.1/qdomimplementation.html