포스XML

POSXML

POSXML(Point Of Sale eXtended Markup Language)은 XML을 기반으로 하는 프로그래밍 언어로, POS 터미널용 애플리케이션을 만드는 데 사용된다.

일반적으로 이러한 응용 프로그램을 개발하는 데 사용되는 프로그래밍 언어는 C 또는 C++이다.POSXML의 주요 목적은 POS 단말기의 애플리케이션 개발을 단순화하는 것이다.여기에는 일련의 지시사항과 미리 프로그램된 명령이 포함되어 있어 기계와 직접 상호작용을 할 수 있어 응용 프로그램 개발 시간이 크게 단축된다.

언어 기능

POSXML의 구조

POSXML은 POSXML 응용프로그램의 논리적 구조를 형성하는 명령과 명령 집합의 수준과 하위 집합을 보여주는 태그의 형태로 구성되고 구조화된다.

예:

<>!--Variables 선언--><>stringvariable value=""variable="sTicketInfo"/>,<>stringvariable value=""variable="sCityInfo"/>, <,integervariable value="0"variable="iQtdTickets"/>, <,integervariable value="0"variable="iInvalidInfo"/>,>!--기능 디스플레이 메인 메뉴,><>기능 name="fMainMenu">,<>intege.value="0"variable="iOption"/>,>!rvariable. 메인 메뉴 -> <메뉴 옵션="메인 메뉴:\\1티켓 판매\2.보고서\3.EXIT" variable="$(iOption)"/><!- 1.티켓 판매 --><만약 운영자="equalto" value="1" variable="$(iOption)">> ...</if>...</기능>

컴파일된 언어

기존 프로그래밍 언어의 대다수와 유사하게, 파일 크기를 줄이기 위해 특정 형식으로 POSXML을 컴파일하여, 프레임워크(가상 머신)를 사용하여 애플리케이션을 POS 터미널에서 실행할 수 있도록 한다.

컴파일하면 POSXML로 작성된 프로그램이 POS 터미널에서 가상 머신이 해석하는 바이트 코드의 집합이 되어 POS 터미널에서 구현된다.

예:

< 진열하다 선="0" column="0" message="바이트코드 예" /> 

컴파일된 바이트 코드:

d0 \x0A 0 \x0A 바이트 코드 예제 \x0A \x0D

구문

대문자 및 소문자(대소문자 구분)의 사용에 대한 준수와 같은 POSXML의 명령과 지침은 훈련을 통해 획득된다.기계와 상호 작용하기 위해 입력이 필요한 다른 명령과 달리 언어에 속하는 일부 명령에는 매개변수가 필요하지 않다.

예:

명령어 또는 매개 변수가 필요하지 않은 명령.

<네트워크.hostdisconcept/ > <클랜디스플레이 /> <기다림키 /> 

장비와 상호 작용하기 위해 지침과 매개변수가 필요한 명령.

< 진열하다 선="1" column="1" message="POSXML" /> << menu> 변수="$(var1)" 옵션="MENU\1. 1호선\2호선. 2호선\3호선"/> <기다리다 밀리초="1000" /> 

함수, 변수, 페이지에 부여된 이름 또한 대문자와 소문자로 작성된 규칙을 준수해야 하므로 개발자가 "칼큘라_디지토"라는 함수를 만들면 "칼큘라_디지토"를 통해 변수를 호출할 수 없게 된다.함수 또는 변수 페이지의 호출은 프로그래머가 할당한 정확한 이름을 충족해야 한다.

명령 및 지침

XML을 기반으로 한 구조화된 언어인 POSXML은 끊임없이 진화하는 언어인 만큼 언제든지 라이브러리에 새로운 명령어와 지시사항을 추가할 수 있다.처음에 이 언어는 기본 디스플레이(LCD), 키패드, 마그네틱 카드 리더, 프린터 등 몇 가지 자원을 사용하여 POS 단말기에 기능적 응용 프로그램을 만들 수 있는 기본 명령만 겨우 20개 가지고 있었다.

언어의 진화와 함께, 이제 거의 100개의 명령과 명령어가 파일, 그림, 수학 연산자, 문자열 유형의 변수를 조작하는 기능, 변수의 정의, 논리 연산자, 프로토콜 ISO 8583(트랜스에서의 정보 교환을 위한 프로토콜 표준)을 다루는 데 이용 가능하다.그 중에서도 특히 신용카드로 하는 행위.

변수 및 데이터 유형

POSXML에 변수가 입력된다. 정수 및 문자열의 두 가지 유형만 있다.POSXML은 선언된 변수 수를 512개로 제한한다.

