Muchas gracias por tu respuesta, Cid. Efectivamente, el problema era ése (aparte de algunas cosillas más, relacionadas con el lío de estructuras de datos necesarias para reflejar el XML).

Le verdad es que, para XML's pequeños, XML-INTO es una maravilla. Para el que le interese, adjunto de nuevo el XML y el ILE RPG que lo parsea. Al final del programa he añadido la recuperación de los 4 nodos del XML que me interesaba recuperar.

Un saludo,
Potele




El 27/01/2015 20:54, Cid Fernández escribió:
Hola,

Según tenía entendido los nombres de las variables deben ser "exactamente"
los nombres de los Elementos.

En el .xml todos los elementos comienzan por "PFxxxx" y en el RPG no hay
ninguna variable con "PFxxx"

Prueba a poner todas las variables con "exactamente" el mismo nombre
(incluido Minúsculas/Mayúsculas, no sea que el XML-INTO haga case sensitive)

Saludos, Cid

-----Mensaje original-----
De: [email protected]
[mailto:[email protected]] En nombre de Potele
Enviado el: martes, 27 de enero de 2015 11:43
Para: forum.help400
Asunto: Una de XML-INTO en ILE RPG

Buenas foreros,

Aquí va una pregunta para algún Scott Klement que haya por ahí ;-)

Estoy intentando parsear un documento XML utilizando la operación de ILE RPG
"XML-INTO", que carga un documento XML completo y lo mapea con las
estructuras de datos (DS) definidas en el RPG. Mi problema es que no consigo
definir correctamente dichas estructuras para que no me dé el error RNX0353
("El documento XML no coincide con la variable RPG") al ejecutar el
XML-INTO.

Adjunto fuente del RPG y del documento XML. Los nodos del XML que se pueden
repetir varias veces son PFdoc, PFremitente y PFfirmante. La ruta en la que
se encuentra el XML se recibe en el primer parámetro del RPG: "$file_path".

Muchas gracias de antemano por vuestra ayuda.

Un saludo,
Potele




José de la Herran Núñez
Kordinazio Teknikoko Burua | Jefe del Área de Coordinación Técnica
Informazioaren Teknologien Saila Departamento de Tecnologías de la
Información
Tel: 945161614
Fax: 945161600
Vitoria-Gasteizko Udala. Ayuntamiento de Vitoria-Gasteiz VITORIA-GASTEIZ!
EUROPEAN GREEN CAPITAL 2012

------------------------------------------------------------

KONFIDENTZIALTASUNA

Komunikazio honen edukia eta honi erantsitako dokumentazio osoarena
konfidentziala da eta adierazitako jasotzaileari beste inori ez dagokio.
Zeu jasotzaile ez bazina, jakinaraz iezaguzu, mesedez, eta eskatu nahi
dizugu edukiaren berri inori ez esan eta mezua ezaba dezazula.


CONFIDENCIALIDAD

El contenido de esta comunicación, así como el de toda la documentación
anexa, es confidencial y va dirigido únicamente al destinatario del mismo. En el supuesto de que usted no fuera el destinatario, le solicitamos que nos
lo indique y no comunique su contenido a terceros, procediendo a su
destrucción.


CONFIDENCIALITY

The content of this communication and any attached information is
confidential and exclusively for the use of the addressee.
If you are not the addressee, we ask you to notify to the sender and do not
pass its content to another person, and please be sure you destroy it.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.


José de la Herran Núñez
Kordinazio Teknikoko Burua | Jefe del Área de Coordinación Técnica
Informazioaren Teknologien Saila Departamento de Tecnologías de la Información
Tel: 945161614
Fax: 945161600
Vitoria-Gasteizko Udala. Ayuntamiento de Vitoria-Gasteiz
VITORIA-GASTEIZ! EUROPEAN GREEN CAPITAL 2012

------------------------------------------------------------

KONFIDENTZIALTASUNA

Komunikazio honen edukia eta honi erantsitako dokumentazio osoarena 
konfidentziala da eta adierazitako jasotzaileari beste inori ez dagokio.
Zeu jasotzaile ez bazina, jakinaraz iezaguzu, mesedez, eta eskatu nahi dizugu 
edukiaren berri inori ez esan eta mezua ezaba dezazula.


CONFIDENCIALIDAD

El contenido de esta comunicación, así como el de toda la documentación anexa, es confidencial y va dirigido únicamente al destinatario del mismo. En el supuesto de que usted no fuera el destinatario, le solicitamos que nos lo indique y no comunique su contenido a terceros, procediendo a su destrucción.


CONFIDENCIALITY

