+--
+-- LinearRing
+--
+
+-- 2D LinearRing
+SELECT 'linearring_1', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing><gml:posList>1 2 3 4 5 6 1 2</gml:posList></gml:LinearRing>'));
+
+-- srsName handle
+SELECT 'linearring_2', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing srsName="EPSG:4326"><gml:posList>1 2 3 4 5 6 1 2</gml:posList></gml:LinearRing>'));
+
+-- ERROR: Last point is not the same as the first one
+SELECT 'linearring_3', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing><gml:posList>1 2 3 4 5 6 1 3</gml:posList></gml:LinearRing>'));
+
+-- ERROR: Last point is not the same as the first one in Z
+SELECT 'linearring_4', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing><gml:posList>1 2 3 4 5 6 1 3</gml:posList></gml:LinearRing>'));
+
+-- ERROR: Only 3 points
+SELECT 'linearring_5', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing><gml:posList>1 2 3 4 1 3</gml:posList></gml:LinearRing>'));
+
+-- ERROR: Empty coordinates
+SELECT 'linearring_6', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing><gml:posList></gml:posList></gml:LinearRing>'));
+SELECT 'linearring_7', ST_AsEWKT(ST_GeomFromGML('<gml:LinearRing></gml:LinearRing>'));
+
+-- XML not elements handle
+SELECT 'linearring_8', ST_AsEWKT(ST_GeomFromGML(' <!-- --> <gml:LinearRing> <!-- --> <gml:posList>1 2 3 4 5 6 1 2</gml:posList> <!-- --> </gml:LinearRing>'));
+
--
-- Triangle
polygon_17|POLYGON((1 2,3 4,5 6,1 2),(7 8,9 10,11 12,7 8))
polygon_18|POLYGON((1 2,4 5,7 8,1 2),(10 11,12 13,14 15,10 11))
polygon_19|POLYGON((1 2,3 4,5 6,1 2),(7 8,10 11,13 14,7 8))
+linearring_1|POLYGON((1 2,3 4,5 6,1 2))
+linearring_2|SRID=4326;POLYGON((1 2,3 4,5 6,1 2))
+ERROR: invalid GML representation
+ERROR: invalid GML representation
+ERROR: invalid GML representation
+ERROR: invalid GML representation
+ERROR: invalid GML representation
+linearring_8|POLYGON((1 2,3 4,5 6,1 2))
triangle_1|TRIANGLE((1 2,3 4,5 6,1 2))
triangle_2|SRID=4326;TRIANGLE((1 2,3 4,5 6,1 2))
ERROR: invalid GML representation