summaryrefslogtreecommitdiff
path: root/misc/openlayers/tests/Format/GML/v2.html
blob: 8857d054832bf98c5b97dc962e50fa4cc65643a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <script src="../../OLLoader.js"></script>
    <script src="cases.js"></script>
    <script type="text/javascript">

    function test_readNode_geometry(t) {
        var files = [
            "v2/point-coord.xml", "v2/point-coordinates.xml",
            "v2/linestring-coord.xml", "v2/linestring-coordinates.xml",
            "v2/polygon-coord.xml", "v2/polygon-coordinates.xml",
            "v2/multipoint-coord.xml", "v2/multipoint-coordinates.xml",
            "v2/multilinestring-coord.xml", "v2/multilinestring-coordinates.xml",
            "v2/multipolygon-coord.xml", "v2/multipolygon-coordinates.xml",
            "v2/geometrycollection-coordinates.xml"
        ];

        var len = files.length;
        t.plan(len);

        var format = new OpenLayers.Format.GML.v2({
            featureType: "feature",
            featureNS: "http://example.com/feature"
        });
        var file, doc, expect, out;
        for(var i=0; i<len; ++i) {
            file = files[i];
            expect = cases[file];
            if(expect) {
                doc = readXML(file);
                if(doc && doc.documentElement) {
                    out = format.readNode(doc.documentElement);
                    if(out.components && out.components.length == 1) {
                        t.geom_eq(out.components[0], expect, "[" + file + "] geometry read");
                    } else {
                        t.fail("[" + file + "] gml parsing");
                    }
                } else {
                    t.fail("[" + file + "] xml parsing");
                }
            } else {
                t.fail("[" + file + "] case not found");
            }
        }
        
    }
    
    function test_readNode_bounds(t) {
        var files = ["v2/box-coord.xml", "v2/box-coordinates.xml"];

        var len = files.length;
        t.plan(len);
        
        var file, doc, expect, got;
        var format = new OpenLayers.Format.GML.v2({
            featureType: "feature",
            featureNS: "http://example.com/feature"
        });
        for(var i=0; i<len; ++i) {
            file = files[i];
            expect = cases[file];
            if(expect) {
                doc = readXML(file);
                if(doc && doc.documentElement) {
                    out = format.readNode(doc.documentElement);
                    if(out.components && out.components.length == 1) {
                        got = out.components[0];
                        if(got instanceof OpenLayers.Bounds) {
                            t.ok(out.components[0].equals(expect), "[" + file + "] bounds read")
                        } else {
                            t.fail("[" + file + "] expected a bounds, got " + got);
                        }
                    } else {
                        t.fail("[" + file + "] gml parsing");
                    }
                } else {
                    t.fail("[" + file + "] xml parsing");
                }
            } else {
                t.fail("[" + file + "] case not found");
            }
        }
        
    }
    
    function test_writeNode_geometry(t) {
        // we only care to write the 'coordinates' variant of GML 2
        var files = [
            "v2/point-coordinates.xml",
            "v2/linestring-coordinates.xml",
            "v2/polygon-coordinates.xml",
            "v2/multipoint-coordinates.xml",
            "v2/multilinestring-coordinates.xml",
            "v2/multipolygon-coordinates.xml",
            "v2/geometrycollection-coordinates.xml"
        ];

        var len = files.length;
        t.plan(len);

        var format = new OpenLayers.Format.GML.v2({
            featureType: "feature",
            featureNS: "http://example.com/feature",
            srsName: "foo" // GML geometry collections require srsName, we only write if provided
        });
        var file, geom, doc, node;
        for(var i=0; i<len; ++i) {
            file = files[i];
            geom = cases[file];
            if(geom) {
                doc = readXML(file);
                if(doc && doc.documentElement) {
                    node = format.writeNode("feature:_geometry", geom);
                    t.xml_eq(node.firstChild, doc.documentElement, "[" + file + "] geometry written");
                } else {
                    t.fail("[" + file + "] xml parsing");
                }
            } else {
                t.fail("[" + file + "] case not found");
            }
        }
    }

    function test_writeNode_bounds(t) {
        // we only care to write the 'coordinates' variant of GML 2
        var files = [
            "v2/box-coordinates.xml"
        ];

        var len = files.length;
        t.plan(len);

        var format = new OpenLayers.Format.GML.v2({
            featureType: "feature",
            featureNS: "http://example.com/feature",
            srsName: "foo" // GML box does not require srsName, we only write if provided
        });
        var file, bounds, doc, node;
        for(var i=0; i<len; ++i) {
            file = files[i];
            bounds = cases[file];
            if(bounds) {
                doc = readXML(file);
                if(doc && doc.documentElement) {
                    node = format.writeNode("gml:Box", bounds);
                    t.xml_eq(node, doc.documentElement, "[" + file + "] bounds written");
                } else {
                    t.fail("[" + file + "] xml parsing");
                }
            } else {
                t.fail("[" + file + "] case not found");
            }
        }
    }
    
    function test_read(t) {
        t.plan(8);
        var doc = readXML("v2/topp-states.xml");
        var format = new OpenLayers.Format.GML.v2({
            featureType: "states",
            featureNS: "http://www.openplans.org/topp",
            geometryName: "the_geom"
        });
        var features = format.read(doc.documentElement);
        
        t.eq(features.length, 3, "read 3 features");
        var feature = features[0];
        t.eq(feature.fid, "states.1", "read fid");
        t.eq(feature.geometry.CLASS_NAME, "OpenLayers.Geometry.MultiPolygon",
             "read multipolygon geometry");
        var attributes = feature.attributes;
        t.eq(attributes["STATE_NAME"], "Illinois", "read STATE_NAME");
        t.eq(attributes["STATE_FIPS"], "17", "read STATE_FIPS");
        t.eq(attributes["SUB_REGION"], "E N Cen", "read SUB_REGION");
        t.eq(attributes["STATE_ABBR"], "IL", "read STATE_ABBR");
        t.eq(attributes["LAND_KM"], "143986.61", "read LAND_KM");
    }

    function test_read_autoconfig(t) {
        t.plan(5);
        var doc = readXML("v2/topp-states.xml");
        var format = new OpenLayers.Format.GML.v2();
        var features = format.read(doc.documentElement);
        
        t.eq(features.length, 3, "read 3 features");
        var feature = features[0];
        t.eq(feature.fid, "states.1", "read fid");
        t.eq(feature.geometry.CLASS_NAME, "OpenLayers.Geometry.MultiPolygon",
             "read multipolygon geometry");
        t.eq(format.featureType, "states", "featureType correctly auto-configured");
        t.eq(format.featureNS, "http://www.openplans.org/topp", "featureNS correctly auto-configured");
    }
    
    function test_boundedBy(t) {
        t.plan(5);
        
        var doc = readXML("v2/boundedBy.xml");
        var format = new OpenLayers.Format.GML.v2({
            featureType: "states",
            featureNS: "http://www.openplans.org/topp",
            geometryName: "the_geom",
            xy: false
        });
        var features = format.read(doc.documentElement);
        var bounds = features[0].bounds;

        t.ok(bounds instanceof OpenLayers.Bounds, "feature given a bounds");
        t.eq(bounds.left.toFixed(2), "-91.52", "bounds left correct");
        t.eq(bounds.bottom.toFixed(2), "36.99", "bounds bottom correct");
        t.eq(bounds.right.toFixed(2), "-87.51", "bounds right correct");
        t.eq(bounds.top.toFixed(2), "42.51", "bounds top correct");
    }
    
    function test_write(t) {
        t.plan(1);
        var doc = readXML("v2/topp-states.xml");
        var format = new OpenLayers.Format.GML.v2({
            featureType: "states",
            featureNS: "http://www.openplans.org/topp",
            geometryName: "the_geom",
            schemaLocation: "http://www.openplans.org/topp http://sigma.openplans.org:80/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=topp:states http://www.opengis.net/wfs http://sigma.openplans.org:80/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd",
            srsName: "http://www.opengis.net/gml/srs/epsg.xml#4326"
        });
        var features = format.read(doc.documentElement);
        
        var got = format.write(features);
        t.xml_eq(got, doc.documentElement, "wfs:FeatureCollection round trip");
        
    }

    function test_multipleTypenames(t) {
        t.plan(5);
        var doc = readXML("v2/multipletypenames.xml");
        var format = new OpenLayers.Format.GML.v2({
            featureType: ["LKUNSTWERK", "PKUNSTWERK", "VKUNSTWERK"],
            featureNS: "http://mapserver.gis.umn.edu/mapserver",
            geometry_name: "geometry"
        });
        var features = format.read(doc.documentElement);
        t.eq(features.length, 3, "Expected 3 features from GML containing multiple typenames");
        t.eq(features[0].type, "VKUNSTWERK", "First feature type is from the VKUNSTWERK typename");
        t.eq(features[1].type, "LKUNSTWERK", "Second feature type is from the LKUNSTWERK typename");
        t.eq(features[2].type, "PKUNSTWERK", "Third feature type is from the PKUNSTWERK typename");
        t.eq(features[0].namespace, "http://mapserver.gis.umn.edu/mapserver", "Namespace is set correctly on feature");
    }

    function test_noGeom(t) {
        t.plan(7);
        var doc = readXML("v2/nogeom.xml");
        var format = new OpenLayers.Format.GML.v2({
            featureType: "DEPARTEMENT",
            featureNS: "http://server.fr/geoserver/loc"
        });
        var features = format.read(doc.documentElement);
        t.eq(features.length, 2, "Expected 2 features from GML with no geom");
        var feature = features[0];
        t.ok(feature.geometry == null, "feature 0 has no geometry");
        var bounds = feature.bounds;
        t.ok(bounds && (bounds instanceof OpenLayers.Bounds), "feature 0 has been assigned bounds");
        t.eq(bounds.left, 209565, "bounds left correct");
        t.eq(bounds.bottom, 6785323, "bounds bottom correct");
        t.eq(bounds.right, 337568, "bounds right correct");
        t.eq(bounds.top, 6885985, "bounds top correct");
    }

   </script>
