MapProxy 1.16.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. mapproxy/__init__.py +0 -0
  2. mapproxy/cache/__init__.py +36 -0
  3. mapproxy/cache/azureblob.py +145 -0
  4. mapproxy/cache/base.py +111 -0
  5. mapproxy/cache/compact.py +664 -0
  6. mapproxy/cache/couchdb.py +295 -0
  7. mapproxy/cache/dummy.py +34 -0
  8. mapproxy/cache/file.py +185 -0
  9. mapproxy/cache/geopackage.py +609 -0
  10. mapproxy/cache/legend.py +83 -0
  11. mapproxy/cache/mbtiles.py +392 -0
  12. mapproxy/cache/meta.py +78 -0
  13. mapproxy/cache/path.py +250 -0
  14. mapproxy/cache/redis.py +88 -0
  15. mapproxy/cache/renderd.py +95 -0
  16. mapproxy/cache/riak.py +202 -0
  17. mapproxy/cache/s3.py +177 -0
  18. mapproxy/cache/tile.py +699 -0
  19. mapproxy/client/__init__.py +0 -0
  20. mapproxy/client/arcgis.py +79 -0
  21. mapproxy/client/cgi.py +139 -0
  22. mapproxy/client/http.py +315 -0
  23. mapproxy/client/log.py +33 -0
  24. mapproxy/client/tile.py +150 -0
  25. mapproxy/client/wms.py +254 -0
  26. mapproxy/compat/__init__.py +46 -0
  27. mapproxy/compat/image.py +79 -0
  28. mapproxy/compat/itertools.py +29 -0
  29. mapproxy/compat/modules.py +13 -0
  30. mapproxy/config/__init__.py +22 -0
  31. mapproxy/config/config.py +201 -0
  32. mapproxy/config/coverage.py +107 -0
  33. mapproxy/config/defaults.py +98 -0
  34. mapproxy/config/loader.py +2286 -0
  35. mapproxy/config/spec.py +644 -0
  36. mapproxy/config/validator.py +239 -0
  37. mapproxy/config_template/__init__.py +0 -0
  38. mapproxy/config_template/base_config/config.wsgi +10 -0
  39. mapproxy/config_template/base_config/full_example.yaml +593 -0
  40. mapproxy/config_template/base_config/full_seed_example.yaml +79 -0
  41. mapproxy/config_template/base_config/log.ini +35 -0
  42. mapproxy/config_template/base_config/mapproxy.yaml +60 -0
  43. mapproxy/config_template/base_config/seed.yaml +27 -0
  44. mapproxy/exception.py +142 -0
  45. mapproxy/featureinfo.py +252 -0
  46. mapproxy/grid.py +1170 -0
  47. mapproxy/image/__init__.py +536 -0
  48. mapproxy/image/fonts/DejaVuSans.ttf +0 -0
  49. mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
  50. mapproxy/image/fonts/LICENSE +99 -0
  51. mapproxy/image/fonts/__init__.py +0 -0
  52. mapproxy/image/mask.py +75 -0
  53. mapproxy/image/merge.py +316 -0
  54. mapproxy/image/message.py +347 -0
  55. mapproxy/image/opts.py +182 -0
  56. mapproxy/image/tile.py +167 -0
  57. mapproxy/image/transform.py +350 -0
  58. mapproxy/layer.py +470 -0
  59. mapproxy/multiapp.py +231 -0
  60. mapproxy/proj.py +302 -0
  61. mapproxy/request/__init__.py +18 -0
  62. mapproxy/request/arcgis.py +259 -0
  63. mapproxy/request/base.py +476 -0
  64. mapproxy/request/tile.py +128 -0
  65. mapproxy/request/wms/__init__.py +793 -0
  66. mapproxy/request/wms/exception.py +99 -0
  67. mapproxy/request/wmts.py +436 -0
  68. mapproxy/response.py +237 -0
  69. mapproxy/script/__init__.py +0 -0
  70. mapproxy/script/conf/__init__.py +0 -0
  71. mapproxy/script/conf/app.py +195 -0
  72. mapproxy/script/conf/caches.py +45 -0
  73. mapproxy/script/conf/layers.py +54 -0
  74. mapproxy/script/conf/seeds.py +37 -0
  75. mapproxy/script/conf/sources.py +86 -0
  76. mapproxy/script/conf/utils.py +143 -0
  77. mapproxy/script/defrag.py +184 -0
  78. mapproxy/script/export.py +333 -0
  79. mapproxy/script/grids.py +188 -0
  80. mapproxy/script/scales.py +126 -0
  81. mapproxy/script/util.py +406 -0
  82. mapproxy/script/wms_capabilities.py +152 -0
  83. mapproxy/seed/__init__.py +0 -0
  84. mapproxy/seed/cachelock.py +121 -0
  85. mapproxy/seed/cleanup.py +187 -0
  86. mapproxy/seed/config.py +469 -0
  87. mapproxy/seed/script.py +388 -0
  88. mapproxy/seed/seeder.py +538 -0
  89. mapproxy/seed/spec.py +64 -0
  90. mapproxy/seed/util.py +254 -0
  91. mapproxy/service/__init__.py +14 -0
  92. mapproxy/service/base.py +46 -0
  93. mapproxy/service/demo.py +356 -0
  94. mapproxy/service/kml.py +331 -0
  95. mapproxy/service/ows.py +38 -0
  96. mapproxy/service/template_helper.py +53 -0
  97. mapproxy/service/templates/demo/capabilities_demo.html +16 -0
  98. mapproxy/service/templates/demo/demo.html +181 -0
  99. mapproxy/service/templates/demo/openlayers-demo.cfg +16 -0
  100. mapproxy/service/templates/demo/static/img/blank.gif +0 -0
  101. mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
  102. mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
  103. mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
  104. mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
  105. mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
  106. mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
  107. mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
  108. mapproxy/service/templates/demo/static/logo.png +0 -0
  109. mapproxy/service/templates/demo/static/ol.css +345 -0
  110. mapproxy/service/templates/demo/static/ol.js +4 -0
  111. mapproxy/service/templates/demo/static/proj4.min.js +1 -0
  112. mapproxy/service/templates/demo/static/proj4defs.js +1 -0
  113. mapproxy/service/templates/demo/static/site.css +137 -0
  114. mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
  115. mapproxy/service/templates/demo/static/theme/default/google.css +17 -0
  116. mapproxy/service/templates/demo/static/theme/default/ie6-style.css +10 -0
  117. mapproxy/service/templates/demo/static/theme/default/style.css +482 -0
  118. mapproxy/service/templates/demo/static.html +34 -0
  119. mapproxy/service/templates/demo/tms_demo.html +103 -0
  120. mapproxy/service/templates/demo/wms_demo.html +140 -0
  121. mapproxy/service/templates/demo/wmts_demo.html +110 -0
  122. mapproxy/service/templates/tms_capabilities.xml +13 -0
  123. mapproxy/service/templates/tms_exception.xml +4 -0
  124. mapproxy/service/templates/tms_root_resource.xml +7 -0
  125. mapproxy/service/templates/tms_tilemap_capabilities.xml +14 -0
  126. mapproxy/service/templates/wms100capabilities.xml +112 -0
  127. mapproxy/service/templates/wms100exception.xml +4 -0
  128. mapproxy/service/templates/wms110capabilities.xml +152 -0
  129. mapproxy/service/templates/wms110exception.xml +5 -0
  130. mapproxy/service/templates/wms111capabilities.xml +183 -0
  131. mapproxy/service/templates/wms111exception.xml +5 -0
  132. mapproxy/service/templates/wms130capabilities.xml +326 -0
  133. mapproxy/service/templates/wms130exception.xml +8 -0
  134. mapproxy/service/templates/wmts100capabilities.xml +155 -0
  135. mapproxy/service/templates/wmts100exception.xml +9 -0
  136. mapproxy/service/tile.py +536 -0
  137. mapproxy/service/wms.py +851 -0
  138. mapproxy/service/wmts.py +381 -0
  139. mapproxy/source/__init__.py +75 -0
  140. mapproxy/source/arcgis.py +39 -0
  141. mapproxy/source/error.py +39 -0
  142. mapproxy/source/mapnik.py +259 -0
  143. mapproxy/source/tile.py +96 -0
  144. mapproxy/source/wms.py +270 -0
  145. mapproxy/srs.py +726 -0
  146. mapproxy/template.py +54 -0
  147. mapproxy/test/__init__.py +0 -0
  148. mapproxy/test/conftest.py +7 -0
  149. mapproxy/test/helper.py +247 -0
  150. mapproxy/test/http.py +494 -0
  151. mapproxy/test/image.py +210 -0
  152. mapproxy/test/mocker.py +2268 -0
  153. mapproxy/test/schemas/inspire/common/1.0/common.xsd +1461 -0
  154. mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +108 -0
  155. mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +108 -0
  156. mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +108 -0
  157. mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +108 -0
  158. mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +155 -0
  159. mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +108 -0
  160. mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +108 -0
  161. mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +108 -0
  162. mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +108 -0
  163. mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +109 -0
  164. mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +108 -0
  165. mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +108 -0
  166. mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +108 -0
  167. mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +108 -0
  168. mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +108 -0
  169. mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +108 -0
  170. mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +108 -0
  171. mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +108 -0
  172. mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +108 -0
  173. mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +108 -0
  174. mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +108 -0
  175. mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +108 -0
  176. mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +108 -0
  177. mapproxy/test/schemas/inspire/common/1.0/network.xsd +521 -0
  178. mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +19 -0
  179. mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +14 -0
  180. mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +66 -0
  181. mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +1646 -0
  182. mapproxy/test/schemas/kml/2.2.0/xAL.xsd +1680 -0
  183. mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +87 -0
  184. mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +235 -0
  185. mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +23 -0
  186. mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +157 -0
  187. mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +86 -0
  188. mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +127 -0
  189. mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +279 -0
  190. mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +76 -0
  191. mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +112 -0
  192. mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +51 -0
  193. mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +59 -0
  194. mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +125 -0
  195. mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +140 -0
  196. mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +60 -0
  197. mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +47 -0
  198. mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +27 -0
  199. mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +353 -0
  200. mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +188 -0
  201. mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +524 -0
  202. mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +260 -0
  203. mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +273 -0
  204. mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +303 -0
  205. mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +6 -0
  206. mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +33 -0
  207. mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +68 -0
  208. mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
  209. mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +274 -0
  210. mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +5 -0
  211. mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +276 -0
  212. mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +303 -0
  213. mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +6 -0
  214. mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +33 -0
  215. mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +8 -0
  216. mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +277 -0
  217. mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +611 -0
  218. mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +34 -0
  219. mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +28 -0
  220. mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +68 -0
  221. mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +22 -0
  222. mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +283 -0
  223. mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +5 -0
  224. mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +276 -0
  225. mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +303 -0
  226. mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +6 -0
  227. mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +33 -0
  228. mapproxy/test/schemas/wmts/1.0/ReadMe.txt +32 -0
  229. mapproxy/test/schemas/wmts/1.0/wmts.xsd +28 -0
  230. mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +151 -0
  231. mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +38 -0
  232. mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +564 -0
  233. mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +57 -0
  234. mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +72 -0
  235. mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +91 -0
  236. mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +76 -0
  237. mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +70 -0
  238. mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +6 -0
  239. mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +122 -0
  240. mapproxy/test/schemas/xml.xsd +287 -0
  241. mapproxy/test/system/__init__.py +98 -0
  242. mapproxy/test/system/fixture/arcgis.yaml +57 -0
  243. mapproxy/test/system/fixture/auth.yaml +70 -0
  244. mapproxy/test/system/fixture/cache.mbtiles +0 -0
  245. mapproxy/test/system/fixture/cache_azureblob.yaml +59 -0
  246. mapproxy/test/system/fixture/cache_band_merge.yaml +73 -0
  247. mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +24 -0
  248. mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
  249. mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
  250. mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
  251. mapproxy/test/system/fixture/cache_geopackage.yaml +56 -0
  252. mapproxy/test/system/fixture/cache_grid_names.yaml +50 -0
  253. mapproxy/test/system/fixture/cache_mbtiles.yaml +28 -0
  254. mapproxy/test/system/fixture/cache_s3.yaml +58 -0
  255. mapproxy/test/system/fixture/cache_source.yaml +81 -0
  256. mapproxy/test/system/fixture/combined_sources.yaml +130 -0
  257. mapproxy/test/system/fixture/coverage.yaml +77 -0
  258. mapproxy/test/system/fixture/demo.yaml +135 -0
  259. mapproxy/test/system/fixture/dimension.yaml +59 -0
  260. mapproxy/test/system/fixture/disable_storage.yaml +25 -0
  261. mapproxy/test/system/fixture/empty_ogrdata.geojson +1 -0
  262. mapproxy/test/system/fixture/formats.yaml +72 -0
  263. mapproxy/test/system/fixture/inspire.yaml +101 -0
  264. mapproxy/test/system/fixture/inspire_full.yaml +124 -0
  265. mapproxy/test/system/fixture/kml_layer.yaml +66 -0
  266. mapproxy/test/system/fixture/layer.yaml +260 -0
  267. mapproxy/test/system/fixture/layergroups.yaml +57 -0
  268. mapproxy/test/system/fixture/layergroups_root.yaml +106 -0
  269. mapproxy/test/system/fixture/legendgraphic.yaml +93 -0
  270. mapproxy/test/system/fixture/mapnik_source.yaml +66 -0
  271. mapproxy/test/system/fixture/mapproxy_export.yaml +12 -0
  272. mapproxy/test/system/fixture/mapserver.yaml +23 -0
  273. mapproxy/test/system/fixture/minimal_cgi.py +16 -0
  274. mapproxy/test/system/fixture/mixed_mode.yaml +49 -0
  275. mapproxy/test/system/fixture/multi_cache_layers.yaml +100 -0
  276. mapproxy/test/system/fixture/multiapp1.yaml +20 -0
  277. mapproxy/test/system/fixture/multiapp2.yaml +19 -0
  278. mapproxy/test/system/fixture/renderd_client.yaml +55 -0
  279. mapproxy/test/system/fixture/scalehints.yaml +70 -0
  280. mapproxy/test/system/fixture/seed.yaml +94 -0
  281. mapproxy/test/system/fixture/seed_mapproxy.yaml +39 -0
  282. mapproxy/test/system/fixture/seed_old.yaml +12 -0
  283. mapproxy/test/system/fixture/seed_timeouts.yaml +12 -0
  284. mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +27 -0
  285. mapproxy/test/system/fixture/seedonly.yaml +51 -0
  286. mapproxy/test/system/fixture/sld.yaml +35 -0
  287. mapproxy/test/system/fixture/source_errors.yaml +84 -0
  288. mapproxy/test/system/fixture/source_errors_raise.yaml +82 -0
  289. mapproxy/test/system/fixture/tileservice_origin.yaml +26 -0
  290. mapproxy/test/system/fixture/tileservice_refresh.yaml +59 -0
  291. mapproxy/test/system/fixture/tilesource_minmax_res.yaml +22 -0
  292. mapproxy/test/system/fixture/util-conf-base-grids.yaml +5 -0
  293. mapproxy/test/system/fixture/util-conf-overwrite.yaml +13 -0
  294. mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +90 -0
  295. mapproxy/test/system/fixture/util_grids.yaml +30 -0
  296. mapproxy/test/system/fixture/util_wms_capabilities111.xml +130 -0
  297. mapproxy/test/system/fixture/util_wms_capabilities130.xml +100 -0
  298. mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +5 -0
  299. mapproxy/test/system/fixture/watermark.yaml +50 -0
  300. mapproxy/test/system/fixture/wms_srs_extent.yaml +39 -0
  301. mapproxy/test/system/fixture/wms_versions.yaml +38 -0
  302. mapproxy/test/system/fixture/wmts.yaml +134 -0
  303. mapproxy/test/system/fixture/wmts_dimensions.yaml +57 -0
  304. mapproxy/test/system/fixture/xslt_featureinfo.yaml +54 -0
  305. mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +51 -0
  306. mapproxy/test/system/test_arcgis.py +156 -0
  307. mapproxy/test/system/test_auth.py +1134 -0
  308. mapproxy/test/system/test_behind_proxy.py +75 -0
  309. mapproxy/test/system/test_bulk_meta_tiles.py +106 -0
  310. mapproxy/test/system/test_cache_azureblob.py +127 -0
  311. mapproxy/test/system/test_cache_band_merge.py +103 -0
  312. mapproxy/test/system/test_cache_geopackage.py +144 -0
  313. mapproxy/test/system/test_cache_grid_names.py +89 -0
  314. mapproxy/test/system/test_cache_mbtiles.py +85 -0
  315. mapproxy/test/system/test_cache_s3.py +115 -0
  316. mapproxy/test/system/test_cache_source.py +146 -0
  317. mapproxy/test/system/test_combined_sources.py +335 -0
  318. mapproxy/test/system/test_coverage.py +140 -0
  319. mapproxy/test/system/test_decorate_img.py +214 -0
  320. mapproxy/test/system/test_demo.py +106 -0
  321. mapproxy/test/system/test_demo_with_extra_service.py +53 -0
  322. mapproxy/test/system/test_dimensions.py +278 -0
  323. mapproxy/test/system/test_disable_storage.py +42 -0
  324. mapproxy/test/system/test_formats.py +219 -0
  325. mapproxy/test/system/test_inspire_vs.py +173 -0
  326. mapproxy/test/system/test_kml.py +262 -0
  327. mapproxy/test/system/test_layergroups.py +160 -0
  328. mapproxy/test/system/test_legendgraphic.py +308 -0
  329. mapproxy/test/system/test_mapnik.py +161 -0
  330. mapproxy/test/system/test_mapserver.py +81 -0
  331. mapproxy/test/system/test_mixed_mode_format.py +195 -0
  332. mapproxy/test/system/test_multi_cache_layers.py +167 -0
  333. mapproxy/test/system/test_multiapp.py +92 -0
  334. mapproxy/test/system/test_refresh.py +207 -0
  335. mapproxy/test/system/test_renderd_client.py +304 -0
  336. mapproxy/test/system/test_response_headers.py +54 -0
  337. mapproxy/test/system/test_scalehints.py +140 -0
  338. mapproxy/test/system/test_seed.py +422 -0
  339. mapproxy/test/system/test_seed_only.py +93 -0
  340. mapproxy/test/system/test_sld.py +120 -0
  341. mapproxy/test/system/test_source_errors.py +377 -0
  342. mapproxy/test/system/test_tilesource_minmax_res.py +54 -0
  343. mapproxy/test/system/test_tms.py +276 -0
  344. mapproxy/test/system/test_tms_origin.py +46 -0
  345. mapproxy/test/system/test_util_conf.py +304 -0
  346. mapproxy/test/system/test_util_export.py +210 -0
  347. mapproxy/test/system/test_util_grids.py +88 -0
  348. mapproxy/test/system/test_util_wms_capabilities.py +182 -0
  349. mapproxy/test/system/test_watermark.py +91 -0
  350. mapproxy/test/system/test_wms.py +1611 -0
  351. mapproxy/test/system/test_wms_srs_extent.py +165 -0
  352. mapproxy/test/system/test_wms_version.py +85 -0
  353. mapproxy/test/system/test_wmsc.py +116 -0
  354. mapproxy/test/system/test_wmts.py +334 -0
  355. mapproxy/test/system/test_wmts_dimensions.py +206 -0
  356. mapproxy/test/system/test_wmts_restful.py +198 -0
  357. mapproxy/test/system/test_xslt_featureinfo.py +425 -0
  358. mapproxy/test/test_http_helper.py +219 -0
  359. mapproxy/test/unit/__init__.py +0 -0
  360. mapproxy/test/unit/epsg +2 -0
  361. mapproxy/test/unit/polygons/polygons.dbf +0 -0
  362. mapproxy/test/unit/polygons/polygons.shp +0 -0
  363. mapproxy/test/unit/polygons/polygons.shx +0 -0
  364. mapproxy/test/unit/test_async.py +245 -0
  365. mapproxy/test/unit/test_auth.py +419 -0
  366. mapproxy/test/unit/test_cache.py +1193 -0
  367. mapproxy/test/unit/test_cache_azureblob.py +94 -0
  368. mapproxy/test/unit/test_cache_compact.py +319 -0
  369. mapproxy/test/unit/test_cache_couchdb.py +114 -0
  370. mapproxy/test/unit/test_cache_geopackage.py +221 -0
  371. mapproxy/test/unit/test_cache_redis.py +67 -0
  372. mapproxy/test/unit/test_cache_riak.py +76 -0
  373. mapproxy/test/unit/test_cache_s3.py +84 -0
  374. mapproxy/test/unit/test_cache_tile.py +427 -0
  375. mapproxy/test/unit/test_client.py +479 -0
  376. mapproxy/test/unit/test_client_arcgis.py +73 -0
  377. mapproxy/test/unit/test_client_cgi.py +136 -0
  378. mapproxy/test/unit/test_collections.py +116 -0
  379. mapproxy/test/unit/test_concat_legends.py +37 -0
  380. mapproxy/test/unit/test_conf_loader.py +1061 -0
  381. mapproxy/test/unit/test_conf_validator.py +416 -0
  382. mapproxy/test/unit/test_config.py +117 -0
  383. mapproxy/test/unit/test_decorate_img.py +185 -0
  384. mapproxy/test/unit/test_exceptions.py +258 -0
  385. mapproxy/test/unit/test_featureinfo.py +291 -0
  386. mapproxy/test/unit/test_file_lock_load.py +49 -0
  387. mapproxy/test/unit/test_geom.py +503 -0
  388. mapproxy/test/unit/test_grid.py +1258 -0
  389. mapproxy/test/unit/test_image.py +1053 -0
  390. mapproxy/test/unit/test_image_mask.py +181 -0
  391. mapproxy/test/unit/test_image_messages.py +197 -0
  392. mapproxy/test/unit/test_image_options.py +160 -0
  393. mapproxy/test/unit/test_isodate.py +122 -0
  394. mapproxy/test/unit/test_multiapp.py +163 -0
  395. mapproxy/test/unit/test_ogr_reader.py +50 -0
  396. mapproxy/test/unit/test_request.py +745 -0
  397. mapproxy/test/unit/test_request_wmts.py +178 -0
  398. mapproxy/test/unit/test_response.py +79 -0
  399. mapproxy/test/unit/test_seed.py +365 -0
  400. mapproxy/test/unit/test_seed_cachelock.py +90 -0
  401. mapproxy/test/unit/test_srs.py +215 -0
  402. mapproxy/test/unit/test_tiled_source.py +122 -0
  403. mapproxy/test/unit/test_tilefilter.py +31 -0
  404. mapproxy/test/unit/test_times.py +25 -0
  405. mapproxy/test/unit/test_timeutils.py +50 -0
  406. mapproxy/test/unit/test_util_conf_utils.py +75 -0
  407. mapproxy/test/unit/test_utils.py +476 -0
  408. mapproxy/test/unit/test_wms_capabilities.py +44 -0
  409. mapproxy/test/unit/test_wms_layer.py +113 -0
  410. mapproxy/test/unit/test_yaml.py +69 -0
  411. mapproxy/tilefilter.py +59 -0
  412. mapproxy/util/__init__.py +0 -0
  413. mapproxy/util/async_.py +227 -0
  414. mapproxy/util/collections.py +132 -0
  415. mapproxy/util/coverage.py +329 -0
  416. mapproxy/util/escape.py +10 -0
  417. mapproxy/util/ext/__init__.py +14 -0
  418. mapproxy/util/ext/dictspec/__init__.py +1 -0
  419. mapproxy/util/ext/dictspec/spec.py +124 -0
  420. mapproxy/util/ext/dictspec/test/__init__.py +0 -0
  421. mapproxy/util/ext/dictspec/test/test_validator.py +274 -0
  422. mapproxy/util/ext/dictspec/validator.py +189 -0
  423. mapproxy/util/ext/local.py +196 -0
  424. mapproxy/util/ext/lockfile.py +138 -0
  425. mapproxy/util/ext/odict.py +330 -0
  426. mapproxy/util/ext/serving.py +508 -0
  427. mapproxy/util/ext/tempita/__init__.py +1174 -0
  428. mapproxy/util/ext/tempita/_looper.py +163 -0
  429. mapproxy/util/ext/tempita/compat3.py +46 -0
  430. mapproxy/util/ext/wmsparse/__init__.py +3 -0
  431. mapproxy/util/ext/wmsparse/duration.py +597 -0
  432. mapproxy/util/ext/wmsparse/parse.py +305 -0
  433. mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
  434. mapproxy/util/ext/wmsparse/test/test_parse.py +162 -0
  435. mapproxy/util/ext/wmsparse/test/test_util.py +23 -0
  436. mapproxy/util/ext/wmsparse/test/wms-large-111.xml +2114 -0
  437. mapproxy/util/ext/wmsparse/test/wms-omniscale-111.xml +90 -0
  438. mapproxy/util/ext/wmsparse/test/wms-omniscale-130.xml +120 -0
  439. mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +386 -0
  440. mapproxy/util/ext/wmsparse/util.py +187 -0
  441. mapproxy/util/fs.py +156 -0
  442. mapproxy/util/geom.py +295 -0
  443. mapproxy/util/lib.py +115 -0
  444. mapproxy/util/lock.py +163 -0
  445. mapproxy/util/ogr.py +231 -0
  446. mapproxy/util/py.py +81 -0
  447. mapproxy/util/times.py +75 -0
  448. mapproxy/util/yaml.py +56 -0
  449. mapproxy/version.py +31 -0
  450. mapproxy/wsgiapp.py +164 -0
  451. mapproxy-1.16.1.dist-info/METADATA +151 -0
  452. mapproxy-1.16.1.dist-info/RECORD +458 -0
  453. mapproxy-1.16.1.dist-info/WHEEL +5 -0
  454. mapproxy-1.16.1.dist-info/entry_points.txt +3 -0
  455. mapproxy-1.16.1.dist-info/licenses/AUTHORS.txt +33 -0
  456. mapproxy-1.16.1.dist-info/licenses/COPYING.txt +60 -0
  457. mapproxy-1.16.1.dist-info/licenses/LICENSE.txt +202 -0
  458. mapproxy-1.16.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,260 @@
