グループの例

このタスクについて

この例は、グループを使用してレコードの反復セットを解析するフラット・ファイル・スキーマを示しています。 次の入力フラット・ファイル・データの例で示すように、反復レコードのセットにはそれぞれ、異なるタイプのレコードが含まれています。

図 1. 入力フラット・ファイルの例

このデータ例で、反復セットの 1 番目、2 番目、および 3 番目のレコードは、それぞれタイプの異なるレコードです。 また、この例では、「タイプ・ライブラリー」タブに保管されたタイプがフラット・ファイル・スキーマでどのように使用されるかについても説明します。 この例では、フラット・ファイル・スキーマを初めから作成するのではなく、既存のフラット・ファイル・スキーマを表示およびテストします。

図 1 に表示された入力データの解析に使用するフラット・ファイル・スキーマを開き、表示し、テストするには、以下のようにします。

手順

  1. この例では、フラット・ファイル・スキーマは既に FlatFileSchemasExample プロジェクト内で作成されています。 フラット・ファイル・スキーマを表示するには、まず FlatFileSchemasExample プロジェクトを解凍する必要があります。
    1. Studio 内で定義されたデフォルト作成パスを見つけます。これは、新しいプロジェクトの作成先ディレクトリーです。 現行「デフォルト作成パス」を表示するには、「Studio」ツールバー・メニューから「ファイル」 > 「設定...」を選択します。 「設定」ダイアログ・ボックスが開きます。 現行「デフォルト作成パス」がペインの下部に表示されます。 デフォルトでは、「デフォルト作成パス」は次のディレクトリーにあります。

      C:¥Documents and Settings¥myLogin¥My Documents

      myLogin はご使用の Windows ログイン名です。

    2. FlatFileSchemasExample プロジェクトを構成するファイルを含む FlatFileSchemasExample.zip ファイルを見つけます。 Studio のインストール時にデフォルトを受け入れた場合、このファイルは次のディレクトリーにあります。

      C:¥Program Files¥IBM¥WebSphere Cast Iron Studio 3.X¥Samples¥FlatFileSchema

    3. FlatFileSchemasExample.zip ファイルを FlatFileSchema ディレクトリーから「デフォルト作成パス」ディレクトリーにコピーします。
    4. FlatFileSchemasExample.zip ファイルの内容を「デフォルト作成パス」ディレクトリーに解凍します。
  2. FlatFileSchemasExample プロジェクトを開きます。
    1. Studio」ツールバー・メニューから「ファイル」 > 「プロジェクトを開く...」を選択します。 開く」ダイアログ・ボックスが表示されます。
    2. FlatFileSchemasExample ディレクトリーを参照して開きます。
    3. FlatFileSchemasExample.sp3 ファイルをクリックし、「開くをクリックします。 プロジェクトが表示されます。
  3. 事前に作成された vegPO フラット・ファイル・スキーマを開きます。 「プロジェクト」タブの「フラット・ファイル・スキーマ」フォルダーで、vegPO フラット・ファイル・スキーマをダブルクリックします。 vegPO フラット・ファイル・スキーマの各ノードが「スキーマ・レイアウト」タブに表示され、vegPO ルート・ノードのプロパティーが右ペインに示されます。
  4. vegPO フラット・ファイル・スキーマをテストします。
    1. テスト・ペインで、「参照」をクリックします。 サンプル・テスト・データ・ファイルを開く」ダイアログ・ボックスが開きます。
    2. 入力データが入っている vegPO.txt ファイルを参照します。 Studio のインストール時にデフォルトを受け入れた場合、このファイルは次のディレクトリーにあります。

      C:¥Program Files¥IBM¥WebSphere Cast Iron Studio 3.X¥Samples¥FlatFileSchema

    3. 開く」をクリックします。 vegPO.txt ファイルからの入力データが「テスト」タブの左ペインに表示されます。
    4. テスト」(テスト・アイコン) アイコンをクリックします。 結果ペインに、変換の結果が XML データとして表示されます。
  5. スキーマ・レイアウト」タブで、vegPO ルート・ノードをクリックします。 vegPO ルート・ノードが以下のプロパティーとともに表示されます。
    1. 構造」プロパティーは「区切り (Delimited)」と同じです。 ルート・ノードの構造は区切り文字で区切られます。
    2. 子区切り文字」は「行の末尾」と同じです。 子レコードは行末で区切られます。
    3. 子区切り文字の位置」は「」と同じです。 各レコードの後に区切り文字が必要です。
    4. 反復 (Repeat)」区切り文字は「行の末尾」と同じです。 反復レコードも行末で区切られます。
  6. スキーマ・レイアウト」タブで orderingStore ノードをクリックします。 次の図に示すように、テスト・ペイン内で入力データの先頭行が強調表示されます。
    VegPO ヘッダーの図

    vegPO フラット・ファイル・スキーマの最初のレコードは、一度しか発生しない、orderingStore と呼ばれるヘッダー・レコードです。 「スキーマ・レイアウト」タブには、orderingStore レコードを構成するフィールドおよびレコードが子として表示されます。 この先頭行が解析され、orderingStore レコードを構成するフィールドおよびレコードに入れられます。

    最初のヘッダー・レコードの後に、反復エレメントのセットが始まります。 反復エレメントの各セットには、次の図に示すように、それぞれ異なるタイプの 3 つの子レコードが含まれています。

    異なるタイプの 3 つの子レコードを含む反復エレメントのセットを示す VegPO。

    フラット・ファイル・スキーマ・エディターでグループを使用して、異なるタイプの子レコードを含む反復レコードをモデル化できます。 複数のレコードを含む反復の始まりと終わりを明確に示す追加の区切り文字または構造がデータで提供されていない場合にのみ、グループが必要になります。 反復の区切り文字は、親レコードまたはルート・ノードから継承されます。 vegPO ルート・ノードのこの例では、反復の区切り文字は行末に設定されています。 orders グループ・ノードは、行末区切り文字を使用して、反復レコードを解析します。

  7. スキーマ・レイアウト」タブで、orders グループ・ノードをクリックします。 ペインで以下のグラフィックが変化することに注目してください。
    • テスト・ペインの左サブペインで、ヘッダー行の後にあるすべての行が強調表示されます。 この強調表示は、解析後に、先頭レコードの後にあるすべてのレコードが orders グループ・ノードに割り当てられたことを示します。
    • 基本プロパティー」ペインで、orders グループの「オカレンス」は「上限なし」です。 この設定は、このグループの 1 つ以上のインスタンスが存在可能であることを意味します。
    • 基本プロパティー」ペインで、orders グループの「タイプ」は order と同じです。 この設定は、orders グループが order グループ・タイプに基づくことを意味します。 order グループ・タイプの内容およびプロパティーは、「タイプ・ライブラリー」タブで定義されています。
  8. タイプ・ライブラリー」タブを選択します。 vegPO フラット・ファイル・スキーマで使用されるレコード・タイプおよびグループ・タイプが表示されます。 次の図に示すように、order グループ・タイプには 3 つのレコードが含まれています。
    vegPO order グループ

    次のアイコンは、レコード・タイプに基づくレコードを表します。

    タイプに基づくレコードのアイコン。

    order グループ・タイプの orders グループは、以下の特性を持つため、異なるレコードから成る反復レコードのセットを定義します。

    • orders グループのインスタンスは 1 つ以上存在可能です。
    • order グループ・タイプにはタイプが異なる 3 つのレコードが含まれます。
    • orders グループは、order グループ・タイプに基づくか、このグループ・タイプから継承されます。
    次の図は、orders グループと order グループ・タイプの反復関係を示しています。
    vegPO 反復パターン
  9. タイプ・ライブラリー」タブで、order グループ・タイプの id レコード・ノードをクリックします。 ペインで以下のグラフィックが変化することに注目してください。
    • 「基本プロパティー」ペインで、id レコードの「タイプ」は、orderID という名前のレコード・タイプと同じです。 この設定は、id レコードが orderID レコード・タイプに基づくことを意味します。
    • 次の図に示すように、テスト・ペインの左サブペインで、各反復レコードの先頭行が強調表示されます。
      VegPO テスト ID
      この強調表示は、各反復レコードの先頭行が id レコードに割り当てられていることを示します。
  10. タイプ・ライブラリー」タブで、order グループ・タイプの shipdate レコード・ノードをクリックします。 ペインで以下のグラフィックが変化することに注目してください。
    • 「基本プロパティー」ペインで、shipdate レコードの「タイプ」は、shippingDate という名前のレコード・タイプと同じです。 この設定は、shipdate レコードが shippingDate レコード・タイプに基づくことを意味します。
    • 「基本プロパティー」ペインで、shipdate レコードの「構造」は「定位置」です。 この設定は、shipDate レコードの子フィールドが、区切り文字によってではなく、レコード内のフィールドの位置と長さによって判別されることを意味します。
    • 次の図に示すように、テスト・ペインの左サブペインで、各反復レコードの 2 行目が強調表示されます。
      この図は、各レコードの 2 行目 (shipDate 行) が強調表示されていることを示しています。
      この強調表示は、各反復レコードの 2 行目が shipDate レコードに割り当てられていることを示します。 shipDate レコードには、shippingDate レコード・タイプから継承された、3 つの定位置子フィールド (「month」、「day」、および「year」) が含まれています。
  11. タイプ・ライブラリー」で、month レコード・タイプの「month」フィールド・ノードをクリックします。 次の図に示すように、テスト・ペインの左サブペインで、「month」フィールドに割り当てられた値が強調表示されます。
  12. タイプ・ライブラリー」で、order グループ・タイプの contents レコード・ノードをクリックします。 ペインで以下のグラフィックが変化することに注目してください。
    • 「基本プロパティー」ペインで、contents レコードの「タイプ」は、orderContent という名前のレコード・タイプと同じです。 この設定は、contents レコードが orderContent レコード・タイプに基づくことを意味します。
    • 次の図に示すように、テスト・ペインの左サブペインで、各反復レコードの 3 行目が強調表示されます。
      この図は反復レコード (野菜の名前とポンド表記の重さを示す) の 3 行目が強調表示されていることを示しています。
      orderContent レコード・タイプには、vegetables レコードが含まれています。 vegetables レコードには、vegetable レコードの反復セットが含まれています。 vegetable レコードには、「name」フィールドおよび「pounds」フィールドが含まれています。
  13. タイプ・ライブラリー」で、orderContent レコード・タイプの name レコード・ノードをクリックします。 次の図に示すように、テスト・ペインの左サブペインで、「name」フィールドに割り当てられた値が強調表示されます。
    この図は「name」フィールドに割り当てられた値が強調表示されていることを示しています。