# 데이터 구조

IBChart는 `XML`과 `JSON` 두가지 형식의 자료구조를 사용합니다.

## 데이터 XML

조회 함수를 통해 읽어들이는 XML 전체 구조는 아래와 같습니다.

    <?xml version='1.0'?>
    <![CDATA[
    <IBCHART TYPE="" BACKGROUNDCOLOR='#CCFFCC' BORDERWIDTH='1' BORDERCOLOR='#0000FF' ZOOMTYPE='x' TITLE='타이틀' SUBTITLE='부제목' >
       <ETC-DATA>
            <ETC key="sname">홍길동</ETC>
            <ETC key="age">20</ETC>
       </ETC-DATA>
       <DATA>
             <POINTSET AXISLABEL="1/4분기">
                  <SERIES SERIESTYPE="line" SERIESNAME="중국"  SERIESCOLOR="blue" PointLabel="하나" POINTCOLOR="yellow">50</SERIES>
                  <SERIES SERIESTYPE="area" SERIESNAME="호주"  SERIESCOLOR="red" PointLabel="열하나" POINTCOLOR="block">48</SERIES>
                  <SERIES SERIESTYPE="spline" SERIESNAME="KOREA"  SERIESCOLOR="green" POINTNAME="스물하나" POINTCOLOR="#EECCFF">60</SERIES>
             </POINTSET>
             <POINTSET AXISLABEL="2/4분기">
                  <SERIES  POINTNAME="둘" POINTCOLOR="">22</SERIES>
                  <SERIES  POINTNAME="열둘" POINTCOLOR=" ">13</SERIES>
                  <SERIES  POINTNAME="스물둘" POINTCOLOR="">16</SERIES>
             </POINTSET>
         </DATA>
    </IBCHART>
    ]]>

- 조회 XML 구성 요소

name | required | description
--- | --- | ---
`IBCHART` | 필수 | 조회 데이터의 최상위 요소
`DATA` | 필수 | 조회 데이터의 시작 요소
`POINTSET` | 필수 | 포인트 집합
`SERIES` | 필수 | 시리즈 포인트
ETC-DATA | 선택 | 기타 데이터의 설정 요소

## 데이터 JSON

조회 함수를 통해 읽어들이는 JSON 전체 구조는 아래와 같습니다.

    {
      ibchart: {
        backgroundColor: "white",
        borderWidth: "1",
        borderColor: "#0000FF",
        zoomType: "x",
        title: "타이틀",
        subtitle: "부제목",
        etcData: [
          {key:"sname",value:"홍길동"},
          {key:"age",value:"20"}
        ],
        data: [{
         axisLabel: "1/4분기",
         series: [{
             seriesType: "line",
             seriesName: "중국",
             seriesColor: "blue",
             pointName: "하나",
             pointColor: "yellow",
             value: 220
           },{
             seriesType: "column",
             seriesName: "호주",
             seriesColor: "#DDDDFF",
             pointName: "열하나",
             pointColor: "#C6E2FF",
             value: 120
           },{
            seriesType: "spline",
            seriesName: "KOREA",
            seriesColor: "green",
            sointName: "스물하나",
            sointColor: "#EECCFF",
            Value: 55
          }]
        },{
          axisLabel: "2/4분기",
          series: [280,256,222]
        }]
      }
    }

- ETC-DATA가 아닌 `etcData` 임을 유의

- series 속성 안에서는 값만 나열할 수 있고, 값에 대한 속성을 명시할 때에는 `value` 속성을 사용

- 조회 JSON 구성 요소

name | required | description
--- | --- | ---
`ibchart` | 필수 | 조회 데이터의 최상위 요소
`data` | 필수 | 조회 데이터의 시작 요소
`series` | 필수 | 시리즈 포인트
etcData | 선택 | 기타 데이터 설정 요소