Exporter les données

On commence par créer un fichier de commandes SQL qui exporte les données en XML

-- export.sql
connect to mabase user toto ;
set format xml ;
-- clients
set output  clients.xml ;
select * from monschema.client ;
-- produits
set output  produits.xml ;
select * from monschema.produits ;
-- etc

et on le lance

sql92 export.sql

Y a un problème

Félicitations, vous êtes maintenant l'heureux propriétaire d'un lot de fichiers qui contiennent vos données en XML. Enfin, XML à la sauce FrontBase, parce que ça commence par une définition de schéma

<xsd:schema xmlns:xsd="http://www.w3.org/2000/08/XMLSchema">
 ...
</xsd:schema>

avant d'arriver à quelque chose qui ressemble à ce que vous vouliez

<?xml version="1.0"?>
<results>
	<result>
		<ID_CLIENT>42</ID_CLIENT>
                 ...

et même qu'en y regardant de plus près, il y a dans le fichiers plusieurs lots du genre

<?xml version="1.0"?>
<results>
    ....
</results>

Et pendant qu'on y est, les fins de lignes sont du type CR-LF, ce qui heurte quelque peu le bon goût unixien.

Pas de problèmes que des solutions

Ca s'arrange facilement, avec un petit script, pour enlever les trucs en trop (et en remettre un peu)

#
# conversion fichier XML généré par FrontBase
#
# terminateurs CRLF -> unix
# balises <results> intempestives
# balises <?xml  ?>
#
(
echo "<?xml version='1.0' ?>"
echo "<results>"
sed -e 's/\x0D//' \
          -e '1,/<?/d'  \
	   -e "/<results>/d" \ 
	   -e "/<.results>/d" \
	   -e "/<?xml/d" \
	   $1 
echo "</results>"
) > $1.ok

à qui on donne en paramêtre le nom d'un fichier (par exemple clients.xml) et qui fabrique un fichier clients.xml.ok