Merge pull request #1829 from bartvde/wfs2

WFS 1.1.0 format (read/write) (r=@twpayne,@ahocevar)
This commit is contained in:
Bart van den Eijnden
2014-03-11 22:14:25 +01:00
12 changed files with 1292 additions and 41 deletions
@@ -0,0 +1,4 @@
<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="topp:states" xmlns:topp="http://www.openplans.org/topp"/>
<wfs:Query typeName="topp:cities" xmlns:topp="http://www.openplans.org/topp"/>
</wfs:GetFeature>
+1
View File
@@ -0,0 +1 @@
<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><wfs:Native vendorId="ORACLE" safeToIgnore="true">ALTER SESSION ENABLE PARALLEL DML</wfs:Native><wfs:Native vendorId="ORACLE" safeToIgnore="false">Another native line goes here</wfs:Native></wfs:Transaction>
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
xmlns:gml="http://www.opengis.net/gml"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://intranet.rijkswaterstaat.nl/services/geoservices/nwb_wegen?SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=feature:AAA64&amp;OUTPUTFORMAT=text/xml; subtype=gml/3.1.1 http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="625">
</wfs:FeatureCollection>
@@ -0,0 +1,45 @@
<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Insert>
<feature:states xmlns:feature="http://www.openplans.org/topp">
<feature:the_geom>
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml">
<gml:pointMember>
<gml:Point>
<gml:pos>1 2</gml:pos>
</gml:Point>
</gml:pointMember>
</gml:MultiPoint>
</feature:the_geom>
<feature:foo>bar</feature:foo>
</feature:states>
</wfs:Insert>
<wfs:Update xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
<wfs:Property>
<wfs:Name>the_geom</wfs:Name>
<wfs:Value>
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml">
<gml:pointMember>
<gml:Point>
<gml:pos>1 2</gml:pos>
</gml:Point>
</gml:pointMember>
</gml:MultiPoint>
</wfs:Value>
</wfs:Property>
<wfs:Property>
<wfs:Name>foo</wfs:Name>
<wfs:Value>bar</wfs:Value>
</wfs:Property>
<wfs:Property>
<wfs:Name>nul</wfs:Name>
</wfs:Property>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:FeatureId fid="fid.42"/>
</ogc:Filter>
</wfs:Update>
<wfs:Delete xmlns:wfs="http://www.opengis.net/wfs" typeName="topp:states" xmlns:topp="http://www.openplans.org/topp">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:FeatureId fid="fid.37"/>
</ogc:Filter>
</wfs:Delete>
</wfs:Transaction>
@@ -0,0 +1,16 @@
<wfs:TransactionResponse version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:tiger="http://www.census.gov" xmlns:wfs="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" xmlns:sf="http://www.openplans.org/spearfish" xmlns:ows="http://www.opengis.net/ows" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink">
<wfs:TransactionSummary>
<wfs:totalInserted>0</wfs:totalInserted>
<wfs:totalUpdated>1</wfs:totalUpdated>
<wfs:totalDeleted>0</wfs:totalDeleted>
</wfs:TransactionSummary>
<wfs:TransactionResults/>
<wfs:InsertResults>
<wfs:Feature>
<ogc:FeatureId fid="parcelle.40"/>
</wfs:Feature>
<wfs:Feature>
<ogc:FeatureId fid="parcelle.41"/>
</wfs:Feature>
</wfs:InsertResults>
</wfs:TransactionResponse>
+47
View File
@@ -0,0 +1,47 @@
<wfs:FeatureCollection
xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
xmlns:gml="http://www.opengis.net/gml"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://ontwikkel.intranet.rijkswaterstaat.nl/services/geoservices/ov_zonering?SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=AAA212&amp;OUTPUTFORMAT=text/xml; subtype=gml/3.1.1 http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:28992">
<gml:lowerCorner>3197.880000 306457.313000</gml:lowerCorner>
<gml:upperCorner>280339.156000 613850.438000</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
<rws:AAA212 gml:id="AAA212.791">
<gml:boundedBy>
<gml:Envelope srsName="EPSG:28992">
<gml:lowerCorner>196507.469000 502347.938000</gml:lowerCorner>
<gml:upperCorner>202430.844000 510383.719000</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<rws:geometry>
<gml:MultiSurface srsName="EPSG:28992">
<gml:surfaceMembers>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="2">200448.047000 510383.719000 198475.031000 509253.875000 198477.422000 507339.688000 196507.469000 505841.969000 196507.625000 504980.281000 196621.359000 505029.969000 196825.328000 505114.000000 197310.031000 505183.469000 197636.609000 505148.750000 197837.594000 505061.563000 197941.031000 504953.688000 198003.094000 504817.719000 198023.781000 504721.688000 198016.391000 504597.531000 197907.234000 504363.219000 197716.734000 504013.969000 197700.156000 503567.563000 197775.531000 503373.969000 197930.688000 503153.781000 198034.234000 503045.594000 198170.078000 502932.125000 198504.047000 502725.250000 198858.719000 502550.875000 199138.000000 502460.719000 199336.000000 502347.938000 199044.125000 504910.969000 199549.359000 507065.781000 200280.594000 506878.938000 202430.844000 507474.625000 202430.844000 508850.906000 200448.047000 510383.719000 </gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMembers>
</gml:MultiSurface>
</rws:geometry>
<rws:OBJECTID>791</rws:OBJECTID>
<rws:HECTARES>1800.89</rws:HECTARES>
<rws:ZONENR>4620</rws:ZONENR>
<rws:NULZONES> </rws:NULZONES>
<rws:AREA>0</rws:AREA>
<rws:PERIMETER>24305.1</rws:PERIMETER>
</rws:AAA212>
</gml:featureMember>
</wfs:FeatureCollection>
+233
View File
@@ -0,0 +1,233 @@
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection numberOfFeatures="3" timeStamp="2008-09-12T00:24:21.013-04:00"
xsi:schemaLocation="http://www.openplans.org/topp http://sigma.openplans.org:80/geoserver/wfs?service=WFS&amp;version=1.1.0&amp;request=DescribeFeatureType&amp;typeName=topp:states http://www.opengis.net/wfs http://sigma.openplans.org:80/geoserver/schemas/wfs/1.1.0/wfs.xsd"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:opengeo="http://open-geo.com"
xmlns:tiger="http://www.census.gov" xmlns:wfs="http://www.opengis.net/wfs"
xmlns:topp="http://www.openplans.org/topp" xmlns:seb="http://seb.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows"
xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink">
<gml:featureMembers>
<topp:states gml:id="states.1">
<gml:boundedBy>
<gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:lowerCorner>36.986 -91.516</gml:lowerCorner>
<gml:upperCorner>42.509 -87.507</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<topp:the_geom>
<gml:MultiSurface srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>37.511 -88.071 37.476 -88.087 37.442 -88.311 37.409
-88.359 37.421 -88.419 37.401 -88.467 37.296 -88.511 37.257
-88.501 37.205 -88.451 37.156 -88.422 37.098 -88.451 37.072
-88.476 37.068 -88.491 37.064 -88.517 37.072 -88.559 37.109
-88.614 37.135 -88.688 37.141 -88.739 37.152 -88.746 37.202
-88.863 37.218 -88.932 37.221 -88.993 37.185 -89.065 37.112
-89.116 37.093 -89.146 37.064 -89.169 37.025 -89.174 36.998
-89.151 36.988 -89.129 36.986 -89.193 37.028 -89.211 37.041
-89.237 37.087 -89.264 37.091 -89.284 37.085 -89.303 37.061
-89.309 37.027 -89.264 37.008 -89.262 36.999 -89.282 37.009
-89.311 37.049 -89.382 37.099 -89.379 37.137 -89.423 37.165
-89.441 37.224 -89.468 37.253 -89.465 37.256 -89.489 37.276
-89.513 37.304 -89.513 37.329 -89.501 37.339 -89.468 37.355
-89.435 37.411 -89.427 37.453 -89.453 37.491 -89.494 37.571
-89.524 37.615 -89.513 37.651 -89.519 37.679 -89.513 37.694
-89.521 37.706 -89.581 37.745 -89.666 37.783 -89.675 37.804
-89.691 37.841 -89.728 37.905 -89.851 37.905 -89.861 37.891
-89.866 37.875 -89.901 37.878 -89.937 37.911 -89.978 37.963
-89.958 37.969 -90.011 37.993 -90.041 38.032 -90.119 38.053
-90.134 38.088 -90.207 38.122 -90.254 38.166 -90.289 38.188
-90.336 38.234 -90.364 38.323 -90.369 38.365 -90.358 38.391
-90.339 38.427 -90.301 38.518 -90.265 38.532 -90.261 38.562
-90.241 38.611 -90.183 38.658 -90.183 38.701 -90.202 38.723
-90.196 38.773 -90.163 38.785 -90.135 38.801 -90.121 38.831
-90.113 38.853 -90.132 38.914 -90.243 38.924 -90.278 38.924
-90.319 38.962 -90.413 38.959 -90.469 38.891 -90.531 38.871
-90.571 38.881 -90.627 38.935 -90.668 39.037 -90.706 39.058
-90.707 39.093 -90.691 39.144 -90.716 39.195 -90.718 39.224
-90.732 39.247 -90.738 39.296 -90.779 39.351 -90.851 39.401
-90.947 39.444 -91.036 39.473 -91.064 39.528 -91.093 39.552
-91.156 39.601 -91.203 39.685 -91.317 39.724 -91.367 39.761
-91.373 39.803 -91.381 39.863 -91.449 39.885 -91.451 39.901
-91.434 39.921 -91.431 39.946 -91.447 40.005 -91.487 40.066
-91.504 40.134 -91.516 40.201 -91.506 40.251 -91.498 40.309
-91.486 40.371 -91.448 40.386 -91.418 40.392 -91.385 40.402
-91.372 40.447 -91.385 40.503 -91.374 40.528 -91.382 40.547
-91.412 40.572 -91.411 40.603 -91.375 40.639 -91.262 40.643
-91.214 40.656 -91.162 40.682 -91.129 40.705 -91.119 40.761
-91.092 40.833 -91.088 40.879 -91.049 40.923 -90.983 40.951
-90.961 41.071 -90.954 41.104 -90.957 41.144 -90.991 41.165
-91.018 41.176 -91.056 41.231 -91.101 41.267 -91.102 41.334
-91.073 41.401 -91.055 41.423 -91.027 41.431 -91.001 41.421
-90.949 41.444 -90.844 41.449 -90.779 41.451 -90.708 41.462
-90.658 41.509 -90.601 41.525 -90.541 41.527 -90.454 41.543
-90.434 41.567 -90.423 41.586 -90.348 41.602 -90.339 41.649
-90.341 41.722 -90.326 41.756 -90.304 41.781 -90.255 41.806
-90.195 41.931 -90.154 41.983 -90.142 42.033 -90.151 42.061
-90.168 42.103 -90.166 42.121 -90.176 42.122 -90.191 42.159
-90.231 42.197 -90.323 42.211 -90.367 42.242 -90.407 42.263
-90.417 42.341 -90.427 42.361 -90.441 42.388 -90.491 42.421
-90.563 42.461 -90.605 42.475 -90.648 42.494 -90.651 42.509
-90.638 42.508 -90.419 42.504 -89.923 42.503 -89.834 42.497
-89.401 42.497 -89.359 42.491 -88.939 42.491 -88.764 42.489
-88.706 42.491 -88.297 42.489 -88.194 42.489 -87.797 42.314
-87.836 42.156 -87.761 42.059 -87.671 41.847 -87.612 41.723
-87.529 41.469 -87.532 41.301 -87.532 41.173 -87.531 41.009
-87.532 40.745 -87.532 40.494 -87.537 40.483 -87.535 40.166
-87.535 39.887 -87.535 39.609 -87.535 39.477 -87.538 39.351
-87.541 39.338 -87.597 39.307 -87.625 39.297 -87.611 39.281
-87.615 39.258 -87.606 39.248 -87.584 39.208 -87.588 39.198
-87.594 39.196 -87.607 39.168 -87.644 39.146 -87.671 39.131
-87.659 39.113 -87.662 39.103 -87.631 39.088 -87.631 39.084
-87.612 39.062 -87.585 38.995 -87.581 38.994 -87.591 38.977
-87.547 38.963 -87.533 38.931 -87.531 38.904 -87.539 38.869
-87.559 38.857 -87.551 38.795 -87.507 38.776 -87.519 38.769
-87.508 38.736 -87.508 38.685 -87.543 38.672 -87.588 38.642
-87.625 38.622 -87.628 38.599 -87.619 38.593 -87.641 38.573
-87.652 38.547 -87.672 38.515 -87.651 38.501 -87.653 38.504
-87.679 38.481 -87.692 38.466 -87.756 38.457 -87.758 38.445
-87.738 38.417 -87.748 38.378 -87.784 38.352 -87.834 38.286
-87.851 38.285 -87.863 38.316 -87.874 38.315 -87.883 38.301
-87.888 38.281 -87.914 38.302 -87.913 38.304 -87.925 38.241
-87.981 38.234 -87.986 38.201 -87.977 38.171 -87.932 38.157
-87.931 38.136 -87.951 38.131 -87.973 38.103 -88.018 38.092
-88.012 38.096 -87.964 38.073 -87.975 38.054 -88.034 38.045
-88.043 38.038 -88.041 38.033 -88.021 38.008 -88.029 37.975
-88.021 37.956 -88.042 37.934 -88.041 37.929 -88.064 37.944
-88.078 37.923 -88.084 37.917 -88.031 37.905 -88.026 37.896
-88.044 37.906 -88.101 37.895 -88.101 37.867 -88.075 37.843
-88.034 37.827 -88.042 37.831 -88.089 37.817 -88.086 37.805
-88.035 37.735 -88.072 37.701 -88.133 37.661 -88.159 37.628
-88.157 37.583 -88.134 37.511 -88.071</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</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.143E7</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>
<topp:states gml:id="states.2">
<gml:boundedBy>
<gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:lowerCorner>38.788 -77.122</gml:lowerCorner>
<gml:upperCorner>38.993 -76.911</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<topp:the_geom>
<gml:MultiSurface srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>38.966 -77.008 38.889 -76.911 38.788 -77.045 38.813
-77.035 38.829 -77.045 38.838 -77.041 38.862 -77.039 38.886
-77.067 38.915 -77.078 38.932 -77.122 38.993 -77.042 38.966
-77.008</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</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>
<topp:states gml:id="states.3">
<gml:boundedBy>
<gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:lowerCorner>38.449 -75.791</gml:lowerCorner>
<gml:upperCorner>39.841 -75.045</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<topp:the_geom>
<gml:MultiSurface srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>38.557 -75.707 38.649 -75.711 38.831 -75.724 39.141
-75.752 39.247 -75.761 39.295 -75.764 39.383 -75.772 39.723
-75.791 39.724 -75.775 39.774 -75.745 39.821 -75.695 39.838
-75.644 39.841 -75.583 39.826 -75.471 39.798 -75.421 39.789
-75.412 39.778 -75.428 39.763 -75.461 39.741 -75.475 39.719
-75.476 39.714 -75.489 39.612 -75.611 39.566 -75.562 39.463
-75.591 39.366 -75.515 39.257 -75.402 39.073 -75.397 39.012
-75.324 38.945 -75.307 38.808 -75.191 38.799 -75.083 38.449
-75.045 38.449 -75.068 38.451 -75.093 38.455 -75.351 38.463
-75.699 38.557 -75.707</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</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:featureMembers>
</wfs:FeatureCollection>
+290
View File
@@ -0,0 +1,290 @@
goog.provide('ol.test.format.WFS');
describe('ol.format.WFS', function() {
describe('when parsing TOPP states GML from WFS', function() {
var features, feature;
before(function(done) {
afterLoadText('spec/ol/format/wfs/topp-states-wfs.xml', function(xml) {
try {
var config = {
'featureNS': 'http://www.openplans.org/topp',
'featureType': 'states'
};
features = new ol.format.WFS(config).readFeatures(xml);
} catch (e) {
done(e);
}
done();
});
});
it('creates 3 features', function() {
expect(features).to.have.length(3);
});
it('creates a polygon for Illinois', function() {
feature = features[0];
expect(feature.getId()).to.equal('states.1');
expect(feature.get('STATE_NAME')).to.equal('Illinois');
expect(feature.getGeometry()).to.be.an(ol.geom.MultiPolygon);
});
});
describe('when parsing FeatureCollection', function() {
var response;
before(function(done) {
afterLoadText('spec/ol/format/wfs/NumberOfFeatures.xml',
function(xml) {
try {
response = new ol.format.WFS().readFeatureCollectionMetadata(xml);
} catch (e) {
done(e);
}
done();
});
});
it('returns the correct number of features', function() {
expect(response.numberOfFeatures).to.equal(625);
});
});
describe('when parsing FeatureCollection', function() {
var response;
before(function(done) {
afterLoadText('spec/ol/format/wfs/boundedBy.xml',
function(xml) {
try {
response = new ol.format.WFS().readFeatureCollectionMetadata(xml);
} catch (e) {
done(e);
}
done();
});
});
it('returns the correct bounds', function() {
expect(response.bounds).to.eql([3197.88, 306457.313,
280339.156, 613850.438]);
});
});
describe('when parsing TransactionResponse', function() {
var response;
before(function(done) {
afterLoadText('spec/ol/format/wfs/TransactionResponse.xml',
function(xml) {
try {
response = new ol.format.WFS().readTransactionResponse(xml);
} catch (e) {
done(e);
}
done();
});
});
it('returns the correct TransactionResponse object', function() {
expect(response.transactionSummary.totalDeleted).to.equal(0);
expect(response.transactionSummary.totalInserted).to.equal(0);
expect(response.transactionSummary.totalUpdated).to.equal(1);
expect(response.insertIds).to.have.length(2);
expect(response.insertIds[0]).to.equal('parcelle.40');
});
});
describe('when writing out a GetFeature request', function() {
it('creates the expected output', function() {
var text =
'<wfs:GetFeature service="WFS" version="1.1.0" resultType="hits" ' +
' xmlns:topp="http://www.openplans.org/topp"' +
' xmlns:wfs="http://www.opengis.net/wfs"' +
' 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.1.0/wfs.xsd">' +
' <wfs:Query xmlns:wfs="http://www.opengis.net/wfs" ' +
' typeName="topp:states" srsName="urn:ogc:def:crs:EPSG::4326" ' +
' xmlns:topp="http://www.openplans.org/topp">' +
' <wfs:PropertyName>STATE_NAME</wfs:PropertyName>' +
' <wfs:PropertyName>STATE_FIPS</wfs:PropertyName>' +
' <wfs:PropertyName>STATE_ABBR</wfs:PropertyName>' +
' </wfs:Query>' +
'</wfs:GetFeature>';
var serialized = new ol.format.WFS().writeGetFeature({
resultType: 'hits',
featureTypes: ['states'],
featureNS: 'http://www.openplans.org/topp',
featurePrefix: 'topp',
srsName: 'urn:ogc:def:crs:EPSG::4326',
propertyNames: ['STATE_NAME', 'STATE_FIPS', 'STATE_ABBR']
});
expect(serialized).to.xmleql(ol.xml.load(text));
});
it('creates paging headers', function() {
var text =
'<wfs:GetFeature service="WFS" version="1.1.0" startIndex="20" ' +
' count="10" xmlns:topp="http://www.openplans.org/topp"' +
' xmlns:wfs="http://www.opengis.net/wfs"' +
' 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.1.0/wfs.xsd">' +
' <wfs:Query xmlns:wfs="http://www.opengis.net/wfs" ' +
' typeName="topp:states" srsName="urn:ogc:def:crs:EPSG::4326"' +
' xmlns:topp="http://www.openplans.org/topp">' +
' </wfs:Query>' +
'</wfs:GetFeature>';
var serialized = new ol.format.WFS().writeGetFeature({
count: 10,
startIndex: 20,
srsName: 'urn:ogc:def:crs:EPSG::4326',
featureNS: 'http://www.openplans.org/topp',
featurePrefix: 'topp',
featureTypes: ['states']
});
expect(serialized).to.xmleql(ol.xml.load(text));
});
it('creates a BBOX filter', function() {
var text =
'<wfs:Query xmlns:wfs="http://www.opengis.net/wfs" ' +
' typeName="topp:states" srsName="urn:ogc:def:crs:EPSG::4326" ' +
' xmlns:topp="http://www.openplans.org/topp">' +
' <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
' <ogc:BBOX>' +
' <ogc:PropertyName>the_geom</ogc:PropertyName>' +
' <gml:Envelope xmlns:gml="http://www.opengis.net/gml" ' +
' srsName="urn:ogc:def:crs:EPSG::4326">' +
' <gml:lowerCorner>1 2</gml:lowerCorner>' +
' <gml:upperCorner>3 4</gml:upperCorner>' +
' </gml:Envelope>' +
' </ogc:BBOX>' +
' </ogc:Filter>' +
'</wfs:Query>';
var serialized = new ol.format.WFS().writeGetFeature({
srsName: 'urn:ogc:def:crs:EPSG::4326',
featureNS: 'http://www.openplans.org/topp',
featurePrefix: 'topp',
featureTypes: ['states'],
geometryName: 'the_geom',
bbox: [1, 2, 3, 4]
});
expect(serialized.firstElementChild).to.xmleql(ol.xml.load(text));
});
});
describe('when writing out a Transaction request', function() {
it('creates a handle', function() {
var text =
'<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" ' +
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
'service="WFS" version="1.1.0" handle="handle_t" ' +
'xsi:schemaLocation="http://www.opengis.net/wfs ' +
'http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"/>';
var serialized = new ol.format.WFS().writeTransaction(null, null, null,
{handle: 'handle_t'});
expect(serialized).to.xmleql(ol.xml.load(text));
});
});
describe('when writing out a Transaction request', function() {
var text;
before(function(done) {
afterLoadText('spec/ol/format/wfs/TransactionMulti.xml', function(xml) {
text = xml;
done();
});
});
it('creates the correct transaction body', function() {
var format = new ol.format.WFS();
var insertFeature = new ol.Feature({
the_geom: new ol.geom.MultiPoint([[1, 2]]),
foo: 'bar',
nul: null
});
insertFeature.setGeometryName('the_geom');
var inserts = [insertFeature];
var updateFeature = new ol.Feature({
the_geom: new ol.geom.MultiPoint([[1, 2]]),
foo: 'bar',
// null value gets Property element with no Value
nul: null,
// undefined value means don't create a Property element
unwritten: undefined
});
updateFeature.setId('fid.42');
var updates = [updateFeature];
var deleteFeature = new ol.Feature();
deleteFeature.setId('fid.37');
var deletes = [deleteFeature];
var serialized = format.writeTransaction(inserts, updates, deletes, {
featureNS: 'http://www.openplans.org/topp',
featureType: 'states',
featurePrefix: 'topp'
});
expect(serialized).to.xmleql(ol.xml.load(text));
});
});
describe('when writing out a Transaction request', function() {
var text;
before(function(done) {
afterLoadText('spec/ol/format/wfs/Native.xml', function(xml) {
text = xml;
done();
});
});
it('handles writing out Native', function() {
var format = new ol.format.WFS();
var serialized = format.writeTransaction(null, null, null, {
nativeElements: [{
vendorId: 'ORACLE',
safeToIgnore: true,
value: 'ALTER SESSION ENABLE PARALLEL DML'
}, {
vendorId: 'ORACLE',
safeToIgnore: false,
value: 'Another native line goes here'
}]
});
expect(serialized).to.xmleql(ol.xml.load(text));
});
});
describe('when writing out a GetFeature request', function() {
var text;
before(function(done) {
afterLoadText('spec/ol/format/wfs/GetFeatureMultiple.xml', function(xml) {
text = xml;
done();
});
});
it('handles writing multiple Query elements', function() {
var format = new ol.format.WFS();
var serialized = format.writeGetFeature({
featureNS: 'http://www.openplans.org/topp',
featureTypes: ['states', 'cities'],
featurePrefix: 'topp'
});
expect(serialized).to.xmleql(ol.xml.load(text));
});
});
});
goog.require('ol.xml');
goog.require('ol.Feature');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.format.WFS');