이 변수들은 글로벌(global)로 선언된다.그것들은 런타임 프로세스에서 POSXML 프로그램의 모든 스케줄링된 페이지들에 걸쳐 공유된다.

예:

문자열 유형 변수:

<!--. "http://en.wikipedia.org/wiki/posxml" -->을 포함하는 문자열 유형 변수 선언 < 문자열변수 값어치="http://en.wikipedia.org/wiki/posxml" 변수="url" />  <!-- 선언된 변수의 내용에 접근하는 것 -> < 진열하다 선="0" column="0" message="$($)" /> 

정수 유형 변수:

<!-- 다음을 포함하는 정수형 변수 선언: "0" --> <변량적> 값어치="0" 변수="iValue" />  << 화폐> column="0" 선="0" message="금액 입력:" 변수="$(iValue)" /> 

메모리에 선언된 변수에 대한 호출은 변수의 유형에 관계없이 $(name_of_the_variable)로 이루어진다.

또한 한 유형의 변수를 다른 유형으로 변환할 수도 있다.POSXML에서는 이를 위해 intostring과 stringtoint 명령을 사용한다.

예:

<변량적> 값어치="1" 변수="아이옵카오_티포_인티로" /> < 문자열변수 값어치=""  변수="Sopcao_Tipo_String" />  < inttisting 정수변수="$(iOpcao_Tipo_)인티로)" 문자열변수="$(SOpcao_Tipo_String)" /> 

파일 시스템

POS 단말기의 어플리케이션을 작성할 때, 개발자는 장비의 특정 파일 시스템에 쓸 필요성에 직면한다.POSXML 언어는 WALK dbFile(POSXML을 컴파일한 프로그램을 해석하는 프레임워크에 의해 정의된 파일 시스템) 형식의 파일과 함께 동작한다.이 파일 시스템 WALK dbFile은 다음 형식을 사용한다.key = buffer\nkey = buffer\n, 기본적으로 Unix 환경에서 텍스트 파일의 형식.\n포장하는 데 사용된다.POSXML 언어에는 POS 터미널의 파일과 함께 작동하는 8개의 기본 명령이 있다.

  • 편집파일
  • 일렬 종대로 읽다
  • readfilebyindex
  • 파일을 삭제하다
  • file.open
  • file.write
  • file.read
  • file.close

예:

<편집파일 파일 이름="test.txt" 키="$(샤브)" 값어치="$(sValor)" />   <읽기파일 파일 이름="test.txt" 키="$(샤브)" 변량 측량."$(스레토르노)" />  <read filebyindex> 파일 이름="test.db" 지수="0" variablekey="$(var1)" variablevalue="$(var2)" variable return="$(var3)" />   <삭제파일 파일 이름="test.txt" /> 

코드 예제

전통적인 "헬로 월드"

<!-- 디스플레이에 있는 phgrase "Hello World"를 보여주는 예시 어플리케이션. -->  <!-- display(표시) 명령어는 특정 열과 행으로 메시지를 표시한다. --> < 진열하다 선="3" column="0" message="헬로 월드" /> <!-- "waitkey" 명령은 운영자가 실행을 계속하기 위해 다른 키를 누를 때까지 기다린다. --> <기다림키 /> 

메뉴, 기능 및 인상

< 문자열변수 값어치="" 변수="stringName" /> < 문자열변수 값어치="" 변수="string Value /> <변량적> 값어치="0" 변수="integerValue" /> <변량적> 값어치="0" 변수="integerOption" />    <!-- 명령 메뉴는 터미널의 디스플레이에 메뉴를 표시하는 데 사용된다.캡처된 값은 변수에 넣는다. --> << menu> 변수="$(integerOption)" 옵션="\메뉴\ 1) 주 기능\ 2) 인쇄 기능" />  <만약에 변수="$(integerOption)" 연산자="equalto" 값어치="1" >    <!--- 명령 호출기능은 함수 명령으로 정의된 함수를 호출하는 데 사용된다. -->    <콜기능 이름을 붙이다"메인" /> </만약>    <만약에 변수="$(integerOption)" 연산자="equalto" 값어치="2" >    <!--- 명령 호출기능은 함수 명령으로 정의된 함수를 호출하는 데 사용된다. -->    <콜기능 이름을 붙이다"인쇄" /> </만약>   <!--- 명령 함수는 PosXml Application에서 함수를 만드는 데 사용된다. --> <기능 이름을 붙이다"메인" >   <!-- 명령 입력화폐는 단말기에 화폐가치를 입력하는 데 사용된다. 단말기에는 숫자 키를 누르는 동안 쉼표와 포인트가 있는 마스크가 표시된다. 캡처된 값을 100으로 곱한 후 쉼표와 포인트가 없는 변수를 넣는다. -->    << 화폐> 변수="$(integerValue)" 선="0" column="0" message="Input de Value:" />    <클랜디스플레이 />    <!--- intostring 명령어는 문자열 변수의 정수 변수를 변환하는 데 사용된다. -->    < inttisting 변수정수자="$(integerValue)" 가변성="$(stringValue)" />    < 진열하다 선="2" column="0" message="값:" />    < 진열하다 선="3" column="0" message="$(stringValue)" />    <기다림키 /> </기능>   <기능 이름을 붙이다"인쇄" >    <!-- 명령 입력 형식은 특정 형식으로 값을 입력하는 데 사용된다. 형식은 형식 매개 변수에 지정되어 있다.캡처된 값은 변수에 넣는다. -->    <상징형식 변수="$(stringName)" 선="0" column="0" message="이름 입력:" 형식="AAAAH" />    <프린트> message="$(stringName)" />    <!-- 명령어 페이퍼피드는 단말기의 프린터의 종이를 전진시키는 데 사용된다. -->    <페이퍼피드 /> </기능> 