The content of this communication and any attached information is confidential 
and exclusively for the use of the addressee.
If you are not the addressee, we ask you to notify to the sender and do not 
pass its content to another person, and please be sure you destroy it. 
     h dftactgrp(*no) bnddir('QC2LE')
     h option (*nodebugio)

     D PFpeticion      DS                   QUALIFIED
     D  PFasunto                    255A
     D  PFreferencia                 30A
     D  PFtexto                    2000A
     D  PFtipoFirma                  15A
     D  PFaplicacion                 30A
     D  PFtipoAccDev                 10A
     D  PFaccDev                   2000A
     D  PFtipoAccFir                 10A
     D  PFaccionFir                2000A
     D  PFenviarYa                    1A
     D  PFdocs                              LIKEDS(docus)
     D  PFremitentes                        LIKEDS(remits)
     D  PFfirmantes                         LIKEDS(firmants)
     D  PFrespuesta                         LIKEDS(respuesta)

     D docus           DS                   QUALIFIED
     D  PFdoc                               LIKEDS(doc) Dim(5)
     D  countPFdoc                    5i 0 Inz

     D remits          DS                   QUALIFIED
     D  PFremit                             LIKEDS(rem) Dim(5)
     D  countPFremit                  5i 0 Inz

     D firmants        DS                   QUALIFIED
     D  PFfirman                            LIKEDS(fir) Dim(5)
     D  countPFfirman                 5i 0 Inz

     D respuesta       DS
     D  PFcodResult                   5A
     D  PFtxtResult                 255A
     D  PFhashPeti                   10A

     D doc             DS
     D  PFurlDoc                    255A
     D  PFmimeTypeDoc                30A
     D  PFnombreDoc                 255A
     D  PFfirmable                    1A
     D  PFhashDoc                    10A

     D rem             DS
     D  PFdniRemit                   15A

     D fir             DS
     D  PFdniFirmante                15A
     D  PFcargoFirman                15A

     d $file_path      S            255A
     d $options        S            100a   varying

     d ProgStatus     sds
     d  Parms            *PARMS
     d  ProgName         *PROC
     d  ErrMsgID              40     46
     d  ErrMsg                91    169
     d  JobName              244    253
     d  Userid               254    263
     d  JobNumber            264    269

       //
       //----- Main Routine
       //
     c     *entry        plist
     c                   parm                    $file_path
     c                   parm                    rdo               5
     c                   parm                    txtRdo          255
     c                   parm                    hashPet          10
     c                   parm                    hashDoc          10
      *
      /free

       //
       //      Establecer opciones del parseo XML
       //
             $options  = 'doc=file +
                trim=all +
                case=any +
                countprefix=count +
                allowextra=yes +
                allowmissing=yes';
       //
       //      Parsear con XML-INTO, que carga el XML completo en PFpeticion
       //
             xml-into PFpeticion %XML(%trim($file_path) : %trim($options));

       //
       //      Recuperar los nodos que nos interesa del XML
       //
             rdo = PFpeticion.PFrespuesta.PFcodResult;
             txtRdo = PFpeticion.PFrespuesta.PFtxtResult;
             hashPet = PFpeticion.PFrespuesta.PFhashPeti;
             hashDoc = PFpeticion.PFDocs.PFdoc(1).PFhashDoc;

      /end-free
     c                   eval      *inlr = *on
     c                   return

<?xml version="1.0" encoding="UTF-8"?>
<PFpeticion>
	<PFasunto>Asunto 444</PFasunto>
	<PFreferencia>referencia 444</PFreferencia>
	<PFtexto>Texto 444</PFtexto>
	<PFtipoFirma>CASCADA</PFtipoFirma>
	<PFaplicacion>WEBSRV</PFaplicacion>
	<PFtipoAccDev>WEB</PFtipoAccDev>
	<PFaccDev>hola</PFaccDev>
	<PFtipoAccFir>WEB</PFtipoAccFir>
	<PFaccionFir>adios</PFaccionFir>
	<PFenviarYa>S</PFenviarYa>
	<PFdocs>
		<PFdoc>
			<PFurlDoc>/TMPUSR/Ejemplo.doc</PFurlDoc>
			<PFmimeTypeDoc>doc</PFmimeTypeDoc>
			<PFnombreDoc>Ejemplo.doc</PFnombreDoc>
			<PFfirmable>S</PFfirmable>
			<PFhashDoc>yyyyyyyyyy</PFhashDoc>
		</PFdoc>
		<PFdoc>
			<PFurlDoc>/TMPUSR/Ejemplo2.doc</PFurlDoc>
			<PFmimeTypeDoc>doc</PFmimeTypeDoc>
			<PFnombreDoc>Ejemplo2.doc</PFnombreDoc>
			<PFfirmable>N</PFfirmable>
			<PFhashDoc>xxxxxxxxxx</PFhashDoc>
		</PFdoc>
	</PFdocs>
	<PFremitentes>
		<PFremit>
			<PFdniRemit>1111111</PFdniRemit>
		</PFremit>
		<PFremit>
			<PFdniRemit>22222222</PFdniRemit>
		</PFremit>
	</PFremitentes>
	<PFfirmantes>
		<PFfirman>
			<PFdniFirmante>3333333</PFdniFirmante>
			<PFcargoFirman>cargof1</PFcargoFirman>
		</PFfirman>
		<PFfirman>
			<PFdniFirmante>4444444</PFdniFirmante>
			<PFcargoFirman>cargof2</PFcargoFirman>
		</PFfirman>
	</PFfirmantes>
	<PFrespuesta>
		<PFcodResult>99999</PFcodResult>
		<PFtxtResult>Texto resultado</PFtxtResult>
		<PFhashPeti>adasfsfaws</PFhashPeti>
	</PFrespuesta>
</PFpeticion>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a