ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Busでのサービスの開発
12c (12.2.1)
E69914-01
  目次へ移動
目次

前
次
 

23 Message Format Languageを使用したデータ構造の定義

この章では、JDeveloperでMFL構造を定義するための手順を説明します (MFL構造は、XML形式と非XML形式の間でデータを自動的に変換するためにXQuery Mapperツールで使用できます)。また、Oracle Service BusコンソールでプロジェクトにMFLリソースを追加する方法についても説明します。

この章の内容は次のとおりです。

23.1 Format Builderの概要

Format Builderツールは、非XMLデータ・レコードの記述を作成するのに役立ちます。これにより、非XMLデータのレイアウトと階層を記述して、XMLと相互に変換できるようになります。また、バイト・シーケンスをフィールドとして記述できます。各フィールドには、データ型(浮動小数点、文字列など)、データ・サイズ、フィールド名の記述を含めます。Format Builderではさらに、フィールドのグループ化(グループ)、フィールドやグループの繰り返し、および集約を定義できます。

23.1.1 MFLファイルについて

Format Builderで作成した記述は、Message Format Language (MFL)と呼ばれるXML文法で保存されます。MFLドキュメントは、非XMLデータ・レコードのインスタンスをXMLドキュメントのインスタンス(またはその逆)に変換するために実行時に使用されます。MFL(メッセージ・フォーマット言語)ドキュメントは、バイナリ・データのレイアウトの記述に使用する特殊なXMLドキュメントです。これは、フォーマットされたバイナリ・データをXMLデータに変換するルールの定義に使用できるOracle独自の言語です。MFLドキュメントはmfl.dtdに準拠し、データの各フィールドに加え、フィールドのグループ化(グループ)、繰返し、および集約を記述する要素および属性を含みます。

メッセージ・サービス・タイプのビジネス・サービスやプロキシ・サービスを作成するとき、サービスのリクエスト・メッセージ・タイプまたはレスポンス・メッセージ・タイプとしてMFLタイプを選択できます。

23.1.2 フォーマット、フィールドおよびグループの有効な名前

メッセージ・フォーマット、フィールド、およびグループは、名前によって識別されます。この名前は、非XMLデータがXMLに変換されるときにXMLタグとして使用されます。そのため、名前はXMLの命名規則に準拠する必要があります。

次に名前フォーマットのガイドラインを示します。

  • 先頭は文字またはアンダースコアでなければなりません。

  • 文字、数字、コロン、ピリオド記号、ハイフン記号、およびアンダースコア記号を使用できます。

次に有効な名前の例を示します。

MyField
MyField1
MyField_again
MyField-again

次に無効な名前の例を示します。

1MyField - 先頭に数字を使用できません。

My>Field - 不等号(>)は無効な文字です。

My Field - スペースは使用できません。

My/Field - バック・スラッシュ(/)は無効な文字です。

My\Field - フォワード・スラッシュ(\)は無効な文字です。

My:Field - セミコロン(;)は無効な文字です。

23.1.3 サポートされる文字デリミタ

Format Builderで正しい構文を入力して、デリミタを指定できます。たとえば、タブ文字(\u009)をデリミタとして指定する場合、これに一致する構文\tを入力します。

表23-1 文字デリミタ

構文 一致
x

文字x

\\

バックスラッシュ

\0n

8進値0n (<= n <= 7)を含む文字

\0nn

8進値0nn (0 <= n <= 7)を含む文字

\0mnn

8進値0mnn (0 <= m <= 3、0 <= n <= 7)を含む文字

\xhh

16進値0xhhを含む文字

\uhhhh

16進値0xhhhhを含む文字

\xff

ファイルの終わり(EOF)文字

\t

タブ文字(\u0009)

\n

改行(ライン・フィード)文字(\u000A)

\r

キャリッジ・リターン文字(\u000D)

\f

改ページ文字(\u000C)

\a

アラート(ベル)文字(\u0007)

\e

エスケープ文字(\u001B)

\cx

xに対応する制御文字

詳細は、http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.htmlを参照してください。

23.2 Oracle Service BusコンソールでのMFLリソースの操作

JDeveloperでFormat Builderを使用してバイナリ・レコードの階層構造、フィールドのレイアウト、フィールドとグループのグループ化を定義すると、この情報は、実行時変換を実行するために使用できるMFLドキュメントとして保存されます。Format BuilderでMFLドキュメントを使用して、それに対応するDTDを生成することもできます。

23.2.1 コンソールでのMFLリソースの作成方法

JDeveloperのFormat Builderを使用してメッセージ・フォーマットを定義します。Oracle Service Busコンソールを使用している場合、MFLリソースを作成して、JDeveloperですでに作成済のMFLファイルをアップロードできます。MFLリソースはコンソールにインポートすることもできます。詳細は、「リソースおよび構成のインポートとエクスポート」を参照してください。次の手順を使用して、MFLファイルをMFLリソースにアップロードします。

始める前に

「MFLメッセージ構造の作成」に従って、JDeveloperのFormat BuilderでMFLファイルを作成します。

コンソールでMFLリソースを追加するには:

  1. プロジェクト・ナビゲータで、新しいMFLファイルを含めるプロジェクトまたはフォルダを右クリックし、「作成」をポイントして「リソース」を選択します。「変換」をクリックし、「MFL」「OK」の順にクリックします。

    「MFLの作成」ダイアログが表示されます。

  2. 「ファイルのアップロード」フィールドの横の「参照」をクリックし、JDeveloperで作成したMFLファイルに移動してこれを選択します。

    「リソース名」フィールドに、ファイル拡張子なしのファイル名が自動的に移入されます。この名前は変更可能です。

  3. 必要に応じて、リソースの簡単な説明を入力します。

  4. 「作成」をクリックします。

    MFL定義エディタにMFLファイルのテストが表示されます。

  5. スキーマを変更するには、次のように実行します。

    1. ツールバーの「ソースの編集」をクリックします。

      「ソースの編集」ダイアログが表示されます。

    2. アップロードする新しいMFLファイルを参照して選択するには、「参照」をクリックします。

    3. ファイルのコンテンツを変更するには、ダイアログの「コンテンツ」セクションでコードを直接更新します。

    4. 「保存」をクリックします。

  6. MFL定義エディタのツールバーで、「保存」をクリックします。

  7. セッションを終了して構成をランタイムにデプロイするには、「アクティブ化」をクリックします。

23.2.2 コンソールでのMFLリソースの編集方法

MFLファイルを変更するには、JDeveloperのFormat Builderを使用することをお薦めします。Format Builderでの操作方法の詳細は、「MFLメッセージ構造の作成」を参照してください。

Oracle Service Busコンソールを使用している場合は、JDeveloperから更新済ファイルをアップロードするか、コンソールでコードを直接変更(お薦めしません)できます。

コンソールでMFLリソースを更新するには:

  1. プロジェクト・ナビゲータで、編集するMFLリソースが含まれているプロジェクトおよびフォルダを開きます。
  2. リソース名を右クリックし、「開く」を選択します。
  3. ツールバーの「ソースの編集」をクリックします。

    「ソースの編集」ダイアログが表示されます。

  4. アップロードする新規または更新済MFLファイルを参照して選択するには、「参照」をクリックします。
  5. ファイルのコンテンツを変更するには、ダイアログの「コンテンツ」セクションでコードを直接更新します。
  6. 「保存」をクリックします。
  7. MFL定義エディタのツールバーで、「保存」をクリックします。
  8. セッションを終了して構成をランタイムにデプロイするには、「アクティブ化」をクリックします。

23.3 MFLメッセージ構造の作成

MFLメッセージ構造には、1つ以上のフィールド、フィールド・グループ、参照およびコメントを含めることができます。

23.3.1 Format Builderでのドラッグ・アンド・ドロップの使用

Format Builderのドラッグ・アンド・ドロップ機能を使用して、ツリー・ビューの項目をコピーまたは移動できます。項目を移動するには、項目を新しい場所にドラッグ・アンド・ドロップするだけです。項目をコピーするには、[CTRL]キーを押したまま項目をドラッグ・アンド・ドロップします。

23.3.2 JDeveloperでのMFLファイルの作成方法

MFLファイルを作成すると、メッセージ書式ファイルのルート・ノードが、MFLファイルに指定した同じ名前で自動的に生成されます。このルート・ノード名は、変換後のXMLドキュメントのルート要素になるため、XML要素の命名規則に準じている必要があります。

JDeveloperでMFLファイルを作成するには:

  1. アプリケーション・ナビゲータで、新しいMFLリソースを含めるプロジェクトまたはフォルダを右クリックし、「新規」をポイントして「MFL」を選択します。

    「MFLの作成」ダイアログが表示されます。

  2. 名前と、必要に応じてリソースの簡単な説明を入力します。
  3. 「終了」をクリックします。

    Format Builderが表示されます。

  4. 次のいずれかの手順を使用してメッセージ書式を定義します。

23.3.3 グループを作成する方法

グループは、何らかの関連がある複数のフィールドを定義します(たとえば、PAYDATEフィールド、HOURSフィールド、RATEフィールドをPAYINFOグループに入れることができます)。グループを、メッセージ・フォーマット項目の子、別のグループの子、あるいはグループまたはフィールドの兄弟として作成できます。