POS 파일 처리

< 문자열변수 값어치="" 변수="stringRet" /> < 문자열변수 값어치="" 변수="stringWriteKey" /> < 문자열변수 값어치="" 변수="String WriteValue" />    <상징형식 변수="$(StringWriteKey)" 선="0" column="0" message="키 입력:" 형식="AAAAH" /> <상징형식 변수="$(StringWriteValue)" 선="2" column="0" message="값 입력:" 형식="9999999999" /> <!-- 명령 편집 파일은 'Walk Db format'으로 파일을 작성하거나 편집하는 데 사용된다. 'Walk Db format'의 파일 형식은 다음과 같다('key=value\nkey=value\n ...'). --> <편집파일 파일 이름="test.txt" 키="$(StringWriteKey)" 값어치="$(StringWriteValue)" /> <!-- 명령어 readfile은 'Walk Db format'의 파일을 읽는 데 사용된다. 'Walk Db format'의 파일 형식은 다음과 같다('key=value\nkey=value\n ...'). 파일이나 키가 존재한다면 그 값은 '백색 공간'이다. --> <읽기파일 파일 이름="test.txt" 키="$(StringWriteKey)" 변량 측량."$(stringRet)" /> <!-- 명령 삭제 파일은 터미널의 메모리에서 파일을 제거하는 데 사용된다. --> <삭제파일 파일 이름="test.txt" /> <!--- 명령 조인 문자열은 변동성의 첫 번째 값과 두 번째 값을 결합하는 데 사용된다. --> <joinstring 첫째 가치="결과:" 제2의 가치="$(stringRet)" 변량 측량."$(stringRet)" /> <클랜디스플레이 /> < 진열하다 선="4" column="0" message="$(stringRet)" /> <기다림키 /> 

"While"의 예

<!--- "stringvariable" 명령어는 유형 문자열의 한 변수를 메모리에 생성하며, 이 경우 이름은 "sData"이다. --> < 문자열변수 값어치="" 변수="stringData" /> < 문자열변수 값어치="KEY_CANCEL" 변수="스트링키" />    <!-- 이 경우 조건이 충족될 때까지 "그동안"이라는 명령은 루프를 깨닫는다. "sKey"의 값이 "KEY_CANCEL"과 다를 때.  --> <그동안> 변수="$(스트링키)" 연산자="equalto" 값어치="KEY_CANCEL" >    <!-- cleansplay 명령어는 터미널의 디스플레이를 청소하는 데 사용된다. -->    <클랜디스플레이 />    <!-- getdatetime> 명령은 지정된 형식에서 날짜와 내부 시간을 추출한다. 그리고 이 값을 "변수"에 저장한다.  -->    <getdatetime> 형식="d/M/yy h:m:s" 변량 측량."$(stringData)" />    <!-- display(표시) 명령어는 특정 열과 행으로 메시지를 표시한다. -->    < 진열하다 선="2" column="0" message="$(stringData)" />    <!--- 명령 "readkey"는 "variable return"의 문자열에서 저장하기 위해 밀리초 단위로 지정된 시간을 기다린다. 타이트한 키가 아닌 경우 "KEY_CANCEL" 값을 반환한다.  -->    <읽기키 밀리초="800" variable return="$(스트링키)" /> </그동안>  < 진열하다 선="2" column="0" message="$(스트링키)" /> <기다림키 /> 

참조

참고 항목