Segue uma nova maneira de gerar xml… que é através do WRITE-XML.

Exemplo

DEFINE TEMP-TABLE Pessoa
FIELD nome    AS CHARACTER
FIELD idade   AS INTEGER
FIELD sexo    AS CHARACTER
FIELD salario AS DECIMAL.


DEFINE VARIABLE cTargetType AS CHARACTER NO-UNDO.
DEFINE VARIABLE cFile AS CHARACTER NO-UNDO.
DEFINE VARIABLE lFormatted AS LOGICAL NO-UNDO.
DEFINE VARIABLE cEncoding AS CHARACTER NO-UNDO.
DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO.
DEFINE VARIABLE lWriteSchema AS LOGICAL NO-UNDO.
DEFINE VARIABLE lMinSchema AS LOGICAL NO-UNDO.
DEFINE VARIABLE retOK AS LOGICAL NO-UNDO.

CREATE Pessoa.
ASSIGN Pessoa.nome    = ‘carlos’
Pessoa.idade   = 25
Pessoa.sexo    = ‘m’
Pessoa.salario = 1000.

CREATE Pessoa.
ASSIGN Pessoa.nome    = ‘joao’
Pessoa.idade   = 16
Pessoa.sexo    = ‘m’
Pessoa.salario = 500.

CREATE Pessoa.
ASSIGN Pessoa.nome    = ‘rita’
Pessoa.idade   = 32
Pessoa.sexo    = ‘f’
Pessoa.salario = 2000.

CREATE Pessoa.
ASSIGN Pessoa.nome    = ‘aline’
Pessoa.idade   = 22
Pessoa.sexo    = ‘f’
Pessoa.salario = 1270.

ASSIGN
cTargetType = “file”
cFile = “pessoa.xml”
lFormatted = YES
cEncoding = ?
cSchemaLocation = ?
lWriteSchema = NO
lMinSchema = NO.

retOK = TEMP-TABLE Pessoa:WRITE-XML(cTargetType,
cFile,lFormatted,
cEncoding,
cSchemaLocation,
lWriteSchema,
lMinSchema).


Arquivo gerado (pessoa.xml
)

<?xml version=”1.0″?>
<Pessoa xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”&gt;
<PessoaRow>
<nome>carlos</nome>
<idade>25</idade>
<sexo>m</sexo>
<salario>1000.0</salario>
</PessoaRow>
<PessoaRow>
<nome>joao</nome>
<idade>16</idade>
<sexo>m</sexo>
<salario>500.0</salario>
</PessoaRow>
<PessoaRow>
<nome>rita</nome>
<idade>32</idade>
<sexo>f</sexo>
<salario>2000.0</salario>
</PessoaRow>
<PessoaRow>
<nome>aline</nome>
<idade>22</idade>
<sexo>f</sexo>
<salario>1270.0</salario>
</PessoaRow>
</Pessoa>

flw