グループを作成するには:

  1. 左ペインのツリー・ビューでノードを選択します。
  2. メッセージ・フォーマットまたは別のグループの子としてグループを作成する場合、「挿入」「グループ」子としてを選択します。別のグループまたはフィールドの兄弟としてグループを作成する場合、「挿入」「グループ」兄弟としてを選択します。グループの詳細ウィンドウが右ペインに表示されます。
  3. フィールドに適切なデータを入力します。

    詳細と手順は、「MFLメッセージ構造の構成」および「グループ構成ウィンドウ」を参照してください。

  4. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.3.4 フィールドの作成方法

フィールドとは、アプリケーションにとって何らかの意味を持つバイト・シーケンスです(たとえば、フィールドEMPNAMEには、従業員名が格納されます。)フィールドは、メッセージ・フォーマット項目の子、グループの子、あるいはグループまたは別のフィールドの兄弟として作成できます。

フィールドを作成するには:

  1. 左ペインのツリー・ビューでノードを選択します。
  2. メッセージ・フォーマットまたはグループの子としてフィールドを作成する場合、「挿入」「フィールド」子としてを選択します。別のグループまたはフィールドの兄弟としてグループを作成する場合、「挿入」「フィールド」兄弟としてを選択します。フィールドの詳細ウィンドウが右ペインに表示されます。
  3. フィールドに適切なデータを入力します。

    詳細と手順は、「MFLメッセージ構造の構成」および「フィールド構成ウィンドウ」を参照してください。

  4. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.3.5 グループまたはフィールドの参照方法

参照では、データを再入力しないで、事前に定義したフィールドまたはグループ・フォーマットの記述を再使用することを指定します。参照フィールドまたは参照グループのフォーマットは元のフィールドまたはグループと同じですが、参照フィールドまたは参照グループのOptional設定とOccurrence設定だけは変更できます。たとえば、「請求先」住所と「届け先」住所がデータに含まれ、その住所フォーマットが同じである場合、住所フォーマットの定義は1回で済みます。「請求先」住所定義を作成し、「届け先」住所には参照を作成します。

注意:

参照には、元の項目と同じ名前が付けられます。たとえば、「請求先」住所定義と「届け先」住所定義には同じ名前が付けられます。グループ定義を再使用する場合、汎用的なグループを作成し、そのグループを特定のグループに埋め込みます。たとえば、前の例では、「請求先」グループ内に「住所」グループを作成し、「届け先」グループ内で「住所」グループを参照します。

グループまたはフィールドを参照するには:

  1. ツリー・ペインでフィールドまたはグループを選択します。
  2. 「編集」「コピー」を選択します。
  3. ツリーで正しい兄弟を選択します。
  4. 「編集」「貼付け」「参照として」を選択します。
  5. フィールドに適切なデータを入力します。

    詳細と手順は、「MFLメッセージ構造の構成」および「Format Builderの参照構成ウィンドウ」を参照してください。

  6. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.3.6 コメントの追加方法

コメントは、メッセージ・フォーマットまたはメッセージ・フォーマットによって変換されるデータについてのメモです。コメントはメッセージ・フォーマット定義に含まれますが、情報提供のみを目的とします。コメントは、任意のメッセージ・フォーマット、グループ、またはフィールドの子または兄弟として作成できます。

コメントを追加するには:

  1. 左ペインのツリー・ビューで項目を選択します。
  2. 選択した項目の子としてコメントを作成する場合、「挿入」「コメント」子としてを選択します。選択した項目の兄弟としてコメントを作成する場合、「挿入」「コメント」兄弟としてを選択します。コメントの詳細ウィンドウが右ペインに表示されます。
  3. コメント・テキストを入力します。
  4. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.4 MFLメッセージ構造の構成

フィールド、グループまたは参照を作成したら、ノードを繰り返すかどうか、繰り返す回数、ノードが固定長か、区切られているかなどの特定の属性を構成できます。

23.4.1 ノードの繰返しの作成方法

ノードは、一定回数、メッセージで指定された回数または無制限に繰り返すことができます。

ノードの繰返しを作成するには:

  1. 左ペインのツリー・ビューで、繰返しを作成するグループ、フィールドまたは参照をダブルクリックします。
  2. 「発生」セクションで、次のいずれかの手順を実行します。
    • 繰返しを示すデリミタを指定するには、繰返しのデリミタを選択し、関連付けられたフィールドにデリミタ値を入力します。

    • 繰返し回数を示すメッセージ内のフィールドを指定するには、繰返しフィールドを選択し、使用可能なオプションのリストからフィールドの名前を選択します。

    • 一定回数のノードの繰返しを構成するには、繰返し回数を選択し、関連付けられたフィールドに回数を入力します。

    • ノードを無制限に繰り返すことができる場合は、「無制限」を選択します。

  3. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.4.2 デリミタの定義方法

可変長のデータ型の終了点をデリミタで指定できます。デリミタとは、フィールドの終わりをマークする文字。フィールド・データはデリミタが見つかるまで続きます。デリミタは参照または値によって指定できます。

23.4.2.1 参照によるデリミタの指定

参照によってデリミタを指定するには:

  1. 左ペインのツリー・ビューでグループまたはフィールドを選択します。
  2. 「終了」セクションで、「デリミタ」を選択します。

    「属性」セクションが表示されます。

  3. 参照フィールドをクリックします。

    参照フィールドの選択ダイアログが表示されます。

    図23-1 参照フィールドの選択

    「図23-1 参照フィールドの選択」の説明が続きます
    「図23-1 参照フィールドの選択」の説明
  4. 左ペインで参照フィールドを選択し、右矢印ボタンをクリックして、それらを右側の選択済ペインに移動します。
  5. 「OK」をクリックします。
  6. 「値」フィールドには、メッセージ内に参照フィールドが存在しない場合のデフォルト・デリミタを入力します。
  7. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.4.2.2 値によるデリミタの指定

値によってデリミタを指定するには:

  1. 左ペインのツリー・ビューでグループまたはフィールドを選択します。
  2. 「終了」セクションで、「デリミタ」を選択します。

    「属性」セクションが表示されます。

  3. 「値」フィールドにデリミタを入力します。複数のデリミタを入力する場合は、指定されたセパレータ文字で区切ります。

    たとえば、次のリストでは、デリミタをカンマ、チルダまたはセミコロンにすることができます。セパレータはパイプ(|)です。

    ,|~|;
    
  4. このフィールドがオプションの場合は、「オプション」チェック・ボックスを選択します。フィールドが存在しない場合でもバイナリ・データにデリミタが含まれるようにするには、チェック・ボックスを選択解除します。
  5. 「適用」をクリックしてメッセージ・フォーマット・ファイルへの変更を保存するか、「リセット」をクリックして詳細ウィンドウへの変更を破棄し、すべてのフィールドを最後に保存された値にリセットします。

23.5 メタデータのインポートと変換

Format Builderでは、COBOLコピーブックやgXMLガイドライン・ファイルをインポートしたり、C構造定義をMFLメッセージ定義に変換したりできます。

23.5.1 ガイドラインXMLファイルの変換方法

Format Builderでは、ガイドラインXML (gXML)ファイルをインポートしてメッセージ定義に変換でき、メッセージ定義は、ユーザーがニーズに合わせて変更およびカスタマイズできます。gXMLは、XMLを使用するビジネス・ドキュメント(発注書、請求書など)の電子商取引ガイドラインの交換を促進するために設計されたオープンな仕様です。このリリースではgXMLバージョン0.71がサポートされています。

gXMLファイルを変換するには:

  1. 「ツール」「インポート」EDI Importerを選択します。

    EDI Importerダイアログが表示されます。

  2. gXMLファイルのパスと名前を入力するか、「参照」をクリックして使用するファイルまで移動して選択します。
  3. 「OK」をクリックします。

23.5.2 XMLスキーマの変換方法

Format Builderでは、非XMLドキュメントのXML表現を適切に表すXMLスキーマをインポートできます。この機能により、非XMLドキュメントのフォーマットを指定する作業をすぐに始めることができます。

XMLスキーマを変換するには:

  1. 「ツール」「インポート」XML Schema Importerを選択します。

    XML Schema Importerダイアログが表示されます。

  2. XMLスキーマ・ファイルのパスと名前を入力するか、「参照」をクリックして使用するファイルまで移動して選択します。
  3. 「ルート要素」フィールドで、MFLファイルのルート・ノードとして使用するXMLスキーマの要素を選択します。
  4. 「MFLフィールド・デリミタのデフォルト」フィールドで、デリミタのデフォルト値を入力します。
  5. 「OK」をクリックします。

23.5.3 COBOLコピーブックの変換方法

Format Builderでは、COBOLコピーブックをFormat Builderにインポートして、COBOLデータを変換するためのメッセージ定義を作成できます。コピーブックのインポート時には、インポートされるコピーブックとそれに含まれるグループおよびフィールドを説明するためにコメントが使用されます。

