Spec-Zone.ru › Qt

Класс QDomImplementation

Класс QDomImplementation предоставляет информацию о возможностях реализации DOM. Подробнее...

Заголовок: #include <QDomImplementation>
CMake: find_package(Qt6 COMPONENTS Xml REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются перевходными за исключением следующих:

  • invalidDataPolicy()
  • setInvalidDataPolicy()

Типы публичного доступа

Перечисление 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 см. Уровень 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()), это означает, что тип документа не имеет общедоступного идентификатора.

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 реализует запрашиваемый version для feature; в противном случае возвращает false.

В настоящее время поддерживаемые функции и их версии:

Функция Версия
XML 1.0

[static] QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy()

Возвращает политику обработки некорректных данных, которая определяет, что должно быть сделано при передаче функции-фабрики в QDomDocument некорректных данных.

Предупреждение: Эта функция не является перевходной.

См. также setInvalidDataPolicy() и InvalidDataPolicy.

END_OF_DOCUMENT_MARKER

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.2/qdomimplementation.html

Spec-Zone.ru

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