Класс QDomImplementation
Класс QDomImplementation предоставляет информацию о возможностях реализации DOM. Подробнее...
| Заголовок: | #include <QDomImplementation> |
| 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 без нарушения обратной совместимости. Модуль XML Patterns Qt и классы 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 также позволяет создавать документ с помощью конструктора по умолчанию. Полученный документ является null, но становится не null, когда вызывается фабричная функция, например 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 получает недействительные данные.
Предупреждение: Эта функция не является взаимоисключающей.
Эта функция была представлена в 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.
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.14/qdomimplementation.html