Sur cette page

QDomImplementation Class

La classe `QDomImplementation` fournit des informations sur les fonctionnalités de l'implémentation DOM. En savoir plus...

En-tête : #include <QDomImplementation>
CMake : find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake : QT += xml

Remarque : toutes les fonctions de cette classe sont réentrantes, à l'exception des suivantes :

Types publics

enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

Fonctions publiques

QDomImplementation()
QDomImplementation(const QDomImplementation &implementation)
~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 &other) const
QDomImplementation &operator=(const QDomImplementation &other)
bool operator==(const QDomImplementation &other) const

Membres publics statiques

QDomImplementation::InvalidDataPolicy invalidDataPolicy()
void setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)

Description détaillée

Cette classe décrit les fonctionnalités prises en charge par l'implémentation DOM. Actuellement, le sous-ensemble XML de DOM Level 1 et DOM Level 2 Core sont pris en charge.

En règle générale, vous utiliserez la fonction QDomDocument::implementation() pour obtenir l'objet d'implémentation.

Vous pouvez créer un nouveau type de document avec ` createDocumentType()` et un nouveau document avec ` createDocument()`.

Pour plus d’informations sur le Modèle objet de document (DOM), consultez les sections Niveau 1 et Niveau 2 Core. Pour une introduction plus générale à l’implémentation du DOM, consultez la documentation relative à QDomDocument.

Les classes QDom présentent quelques problèmes de non-conformité avec les spécifications XML qui ne peuvent pas être corrigés dans Qt 4 sans rompre la compatibilité ascendante. Le module Qt XML Patterns ainsi que les classes QXmlStreamReader et QXmlStreamWriter offrent un degré de conformité plus élevé.

Voir également hasFeature().

Documentation sur les types membres

enum QDomImplementation::InvalidDataPolicy

Cette énumération précise la marche à suivre lorsqu’une fonction de création de l’ QDomDocument est appelée avec des données non valides.

ConstanteValeurDescription
QDomImplementation::AcceptInvalidChars0Les données doivent tout de même être stockées dans l’objet DOM. Dans ce cas, le document XML résultant risque de ne pas être bien formé. Il s’agissait de la valeur par défaut et du comportement de QDom avant Qt 6.12.
QDomImplementation::DropInvalidChars1Les caractères non valides doivent être supprimés des données.
QDomImplementation::ReturnNullNode2La fonction de fabrication doit renvoyer un nœud nul. Il s'agit de la valeur par défaut depuis Qt 6.12.

Voir également setInvalidDataPolicy() et invalidDataPolicy().

Documentation des fonctions membres

QDomImplementation::QDomImplementation()

Crée un objet QDomImplementation.

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

Crée une copie de implementation.

[noexcept] QDomImplementation::~QDomImplementation()

Détruit l'objet et libère ses ressources.

QDomDocument QDomImplementation::createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype)

Crée un document DOM de type doctype. Cette fonction ajoute également un nœud d'élément racine portant le nom qualifié qName et l'URI d'espace de noms nsURI.

QDomDocumentType QDomImplementation::createDocumentType(const QString &qName, const QString &publicId, const QString &systemId)

Crée un nœud de type de document pour le nom « qName ».

publicId Spécifie l'identificateur public du sous-ensemble externe. Si vous spécifiez une chaîne vide (QString()) comme publicId, cela signifie que le type de document n'a pas d'identificateur public.

systemId Spécifie l’identifiant système du sous-ensemble externe. Si vous spécifiez une chaîne vide comme systemId, cela signifie que le type de document n’a pas d’identifiant système.

Comme il est impossible d’avoir un identifiant public sans identifiant système, l’identifiant public est défini sur une chaîne vide s’il n’y a pas d’identifiant système.

Le DOM niveau 2 ne prend en charge aucune autre fonctionnalité de déclaration de type de document.

La seule façon d’utiliser un type de document créé de cette manière est de le combiner avec la fonction ` createDocument()` pour créer un ` QDomDocument ` de ce type.

Dans la spécification DOM, c’est la seule façon de créer un document non nul. Pour des raisons historiques, Qt permet également de créer le document à l’aide du constructeur vide par défaut. Le document résultant est nul, mais devient non nul lorsqu’une fonction de fabrication, par exemple QDomDocument::createElement(), est appelée. Le document devient également non nul lorsque la méthode `setContent()` est appelée.

Voir également createDocument().

bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const

La fonction renvoie « true » si QDom implémente l'version demandée d'un feature; sinon, elle renvoie « false ».

Les fonctionnalités actuellement prises en charge et leurs versions :

FonctionnalitéVersion
XML1.0

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

Renvoie la politique relative aux données non valides, qui spécifie la marche à suivre lorsqu'une fonction de création de l'QDomDocument reçoit des données non valides.

Avertissement : cette fonction n'est pas réentrante.

Voir également setInvalidDataPolicy() et InvalidDataPolicy.

bool QDomImplementation::isNull()

Renvoie « false » si l'objet a été créé par « QDomDocument::implementation() » ; sinon, renvoie « true ».

[static] void QDomImplementation::setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)

Définit la politique relative aux données non valides, qui précise la marche à suivre lorsqu’une fonction de création de l’ QDomDocument reçoit des données non valides.

L’ policy est définie pour toutes les instances de QDomDocument qui existent déjà et qui seront créées à l’avenir.

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");
}

Avertissement : cette fonction n’est pas réentrante.

Voir également invalidDataPolicy() et InvalidDataPolicy.

bool QDomImplementation::operator!=(const QDomImplementation &other) const

Renvoie ` true ` si ` other ` et cet objet d'implémentation DOM ont été créés à partir de `QDomDocument` différents ; sinon, renvoie ` false`.

QDomImplementation &QDomImplementation::operator=(const QDomImplementation &other)

Attribue « other » à cette implémentation DOM.

bool QDomImplementation::operator==(const QDomImplementation &other) const

Renvoie « true » si « other » et cet objet d'implémentation DOM ont été créés à partir de la même instance « QDomDocument » ; sinon, renvoie « false ».

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.