Sur cette page

QXmlNamespaceSupport Class

La classe `QXmlNamespaceSupport` est une classe d'aide destinée aux lecteurs XML qui souhaitent intégrer la prise en charge des espaces de noms. En savoir plus...

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

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QXmlNamespaceSupport()
~QXmlNamespaceSupport()
void popContext()
QString prefix(const QString &uri) const
QStringList prefixes() const
QStringList prefixes(const QString &uri) const
void processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const
void pushContext()
void reset()
void setPrefix(const QString &pre, const QString &uri)
void splitName(const QString &qname, QString &prefix, QString &localname) const
QString uri(const QString &prefix) const

Description détaillée

Vous pouvez définir le préfixe de l'espace de noms actuel à l'aide de la fonction setPrefix(), et obtenir la liste des préfixes actuels (ou ceux correspondant à un URI donné) à l'aide de la fonction prefixes(). L'URI de l'espace de noms est disponible via la fonction uri(). Utilisez la fonction pushContext() pour démarrer un nouveau contexte d'espace de noms, et la fonction popContext() pour revenir au contexte d'espace de noms précédent. Utilisez splitName() ou processName() pour décomposer un nom en son préfixe et son nom local.

Documentation des fonctions membres

QXmlNamespaceSupport::QXmlNamespaceSupport()

Crée un objet `QXmlNamespaceSupport`.

[noexcept] QXmlNamespaceSupport::~QXmlNamespaceSupport()

Supprime un objet de type « QXmlNamespaceSupport ».

void QXmlNamespaceSupport::popContext()

Rétablit le contexte d'espace de noms précédent.

En règle générale, vous devez supprimer le contexte à la fin de chaque élément XML. Une fois le contexte supprimé, tous les mappages de préfixes d'espaces de noms qui étaient auparavant en vigueur sont rétablis.

Voir également ` pushContext()`.

QString QXmlNamespaceSupport::prefix(const QString &uri) const

Renvoie l'un des préfixes associés à l'URI d'espace de noms uri.

Si plusieurs préfixes sont actuellement associés à la même URI, cette fonction en sélectionne un de manière aléatoire ; si vous souhaitez obtenir tous les préfixes, utilisez plutôt la fonction prefixes().

Remarque : pour vérifier s'il existe un préfixe par défaut, utilisez la fonction uri() avec l'argument « ».

Voir également setPrefix().

QStringList QXmlNamespaceSupport::prefixes() const

Renvoie une liste de tous les préfixes actuellement déclarés.

S'il existe un préfixe par défaut, cette fonction ne le renvoie pas dans la liste ; pour vérifier s'il existe un préfixe par défaut, utilisez la fonction uri() avec l'argument « ».

QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const

Renvoie une liste de tous les préfixes actuellement déclarés pour l'URI d'espace de noms uri.

Le préfixe « xml: » est inclus. Si vous ne souhaitez qu'un seul préfixe associé à l'URI d'espace de noms et que le choix de ce préfixe vous importe peu, utilisez plutôt la fonction prefix().

Remarque : le préfixe vide (par défaut) n’est jamais inclus dans cette liste ; pour vérifier la présence d’un espace de noms par défaut, appelez uri() avec « » comme argument.

Il s’agit d’une fonction surchargée.

void QXmlNamespaceSupport::processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const

Traite un nom XML 1.0 brut dans le contexte actuel en supprimant le préfixe et en le recherchant parmi les préfixes actuellement déclarés.

qname est le nom XML 1.0 brut à traiter. isAttribute est vrai si le nom est un nom d'attribut.

Cette fonction stocke l'URI de l'espace de noms dans ` nsuri ` (qui sera défini sur une chaîne vide si le nom brut comporte un préfixe non déclaré), et stocke le nom local (sans préfixe) dans ` localname ` (qui sera défini sur une chaîne vide si aucun espace de noms n'est utilisé).

Notez que les noms d’attributs sont traités différemment des noms d’éléments : un nom d’élément sans préfixe se voit attribuer l’espace de noms par défaut (le cas échéant), contrairement à un nom d’attribut sans préfixe.

void QXmlNamespaceSupport::pushContext()

Crée un nouveau contexte d'espace de noms.

En règle générale, vous devez insérer un nouveau contexte au début de chaque élément XML : le nouveau contexte hérite automatiquement des déclarations de son contexte parent et garde également en mémoire les déclarations effectuées au sein de ce contexte.

Voir également ` popContext()`.

void QXmlNamespaceSupport::reset()

Réinitialise cet objet de prise en charge de l'espace de noms afin qu'il soit prêt à être réutilisé.

void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)

Cette fonction déclare un préfixe pre dans le contexte d'espace de noms actuel comme correspondant à l'URI d'espace de noms uri. Le préfixe reste en vigueur jusqu'à ce que ce contexte soit supprimé de la pile, à moins qu'il ne soit masqué dans un contexte descendant.

Notez qu’il existe une asymétrie dans cette bibliothèque. La fonction ` prefix()` ne renvoie pas le préfixe par défaut « », même si vous en avez déclaré un ; pour vérifier l’existence d’un préfixe par défaut, vous devez le rechercher explicitement à l’aide de ` uri()`. Cette asymétrie a pour but de faciliter la recherche de préfixes pour les noms d’attributs, pour lesquels le préfixe par défaut n’est pas autorisé.

Voir également prefix().

void QXmlNamespaceSupport::splitName(const QString &qname, QString &prefix, QString &localname) const

Divise le nom qname au niveau du caractère « : » et renvoie le préfixe dans prefix et le nom local dans localname.

Voir aussi processName().

QString QXmlNamespaceSupport::uri(const QString &prefix) const

Recherche le préfixe « prefix » dans le contexte actuel et renvoie l'URI de l'espace de noms actuellement associé. Utilisez la chaîne vide (« ») pour l'espace de noms par défaut.

© 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.