Object Pascal コードの XML ドキュメント

提供: Appmethod Topics
移動先: 案内検索

XML 形式のコンパイラ出力 への移動


Object Pascal コンパイラでは、コンパイルしたソース コードの XML ドキュメントを生成できます。

この機能を有効にするには、[プロジェクト|オプション...|Object Pascal コンパイラ|コンパイルを選択し、[その他のオプション]下で[XML ドキュメントを生成する]オプションを有効にします。

コンパイラで生成される XML ドキュメントは、クラス、メソッド、変数などのコンパイラでの内部表現から作成されます。コンパイラで生成される XML ドキュメントを、手動で作成される XML インライン ドキュメントと混同しないでください。

メモ: 特定の Object Pascal(または C++)Appmethod プロジェクトの HTML ドキュメントを生成することができます。「プロジェクト ドキュメントを生成する」を参照してください。

生成される XML ファイルの形式(スキーマ)については、「コンパイラからの XML 出力のグローバル宣言」で説明しています。

ファイル C:\file.pas には、次の要素の定義が記述されているとします。

  • 列挙型: TFocus
  • クラス: TVideoCamera

列挙型

TFocus の定義は次のとおりです。

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

生成される XML ドキュメントは次のとおりです。

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

コンパイラで生成された XML ドキュメントにはソース コード コメントが含まれていることに注意してください(devnotes 要素を参照)。

クラス

TVideoCamera の定義は次のとおりです。

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;

生成される XML ドキュメントは次のとおりです(わかりやすくするために、TObject から継承された一部のメンバは割愛されています)。

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

関連項目