COPY ( SELECT text '<?xml version="1.0" encoding="UTF-8" ?>' || '<svg xmlns="http://www.w3.org/2000/svg">' -- point UNION ALL SELECT '<g id="my_points">' || string_agg('<ellipse ' || ST_AsSVG(geom) || '/>', '') || '</g>' FROM geometry_table -- (multi)linestring or (multi)polygon UNION ALL SELECT '<g id="my_lines">' || string_agg('<path d="' || ST_AsSVG(geom) || '"/>', '') || '</g>' FROM geometry_table UNION ALL SELECT '</svg>' ) TO 'R:/my_output.svg';