XPLATFORMはサーバーモジュールとしてX-APIを提供します。このAPIを使って生成された Dataset formatを XPLATFORM HTML5が解釈してUI画面に表示します。
ここでは X-APIが生成するDataset formatを説明します。このformatを遵守したXML FormatファイルはXPLATFORM HTML5が認識できるデータです。すなわちX-APIを使わなくてもサーバープログラムを開発することはできます。
Dataset XML layout
XML Declaration | |||||
Root | |||||
Cache | |||||
Parameters | |||||
Parameter (繰り返し) | |||||
Dataset (繰り返し) | |||||
ColumnInfo | |||||
ConstColumn (繰り返し) | |||||
Column (繰り返し) | |||||
Rows | |||||
Row (繰り返し) | |||||
Col (繰り返し) | |||||
OrgRow | |||||
Col (繰り返し) |
XML 宣言
xmlであることを明示するxml 宣言文を、次のように定義します。
<?xml version="1.0" encoding="utf-8"?>
xml宣言文はxml文書の一番前になければならず、この宣言文の前には空白文字を含めて、いかなる文字もあってはなりません。
xml例
<?xml version="1.0" encoding="UTF-8"?> <Root xmlns="http://www.tobesoft.com/platform/Dataset" ver="4000"> <Parameters> <Parameter id="service">stock</Parameter> <Parameter id="method">search</Parameter> </Parameters> <Dataset id="output"> <ColumnInfo> <ConstColumn id="market" size="10" type="STRING" value="kse" /> <ConstColumn id="openprice" size="10" type="INT" value="15000" /> <Column id="stockCode" size="5" type="STRING" /> <Column id="currentprice" size="10" type="INT" /> </ColumnInfo> <Rows> <Row> <Col id="currentCode">10001</Col> <Col id="currentprice">5700</Col> </Row> <Row> <Col id="currentCode">10002</Col> <Col id="currentprice">14500</Col> </Row> </Rows> </Dataset> </Root>
Dataset エレメント 説明
Datasetのエレメント(element)を説明します。
Root
概要
Datasetを現わす最上位エレメント
子ノード
Parameters
Dataset
繰り返し指定
必ず、1つは存在する必要があります。
属性
属性名 | 説明 | 例 |
---|---|---|
xmlns | ネームスペース、もし基本ネームスペースを使わない場合なら、 xmlns:tobeと明示します。 | <Root xmlns=”http://www.tobesoft.com/platform/Dataset”> <Root xmlns:tobe=”http://www.tobesoft.com/platform/Dataset”> |
ver | Dataset Layoutのバージョンを明示します。 | <Root xmlns=”” ver=”5000”> |
Parameters
概要
通信時に必要なパラメータを明示するためのエレメント。実際にパラメータ値を有するのは子ノード Parameterであり、Parameters エレメントとは、子ノードParameterを有する集合の役割です。
子ノード
Parameter
繰り返し指定
存在しないか、1つ存在する場合があります。
Parameters > Parameter
概要
パラメータの値を明示します。
子ノード
なし
繰り返し指定
存在しないか、パラメータエレメントはパラメータの個数だけ存在します。
属性
属性名 | 説明 | 例 |
---|---|---|
id | パラメータ名 | <Parameter id="ErrorMsg" type=”STRING”>SUCC </ Parameter > |
type | パラメータ値のタイプ |
備考
typeに指定できるデータタイプは次の通りです。
STRING: ストリング。Columnのsizeにかかわらず長さの制限がありません。(ただしsystemで一回に割り当て可能な大きさである2GBに制限される)
0 length string の場合
<Parameter id="ErrorMsg" type=”STRING”></Parameter>
Nullの場合
<Parameter id="ErrorMsg" type=”STRING”/>と区分する。
INT: 整数(-231~ 231-1)
FLOAT、DECIMAL: (±2.2X10-308 ~±1.7X10308)
BIGDECIMAL: 実数(±10-1056 ~ ±101056)
DATE: YYYYMMDD(-8192/01/01 ~ 8191/12/31)
DATETIME : YYYYMMDDHHmmssuuu (msecを含めることが可能)
TIME : 6桁 HHmmssuuu(msecを含めることが可能)
BLOB: バイナリデータ
MiPlatformでは次のような必須パラメータを使うように定義した。MiPlatformとの連動のためにはパラメータを設定しなければなりません。
id | 説明 | 例 |
---|---|---|
ErrorCode | Error Code. -Transaction 関数呼び出しの時、0より小さい場合にはユーザが定義したエラーで、InputDatasetにUpdateStatusを反映せずに失敗処理されます。 0以上の場合には、ユーザが定義した正常状態で、InputDatasetにUpdateStatusを反映して成功処理されます。 -Load 関数呼び出しの時 0より小さい場合には、ユーザが定義したエラーで失敗処理されます。 0以上の場合には、ユーザが定義した正常状態で成功処理されます。 デフォルト値:0 | <Parameter id="ErrorCode">1 </ Parameter > |
ErrorMsg | Error Message 未指定時:ErrorCodeが未指定または0(デフォルト)の場合はSUCCESS、それ以外はFAILED | < Parameter id="ErrorMsg"> SUCC </ Parameter > |
CacheType | Cache方法のTypeを指定する。Typeは Session、Dynamic、Static、Noneに区分されます。 デフォルト値:Session | < Parameter id="cachetype"> Session </ Parameter> |
Dataset
概要
一つのDataset内容の値を持っているエレメント。子ノードにはDatasetの構造を表現するためのColumnInfoとDatasetの実際のデータを持っている Rowsがあります。
子ノード
ColumnInfo
Rows
繰り返し指定
存在しないか、xmlが送信するDatasetの個数だけ存在します。
属性
属性名 | 説明 | 例 |
---|---|---|
id | Dataset 名 | <Dataset id=”History”> |
Dataset > ColumnInfo
概要
Datasetのスキーマを表現するためのエレメント。実際にスキーマの情報は子ノードであるConstColumnとColumnが表現しColumnInfoはこれらを含む集合の役割を持ちます。
固定値のカラムスキーマはConstColumnが非固定値のカラムスキーマはColumnが表現します。
子ノード
ConstColumn
Column
繰り返し指定
存在しないか、1つ存在する場合があります。
Dataset > ColumnInfo > ConstColumn
概要
常に固定値を持つ Columnのスキーマを表現します。
子ノード
なし。
繰り返し指定
存在しないか、固定値カラムの数だけ存在します。
属性
属性名 | 説明 | 例 |
---|---|---|
id | カラム名 | <ConstColumn id=”systemName” size=”255” type=”STRING” value=”Production”/> |
size | 最大データサイズ | |
type | カラムのデータタイプ | |
value | カラムの固定値 |
備考
typeに指定できるデータタイプは次の通りです.
STRING: ストリング。カラムのサイズにかかわらず長さの制限がありません。(ただしsystemで一回に割り当て可能な大きさである2GBに制限される)
INT: 整数(-231 ~ 231-1)
FLOAT、DECIMAL: (±2.2X10-308 ~±1.7X10308)
BIGDECIMAL: 実数(±10-1056 ~ ±101056)
DATE: YYYYMMDD(-8192/01/01 ~ 8191/12/31)
DATETIME : YYYYMMDDHHmmssuuu (msecを含んで可能)
TIME : 6桁 HHmmssuuu(msecを含めることが可能)
BLOB: バイナリデータ
Dataset > ColumnInfo > Column
概要
パラメータの値を明示します。
子ノード
なし。
繰り返し指定
存在しないか、非固定値カラムの個数だけあります。
属性
属性名 | 説明 | 例 |
---|---|---|
id | カラム名 | <Column id=”department” size=”255” type=”STRING” prop=”text” sumtext=”小計”/> |
size | データの最大大きさ | |
type | カラムのデータタイプ | |
Prop | Summuryの時タイプを定義 | |
Sumtext | porp値が textである時は文字列 |
備考
typeに設定される値は ColumnInfoでの typeと同じです。
Propは次のような値を持7.2.9ちます。
count : このカラムのrow個数をsummary表示します。
sum: このカラムのrow値の合計をsummaryに表示します。
max: このカラムのrowの中でMax値をsummaryに表示します。
min: このカラムのrowの中でMin値をsummaryに表示します。
avg: このカラムのrow値の平均をsummaryに表示します。
Text: summaryに sumtext属性値を表示します。
Dataset > Rows
概要
データセットの各Rowを内包するエレメント。実データであるRowを子ノードとして持ちます。
子ノード
Row
繰り返し指定
存在しないか、1つ存在する場合があります。
Dataset > Rows > Row
概要
データセットの一つのRowのデータを表現するためのエレメント。実際に各カラムの値を表現するColを子ノードとして有しています。 そしてtypeが“update”の場合、変更される前のRowの値を有するOrg_Rowが、子ノードとしてあります.
子エレメント
Col
Org_Row
繰り返し指定
存在しないか、データの Row個数だけあります。
属性
属性名 | 説明 | 例 |
---|---|---|
type | insert : 原本 Datasetに追加された Row. | <Row type="insert"> <Col id=”currentCode”>10001</Col> <Col id=”currentprice”>13400</Col> </Row> |
update: 原本 Datasetに対して変更された Row。子ノードにOrg_Rowを含む。Org_Rowは変更前の原本Rowです。 | <Rows> <Row type=”update”> <Col id=”currentCode”>10001</Col> <Col id=”currentprice”>13400</Col> <OrgRow> <Col id=”currentCode”>10001</Col> <Col id=”currentprice”>13700</Col> </OrgRow> </Row> </Rows> | |
delete: 原本Datasetに削除されたRowを意味します. | <Row type="delete"> <Col id=”currentCode”>10001</Col> <Col id=”currentprice”>13400</Col> </Row> |
Dataset > Rows > Row > Col
概要
データセットの各カラム値を表現します。
子ノード
なし。
繰り返し指定
存在しないか、カラムの個数だけあります。
属性
属性名 | 説明 | 例 |
---|---|---|
Id | カラム名。ColumnInfo の子ノード(ConstColumn 、Column)で設定した名前と同じである。 | < id=”department”>management </Col> |
備考
0 length string の場合
<Col id=”department” ></Col> ないし <Col id=”department” />
Nullの場合
Tagがないと認識します。
Dataset > Rows > Row > OrgRow
概要
データセットのRow値が変更された時、元々の値を有するエレメント。子ノードとして実際の値を有するColがあります。
子ノード
Col
繰り返し指定
存在しないか、1つ存在する場合があります。
備考
親エレメントである Rowと似ていますが属性がありません。
Dataset > Rows > Row > OrgRow > Col
概要
変更される前のカラム値を持っています。
子ノード
なし
繰り返し指定
存在しないか、カラムの個数だけあります。
属性
属性名 | 説明 | 例 |
---|---|---|
Id | カラム名。ColumnInfo の子エレメント(ConstColumn 、Column)で設定した名と同じです. | < id=”department”>management</> |