Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je dois générer des données dans des fichiers XML (c'est la première fois que j'utilise XML dans PB)
Avez-vous des liens utiles. Merci par avance.
Dernière modification par infopower (04-08-2015 11:57:13)
Hors ligne
Que dois tu faire précisément ?
Prendre le résultat d'une requête et le transformer en XML simple (structure identique pour chaque enregistrement sans trucs optionnels) ?
Dans ce cas tu ouvres ta datawindow et dans le menu tu prends View -> Export/Import Template -> XML
Tu pourrais définir une structure basique pour le XML et après il te suffira dans le programme de faire un saveAs
Exporting to XML
You can export the data in a DataWindow or DataStore object to XML using any of the techniques used for exporting to other formats such as PSR or HTML:
Using the SaveAs method:
ds1.SaveAs("C:\TEMP\Temp.xml", Xml!, true)Using PowerScript dot notation or the Describe method:
ls_xmlstring = dw1.Object.DataWindow.Data.XMLls_xmlstring = dw1.Describe(DataWindow.Data.XML)Using the Save Rows As menu item in the DataWindow painter.
With the Preview view open, select File>Save Rows As, select XML from the Files of Type drop-down list, provide a file name, and click Save. You can use this in the development environment to preview the XML that will be generated at runtime.
When you export data, PowerBuilder uses an export template to specify the content of the generated XML.
Note Default export format
If you have not created or assigned an export template, PowerBuilder uses a default export format. This is the same format used when you create a new default export template. See "Creating templates".
OLE DataWindow objects cannot be exported using a template. You must use the default format.
Si la structure de ton XML est plus complexe il me semble que cette méthode ne va pas fonctionner. Dans ce cas tu dois écrire ta chaîne XML toi même.
Soit en remplissant simplement un string
Soit en utilisant le PBDOM Article PBDJ sur PBDOM
Soit un OLE MSXML
Hors ligne
Merci pour ce retour rapide.
Il s’agit de :
Générer les données des requêtes sql dans un fichier XML qui peut contenir plusieurs balises, il ne s’agit pas d’un export simple sous format xml.
Valider le fichier xml selon un fichier xsd donné.
Je cherche comment alimenter un fichier xml, comment valider son format,…
Hors ligne
Pour la validation
d'après l'aide: attention il faut référencer le fichier XSD dans le fichier XML
Sinon avec l'OLE MSXML, un bout de mon code donc j'ai zappé des trucs
oleobject loo_msxml, loo_xsd, loo_object_cache boolean lb_xml_valide = true loo_msxml = CREATE oleobject loo_xsd = CREATE oleobject loo_object_cache = CREATE oleobject loo_msxml.connectToNewObject("Msxml2.DOMDocument.6.0") loo_xsd.connectToNewObject("Msxml2.DOMDocument.6.0") loo_msxml.async = false loo_msxml.validateOnParse = true loo_xsd.async = false loo_xsd.validateOnParse= true loo_xsd.load(ls_fichier_xsd) loo_object_cache.connectToNewObject("Msxml2.XMLSchemaCache.6.0") try loo_object_cache.add("urn:MonNamespace",ls_fichier_xsd) catch (OLERuntimeError ltre) lb_xml_valide = false end try if lb_xml_valide then loo_msxml.schemas = loo_object_cache loo_msxml.loadXML(ls_fichier_xml) loo_error = loo_msxml.parseError if integer(loo_error.errorCode) <> 0 then ls_libelle_retour_lot_comp = string(loo_error.errorCode) + ' - ' + string(loo_error.reason) lb_xml_valide = false ll_ret = -119 else ....................
Pour construire la fichier XML par chez nous on construit simplement une chaîne de caractères et on fait un filewrite derrière si besoin
Hors ligne
Merci beaucoup
Hors ligne