Work In Progress
Il supporto in RPG IV per leggere i file XML è stato introdotto dalla versione IBM i V5R4 (circa 2006).
Esistono due codici operativi per leggere i file XML:
Il vantaggio di XML-INTO è la sua semplicità di utilizzo. Riassumendo brevemente: si definisce una struttura dati che rispecchia esattamente la struttura del file XML che risiede in una cartella di IFS, si esegue il codice operativo XML-INTO e in un sol colpo ci si ritrova tutto il contenuto dell'XML nella struttura dati.
Lo svantaggio principale è il limite determinato dalla struttura dati che si deve definire nell'RPG: limiti di dimensioni o limiti nella definizione della struttura quando si ha a che fare con file XML complessi con numerose nidificazioni di tag.
La sintassi base è:
XML‐INTO dsTarget %XML(xmlSource : processingOptions);
doc=file
indica che xmlSource è il nome del file XML; in assenza xmlSource dovrebbe contenere i dati del file XMLcase=any
è necessaria affinché i tag dell'XML (che sono case sensitive) trovino corrispondenza con i nomi delle variabili della DS definita in RPGallowmissing=yes
: è necessaria nel caso in cui l'XML può prevedere dei tag ripetuti che avranno nella DS corrispondente un array. Se il numero delle ripetizioni del tag è minore degli elementi dell'array si riceverà un errore a meno di specificare questa opzionecountprefix=count_
: specificando questa opzione nella DS dovranno essere definite anche delle variabili di tipo integer con il nome corrispondente al tag preceduto dal prefisso (p.es. count_). In queste variabili verrà scritto il numero di ripetizioni effettive dei tag. (disponibile da IBM i 6.1)Il codice operativo XML-SAX non presenta gli svantaggi di XML-INTO in quanto elabora passo passo i singoli tag dell'XML. Lo svantaggio è che occorre scrivere più codice RPG utilizzando le procedure.