この章では、JDeveloperでMFL構造を定義するための手順を説明します (MFL構造は、XML形式と非XML形式の間でデータを自動的に変換するためにXQuery Mapperツールで使用できます)。また、Oracle Service BusコンソールでプロジェクトにMFLリソースを追加する方法についても説明します。
この章の内容は次のとおりです。
Format Builderツールは、非XMLデータ・レコードの記述を作成するのに役立ちます。これにより、非XMLデータのレイアウトと階層を記述して、XMLと相互に変換できるようになります。また、バイト・シーケンスをフィールドとして記述できます。各フィールドには、データ型(浮動小数点、文字列など)、データ・サイズ、フィールド名の記述を含めます。Format Builderではさらに、フィールドのグループ化(グループ)、フィールドやグループの繰り返し、および集約を定義できます。
Format Builderで作成した記述は、Message Format Language (MFL)と呼ばれるXML文法で保存されます。MFLドキュメントは、非XMLデータ・レコードのインスタンスをXMLドキュメントのインスタンス(またはその逆)に変換するために実行時に使用されます。MFL(メッセージ・フォーマット言語)ドキュメントは、バイナリ・データのレイアウトの記述に使用する特殊なXMLドキュメントです。これは、フォーマットされたバイナリ・データをXMLデータに変換するルールの定義に使用できるOracle独自の言語です。MFLドキュメントはmfl.dtd
に準拠し、データの各フィールドに加え、フィールドのグループ化(グループ)、繰返し、および集約を記述する要素および属性を含みます。
メッセージ・サービス・タイプのビジネス・サービスやプロキシ・サービスを作成するとき、サービスのリクエスト・メッセージ・タイプまたはレスポンス・メッセージ・タイプとしてMFLタイプを選択できます。
メッセージ・フォーマット、フィールド、およびグループは、名前によって識別されます。この名前は、非XMLデータがXMLに変換されるときにXMLタグとして使用されます。そのため、名前はXMLの命名規則に準拠する必要があります。
次に名前フォーマットのガイドラインを示します。
先頭は文字またはアンダースコアでなければなりません。
文字、数字、コロン、ピリオド記号、ハイフン記号、およびアンダースコア記号を使用できます。
次に有効な名前の例を示します。
MyField MyField1 MyField_again MyField-again
次に無効な名前の例を示します。
1MyField
- 先頭に数字を使用できません。
My>Field
- 不等号(>)は無効な文字です。
My Field
- スペースは使用できません。
My/Field
- バック・スラッシュ(/
)は無効な文字です。
My\Field
- フォワード・スラッシュ(\
)は無効な文字です。
My:Field
- セミコロン(;
)は無効な文字です。
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
を参照してください。
JDeveloperでFormat Builderを使用してバイナリ・レコードの階層構造、フィールドのレイアウト、フィールドとグループのグループ化を定義すると、この情報は、実行時変換を実行するために使用できるMFLドキュメントとして保存されます。Format BuilderでMFLドキュメントを使用して、それに対応するDTDを生成することもできます。
JDeveloperのFormat Builderを使用してメッセージ・フォーマットを定義します。Oracle Service Busコンソールを使用している場合、MFLリソースを作成して、JDeveloperですでに作成済のMFLファイルをアップロードできます。MFLリソースはコンソールにインポートすることもできます。詳細は、「リソースおよび構成のインポートとエクスポート」を参照してください。次の手順を使用して、MFLファイルをMFLリソースにアップロードします。
始める前に
「MFLメッセージ構造の作成」に従って、JDeveloperのFormat BuilderでMFLファイルを作成します。
コンソールでMFLリソースを追加するには:
プロジェクト・ナビゲータで、新しいMFLファイルを含めるプロジェクトまたはフォルダを右クリックし、「作成」をポイントして「リソース」を選択します。「変換」をクリックし、「MFL」、「OK」の順にクリックします。
「MFLの作成」ダイアログが表示されます。
「ファイルのアップロード」フィールドの横の「参照」をクリックし、JDeveloperで作成したMFLファイルに移動してこれを選択します。
「リソース名」フィールドに、ファイル拡張子なしのファイル名が自動的に移入されます。この名前は変更可能です。
必要に応じて、リソースの簡単な説明を入力します。
「作成」をクリックします。
MFL定義エディタにMFLファイルのテストが表示されます。
スキーマを変更するには、次のように実行します。
ツールバーの「ソースの編集」をクリックします。
「ソースの編集」ダイアログが表示されます。
アップロードする新しいMFLファイルを参照して選択するには、「参照」をクリックします。
ファイルのコンテンツを変更するには、ダイアログの「コンテンツ」セクションでコードを直接更新します。
「保存」をクリックします。
MFL定義エディタのツールバーで、「保存」をクリックします。
セッションを終了して構成をランタイムにデプロイするには、「アクティブ化」をクリックします。
MFLファイルを変更するには、JDeveloperのFormat Builderを使用することをお薦めします。Format Builderでの操作方法の詳細は、「MFLメッセージ構造の作成」を参照してください。
Oracle Service Busコンソールを使用している場合は、JDeveloperから更新済ファイルをアップロードするか、コンソールでコードを直接変更(お薦めしません)できます。
コンソールでMFLリソースを更新するには:
MFLメッセージ構造には、1つ以上のフィールド、フィールド・グループ、参照およびコメントを含めることができます。
Format Builderのドラッグ・アンド・ドロップ機能を使用して、ツリー・ビューの項目をコピーまたは移動できます。項目を移動するには、項目を新しい場所にドラッグ・アンド・ドロップするだけです。項目をコピーするには、[CTRL]キーを押したまま項目をドラッグ・アンド・ドロップします。
MFLファイルを作成すると、メッセージ書式ファイルのルート・ノードが、MFLファイルに指定した同じ名前で自動的に生成されます。このルート・ノード名は、変換後のXMLドキュメントのルート要素になるため、XML要素の命名規則に準じている必要があります。
JDeveloperでMFLファイルを作成するには:
グループは、何らかの関連がある複数のフィールドを定義します(たとえば、PAYDATE
フィールド、HOURS
フィールド、RATE
フィールドをPAYINFO
グループに入れることができます)。グループを、メッセージ・フォーマット項目の子、別のグループの子、あるいはグループまたはフィールドの兄弟として作成できます。
グループを作成するには:
フィールドとは、アプリケーションにとって何らかの意味を持つバイト・シーケンスです(たとえば、フィールドEMPNAME
には、従業員名が格納されます。)フィールドは、メッセージ・フォーマット項目の子、グループの子、あるいはグループまたは別のフィールドの兄弟として作成できます。
フィールドを作成するには:
参照では、データを再入力しないで、事前に定義したフィールドまたはグループ・フォーマットの記述を再使用することを指定します。参照フィールドまたは参照グループのフォーマットは元のフィールドまたはグループと同じですが、参照フィールドまたは参照グループのOptional設定とOccurrence設定だけは変更できます。たとえば、「請求先」住所と「届け先」住所がデータに含まれ、その住所フォーマットが同じである場合、住所フォーマットの定義は1回で済みます。「請求先」住所定義を作成し、「届け先」住所には参照を作成します。
注意:
参照には、元の項目と同じ名前が付けられます。たとえば、「請求先」住所定義と「届け先」住所定義には同じ名前が付けられます。グループ定義を再使用する場合、汎用的なグループを作成し、そのグループを特定のグループに埋め込みます。たとえば、前の例では、「請求先」グループ内に「住所」グループを作成し、「届け先」グループ内で「住所」グループを参照します。
グループまたはフィールドを参照するには:
コメントは、メッセージ・フォーマットまたはメッセージ・フォーマットによって変換されるデータについてのメモです。コメントはメッセージ・フォーマット定義に含まれますが、情報提供のみを目的とします。コメントは、任意のメッセージ・フォーマット、グループ、またはフィールドの子または兄弟として作成できます。
コメントを追加するには:
Format Builderでは、COBOLコピーブックやgXMLガイドライン・ファイルをインポートしたり、C構造定義をMFLメッセージ定義に変換したりできます。
Format Builderでは、ガイドラインXML (gXML)ファイルをインポートしてメッセージ定義に変換でき、メッセージ定義は、ユーザーがニーズに合わせて変更およびカスタマイズできます。gXMLは、XMLを使用するビジネス・ドキュメント(発注書、請求書など)の電子商取引ガイドラインの交換を促進するために設計されたオープンな仕様です。このリリースではgXMLバージョン0.71がサポートされています。
gXMLファイルを変換するには:
Format Builderでは、非XMLドキュメントのXML表現を適切に表すXMLスキーマをインポートできます。この機能により、非XMLドキュメントのフォーマットを指定する作業をすぐに始めることができます。
XMLスキーマを変換するには:
Format Builderでは、COBOLコピーブックをFormat Builderにインポートして、COBOLデータを変換するためのメッセージ定義を作成できます。コピーブックのインポート時には、インポートされるコピーブックとそれに含まれるグループおよびフィールドを説明するためにコメントが使用されます。
COBOLコピーブックを変換するには:
Format Builderには、MFLまたはCコード出力を生成してC構造体定義をMFLメッセージ定義に変換するためのC Struct Importerユーティリティが含まれています。
MFLへの変換を定義する場合、MFLを直接生成するには、プロファイルの構成データをいくつか入力する必要があります。これらのデータ入力は、ハードウェア・プロファイルを新しく作成するか、または既存のプロファイルを指定して行うことができます。正常に生成されると、Format Builderのメイン・ウィンドウが表示され、ナビゲーション・ツリーにMFLオブジェクトがリストされます。このMFLオブジェクトには、解析で使用された入力ファイルと同じ名前が付けられます。生成プロセスでエラーが検出された場合は、「MFL Generation Errors」ダイアログが表示されます。このダイアログを使用して、エラー・ログを表示するかまたはファイルとして保存することができます。発生したエラーを確認したら、「C Struct Importer」に戻って前の手順を繰り返すことができます。
C構造を変換するには:
Format Builderのメイン・ウィンドウから、ツール→「インポート」→C Struct Importerを選択します。
C Structure Importerダイアログが表示されます。
インポートするファイルのパスと名前を入力するか、「参照」をクリックしてファイルまで移動して選択します。
「解析」をクリックします。
「構造」フィールドに、選択したファイルで見つかった構造のリストが入力されます。
変換する構造を選択します。
MFLデータを生成するには、次の手順を実行します。
「出力」の下の「MFL」オプションを選択します。
「構造」フィールドで、使用可能なオプションのリストから目的の構造を選択します。
「名前」フィールドでは、既存のハードウェア・プロファイルを選択するか、「新規」をクリックして新しいプロファイルを作成します。表示されたダイアログで、名前および説明を指定し、プリミティブ・データ型とバイト・オーダーを変更して、「OK」をクリックします。
プロファイル・パラメータを参照または編集するには、「編集」をクリックしてハードウェア・プロファイル・エディタを開きます。
「OK」をクリックして、MFLファイルを生成します。
エラー・ログの表示をクリックしてエラーを表示するか、エラー・ログの保存をクリックして指定した場所にエラー・ログを保存するか、「取消」をクリックしてMFL生成エラー・ダイアログ・ボックスを閉じます。
Cコードを生成するには、次の手順を実行します。
「出力」の下の「Cコード」オプションを選択します。
MFL生成フィールドまたはデータ生成フィールドにファイル名を入力するか、「参照」をクリックしてファイルを選択します。
「OK」をクリックします。
既存ファイルの上書きに関する警告と、コード生成の成功または失敗を通知するメッセージが表示されます。
生成されたソース・コードを対象のプラットフォームにコピーし、ソース・コードをコンパイルして実行します。
注意:
構造体の宣言を含む入力ファイルもコピーする必要があります。コンパイルが完了すると、両方のプログラムで出力ファイル名の引数が取り込まれます。
生成されたMFLまたはデータを、Format Builderを実行しているプラットフォームにコピーします。
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生成機能を使用します。
始める前に
FMLバッファと関連付けられているフィールド・テーブルを、TuxedoシステムからWebLogic Server/WebLogic Tuxedo Connector環境に移動します。
weblogic/wtc/jatmi/mkfldclass
ユーティリティを使用して、フィールド表を表すJavaソース・コードを構築します。FMLフィールド表の管理の詳細は、WebLogic Serverのドキュメントを参照してください。
ソース・コードをコンパイルします。生成されるクラス・ファイルは、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ドキュメントを作成するには:
XMLインスタンス・エディタを使用すると、作成したXMLをインポートして、Business Process Management機能で使用できます。XMLのインポートについては、BPMのドキュメントを参照してください。
削除するMFLファイルを参照しているリソースがある場合、そのファイルを削除する前にそれらの参照を削除します。MFLリソースは他のリソースによって参照されていても削除できますが、その場合、削除されたリソースへの未解決の参照が原因で、競合が発生する可能性があります。
MFLリソースを削除する前に、参照または依存性を確認してください。Oracle Service Busコンソールの場合、MFL定義エディタでMFLファイルを開き、右上にある「ツール」をクリックして「参照」を選択し、サービスで参照を使用しているかどうかを調べます。JDeveloperでは、MFLを右クリックして、「依存性の参照」を選択します。
MFLリソースを削除するには:
フォーマット定義を構築したら、Format Testerを使用してテストできます。Format Testerでは、データを解析して再フォーマットする検証テストを行い、サンプルの非XMLデータまたはXMLデータを生成します。このサンプル・データを編集、検索、およびデバッグして、目的のデータにすることができます。
「非XML」データ表示パネルは、選択したタブに応じて16進数エディタまたはテキスト・エディタとして使用できます。
16進数エディタ・パネルには、データ・オフセット、個々のバイトの16進値、および対応するテキストが表示されます。対応するテキストは、必要に応じてASCII文字またはEBCDIC文字として表示できます。このエディタで、16進バイトまたはテキスト値を編集できます。16進データ値が変更されると、それに対応するテキスト値が更新され、テキスト値が変更された場合は16進データ値が更新されます。
16進数エディタのデータ・オフセット機能を使用すると、データ・オフセットを16進数または10進数で表示できます。
データ・オフセットを変更するには:
「表示」→「16進」を選択します。次の2つのデータ・オフセット・オプションが表示されます。
16進数としてオフセット
10進数としてオフセット
必要に応じた表示オプションをクリックします。「非XML」ウィンドウのデータ・オフセット・パネルは、選択したオプションに合わせて動的に変更されます。
「XML」データ・パネルには、「非XML」パネルのコンテンツから変換されたXMLデータが表示されます。「XML」パネルのコンテンツは、必要に応じて消去したり編集することができます。
このウィンドウでは、非XMLフォーマットに変換するXMLデータを入力または生成することもできます。
デバッグ・ウィンドウには、トランスフォーメーション処理で行われた操作、発生したエラー、およびフィールドとグループの値とデリミタが表示されます。エラーの場所を特定するには、Format Builderのツリー・ペインで、最後に正しく解析されたフィールドを特定し、その次のフィールドの仕様を調べます。
Format Testerを開くと、非XMLウィンドウとXMLウィンドウだけが表示されます。デバッグ・ウィンドウを開くには、「表示」→「デバッグ」を選択してデバッグ・ウィンドウの表示と非表示を切り替えます。デバッグ・ウィンドウは、非XMLウィンドウとXMLウィンドウの下に表示されます。
注意:
デバッグ出力は、最新の64KBまでのメッセージに制限されます。ファイルには、完全なデバッグ情報を保存できます。詳細は、「デバッグ・ログの使用」を参照してください。
次の項では、データのデバッグと修正に使用できる様々なFormat Testerユーティリティについて説明します。
移動機能を使用して、非XMLエディタのカーソルを指定したバイト・オフセットに移動できます。「移動」ダイアログには次のフィールドがあります。
指定したオフセットに移動するには:
この項では、Format Testerのメイン・メニューから使用可能なコマンドについて説明します。
「ファイル」メニューには次のコマンドがあります。
要素 | 説明 |
---|---|
非XMLを開く |
非XMLウィンドウに表示する非XMLファイルを選択できます。 注意: 非XMLファイルのデフォルトのファイル拡張子は.DATAです。 |
XMLを開く |
「Format Tester」ウィンドウの「XML」セクションに表示するファイルを選択できます。 注意: XMLファイルのデフォルトのファイル拡張子は.XMLです。 |
非XMLの保存 |
非XMLウィンドウの内容を保存します。 |
XMLの保存 |
「XML」ウィンドウの内容を保存します。 |
デバッグ・ログ |
デバッグ情報をテキスト・ファイルに保存します。 |
閉じる |
「Format Tester」ウィンドウを閉じます。 |
「編集」メニューには次のコマンドがあります。
要素 | 説明 |
---|---|
切取り |
現在選択されているテキストを切り取り、別の場所へ貼り付けられるようにクリップ・ボードに格納します。 |
コピー |
現在選択されているテキストをコピーし、別の場所へ貼り付けられるようにクリップ・ボードに格納します。 |
貼付け |
切り取ったテキストやコピーしたテキストをカーソル位置に挿入します。 |
検索 |
非XMLデータの16進値またはテキスト値を検索できます。 |
次を検索 |
指定した値の次のインスタンスを続けて検索します。 |
移動先 |
非XMLエディタの指定のバイト・オフセットにカーソルを移動できます。 |
「表示」メニューには次のコマンドがあります。
要素 | 説明 |
---|---|
XML |
「XML」データ・パネルの表示と非表示を切り替えることができます。非表示にすると、非XMLデータ・ウィンドウが横に拡大してTester全体に表示されます。XMLボタンは表示されたままですが、分割線は非表示になります。 |
デバッグ |
「デバッグ」出力ウィンドウの表示と非表示を切り替えることができます。 |
「クリア」→非XML |
「非XML」データ・ウィンドウのコンテンツを空の状態にリセットします。 |
「クリア」→「XML」 |
「XML」ウィンドウのコンテンツを空の状態にリセットします。 |
16進数→16進数としてオフセット |
オフセット値を16進数として表示します。このオプションを選択すると、10進数としてオフセットの表示が無効になります。 |
16進数→10進数としてオフセット |
オフセット値を10進数として表示します。このオプションを選択すると、Offset as Hexadecimalの表示が無効になります。 |
「生成」メニューには次のコマンドがあります。
要素 | 説明 |
---|---|
非XML |
現在のフォーマット仕様に適合する非XMLデータを生成します。 |
XML |
現在のフォーマット仕様に適合するXMLデータを生成します。 |
データの生成中にプロンプト |
このオプションは、生成プロセスの間にメッセージを表示して、省略可能なフィールドまたはグループを生成するかどうか、生成する子、さらに繰返しグループの反復回数を指定する場合に選択します。 |
Format Builderのパレットを使用すると、よく使用するメッセージ・フォーマット項目を格納したり、格納されている項目をメッセージ・フォーマット定義に挿入することができます。これらの項目はXMLドキュメントに保存され、Windowsの標準のドラッグ・アンド・ドロップ機能を使用してパレットからメッセージ・フォーマット定義に項目をコピーできます。
パレットには、一般的な日付フォーマット、リテラルおよび文字列が含まれています。作成するメッセージ・フォーマットでこれらの項目を使用することも、独自の項目をパレットに追加することもできます。
パレットの表示と非表示を切り替えるには、「表示」→パレットの表示を選択します。パレットが現在表示されていない場合は、Format Builderウィンドウの横に別のウィンドウとしてパレットが開きます。パレットが現在表示されている場合は、そのウィンドウが閉じます。
別のノードの有無に依存するノードをパレットに追加することはできません。たとえば、フィールドまたはグループの参照を追加することはできません。また、繰返しフィールドが定義されている項目を追加することもできません。コメントは追加できますが、コメントは一意の名前を持たないのでパレット上で区別が付きにくいため、追加しないことをお薦めします。
パレットに項目を追加するには:
この項では、MFLのデータ型、COBOL Copybook Importerのデータ型およびサポートされていないC言語機能について説明します。
表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データでのみサポートされます。 |
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
タイプのフィールドとして定義できます。
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 } }
この項では、Format Builderウィンドウと、Format Builderウィンドウに表示される各プロパティについて説明します。
Format Builderのメイン・ウィンドウは2つのペインに分かれています。左ペインには、データ・フォーマットの構造情報が表示されます。右ペインには、左ペインで選択した項目の詳細が表示されます。
次のメニュー・バー・オプションを使用して、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」ウィンドウを開きます。 |
ツリー・ペインには、ツリー内の非XMLデータのフォーマットに関する階層情報および構造情報が表示されます。ツリーのルート・ノードは作成中または編集中のMFLドキュメントに対応し、このルート・ノードの下にグループとフィールドを作成できます。ツリー・ペインで作成できる様々なタイプの要素を次に示します。
メッセージ・フォーマット、フィールドおよびグループは名前によって識別され、この名前は非XMLデータをXMLへ変換するときにXMLタグとして使用されます。そのため、名前はXMLの命名規則に準拠する必要があります。
フォーマット・ツリー内のノードに名前を付けるときは、次のガイドラインに従ってください。
先頭は文字またはアンダースコアでなければなりません。
文字、数字、コロン、ピリオド記号、ハイフン記号およびアンダースコア記号を使用できます。
要素 | 説明 |
---|---|
メッセージ・フォーマット |
最上位レベル(ルート)の要素です。 |
グループ |
フィールド、コメント、あるいは何らかの関係があるその他のグループまたは参照の集合です。たとえば、フィールド |
オプションのグループ |
メッセージ・フォーマットに任意で含めることができるグループ。このタイプのグループは、周囲を点線で囲んだアイコンによって表されます。 |
繰返しグループ |
1回または複数回出現するグループ。このタイプのグループは、カスケード・アイコンによって表されます。 |
オプションの繰返しグループ |
任意で使用できるが、使用する場合は複数回出現するグループ。 |
グループ参照 |
グループの別のインスタンスがデータ内に存在することを示します。参照グループのフォーマットは元のグループと同じですが、参照グループのOptional設定とOccurrence設定は変更できます。 |
グループ選択 |
グループ内の1項目のみを、メッセージ・フォーマットに取り込むことを示します。このタイプのグループは、アイコン内のドットによって表されます。 |
フィールド |
アプリケーションにとって何らかの意味を持つバイト・シーケンスです。たとえば、フィールド |
オプションのフィールド |
該当するメッセージ・フォーマットに任意で使用できるフィールド。 |
繰返しフィールド |
1回または複数回出現するフィールド。 |
フィールド参照 |
フィールドの別のインスタンスがデータ内に存在することを示します。参照フィールドのフォーマットは元のフィールドと同じですが、参照フィールドのOptional設定とOccurrence設定は変更できます。 |
オプションの繰返しフィールド |
該当するメッセージ・フォーマットに任意で使用できるが、使用する場合は複数回出現するフィールド。 |
コメント |
メッセージ・フォーマット、またはメッセージ・フォーマットによって変換されたデータについてのメモが含まれることを示します。 |
折りたたむ |
オブジェクトの横のマイナース記号は、そのオブジェクトを折りたためることを示します。 |
展開 |
オブジェクトの横のプラス記号は、そのオブジェクトを展開して他のオブジェクトを表示できることを示します。 |
フィールド構成ウィンドウは、メッセージ・フォーマットに含めるフィールドを定義します。これらのフィールドは、アプリケーションに関連する意味を持つバイト・シーケンスです。たとえば、フィールドEMPNAME
は従業員名を意味します。
表23-6 Format Builderのフィールド説明プロパティ
要素 | 説明 |
---|---|
名前 |
フィールドの名前。この名前はXML要素の命名規則に準拠する必要があります。 |
オプション |
このチェック・ボックスを選択すると、フィールドはオプションになります。つまり、当該フィールドのデータが入力に存在する可能性があることを意味します。 ファイルに対してこのオプションを選択した場合は、フィールド属性ペインの「タグ付きフィールド」オプションも設定できます。さらに、「タグ付きフィールド」テキスト・ボックスで、グループ内のオプション・フィールドごとに一意の値を入力します。複数のグループで同じタグ値を使用できますが、グループ内のオプション・フィールドごとのタグ値は一意である必要があります。 |
タイプ |
使用可能なオプションのリストからフィールドのデータ型を選択します。デフォルトの型は文字列です。 注意: 選択したフィールドのデータ型によって、ダイアログの他の領域に表示されるフィールド・データのオプションが決まります。 |
メッセージ・フォーマット内でこのフィールドが出現する回数を示す、表23-7のオプションの1つを選択します。
表23-7 Format Builderのフィールド出現プロパティ
要素 | 説明 |
---|---|
1回 |
フィールドを1回だけ表示する場合は、このオプションを選択します。 注意: 省略可能として定義されていないかぎり、フィールドは少なくとも1回出現します。 |
繰返しのデリミタ |
指定されたデリミタが見つかるまでフィールドを繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドにデリミタを入力します。 |
繰返しフィールド |
実行時の繰返しフィールドの値でフィールドの繰返し回数を示す場合は、このオプションを選択します。使用可能なオプションのリストから繰返しフィールドの名前を選択します。 |
繰返し回数 |
指定された回数のみフィールドを繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドに出現回数を入力します。 |
無制限 |
無限にフィールドを繰返し出現させる場合は、このオプションを選択します。 |
表23-8 Format Builderのフィールド属性
要素 | 説明 |
---|---|
タグ付きフィールド |
タグ付きフィールドの場合はこのオプションを選択します。タグ付きでは、データの先頭にリテラルが付加されています。たとえば、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標準でサポートされるセグメント・ターミネータは、 MFLファイルには、次の構造が必要です。 <FieldFormat name='ISA_Terminator' type='Literal' value='\r\n,\r,\n,~,|' literalSeparator=','/> |
グループ構成ウィンドウは、メッセージ・フォーマットに含めるグループを定義します。グループは、フィールド、コメント、あるいは何らかの関係があるその他のグループまたは参照の集合です。たとえば、フィールドPAYDATE
、HOURS
および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のグループ・デリミタ・プロパティ
要素 | 説明 |
---|---|
なし |
グループにデリミタがない場合はこのオプションを選択します。 |
デリミタ付き |
グループの終端を、グループの終了点を示すデリミタでマークする場合は、このオプションを選択します。デリミタは、フィールドのグループの終わりをマークする文字列。グループは、デリミタが見つかるまで続きます。 このオプションを選択した場合は、「値」フィールドにデリミタを入力します。 注意: 通常、グループにはデリミタを使用しません。グループは通常、内容に基づいて解析されます(グループはすべての子オブジェクトの解析が完了した時点で終了します)。 |
デリミタ・フィールド |
グループの終了点を、デリミタ文字列を含むフィールドで指定する場合は、このオプションを選択します。このオプションを選択した場合は、デリミタ文字列を含むフィールドを選択し、さらに前述のフィールドがデータ内に存在しない場合に使用されるデフォルトのデリミタ文字を入力します。この値は必須です。 |
デリミタの共有 |
デリミタによって、データのグループの終わりおよびグループ内での最後のフィールドの終わりをマークする場合は、このオプションを選択します。このデリミタは、グループ内およびグループ内の最後のフィールドによって共有され、データの終わりを区切ります。 |
デリミタは非オプション |
グループが存在しない場合でも、バイナリ・データにデリミタを含めることを示すには、このオプションを選択します。 |
「参照構成」ウィンドウを使用して、データ内の別のフィールドまたはグループ・フォーマットの存在を示すことができます。参照フィールドまたは参照グループのフォーマットは元のフィールドまたはグループと同じですが、参照フィールドまたは参照グループのOptional設定とOccurrence設定は変更できます。たとえば、「請求先」住所と「届け先」住所がデータに含まれる場合、住所フォーマットの定義は1回で済みます。「請求先」住所定義を作成し、「届け先」住所には参照を作成します。
参照には、元の項目と同じ名前が付けられます。たとえば、「請求先」住所定義と「届け先」住所定義には同じ名前が付けられます。
表23-17 Format Builderの参照説明プロパティ
要素 | 説明 |
---|---|
名前 |
名前は、この参照を作成した元のフィールドまたはグループの名前を示しています。この名前はXML要素の命名規則に準拠する必要があります。 |
オプション |
参照フィールドまたは参照グループがオプションの場合は、「オプション」を選択します。 |
表23-18 Format Builderの参照出現プロパティ
要素 | 説明 |
---|---|
1回 |
参照を1回のみ表示する場合は、このオプションを選択します。 注意: オプションとして定義されている場合を除き、参照は少なくとも1回出現します。 |
繰返しのデリミタ |
指定されたデリミタが見つかるまで参照を繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドにデリミタを入力します。 |
繰返しフィールド |
実行時の繰返しフィールドの値で参照の繰返し回数を示す場合は、このオプションを選択します。使用可能なオプションのリストから繰返しフィールドの名前を選択します。 |
繰返し回数 |
指定された回数のみ参照を繰返し出現させる場合は、このオプションを選択します。関連付けられたフィールドに出現回数を入力します。 |
無制限 |
無限に参照を繰返し出現させる場合は、このオプションを選択します。 |