nexacro platformはサーバーモジュールとしてX-APIを提供します。このAPIを使って生成された Dataset formatを nexacro platform HTML5が解釈してUI画面に表示します。
ここでは X-APIが生成するDataset formatを説明します。このformatを遵守したXML Formatファイルはnexacro platform 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.nexacroplatform.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つは存在する必要があります。
- 属性
<Root xmlns="http://www.nexacroplatform.com/platform/dataset"> <Root xmlns:nexacro="http://www.nexacroplatform.com/platform/dataset"> <Root xmlns=".." version="1000">
属性名 | 説明 |
---|---|
xmlns | ネームスペース、もし基本ネームスペースを使わない場合なら、 xmlns:nexacroと明示します。 |
ver | Dataset Layoutのバージョンを明示します。 |
Parameters
- 概要
通信時に必要なパラメータを明示するためのエレメント。実際にパラメータ値を有するのは子ノード Parameterであり、Parameters エレメントとは、子ノードParameterを有する集合の役割です。
- 子ノード
Parameter
- 繰り返し指定
存在しないか、1つ存在する場合があります。
Parameters > Parameter
- 概要
パラメータの値を明示します。
- 子ノード
なし
- 繰り返し指定
存在しないか、パラメータエレメントはパラメータの個数だけ存在します。
- 属性
<Parameter id="ErrorMsg" type="STRING">SUCC</ Parameter >
属性名 | 説明 |
---|---|
id | パラメータ名 |
type | パラメータ値のタイプ |
- 備考
nexacro platformでは次のような必須パラメータを使うように定義した。nexacro platformとの連動のためにはパラメータを設定しなければなりません。
<Parameter id="ErrorCode">1</Parameter> <Parameter id="ErrorMsg">SUCC</Parameter> <Parameter id="cachetype">Session</Parameter>
id | 説明 |
---|---|
ErrorCode | Error Code. -Transaction 関数呼び出しの時、0より小さい場合にはユーザが定義したエラーで、InputDatasetにUpdateStatusを反映せずに失敗処理されます。 0以上の場合には、ユーザが定義した正常状態で、InputDatasetにUpdateStatusを反映して成功処理されます。 -Load 関数呼び出しの時 0より小さい場合には、ユーザが定義したエラーで失敗処理されます。 0以上の場合には、ユーザが定義した正常状態で成功処理されます。 デフォルト値:0 |
ErrorMsg | Error Message 未指定時:ErrorCodeが未指定または0(デフォルト)の場合はSUCCESS、それ以外はFAILED |
CacheType | Cache方法のTypeを指定する。Typeは Session、Dynamic、Static、Noneに区分されます。 デフォルト値:Session |
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: バイナリデータ
Dataset
- 概要
一つのDataset内容の値を持っているエレメント。子ノードにはDatasetの構造を表現するためのColumnInfoとDatasetの実際のデータを持っている Rowsがあります。
- 子ノード
ColumnInfo, Rows
- 繰り返し指定
存在しないか、xmlが送信するDatasetの個数だけ存在します。
- 属性
<Dataset id="History">
属性名 | 説明 |
---|---|
id | Dataset 名 |
Dataset > ColumnInfo
- 概要
Datasetのスキーマを表現するためのエレメント。実際にスキーマの情報は子ノードであるConstColumnとColumnが表現しColumnInfoはこれらを含む集合の役割を持ちます。固定値のカラムスキーマはConstColumnが非固定値のカラムスキーマはColumnが表現します。
- 子ノード
ConstColumn, Column
- 繰り返し指定
存在しないか、1つ存在する場合があります。
ColumnInfoの子要素は、ConstColumn、Column順に配置する必要があり、ConstColumnが常に最初に配置される必要があります。
ConstColumn、Columnが混ざって配置される場合には、アプリケーションからのデータを処理できない場合があります。
(X) ConstColumnが先に配置されない場合 <ColumnInfo> <Column id="stockCode" size="5" type="STRING"/> <Column id="currentprice" size="10" type="INT"/> <ConstColumn id="market" size="10" type="STRING" value="kse"/> <ConstColumn id="openprice" size="10" type="INT" value="15000"/> </ColumnInfo> ...
(X) ConstColumn, Columnが混ざって配置された場合 <ColumnInfo> <ConstColumn id="market" size="10" type="STRING" value="kse"/> <Column id="currentprice" size="10" type="INT"/> <ConstColumn id="openprice" size="10" type="INT" value="15000"/> <Column id="stockCode" size="5" type="STRING"/> </ColumnInfo> ...
Dataset > ColumnInfo > ConstColumn
- 概要
常に固定値を持つ Columnのスキーマを表現します。
- 子ノード
なし。
- 繰り返し指定
存在しないか、固定値カラムの数だけ存在します。
- 属性
<ConstColumn id="systemName" size="255" type="STRING" value="Production"/>
属性名 | 説明 |
---|---|
id | カラム名 |
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
- 概要
パラメータの値を明示します。
- 子ノード
なし。
- 繰り返し指定
存在しないか、非固定値カラムの個数だけあります。
- 属性
<Column id="department" size="255" type="STRING" prop="text" sumtext="小計"/>
属性名 | 説明 |
---|---|
id | カラム名 |
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個数だけあります。
- 属性
<Row type="insert"> <Col id="currentCode">10001</Col> <Col id="currentprice">13400</Col> </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> <Row type="delete"> <Col id="currentCode">10001</Col> <Col id="currentprice">13400</Col> </Row>
属性名 | 説明 |
---|---|
type | insert : 原本 Datasetに追加された Row. |
update: 原本 Datasetに対して変更された Row。子ノードにOrg_Rowを含む。Org_Rowは変更前の原本Rowです。 | |
delete: 原本Datasetに削除されたRowを意味します. |
備考
Dataset > Rows > Row > Col
- 概要
データセットの各カラム値を表現します。
- 子ノード
なし。
- 繰り返し指定
存在しないか、カラムの個数だけあります。
- 属性
<Col id="department">management</Col>
属性名 | 説明 |
---|---|
Id | カラム名。ColumnInfo の子ノード(ConstColumn 、Column)で設定した名前と同じである。 |
- 備考
0 length string の場合
<Col id="department"></Col> or <Col id="department"/>
Nullの場合Tagがないと認識します。
Dataset > Rows > Row > OrgRow
- 概要
データセットのRow値が変更された時、元々の値を有するエレメント。子ノードとして実際の値を有するColがあります。
- 子ノード
Col
- 繰り返し指定
存在しないか、1つ存在する場合があります。
- 備考
親エレメントである Rowと似ていますが属性がありません。
Dataset > Rows > Row > OrgRow > Col
- 概要
変更される前のカラム値を持っています。
- 子ノード
なし
- 繰り返し指定
存在しないか、カラムの個数だけあります。
- 属性
<Col id="department">management</Col>
属性名 | 説明 |
---|---|
id | カラム名。ColumnInfo の子エレメント(ConstColumn 、Column)で設定した名と同じです. |