チュートリアル:ドキュメント インスタンスからのフラット ファイル スキーマの作成
このチュートリアルでは、BizTalk フラット ファイル スキーマ ウィザードを使用してドキュメント インスタンスからフラット ファイル スキーマを作成する方法について説明します。ここでは注文書のサンプルを使用します。 BizTalk フラット ファイル スキーマ ウィザードの概要については、「 BizTalk フラット ファイル スキーマ ウィザードの使用方法」を参照してください。
発注書の各行は、緑色で示される復帰改行 (CRLF) で終了します。 発注書は、赤色で示される PO タグで開始され、その後に日付が続きます。 紫色で示される 2 つの反復的固定位置フィールドには顧客情報が含まれます。 コメント フィールドの後には繰り返しフィールドがあります。このフィールドは ITEMS タグで始まり、複数のレコードがコンマ (,) で区切って含まれ、データ値がパイプ文字 (|) で区切って含まれます。このフィールドは青色で表されます。
前提条件
このチュートリアルを実行する前には、サーバー上に次のソフトウェアがインストールされ構成されていることを確認してください。
Microsoft Visual Studio
開発者ツールがインストールされている Microsoft BizTalk Server
チュートリアル用にドキュメント インスタンスを準備するには、次の内容をテキスト エディターにコピーし、テキスト ファイルとして保存します。 すべての改行と復帰を必ずコピーしてください。
PO1999-10-20
US Alice Smith 123 Maple Street Mill Valley CA 90952
US Robert Smith 8 Oak Avenue Old Town PA 95819
ITEMS,ITEM872-AA|Lawnmower|1|148.95|Confirm this is electric,ITEM926-AA|Baby Monitor|1|39.98|Confirm this is electric
ウィザードを起動する
Visual Studio で、ソリューション エクスプローラーを開きます。
新しいフラット ファイル スキーマを追加するには、プロジェクトを右クリックし、[ 追加] を選択します。 [ 新しい項目] をクリックします。
[ 新しい項目の追加] ウィンドウで、次の操作を行います。
[ カテゴリ ] セクションで、[ スキーマ ファイル] を選択します。
[テンプレート] セクション で 、[ フラット ファイル スキーマ ウィザード] を選択します。
[ 名前 ] フィールドに、新しいスキーマに 「PurchaseOrder.xsd 」と入力します。
[追加] をクリックします。
BizTalk フラット ファイル スキーマ ウィザードが開くと、[ようこそ] ページが表示されます。
今後ウィザードを実行するときにこの画面をスキップするには、[ この概要ページをもう一度表示しない ] ボックスを選択します。 [次へ] をクリックして、続行します。
発注書インスタンスの選択
[フラット ファイル スキーマ情報] 画面で、インスタンスを選択し、次の情報を入力します。 完了したら、[次へ] をクリックして次に進みます。
[インスタンス ファイル]: [参照] をクリックして、スキーマを生成するフラット ファイルを指定します。 「チュートリアル: ドキュメント インスタンスからのフラット ファイル スキーマの作成」の「前提条件」セクションで作成したテキスト ファイルを含むフォルダーを参照します。
レコード名: 「 PO 」と入力します。これはスキーマ ルート名になります。
ターゲット名前空間: スキーマ ターゲット名前空間の型 http://Flat_File_Project.PurchaseOrder 。
コード ページ: ドロップダウン選択リストから UTF-8 (65001) を選択します。
Count positions (バイト単位): 位置データ フィールドをバイト数でカウントする場合は、このチェック ボックスをオンにします。 既定では、位置指定データ フィールドは文字数でカウントされます。 このチュートリアルでは、[Count positions in bytes]\(バイト単位のカウント位置\) チェックチェック ボックスをオフのままにします。
発注書データを選択する
[ドキュメント データを選択] 画面に、フラット ファイルの内容が表示されます。 スキーマの作成に必要なデータを選択し、[次へ] をクリックします。
Note
ドキュメント インスタンス全体を使用する場合は、 Ctrl キーを 押しながら A キーを押してすべてを選択できます。
Note
ウィザード全体を通して編集ボックスにラップされたドキュメント インスタンスの内容全体を表示する場合は、[ 長い行を折り返す ] チェック ボックスをオンにします。
Note
インターチェンジ インスタンスからスキーマを作成する場合は、個別のドキュメント構造を表す部分のみを選択します。
発注書レコードを区切る
- 発注書の各行が復帰改行 (CRLF) で終わるので、[区切り記号で] を選択し、[レコード形式の選択] 画面で [次へ] をクリックします。
発注書レコードのプロパティを指定する
[区切られたレコード] 画面で、次のように入力してスキーマの最初のレベルを定義します。完了したら、[次へ] をクリックします。
子区切り記号:{CR}{LF} を選択します。
Note
[子区切り記号] プロパティは、ドロップダウン選択リストに既定値のセットを含む、編集可能なボックスです。 [子区切り記号] には、文字または 16 進値を指定できます。 たとえば、\{ または {0x0D0A} を指定できます。
[エスケープ文字]: エスケープ文字とは、特殊な意味を持つ文字の前に置くことによって、その意味を無効化させることのできる単一の文字のことです。 詳細については、「 エスケープ文字 」を参照してください。 このチュートリアルでは空白のままにします。
Note
子区切り記号またはエスケープ文字に 、{、} を使用\する場合は、バックスラッシュを使用する必要があります。 たとえば、\\ や \{ のようにします。
[ Record has a tag identifier]\(レコードにタグ識別子がある \) チェック ボックスをオンにし、[Tag]\(タグ\) に 「PO 」と入力 します。 複数のレコード ファイルでは、 PO を使用して個々のレコードを識別します。 [次へ] をクリックして、続行します。
発注書レコードの要素を定義する
ウィザードのここまでの作業で、注文書レコードの 4 つの要素を指定しました。次は、要素のプロパティを定義する必要があります。 最初の行で、次の操作を行います。
要素名の日付を入力します。
[要素の種類 ] で [Field element ]\ (フィールド要素\) を選択します。
[データ型] のドロップダウン選択リストから日付を選択します。
次の要素について手順 a ~ c を繰り返します。 完了したら、 [次へ] をクリックします。
要素名 要素型 データ型 顧客 繰り返しレコード 無視 items レコード Note
マウスと Shift キーまたは Ctrl キーを使用して複数の行を選択した後、要素の種類を 1 つの種類に変更できます。
Note
[子要素] 画面で [次へ] をクリックすると、[戻る] をクリックして、子要素を再定義することや変更することができなくなります。 ウィザードを終了し、もう一度ウィザードを起動してフラット ファイル スキーマを定義することが必要になる場合があります。
以上の手順を完了すると、次に示すようにスキーマの最初のレベルが生成されます。 これで、3 つの一意の要素が定義されました。続いて、発注書レコードの要素の子レコードを定義します。 [次へ] をクリックします。
顧客レコードを定義する
Customer 要素を繰り返しレコードの種類として定義し、items 要素をレコード型として定義したため、BizTalk フラット ファイル スキーマ ウィザードでは、これら 2 つの要素をさらに定義し続けます。 [ スキーマ ビュー ] 画面で[ 顧客] を選択し、[ 次へ ] をクリックして続行します。
customer レコードを操作するために、この要素を表すデータを選択する必要があります。 これは繰り返しレコードであるため、レコードを定義するためにどちらの行も使用できます。 顧客データの 1 行目を選択し、[次へ] をクリックして続行します。
[レコード書式を選択] ページで、[相対位置] を選択し、[次へ] をクリックします。
ウィザードには、フィールド間の距離を表示および計算するための視覚的ツールが用意されています。 [ 位置指定レコード ] ページで、マウスの左ボタンを使用して位置マーカー 10 をクリックし、名前フィールドの開始位置を表します。 次の表に従って位置マーカーをクリックして、残りのデータ フィールドを表します。
フィールド名 位置マーカー street 30 city 50 state 65 postalcode 68 [次へ] をクリックして、続行します。
[子要素] ページで、子要素のプロパティを指定します。 最初の行を選択し、要素名として country と入力します。 他の列については既定値のままにしておきます。 [要素名] の他のプロパティに次の値を入力します。
要素名 値 customer_Child2 Fullname customer_Child3 通り customer_Child4 city customer_Child5 状態 customer_Child6 Postalcode [次へ] をクリックして、続行します。
次に示すように、顧客レコードの子要素が作成されます。 次に、items レコードの子要素を定義するために、[次へ] をクリックします。
アイテム レコードを定義する
[スキーマ ビュー] ページで、[items] を選択し、[次へ] をクリックします。
[ ドキュメント データの選択 ] ページで、行全体が ITEMS で始まるを選択し、[ 次へ ] をクリックしてその子要素を定義します。
[レコード書式を選択] ページで、[区切り記号] を選択し、[次へ] をクリックします。
items レコードでは、各項目を区切るためにコンマが使用されています。 そこで、[区切られたレコード] ページで、次のように入力して items レコードを定義します。 完了したら、 [次へ] をクリックします。
[子区切り記号] ボックスの一覧の [,] を選択します。
[エスケープ文字] ボックスは空白のままにします。
[ Record has a tag identifier]\(レコードにタグ識別子がある\) を選択し、[Tag]\(タグ\) に 「ITEMS」 と入力 します。
複数のアイテム レコードでは、 ITEMS を使用して個々のレコードを識別します。
ウィザードにより、[区切られたレコード] ページの値を使用して、2 つの子要素が識別されます。 そのうちの 1 つは繰り返しレコードであるため、最初の要素を選択し、[要素名] に「item」と入力します。次に、[要素の種類] ボックスの一覧の [繰り返しレコード] を選択します。 列の残りの既定値はそのままにします。 2 番目の行を選択し、[要素の種類] ボックスの一覧の [無視] を選択します。 [次へ] をクリックします。スキーマに items レコードの次のレベルが作成されます。 操作を続行して、発注書スキーマの最後の部分を定義します。
[スキーマ ビュー] ページでアイテムを選択し、[次へ] をクリックして続行します。
[ドキュメント データを選択] ページで、[ITEM872-AA|Lawnmower|1|148.95|Confirm this is electric] を選択します。 [次へ] をクリックして、続行します。
個々の項目はパイプ記号 (|) で区切られています。そこで、[レコード書式を選択] ページで、[区切り記号] オプションを選択します。
[区切られたレコード] ページで、次のように入力して、item レコードを定義します。 完了したら、 [次へ] をクリックします。
[子区切り記号] ドロップダウン選択リストから選択|します。
[エスケープ文字] ボックスは空白のままにします。
[子要素] ページでは、5 つの子要素がウィザードによって識別されます。 最初の行を選択し、[要素名] に「productCode」と入力します。 列の残りの既定値はそのままにします。 残りの 要素名プロパティには、次のように入力します。
要素名 値 item_Child2 description item_Child3 quantity item_Child4 Unitprice item_Child5 ノート [次へ] をクリックして、続行します。
これで、発注書スキーマのすべてのノードが定義されました。 [スキーマ ビュー] ページで [完了] をクリックします。
これで、最終的な注文書スキーマを表示できます。 BizTalk スキーマ エディターでスキーマの定義を更新することもできます。 「スキーマ ノードのプロパティ」の「フラット ファイルのプロパティ名テーブル」と「プロパティ テーブル 」を参照してください。 このプロパティの詳細については、「 UI ガイダンスと開発者 API 名前空間リファレンス」を参照してください。
まとめ
このチュートリアルでは、BizTalk フラット ファイル スキーマ ウィザードを使用して、ドキュメント インスタンスからフラット ファイル スキーマを作成する方法について学習しました。
次の手順
PO インスタンスの検証
PurchaseOrder.xsd スキーマで適切に PO インスタンスが解析されることを確認するには、次の操作を行います。
ソリューション エクスプローラーで PurchaseOrder.xsd を右クリックし、[プロパティ] を選択します。
[プロパティ ページ] で、「チュートリアル: ドキュメント インスタンスからフラット ファイル スキーマを作成する」の「前提条件」セクションで作成した PO インスタンスの場所が[入力インスタンス ファイル名]フィールドで指定されていることを確認します。 [OK] をクリックしてダイアログ ボックスを閉じます。
ソリューション エクスプローラーで、[PurchaseOrder.xsd] を右クリックし、[インスタンスの検証] を選択します。 検証コンポーネントが開きます。
検証が完了すると、PurchaseOrder.xsd スキーマによる PO インスタンスの解析結果に基づいた XML 出力を確認するためのリンクが表示されます。 この XML 出力を表示するには、Ctrl キーを押しながらリンクをクリックします。
スキーマのパイプラインを作成する
ここで、BizTalk アプリケーションで使用するための、PurchaseOrder.xsd スキーマに基づく受信パイプラインまたは送信パイプラインを作成できます。
新しいパイプラインを作成するには、「新しいパイプライン を作成する方法」を参照してください。 フラット ファイル パイプライン コンポーネントを構成するには、「 フラット ファイル アセンブラー パイプライン コンポーネントを構成する方法 」および「 フラット ファイル 逆アセンブラー パイプライン コンポーネントを構成する方法」を参照してください。
参照
BizTalk フラット ファイル スキーマ ウィザードの使用方法
BizTalk フラット ファイル スキーマ ウィザードでのスキーマの作成