XML-Dokumentation für C++-Code
Nach oben zu Compiler-Ausgabe als XML
C++-Compiler der vorherigen Generation können eine XML-Datei mit den Deklarationen aus einer C++-Quelltextdatei und den einbezogenen Headern erzeugen. Die generierten Informationen ähneln den im C++-Klassen-Explorer angezeigten Informationen insofern, als dass beide Informationen aus der Symboltabelle des Compilers anzeigen.
Um diese Funktion zu aktivieren, wählen Sie Projekt > Optionen > C++-Compiler > Erweitert, und fügen Sie unter Weitere Optionen der Option "Weitere Optionen für die Übergabe an den Compiler" eine der unten aufgeführten Befehlszeilenoptionen hinzu.
Um diese Funktion in der Befehlszeile zu aktivieren, führen Sie den Befehlszeilen-Compiler mit einer der unten aufgeführten Befehlszeilenoptionen aus.
Das Format (Schema) der XML-Datei wird unter Globale XML-Deklarationen für die Compiler XML-Ausgabe beschrieben.
Inhaltsverzeichnis
Befehlszeilenoptionen für die XML-Ausgabe
-Zx
- XML-Ausgabe erzeugen
Die Option -Zx
veranlasst den Compiler, eine XML-Datei mit den Symbolen zu erzeugen, die während der Verarbeitung einer C++-Quelltextdatei und deren Headern gefunden wurden. Die Option -Zx
erzeugt beispielsweise für die folgende Quelltextdatei (test.cpp
) die unten gezeigte XML-Datei test.xml
:
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>
Sie können der Option -Zx
jede beliebige Kombination der folgenden Unteroptionen hinzufügen, um deren Verhalten zu ändern:
f
: Member des Basistyps weglassen.m
: Makros ausgeben.p
: Datei- und Zeilenposition ausgeben.
-Zxf - Vorfahrinformationen weglassen
Bei der Verarbeitung einer Klasse für die XML-Ausgabe erzeugt der Compiler standardmäßig Informationen über Member der Basistypen (Vorfahren) dieser Klasse. Die Unteroption f
weist den Compiler an, keine Informationen für Basistypen zu erzeugen. Die folgende Tabelle zeigt, wie die Unteroption f
die generierte .xml
-Datei für die Datei test.cpp
ändert.
test.xml
ohne die Unteroption 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
mit der Unteroption 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
- Positionsinformationen erzeugen
Die Unteroption p
weist den Compiler an, Attribute einzubeziehen, die die Datei und die Zeile jeder Deklaration beschreiben. Die folgende Tabelle zeigt die Datei test.xml
mit der aktivierten Unteroption p
.
test.xml
mit der Unteroption 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>