XMLアダプタを使用することで、検索対象の検索パスが異なる種類のXMLデータを表に格納できます。この場合、それぞれの種類の検索パスは、別のXMLグループとして定義することができます。別のXMLグループとすることで、表に格納したXMLデータを検索する場合に、検索範囲を対象のXMLグループに特定できます。また、XMLグループを利用することで、1つの表に対して格納したXMLデータを利用者の用途に合わせて、カテゴライズすることもできます。たとえば、業務ごとにXMLグループを割り振ることで、1つの表を使用して複数の業務も設計できます。
XMLデータを格納する場合、利用者は格納するXMLデータが属するXMLグループを指定します。このため、利用者はXMLグループに対応する情報を規定し、その情報を格納するための列を表に用意します。XMLデータ格納時(INSERT)に、このXMLデータが属するXMLグループの情報も一緒に表に格納します。
XMLグループを規定する情報の列と値の関係は、CREATE XMLGROUP文の選択条件で定義します。
以下に格納するXMLデータとXMLグループを規定する列の情報の関係を示します。
図2.11 格納するXMLデータとXMLグループ
選択条件では、XMLグループを規定する情報を格納する列と、情報の値を定義します。
図では、「伝票種別」列をXMLグループを規定する情報を格納する列とし、'1'の場合を受注伝票のXMLグループとし、'2'の場合を発注伝票のグループとしています。
以下の型の列を選択条件に指定できます。
SMALLINT
INTEGER
NUMERIC
DECIMAL
CHARACTER
NATIONAL CHARACTER
DATE
TIME
TIMESTAMP
INTERVAL
選択条件の指定では、値の範囲でXMLグループを指定できます。たとえば、’A’~’G’の値の場合、AというXMLグループに属し、’H’~’M’の値の場合、BというXMLグループに属するというように定義できます。この場合、CREATE XMLGROUPのRULEを以下のように記述します。
CREATE XMLGROUP A ON 伝票IXDSO ( ~ ) RULE (伝票種別) BETWEEN ('A') AND ('G'); CREATE XMLGROUP B ON 伝票IXDSO ( ~ ) RULE (伝票種別) BETWEEN ('H') AND ('M');
選択条件で指定する列は、列名リストとして複数の列を指定できます。
注意
表に格納するXMLデータのXMLグループが1つである場合でも、必ずXMLグループを規定する情報を格納するための列を用意します。なお、CREATE XMLGROUPの選択条件は省略できません。