</head>
<body>
<div id="v2/point-coord.xml"><!--
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coord>
    <gml:X>1</gml:X>
    <gml:Y>2</gml:Y>
  </gml:coord>
</gml:Point>
--></div>
<div id="v2/point-coordinates.xml"><!--
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
</gml:Point>
--></div>
<div id="v2/linestring-coord.xml"><!--
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coord>
    <gml:X>1</gml:X>
    <gml:Y>2</gml:Y>
  </gml:coord>
  <gml:coord>
    <gml:X>3</gml:X>
    <gml:Y>4</gml:Y>
  </gml:coord>
</gml:LineString>
--></div>
<div id="v2/linestring-coordinates.xml"><!--
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
</gml:LineString>
--></div>
<div id="v2/polygon-coord.xml"><!--
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:outerBoundaryIs>
        <gml:LinearRing>
            <gml:coord>
                <gml:X>1</gml:X>
                <gml:Y>2</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>3</gml:X>
                <gml:Y>4</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>5</gml:X>
                <gml:Y>6</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>1</gml:X>
                <gml:Y>2</gml:Y>
            </gml:coord>
        </gml:LinearRing>
    </gml:outerBoundaryIs>
    <gml:innerBoundaryIs>
        <gml:LinearRing>
            <gml:coord>
                <gml:X>2</gml:X>
                <gml:Y>3</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>4</gml:X>
                <gml:Y>5</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>6</gml:X>
                <gml:Y>7</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>2</gml:X>
                <gml:Y>3</gml:Y>
            </gml:coord>
        </gml:LinearRing>
    </gml:innerBoundaryIs>    
    <gml:innerBoundaryIs>
        <gml:LinearRing>
            <gml:coord>
                <gml:X>3</gml:X>
                <gml:Y>4</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>5</gml:X>
                <gml:Y>6</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>7</gml:X>
                <gml:Y>8</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>3</gml:X>
                <gml:Y>4</gml:Y>
            </gml:coord>
        </gml:LinearRing>
    </gml:innerBoundaryIs>    
</gml:Polygon>
--></div>
<div id="v2/polygon-coordinates.xml"><!--
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:outerBoundaryIs>
        <gml:LinearRing>
            <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
        </gml:LinearRing>
    </gml:outerBoundaryIs>
    <gml:innerBoundaryIs>
        <gml:LinearRing>
            <gml:coordinates decimal="." cs="," ts=" ">2,3 4,5 6,7 2,3</gml:coordinates>
        </gml:LinearRing>
    </gml:innerBoundaryIs>    
    <gml:innerBoundaryIs>
        <gml:LinearRing>
            <gml:coordinates decimal="." cs="," ts=" ">3,4 5,6 7,8 3,4</gml:coordinates>
        </gml:LinearRing>
    </gml:innerBoundaryIs>    
</gml:Polygon>
--></div>
<div id="v2/multipoint-coord.xml"><!--
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:pointMember>
        <gml:Point>
            <gml:coord>
                <gml:X>1</gml:X>
                <gml:Y>2</gml:Y>
            </gml:coord>
        </gml:Point>
    </gml:pointMember>
    <gml:pointMember>
        <gml:Point>
            <gml:coord>
                <gml:X>2</gml:X>
                <gml:Y>3</gml:Y>
            </gml:coord>
        </gml:Point>
    </gml:pointMember>
    <gml:pointMember>
        <gml:Point>
            <gml:coord>
                <gml:X>3</gml:X>
                <gml:Y>4</gml:Y>
            </gml:coord>
        </gml:Point>
    </gml:pointMember>