COBOLコピーブックを変換するには:

  1. 「ツール」「インポート」COBOL Copybook Importerを選択します。

    COBOL Copybook Importerダイアログが表示されます。

  2. COBOLコピーブック・ファイルのパスと名前を入力するか、「参照」をクリックして使用するファイルまで移動して選択します。
  3. 次のいずれかを選択します。
    • ビッグ・エンディアン: バイト・オーダーをビッグ・エンディアンに設定します。

      注意: このオプションは、IBM 370、Motorola、および大半のRISC設計(IBMメインフレームやほとんどのUNIXプラットフォーム)に使用されます。

    • リトル・エンディアン: バイト・オーダーをリトル・エンディアンに設定します。

      注意: このオプションは、Intel、VAXおよびUnisysプロセッサ(Windows、VMS、Digital、UNIXおよびUnisys)に使用されます。

  4. 次のオプションから文字セットを選択します。
    • EBCDIC

    • US-ASCII

      : これらの2つの値は、インポート元のホスト・マシンの属性です。

    • その他(このオプションを選択した場合は、使用可能なオプションのリストから文字セットを選択する必要があります。

    インポートしたコピーブックは、他のメッセージ・フォーマット定義と同じように使用できます。コピーブックにエラーやサポートされていないデータ型が含まれている場合は、警告メッセージによりエラーが通知されます。エラーを表示するか、または今後の参考にエラーをログ・ファイルに保存するかを選択できます。

23.5.4 C構造の変換方法

Format Builderには、MFLまたはCコード出力を生成してC構造体定義をMFLメッセージ定義に変換するためのC Struct Importerユーティリティが含まれています。

MFLへの変換を定義する場合、MFLを直接生成するには、プロファイルの構成データをいくつか入力する必要があります。これらのデータ入力は、ハードウェア・プロファイルを新しく作成するか、または既存のプロファイルを指定して行うことができます。正常に生成されると、Format Builderのメイン・ウィンドウが表示され、ナビゲーション・ツリーにMFLオブジェクトがリストされます。このMFLオブジェクトには、解析で使用された入力ファイルと同じ名前が付けられます。生成プロセスでエラーが検出された場合は、「MFL Generation Errors」ダイアログが表示されます。このダイアログを使用して、エラー・ログを表示するかまたはファイルとして保存することができます。発生したエラーを確認したら、「C Struct Importer」に戻って前の手順を繰り返すことができます。

C構造を変換するには:

  1. Format Builderのメイン・ウィンドウから、ツール「インポート」C Struct Importerを選択します。

    C Structure Importerダイアログが表示されます。

  2. インポートするファイルのパスと名前を入力するか、「参照」をクリックしてファイルまで移動して選択します。

  3. 「解析」をクリックします。

    「構造」フィールドに、選択したファイルで見つかった構造のリストが入力されます。

  4. 変換する構造を選択します。

  5. MFLデータを生成するには、次の手順を実行します。

    1. 「出力」の下の「MFL」オプションを選択します。

    2. 「構造」フィールドで、使用可能なオプションのリストから目的の構造を選択します。

    3. 「名前」フィールドでは、既存のハードウェア・プロファイルを選択するか、「新規」をクリックして新しいプロファイルを作成します。表示されたダイアログで、名前および説明を指定し、プリミティブ・データ型とバイト・オーダーを変更して、「OK」をクリックします。

      プロファイル・パラメータを参照または編集するには、「編集」をクリックしてハードウェア・プロファイル・エディタを開きます。

    4. 「OK」をクリックして、MFLファイルを生成します。

    5. エラー・ログの表示をクリックしてエラーを表示するか、エラー・ログの保存をクリックして指定した場所にエラー・ログを保存するか、「取消」をクリックしてMFL生成エラー・ダイアログ・ボックスを閉じます。

  6. Cコードを生成するには、次の手順を実行します。

    1. 「出力」の下の「Cコード」オプションを選択します。

    2. MFL生成フィールドまたはデータ生成フィールドにファイル名を入力するか、「参照」をクリックしてファイルを選択します。

    3. 「OK」をクリックします。

      既存ファイルの上書きに関する警告と、コード生成の成功または失敗を通知するメッセージが表示されます。

    4. 生成されたソース・コードを対象のプラットフォームにコピーし、ソース・コードをコンパイルして実行します。

      注意:

      構造体の宣言を含む入力ファイルもコピーする必要があります。コンパイルが完了すると、両方のプログラムで出力ファイル名の引数が取り込まれます。

    5. 生成されたMFLまたはデータを、Format Builderを実行しているプラットフォームにコピーします。

23.5.5 FMLフィールド表クラスの変換方法

FML Field Table Class Importerは、WebLogic Tuxedo ConnectorとBusiness Process Management (BPM)機能の統合を促進します。WebLogic Tuxedo ConnectorのFML/XML Translator機能によって、Tuxedoアプリケーション・バッファがXMLとの間で相互に変換されます。TuxedoをBPM機能と統合するには、WebLogic Tuxedo Connector Translatorとプロセス・エンジンとの間で受け渡しされるXMLを作成する必要があります。必要なXMLを作成するには、FML Field Table Class Importerと、Format TesterのXML生成機能を使用します。

始める前に

  1. FMLバッファと関連付けられているフィールド・テーブルを、TuxedoシステムからWebLogic Server/WebLogic Tuxedo Connector環境に移動します。

  2. weblogic/wtc/jatmi/mkfldclassユーティリティを使用して、フィールド表を表すJavaソース・コードを構築します。FMLフィールド表の管理の詳細は、WebLogic Serverのドキュメントを参照してください。

  3. ソース・コードをコンパイルします。生成されるクラス・ファイルは、FldTblインタフェースを実装するため、fldtblクラスと呼ばれます。これらのクラスは、FML Field Table Class Importerダイアログで選択できるJARファイルにパッケージする必要があります。

注意:

ほとんどのユーザーはWebLogic Tuxedo Connectorを構成するときにこの手順を実行するため、これらのクラス・ファイルがすでに存在していることがあります。WebLogic Tuxedo Connectorを使用してJavaクラスを作成する場合、.classファイルは\extディレクトリに置くことができます。こうしておくと、FML Field Table Class Importerダイアログ・ボックスから使用可能なフィールド・リストに自動的にデータを入力できます。

FML Field Table Class ImporterでXMLドキュメントを作成するには:

  1. 「ツール」「インポート」EDI Importerを選択します。

    FML Field Table Class Importerダイアログが表示されます。

  2. 「選択」をクリックして、fldtblクラスを含むJARファイルを選択します。

    「クラス」リストにfldtblクラスが表示されます。選択したJARファイルにfldtblクラスが含まれない場合、エラー・メッセージが表示され、「フィールド表Jarファイル」フィールドと「クラス」フィールドがクリアされます。

  3. 「クラス」セクションで、使用可能なクラスのリストから1つ以上のfldtblクラス名を選択します。
  4. 「使用可能なフィールド」リストで、オプションのリストからフィールドを選択し、「追加」をクリックします。

    このリストでは重複する名前は許可されません。別のフィールド表に同じ名前のフィールドがあっても、リストには1つしか表示されません。

  5. 「選択されたフィールド」リストに誤って追加されたフィールドを削除するには、フィールドを選択して「削除」をクリックします。
  6. 「OK」をクリックします。
  7. 次の表に従って、フィールドにデータを入力します。
  8. 作成されたMFLドキュメントを編集し、Business Process Management (BMP)からWebLogic Tuxedo Connector FML/XML Translatorに渡されるXMLドキュメント内のフィールドの順序と出現数を指定します。
  9. 「ツール」「テスト」を選択し、Format Testerツールを表示します。
  10. Format Testerのメニュー・バーで「生成」「XML」を選択し、Format Builder内のMFLドキュメントに準拠するXMLドキュメントを作成します。
  11. XMLドキュメントのフィールドのデータ・コンテンツを必要に応じて編集します。
  12. Format Testerのメニュー・バーで、「ファイル」XMLの保存を選択し、ファイルの名前と場所を指定してXMLドキュメントを保存します。

XMLインスタンス・エディタを使用すると、作成したXMLをインポートして、Business Process Management機能で使用できます。XMLのインポートについては、BPMのドキュメントを参照してください。

23.6 MFLリソースの削除

削除するMFLファイルを参照しているリソースがある場合、そのファイルを削除する前にそれらの参照を削除します。MFLリソースは他のリソースによって参照されていても削除できますが、その場合、削除されたリソースへの未解決の参照が原因で、競合が発生する可能性があります。

23.6.1 MFLリソースの削除方法

MFLリソースを削除する前に、参照または依存性を確認してください。Oracle Service Busコンソールの場合、MFL定義エディタでMFLファイルを開き、右上にある「ツール」をクリックして「参照」を選択し、サービスで参照を使用しているかどうかを調べます。JDeveloperでは、MFLを右クリックして、「依存性の参照」を選択します。

MFLリソースを削除するには:

  1. アプリケーション・ナビゲータまたはプロジェクト・ナビゲータで、削除するXSL変換が含まれているプロジェクトおよびフォルダを開きます。
  2. MFLファイルの名前を右クリックし、「削除」を選択します。
  3. JDeveloperを使用している場合、確認ダイアログにMFLリソースの参照の数が表示されます。「使用方法の表示」をクリックして参照に関する情報を表示し、リソースを削除することを確定するため「はい」をクリックします。
  4. Oracle Service Busコンソールを使用している場合は、「アクティブ化」をクリックして、セッションを終了し、実行時用に構成をデプロイします。

23.7 フォーマット定義のテスト

フォーマット定義を構築したら、Format Testerを使用してテストできます。Format Testerでは、データを解析して再フォーマットする検証テストを行い、サンプルの非XMLデータまたはXMLデータを生成します。このサンプル・データを編集、検索、およびデバッグして、目的のデータにすることができます。

23.7.1 Format Testerの起動方法

Format TesterはFormat Builderから起動され、個別のウィンドウで開かれます。

Format Testerを起動するには:

  1. Format Builderでメッセージ・フォーマット・ドキュメント(MFLファイル)を開きます。

    注意:

    Format Testerを実行するには、Format Builderでメッセージ・フォーマット・ドキュメントが開いている必要があります。

  2. Format Builderのメニュー・バーで「ツール」「テスト」を選択します。
  3. Format Testerダイアログ・ボックスが表示されます。

    Format Testerでは、現在ロードされているメッセージ定義ドキュメントが使用されます。

23.7.2 非XMLウィンドウを使用したテスト方法

「非XML」データ表示パネルは、選択したタブに応じて16進数エディタまたはテキスト・エディタとして使用できます。

16進数エディタ・パネルには、データ・オフセット、個々のバイトの16進値、および対応するテキストが表示されます。対応するテキストは、必要に応じてASCII文字またはEBCDIC文字として表示できます。このエディタで、16進バイトまたはテキスト値を編集できます。16進データ値が変更されると、それに対応するテキスト値が更新され、テキスト値が変更された場合は16進データ値が更新されます。

23.7.2.1 データ・オフセット機能の使用

16進数エディタのデータ・オフセット機能を使用すると、データ・オフセットを16進数または10進数で表示できます。

データ・オフセットを変更するには:

「表示」「16進」を選択します。次の2つのデータ・オフセット・オプションが表示されます。

  • 16進数としてオフセット

  • 10進数としてオフセット

必要に応じた表示オプションをクリックします。「非XML」ウィンドウのデータ・オフセット・パネルは、選択したオプションに合わせて動的に変更されます。

23.7.2.2 テキスト機能の使用

テキスト機能を使用するには、「非XML」ウィンドウ内で「Text」タブを選択します。キャリッジ・リターンなどの出力可能な文字がすべて表示されます。これらは改行付きテキストとして「Text」ウィンドウに表示されます。

23.7.3 XMLウィンドウを使用したテスト方法

「XML」データ・パネルには、「非XML」パネルのコンテンツから変換されたXMLデータが表示されます。「XML」パネルのコンテンツは、必要に応じて消去したり編集することができます。

このウィンドウでは、非XMLフォーマットに変換するXMLデータを入力または生成することもできます。

23.7.4 デバッグ・ウィンドウを使用したテスト方法

デバッグ・ウィンドウには、トランスフォーメーション処理で行われた操作、発生したエラー、およびフィールドとグループの値とデリミタが表示されます。エラーの場所を特定するには、Format Builderのツリー・ペインで、最後に正しく解析されたフィールドを特定し、その次のフィールドの仕様を調べます。

Format Testerを開くと、非XMLウィンドウとXMLウィンドウだけが表示されます。デバッグ・ウィンドウを開くには、「表示」「デバッグ」を選択してデバッグ・ウィンドウの表示と非表示を切り替えます。デバッグ・ウィンドウは、非XMLウィンドウとXMLウィンドウの下に表示されます。

注意:

デバッグ出力は、最新の64KBまでのメッセージに制限されます。ファイルには、完全なデバッグ情報を保存できます。詳細は、「デバッグ・ログの使用」を参照してください。

23.7.5 フォーマット定義のデバッグ方法

次の項では、データのデバッグと修正に使用できる様々なFormat Testerユーティリティについて説明します。

23.7.5.1 値の検索

検索機能を使用して、非XMLデータ内の16進値やテキスト値を検索できます。「検索」ダイアログには次のフィールドがあります。

値を検索するには:

  1. Format Tester内で「ファイル」非XMLを開くを選択して、検索する非XMLデータ・ファイルを開きます。
  2. 「編集」「検索」を選択します。

    「検索」ダイアログが表示されます。

  3. フィールドに適切なデータを入力します。詳細は、表23-2を参照してください。

    表23-2 「検索」のオプション

    フィールド 説明

    検索する値を入力します。

    テキスト

    テキスト値を検索する場合はこのオプションを選択します。

    16進

    16進値を検索する場合はこのオプションを選択します。

    次へ

    選択した場所から下に向かってドキュメントを検索する場合はこのオプションを選択します。

    前へ

    選択した場所から先頭に向かってドキュメントを検索する場合はこのオプションを選択します。

    ファイルの先頭

    ファイルの先頭から検索を開始する場合はこのオプションを選択します。

    現在位置

    現在のカーソル位置から検索を開始する場合はこのオプションを選択します。

    ファイルの末尾

    ファイルの末尾から検索を開始する場合はこのオプションを選択します。

    「OK」ボタン

    検索操作を開始します。

    「取消」ボタン

    検索を実行せずに「検索」ダイアログを閉じます。

  4. 「OK」をクリックして検索操作を開始します。

23.7.5.2 オフセットの検索

移動機能を使用して、非XMLエディタのカーソルを指定したバイト・オフセットに移動できます。「移動」ダイアログには次のフィールドがあります。

指定したオフセットに移動するには:

  1. Format Tester内で「ファイル」非XMLを開くを選択して、検索する非XMLデータ・ファイルを開きます。
  2. 「編集」「移動先」を選択します。

    「移動先」ダイアログが表示されます。

  3. フィールドに適切なデータを入力します。詳細は、表23-2を参照してください。

    表23-3 「移動先」のオプション

    フィールド 説明

    オフセット

    検索するオフセット値を入力します。

    10進

    10進値に移動する場合はこのオプションを選択します。

    16進

    16進値に移動する場合はこのオプションを選択します。

    次へ

    選択した場所から下に向かってドキュメントを検索する場合はこのオプションを選択します。

    前へ

    選択した場所から先頭に向かってドキュメントを検索する場合はこのオプションを選択します。

    ファイルの先頭

    ファイルの先頭から検索を開始する場合はこのオプションを選択します。

    現在位置

    現在のカーソル位置から検索を開始する場合はこのオプションを選択します。

    ファイルの末尾

    ファイルの末尾から検索を開始する場合はこのオプションを選択します。

    「OK」ボタン

    検索操作を開始します。

    「取消」ボタン

    検索を実行せずに「移動」ダイアログを閉じます。

  4. 「OK」をクリックして検索操作を開始します。

23.7.5.3 デバッグ・ログの使用

デバッグ・ログでは、デバッグ情報をテキスト・ファイルに保存できます。

デバッグ・ログを使用するには:

  • 「ファイル」デバッグ・ログを選択します。

    表示されたダイアログで、デバッグ情報の保存先として新しいパスとファイル名を入力するか、既存のファイルを選択できます。

注意:

既存のファイルを選択した場合、新しいデバッグ情報は、ファイルの最後に追加されます。

23.7.6 Format Testerのコマンド・リファレンス

この項では、Format Testerのメイン・メニューから使用可能なコマンドについて説明します。

23.7.6.1 「ファイル」メニュー

「ファイル」メニューには次のコマンドがあります。

要素 説明

非XMLを開く

非XMLウィンドウに表示する非XMLファイルを選択できます。

注意: 非XMLファイルのデフォルトのファイル拡張子は.DATAです。

XMLを開く

「Format Tester」ウィンドウの「XML」セクションに表示するファイルを選択できます。

注意: XMLファイルのデフォルトのファイル拡張子は.XMLです。

非XMLの保存

非XMLウィンドウの内容を保存します。

XMLの保存

「XML」ウィンドウの内容を保存します。

デバッグ・ログ

デバッグ情報をテキスト・ファイルに保存します。

閉じる

「Format Tester」ウィンドウを閉じます。

23.7.6.2 「編集」メニュー

「編集」メニューには次のコマンドがあります。

要素 説明

切取り

現在選択されているテキストを切り取り、別の場所へ貼り付けられるようにクリップ・ボードに格納します。

コピー

現在選択されているテキストをコピーし、別の場所へ貼り付けられるようにクリップ・ボードに格納します。

貼付け

切り取ったテキストやコピーしたテキストをカーソル位置に挿入します。

検索

非XMLデータの16進値またはテキスト値を検索できます。

次を検索

指定した値の次のインスタンスを続けて検索します。

移動先

非XMLエディタの指定のバイト・オフセットにカーソルを移動できます。

23.7.6.3 「表示」メニュー

「表示」メニューには次のコマンドがあります。

要素 説明

XML

「XML」データ・パネルの表示と非表示を切り替えることができます。非表示にすると、非XMLデータ・ウィンドウが横に拡大してTester全体に表示されます。XMLボタンは表示されたままですが、分割線は非表示になります。

デバッグ

「デバッグ」出力ウィンドウの表示と非表示を切り替えることができます。

「クリア」→非XML

「非XML」データ・ウィンドウのコンテンツを空の状態にリセットします。

「クリア」→「XML」

「XML」ウィンドウのコンテンツを空の状態にリセットします。

16進数→16進数としてオフセット

オフセット値を16進数として表示します。このオプションを選択すると、10進数としてオフセットの表示が無効になります。

16進数→10進数としてオフセット

オフセット値を10進数として表示します。このオプションを選択すると、Offset as Hexadecimalの表示が無効になります。

23.7.6.4 「生成」メニュー

「生成」メニューには次のコマンドがあります。

要素 説明

非XML

現在のフォーマット仕様に適合する非XMLデータを生成します。

XML

現在のフォーマット仕様に適合するXMLデータを生成します。

データの生成中にプロンプト

このオプションは、生成プロセスの間にメッセージを表示して、省略可能なフィールドまたはグループを生成するかどうか、生成する子、さらに繰返しグループの反復回数を指定する場合に選択します。

23.7.6.5 「変換」メニュー

「変換」メニューには次のコマンドがあります。

要素 説明

非XMLからXMLへ

「非XML」ウィンドウのコンテンツをXMLに変換します。

XMLから非XMLへ

「XML」ウィンドウのコンテンツを非XMLデータに変換します。

23.8 パレットの使用

Format Builderのパレットを使用すると、よく使用するメッセージ・フォーマット項目を格納したり、格納されている項目をメッセージ・フォーマット定義に挿入することができます。これらの項目はXMLドキュメントに保存され、Windowsの標準のドラッグ・アンド・ドロップ機能を使用してパレットからメッセージ・フォーマット定義に項目をコピーできます。

パレットには、一般的な日付フォーマット、リテラルおよび文字列が含まれています。作成するメッセージ・フォーマットでこれらの項目を使用することも、独自の項目をパレットに追加することもできます。

23.8.1 「パレット」ウィンドウの表示方法

パレットの表示と非表示を切り替えるには、「表示」パレットの表示を選択します。パレットが現在表示されていない場合は、Format Builderウィンドウの横に別のウィンドウとしてパレットが開きます。パレットが現在表示されている場合は、そのウィンドウが閉じます。

23.8.2 パレットへの項目の追加方法

別のノードの有無に依存するノードをパレットに追加することはできません。たとえば、フィールドまたはグループの参照を追加することはできません。また、繰返しフィールドが定義されている項目を追加することもできません。コメントは追加できますが、コメントは一意の名前を持たないのでパレット上で区別が付きにくいため、追加しないことをお薦めします。

パレットに項目を追加するには:

  1. ナビゲーション・ツリーで、パレットに追加する項目を選択します。
  2. 項目をクリックし、左マウス・ボタンを押したまま項目をパレット・ウィンドウにドラッグします。
  3. 項目を配置する位置(選択した項目の兄弟として挿入される)までドラッグしたら、マウス・ボタンを離します。ナビゲーション・ツリーの項目がパレット・ウィンドウにコピーされます。

23.8.3 メッセージ・フォーマットへのパレット項目の追加方法

メッセージ・フォーマットにパレットの項目を追加するには:

  1. パレット・ウィンドウで、メッセージ・フォーマットに追加する項目を選択します。
  2. 項目をクリックし、左マウス・ボタンを押したまま項目を「Format Builder」ウィンドウの左ペインにドラッグします。
  3. 項目を配置する位置(目的の項目の子または兄弟として挿入される)までドラッグしたら、マウス・ボタンを離します。パレットの項目がメッセージ・フォーマットにコピーされます。

23.9 Format Builderのサポート対象のデータ型

この項では、MFLのデータ型、COBOL Copybook Importerのデータ型およびサポートされていないC言語機能について説明します。

23.9.1 MFLデータ型

表23-4は、データ・トランスフォーマでサポートされているMFLのデータ型を示します。これらは、非XMLからXMLへ、またはXMLから非XMLへの変換で使用されるメタデータのデータ型で、フィールド・フォーマット要素のtype属性で指定されます。

表23-4 サポートされるMFLデータ型

データ型 説明

Binary (Base64エンコーディング)

任意の文字の値を入力できます。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。このフィールドの変換後のXMLデータはbase-64でエンコードされています。

Binary (16進数エンコーディング)

任意の文字の値を入力できます。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。このフィールドの変換後のXMLデータはbase-16でエンコードされています。

Date: DD-MMM-YY

日付を定義する文字列(例: 22-JAN-00)。

Date: DD-MMM-YYYY

日付を定義する文字列(例: 22-JAN-2000)。

Date: DD/MM/YY

日付を定義する文字列(例: 22/01/00)。

Date: DD/MM/YYYY

日付を定義する文字列(例: 22/01/2000)。

Date: DDMMMYY

日付を定義する文字列(例: 22JAN00)。

Date: DDMMMYYYY

日付を定義する文字列(例: 22JAN2000)。

Date: MM/DD/YY

日付を定義する文字列(例: 01/22/00)。

Date: MM/DD/YYYY

日付を定義する文字列(例: 01/22/2000)。

Date: MMDDYY

日付を定義する6桁の数字列(例: 012200)。

Date: MMDDYYYY

日付を定義する8桁の数字列(例: 01222000)。

Date: MMM-YY

日付を定義する文字列(例: JAN-00)。

Date: MMM-YYYY

日付を定義する文字列(例: JAN-2000)。

Date: MMMDDYYYY

日付を定義する文字列(例: JAN222000)。

Date: MMMYY

日付を定義する文字列(例: JAN00)。

Date: MMMYYYY

日付を定義する文字列(例: JAN2000)。

Date: Wed Nov 15 10:55:37 CST 2000

Javaプラットフォームのデフォルトの日付フォーマット(例: 'WED NOV 15 10:55:37 CST 2000')。

Date: YY-MM-DD

日付を定義する文字列(例: 00-01-22)。(文字列00-01-22は、2000年1月22日の日付を定義します。)

Date: YY/MM/DD

日付を定義する文字列(例: 00/01/22)。(文字列00/01/22は、2000年1月22日の日付を定義します。)

Date: YYMMDD

日付を定義する文字列(例: 000122)。(文字列000122は、2000年1月22日の日付を定義します。)

Date: YYYY-MM-DD

日付を定義する文字列(例: 2000-01-22)。(文字列2000-01-22は、2000年1月22日の日付を定義します。)

Date: YYYY/MM/DD

日付を定義する文字列(例: 2000/01/22)。(文字列2000/01/22は、2000年1月22日の日付を定義します。)

Date: YYYYMMDD

YYYYMMDDフォーマットの8バイトの数字列。文字エンコーディングを表すStringまたはEBCDICの基本データ型を指定できます。

DateTime: DD/MM/YY hh:mm

日付と時刻を定義する文字列(例: 22/01/00 12:24)。

DateTime: DD/MM/YY hh:mm AM

日付と時刻を定義する文字列(例: 22/01/00 12:24 AM)。

DateTime: DD/MM/YY hh:mm:ss

日付と時刻を定義する文字列(例: 22/01/00 12:24:00)。

DateTime: DD/MM/YY hh:mm:ss AM

日付と時刻を定義する文字列(例: 22/01/00 12:24:00 AM)。

DateTime: MM/DD/YY hh:mm

日付と時刻を定義する文字列(例: 01/22/00 12:24)。

DateTime: MM/DD/YY hh:mi AM

日付と時刻を定義する文字列(例: 01/22/00 12:24 AM)。

DateTime: MM/DD/YY hh:mm:ss

日付と時刻を定義する文字列(例: 01/22/00 12:24:00)。

DateTime: MM/DD/YY hh:mm:ss AM

日付と時刻を定義する文字列(例: 01/22/00 12:24:00 AM)。

DateTime: MMDDYYhhmm

日付と時刻を定義する数字列(例: 0122001224)。

DateTime: YYYYMMDDhhmmss

YYYYMMDDHHMISSフォーマットの14バイトの数字列。基本データ型を指定できます。

DateTime: MMDDYYhhmmss

日付と時刻を定義する数字列(例: 012200122400)。

EBCDIC

IBMのExtended Binary Coded Decimal Interchange Codeの文字列。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。

Filler

XMLに変換されないバイト・シーケンス。非XMLデータからXMLへの変換では、このフィールドはスキップされます。XMLから非XMLデータへの変換では、このフィールドはスペースのシーケンスとしてバイナリ出力ストリームに書き込まれます。

FloatingPoint: 4バイト、ビッグ・エンディアン

IEEE標準754に準拠する4バイト・ビッグ・エンディアンの浮動小数点数。

FloatingPoint: 4バイト、リトル・エンディアン

IEEE標準754に準拠する4バイト・リトル・エンディアンの浮動小数点数。

FloatingPoint: 8バイト、ビッグ・エンディアン

IEEE標準754に準拠する8バイト・ビッグ・エンディアンの浮動小数点数。

FloatingPoint: 8バイト、リトル・エンディアン

IEEE標準754に準拠する8バイト・リトル・エンディアンの浮動小数点数。

Integer: 符号付き、1バイト

1バイトの符号付き整数(例: 56は0x38)。

Integer: 符号なし、1バイト

1バイトの符号なし整数(例: 128は0x80)。

Integer: 符号付き、2バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの2バイトの符号付き整数(例: 4660は0x1234)。

Integer: 符号付き、4バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの4バイトの符号付き整数(例: 4660は0x00001234)。

Integer: 符号付き、8バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの8バイトの符号付き整数(例: 4660は0x0000000000001234)。

Integer: 符号なし、2バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの2バイトの符号なし整数(例: 65000は0xFDE8)。

Integer: 符号なし、4バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの4バイトの符号なし整数(例: 65000は0x0000FDE8)。

Integer: 符号なし、8バイト、ビッグ・エンディアン

ビッグ・エンディアン・フォーマットの8バイトの符号なし整数(例: 65000は0x000000000000FDE8)。

Integer: 符号付き、2バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの2バイトの符号付き整数(例: 4660は0x3412)。

Integer: 符号付き、4バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの4バイトの符号付き整数(例: 4660は0x34120000)。

Integer: 符号付き、8バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの8バイトの符号付き整数(例: 4660は0x3412000000000000)。

Integer: 符号なし、2バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの2バイトの符号なし整数(例: 65000は0xE8FD)。

Integer: 符号なし、4バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの4バイトの符号なし整数(例: 65000は0xE8FD0000)。

Integer: 符号なし、8バイト、リトル・エンディアン

リトル・エンディアン・フォーマットの8バイトの符号なし整数(例: 65000は0xE8FD000000000000)。

Literal

value属性の内容によって決定されるリテラル値。非XMLデータからXMLへの変換時、指定されたリテラルが非XMLデータに存在するかどうかがWLXTによって検証されます。リテラルは読み込まれるがXMLデータには変換されません。XMLデータから非XMLフォーマットへの変換で、リテラルが非XMLフォーマットの一部として定義されている場合、リテラルは変換後の非XMLバイト・ストリームに書き込まれます。

数値

数値(0 - 9)のみの文字列。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。

Packed Decimal: 符号付き

IBMの符号付きパック形式。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

Packed Decimal: 符号なし

IBMの符号なしパック形式。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

String

文字列。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドが必要です。Stringデータ型に長さ、長さフィールド、デリミタのいずれも指定されていない場合は、「\x00」(NUL文字)が指定されているものと見なされます。

String: NULで終了

固定長フィールド内に含まれ、必要に応じてNUL (\x00)で終了される文字列。このフィールドのデータ型には、読み込むデータ量を決定する長さ属性または長さフィールドが必要です。このデータのNULデリミタの有無が調べられます。デリミタが検出されるとそれ以降のデータが破棄されます。NULデリミタが存在しない場合、固定長データがフィールドの値として使用されます。

Time: hhmmss

時刻を定義する文字列(例: 122400)。

Time: hh:mm AM

時刻を定義する文字列(例: 12:24 AM)。

Time: hh:mm

時刻を定義する文字列(例: 12:24)。

Time: hh:mm:ss AM

時刻を定義する文字列(例: 12:24:00 AM)。

Time: hh:mm:ss

時刻を定義する文字列(例: 12:24:00)。

Zoned Decimal: 先行符号

符号付きゾーン10進数形式(US-ASCIIまたはEBCDIC)。符号は最初のニブルに含まれます。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

注意: このデータ型はMessage Format Languageバージョン2.02のUS-ASCIIデータでのみサポートされます。

Zoned Decimal: 先行分離符号

符号付きゾーン10進数形式(US-ASCIIまたはEBCDIC)。符号は最初のバイトに含まれます。最初のバイトには符号のみが含まれ、数値とは分離されています。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

注意: このデータ型はMessage Format Languageバージョン2.02のUS-ASCIIデータでのみサポートされます。

Zoned Decimal: 符号付き

符号付きゾーン10進数形式(US-ASCIIまたはEBCDIC)。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

注意: このデータ型はMessage Format Languageバージョン2.02のUS-ASCIIデータでのみサポートされます。

Zoned Decimal: 後続分離符号

符号付きゾーン10進数形式(US-ASCIIまたはEBCDIC)。符号は最後のバイトに含まれます。最後のバイトには符号のみが含まれ、数値とは分離されています。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

注意: このデータ型はMessage Format Languageバージョン2.02のUS-ASCIIデータでのみサポートされます。

Zoned Decimal: 符号なし

符号なしゾーン10進数形式(US-ASCIIまたはEBCDIC)。長さ、長さフィールド、デリミタ、またはデリミタ・フィールドを指定する必要があります。長さまたは長さフィールドでは、このフィールドのサイズをバイト単位で指定する必要があります。

注意: このデータ型はMessage Format Languageバージョン2.02のUS-ASCIIデータでのみサポートされます。

23.9.2 COBOL Copybook Importerのデータ型

Format Builderツールは、COBOLコピーブックをMFLファイルへ変換するためのユーティリティを提供します。表23-5に、メタデータのデータ型に変換可能なCOBOLのデータ型と、Importerによるサポートの有無を示します。これらのデータ型のサポートには制限があります。たとえば、次のフォーマットは符号なしの4バイト整数型に変換されます。

05 pic 9(5) comp-5
05 pic 9(5) comp-x

次の場合はエラーが生成されます。

05 pic X(5) comp-5
05 pic X(5) comp-x

これらの例では、pic x(5)のかわりにpic9(5) を使用できます。

この表でのサポートの定義は次のとおりです。

  • サポート対象: このデータ型はImporterで正しく解析され、メッセージ・フォーマットのフィールドまたはグループに変換されます。

  • サポート対象外: このデータ型はサポートされず、コピーブックのインポート時にImporterでエラーが報告されます。

  • 無視: このデータ型は解析され、メッセージ・フォーマットにコメントが追加されます。対応するフィールドまたはグループは作成されません。

表23-5 COBOLのデータ型

COBOLの型 サポート

BLANK WHEN ZERO (ゾーン10進数)

サポート対象

COMP-1、COMP-2(浮動小数点)

サポート対象

COMP-3、PACKED-DECIMAL

サポート対象

COMP、COMP-4、バイナリ(整数)

サポート対象

COMP、COMP-4、バイナリ(固定長)

サポート対象

COMP-5、COMP-X

サポート対象

DISPLAY(英数字)

サポート対象

DISPLAY数値(ゾーン10進数)

サポート対象

編集済英数字

サポート対象

編集済浮動小数点値

サポート対象

編集済数値

サポート対象

グループ・レコード

サポート対象

INDEX

サポート対象

JUSTIFIED RIGHT

無視

OCCURS(固定配列)

サポート対象

OCCURS DEPENDING(可変長)

サポート対象

OCCURS INDEXED BY

無視

OCCURS KEY IS

無視

POINTER

サポート対象

PROCEDURE-POINTER

サポート対象

REDEFINES

サポート対象

SIGN IS LEADING SEPARATE (ゾーン10進数)

サポート対象

SIGN IS TRAILING (ゾーン10進数)

サポート対象

SIGN IS TRAILING SEPARATE (ゾーン10進数)

サポート対象

SIGN IS LEADING (ゾーン10進数)

サポート対象

SYNCHRONIZED

無視

66 RENAMES

サポートされません

66 RENAMES THRU

サポートされません

77レベル

サポート対象

88レベル(条件付き)

無視

Importerでは、ベンダー固有の一部の拡張が認識されませんが、ANSI標準COBOLに準拠するコピーブック文はすべて正しく解析されます。Importerのデフォルトのデータ・モデルはIBMのメインフレーム・モデルに基づいており、Format Builderで変更することによって文字セットとデータの「エンディアン特性」を補正できます。

コピーブックのインポート時、フィールドは一般的なデータ型として識別されますが、目視で調べるとより詳細なデータ型を簡単に特定できる場合があります。そのため、Copybook Importerでは、コピーブックで検出された各フィールドにコメントが作成されます。この情報は、MFLデータを編集して元のコピーブックのデータをより適切に表す場合に役立ちます。

たとえば、次の元のコピーブックのエントリを考えます。

05 birth-date    picxx/xx/xx

これはEBCDICタイプのフィールドで、長さは8になります。さらによく見てみると、これは日付フォーマットを表しており、Date: MM/DD/YYタイプまたはData: DD/MM/YYタイプのフィールドとして定義できます。

23.9.3 サポートされていないC言語機能

Format Builderツールは、C構造をMFLファイルへ変換するためのユーティリティを提供しています。この項では、メタデータのデータ型に変換できないC言語構造体を示します(この変換は設計時に行われます)。C Struct Importerユーティリティでは、匿名ユニオン、ビット・フィールド、またはインライン・アセンブラ・コードを含むファイルは解析されません。ここでは、#include <windows.h>文を含むhello.cファイルのプリプロセッサ出力の一部を例にサポートされていない機能を示します。

  • 匿名ユニオン

    #line 353 "e:\\program files\\microsoft visual studio\\vc98\\include\\winnt.h"
    typedef union_LARGE_INTEGER{
      struct {
        DWORD LowPart;
        LONG HighPart;
      };
      struct {
        DWORD LowPart;
        LONG HighPart;
      } u;
    #line 363 "e:\\program files\\microsoft visual studio\\vc98\\include\\winnt.h"
        LONGLONG QuadPart;
    } LARGE_INTEGER
    
  • ビット・フィールド

    typedef struct_LDT_ENTRY {
      WORD LimitLow;
      WORD BaseLow;
      union {
        struct {
          BYTE BaseMid;
          BYTE Flags1;
          BYTE Flags2;
          BYTE BaseHi;
        } Bytes;
        struct
          DWORD BaseMid : 8;
          DWORD Type : 5;
          DWORD Dpl : 2;
          DWORD Pres : 1;
          DWORD LimitHi : 4;
          DWORD Sys : 1;
          DWORD Reserved_0 : 1;
          DWORD Default_Big : 1;
          DWORD Granularity : 1;
          DWORD BaseHi : 8;
        } Bits;
      } HighWord;
    } LDT_ENTRY, *PLDT_ENTRY;
    
  • インライン・アセンブラ・コード

    _inline ULONGLONG
    _stdcall
    Int64ShrlMod32(
      ULONGLONG Value,
      DWORD ShiftCount
      )
    {
      _asm {
       mov ecx, ShiftCount
       mov eax, dword ptr [Value]
       mov edx, dword ptr [Value+4]
       shrd eax, edx, cl
       shr edx, cl
      }
    }

