[Geoserver-users] 1.50RC1 kml export bad XML entity encoding

Exporting a layer from my PostGIS data store as KML, Geoserver 1.50RC1 fails
to correctly encode the XML so GEarth cant read the file. here's the
problem:

... <Document><name>trx_tracts.047&040500</name>...

and this happens for every feature. For some reason, there is an ampersand
inside the <name> of the features, which we all know is bogus XML. here's
the PostgreSQL dump for the table that is exported:

CREATE TABLE trx_tracts
(
  county integer NOT NULL,
  tract integer NOT NULL,
  the_geom geometry,
  CONSTRAINT trx_tracts_pk PRIMARY KEY (county, tract),
  CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2),
  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) =
'MULTIPOLYGON'::text OR the_geom IS NULL),
  CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4326)
)
WITHOUT OIDS;

so I'm guessing that it uses the ampersand to separate columns of the
primary key, but they should be XML encoded to be &amp;

thanks,
mike
--
View this message in context: http://www.nabble.com/1.50RC1-kml-export-bad-XML-entity-encoding-tf3356134.html#a9333899
Sent from the GeoServer - User mailing list archive at Nabble.com.

Interesting.
I will have it strip out any ampersands and other illegal characters. Thanks for finding this one Mike.

regards,

Brent Owens
(The Open Planning Project)

mfrumin wrote:

Exporting a layer from my PostGIS data store as KML, Geoserver 1.50RC1 fails
to correctly encode the XML so GEarth cant read the file. here's the
problem:

... <Document><name>trx_tracts.047&040500</name>...

and this happens for every feature. For some reason, there is an ampersand
inside the <name> of the features, which we all know is bogus XML. here's
the PostgreSQL dump for the table that is exported:

CREATE TABLE trx_tracts
(
  county integer NOT NULL,
  tract integer NOT NULL,
  the_geom geometry,
  CONSTRAINT trx_tracts_pk PRIMARY KEY (county, tract),
  CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2),
  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) =
'MULTIPOLYGON'::text OR the_geom IS NULL),
  CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4326)
) WITHOUT OIDS;

so I'm guessing that it uses the ampersand to separate columns of the
primary key, but they should be XML encoded to be &amp;

thanks,
mike