XMLENCOD: Como Codificar Caracteres para XML

Como:

A função XMLENCOD codifica os cinco caracteres padrão a seguir quando são localizados em uma string:

Nome do Caractere

Caractere

Representação Codificada

ampersand

&

&

maior que o símbolo

>

>

menor que o símbolo

<

&lt;

aspas duplas

"

&quot;

aspas simples (apóstrofo)

'

&apos;



x
Sintaxe: Como Codificar Caracteres para XML
XMLENCOD(inlength, source_string, option, outlength,  output)

onde:

inlength

Inteiro

É o comprimento do campo que contém a string fonte de caracteres, ou um campo que contém o comprimento.

source_string

Alfanumérico

É o nome do campo que contém a string de caracteres de fonte ou uma string entre aspas simples (').

Opção

Inteiro

É um código que especifica se deve-se processar uma string que já contém caracteres codificados para XML. Valores válidos são:

  • 0, o padrão, que cancela o processamento de uma string que já contém pelo menos um caractere codificado para XML.
  • 1, que processa uma string que contém caracteres codificado para XML.
outlength

Inteiro

É o tamanho da string de saída, ou um campo que contém o tamanho.

Observação: O comprimento de saída, na pior situação, pode ter seis vezes o comprimento da entrada.

saída

Inteiro

É o campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.



Exemplo: Como Codificar Caracteres para XML

O arquivo XMLFUNCS é um arquivo .csv que contém alguns caracteres não codificados e alguns caracteres XML. O Arquivo Master é:

FILE = XMLFUNCS, SUFFIX=COM,$
SEGNAME = SEG01, SEGTYPE=S1,$
FIELD=INSTRING, ALIAS=CHARS, USAGE=A30,ACTUAL=A30,$

O conteúdo do arquivo segue:

CHARS: &  < >  ,$
ENCODED: &amp; &gt;  ,$
ENCODED: &quot; &apos;   ,$
MIXED:  &amp;  < &gt;   ,$

XMLENCOD codifica para XML qualquer um dos caracteres suportados para produzir OUTSRING1 e processa cada string de entrada contendo ou não caracteres codificados para XML. Para OUTSTRING2, ele apenas codifica estas strings que não contêm caracteres codificados para XML. Observe que alguns visualizadores decodificam automaticamente os valores codificados para exibição, produzindo saída no formato de texto simples (FORMAT WP):

FILEDEF XMLFUNCS DISK xmlfuncs.csv
DEFINE FILE XMLFUNCS
OUTSTRING1/A30=XMLENCOD(30,INSTRING,1,30,'A30');
OUTSTRING2/A30=XMLENCOD(30,INSTRING,0,30,'A30'); 
END
TABLE FILE XMLFUNCS
PRINT INSTRING OUTSTRING1 IN 24 OUTSTRING2 IN 48
ON TABLE SET PAGE NOPAGE
ON TABLE PCHOLD FORMAT WP
END

Em OUTSTRING1, os caracteres suportados foram codificados para XML, e a saída é produzida mesmo se a string de entrada contiver caracteres codificados. OUTSTRING2 é produzido apenas quando nenhum caractere codificado para XML existir na string de entrada:

 INSTRING               OUTSTRING1              OUTSTRING2   
 --------               ----------              ----------              
 CHARS: &  < >          CHARS: &amp;  &lt; &gt; CHARS: &amp;  &lt; &gt; 
 ENCODED: &amp; &gt;    ENCODED: &amp; &gt;                             
 ENCODED: &quot; &apos; ENCODED: &quot; &apos;                          
 MIXED:  &amp;  < &gt;  MIXED:  &amp;  &lt; &gt;

Information Builders