1
+ <?xml version='1.0' encoding="UTF-8" standalone="no" ?>
2
+ <!-- The DTD (Document Type Definition) given here must correspond to the version number declared in the WMT_MS_Capabilities element below. -->
3
+ <!DOCTYPE WMT_MS_Capabilities SYSTEM
4
+ "http://www.digitalearth.gov/wmt/xml/capabilities_1_0_7.dtd"
5
+ [
6
+
7
+ <!-- Output formats known to this server are defined here
8
+ if necessary (only if a format not already listed in the WMT
9
+ Capabilities DTD is needed). To define a new format, place
10
+ an entity definition for KnownFormats like the one below in
11
+ the DOCTYPE declaration of your Capabilities XML, listing at
12
+ minimum all of the formats you support and separating each
13
+ by logical-OR (|) characters. Then, define a new element
14
+ for any formats not predefined by WMT. For example, in the
15
+ following list "SGI" is a server-specific format, while all
16
+ the others are known WMT-wide. Thus, SGI is included in the
17
+ KnownFormats list and a new empty element <SGI/> is
18
+ defined. -->
19
+ <!ENTITY % KnownFormats " SGI | GIF | JPEG | PNG | WebCGM | SVG | GML.1
20
+ | WMS_XML | MIME | INIMAGE | PPM | BLANK " >
21
+ <!ELEMENT SGI EMPTY> <!-- Silicon Graphics RGB Format -->
22
+
23
+ <!-- other vendor-specific elements defined here -->
24
+ <!ELEMENT VendorSpecificCapabilities EMPTY>
25
+
26
+ ]> <!-- end of DOCTYPE declaration -->
27
+
28
+ <!-- The version number listed in the WMT_MS_Capabilities element here must correspond to the DTD declared above. See the WMT specification document for how to respond when a client requests a version number not implemented by the server. -->
29
+ <WMT_MS_Capabilities version="1.0.7" updateSequence="0">
30
+ <!-- Service Metadata -->
31
+ <Service>
32
+ <!-- The WMT-defined name for this type of service -->
33
+ <Name>GetMap</Name>
34
+ <!-- Human-readable title for pick lists -->
35
+ <Title>Acme Corp. Map Server</Title>
36
+ <!-- Narrative description providing additional information -->
37
+ <Abstract>WMT Map Server maintained by Acme Corporation. Contact: webmaster@wmt.acme.com. High-quality maps showing roadrunner nests and possible ambush locations.</Abstract>
38
+ <KeywordList>
39
+ <Keyword>bird</Keyword>
40
+ <Keyword>roadrunner</Keyword>
41
+ <Keyword>ambush</Keyword>
42
+ </KeywordList>
43
+ <!-- Top-level web address of service or service provider. See also OnlineResource
44
+ elements under <DCPType>. -->
45
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
46
+ xlink:href="http://hostname/" />
47
+ <!-- Contact information -->
48
+ <ContactInformation>
49
+ <ContactPersonPrimary>
50
+ <ContactPerson>Jeff deLaBeaujardiere</ContactPerson>
51
+ <ContactOrganization>NASA</ContactOrganization>
52
+ </ContactPersonPrimary>
53
+ <ContactPosition>Computer Scientist</ContactPosition>
54
+ <ContactAddress>
55
+ <AddressType>postal</AddressType>
56
+ <Address>NASA Goddard Space Flight Center, Code 933</Address>
57
+ <City>Greenbelt</City>
58
+ <StateOrProvince>MD</StateOrProvince>
59
+ <PostCode>20771</PostCode>
60
+ <Country>USA</Country>
61
+ </ContactAddress>
62
+ <ContactVoiceTelephone>+1 301 286-1569</ContactVoiceTelephone>
63
+ <ContactFacsimileTelephone>+1 301 286-1777</ContactFacsimileTelephone>
64
+ <ContactElectronicMailAddress>delabeau@iniki.gsfc.nasa.gov</ContactElectronicMailAddress>
65
+ </ContactInformation>
66
+ <!-- Fees or access constraints imposed. -->
67
+ <Fees>none</Fees>
68
+ <AccessConstraints>none</AccessConstraints>
69
+ </Service>
70
+ <Capability>
71
+ <Request>
72
+ <Map>
73
+ <Format>
74
+ <SGI />
75
+ <GIF />
76
+ <JPEG />
77
+ <PNG />
78
+ <GML.1 />
79
+ </Format>
80
+ <DCPType>
81
+ <HTTP>
82
+ <Get>
83
+ <!-- The URL here for invoking GetMap using HTTP GET includes
84
+ only the prefix before the '?' and the query string. Clients are
85
+ expected to append '?WMTVER=nnn&request=map&etc' as described in
86
+ the WMS specification. -->
87
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
88
+ xlink:href="http://hostname:port/path" />
89
+ </Get>
90
+ </HTTP>
91
+ </DCPType>
92
+ </Map>
93
+ <DescribeLayer>
94
+ <Format>
95
+ <!-- what is a valid format? -->
96
+ <GML.1 />
97
+ </Format>
98
+ <DCPType>
99
+ <HTTP>
100
+ <Get>
101
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
102
+ xlink:href="http://hostname:port/path" />
103
+ </Get>
104
+ </HTTP>
105
+ </DCPType>
106
+ </DescribeLayer>
107
+ <Capabilities>
108
+ <Format>
109
+ <WMS_XML />
110
+ </Format>
111
+ <DCPType>
112
+ <HTTP>
113
+ <Get>
114
+ <!-- The URL here for invoking GetCapabilities using HTTP GET
115
+ includes only the prefix before the '?' and the query string.
116
+ Clients are expected to append '?WMTVER=nnn&request=capabilities'
117
+ as described in the WMS specification. -->
118
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
119
+ xlink:href="http://hostname:port/path" />
120
+ </Get>
121
+ <Post>
122
+ <!-- The URL here for invoking GetCapabilities using HTTP POST
123
+ includes the complete address to which a query would be sent in
124
+ XML format. Not all Map Servers support POST. -->
125
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
126
+ xlink:href="http://hostname:port/path" />
127
+ </Post>
128
+ </HTTP>
129
+ </DCPType>
130
+ </Capabilities>
131
+ <FeatureInfo>
132
+ <Format>
133
+ <MIME />
134
+ <GML.1 />
135
+ </Format>
136
+ <DCPType>
137
+ <HTTP>
138
+ <Get>
139
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
140
+ xlink:href="http://hostname:port/path" />
141
+ </Get>
142
+ </HTTP>
143
+ </DCPType>
144
+ </FeatureInfo>
145
+ </Request>
146
+ <Exception>
147
+ <Format>
148
+ <BLANK />
149
+ <WMS_XML />
150
+ </Format>
151
+ </Exception>
152
+ <!-- Any text or markup is allowed here, as required to describe
153
+ vendor-specific capabilities. Please define elements and attributes
154
+ in the DOCTYPE declaration at the start of the document. -->
155
+ <!-- This example is empty because no VSPs were defined in preamble -->
156
+ <VendorSpecificCapabilities />
157
+ <UserDefinedSymbolization SupportSLD="1" UserLayer="1" UserStyle="1"
158
+ RemoteWFS="1" />
159
+ <Layer>
160
+ <Title>Acme Corp. Map Server</Title>
161
+ <SRS>EPSG:4326</SRS> <!-- all layers are available in at least this SRS -->
162
+ <Layer>
163
+ <!-- This parent layer has a Name and can therefore be requested from a Map Server, yielding a map of all subsidiary layers. -->
164
+ <Name>ROADS_RIVERS</Name>
165
+ <Title>Roads and Rivers</Title>
166
+ <!-- The following characteristics are inherited by subsidiary layers. -->
167
+ <SRS>EPSG:26986</SRS> <!-- An additional SRS for this layer -->
168
+ <LatLonBoundingBox minx="-71.634696" miny="41.754149" maxx="-70.789798" maxy="42.908459"/>
169
+ <BoundingBox SRS="EPSG:26986" minx="189000" miny="834000" maxx="285000" maxy="962000"/>
170
+ <Attribution>
171
+ <Title>State College University</Title>
172
+ <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
173
+ xlink:href="http://www.university.edu/" />
174
+ <LogoURL width="100" height="100">http://www.university.edu/icons/logo.gif</LogoURL>
175
+ </Attribution>
176
+ <FeatureListURL format="GML.1">http://www.university.edu/data/roads_rivers.gml</FeatureListURL>
177
+ <Style>
178
+ <Name>USGS</Name>
179
+ <Title>USGS Topo Map Style</Title>
180
+ <Abstract>Features are shown in a style like that used in USGS topographic maps.</Abstract>
181
+ <!-- A picture of a legend for a Layer in this Style -->
182
+ <LegendURL format="GIF" width="72" height="72">http://www.university.edu/legends/usgs.gif</LegendURL>
183
+ <!-- An XML (GML) encoding of the legend for GML-enabled clients -->
184
+ <LegendURL format="GML.1">http://www.university.edu/legends/usgs.gml</LegendURL>
185
+ <!-- An XSL stylesheet for rendering this layer in this style when requested in GML format -->
186
+ <StyleSheetURL format="XSL">http://www.university.edu/stylesheets/usgs.xsl</StyleSheetURL>
187
+ </Style>
188
+ <ScaleHint min="4000" max="35000"></ScaleHint>
189
+ <Layer queryable="1">
190
+ <Name>ROADS_1M</Name>
191
+ <Title>Roads at 1:1M scale</Title>
192
+ <Abstract>Roads at a scale of 1 to 1 million.</Abstract>
193
+ <KeywordList>
194
+ <Keyword>road</Keyword>
195
+ <Keyword>transportation</Keyword>
196
+ <Keyword>atlas</Keyword>
197
+ </KeywordList>
198
+ <!-- Metadata specific to this particular layer. The same FGDC metadata is offered in two formats. -->
199
+ <MetadataURL type="FGDC" format="TXT">http://www.university.edu/fgdc/clearinghouse/metadata/roads.txt</MetadataURL>
200
+ <MetadataURL type="FGDC" format="XML">http://www.university.edu/fgdc/clearinghouse/metadata/roads.xml</MetadataURL>
201
+ <!-- In addition to the Style specified in the parent Layer, this Layer is available in this style. -->
202
+ <Style>
203
+ <Name>ATLAS</Name>
204
+ <Title>Road atlas style</Title>
205
+ <Abstract>Roads are shown in a style like that used in a commercial road atlas.</Abstract>
206
+ <LegendURL format="GIF" width="72" height="72">http://www.university.edu/legends/atlas.gif</LegendURL>
207
+ </Style>
208
+ </Layer>
209
+ <Layer queryable="1">
210
+ <Name>RIVERS_1M</Name>
211
+ <Title>Rivers at 1:1M scale</Title>
212
+ <Abstract>Rivers at a scale of 1 to 1 million.</Abstract>
213
+ <KeywordList>
214
+ <Keyword>river</Keyword>
215
+ <Keyword>canal</Keyword>
216
+ <Keyword>waterway</Keyword>
217
+ </KeywordList>
218
+ </Layer>
219
+ </Layer>
220
+ <Layer queryable="1">
221
+ <Title>Weather Forecast Data</Title>
222
+ <SRS>EPSG:4326</SRS> <!-- harmless repetition of common SRS -->
223
+ <LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
224
+ <!-- These weather data are available daily from 1999-01-01 through
225
+ 2000-08-22. -->
226
+ <Dimension name="time" units="ISO8601" />
227
+ <Extent name="time" default="2000-08-22">1999-01-01/2000-08-22/P1D</Extent>
228
+ <Layer>
229
+ <Name>Clouds</Name>
230
+ <Title>Forecast cloud cover</Title>
231
+ </Layer>
232
+ <Layer>
233
+ <Name>Temperature</Name>
234
+ <Title>Forecast temperature</Title>
235
+ </Layer>
236
+ <Layer>
237
+ <Name>Pressure</Name>
238
+ <Title>Forecast barometric pressure</Title>
239
+ <!-- Pressure is available at several elevations.
240
+ EPSG:5030 is WGS 84 ellipsoid, units in metres.
241
+ Pressure is also available at several times.
242
+ NOTE: first list all Dimension elements, then all Extent elements. -->
243
+ <Dimension name="time" units="ISO8601" />
244
+ <Dimension name="elevation" units="EPSG:5030" />
245
+ <Extent name="time" default="2000-08-22">1999-01-01/2000-08-22/P1D</Extent>
246
+ <Extent name="elevation" default="0">0,1000,3000,5000,10000</Extent>
247
+ </Layer>
248
+ </Layer>
249
+ <!-- Example of a layer which is a static map of fixed
250
+ size which the server cannot subset or make transparent -->
251
+ <Layer opaque="1" noSubsets="1" fixedWidth="512" fixedHeight="256">
252
+ <Name>ozone_image</Name>
253
+ <Title>Global ozone distribution (1992)</Title>
254
+ <LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90" />
255
+ <Extent name="time" default="1992">1992</Extent>
256
+ </Layer>
257
+ </Layer>
258
+ </Capability>
259
+ </WMT_MS_Capabilities>
260
+
@@ -0,0 +1,273 @@
1
+ <!ELEMENT WMT_MS_Capabilities (Service, Capability) >
2
+
3
+ <!ATTLIST WMT_MS_Capabilities
4
+ version CDATA #FIXED "1.1.0"
5
+ updateSequence CDATA #IMPLIED>
6
+
7
+ <!-- Elements used in multiple places. -->
8
+
9
+ <!-- The Name is typically for machine-to-machine communication. -->
10
+ <!ELEMENT Name (#PCDATA) >
11
+
12
+ <!-- The Title is for informative display to a human. -->
13
+ <!ELEMENT Title (#PCDATA) >
14
+
15
+ <!-- The abstract is a longer narrative description of an object. -->
16
+ <!ELEMENT Abstract (#PCDATA) >
17
+
18
+ <!-- An OnlineResource is typically an HTTP URL. The URL is placed in the
19
+ xlink:href attribute. The xmlns:xlink attribute is a required XML namespace
20
+ declaration. -->
21
+ <!ELEMENT OnlineResource EMPTY>
22
+ <!ATTLIST OnlineResource
23
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
24
+ xlink:type CDATA #FIXED "simple"
25
+ xlink:href CDATA #REQUIRED >
26
+
27
+ <!-- A container for listing an available format's MIME type. -->
28
+ <!ELEMENT Format (#PCDATA) >
29
+
30
+
31
+ <!-- General service metadata. -->
32
+
33
+ <!ELEMENT Service (Name, Title, Abstract?, KeywordList?, OnlineResource,
34
+ ContactInformation?, Fees?, AccessConstraints?) >
35
+
36
+ <!-- List of keywords or keyword phrases to help catalog searching. -->
37
+ <!ELEMENT KeywordList (Keyword*) >
38
+
39
+ <!-- A single keyword or phrase. -->
40
+ <!ELEMENT Keyword (#PCDATA) >
41
+
42
+ <!-- Information about a contact person for the service. -->
43
+ <!ELEMENT ContactInformation (ContactPersonPrimary?, ContactPosition?,
44
+ ContactAddress?, ContactVoiceTelephone?,
45
+ ContactFacsimileTelephone?,
46
+ ContactElectronicMailAddress?) >
47
+
48
+ <!--The primary contact person.-->
49
+ <!ELEMENT ContactPersonPrimary (ContactPerson, ContactOrganization) >
50
+
51
+ <!--The person to contact.-->
52
+ <!ELEMENT ContactPerson (#PCDATA) >
53
+
54
+ <!--The organization supplying the service.-->
55
+ <!ELEMENT ContactOrganization (#PCDATA) >
56
+
57
+ <!--The position title for the contact person.-->
58
+ <!ELEMENT ContactPosition (#PCDATA) >
59
+
60
+ <!--The address for the contact supplying the service.-->
61
+ <!ELEMENT ContactAddress (AddressType,Address,City,StateOrProvince,PostCode,
62
+ Country) >
63
+
64
+ <!--The type of address.-->
65
+ <!ELEMENT AddressType (#PCDATA) >
66
+
67
+ <!--The street address.-->
68
+ <!ELEMENT Address (#PCDATA) >
69
+
70
+ <!--The address city.-->
71
+ <!ELEMENT City (#PCDATA) >
72
+
73
+ <!--The state or province.-->
74
+ <!ELEMENT StateOrProvince (#PCDATA) >
75
+
76
+ <!--The zip or postal code.-->
77
+ <!ELEMENT PostCode (#PCDATA) >
78
+
79
+ <!--The address country.-->
80
+ <!ELEMENT Country (#PCDATA) >
81
+
82
+ <!--Contact telephone number.-->
83
+ <!ELEMENT ContactVoiceTelephone (#PCDATA) >
84
+
85
+ <!--The contact fax number.-->
86
+ <!ELEMENT ContactFacsimileTelephone (#PCDATA) >
87
+
88
+ <!--The e-mail address for the contact.-->
89
+ <!ELEMENT ContactElectronicMailAddress (#PCDATA) >
90
+
91
+
92
+ <!-- Elements indicating what fees or access constraints are imposed. -->
93
+ <!ELEMENT Fees (#PCDATA)>
94
+ <!ELEMENT AccessConstraints (#PCDATA)>
95
+
96
+
97
+ <!-- A Capability lists available request types, how exceptions
98
+ may be reported, and whether any vendor-specific capabilities are defined. It
99
+ also includes an optional list of map layers available from this server. -->
100
+ <!ELEMENT Capability
101
+ (Request, Exception, VendorSpecificCapabilities?,
102
+ UserDefinedSymbolization?, Layer?) >
103
+
104
+ <!-- Available WMS Operations are listed in a Request element. -->
105
+ <!ELEMENT Request (GetCapabilities, GetMap,
106
+ GetFeatureInfo?, DescribeLayer?) >
107
+
108
+ <!-- For each operation offered by the server, list the available output
109
+ formats and the online resource. -->
110
+
111
+ <!ELEMENT GetCapabilities (Format+, DCPType+)>
112
+
113
+ <!ELEMENT GetMap (Format+, DCPType+)>
114
+
115
+ <!ELEMENT GetFeatureInfo (Format+, DCPType+)>
116
+
117
+ <!ELEMENT DescribeLayer (Format+, DCPType+)>
118
+
119
+ <!-- Available Distributed Computing Platforms (DCPs) are
120
+ listed here. At present, only HTTP is defined. -->
121
+ <!ELEMENT DCPType (HTTP) >
122
+
123
+ <!-- Available HTTP request methods. One or both may be supported. -->
124
+ <!ELEMENT HTTP (Get | Post)+ >
125
+
126
+ <!-- URL prefix for each HTTP request method. -->
127
+ <!ELEMENT Get (OnlineResource) >
128
+ <!ELEMENT Post (OnlineResource) >
129
+
130
+ <!-- An Exception element indicates which error-reporting formats are supported. -->
131
+ <!ELEMENT Exception (Format+)>
132
+
133
+ <!-- Optional user-defined symbolization (used only by SLD-enabled WMSes). -->
134
+ <!ELEMENT UserDefinedSymbolization EMPTY >
135
+ <!ATTLIST UserDefinedSymbolization
136
+ SupportSLD (0 | 1) "0"
137
+ UserLayer (0 | 1) "0"
138
+ UserStyle (0 | 1) "0"
139
+ RemoteWFS (0 | 1) "0" >
140
+
141
+ <!-- Nested list of zero or more map Layers offered by this server. -->
142
+ <!ELEMENT Layer ( Name?, Title, Abstract?, KeywordList?, SRS?,
143
+ LatLonBoundingBox?, BoundingBox*, Dimension*, Extent*,
144
+ Attribution?, AuthorityURL*, Identifier*, MetadataURL*, DataURL*,
145
+ FeatureListURL*, Style*, ScaleHint?, Layer* ) >
146
+
147
+ <!-- Optional attributes-->
148
+ <!ATTLIST Layer queryable (0 | 1) "0"
149
+ cascaded CDATA #IMPLIED
150
+ opaque (0 | 1) "0"
151
+ noSubsets (0 | 1) "0"
152
+ fixedWidth CDATA #IMPLIED
153
+ fixedHeight CDATA #IMPLIED >
154
+
155
+ <!-- Listing of available Spatial Reference Systems (SRS). -->
156
+ <!ELEMENT SRS (#PCDATA) >
157
+
158
+ <!-- The LatLonBoundingBox attributes indicate the edges of the enclosing
159
+ rectangle in latitude/longitude decimal degrees (as in SRS EPSG:4326 [WGS1984
160
+ lat/lon]). -->
161
+ <!ELEMENT LatLonBoundingBox EMPTY>
162
+ <!ATTLIST LatLonBoundingBox
163
+ minx CDATA #REQUIRED
164
+ miny CDATA #REQUIRED
165
+ maxx CDATA #REQUIRED
166
+ maxy CDATA #REQUIRED>
167
+
168
+ <!-- The BoundingBox attributes indicate the edges of the bounding box
169
+ in units of the specified spatial reference system. -->
170
+ <!ELEMENT BoundingBox EMPTY>
171
+ <!ATTLIST BoundingBox
172
+ SRS CDATA #REQUIRED
173
+ minx CDATA #REQUIRED
174
+ miny CDATA #REQUIRED
175
+ maxx CDATA #REQUIRED
176
+ maxy CDATA #REQUIRED
177
+ resx CDATA #IMPLIED
178
+ resy CDATA #IMPLIED>
179
+
180
+ <!-- The Dimension element declares the _existence_ of a dimension. -->
181
+ <!ELEMENT Dimension EMPTY >
182
+ <!ATTLIST Dimension
183
+ name CDATA #REQUIRED
184
+ units CDATA #REQUIRED
185
+ unitSymbol CDATA #IMPLIED>
186
+
187
+ <!-- The Extent element indicates what _values_ along a dimension are valid. -->
188
+ <!ELEMENT Extent (#PCDATA) >
189
+ <!ATTLIST Extent
190
+ name CDATA #REQUIRED
191
+ default CDATA #IMPLIED>
192
+
193
+ <!-- Attribution indicates the provider of a Layer or collection of Layers.
194
+ The provider's URL, descriptive title string, and/or logo image URL may be
195
+ supplied. Client applications may choose to display one or more of these
196
+ items. A format element indicates the MIME type of the logo image located at
197
+ LogoURL. The logo image's width and height assist client applications in
198
+ laying out space to display the logo. -->
199
+ <!ELEMENT Attribution ( Title?, OnlineResource?, LogoURL? )>
200
+ <!ELEMENT LogoURL (Format, OnlineResource) >
201
+ <!ATTLIST LogoURL
202
+ width NMTOKEN #REQUIRED
203
+ height NMTOKEN #REQUIRED>
204
+
205
+ <!-- A Map Server may use zero or more MetadataURL elements to offer detailed,
206
+ standardized metadata about the data underneath a particular layer. The type
207
+ attribute indicates the standard to which the metadata complies. Two types
208
+ are defined at present: 'TC211' = ISO TC211 19115; 'FGDC' = FGDC CSDGM. The
209
+ format element indicates how the metadata is structured. -->
210
+ <!ELEMENT MetadataURL (Format, OnlineResource) >
211
+ <!ATTLIST MetadataURL
212
+ type ( TC211 | FGDC ) #REQUIRED>
213
+
214
+ <!-- A Map Server may use zero or more Identifier elements to list ID numbers
215
+ or labels defined by a particular Authority. For example, the Global Change
216
+ Master Directory (gcmd.gsfc.nasa.gov) defines a DIF_ID label for every
217
+ dataset. The authority name and explanatory URL are defined in a separate
218
+ AuthorityURL element, which may be defined once and inherited by subsidiary
219
+ layers. Identifiers themselves are not inherited. -->
220
+
221
+ <!ELEMENT AuthorityURL (OnlineResource) >
222
+ <!ATTLIST AuthorityURL
223
+ name NMTOKEN #REQUIRED >
224
+ <!ELEMENT Identifier (#PCDATA) >
225
+ <!ATTLIST Identifier
226
+ authority CDATA #REQUIRED >
227
+
228
+ <!-- A Map Server may use DataURL to offer more information about the data
229
+ underneath a particular layer. While the semantics are not well-defined, as
230
+ long as the results of an HTTP GET request against the DataURL are properly
231
+ MIME-typed, Viewer Clients and Cascading Map Servers can make use of this. -->
232
+ <!ELEMENT DataURL (Format, OnlineResource) >
233
+
234
+ <!-- A Map Server may use FeatureListURL to point to a list of the features
235
+ represented in a Layer. -->
236
+ <!ELEMENT FeatureListURL (Format, OnlineResource) >
237
+
238
+ <!-- A Style element lists the name by which a style is requested and a
239
+ human-readable title for pick lists, optionally (and ideally) provides a
240
+ human-readable description, and optionally gives a style URL. -->
241
+ <!ELEMENT Style ( Name, Title, Abstract?,
242
+ LegendURL*, StyleSheetURL?, StyleURL? ) >
243
+
244
+ <!-- A Map Server may use zero or more LegendURL elements to provide an
245
+ image(s) of a legend relevant to each Style of a Layer. The Format element
246
+ indicates the MIME type of the legend. Width and height attributes are
247
+ provided to assist client applications in laying out space to display the
248
+ legend. -->
249
+ <!ELEMENT LegendURL (Format, OnlineResource) >
250
+ <!ATTLIST LegendURL
251
+ width NMTOKEN #REQUIRED
252
+ height NMTOKEN #REQUIRED>
253
+
254
+ <!-- StyleSheeetURL provides symbology information foreach Style of a Layer. -->
255
+ <!ELEMENT StyleSheetURL (Format, OnlineResource) >
256
+
257
+ <!-- A Map Server may use StyleURL to offer more information about the data or
258
+ symbology underlying a particular Style. While the semantics are not
259
+ well-defined, as long as the results of an HTTP GET request against the
260
+ StyleURL are properly MIME-typed, Viewer Clients and Cascading Map Servers can
261
+ make use of this. A possible use could be to allow a Map Server to provide
262
+ legend information. -->
263
+ <!ELEMENT StyleURL (Format, OnlineResource) >
264
+
265
+ <!-- Minimum and maximum scale hints for which it is appropriate to
266
+ display this layer. -->
267
+ <!ELEMENT ScaleHint EMPTY>
268
+ <!ATTLIST ScaleHint
269
+ min CDATA #REQUIRED
270
+ max CDATA #REQUIRED>
271
+
272
+
273
+