A estrutura do POSXML
A estrutura do POSXML
Segue o padrão aberto XML, amplamente difundido na indústria de software. O padrão XML é totalmente flexível e possibilita rápida expansão. Todas as regras de formatação aplicadas ao XML continuam existindo no POSXML. Alguma dessas são descritas abaixo:
1. Organização e Estrutura
A linguagem POSXML é organizada e estruturada em forma de tags com níveis e subníveis de comandos que formam a estrutura lógica do aplicativo POSXML. Uma tag pode ser identificada quando está entre os sinais < (menor) e > (maior), onde a mesma deve obrigatoriamente ser aberta e fechada.
Exemplo
<aplicativoposxml xmlns="http://tempuri.org/posxml.xsd"> ... ... </aplicativoposxml>
2. Tag Pai ou Tag Root
Todo aplicativo POSXML deve obrigatoriamente possuir uma tag pai ou tag root, e possuir um nome válido, obedecendo ao critério de abertura e fechamento da mesma.
Abaixo da tag root, devemos obrigatoriamente ter uma tag chamada <pagina>, que delimita um bloco da aplicação que é executado conforme solicitado.
A <pagina nome=“principal”> é a primeira a ser executada, e a única que fica armazenada no terminal. Nela devemos escrever toda a lógica de nosso programa.
Ao fazermos qualquer modificação na <pagina nome=“principal”> e o terminal se conectar ao host, a mensagem WALK: Aplicativo Atualizado! aparecerá na tela do terminal.
As demais páginas além da principal, podem ser utilizadas para escrever tickets de impressão ou lógicas de confirmação. Lembre-se: Apenas a página principal fica armazenada no terminal, as demais são compiladas em tempo de execução e enviadas pelo host ao terminal.
A execução se inicia na página principal, e após executar a sequência de comandos, se assim for especificado o terminal vai se conectar ao host. Cabe ao host especificar o retorno contendo o nome da próxima <pagina> a ser executada. Assim é possível navegar entre as páginas segundo instruções do host autorizador.
Conforme mencionado, a página principal inicia sua execução imediata no terminal POS sem nenhum tipo de conexão. Apenas se a página principal do host estiver diferente da página principal do terminal é que esta será atualizada.
<aplicativoposxml xmlns="http://tempuri.org/posxml.xsd">
<pagina nome= "principal">
<display linha="1" coluna="0" mensagem="Aplicativo PosXML" />
<display linha="2" coluna="0" mensagem="Plano Be Tecnologia"/>
<esperatecla />
<limpadisplay />
<conectar />
</pagina>
</aplicativoposxml>
3. Case sensitive
A linguagem POSXML é case sensitive, portando existem diferenças entre palavras com letras minúsculas e palavras com letras maiúsculas. Devemos ficar atentos ao escrever aplicativos, principalmente ao nomear funções e variáveis.
No exemplo abaixo a função que será chamada é a segunda, porque mostramensagem não é igual a mostraMensagem.
<aplicativoposxml xmlns="http://tempuri.org/posxml.xsd">
<pagina nome= "principal">
<chamafuncao nome="mostramensagem" />
<funcao nome="mostraMensagem">
<display linha="0" coluna="0" mensagem=" Mensagem 1" />
<esperatecla />
</funcao>
<funcao nome="mostramensagem">
<display linha="0" coluna="0" mensagem=" Mensagem 2" />
<esperatecla />
</funcao>
</pagina>
</aplicativoposxml>
4. Caracteres reservados
Todos os caracteres reservados na linguagem XML continuam existindo na linguagem POSXML e devem ser escritos da maneira correta.
Os símbolos a seguir devem ser escritos da seguinte maneira:
< < > > & & ' ' " "
Exemplo
Para exibir uma mensagem com o símbolo de menor (<), a sintaxe ficaria assim:
<aplicativoposxml xmlns="http://tempuri.org/posxml.xsd">
<pagina nome= "principal">
<chamafuncao nome="mostramensagem" />
<funcao nome="mostramensagem">
<display linha="0" coluna="0" mensagem="< = menor" />
<esperatecla />
</funcao>
</pagina>
</aplicativoposxml>
5. Comentários
Blocos de comentários podem ser utilizados com as tags <!-- e -->, por exemplo:
<aplicativoposxml xmlns="http://tempuri.org/posxml.xsd">
<pagina nome= "principal">
<!-- função que mostra uma mensagem no display -->
<funcao nome="mostramensagem">
<display linha="0" coluna="0" mensagem="< = menor" />
<esperatecla />
</funcao>
</pagina>
</aplicativoposxml>