</gml:MultiPoint>
--></div>
<div id="v2/multipoint-coordinates.xml"><!--
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:pointMember>
        <gml:Point>
            <gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
        </gml:Point>
    </gml:pointMember>
    <gml:pointMember>
        <gml:Point>
            <gml:coordinates decimal="." cs="," ts=" ">2,3</gml:coordinates>
        </gml:Point>
    </gml:pointMember>
    <gml:pointMember>
        <gml:Point>
            <gml:coordinates decimal="." cs="," ts=" ">3,4</gml:coordinates>
        </gml:Point>
    </gml:pointMember>
</gml:MultiPoint>
--></div>
<div id="v2/multilinestring-coord.xml"><!--
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:lineStringMember>
        <gml:LineString>
            <gml:coord>
                <gml:X>1</gml:X>
                <gml:Y>2</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>2</gml:X>
                <gml:Y>3</gml:Y>
            </gml:coord>
        </gml:LineString>
    </gml:lineStringMember>
    <gml:lineStringMember>
        <gml:LineString>
            <gml:coord>
                <gml:X>3</gml:X>
                <gml:Y>4</gml:Y>
            </gml:coord>
            <gml:coord>
                <gml:X>4</gml:X>
                <gml:Y>5</gml:Y>
            </gml:coord>
        </gml:LineString>
    </gml:lineStringMember>
</gml:MultiLineString>
--></div>
<div id="v2/multilinestring-coordinates.xml"><!--
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:lineStringMember>
        <gml:LineString>
            <gml:coordinates decimal="." cs="," ts=" ">1,2 2,3</gml:coordinates>
        </gml:LineString>
    </gml:lineStringMember>
    <gml:lineStringMember>
        <gml:LineString>
            <gml:coordinates decimal="." cs="," ts=" ">3,4 4,5</gml:coordinates>
        </gml:LineString>
    </gml:lineStringMember>
</gml:MultiLineString>
--></div>
<div id="v2/multipolygon-coord.xml"><!--
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:polygonMember>
        <gml:Polygon>
            <gml:outerBoundaryIs>
                <gml:LinearRing>
                    <gml:coord>
                        <gml:X>1</gml:X>
                        <gml:Y>2</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>3</gml:X>
                        <gml:Y>4</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>5</gml:X>
                        <gml:Y>6</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>1</gml:X>
                        <gml:Y>2</gml:Y>
                    </gml:coord>
                </gml:LinearRing>
            </gml:outerBoundaryIs>
            <gml:innerBoundaryIs>
                <gml:LinearRing>
                    <gml:coord>
                        <gml:X>2</gml:X>
                        <gml:Y>3</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>4</gml:X>
                        <gml:Y>5</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>6</gml:X>
                        <gml:Y>7</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>2</gml:X>
                        <gml:Y>3</gml:Y>
                    </gml:coord>
                </gml:LinearRing>
            </gml:innerBoundaryIs>    
            <gml:innerBoundaryIs>
                <gml:LinearRing>
                    <gml:coord>
                        <gml:X>3</gml:X>
                        <gml:Y>4</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>5</gml:X>
                        <gml:Y>6</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>7</gml:X>
                        <gml:Y>8</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>3</gml:X>
                        <gml:Y>4</gml:Y>
                    </gml:coord>
                </gml:LinearRing>
            </gml:innerBoundaryIs>    
        </gml:Polygon>
    </gml:polygonMember>
    <gml:polygonMember>
        <gml:Polygon>
            <gml:outerBoundaryIs>
                <gml:LinearRing>
                    <gml:coord>
                        <gml:X>1</gml:X>
                        <gml:Y>2</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>3</gml:X>
                        <gml:Y>4</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>5</gml:X>
                        <gml:Y>6</gml:Y>
                    </gml:coord>
                    <gml:coord>
                        <gml:X>1</gml:X>
                        <gml:Y>2</gml:Y>
                    </gml:coord>
                </gml:LinearRing>
            </gml:outerBoundaryIs>
        </gml:Polygon>
    </gml:polygonMember>
</gml:MultiPolygon>
--></div>
<div id="v2/multipolygon-coordinates.xml"><!--
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:polygonMember>
        <gml:Polygon>
            <gml:outerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
                </gml:LinearRing>
            </gml:outerBoundaryIs>
            <gml:innerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">2,3 4,5 6,7 2,3</gml:coordinates>
                </gml:LinearRing>
            </gml:innerBoundaryIs>    
            <gml:innerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">3,4 5,6 7,8 3,4</gml:coordinates>
                </gml:LinearRing>
            </gml:innerBoundaryIs>    
        </gml:Polygon>
    </gml:polygonMember>
    <gml:polygonMember>
        <gml:Polygon>
            <gml:outerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
                </gml:LinearRing>
            </gml:outerBoundaryIs>
        </gml:Polygon>
    </gml:polygonMember>
</gml:MultiPolygon>
--></div>
<div id="v2/geometrycollection-coordinates.xml"><!--
<gml:GeometryCollection xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:geometryMember>
        <gml:Point srsName="foo">
          <gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
        </gml:Point>
    </gml:geometryMember>
    <gml:geometryMember>
        <gml:LineString srsName="foo">
          <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
        </gml:LineString>
    </gml:geometryMember>
    <gml:geometryMember>
        <gml:Polygon srsName="foo">
            <gml:outerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
                </gml:LinearRing>
            </gml:outerBoundaryIs>
            <gml:innerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">2,3 4,5 6,7 2,3</gml:coordinates>
                </gml:LinearRing>
            </gml:innerBoundaryIs>    
            <gml:innerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates decimal="." cs="," ts=" ">3,4 5,6 7,8 3,4</gml:coordinates>
                </gml:LinearRing>
            </gml:innerBoundaryIs>    
        </gml:Polygon>
    </gml:geometryMember>
</gml:GeometryCollection>
--></div>
<div id="v2/box-coord.xml"><!--
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coord>
    <gml:X>1</gml:X>
    <gml:Y>2</gml:Y>
  </gml:coord>
  <gml:coord>
    <gml:X>3</gml:X>
    <gml:Y>4</gml:Y>
  </gml:coord>