23.10 Format Builderのフィールド参照

この項では、Format Builderウィンドウと、Format Builderウィンドウに表示される各プロパティについて説明します。

23.10.1 Format Builderウィンドウ

Format Builderのメイン・ウィンドウは2つのペインに分かれています。左ペインには、データ・フォーマットの構造情報が表示されます。右ペインには、左ペインで選択した項目の詳細が表示されます。

23.10.2 Format Builderのツール・バー

次のメニュー・バー・オプションを使用して、MFLファイルの構造を作成および構成できます。使用できるメニューは、左ペインで選択されている項目に応じて異なります。

要素 説明

新規

新しいメッセージ・フォーマットを作成します。

開く

既存のメッセージ・フォーマットを開きます。

保存

現在のメッセージ・フォーマットを保存します。

切取り

左ペインで現在選択されている項目とその子オブジェクトをツリーから切り取ります。

注意: メッセージ・フォーマット(ルート)項目が選択されている場合、このコマンドは使用できません。

コピー

左ペインで現在選択されている項目をツリーの他の場所に挿入するために、コピーを作成します。

注意: メッセージ・フォーマット(ルート)項目が選択されている場合、このコマンドは使用できません。

兄弟として貼付け

切り取った、またはコピーした項目を、選択した項目の兄弟オブジェクトとして挿入します。

