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