Documentation XML pour le code C++
Remonter à Sortie XML du compilateur
Les compilateurs C++ de précédente génération peuvent générer un fichier XML avec les déclarations d'un fichier source C++ et les en-têtes inclus. Ces informations générées sont similaires aux informations affichées par l'explorateur de classes C++, dans le sens où les deux affichent les informations de la table de symboles du compilateur.
Par activer cette fonctionnalité, sélectionnez Projet > Options > Compilateur C++ > Avancées puis, sous Autres options, ajoutez l'une des options de la ligne de commande listée ci-dessous à l'option "Autres options à transmettre au compilateur".
Pour activer cette fonctionnalisé sur la ligne de commande, exécutez le compilateur en ligne de commande en utilisant l'une des options de ligne de commande listées ci-dessous.
Le format (schéma) du fichier XML est décrit dans Déclarations globales de sortie du compilateur XML.
Sommaire
Options de commande pour la sortie XML
-Zx
- Générer la sortie XML
L'option -Zx
invite le compilateur à générer un fichier XML des symboles rencontrés lors du traitement d'un fichier source C++ et de ses en-têtes. Par exemple, avec le fichier source suivant (test.cpp
), l'option -Zx
produit le fichier XML test.xml
présenté ci-dessous :
test.cpp
:
class TBase {
int id;
};
class TDerived : public TBase {
char *name;
};
test.xml
:
<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
<class name="TBase" visibility="public">
<members>
<field name="id" type="int" visibility="private" />
</members>
</class>
<class name="TDerived" visibility="public">
<ancestor name="TBase">
<fieldref name="id" visibility="private" />
</ancestor>
<members>
<field name="name" type="char *" visibility="private" />
</members>
</class>
</file>
Vous pouvez ajouter toute combinaison des sous-options suivantes à l'option -Zx
pour modifier son comportement :
f
: ignorer les membres type de base.m
: émettre les macros.p
: émettre le fichier et la position de la ligne.
-Zxf - Ignorer les informations des ancêtres
Lors du traitement d'une classe pour la sortie XML par défaut, le compilateur génère des informations sur les membres des types de base (ancêtres) de cette classe. La sous-option f
indique au compilateur de ne pas générer des informations pour les types de base. Le tableau suivant illustre comment la sous-option f
change le .xml
généré pour le fichier test.cpp
.
test.xml
sans la sous-option f
:
<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
<class name="TBase" visibility="public">
<members>
<field name="id" type="int" visibility="private" />
</members>
</class>
<class name="TDerived" visibility="public">
<ancestor name="TBase">
<fieldref name="id" visibility="private" />
</ancestor>
<members>
<field name="name" type="char *" visibility="private" />
</members>
</class>
</file>
test.xml
avec la sous-option f
:
<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
<class name="TBase" visibility="public">
<members>
<field name="id" type="int" visibility="private" />
</members>
</class>
<class name="TDerived" visibility="public">
<members>
<field name="name" type="char *" visibility="private" />
</members>
</class>
</file>
-Zxp
- Générer les informations de position
La sous-option p
indique au compilateur d'inclure les attributs décrivant le fichier et la ligne de chaque déclaration. Le tableau suivant illustre test.xml
avec la sous-option p
activée.
test.xml
avec la sous-option p
:
<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
<class name="TBase" visibility="public" file="test.cpp" line="1">
<members>
<field name="id" type="int" visibility="private" file="test.cpp" line="2" />
</members>
</class>
<class name="TDerived" visibility="public" file="test.cpp" line="5">
<ancestor name="TBase">
<fieldref name="id" visibility="private" />
</ancestor>
<members>
<field name="name" type="char *" visibility="private" file="test.cpp" line="6" />
</members>
</class>
</file>