Sur cette page

QDomImplementation Class

La classe QDomImplementation fournit des informations sur les caractéristiques de l'implémentation DOM. Plus d'informations...

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

Note : 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 supportées par l'implémentation DOM. Actuellement, le sous-ensemble XML de DOM Level 1 et DOM Level 2 Core sont supportés.

Normalement, 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 d'objet de document, voir Level 1 and Level 2 Core. Pour une introduction plus générale à l'implémentation du DOM, voir la documentation QDomDocument.

Les classes QDom ont 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 et les classes QXmlStreamReader et QXmlStreamWriter ont un degré de conformité plus élevé.

Voir aussi hasFeature().

Documentation sur les types de membres

enum QDomImplementation::InvalidDataPolicy

Cette énumération spécifie ce qui doit être fait lorsqu'une fonction d'usine de QDomDocument est appelée avec des données non valides.

ConstanteValeurDescription
QDomImplementation::AcceptInvalidChars0Les données doivent être stockées dans l'objet DOM de toute façon. Dans ce cas, le document XML résultant peut ne pas être bien formé. C'est la valeur par défaut et le comportement de QDom dans Qt < 4.1.
QDomImplementation::DropInvalidChars1Les caractères invalides doivent être supprimés des données.
QDomImplementation::ReturnNullNode2La fonction factory doit renvoyer un nœud nul.

Voir aussi setInvalidDataPolicy() et invalidDataPolicy().

Documentation sur les fonctions membres

QDomImplementation::QDomImplementation()

Construit un objet QDomImplementation.

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

Construit 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 avec le type de document doctype. Cette fonction ajoute également un nœud d'élément racine avec le nom qualifié qName et l'URI de l'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'identifiant 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'identifiant 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 ne peut y avoir d'identifiant public sans identifiant système, l'identifiant public prend la valeur d'une chaîne vide s'il n'y a pas d'identifiant système.

DOM niveau 2 ne supporte aucune autre caractéristique 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 avec ce type de document.

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 en utilisant le constructeur vide par défaut. Le document résultant est nul, mais devient non nul lorsqu'une fonction d'usine, par exemple QDomDocument::createElement(), est appelée. Le document devient également non nul lorsque setContent() est appelé.

Voir aussi createDocument().

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

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

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 ce qu'il convient de faire lorsqu'une fonction d'usine de QDomDocument reçoit des données non valides.

Attention : Cette fonction n'est pas réentrante.

Voir aussi 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 en matière de données non valides, qui précise ce qu'il convient de faire lorsqu'une fonction d'usine de QDomDocument reçoit des données non valides.

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

Attention : Cette fonction n'est pas réentrante.

Voir aussi 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 QDomDocuments 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 du même 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.