api:info
api:info キーワードは、スクリプトのメタデータを説明するために使われます。この情報は、connector でユーザーインプットベーシックなエラーチェックおよびデフォルト値の設定に使われます。api:info キーワードには、次のような情報が含まれます。
- カラム定義
- スクリプトが受け入れるインプットパラメータ
- スクリプトが生成するアウトプット
Table パラメータ
次のパラメータはtable 自体を定義します:
- desc[ription]:tableの説明。もし説明がない場合には、スクリプトの名前が使われます。
- title:スクリプトのタイトル。もしタイトルがない場合には、スクリプトの名前が使われます。
- methods:スクリプトに対して実行できるHTTP メソッド。SELECT、INSERT、UPDATE、およびDELETE はHTTP GET、POST、PUT/PATCH/MERGE、およびDELETE にそれぞれ対応します。
- url:スクリプトauther のURL。
- keywords:スクリプトを説明するキーワード。
インプット、アウトプット、およびカラム パラメータ
api:info キーワードは、スクリプトインプット、およびアウトプットに加えて、カラムを定義するスコープに含まれる追加パラメータを持ちます。これらのパラメータはAPI Script キーワードではなく、api:info の追加情報であることに注意してください。
attr
attr パラメータは、table カラムを説明し、最低でもname およびdata type の二つのアトリビュートを含みます。name はアルファベット文字列でなければなりません。他のオプションアトリビュートは、カラムについてより多くの情報を提供し、connector がさまざまなツールにおいてこれらのカラムを正しく表示することを実現します。
<attr
name="Name"
xs:type="string"
other:xPath="name/full"
readonly="true"
columnsize="100"
desc="The name of the person."
/>
- name:カラムの名前を定義するアルファベット文字列。
- xs:type:カラムのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
- other:'other:' で始まるアトリビュートで追加の情報を提供します。これらの other プロパティは、処理に固有とすることができます。例えば、other:xPath はXPath をローカル、もしくはリモートリソースのノードに指定します。XPath はRepeatElement に相対的とすることができます。
- desc[ription]:カラムの短い説明。
- key:カラムがtable の主キーの一部であるかどうか。
- readonly:カラムが更新できるかどうか。'TRUE またはFALSE' が使用可能です。
- req[uired]:挿入において、カラムが指定される必要があるかどうか。'TRUE またはFALSE' が使用可能です。
- def[ault]:指定がない場合のカラムのデフォルト値。
- values:カンマ区切りのカラムの有効な値。指定されている場合、指定されたカラム値が許容された値のどれかと合致しない場合には、エンジンはエラーを出します。
- reference[s]:別のtable の主キーの外部キー。外部キーは、次のシンタックスで指定できます。 table.key.例:"Employees.EmployeeId".
- columnsize:文字列の最大文字数、もしくは数値カラムの桁精度。数値カラムの桁制度とは、桁数です。
- scale | decimaldigits:小数点以下のスケール。小数点以下のスケールとは、小数点の右側の桁数です。
- isnullable:カラムがnull 値を受け入れるかどうか。これは、null 値を送受信することを阻害することではありません。
input
インプットパラメータは、スクリプトへのインプットを説明するために使われます。インプットエレメントは、tables、およびstored procedures の双方のスキーマに使うことができます。
パラメータのアトリビュートは、ユーザーに対してインプットの追加情報を提供し、エンジンが基礎チェックを行うことを許可します。
stored procedure スキーマでは、一つもしくは複数のエレメントがstored procedure のインプットを説明するために使われます。table スキーマでは、インプットエレメントは、WHERE 句でのみ使うことできる、疑似カラムを定義します。
XML データソースでは、疑似カラムはXPath を含むことができません。
<input
name="name"
desc="Example of an input parameter"
default="defValue"
req="true"
values="value1, value2, value3"
xs:type="string"
/>
- name:インプット名。英数字で、以下を追加で含むことができる:"#" はインプットが複数の値を持つことができることを意味し、"myprefix:*" は同一の接頭辞や値を含むインプットのセットを意味し、"*" は、任意のインプットパラメータを意味します。
- desc[ription]:インプットの短い説明。
- xs:type:インプットのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
- def[ault]:スクリプトコールでインプット値が提供されていない場合に使われるデフォルト値。
- key:インプットが主キーかどうか。
- req[uired]:インプットが必要かどうか。要求されたインプットが提供されず、デフォルト値が定義されていない場合にはエンジンはエラーを出します。'TRUE またはFALSE' が使用可能です。
- values:カンマ区切りのインプットの有効な値。指定されている場合、指定されたインプットが許容された値のどれかと合致しない場合には、エンジンはエラーを出します。
- alias:インプットのエイリアス。
- other:'other:' で始まるアトリビュートで追加の情報を提供します。これらの other プロパティは、処理に固有とすることができます。
output
オペレーションのアウトプットを説明するアウトプットパラメータ。ただし、これらはconnector には無視されます。よって、オペレーションのアウトプットは、情報ブロックでの定義から独立しています。
<output name="Id"
desc="The unique identifier of the record."
xs:type="string"
other:xPath="content/properties/Id"
/>
- name:アウトプットの名前で、"myprefix:*" はどいういつの接頭辞や値を含むインプットのセットを意味し、"*" は、任意のアウトプットパラメータを意味します。
- xs:type:アウトプットのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
- desc[ription]:アウトプットの短い説明。
- columnsize:文字列の最大文字数、もしくは数値アウトプットの桁精度。カラムの桁制度とは、桁数です。
- other:'other:' で始まるアトリビュートでアウトプットについて追加の情報を提供します。例えば、other:xPath はXPath をローカル、もしくはリモートリソースのノードに指定します。XPath はRepeatElement に相対的とすることができます。
サンプル
異なるデータ型のカラムを含む一般的なテーブルのメタデータについて説明します:<api:info title="NorthwindOData" desc="Parse an XML document (NorthwindOdata.xml) into rows.">
<attr name="ID" xs:type="int" key="true" other:xPath="content/properties/ID" />
<attr name="EmployeeID" xs:type="int" other:xPath="content/properties/EmployeeID" />
<attr name="Name" xs:type="string" other:xPath="content/properties/Name" />
<attr name="TotalExpense" xs:type="double" other:xPath="content/properties/TotalExpense" />
<attr name="HireDate" xs:type="datetime" other:xPath="content/properties/HireDate" />
<attr name="Salary" xs:type="int" other:xPath="content/properties/Salary" />
</api:info>
以下は、Bing 検索API を使ったウェブ検索のストアドプロシージャのメタデータを説明します:
<api:info title="SearchWeb" desc="Use Bing to search the Web.">
<output name="Id" xs:type="string" other:xPath="content/properties/ID" />
<output name="URL" xs:type="string" other:xPath="content/properties/Url" />
<output name="Title" xs:type="string" other:xPath="content/properties/Title" />
<output name="Description" xs:type="string" other:xPath="content/properties/Description" />
<output name="DisplayURL" xs:type="datetime" other:xPath="content/properties/DisplayUrl" />
<input name="SearchTerms" />
</api:info>
関連項目
- api:script:スクリプトブロックの作成。
- api:call:スクリプトおよびオペレーションの呼び出し。
- api:set:アイテムでアトリビュートを設定。