XML-Dokumentation für Delphi-Code

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Ausgabe als XML


Delphi-Compiler können die XML-Dokumentation für den compilierten Quellcode generieren.

Um diese Funktion zu aktivieren, wählen Sie Projekt > Optionen > Delphi-Compiler > Compilieren, und aktivieren Sie unter Weitere Optionen die Option "XML-Dokumentation erzeugen".
Um diese Funktion in der Befehlszeile zu aktivieren, führen Sie den Befehlszeilen-Compiler mit der Option --doc aus.

Die vom Compiler generierte XML-Dokumentation wird anhand der internen Repräsentation erstellt, die der Compiler für Klassen, Methoden, Variablen usw. verwendet. Verwechseln Sie die XML-Dokumentation, die der Compiler erzeugt, nicht mit der manuell erstellten XML-Inline-Dokumentation.

Hinweis: Für bestimmte Delphi- (oder C++-)Projekte in RAD Studio können Sie eine HTML-Dokumentation generieren. Siehe Projektdokumentation erzeugen.

Das Format (Schema) der XML-Datei wird unter Globale XML-Deklarationen für die Compiler XML-Ausgabe beschrieben.

Beispiel

Die Datei C:\file.pas enthält die Definition:

  • Einer Aufzählung: TFocus.
  • Einer Klasse: TVideoCamera.

Aufzählung

TFocus-Definition:

/// <summary>
/// For objects located closer than 10 meters, use fcNear;
/// otherwise use fcFar.
/// </summary>
TFocus = (fcNear, fcFar);

Generierte XML-Dokumentation:

<const name="fcNear" type="TFocus" file="C:\file.pas" line="13">
  <value>
    fcNear
  </value>
</const>
<const name="fcFar" type="TFocus" file="C:\file.pas" line="13">
  <value>
    fcFar
  </value>
</const>
<enum name="TFocus" file="C:\file.pas" line="13">
  <devnotes>
      <summary>
      For objects located closer than 10 meters, use fcNear;
      otherwise use fcFar.
      </summary>
  </devnotes>
  <element value="0" name="fcNear" file="C:\file.pas" line="13" />
  <element value="1" name="fcFar" file="C:\file.pas" line="13" />
</enum>

Beachten Sie bitte, dass die Kommentare in der XML-Dokumentation in der vom Compiler generierten XML-Dokumentation enthalten sind (siehe die Elemente devnotes).

Klasse

TVideoCamera-Definition:

TVideoCamera = class
private
  FFocus: TFocus;
public
  property Focus: TFocus read FFocus write FFocus;
  procedure SetFocus(ADistance: Integer);
end;

procedure TVideoCamera.SetFocus(ADistance: Integer);
begin
  if ADistance < 10 { meters } then
    FFocus := fcNear
  else
    FFocus := fcFar;
end;

Generierte XML-Dokumentation (einige von TObject geerbte Member wurden aus Gründen der Übersichtlichkeit entfernt):

<class name="TVideoCamera" file="C:\file.pas" line="15">
  <ancestor name="TObject" namespace="System">
    <methodref name="Create" visibility="public" procflags="constructor">
    </methodref>
    <methodref name="Free" visibility="public">
    </methodref>
  </ancestor>
  <members>
    <field name="FFocus" type="TFocus" visibility="private" size="1" offset="4" file="C:\file.pas" line="17" />
    <property name="Focus" visibility="public" read="FFocus" write="FFocus" type="TFocus" file="C:\file.pas" line="19" />
    <procedure name="SetFocus" visibility="public" file="C:\file.pas" line="20">
      <parameters>
        <parameter name="ADistance" type="Integer" />
      </parameters>
    </procedure>
  </members>
</class>

Siehe auch