2. Message Format
フ ァ イ ルを開き ます。3. Format Tester
を呼び出し ます。4. [File
| Open Binary] ま たは [File | Open XML] を選択し て、 変換し て表示 する フ ァ イルを ロー ド する か、 2 つのデータ ウ ィ ン ド ウのどち ら かにデータ を入力し ます。5.
変換処理中に発生する操作を表示する には、 [Display | Debug] を選択し ま す。 こ の手順は省略可能です。 デバ ッ グ情報を後で表示でき る よ う にする場 合は、 [Debug] ウ ィ ン ド ウ を開いてか ら、 変換処理を開始する必要があ り ま す。6.
データ を希望のフ ォーマ ッ ト に変換するには、 [Translate | Binary to XML]、ま たは [Translate | XML to Binary] を選択し ます。 変換さ れたデータは
[Binary]
ウ ィ ン ド ウ ま たは [XML] ウ ィ ン ド ウ に表示 さ れます。[To XML] [Binary]
ウ ィ ン ド ウ の コ ン テ ン ツ をXML
に変換する 。 こ の コ マ ン ド は、[Binary]
ウ ィ ン ド ウ のシ ョ ー ト カ ッ ト メ ニ ュ ーでのみ 使用で き る 。[To Binary] [XML]
ウ ィ ン ド ウ の コ ンテ ン ツ をバ イ ナ リ に変換する 。 こ の コ マ ン ド は、[XML]
ウ ィ ン ド ウ のシ ョ ー ト カ ッ ト メ ニ ュ ーでのみ 使用で き る 。[Text in ASCII] [Hex]
タ ブのテ キ ス ト 領域で表示 さ れ る テ キ ス ト に使用する 文字 セ ッ ト をASCII
に変更する 。[Text in EBCDIC]
[Hex]
タ ブのテ キ ス ト 領域で表示 さ れ る テ キ ス ト に使用する 文字 セ ッ ト をEBCDIC
に変更する 。表
2-6 [Binary]
、[XML]
、[Debug]
のシ ョ ー ト カ ッ ト メ ニューコ マン ド (続コ マン ド 説明
図
2-3 Format Tester
7.
エ ラーが発生し た ら、 修正し て、 変換のテ ス ト を再度実行し ます。8.
変換が正常に終了する まで、 手順 6 および 7 を繰 り 返し ます。注意
: Format Builder で メ ッ セージ フ ォーマ ッ ト ド キ ュ メ ン ト を修正する間は Format Tester
を開いた ま まに し てお く こ と がで き ます。 ド キ ュ メ ン ト に 加え られた変更は、 Format Tester に よ り 自動的に検出さ れます。変換プ ロセスで生成さ れるデバ ッ グ メ ッ セージ
フ ォ ーマ ッ ト 定義のデバ ッ グ
フ ォーマ ッ ト 定義のデバッ グ
次の ト ピ ッ ク では、 Format Tester の 3 つの機能を使用し て、 データ をデバ ッ グ し て修正する方法を説明し ます。
値の検索
オフセ ッ ト への移動
デバ ッ グ ロ グの使用
値の検索
[Find]
コ マン ド を使用する と 、 バイ ナ リ データ内の 16 進値やテキ ス ト 値を検索 でき ます。16
進値ま たはテキ ス ト 値を検索する手順は次の と お り です。1. [Format Tester]
ダ イ ア ロ グ ボ ッ ク スで [File | Open Binary] を選択し て検索 対象のバ イナ リ データ フ ァ イ ルを開き ます。2. [Edit
| Find] を選択し、 [Find] ダ イ ア ロ グ ボ ッ ク ス を開き ます。 _ 図2-4 [Find]
ダイアログボ ッ ク ス3.
検索対象を [Value] フ ィ ール ド に入力し ます。4. [Text]
ま たは [Hex] オプシ ョ ン ボ タ ン を選択し て、 値の タ イ プを指定し ま す。5. [Forwards] ま たは [Backwards] オプシ ョ ン ボ タ ン を選択し て、 検索方向を指
定し ます。6. [Beginning of File]
、 [Current Position]、 ま たは [End of File] オプシ ョ ン ボ タ ン を選択し て、 検索の開始位置を指定し ます。7. [OK]
を ク リ ッ ク し て [Find] ダ イ ア ロ グ ボ ッ ク ス を終了し、 指定し た検索を 実行し ます。値が検出さ れた ら、 カー ソ ルが値の位置に移動し ます。 値が見つか ら ない場 合は、 次の メ ッ セージが表示 さ れます。 The specified search string was not
found.
8.
現在のカーソ ル位置か ら検索を繰 り 返すには、 [Edit | Find Next] を選択し ま す。オフセ ッ ト への移動
[Go To]
コ マン ド を使用する と 、 指定し た 16 進ア ド レ ス ま たは 10 進ア ド レ ス(オフセ ッ ト ) にカーソ ルを移動で き ます。
指定し たオフセ ッ ト に移動する手順は次の と お り です。
1. [Format Tester]
ダ イ ア ロ グ ボ ッ ク スで、 [Edit | Go To] を選択し て、 [Go To]ダ イ ア ロ グ ボ ッ ク ス を表示し ます。
図
2-5 [Go To]
ダイアログボ ッ ク ス2. [Offset]
フ ィ ール ド に対象 と な る オフセ ッ ト を入力し ます。3. [Dec]
ま たは [Hex] オプシ ョ ン ボ タ ンを選択し て、 オフセ ッ ト の タ イ プを指 定し ます。4. [Forwards]
ま たは [Backwards] オプシ ョ ン ボ タ ン を選択し て、 方向を指定し ます。5. [Beginning of File]
、 [Current Position]、 ま たは [End of File] オプシ ョ ン ボ タ ン を選択し て、 開始位置を指定し ます。フ ォ ーマ ッ ト 定義のデバ ッ グ
6. [OK]
を ク リ ッ ク し て、 ダ イ ア ロ グ ボ ッ ク ス を終了し、 指定し たオフセ ッ トにカーソ ルを移動し ます。
デバッ グ ログの使用
デフ ォル ト ではデバ ッ グ情報は保存さ れませんが、 [Format Tester] ダ イ ア ロ グ ボ ッ ク ス を使用し て、 デバ ッ グ ロ グ フ ァ イ ルを指定で き ます。 デバ ッ グ ロ グ フ ァ イ ルを指定する と 、 テ ス ト 中に生成さ れたすべてのデバ ッ グ情報が指定し た フ ァ イ ルに追加 さ れます。
デバ ッ グ ロ グ フ ァ イルを指定する手順は次の と お り です。
1. [Format Tester]
ダ イ ア ロ グ ボ ッ ク スで、 [File | Debug Log] を選択し て、[Save]
ダ イ ア ロ グ ボ ッ ク ス を表示し ます。注意
: [File]
メ ニ ューの [Debug Log] チェ ッ ク ボ ッ ク ス をチェ ッ クする と 、 チェ ッ ク ボ ッ ク スが切 り 替わ り ます。 チェ ッ ク ボ ッ ク スがチェ ッ ク さ れてい る場合は、 [File | Debug Log] を選択する と フ ァ イルへの ロ グ 記録がオフにな り ます。2.
対象 と な るデ ィ レ ク ト リ を選択し て、 次のいずれかを実行し ます。新し い ロ グ フ ァ イルを作成するには、 [File name] フ ィ ール ド に名前を入 力し て [Save] を ク リ ッ ク し ます。
既存の ロ グ フ ァ イルを使用するには、 フ ァ イルを選択し て [Save] を ク リ ッ ク し ます。
既存フ ァ イルを選択し た場合は、 新し いデバ ッ グ情報は、 既存のフ ァ イ ルの 最後に追加 さ れます。
3 フ ォーマ ッ ト 定義のビル ド
フ ォーマ ッ ト 定義はバイ ナ リ データ の解析や作成に使用 さ れる メ タデータ です。
XML
と の間で相互に変換 さ れるバイ ナ リ データのフ ォーマ ッ ト 定義を ビル ド で き ます。こ の項では、 Format Builder を使用し た フ ォーマ ッ ト 定義の ビル ド について説明 し ます。 Format Builder は、 データ統合のための、 WebLogic Integration の設計時 コ ンポーネン ト です。 こ の章の内容は以下の と お り です。
データ フ ォーマ ッ ト について
変換するデータの分析
Format Builder の使用法
データ フ ォーマ ッ ト について
次のフ ォーマ ッ ト と ド キ ュメ ン ト タ イ プについて理解し てお く と 、 Format
Builder
の使用法を把握しやす く な り ます。バ イナ リ (非 XML) データ
XML
ド キ ュ メ ン ト
DTD
と XML ス キーマ
MFL
ド キ ュ メ ン トバイナ リ (非 XML ) デー タ
コ ン ピ ュ ータは 2 進法に基づ く ため、 アプ リ ケーシ ョ ンでは、 多 く の場合、 バ イ ナ リ フ ォーマ ッ ト を使用し てデータ を表現し ます。 バ イナ リ フ ォーマ ッ ト で格 納さ れ る フ ァ イルは、 コ ン ピ ュータには読めますが、 ユーザに と っては、 必ずし
も読む こ と で き るデータ ではあ り ません。 バイ ナ リ フ ォーマ ッ ト は実行可能プ ロ グ ラ ム と 数値データに使用 さ れ、 テキ ス ト フ ォーマ ッ ト はテキ ス ト データ に 使用さ れます。 多 く のフ ァ イルでは、 バイ ナ リ と テキ ス ト のフ ォーマ ッ ト が組み 合わ さ れます。 通常、 その よ う な フ ァ イルは、 テキ ス ト フ ォーマ ッ ト のデータ が一部含まれていて も、 バ イナ リ フ ァ イ ル と 考え られます。
バイ ナ リ データは、 XML と 異な り 、 自己記述型ではあ り ません。 言い換え る と 、 バイ ナ リ データには、 データのグループ分け、 フ ィ ール ド への分割、 ま た はその他の形での配置に関する記述はあ り ません。 バ イナ リ データは、 バイ ト のシーケ ン ス を生成する アプ リ ケーシ ョ ンの目的に応じ て、 整数、 文字列、 ま た は図 と し て解釈でき るバイ ト のシーケ ン ス です。
た と えば、 次のバイ ナ リ データ文字列があ る と し ます。
2231987
こ の文字列については さ ま ざ ま な解釈ができ ます。 た と えば、
日付 と し て - 2/23/1987
電話番号 と し て - 223-1987
こ のデータ文字列の目的をはっ き り と 理解し なければ、 アプ リ ケーシ ョ ンは文字 列を正し く 解釈でき ません。
バイ ナ リ データ がアプ リ ケーシ ョ ンに よ っ て理解さ れ る よ う にするには、 アプ リ ケーシ ョ ン自体にデータのレ イ ア ウ ト を埋め込む こ と が必要です。 バイ ナ リ フ ァ イルに含まれる文字データの コー ド 化に使用さ れる文字セ ッ ト も さ ま ざ まで す。 た と えば、 IBM メ イ ン フ レーム上の文字データは、 通常、 EBCDIC 文字 セ ッ ト を使用し て コー ド 化さ れ るのに対し、 デス ク ト ッ プ コ ン ピ ュ ータ上の データは ASCII ま たは Unicode のいずれかで コー ド 化 さ れます。
Format Builder
を使用する と 、 バ イナ リ データのレ イ ア ウ ト を記述する MFL(Message Format Language :
メ ッ セージ フ ォーマ ッ ト 言語 ) フ ァ イルを作成で き ます。 MFL は、 データ の各フ ィ ール ド の他、 フ ィ ール ド のグループ分け (グ ループ)、 反復および集約を記述する要素を含む XML 言語です。 バイ ナ リ レ コー ド の階層、 フ ィ ール ド のレ イ ア ウ ト 、 そ し てフ ィ ール ド と グループのグルー プ分けは MFL ド キ ュ メ ン ト で表現 さ れます。 こ の MFL ド キ ュ メ ン ト は、 実行 時に XML ド キ ュメ ン ト と の間でデータ を変換する ために使用 さ れます。デー タ フ ォ ーマ ッ ト について
コー ド リ ス ト
3-1
バイナリ デー タのサンプル1234;88844321;SUP:21Sprockley's Sprockets01/15/2000123 Main St.;
Austin;TX;75222;555 State St.;Austin;TX;75222;PO12345678;666123;150;
Red Sprocket;
XML ド キュ メ ン ト
XML (eXtensible Markup Language) は、 急速に、 Web 上での構造化 ド キ ュメ ン ト
および構造化データの汎用フ ォーマ ッ ト にな り つつあ り ます。 バイ ナ リ データと 異な り 、 XML は自己記述型です。 つま り 、 XML は、 データ ブ ロ ッ ク の開始 と 終了を示すタ グ ('<' および '>
' で囲まれた語) を利用し ます。 こ れ ら の タ グ
は、 互いに関連する各データ コ ンポーネン ト の階層を定義し ます。 こ れ らの コ ンポーネン ト は、 構造化 ド キ ュメ ン ト の各要素に当た り ます。XML
にはこ の よ う な特性があ る ため、 プ ラ ッ ト フ ォームに依存し ないで、 デー タ を表示し構造化する のに適し てい ます。 XML は、 構造をはっ き り と 示すこ と ができ る ため、 XML を使用する と アプ リ ケーシ ョ ン間でのデータ交換が簡単に な り ます。 データは標準形式で表示さ れる ため、 異な る シ ス テムにあ る アプ リ ケーシ ョ ンで も XML 解析ツールでデータ を解釈で き る ので、 を専用のバイ ナ リ フ ォーマ ッ ト を使用し て解釈する必要があ り ません。コー ド リ ス ト 3-2 に、 XML ド キ ュ メ ン ト のサンプルを示し ます。
コー ド リ ス ト
3-2 XML
ドキュ メ ン ト のサンプル<?xml version="1.0"?>
<PurchaseRequest>
<PR_Number>1234</PR_Number>
<Supplier_ID>88844321</Supplier_ID>
<Supplier_Name>Sprockley's Sprockets</Supplier_Name>
<Requested_Delivery_Date>2000-01-15T00:00:00:000</Requested_Delivery_Date>
<Shipping_Address>
<Address>
<Street>123 Main St.</Street>
<City>Austin</City>
<State>TX</State>
<Zip>75222</Zip>
</Address>
</Shipping_Address>
</PurchaseRequest>
DTD と XML スキーマ
最初の XML 勧告では、 XML ド キ ュ メ ン ト イ ン ス タ ン ス で許可さ れる要素、 属 性、 および データ型を記述する方法は XML DTD (XML Document Type
Definition : XML
文書型定義 ) だけで し た。 その後、 コ ンテン ツ モデルを記述す る よ り 柔軟で便利な方法が求め られてい る こ と が明ら かにな り 、 XML ス キーマ 定義言語についての検討作業が開始 さ れま し た。 こ の XML ス キーマ定義言語 は、 2001 年 5 月の最終勧告に よ り 使用でき る よ う にな り ま し た。XML
ド キ ュ メ ン ト は、 関連付け られた DTD ま たは XML ス キーマで記述さ れた コ ンテ ン ツ モデルに準拠する場合に、 有効 と さ れます。 XML ド キ ュ メ ン ト の検 証に XML パーサが必要 と する メ タデータは、 DTD ま たは XML ス キーマのいず れかで伝達する こ と がで き ますが、 XML ス キーマ定義のほ う が DTD と 比較し て よ り 具体的です。 すなわち、 DTD よ り も XML ス キーマのほ う が、 コ ンテ ン ツ を よ り 精密に制御でき ます。コー ド リ ス ト 3-3 に、 DTD のサンプルを示し ます。
コー ド リ ス ト
3-3 DTD
のサンプル<!ELEMENT PurchaseRequest
(PR_Number,Supplier_ID,Supplier_Name?, Requested_Delivery_Date,Shipping_Address, Billing_Address,Payment_Terms,Purchase_Items)>
<!ELEMENT PR_Number (#PCDATA) >
<!ATTLIST PR_Number type CDATA #FIXED "nonNegativeInteger">
<!ELEMENT Supplier_ID (#PCDATA) >
<!ATTLIST Supplier_ID type CDATA #FIXED "nonNegativeInteger">
<!ELEMENT Supplier_Name (#PCDATA) >
<!ATTLIST Supplier_Name type CDATA #FIXED "string">
<!ELEMENT Requested_Delivery_Date (#PCDATA) >
<!ATTLIST Requested_Delivery_Date type CDATA #FIXED "timeInstant">
<!ELEMENT Shipping_Address (Address)>
<!ELEMENT Address (Street,City,State,Zip)>
<!ELEMENT Street (#PCDATA) >
<!ATTLIST Street type CDATA #FIXED "string">