En aquest mòdul, aprendrem com treballar amb XML (eXtensible Markup Language) en RPG. L'XML és un format de dades molt utilitzat per a l'intercanvi d'informació entre sistemes diferents. Aprendre a gestionar XML és essencial per a la integració de RPG amb altres tecnologies modernes.
Objectius del Mòdul
- Comprendre què és XML i per què és important.
- Aprendre a analitzar i generar documents XML en RPG.
- Utilitzar eines i biblioteques per treballar amb XML.
- Implementar exemples pràctics de gestió d'XML.
Continguts
Què és XML?
XML (eXtensible Markup Language) és un llenguatge de marques que defineix un conjunt de regles per a l'estructuració de documents de manera que siguin llegibles tant per humans com per màquines. És àmpliament utilitzat per a l'intercanvi de dades entre sistemes diferents.
Característiques Clau d'XML
- Auto-descriptiu: Les etiquetes defineixen el contingut.
- Flexible: Pot ser utilitzat per a representar qualsevol tipus de dades.
- Estandarditzat: És un estàndard de la W3C.
Exemple d'XML
Anàlisi d'XML en RPG
Per analitzar XML en RPG, podem utilitzar diverses tècniques i biblioteques. Una de les més comunes és l'ús de l'API XML-INTO.
Exemple d'Anàlisi d'XML
Dcl-S xmlData Pointer; Dcl-S xmlString Varchar(1000); Dcl-Ds empleat Qualified; nom Varchar(50); càrrec Varchar(50); salari Packed(7:2); End-Ds; xmlString = '<empleat><nom>Joan</nom><càrrec>Desenvolupador</càrrec><salari>50000</salari></empleat>'; xmlData = %Addr(xmlString); XML-INTO empleat %XML(xmlData); Dsply ('Nom: ' + empleat.nom); Dsply ('Càrrec: ' + empleat.càrrec); Dsply ('Salari: ' + %Char(empleat.salari));
Explicació del Codi
- Dcl-S: Declara variables.
- Dcl-Ds: Declara una estructura de dades.
- XML-INTO: Analitza l'XML i omple l'estructura de dades.
Generació d'XML en RPG
Generar XML en RPG implica crear una cadena de text que segueixi l'estructura XML desitjada.
Exemple de Generació d'XML
Dcl-S xmlString Varchar(1000); Dcl-Ds empleat Qualified; nom Varchar(50); càrrec Varchar(50); salari Packed(7:2); End-Ds; empleat.nom = 'Joan'; empleat.càrrec = 'Desenvolupador'; empleat.salari = 50000; xmlString = '<empleat>'; xmlString += '<nom>' + empleat.nom + '</nom>'; xmlString += '<càrrec>' + empleat.càrrec + '</càrrec>'; xmlString += '<salari>' + %Char(empleat.salari) + '</salari>'; xmlString += '</empleat>'; Dsply (xmlString);
Explicació del Codi
- Concatenació de cadenes: Construïm l'XML concatenant cadenes de text.
- %Char: Converteix el valor numèric a cadena de text.
Eines i Biblioteques per a XML
Hi ha diverses eines i biblioteques que poden ajudar a treballar amb XML en RPG:
- XML-INTO: Per analitzar XML.
- XML-SAX: Per a l'anàlisi basat en esdeveniments.
- CGIDEV2: Una biblioteca que facilita la generació d'XML.
Exemples Pràctics
Exemple 1: Anàlisi d'XML amb XML-INTO
Dcl-S xmlData Pointer; Dcl-S xmlString Varchar(1000); Dcl-Ds empleat Qualified; nom Varchar(50); càrrec Varchar(50); salari Packed(7:2); End-Ds; xmlString = '<empleat><nom>Joan</nom><càrrec>Desenvolupador</càrrec><salari>50000</salari></empleat>'; xmlData = %Addr(xmlString); XML-INTO empleat %XML(xmlData); Dsply ('Nom: ' + empleat.nom); Dsply ('Càrrec: ' + empleat.càrrec); Dsply ('Salari: ' + %Char(empleat.salari));
Exemple 2: Generació d'XML
Dcl-S xmlString Varchar(1000); Dcl-Ds empleat Qualified; nom Varchar(50); càrrec Varchar(50); salari Packed(7:2); End-Ds; empleat.nom = 'Joan'; empleat.càrrec = 'Desenvolupador'; empleat.salari = 50000; xmlString = '<empleat>'; xmlString += '<nom>' + empleat.nom + '</nom>'; xmlString += '<càrrec>' + empleat.càrrec + '</càrrec>'; xmlString += '<salari>' + %Char(empleat.salari) + '</salari>'; xmlString += '</empleat>'; Dsply (xmlString);
Exercicis Pràctics
Exercici 1: Anàlisi d'XML
Analitza el següent XML i mostra el nom i el salari de l'empleat:
Solució
Dcl-S xmlData Pointer; Dcl-S xmlString Varchar(1000); Dcl-Ds empleat Qualified; nom Varchar(50); càrrec Varchar(50); salari Packed(7:2); End-Ds; xmlString = '<empleat><nom>Maria</nom><càrrec>Analista</càrrec><salari>60000</salari></empleat>'; xmlData = %Addr(xmlString); XML-INTO empleat %XML(xmlData); Dsply ('Nom: ' + empleat.nom); Dsply ('Salari: ' + %Char(empleat.salari));
Exercici 2: Generació d'XML
Genera un XML per a un empleat amb les següents dades:
- Nom: Pere
- Càrrec: Gerent
- Salari: 75000
Solució
Dcl-S xmlString Varchar(1000); Dcl-Ds empleat Qualified; nom Varchar(50); càrrec Varchar(50); salari Packed(7:2); End-Ds; empleat.nom = 'Pere'; empleat.càrrec = 'Gerent'; empleat.salari = 75000; xmlString = '<empleat>'; xmlString += '<nom>' + empleat.nom + '</nom>'; xmlString += '<càrrec>' + empleat.càrrec + '</càrrec>'; xmlString += '<salari>' + %Char(empleat.salari) + '</salari>'; xmlString += '</empleat>'; Dsply (xmlString);
Conclusió
En aquest mòdul, hem après els conceptes bàsics de la gestió d'XML en RPG, incloent l'anàlisi i la generació de documents XML. També hem vist com utilitzar eines i biblioteques per facilitar aquestes tasques. Amb els exemples i exercicis pràctics, hauríeu de tenir una bona comprensió de com treballar amb XML en RPG.
Curs de Programació RPG
Mòdul 1: Introducció a la Programació RPG
- Què és RPG?
- Configuració del Teu Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Programa Hello World
Mòdul 2: Conceptes Bàsics
Mòdul 3: Treballant amb Dades
Mòdul 4: Tècniques Avançades de Programació
Mòdul 5: RPG IV i Més Enllà
Mòdul 6: Integrant RPG amb Tecnologies Modernes
Mòdul 7: Aplicacions del Món Real
- Construint una Aplicació Simple
- Estudi de Cas: Sistema de Gestió d'Inventari
- Estudi de Cas: Sistema de Nòmines
- Millors Pràctiques i Revisió de Codi