コード リストの管理
概要
XSD を使用すると、要素または属性に対して使用できる特定の有効な値を指定できます。 この機能は、 列挙 要素を使用して使用できます。 制限によって Field Element ノードまたは Field Attribute ノードのデータ型を派生させる場合、[ 制限 ] カテゴリで使用できるプロパティの 1 つが Enumeration プロパティです。 このプロパティを使用すると、[ 列挙エディター ] ダイアログ ボックスを開き、インスタンス メッセージ内の対応する要素または属性に対して有効と見なされる値を入力できます。
Microsoft BizTalk Server には、スキーマにおける列挙を管理するためのもう 1 つの方法として、コード リストという便利な機能が用意されています。 コード リストは、Microsoft Access データベースを使って各種の選択肢 (列挙値) を格納することにより一元的な管理を実現します。 さらに、使用する必要がある列挙値が直感的でない数値コードで構成されている場合は、 Enumeration プロパティを使用してそのフォームに入力する必要があります。コード リスト機能で使用するために Access データベースで作成するテーブルには、これらの数値のテキスト記述が含まれます。 テキストの説明は、よりあいまいな数値に相当するのではなく、 CodeList ダイアログ ボックスで使用されます。
コード一覧を使用する
コード リスト機能を使用するには、以下に示す手順に従ってください。
Access データベースと適切な名前のテーブル (および必要な列) を作成し、値を格納する必要があります。
テーブルの名前は、スキーマ ノードの Standard プロパティと Standard Version プロパティを組み合わせたものであり、アンダースコア (_) 文字で区切られます。 たとえば、Schema ノードの Standard プロパティを XML に設定し、Standard Version プロパティを MyVersion1 に設定した場合、CodeList Database プロパティで指定された Access データベースには、XML_MyVersion1という名前のテーブルが必要です。
これらのプロパティの詳細については、 UI ガイダンスと開発者 API 名前空間リファレンスを参照してください。
このテーブルは、3 つの列 (Code、Value、Desc など) で構成します。 最初の列は、互いに関連する行を識別します。この行には、選択した Field Element ノードまたは Field Attribute ノードに対応するデータに対して許可される可能性がある列挙の選択肢が 1 つ用意されています。 最初の列の値が同じになっている行はすべて、グループとしてまとめられます。 通常、これらの値には整数が使用されますが、スペースが含まれていなければ文字列を使用することもできます。
各行の 2 番目と 3 番目の列には、それぞれ、列挙値に対応する値とテキスト表現を格納します。
たとえば、次の Access データベース テーブルには、関連する 3 つの列挙値が 2 セット含まれています。 最初の列の値は、行の関連付けに使用されるもので、任意の値を使用できます。
コード 値 Desc 1 13 [赤] 1 16 [緑] 1 19 青 2 1 Small 2 2 Medium 2 3 Large
スキーマ ノードの 3 つのプロパティを適切に構成する必要があります。
CodeList Database プロパティは、作成した Access データベースの名前に設定する必要があります。
Standard プロパティと Standard Version プロパティは、アンダースコア (_) を区切る文字と組み合わせて、指定した Access データベース内の適切なテーブルの名前を形成できるように設定する必要があります。
選択した特定の Field Element ノードまたは Field Attribute ノードに対して Access データベースの値を実際に使用するには、そのプロパティの 2 つを構成する必要があります。
[ 派生者] プロパティを [制限] に設定する必要があります。 構成する必要があるもう 1 つのプロパティ である CodeList は、この手順を実行するまで有効になりません。
指定した Access データベース内の 1 つ以上の行の最初の列 (Code 列) の値に対応する値を CodeList プロパティに入力する必要があります。 このアクションは、選択した Field 要素 ノードまたは Field Attribute ノードに対応する列挙値のセットを識別します。
次に、CodeList プロパティ値フィールドの右側にある省略記号 (...) ボタンをクリックして、[CodeList] ダイアログ ボックスを開く必要があります。 このダイアログ ボックスのチェック ボックスを使用して、選択した [フィールド要素] ノードまたは [フィールド属性] ノードに対応するインスタンス メッセージ データの有効な値として許可する値を選択します。 選択できるのは、使用可能な値のサブセットだけです。 たとえば、前の表の例を使用して、 CodeList プロパティに値 1 を入力すると、[ CodeList ] ダイアログ ボックスには赤、緑、青の選択肢が表示されます。 [赤] と [緑] の [チェック] ボックスを選択し、[青] のチェック ボックスを選択しない場合は、選択した [フィールド要素] ノードまたは [フィールド属性] ノードの有効な値として、XSD に以前の色のみが表示されます。
Note
CodeList プロパティと CodeList Database プロパティはデザイン時にのみ使用され、Enumeration プロパティの対応する設定として XSD に保持されます。 実行時に、すべての値が Enumeration プロパティに対してのみ検証されます。
注意事項
特定の Field 要素 ノードまたは Field Attribute ノードでは、 Enumeration プロパティと CodeList プロパティの両方を使用しないでください。 2 つのプロパティを同時に使用した場合、最初に入力したプロパティ値が、最後に入力したプロパティ値によって上書きされます。