参照として貼付け

切り取った、またはコピーした項目の参照を、選択した項目の兄弟オブジェクトとして挿入します。

元に戻す

直前の操作を取り消します。ツール・チップは取消し可能な操作を反映して変化します。たとえば、フィールドの名前をField1に変更して「適用」をクリックすると、ツールチップに「フィールドField1への適用の再実行」が表示されます。

注意: Format Builderでは、複数レベルの取消し操作とやり直し操作がサポートされています。

再実行

「元に戻す」コマンドの結果を取り消します。ツール・チップはやり直し可能な操作を反映して変化します。たとえば、フィールドの名前をField1に変更して「元に戻す」をクリックすると、ツールチップに「フィールドField1への適用の再実行」が表示されます。

注意: Format Builderでは、複数レベルの取消し操作とやり直し操作がサポートされています。

フィールドの挿入

フィールドを、ツリー・ペインで選択した項目の兄弟として挿入します。

グループの挿入

グループを、ツリー・ペインで選択した項目の兄弟として挿入します。

コメントの挿入

コメントを、ツリー・ペインで選択した項目の兄弟として挿入します。

上に移動

選択した項目を、その親の中でポジションを1つ上に移動します。

下に移動

選択した項目を、その親の中でポジションを1つ下に移動します。

項目の昇格

