ILE RPG コンパイラーによって、記憶域の区域およびその区域内 のサブフィールドと呼ばれるフィールドのレイアウトを定義する ことができます。記憶域のこの区域は、データ構造と呼ばれます。
自由形式でデータ構造を定義するには、
DCL-DS 命令コードの後にデータ構造名とキーワードを指定します。
固定形式でデータ構造を定義するには、定義仕様書の 24 から 25 桁目に DS を
指定します。 
データ構造は、プログラム記述または外部記述とすることができます。 ただし、標識データ構造は プログラム記述のみです。
あるデータ構造を、LIKEDS キーワードを使用して別のデータ構造と同じように定義することができます。
プログラム記述データ構造は、自由形式定義では EXT または EXTNAME キーワード がないことによって識別され、固定形式定義では 22 桁目のブランクによって識別されます。プログラム記述データ構造のサブフィールド定義は、データ構造定義の直後に続 いていなければなりません。
外部記述データ構造 (自由形式定義
では EXT キーワードまたは EXTNAME キーワードによって識別され、
固定形式定義では 22 桁目の E によって識別される) のサブフィールド記述は外部記述ファイル
に入っています。コンパイル時に、ILE RPG コンパイラーは、外部名を使用してデータ構造サブ
フィールドの外部記述を見付けて、それを抜き出します。EXTNAME キーワード
が指定されていない場合、外部ファイル名にはデータ構造の名前が使用されます。 
外部サブフィールドの名前は、キーワード EXTFLD を使用してプログラム中で変 更することができます。 キーワード PREFIX を使用して、EXTFLD によって名前が変更されていない外部サ ブフィールド名に接頭部を追加することができます。 ファイル名が、外部ファイル名を使用したデータ構造の定義時に EXTNAME キーワ ードに指定されたパラメーターと同じであっても、データ構造サブフィールドは 、ファイル仕様書に指定された PREFIX キーワードの影響を受けないことに注 意してください。 追加のサブフィールドは、外部サブフィールドのリストの直後にプログラム記述 サブフィールドを指定することによって、外部記述データ構造に追加することが できます。
外部記述データ構造は LIKEREC キーワードを使用して定義することもできます。 
データ構造に CCSID(*EXACT) または CCSID(*NOEXACT) キーワードを指定することによって、
外部記述データ構造の英数字サブフィールドの CCSID を制御できます。
CCSID(*EXACT) を指定すると、英数字サブフィールドの CCSID はファイル内のフィールド
と同じ CCSID になります。
CCSID(*NOEXACT) を指定するか、または、データ構造に対して CCSID キーワードを指定しない
場合、英数字サブフィールドの CCSID は、英数字定義のデフォルト CCSID になります。
英数字 CCSID について詳しくは、CCSID(*EXACT | *NOEXACT) および CCSID(*CHAR : *JOBRUN | *UTF8 | *HEX | 番号) を
参照してください。 