</gml:Box>
--></div>
<div id="v2/box-coordinates.xml"><!--
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
</gml:Box>
--></div>
<div id="v2/linearring-coord.xml"><!--
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
    <gml:coord>
        <gml:X>1</gml:X>
        <gml:Y>2</gml:Y>
    </gml:coord>
    <gml:coord>
        <gml:X>3</gml:X>
        <gml:Y>4</gml:Y>
    </gml:coord>
    <gml:coord>
        <gml:X>5</gml:X>
        <gml:Y>6</gml:Y>
    </gml:coord>
    <gml:coord>
        <gml:X>1</gml:X>
        <gml:Y>2</gml:Y>
    </gml:coord>
</gml:LinearRing>
--></div>
<div id="v2/linearring-coordinates.xml"><!--
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
  <gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
</gml:LinearRing>
--></div>
<div id="v2/topp-states.xml"><!--
<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns="http://www.opengis.net/wfs" xmlns:wfs="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openplans.org/topp http://sigma.openplans.org:80/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=DescribeFeatureType&amp;typeName=topp:states http://www.opengis.net/wfs http://sigma.openplans.org:80/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd"><gml:featureMember><topp:states fid="states.1"><topp:the_geom><gml:MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">37.5101,-88.0711 37.4761,-88.0871 37.4421,-88.3111 37.4091,-88.3591 37.4201,-88.4191 37.4001,-88.4671 37.2961,-88.5111 37.2571,-88.5011 37.2051,-88.4501 37.1561,-88.4221 37.0981,-88.4501 37.0721,-88.4761 37.0681,-88.4901 37.0641,-88.5171 37.0721,-88.5591 37.1091,-88.6141 37.1351,-88.6881 37.1411,-88.7391 37.1521,-88.7461 37.2021,-88.8631 37.2181,-88.9321 37.2201,-88.9931 37.1851,-89.0651 37.1121,-89.1161 37.0931,-89.1461 37.0641,-89.1691 37.0251,-89.1741 36.9981,-89.1501 36.9881,-89.1291 36.9861,-89.1931 37.0281,-89.2101 37.0411,-89.2371 37.0871,-89.2641 37.0911,-89.2841 37.0851,-89.3031 37.0601,-89.3091 37.0271,-89.2641 37.0081,-89.2621 36.9991,-89.2821 37.0091,-89.3101 37.0491,-89.3821 37.0991,-89.3791 37.1371,-89.4231 37.1651,-89.4401 37.2241,-89.4681 37.2531,-89.4651 37.2561,-89.4891 37.2761,-89.5131 37.3041,-89.5131 37.3291,-89.5001 37.3391,-89.4681 37.3551,-89.4351 37.4111,-89.4271 37.4531,-89.4531 37.4911,-89.4941 37.5711,-89.5241 37.6151,-89.5131 37.6501,-89.5191 37.6791,-89.5131 37.6941,-89.5211 37.7061,-89.5811 37.7451,-89.6661 37.7831,-89.6751 37.8041,-89.6911 37.8401,-89.7281 37.9051,-89.8511 37.9051,-89.8611 37.8911,-89.8661 37.8751,-89.9001 37.8781,-89.9371 37.9111,-89.9781 37.9631,-89.9581 37.9691,-90.0101 37.9931,-90.0411 38.0321,-90.1191 38.0531,-90.1341 38.0881,-90.2071 38.1221,-90.2541 38.1661,-90.2891 38.1881,-90.3361 38.2341,-90.3641 38.3231,-90.3691 38.3651,-90.3581 38.3901,-90.3391 38.4271,-90.3011 38.5181,-90.2651 38.5321,-90.2611 38.5621,-90.2401 38.6101,-90.1831 38.6581,-90.1831 38.7001,-90.2021 38.7231,-90.1961 38.7731,-90.1631 38.7851,-90.1351 38.8001,-90.1211 38.8301,-90.1131 38.8531,-90.1321 38.9141,-90.2431 38.9241,-90.2781 38.9241,-90.3191 38.9621,-90.4131 38.9591,-90.4691 38.8911,-90.5301 38.8711,-90.5701 38.8801,-90.6271 38.9351,-90.6681 39.0371,-90.7061 39.0581,-90.7071 39.0931,-90.6901 39.1441,-90.7161 39.1951,-90.7181 39.2241,-90.7321 39.2471,-90.7381 39.2961,-90.7791 39.3501,-90.8501 39.4001,-90.9471 39.4441,-91.0361 39.4731,-91.0641 39.5281,-91.0931 39.5521,-91.1561 39.6001,-91.2031 39.6851,-91.3171 39.7241,-91.3671 39.7611,-91.3731 39.8031,-91.3811 39.8631,-91.4491 39.8851,-91.4501 39.9011,-91.4341 39.9211,-91.4301 39.9461,-91.4471 40.0051,-91.4871 40.0661,-91.5041 40.1341,-91.5161 40.2001,-91.5061 40.2511,-91.4981 40.3091,-91.4861 40.3711,-91.4481 40.3861,-91.4181 40.3921,-91.3851 40.4021,-91.3721 40.4471,-91.3851 40.5031,-91.3741 40.5281,-91.3821 40.5471,-91.4121 40.5721,-91.4111 40.6031,-91.3751 40.6391,-91.2621 40.6431,-91.2141 40.6561,-91.1621 40.6821,-91.1291 40.7051,-91.1191 40.7611,-91.0921 40.8331,-91.0881 40.8791,-91.0491 40.9231,-90.9831 40.9501,-90.9601 41.0701,-90.9541 41.1041,-90.9571 41.1441,-90.9901 41.1651,-91.0181 41.1761,-91.0561 41.2311,-91.1011 41.2671,-91.1021 41.3341,-91.0731 41.4011,-91.0551 41.4231,-91.0271 41.4311,-91.0001 41.4211,-90.9491 41.4441,-90.8441 41.4491,-90.7791 41.4501,-90.7081 41.4621,-90.6581 41.5091,-90.6001 41.5251,-90.5401 41.5271,-90.4541 41.5431,-90.4341 41.5671,-90.4231 41.5861,-90.3481 41.6021,-90.3391 41.6491,-90.3411 41.7221,-90.3261 41.7561,-90.3041 41.7811,-90.2551 41.8061,-90.1951 41.9301,-90.1541 41.9831,-90.1421 42.0331,-90.1501 42.0611,-90.1681 42.1031,-90.1661 42.1201,-90.1761 42.1221,-90.1911 42.1591,-90.2301 42.1971,-90.3231 42.2101,-90.3671 42.2421,-90.4071 42.2631,-90.4171 42.3401,-90.4271 42.3601,-90.4411 42.3881,-90.4911 42.4211,-90.5631 42.4601,-90.6051 42.4751,-90.6481 42.4941,-90.6511 42.5091,-90.6381 42.5081,-90.4191 42.5041,-89.9231 42.5031,-89.8341 42.4971,-89.4001 42.4971,-89.3591 42.4901,-88.9391 42.4901,-88.7641 42.4891,-88.7061 42.4911,-88.2971 42.4891,-88.1941 42.4891,-87.7971 42.3141,-87.8361 42.1561,-87.7601 42.0591,-87.6701 41.8471,-87.6121 41.7231,-87.5291 41.4691,-87.5321 41.3011,-87.5321 41.1731,-87.5311 41.0091,-87.5321 40.7451,-87.5321 40.4941,-87.5371 40.4831,-87.5351 40.1661,-87.5351 39.8871,-87.5351 39.6091,-87.5351 39.4771,-87.5381 39.3501,-87.5401 39.3381,-87.5971 39.3071,-87.6251 39.2971,-87.6101 39.2811,-87.6151 39.2581,-87.6061 39.2481,-87.5841 39.2081,-87.5881 39.1981,-87.5941 39.1961,-87.6071 39.1681,-87.6441 39.1461,-87.6701 39.1301,-87.6591 39.1131,-87.6621 39.1031,-87.6311 39.0881,-87.6301 39.0841,-87.6121 39.0621,-87.5851 38.9951,-87.5811 38.9941,-87.5911 38.9771,-87.5471 38.9631,-87.5331 38.9311,-87.5301 38.9041,-87.5391 38.8691,-87.5591 38.8571,-87.5501 38.7951,-87.5071 38.7761,-87.5191 38.7691,-87.5081 38.7361,-87.5081 38.6851,-87.5431 38.6721,-87.5881 38.6421,-87.6251 38.6221,-87.6281 38.5991,-87.6191 38.5931,-87.6401 38.5731,-87.6521 38.5471,-87.6721 38.5151,-87.6511 38.5001,-87.6531 38.5041,-87.6791 38.4811,-87.6921 38.4661,-87.7561 38.4571,-87.7581 38.4451,-87.7381 38.4171,-87.7481 38.3781,-87.7841 38.3521,-87.8341 38.2861,-87.8501 38.2851,-87.8631 38.3161,-87.8741 38.3151,-87.8831 38.3001,-87.8881 38.2811,-87.9141 38.3021,-87.9131 38.3041,-87.9251 38.2411,-87.9801 38.2341,-87.9861 38.2001,-87.9771 38.1711,-87.9321 38.1571,-87.9311 38.1361,-87.9501 38.1311,-87.9731 38.1031,-88.0181 38.0921,-88.0121 38.0961,-87.9641 38.0731,-87.9751 38.0541,-88.0341 38.0451,-88.0431 38.0381,-88.0411 38.0331,-88.0211 38.0081,-88.0291 37.9751,-88.0211 37.9561,-88.0421 37.9341,-88.0411 37.9291,-88.0641 37.944,-88.0781 37.9231,-88.084 37.9171,-88.0301 37.9051,-88.0261 37.8961,-88.0441 37.9061,-88.1001 37.8951,-88.1011 37.8671,-88.0751 37.8431,-88.0341 37.8271,-88.0421 37.8311,-88.0891 37.8171,-88.0861 37.8051,-88.0351 37.7351,-88.0721 37.7001,-88.1331 37.6601,-88.1591 37.6281,-88.1571 37.5831,-88.1341 37.5101,-88.0711</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon></topp:the_geom><topp:STATE_NAME>Illinois</topp:STATE_NAME><topp:STATE_FIPS>17</topp:STATE_FIPS><topp:SUB_REGION>E N Cen</topp:SUB_REGION><topp:STATE_ABBR>IL</topp:STATE_ABBR><topp:LAND_KM>143986.61</topp:LAND_KM><topp:WATER_KM>1993.335</topp:WATER_KM><topp:PERSONS>1.1431E7</topp:PERSONS><topp:FAMILIES>2924880.0</topp:FAMILIES><topp:HOUSHOLD>4202240.0</topp:HOUSHOLD><topp:MALE>5552233.0</topp:MALE><topp:FEMALE>5878369.0</topp:FEMALE><topp:WORKERS>4199206.0</topp:WORKERS><topp:DRVALONE>3741715.0</topp:DRVALONE><topp:CARPOOL>652603.0</topp:CARPOOL><topp:PUBTRANS>538071.0</topp:PUBTRANS><topp:EMPLOYED>5417967.0</topp:EMPLOYED><topp:UNEMPLOY>385040.0</topp:UNEMPLOY><topp:SERVICE>1360159.0</topp:SERVICE><topp:MANUAL>828906.0</topp:MANUAL><topp:P_MALE>0.486</topp:P_MALE><topp:P_FEMALE>0.514</topp:P_FEMALE><topp:SAMP_POP>1747776.0</topp:SAMP_POP></topp:states></gml:featureMember><gml:featureMember><topp:states fid="states.2"><topp:the_geom><gml:MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">38.9661,-77.0081 38.8891,-76.9111 38.7881,-77.0451 38.8131,-77.0351 38.8291,-77.0451 38.8381,-77.0401 38.8621,-77.0391 38.8861,-77.0671 38.9151,-77.0781 38.9321,-77.1221 38.9931,-77.0421 38.9661,-77.0081</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon></topp:the_geom><topp:STATE_NAME>District of Columbia</topp:STATE_NAME><topp:STATE_FIPS>11</topp:STATE_FIPS><topp:SUB_REGION>S Atl</topp:SUB_REGION><topp:STATE_ABBR>DC</topp:STATE_ABBR><topp:LAND_KM>159.055</topp:LAND_KM><topp:WATER_KM>17.991</topp:WATER_KM><topp:PERSONS>606900.0</topp:PERSONS><topp:FAMILIES>122087.0</topp:FAMILIES><topp:HOUSHOLD>249634.0</topp:HOUSHOLD><topp:MALE>282970.0</topp:MALE><topp:FEMALE>323930.0</topp:FEMALE><topp:WORKERS>229975.0</topp:WORKERS><topp:DRVALONE>106694.0</topp:DRVALONE><topp:CARPOOL>36621.0</topp:CARPOOL><topp:PUBTRANS>111422.0</topp:PUBTRANS><topp:EMPLOYED>303994.0</topp:EMPLOYED><topp:UNEMPLOY>23442.0</topp:UNEMPLOY><topp:SERVICE>65498.0</topp:SERVICE><topp:MANUAL>22407.0</topp:MANUAL><topp:P_MALE>0.466</topp:P_MALE><topp:P_FEMALE>0.534</topp:P_FEMALE><topp:SAMP_POP>72696.0</topp:SAMP_POP></topp:states></gml:featureMember><gml:featureMember><topp:states fid="states.3"><topp:the_geom><gml:MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">38.5571,-75.7071 38.6491,-75.7111 38.8301,-75.7241 39.1411,-75.7521 39.2471,-75.7611 39.2951,-75.7641 39.3831,-75.7721 39.7231,-75.7911 39.7241,-75.7751 39.7741,-75.7451 39.8201,-75.6951 39.8381,-75.6441 39.8401,-75.5831 39.8261,-75.4701 39.7981,-75.4201 39.7891,-75.4121 39.7781,-75.4281 39.7631,-75.4601 39.7411,-75.4751 39.7191,-75.4761 39.7141,-75.4891 39.6121,-75.6101 39.5661,-75.5621 39.4631,-75.5901 39.3661,-75.5151 39.2571,-75.4021 39.0731,-75.3971 39.0121,-75.3241 38.9451,-75.3071 38.8081,-75.1901 38.7991,-75.0831 38.4491,-75.0451 38.4491,-75.0681 38.4501,-75.0931 38.4551,-75.3501 38.4631,-75.6991 38.5571,-75.7071</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon></topp:the_geom><topp:STATE_NAME>Delaware</topp:STATE_NAME><topp:STATE_FIPS>10</topp:STATE_FIPS><topp:SUB_REGION>S Atl</topp:SUB_REGION><topp:STATE_ABBR>DE</topp:STATE_ABBR><topp:LAND_KM>5062.456</topp:LAND_KM><topp:WATER_KM>1385.022</topp:WATER_KM><topp:PERSONS>666168.0</topp:PERSONS><topp:FAMILIES>175867.0</topp:FAMILIES><topp:HOUSHOLD>247497.0</topp:HOUSHOLD><topp:MALE>322968.0</topp:MALE><topp:FEMALE>343200.0</topp:FEMALE><topp:WORKERS>247566.0</topp:WORKERS><topp:DRVALONE>258087.0</topp:DRVALONE><topp:CARPOOL>42968.0</topp:CARPOOL><topp:PUBTRANS>8069.0</topp:PUBTRANS><topp:EMPLOYED>335147.0</topp:EMPLOYED><topp:UNEMPLOY>13945.0</topp:UNEMPLOY><topp:SERVICE>87973.0</topp:SERVICE><topp:MANUAL>44140.0</topp:MANUAL><topp:P_MALE>0.485</topp:P_MALE><topp:P_FEMALE>0.515</topp:P_FEMALE><topp:SAMP_POP>102776.0</topp:SAMP_POP></topp:states></gml:featureMember></wfs:FeatureCollection>
--></div>
<div id="v2/boundedBy.xml"><!--
<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns="http://www.opengis.net/wfs" xmlns:wfs="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openplans.org/topp http://publicus.opengeo.org:80/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=DescribeFeatureType&amp;typeName=topp:states http://www.opengis.net/wfs http://publicus.opengeo.org:80/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd"><gml:featureMember><topp:states fid="states.1"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">36.9861,-91.5161 42.5091,-87.5071</gml:coordinates></gml:Box></gml:boundedBy><topp:the_geom><gml:MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">37.5101,-88.0711 37.4761,-88.0871 37.4421,-88.3111 37.4091,-88.3591 37.4201,-88.4191 37.4001,-88.4671 37.2961,-88.5111 37.2571,-88.5011 37.2051,-88.4501 37.1561,-88.4221 37.0981,-88.4501 37.0721,-88.4761 37.0681,-88.4901 37.0641,-88.5171 37.0721,-88.5591 37.1091,-88.6141 37.1351,-88.6881 37.1411,-88.7391 37.1521,-88.7461 37.2021,-88.8631 37.2181,-88.9321 37.2201,-88.9931 37.1851,-89.0651 37.1121,-89.1161 37.0931,-89.1461 37.0641,-89.1691 37.0251,-89.1741 36.9981,-89.1501 36.9881,-89.1291 36.9861,-89.1931 37.0281,-89.2101 37.0411,-89.2371 37.0871,-89.2641 37.0911,-89.2841 37.0851,-89.3031 37.0601,-89.3091 37.0271,-89.2641 37.0081,-89.2621 36.9991,-89.2821 37.0091,-89.3101 37.0491,-89.3821 37.0991,-89.3791 37.1371,-89.4231 37.1651,-89.4401 37.2241,-89.4681 37.2531,-89.4651 37.2561,-89.4891 37.2761,-89.5131 37.3041,-89.5131 37.3291,-89.5001 37.3391,-89.4681 37.3551,-89.4351 37.4111,-89.4271 37.4531,-89.4531 37.4911,-89.4941 37.5711,-89.5241 37.6151,-89.5131 37.6501,-89.5191 37.6791,-89.5131 37.6941,-89.5211 37.7061,-89.5811 37.7451,-89.6661 37.7831,-89.6751 37.8041,-89.6911 37.8401,-89.7281 37.9051,-89.8511 37.9051,-89.8611 37.8911,-89.8661 37.8751,-89.9001 37.8781,-89.9371 37.9111,-89.9781 37.9631,-89.9581 37.9691,-90.0101 37.9931,-90.0411 38.0321,-90.1191 38.0531,-90.1341 38.0881,-90.2071 38.1221,-90.2541 38.1661,-90.2891 38.1881,-90.3361 38.2341,-90.3641 38.3231,-90.3691 38.3651,-90.3581 38.3901,-90.3391 38.4271,-90.3011 38.5181,-90.2651 38.5321,-90.2611 38.5621,-90.2401 38.6101,-90.1831 38.6581,-90.1831 38.7001,-90.2021 38.7231,-90.1961 38.7731,-90.1631 38.7851,-90.1351 38.8001,-90.1211 38.8301,-90.1131 38.8531,-90.1321 38.9141,-90.2431 38.9241,-90.2781 38.9241,-90.3191 38.9621,-90.4131 38.9591,-90.4691 38.8911,-90.5301 38.8711,-90.5701 38.8801,-90.6271 38.9351,-90.6681 39.0371,-90.7061 39.0581,-90.7071 39.0931,-90.6901 39.1441,-90.7161 39.1951,-90.7181 39.2241,-90.7321 39.2471,-90.7381 39.2961,-90.7791 39.3501,-90.8501 39.4001,-90.9471 39.4441,-91.0361 39.4731,-91.0641 39.5281,-91.0931 39.5521,-91.1561 39.6001,-91.2031 39.6851,-91.3171 39.7241,-91.3671 39.7611,-91.3731 39.8031,-91.3811 39.8631,-91.4491 39.8851,-91.4501 39.9011,-91.4341 39.9211,-91.4301 39.9461,-91.4471 40.0051,-91.4871 40.0661,-91.5041 40.1341,-91.5161 40.2001,-91.5061 40.2511,-91.4981 40.3091,-91.4861 40.3711,-91.4481 40.3861,-91.4181 40.3921,-91.3851 40.4021,-91.3721 40.4471,-91.3851 40.5031,-91.3741 40.5281,-91.3821 40.5471,-91.4121 40.5721,-91.4111 40.6031,-91.3751 40.6391,-91.2621 40.6431,-91.2141 40.6561,-91.1621 40.6821,-91.1291 40.7051,-91.1191 40.7611,-91.0921 40.8331,-91.0881 40.8791,-91.0491 40.9231,-90.9831 40.9501,-90.9601 41.0701,-90.9541 41.1041,-90.9571 41.1441,-90.9901 41.1651,-91.0181 41.1761,-91.0561 41.2311,-91.1011 41.2671,-91.1021 41.3341,-91.0731 41.4011,-91.0551 41.4231,-91.0271 41.4311,-91.0001 41.4211,-90.9491 41.4441,-90.8441 41.4491,-90.7791 41.4501,-90.7081 41.4621,-90.6581 41.5091,-90.6001 41.5251,-90.5401 41.5271,-90.4541 41.5431,-90.4341 41.5671,-90.4231 41.5861,-90.3481 41.6021,-90.3391 41.6491,-90.3411 41.7221,-90.3261 41.7561,-90.3041 41.7811,-90.2551 41.8061,-90.1951 41.9301,-90.1541 41.9831,-90.1421 42.0331,-90.1501 42.0611,-90.1681 42.1031,-90.1661 42.1201,-90.1761 42.1221,-90.1911 42.1591,-90.2301 42.1971,-90.3231 42.2101,-90.3671 42.2421,-90.4071 42.2631,-90.4171 42.3401,-90.4271 42.3601,-90.4411 42.3881,-90.4911 42.4211,-90.5631 42.4601,-90.6051 42.4751,-90.6481 42.4941,-90.6511 42.5091,-90.6381 42.5081,-90.4191 42.5041,-89.9231 42.5031,-89.8341 42.4971,-89.4001 42.4971,-89.3591 42.4901,-88.9391 42.4901,-88.7641 42.4891,-88.7061 42.4911,-88.2971 42.4891,-88.1941 42.4891,-87.7971 42.3141,-87.8361 42.1561,-87.7601 42.0591,-87.6701 41.8471,-87.6121 41.7231,-87.5291 41.4691,-87.5321 41.3011,-87.5321 41.1731,-87.5311 41.0091,-87.5321 40.7451,-87.5321 40.4941,-87.5371 40.4831,-87.5351 40.1661,-87.5351 39.8871,-87.5351 39.6091,-87.5351 39.4771,-87.5381 39.3501,-87.5401 39.3381,-87.5971 39.3071,-87.6251 39.2971,-87.6101 39.2811,-87.6151 39.2581,-87.6061 39.2481,-87.5841 39.2081,-87.5881 39.1981,-87.5941 39.1961,-87.6071 39.1681,-87.6441 39.1461,-87.6701 39.1301,-87.6591 39.1131,-87.6621 39.1031,-87.6311 39.0881,-87.6301 39.0841,-87.6121 39.0621,-87.5851 38.9951,-87.5811 38.9941,-87.5911 38.9771,-87.5471 38.9631,-87.5331 38.9311,-87.5301 38.9041,-87.5391 38.8691,-87.5591 38.8571,-87.5501 38.7951,-87.5071 38.7761,-87.5191 38.7691,-87.5081 38.7361,-87.5081 38.6851,-87.5431 38.6721,-87.5881 38.6421,-87.6251 38.6221,-87.6281 38.5991,-87.6191 38.5931,-87.6401 38.5731,-87.6521 38.5471,-87.6721 38.5151,-87.6511 38.5001,-87.6531 38.5041,-87.6791 38.4811,-87.6921 38.4661,-87.7561 38.4571,-87.7581 38.4451,-87.7381 38.4171,-87.7481 38.3781,-87.7841 38.3521,-87.8341 38.2861,-87.8501 38.2851,-87.8631 38.3161,-87.8741 38.3151,-87.8831 38.3001,-87.8881 38.2811,-87.9141 38.3021,-87.9131 38.3041,-87.9251 38.2411,-87.9801 38.2341,-87.9861 38.2001,-87.9771 38.1711,-87.9321 38.1571,-87.9311 38.1361,-87.9501 38.1311,-87.9731 38.1031,-88.0181 38.0921,-88.0121 38.0961,-87.9641 38.0731,-87.9751 38.0541,-88.0341 38.0451,-88.0431 38.0381,-88.0411 38.0331,-88.0211 38.0081,-88.0291 37.9751,-88.0211 37.9561,-88.0421 37.9341,-88.0411 37.9291,-88.0641 37.944,-88.0781 37.9231,-88.084 37.9171,-88.0301 37.9051,-88.0261 37.8961,-88.0441 37.9061,-88.1001 37.8951,-88.1011 37.8671,-88.0751 37.8431,-88.0341 37.8271,-88.0421 37.8311,-88.0891 37.8171,-88.0861 37.8051,-88.0351 37.7351,-88.0721 37.7001,-88.1331 37.6601,-88.1591 37.6281,-88.1571 37.5831,-88.1341 37.5101,-88.0711</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon></topp:the_geom><topp:STATE_NAME>Illinois</topp:STATE_NAME><topp:STATE_FIPS>17</topp:STATE_FIPS><topp:SUB_REGION>E N Cen</topp:SUB_REGION><topp:STATE_ABBR>IL</topp:STATE_ABBR><topp:LAND_KM>143986.61</topp:LAND_KM><topp:WATER_KM>1993.335</topp:WATER_KM><topp:PERSONS>1.1431E7</topp:PERSONS><topp:FAMILIES>2924880.0</topp:FAMILIES><topp:HOUSHOLD>4202240.0</topp:HOUSHOLD><topp:MALE>5552233.0</topp:MALE><topp:FEMALE>5878369.0</topp:FEMALE><topp:WORKERS>4199206.0</topp:WORKERS><topp:DRVALONE>3741715.0</topp:DRVALONE><topp:CARPOOL>652603.0</topp:CARPOOL><topp:PUBTRANS>538071.0</topp:PUBTRANS><topp:EMPLOYED>5417967.0</topp:EMPLOYED><topp:UNEMPLOY>385040.0</topp:UNEMPLOY><topp:SERVICE>1360159.0</topp:SERVICE><topp:MANUAL>828906.0</topp:MANUAL><topp:P_MALE>0.486</topp:P_MALE><topp:P_FEMALE>0.514</topp:P_FEMALE><topp:SAMP_POP>1747776.0</topp:SAMP_POP></topp:states></gml:featureMember></wfs:FeatureCollection>
--></div>
<div id="v2/multipletypenames.xml"><!--
<?xml version='1.0' encoding="ISO-8859-1" ?><wfs:FeatureCollection   xmlns:rws="http://mapserver.gis.umn.edu/mapserver"   xmlns:wfs="http://www.opengis.net/wfs"   xmlns:gml="http://www.opengis.net/gml"   xmlns:ogc="http://www.opengis.net/ogc"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd                        http://mapserver.gis.umn.edu/mapserver http://intranet.rijkswaterstaat.nl/services/geoservices/kerngisnat_utre?SERVICE=WFS&amp;VERSION=1.0.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=VKUNSTWERK,LKUNSTWERK,PKUNSTWERK&amp;OUTPUTFORMAT=XMLSCHEMA">      <gml:boundedBy>      	<gml:Box srsName="EPSG:28992">      		<gml:coordinates>134503.789000,455332.337000 135149.909000,455893.926000</gml:coordinates>      	</gml:Box>      </gml:boundedBy>    <gml:featureMember>      <rws:VKUNSTWERK fid="VKUNSTWERK.16">        <gml:boundedBy>        	<gml:Box srsName="EPSG:28992">        		<gml:coordinates>134949.571000,455438.845000 134978.799000,455471.762000</gml:coordinates>        	</gml:Box>        </gml:boundedBy>        <rws:geometry>        <gml:MultiPolygon srsName="EPSG:28992">        <gml:polygonMember>          <gml:Polygon>            <gml:outerBoundaryIs>              <gml:LinearRing>                <gml:coordinates>134974.191000,455471.587000 134973.974000,455471.762000 134973.558000,455471.248000 134973.579000,455471.230000 134963.143000,455458.768000 134962.787000,455458.653000 134960.514000,455456.003000 134960.440000,455455.539000 134950.207000,455443.320000 134950.158000,455443.360000 134949.571000,455442.638000 134949.810000,455442.462000 134951.417000,455441.223000 134951.435000,455441.209000 134954.158000,455439.108000 134954.507000,455438.845000 134955.000000,455439.420000 134954.954000,455439.458000 134965.046000,455451.520000 134965.568000,455451.606000 134968.159000,455454.642000 134968.120000,455455.195000 134978.294000,455467.355000 134978.330000,455467.326000 134978.799000,455467.881000 134978.598000,455468.042000 134975.885000,455470.224000 134974.191000,455471.587000 </gml:coordinates>              </gml:LinearRing>            </gml:outerBoundaryIs>            <gml:innerBoundaryIs>              <gml:LinearRing>                <gml:coordinates>134960.590000,455455.163000 134963.589000,455458.755000 134973.756000,455470.929000 134973.836000,455471.019000 134974.216000,455471.445000 134975.807000,455470.163000 134978.485000,455468.005000 134978.077000,455467.534000 134978.015000,455467.462000 134967.969000,455455.479000 134964.782000,455451.678000 134954.705000,455439.660000 134954.622000,455439.561000 134954.271000,455439.152000 134951.498000,455441.284000 134949.973000,455442.456000 134950.452000,455443.023000 134950.501000,455443.081000 134960.590000,455455.163000 </gml:coordinates>              </gml:LinearRing>            </gml:innerBoundaryIs>          </gml:Polygon>        </gml:polygonMember>        </gml:MultiPolygon>        </rws:geometry>        <rws:OBJECTID>16</rws:OBJECTID>        <rws:OBJECTSUBCATEGORIE>31</rws:OBJECTSUBCATEGORIE>      </rws:VKUNSTWERK>    </gml:featureMember>    <gml:featureMember>      <rws:LKUNSTWERK fid="LKUNSTWERK.14">        <gml:boundedBy>        	<gml:Box srsName="EPSG:28992">        		<gml:coordinates>135080.966000,455332.337000 135149.909000,455390.384000</gml:coordinates>        	</gml:Box>        </gml:boundedBy>        <rws:geometry>        <gml:MultiLineString srsName="EPSG:28992">          <gml:lineStringMember>            <gml:LineString>              <gml:coordinates>135080.966000,455390.384000 135096.654000,455377.009000 135109.082000,455366.755000 135122.769000,455355.276000 135141.565000,455339.633000 135149.909000,455332.337000 </gml:coordinates>            </gml:LineString>          </gml:lineStringMember>        </gml:MultiLineString>        </rws:geometry>        <rws:OBJECTID>14</rws:OBJECTID>        <rws:OBJECTSUBCATEGORIE>30</rws:OBJECTSUBCATEGORIE>      </rws:LKUNSTWERK>    </gml:featureMember>    <gml:featureMember>      <rws:PKUNSTWERK fid="PKUNSTWERK.29">        <gml:boundedBy>        	<gml:Box srsName="EPSG:28992">        		<gml:coordinates>134832.017000,455596.187000 134832.017000,455596.187000</gml:coordinates>        	</gml:Box>        </gml:boundedBy>        <rws:geometry>        <gml:MultiPoint srsName="EPSG:28992">          <gml:pointMember>            <gml:Point>              <gml:coordinates>134832.017000,455596.187000</gml:coordinates>            </gml:Point>          </gml:pointMember>        </gml:MultiPoint>        </rws:geometry>        <rws:OBJECTID>29</rws:OBJECTID>        <rws:OBJECTSUBCATEGORIE>30</rws:OBJECTSUBCATEGORIE>      </rws:PKUNSTWERK>    </gml:featureMember></wfs:FeatureCollection>
--></div>
<div id="v2/nogeom.xml"><!--
<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns="http://www.opengis.net/wfs" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:loc="http://server.fr/geoserver/loc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://server.fr:80/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd http://server.fr/geoserver/loc http://server.fr:80/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=DescribeFeatureType&amp;typeName=loc:DEPARTEMENT"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#2154"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">199373,6704170 337568,6885985</gml:coordinates></gml:Box></gml:boundedBy><gml:featureMember><loc:DEPARTEMENT fid="DEPARTEMENT.1"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#2154"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">209565,6785323 337568,6885985</gml:coordinates></gml:Box></gml:boundedBy><loc:NOM_DEPT>COTES-D'ARMOR</loc:NOM_DEPT></loc:DEPARTEMENT></gml:featureMember><gml:featureMember><loc:DEPARTEMENT fid="DEPARTEMENT.3"><gml:boundedBy><gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#2154"><gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">199373,6704170 323518,6807542</gml:coordinates></gml:Box></gml:boundedBy><loc:NOM_DEPT>MORBIHAN</loc:NOM_DEPT></loc:DEPARTEMENT></gml:featureMember></wfs:FeatureCollection>
--></div>
</body>
</html>