選択した項目を、ツリー内のすぐ上のレベルに昇格させます。たとえば、Field1がGroup1の子オブジェクトであるとします。Field1を選択して「昇格」をクリックすると、それがGroup1の兄弟になります。

項目の降格

選択した項目を、ツリー内のすぐ下のレベルに降格させます。たとえば、Group1がField1の兄弟であるとします。ツリー内でField1はGroup1のすぐ次にあります。Field1を選択して「降格」をクリックすると、それがGroup1の子になります。

すべて開く

ツリー・ペイン内のすべての項目を展開し、子項目を表示します。

すべて閉じる

ツリー・ペインを折りたたんで、最初のレベルの項目のみを表示します。

Format Tester

「Format Tester」ウィンドウを開きます。

23.10.3 Format Builderのツリー・ペイン

ツリー・ペインには、ツリー内の非XMLデータのフォーマットに関する階層情報および構造情報が表示されます。ツリーのルート・ノードは作成中または編集中のMFLドキュメントに対応し、このルート・ノードの下にグループとフィールドを作成できます。ツリー・ペインで作成できる様々なタイプの要素を次に示します。

メッセージ・フォーマット、フィールドおよびグループは名前によって識別され、この名前は非XMLデータをXMLへ変換するときにXMLタグとして使用されます。そのため、名前はXMLの命名規則に準拠する必要があります。

