Olá!
Neste post será apresentado uma das formas de gerar uma string no formato de XML. O comando utilizado é o XML GENERATE, que possui a sintaxe para uso muito simples, veja abaixo:
XML GENERATE variável-A
FROM variável-B
COUNT IN variável-C
ON EXCEPTION
expressão
END-XML.
Onde:
- variável-A: é a variável que armazena a resposta/string gerada pela execução do comando.
- variável-B: variável que contém as informações para gerar a string no formato de XML.
- variável-C: após a execução do comando irá conter o número total de caracteres da resposta/string gerada, ou seja, possui o tamanho da string gerada em XML.
- expressão: em caso de erro na geração da string para XML será acionado uma exceção, a expressão é o comando que será executado em caso de erro.
Segue abaixo um exemplo de código COBOL para gerar uma string no formato de XML com os dados de uma pessoa.
Declaração das variáveis:
Código:
Neste código de exemplo temos a seguinte relação:
variável-A | GDA-TX-FMT-XML |
variável-B | IdentificacaoPessoa |
variável-C | GDA-TOTAL-CHAR-XML |
expressão | PERFORM 999001-ERRO-01 |
Assim, ao executar o código de exemplo o resultado é:
GDA-TOTAL-CHAR-XML = 136
GDA-TX-FMT-XML = <IdentificacaoPessoa><Codigo>1</Codigo><Nome>Felipe</Nome><Sobrenome>Barbosa Ferreira</Sobrenome><Idade>23</Idade></IdentificacaoPessoa>
Para melhor visualização do resultado da execução do código de exemplo, segue abaixo a string gerada no formato de XML endentada:
<IdentificacaoPessoa>
<Codigo>1</Codigo>
<Nome>Felipe</Nome>
<Sobrenome>Barbosa Ferreira</Sobrenome>
<Idade>23</Idade>
</IdentificacaoPessoa>
Note que facilmente é gerado uma string no formato de XML. Sendo, uma grande vantagem de utilizar o XML GENERATE é que espaços em brancos a direita e zeros a esquerda são descartados automaticamente do resultado final.
Também, que neste exemplo em caso de erro será acionado o parágrafo de erro 01, por meio do comando PERFORM 999001-ERRO-01.
O XML GENERATE possui outros comandos opcionais que facilitam a criação de strings xmls mais elaboradas, veja na página da IBM (clique aqui).
Em um post anterior foi demonstrado como extrair o conteúdo de uma string que estejam no formato de XML, veja em Unstring XML COBOL.