10.8.1 要求電文の形式

要求電文は,XML文書形式で作成します。

要素,属性およびテキストデータは,W3CのXMLの仕様に従って指定します。XML文書で使用できない「<」,「>」,「&」などの文字を使用する場合,エスケープするか,CDATAセクションを利用する必要があります。

<この項の構成>
(1) 要求電文の形式
(2) 要求電文の要素と属性

(1) 要求電文の形式

要求電文の形式は,単一のSQL文の実行を要求する場合と,複数のSQL文の実行を要求する場合とで異なります。

要求電文の形式を次に示します。なお,斜体の文字は可変値を表します。

単一のSQL文の実行を要求する場合
ルート要素(DBadapter要素)の下位要素としてSQL識別子要素を記述します。記述できるSQL識別子要素の数は,一つだけです。

<DBadapter>
 <SQL識別子 out_maxOccurs="検索結果出力最大件数">
   <DBA_IN_DATA>
     <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
       :
   </DBA_IN_DATA>
 </SQL識別子>
</DBadapter>

複数のSQL文の実行を要求する場合
ルート要素(DBadapter要素)の下位要素としてDBA_MULTI_SQL要素を記述します。複数のDBA_MULTI_SQL要素を記述できます。記述できる数は,SQLオペレーション定義ファイルのMAX_SQL_NO要素に設定した値以下です。

<DBadapter>
 <DBA_MULTI_SQL>
   <SQL識別子 out_maxOccurs="検索結果出力最大件数">
     <DBA_IN_DATA>
       <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
         :
     </DBA_IN_DATA>
   </SQL識別子>
 </DBA_MULTI_SQL>
   :
</DBadapter>

(2) 要求電文の要素と属性

要求電文の要素と属性について次の表に示します。なお,要素および属性の指定は,SQLオペレーション定義ファイルの設定値に依存します。SQLオペレーション定義ファイルについては「4.3.5(1) SQLオペレーション定義ファイルの作成」を参照してください。

表10-22 要求電文の要素と属性(DBアダプタ用のサービスリクエスタ)

要素名・属性名種別内容と設定値設定値の型省略可否
DBadapter要素ルート要素です。次の下位要素があります。
単一SQL文の実行要求の場合
下位要素はSQL識別子要素です。
複数SQL文の実行要求の場合
下位要素はDBA_MULTI_SQL要素です。
×
DBA_MULTI_SQL要素サービスリクエスタからの要求が,複数のSQL文を実行する要求であることを示す要素です。SQL識別子以降の下位要素で入力情報を設定します。
SQLオペレーション定義ファイルのMAX_SQL_NO要素に設定した値以内で複数記述できます。
単一のSQL文の実行を要求する場合,この要素は記述できません。
SQL識別子要素SQL識別子にはSQLオペレーション定義ファイルで指定したSQL識別子の名称を指定します。
DBA_IN_DATA以降の下位要素で,入力情報を設定します。
属性にout_maxOccursがあります。
 out_maxOccurs属性検索結果出力最大件数を指定します。0以上の値を指定します。
省略した場合
SQLオペレーション定義ファイルで指定したout_maxOccursの値が設定されます。
「0」を設定した場合
最大件数が2,147,483,647件に設定されます。
xsd:int
DBA_IN_DATA要素引数要素以降の下位要素で,SQLオペレーション定義ファイルで設定した引数要素のデータを設定します。×
引数要素要素引数要素にはSQLオペレーション定義ファイルで指定した引数要素の名称を指定します。
この要素には,SQLオペレーション定義ファイルで指定した引数要素のデータが格納されます。
属性にnulldataがあります。
SQLオペレーション定義ファイルの設定で,該当するSQL識別子に引数要素がない場合,この要素は設定できません。
xsd:stringまたはdata_typeの設定値×
 nulldata属性SQLオペレーション定義ファイルで指定したdba_inf(引数の種別)が「data」の場合に,空要素のデータを「null」として扱うかどうかを指定します(dba_infが「data」以外の場合は,指定できません)。
「null」として扱う場合
「"Y"」を指定します。
「null」として扱わない場合
「"N"」を指定します。
なお,省略した場合,この属性には「"N"」が設定されます。
xsd:string
{Y|N}
(凡例)
-:設定値はありません。
○:省略できます。
×:省略できません。
注※
格納する引数要素の型は,SQLオペレーション定義ファイルで,該当する引数要素に指定したdba_inf(引数の種別)によって異なります。dba_infがtable,columnまたはpresetの場合,xsd:string型になります。dba_infがdataの場合,data_type(データ型)の設定値に従ってください。data_typeの設定値と引数要素の型の対応については,「表10-23」および「表10-24」を参照してください。
また,dba_infがdataの場合,引数要素に格納するデータをシングルクォーテーション(')で囲む必要はありません。

表10-23 data_typeの設定値と引数要素の型の対応(HiRDBの場合)

data_typeの設定値引数要素の型
INTEGERxsd:int
SMALLINTxsd:short
DECIMALxsd:string
FLOATxsd:double
REALxsd:float
CHARxsd:string
VARCHARxsd:string
DATExsd:date
TIMExsd:string
TIMESTAMPxsd:string
LONGVARBINARYxsd:hexBinary
注※
記述した型に加え,空要素の設定も許可されます。
 

表10-24 data_typeの設定値と引数要素の型の対応(Oracleの場合)

data_typeの設定値引数要素の型
NUMERICxsd:string
CHARxsd:string
VARCHARxsd:string
DATExsd:date
TIMExsd:string
TIMESTAMPxsd:string
LONGVARCHARxsd:string
CLOBxsd:string
VARBINARYxsd:hexBinary
LONGVARBINARYxsd:hexBinary
BLOBxsd:hexBinary
注※
記述した型に加え,空要素の設定も許可されます。
 

なお,DBアダプタに送信する要求電文で設定する引数要素の値は,次の表のとおりに扱います。

表10-25 DBアダプタに送信する要求電文での引数要素の扱い

要求電文の引数要素の値SQLオペレーション定義ファイルの設定値要求電文のnulldataの属性値引数要素の扱い
dba_infの属性値data_typeの属性値
空要素data"Y"または"△Y△"null
"Y"または"△Y△"以外(省略時も含む)空文字列("")
data以外空文字列("")
空要素以外dataCHAR,VARCHAR,LONGVARCHAR,CLOB値の前後の空白文字は削除しません。<引数要素>△ABC△</引数要素>は,空白文字を削除しないで"△ABC△"として扱います。
CHAR,VARCHAR,LONGVARCHAR,CLOB以外値の前後の空白文字を削除します。<引数要素>△123△</引数要素>は,空白文字を削除して"123"として扱います。
data以外値の前後の空白文字は削除しません。<引数要素>△ABC△</引数要素>は,空白文字を削除しないで"△ABC△"として扱います。
(凡例)
-:判定の材料ではありません。
△:一つ以上の空白文字(半角空白文字,改行文字,タブ文字)です。
注※
nulldataの属性値の前後の空白文字は無視します。