フォーマット・ツリー内のノードに名前を付けるときは、次のガイドラインに従ってください。

  • 先頭は文字またはアンダースコアでなければなりません。

  • 文字、数字、コロン、ピリオド記号、ハイフン記号およびアンダースコア記号を使用できます。

要素 説明

メッセージ・フォーマット

最上位レベル(ルート)の要素です。

グループ

フィールド、コメント、あるいは何らかの関係があるその他のグループまたは参照の集合です。たとえば、フィールドPAYDATEHOURSおよびRATEは、PAYINFOグループに含めることができます。そのグループに含まれるすべての項目のフォーマットを定義します。

オプションのグループ

メッセージ・フォーマットに任意で含めることができるグループ。このタイプのグループは、周囲を点線で囲んだアイコンによって表されます。

繰返しグループ

1回または複数回出現するグループ。このタイプのグループは、カスケード・アイコンによって表されます。

オプションの繰返しグループ

任意で使用できるが、使用する場合は複数回出現するグループ。

グループ参照

グループの別のインスタンスがデータ内に存在することを示します。参照グループのフォーマットは元のグループと同じですが、参照グループのOptional設定とOccurrence設定は変更できます。

グループ選択

グループ内の1項目のみを、メッセージ・フォーマットに取り込むことを示します。このタイプのグループは、アイコン内のドットによって表されます。

フィールド

アプリケーションにとって何らかの意味を持つバイト・シーケンスです。たとえば、フィールドEMPNAMEには、従業員名が入力されます。フィールドのフォーマットを定義します。

オプションのフィールド

該当するメッセージ・フォーマットに任意で使用できるフィールド。

繰返しフィールド

1回または複数回出現するフィールド。

フィールド参照

フィールドの別のインスタンスがデータ内に存在することを示します。参照フィールドのフォーマットは元のフィールドと同じですが、参照フィールドのOptional設定とOccurrence設定は変更できます。

オプションの繰返しフィールド

該当するメッセージ・フォーマットに任意で使用できるが、使用する場合は複数回出現するフィールド。

コメント

メッセージ・フォーマット、またはメッセージ・フォーマットによって変換されたデータについてのメモが含まれることを示します。

折りたたむ

オブジェクトの横のマイナース記号は、そのオブジェクトを折りたためることを示します。

展開

オブジェクトの横のプラス記号は、そのオブジェクトを展開して他のオブジェクトを表示できることを示します。

23.10.4 フィールド構成ウィンドウ

フィールド構成ウィンドウは、メッセージ・フォーマットに含めるフィールドを定義します。これらのフィールドは、アプリケーションに関連する意味を持つバイト・シーケンスです。たとえば、フィールドEMPNAMEは従業員名を意味します。

表23-6 Format Builderのフィールド説明プロパティ

要素 説明

名前

フィールドの名前。この名前はXML要素の命名規則に準拠する必要があります。

オプション

このチェック・ボックスを選択すると、フィールドはオプションになります。つまり、当該フィールドのデータが入力に存在する可能性があることを意味します。

ファイルに対してこのオプションを選択した場合は、フィールド属性ペインの「タグ付きフィールド」オプションも設定できます。さらに、「タグ付きフィールド」テキスト・ボックスで、グループ内のオプション・フィールドごとに一意の値を入力します。複数のグループで同じタグ値を使用できますが、グループ内のオプション・フィールドごとのタグ値は一意である必要があります。

タイプ

使用可能なオプションのリストからフィールドのデータ型を選択します。デフォルトの型は文字列です。

注意: 選択したフィールドのデータ型によって、ダイアログの他の領域に表示されるフィールド・データのオプションが決まります。

メッセージ・フォーマット内でこのフィールドが出現する回数を示す、表23-7のオプションの1つを選択します。

表23-7 Format Builderのフィールド出現プロパティ

要素 説明

1回

フィールドを1回だけ表示する場合は、このオプションを選択します。

注意: 省略可能として定義されていないかぎり、フィールドは少なくとも1回出現します。

繰返しのデリミタ

指定されたデリミタが見つかるまでフィールドを繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドにデリミタを入力します。

繰返しフィールド

実行時の繰返しフィールドの値でフィールドの繰返し回数を示す場合は、このオプションを選択します。使用可能なオプションのリストから繰返しフィールドの名前を選択します。

繰返し回数

指定された回数のみフィールドを繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドに出現回数を入力します。

無制限

無限にフィールドを繰返し出現させる場合は、このオプションを選択します。

表23-8 Format Builderのフィールド属性

要素 説明

タグ付きフィールド

タグ付きフィールドの場合はこのオプションを選択します。タグ付きでは、データの先頭にリテラルが付加されています。たとえば、SUP:ACME INCの場合、SUP:はタグです。ACME INCはフィールド・データです。

タグ付きフィールド・オプションを選択した場合は、チェック・ボックスの右にあるテキスト・ボックスにタグを入力します。

フィールドのデフォルト値

フィールドにデフォルト値がある場合はこのオプションを選択します。次に、チェック・ボックスの右にあるテキスト・ボックスにデフォルト値を入力します。

データ・ベース・タイプ

フィールドが日付または時間フィールドの場合に、データを構成する文字のタイプが決定されることを示します。このフィールドが表示されるかどうかは、「フィールドの説明」セクションの「型」フィールドで選択されたデータ型に基づきます。

年号カットオフ

日付フィールドに年号が2桁で入力されている場合、年号カットオフにより、2桁で表された年号を4桁の年号に変換できます。年号を表す2桁の数値が年号カットオフ値と等しいかそれを上回る場合は、年号の値に「19」という接頭辞が付加されます。それ以外の場合は「20」という接頭辞が付加されます。

このフィールドが表示されるかどうかは、「フィールドの説明」セクションの「型」フィールドで選択されたデータ型に基づきます。

コード・ページ

コード・ページは、文字列フィールドのデータをエンコードします。このフィールドが表示されるかどうかは、「フィールドの説明」セクションの「型」フィールドで選択されたデータ型に基づきます。

リテラル・フィールドに表示される値。このフィールドが表示されるかどうかは、「フィールドの説明」セクションの「型」フィールドで選択されたデータ型に基づきます。

表23-9 Format Builderの長さで定義されるフィールド終了プロパティ

要素 説明

「長さ」タブ

長さフィールドが可変長の場合、長さフィールドのバイト数を入力します。

