넥사크로는 서버모듈로 X-API를 제공합니다. 이 API를 사용하여 생성된 Dataset format을 넥사크로가 해석해 앱을 화면에 보여줍니다.
여기서는 X-API가 생성하는 Dataset format을 설명합니다. 이 format을 준수한 XML 파일은 넥사크로가 바로 적용할 수 있는 데이터로 간주해 사용할 수 있습니다. 즉, 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
- 반복 여부
없거나 1개가 있을 수 있습니다.
Parameters > Parameter
- 개요
파라미터의 값을 명시합니다.
- 자식 요소
없다.
- 반복 여부
없거나 Parameter 요소는 파라미터 개수만큼 반복될 수 있습니다.
- 속성
<Parameter id="ErrorMsg" type="STRING">SUCC</ Parameter >
속성 이름 | 설명 |
---|---|
id | 파라미터 이름 |
type | 파라미터값의 타입 |
- 비고
넥사크로에서는 다음과 같은 필수 파라미터를 사용하도록 정의하고 있습니다. 넥사크로와의 연동을 위해서는 파라미터를 설정하여야 합니다.
<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: 문자열. 컬럼의 크기와 관계없이 길이 제한이 없습니다. (단 시스템에서 한 번에 할당 가능한 크기인 2GB 정도 제한됩니다)
빈 문자열인 경우
<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
- 개요
항상 고정된 값을 갖는 컬럼의 스키마를 표현합니다.
- 자식 요소
없다.
- 반복 여부
없거나 고정값 컬럼의 개수만큼 있을 수 있습니다.
- 속성
<ConstColumn id="systemName" size="255" type="STRING" value="Production"/>
속성 이름 | 설명 |
---|---|
id | 컬럼 이름 |
size | 최대 데이터 크기 |
type | 컬럼의 데이터 타입 |
value | 컬럼의 고정값 |
- 비고
type에 올 수 있는 데이터 타입은 다음과 같습니다.
STRING: 문자열. 컬럼의 크기와 관계없이 길이 제한이 없습니다.(단 시스템에서 한 번에 할당 가능한 크기인 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시 type을 정의 |
Sumtext | porp값이 text일 때 문자열 |
- 비고
type에 설정되는 값은 ColumnInfo에서의 type과 같습니다.
Prop은 다음과 같은 값을 갖습니다.
count : 컬럼의 row 개수를 summary 표시합니다.
sum: 컬럼의 row값의 합을 summary에 표시합니다.
max: 컬럼의 row들 중 Max값을 summary에 표시합니다.
min: 컬럼의 row들 중 Min값을 summary에 표시합니다.
avg: 컬럼의 row값의 평균을 summary에 표시합니다.
Text: summary에 sumtext 속성값을 표시합니다.
Dataset > Rows
- 개요
Dataset의 각 Row를 포함하기 위한 집합 의미의 요소. 실제 데이터를 표현하는 Row를 자식 요소로 갖습니다.
- 자식 요소
Row
- 반복 여부
없거나 1개 있을 수 있습니다.
Dataset > Rows > Row
- 개요
Dataset의 하나의 Row의 데이터를 표현하기 위한 요소. 실제 각 컬럼의 값을 표현하는 Col을 자식 요소로 갖습니다. 그리고 type이 “update"일 경우 변경되기 전의 Row의 값을 가지고 있는 Org_Row 자식 요소가 있습니다.
- 자식 요소
Col, Org_Row
- 반복 여부
없거나 Dataset의 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
- 개요
Dataset의 각 컬럼값을 표현합니다.
- 자식 요소
없습니다.
- 반복 여부
없거나 컬럼의 개수만큼 있을 수 있습니다.
- 속성
<Col id="department">management</Col>
속성이름 | 설명 |
---|---|
Id | 컬럼 이름. ColumnInfo 의 자식 요소(ConstColumn , Column)에서 설정한 이름과 같습니다. |
- 비고
빈 문자열인 경우
<Col id="department"></Col> or <Col id="department"/>
Null인 경우 Tag가 없는 것으로 구분합니다.
Dataset > Rows > Row > OrgRow
- 개요
Dataset의 Row의 값이 변경되었을 때, 원래 값을 가지고 있는 요소. 자식 요소로 실제 값을 가지고 있는 Col이 있습니다.
- 자식 요소
Col
- 반복 여부
없거나 1개 있을 수 있습니다.
- 비고
부모 요소인 Row와 유사하나 속성이 없습니다.
Dataset > Rows > Row > OrgRow > Col
- 개요
변경되기 전의 Column 값을 표현합니다.
- 자식 요소
없습니다.
- 반복 여부
없거나 컬럼의 개수만큼 있을 수 있습니다.
- 속성
<Col id="department">management</Col>
속성 이름 | 설명 |
---|---|
id | 컬럼 이름. ColumnInfo 의 자식 요소(ConstColumn , Column)에서 설정한 이름과 같습니다. |