可変長のデータ型に固定長を割り当てることができます。これにより、デリミタを使用してフィールドの終了点を指定する必要がなくなります。

文字列長(文字数)

文字列がバイト数ではなく文字数で長さを計算するマルチバイト・エンコードの場合は、このチェック・ボックスを選択します。デフォルトでは、文字列長はバイト単位です。

切捨てタブ

後続の切捨て

フィールド・データの後続エッジのデータを切り捨てるには、このオプションを選択します。このオプションの横にあるフィールドに切り捨てるデータを入力します。

先行の切捨て

フィールド・データの先行エッジのデータを切り捨てるには、このオプションを選択します。このオプションの横にあるフィールドに切り捨てるデータを入力します。

埋込みタブ

値の埋込み

データが指定の長さよりも短い場合に、適切な長さになるまでデータに埋め込む値を入力するには、このオプションを選択します。フィールドの後ろに埋め込む場合は、後続を選択します。フィールドの先頭に埋め込む場合は、先行を選択します。

表23-10 Format Builderの埋め込み長で定義されるフィールド終了プロパティ

要素 説明

「説明」タブ

タイプ

オプションのリストから埋め込み長のタイプを選択します。

長さ

バイト数を指定するには、このオプションを選択して、対応するフィールドに数値を入力します。

可変長のデータ型の終了点を埋め込み長で指定できます。埋め込み長はデータ・フィールドに先行して、データに含まれるバイト数を示します。このオプションは、埋め込み長に特定のデータ型が選択されている場合のみ使用可能です。

デリミタ

デリミタを指定するには、このオプションを選択して、対応するフィールドにデリミタ値を入力します。このオプションは、埋め込み長に特定のデータ型が選択されている場合のみ使用可能です。

タグ/長さの順序タブ

長さの後にタグ・フィールドを表示

長さフィールドとタグ・フィールドの両方が存在する場合に、タグ・フィールドの前に長さフィールドを表示するには、このオプションを選択します。デフォルトでは、タグが長さの前に表示されます。

切捨てタブ

後続の切捨て

フィールド・データの後続エッジのデータを切り捨てるには、このオプションを選択します。このオプションの横にあるフィールドに切り捨てるデータを入力します。

先行の切捨て

フィールド・データの先行エッジのデータを切り捨てるには、このオプションを選択します。このオプションの横にあるフィールドに切り捨てるデータを入力します。

表23-11 Format Builderのデリミタで定義されるフィールド終了プロパティ

要素 説明

「デリミタ」タブ

可変長のデータ型の終了点をデリミタで指定できます。デリミタは直接指定することも、文字を含むフィールドによって指定することもできます。デリミタとは、フィールドの終わりをマークする文字。フィールド・データはデリミタが見つかるまで続きます。

参照フィールド

このボタンをクリックすると、終了点を示すデリミタ文字を含むフィールドを指定できます。表示されたダイアログで参照フィールドを選択し、右矢印ボタンをクリックします。「OK」をクリックします。

デリミタ・フィールドが存在しない場合に使用するデフォルトのデリミタ文字を入力します。デフォルト値を指定する必要があります。

切捨てタブ

後続の切捨て

フィールド・データの後続エッジのデータを切り捨てるには、このオプションを選択します。このオプションの横にあるフィールドに切り捨てるデータを入力します。

先行の切捨て

フィールド・データの先行エッジのデータを切り捨てるには、このオプションを選択します。このオプションの横にあるフィールドに切り捨てるデータを入力します。

次のフィールドは、「フィールドの説明」セクションの「型」フィールドで「リテラル」を選択した場合のみ表示されます。

表23-12 Format Builderのリテラル・データ型のフィールド・プロパティ

要素 説明

リテラル値を指定することを示します。リテラル値は、単一の値として定義することも、リテラル・セパレータで区切られた値のリストとして定義することもできます。「値」が値のリストの場合、バイナリ・データのリテラル・フィールドのデータはリスト内のいずれかの値になります。

リテラル・セパレータ

リテラル値の列挙をサポートします。MFL定義のリテラル型の「Field」で、「Field」に値の複数の選択肢が必要な場合、リテラル・セパレータを指定できます。

たとえば、EDIFACTおよびX12 EDI標準でサポートされるセグメント・ターミネータは、\r\n\、\r、\n、`、および~です。ただし、Format Builderを使用することでその他のすべてのカスタム・ターミネータをサポートできます。また、リテラル値の既存のリストにカスタム・ターミネータを追加することも、リテラル・セパレータとしてカンマ(,)を使用して複数のカスタム値を分離することも可能です。

MFLファイルには、次の構造が必要です。

<FieldFormat name='ISA_Terminator' type='Literal' value='\r\n,\r,\n,~,|' literalSeparator=','/>

23.10.5 グループ構成ウィンドウ

グループ構成ウィンドウは、メッセージ・フォーマットに含めるグループを定義します。グループは、フィールド、コメント、あるいは何らかの関係があるその他のグループまたは参照の集合です。たとえば、フィールドPAYDATEHOURSおよびRATEは、PAYINFOグループに含めることができます。

表23-13 Format Builderのグループ説明プロパティ

要素 説明

名前

グループ名。この名前はXML要素の命名規則に準拠する必要があります。

オプション

グループがオプションの場合は、「オプション」を選択します。

子の選択

グループ内の1項目のみをメッセージ・フォーマットに取り込む場合は、子の選択を選択します。

メッセージ・フォーマット内でこのグループが出現する回数を示す、表23-14のオプションの1つを選択します。

表23-14 Format Builderのグループ出現プロパティ

要素 説明

1回

グループを1回のみ表示する場合は、このオプションを選択します。

注意: オプションとして定義されている場合を除き、グループは少なくとも1回出現します。

繰返しのデリミタ

指定されたデリミタが見つかるまでグループを繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドにデリミタを入力します。

繰返しフィールド

実行時の繰返しフィールドの値でグループの繰返し回数を示す場合は、このオプションを選択します。使用可能なオプションのリストから繰返しフィールドの名前を選択します。

繰返し回数

指定された回数のみグループを繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドに出現回数を入力します。

無制限

無限にグループを繰返し出現させる場合は、このオプションを選択します。

表23-15 Format Builderのグループ属性

要素 説明

タグ付きグループ

タグ付きグループの場合はこのオプションを選択します。タグ付きの場合、データの先頭にリテラルが付加されて、そのデータが存在することを示します。

タグ付きグループ・オプションを選択した場合、チェック・ボックスの右にあるテキスト・ボックスにタグを入力します。

表23-16 Format Builderのグループ・デリミタ・プロパティ

要素 説明

なし

グループにデリミタがない場合はこのオプションを選択します。

デリミタ付き

グループの終端を、グループの終了点を示すデリミタでマークする場合は、このオプションを選択します。デリミタは、フィールドのグループの終わりをマークする文字列。グループは、デリミタが見つかるまで続きます。

このオプションを選択した場合は、「値」フィールドにデリミタを入力します。

注意: 通常、グループにはデリミタを使用しません。グループは通常、内容に基づいて解析されます(グループはすべての子オブジェクトの解析が完了した時点で終了します)。

デリミタ・フィールド

グループの終了点を、デリミタ文字列を含むフィールドで指定する場合は、このオプションを選択します。このオプションを選択した場合は、デリミタ文字列を含むフィールドを選択し、さらに前述のフィールドがデータ内に存在しない場合に使用されるデフォルトのデリミタ文字を入力します。この値は必須です。

デリミタの共有

デリミタによって、データのグループの終わりおよびグループ内での最後のフィールドの終わりをマークする場合は、このオプションを選択します。このデリミタは、グループ内およびグループ内の最後のフィールドによって共有され、データの終わりを区切ります。

デリミタは非オプション

グループが存在しない場合でも、バイナリ・データにデリミタを含めることを示すには、このオプションを選択します。

23.10.6 Format Builderの参照構成ウィンドウ

「参照構成」ウィンドウを使用して、データ内の別のフィールドまたはグループ・フォーマットの存在を示すことができます。参照フィールドまたは参照グループのフォーマットは元のフィールドまたはグループと同じですが、参照フィールドまたは参照グループのOptional設定とOccurrence設定は変更できます。たとえば、「請求先」住所と「届け先」住所がデータに含まれる場合、住所フォーマットの定義は1回で済みます。「請求先」住所定義を作成し、「届け先」住所には参照を作成します。

参照には、元の項目と同じ名前が付けられます。たとえば、「請求先」住所定義と「届け先」住所定義には同じ名前が付けられます。

表23-17 Format Builderの参照説明プロパティ

要素 説明

名前

名前は、この参照を作成した元のフィールドまたはグループの名前を示しています。この名前はXML要素の命名規則に準拠する必要があります。

オプション

参照フィールドまたは参照グループがオプションの場合は、「オプション」を選択します。

表23-18 Format Builderの参照出現プロパティ

要素 説明

1回

参照を1回のみ表示する場合は、このオプションを選択します。

注意: オプションとして定義されている場合を除き、参照は少なくとも1回出現します。

繰返しのデリミタ

指定されたデリミタが見つかるまで参照を繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドにデリミタを入力します。

繰返しフィールド

実行時の繰返しフィールドの値で参照の繰返し回数を示す場合は、このオプションを選択します。使用可能なオプションのリストから繰返しフィールドの名前を選択します。

繰返し回数

指定された回数のみ参照を繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドに出現回数を入力します。

無制限

無限に参照を繰返し出現させる場合は、このオプションを選択します。