Date: 2002-01-16
Reference number of this OpenGIS® project document: OGC 01-068r3
Version: 1.1.1
Category: OpenGIS® Implementation Specification
Status: Adopted Specification
Editor: Jeff de La Beaujardiere
| Document type: | OpenGIS® Publicly Available Standard |
| Document stage: | Adopted Specification |
| Document language: | English |
WARNING: The Open GIS Consortium (OGC) releases this specification to the public without warranty. It is subject to change without notice. This specification is currently under active revision by the OGC Technical Committee. Requests for clarification and/or revision can be made by contacting the OGC at <revisions@opengis.org>. |
Copyright © 1999, 2000, 2001 BBN Technologies
Copyright © 1999, 2000, 2001 Cadcorp Ltd.
Copyright © 1999, 2000, 2001 CubeWerx Inc.
Copyright © 1999, 2000, 2001 IONIC Software s.a.
Copyright © 1999, 2000, 2001 Laser-Scan Limited
Copyright © 1999, 2000, 2001 SICAD Geomatics GmbH & Co. oHG
Copyright © 1999, 2000, 2001 Social Change Online Pty Ltd
Copyright © 1999, 2000, 2001 US Army Engineer Research and Development Center
The companies listed above have granted the Open GIS Consortium, Inc. (OGC) a nonexclusive, royalty-free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute copies of the modified version.
This document does not represent a commitment to implement any portion of this specification in any company's products.
OGC's Legal, IPR and Copyright Statements are found at http://www.opengis.org/legal/ipr.htm
NOTICE
Permission to use, copy, and distribute this document in any medium for any purpose and without fee or royalty is hereby granted, provided that you include the above list of copyright holders and the entire text of this NOTICE.
We request that authorship attribution be provided in any software, documents, or other items or products that you create pursuant to the implementation of the contents of this document, or any portion thereof.
No right to create modifications or derivatives of OGC documents is granted pursuant to this license. However, if additional requirements (as documented in the Copyright FAQ at http://www.opengis.org/legal/ipr_faq.htm) are satisfied, the right to create modifications or derivatives is sometimes granted by the OGC to individuals complying with those requirements.
THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.
RESTRICTED RIGHTS LEGEND. Use, duplication, or disclosure by government is subject to restrictions as set forth in subdivision (c)(1)(ii) of the Right in Technical Data and Computer Software Clause at DFARS 252.227.7013
OpenGIS® is a trademark or registered trademark of Open GIS Consortium, Inc. in the United States and in other countries.
Table of Contents
This document is primarily a correction and clarification of the OpenGIS Web Map Service Interface Implementation Specification version 1.1.0 [4], hereinafter "WMS 1.1.0." Substantive differences between the present specification and its predecessor are summarized in the Foreword and are called out in the text where appropriate.
Web Mapping within the OGC was first described in "WWW Mapping Framework" [5]. The first OGC consensus position of the WWW Mapping Special Interest Group, a core task force of the OGC, is described in "User Interaction with Geospatial Data" [2]. From these documents, as well as from "A Web Mapping Scenario" [7], an OGC-sponsored initiative was begun. That initiative, known as the Web Mapping Testbed (WMT), was first described in a Request For Technology (RFT) [10] and then in a Request for Quotation (RFQ) [11].
The WMT Phase I process culminated in the OpenGIS Web Map Service Interface Implementation Specification version 1.0.0 [6], hereinafter "WMS 1.0.0." That first version supported basic interoperability of simple map servers and clients, but did not fully address access to Simple Features, Coverages, data with temporal or other dimensions, and other types of geoprocessing services. Many of these elements were addressed in the follow-on Web Mapping Testbed phase 2 (WMT2) and the Geospatial Fusion Services Testbed. WMS 1.1.0 was a result of WMT2.
The OGC Web Map Service Revision Working Group submits this Implementation Specification to the OGC Technical Committee as a Revision to Web Map Service Interface Implementation Specification version 1.1.0
All questions regarding this submission should be directed to the Editor or to the WWW Mapping SIG chair:
Jeff de La Beaujardiere (Editor)
NASA Goddard Space Flight Center
Code 933
Greenbelt, MD 20771 USA
+1 301 286 1569
<delabeau@iniki.gsfc.nasa.gov>
Allan Doyle (WWW Mapping Sig Chair)
International Interfaces, Inc.
948 Great Plain Ave. 182
Needham, MA 02492 USA
+1 781 433 2695
<adoyle@intl-interfaces.com>
Additional Contributors.
Craig Bruce
Cubewerx
<csbruce@cubewerx.com>
Adrian Cuthbert
<adrian.cuthbert@bigfoot.com>
John Evans
GST, Inc./NASA GSFC
<john.evans@gsfc.nasa.gov>
George Percivall
GST, Inc./NASA GSFC
<percivall@gsfc.nasa.gov>
Arliss Whiteside
BAE Systems Mission Solutions
<Arliss.Whiteside@baesystems.com>
Date | Release | Editor | Description |
|---|---|---|---|
| 2001-12-12 | 1.1.1 | JdLB | Minor revision (OGC document #01-068r3) |
| 2001-06-21 | 1.1.0 | JdLB | Revised edition (OGC document #01-047r2) |
| 2000-04-19 | 1.0.0 | AD | First WMS Implementation Specification (OGC document #00-028) |
The OpenGIS© Abstract Specification requires the following change to accommodate this OpenGIS© standard:
- The brief description of the Web Map Service presently found in Abstract Specification Topic 12, "Service Architecture," should be augmented.
The needed material is expected to emerge in part from the Architecture thread of the OGC Web Services testbed.
Attention is drawn to the possibility that some of the elements of this part of OGC 01-068r3 may be the subject of patent rights. Open GIS Consortium Inc. shall not be held responsible for identifying any or all such patent rights.
This edition cancels and replaces the previous edition (OGC 01-047r2), which has been technically revised.
The text in Section 6.5.5.1 regarding the EPSG:4326 spatial reference system has been revised in response to concerns raised by the OGC Coordinate Transformation working group using new text provided by that group. In that Section and elsewhere the phrase “coordinate system” has been replaced with “coordinate reference system” in keeping with the usage in other OGC documents.
An optional and recommended change has been made to the use of SRS elements in Capabilities XML. WMS 1.1.0 allowed a whitespace-separated list of Spatial Reference System identifiers inside a single SRS element. This revision allows a sequence of SRS elements, each containing a single identifier, and deprecates the whitespace-separated list encoding.
The use of the suffix “Z” in ISO 8601:1988(E) time strings in UTC has been made mandatory instead of recommended. Annex B now more clearly states where it has extended ISO 8601.
Section 6.5.5.1 has been clarified regarding the order of values in the BBOX request parameter.
The former Section 7.1.5 has been renumbered 7.1.4. Section 7.1.4.4 ("Layers and Styles") has been rewritten for clarity. A new Section 7.1.4.5 ("Layer Properties") has been added. Some informative material that was previously found only the Capabilities DTD has been copied into this specification document.
Table 7, "Inheritance of Layer Properties," has been substantially revised for clarity. Text has been added, and material previously in the Comments column has been moved to appropriate subsections in Section 7.1.4.5.
For the use of the Styled Layer Descriptor specification, three new optional operations are named, but not otherwise specified, in this document (GetLegendGraphic, GetStyles, PutStyles).
The use of reserved characters in HTTP GET URLs has been clarified. This change inserts a new Section 6.2.1 and Table 1, renumbering later portions accordingly.
The implicit permission for servers to reference private copy of DTD in the Capabilities XML has been made explicit (Section 7.1.4).
Text has been added to 7.2.3.7 ("FORMAT") regarding acceptable and recommended output formats for GetMap requests. This section has also been moved to appear before the section on output width and height.
The fact that the XML format for reporting exceptions is required has been clarified. (Section 7.2.3.11).
Exception Codes defined by this document are now summarized in Appendix A.3.
Mention of the optional test layer WMT_GRATICULE (former Section 7.1.4.7) has been deleted, as it was found in practice that it was error-prone and of little use in diagnosing alignment errors in other layers.
The discussion regarding maps that span the anti-meridian and whose X axis is longitude has been made more permissive (Section 6.5.6).
The sample GetMap request using a default style has been corrected. (Introduction). An error regarding the list of styles in a GetMap request has been corrected (Section 7.2.3.4).
The role of each GetMap request parameter has been clarified in Section 7.2.3, and the name of each sub-clause therein has been shortened. The role of each GetFeatureInfo request parameter has been clarified in Section 7.3.3.
Text in Section 7.3.3.7 concerning the default value of FEATURE_COUNT which contradicted the information in Table 8 has been corrected to match Table 8, clearly making the default value be 1 rather than arbitrary.
In Section 6.4.1 ("Parameter Ordering and Case"), the text about unknown parameters in requests has been loosened (from "shall ignore" to "shall not require").
Text has been added to Section v concerning UML and the OGC Abstract Specification.
Annex E ("Automatic Projections") has been added.
Annex F ("Future Work") has been added for informational purposes.
Text has been added to Annex D concerning the OGC Conformance Testing Program. Mention of ISO 19105 has been removed from Clause 2.
The list of terms and definitions (Section 4) has been augmented, and has been reformatted according to ISO practice.
The material previously in the Introduction has been moved to the Scope clause, and the Introduction has been shortened to less than one page to conform to ISO practice.
The list of Contributors to this document has been augmented and moved to Section iii ("Submission Contact Points").
The declaration and citing of normative references has been modified to better conform to ISO practice. The list of normative references has been augmented to reflect implicit mentions in the text. The names of authors of several references have been corrected.
The sample XML (informative) in Annex A.2 has been corrected to match the Service Name required by Section 7.5.1.2.
The normative verb "must" has been replaced by "shall" to conform to ISO practice ("shall" means something is required by the standard, "must" that something is required by law).
Annex A, XML Document Type Definitions, Annex B, Formatting Dates and Times, Annex C, Handling Multi-Dimensional Data, Annex D, Conformance Tests and Annex E, Automatic Projections are normative, except that Annex A.2, Sample WMS Capabilities XML and Annex A.4, Sample Service Exception XML are informative. Annex F, Future Work is informative.
A Web Map Service (WMS) produces maps of georeferenced data. We define a "map" as a visual representation of geodata; a map is not the data itself. This specification defines three WMS operations: GetCapabilities returns service-level metadata, which is a description of the service's information content and acceptable request parameters; GetMap returns a map image whose geospatial and dimensional parameters are well-defined; GetFeatureInfo (optional) returns information about particular features shown on a map.
This specification defines a syntax for World Wide Web (WWW) Uniform Resource Locators (URLs) that invoke each of these operations. Also, an Extensible Markup Language (XML) encoding is defined for service-level metadata.
When requesting a map, a client may specify the information to be shown on the map (one or more "Layers"), possibly the "Styles" of those Layers, what portion of the Earth is to be mapped (a "Bounding Box"), the projected or geographic coordinate reference system to be used (the "Spatial Reference System," or SRS), the desired output format, the output size (Width and Height), and background transparency and color.
When two or more maps are produced with the same Bounding Box, Spatial Reference System, and output size, the results can be accurately layered to produce a composite map. The use of image formats that support transparent backgrounds allows the lower Layers to be visible. Furthermore, individual map Layers can be requested from different Servers. The WMS specification thus enables the creation of a network of distributed Map Servers from which Clients can build customized maps.
A particular WMS provider in a distributed WMS network need only be the steward of its own data collection. This stands in contrast to vertically-integrated web mapping sites that gather in one place all of the data to be made accessible by their own private interface.
This OpenGIS® Standard specifies the behavior of a service that produces georeferenced maps. This standard specifies operations to retrieve a description of the maps offered by a service instance, to retrieve a map, and to query a server about features displayed on a map.
This OpenGIS® Standard is applicable to pictorial renderings of maps in a graphical format. This standard is not applicable to retrieval of actual feature data or coverage data values.
A Web Map Service produces maps of georeferenced data. We define a "map" as a visual representation of geodata; a map is not the data itself. These maps are generally rendered in a pictorial format such as PNG, GIF or JPEG, or occasionally as vector-based graphical elements in Scalable Vector Graphics (SVG) or Web Computer Graphics Metafile (WebCGM) formats. This specification standardizes the way in which maps are requested by clients and the way that servers describe their data holdings. This document defines three operations, the first two of which are required of every WMS.
GetCapabilities (required): Obtain service-level metadata, which is a machine-readable (and human-readable) description of the WMS's information content and acceptable request parameters.
GetMap (required): Obtain a map image whose geospatial and dimensional parameters are well-defined.
GetFeatureInfo (optional): Ask for information about particular features shown on a map.
A standard web browser can ask a Web Map Service to perform these operations simply by submitting requests in the form of Uniform Resource Locators (URLs) [IETF RFC 2396]. The content of such URLs depends on which of the tasks is requested. All URLs include a specification version number and a request type parameter. In addition, when invoking GetMap a WMS Client can specify the information to be shown on the map (one or more "Layers"), possibly the "Styles" of those Layers, what portion of the Earth is to be mapped (a "Bounding Box"), the projected or geographic coordinate reference system to be used (the "Spatial Reference System," or SRS), the desired output format, the output size (Width and Height), and background transparency and color. When invoking GetFeatureInfo the Client indicates what map is being queried and which location on the map is of interest.
When two or more maps are produced with the same Bounding Box, Spatial Reference System, and output size, the results can be accurately layered to produce a composite map. The use of image formats that support transparent backgrounds (e.g., GIF or PNG) allows the lower Layers to be visible. Furthermore, individual map Layers can be requested from different Servers. The WMS GetMap operation thus enables the creation of a network of distributed Map Servers from which Clients can build customized maps.
A particular WMS provider in a distributed WMS network need only be the steward of its own data collection. This stands in contrast to vertically-integrated web mapping sites that gather in one place all of the data to be made accessible by their own private interface.
Because each WMS is independent, a WMS must be able to provide a machine-readable description of its capabilities. This "Service Metadata" enables Clients to formulate valid requests and enables the construction of searchable catalogs that can direct clients to particular WMSes.
A WMS may optionally allow the GetFeatureInfo operation. If it does, its maps are said to be "queryable," and a Client can request information about features on a map by adding to the map URL additional parameters specifying a location (as an X, Y offset from the upper left corner) and the number of nearby features about which to return information.
A "Cascading Map Server" is a WMS that behaves like a client of other WMSes and behaves like a WMS to other clients. For example, a Cascading Map Server can aggregate the contents of several distinct map servers into one service. Furthermore, a Cascading Map Server can perform additional functions such as output format conversion or coordinate transformation on behalf of other servers.
This specification applies to a Web Map Service that publishes its ability to produce maps rather than its ability to access specific data holdings. A basic WMS classifies its georeferenced information holdings into "Layers" and offers a finite number of predefined "Styles" in which to display those layers.
The behavior of a Web Map Service can be extended to allow user-defined symbolization of feature data instead of named Layers and Styles. The Styled Layer Descriptor (SLD) specification [3] describes this extension. In brief, an SLD-enabled WMS retrieves features from a Web Feature Service [8] and applies explicit styling information provided by the user in order to render a map.
An SLD WMS adds the following additional operations that are not available on a basic WMS:
DescribeLayer
GetLegendGraphic
GetStyles
PutStyles
The OGC Web Services (OWS) suite includes three principal types of georeferenced information access services: Web Map Server (WMS), Web Coverage Server (WCS), and Web Feature Server (WFS). In addition, there are services such as GeoParser and GeoCoder that return spatially referenced results. Figure 1 is an architecture diagram showing conceptually how some of the OGC Web Services are related, and naming some (not all) of the operations they define.
We conclude this Introduction with some illustrative URLs and their resulting maps.
Example 1. One Server, One Layer, Default Style
The following hypothetical URL requests the US National Oceanographic and Atmospheric Administration hurricane image shown in Figure 2:
http://a-map-co.com/mapserver.cgi?VERSION=1.1.0&REQUEST=GetMap& SRS=EPSG:4326&BBOX=-97.105,24.913,78.794,36.358& WIDTH=560&HEIGHT=350&LAYERS=AVHRR-09-27&STYLES=& FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE& EXCEPTIONS=application/vnd.ogc.se_inimage
Example 2. One Server, Three Layers, Named Styles
The following hypothetical URL requests three layers--built-up areas, coastlines, and political boundaries --to produce the map shown in Figure 3:
http://b-maps.com/map.cgi?VERSION=1.1.0&REQUEST=GetMap& SRS=EPSG:4326&BBOX=-97.105,24.913,78.794,36.358& WIDTH=560&HEIGHT=350&LAYERS=BUILTUPA_1M,COASTL_1M,POLBNDL_1M& STYLES=0XFF8080,0X101040,BLACK&FORMAT=image/png&BGCOLOR=0xFFFFFF& TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage
Notice that in both of these URLs the spatial information is identical:
SRS=EPSG:4326&BBOX=-97.105,24.913,78.794,36.358& WIDTH=560&HEIGHT=350.
The second map, for which a transparent background was requested (TRANSPARENT=TRUE), can therefore be precisely overlaid on the first.
Conformance with this specification shall be checked using all the relevant tests specified in Annex D, Conformance Tests.
The following normative documents contain provisions that, through reference in this text, constitute provisions of this specification. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. However, parties to agreements based on this specification are encouraged to investigate the possibility of applying the most recent editions of the normative documents indicated below. For undated references, the latest edition of the normative document referred to applies.
CGI, The Common Gateway Interface, National Center for Supercomputing Applications, http://hoohoo.ncsa.uiuc.edu/cgi/
EPSG, European Petroleum Survey Group Geodesy Parameters, , , , and , eds., http://www.epsg.org/
FGDC-STD-001-1988, Content Standard for Digital Geospatial Metadata (version 2), , http://www.fgdc.org/metadata/contstan.html
IETF RFC 2045 (November 1996), Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, and , eds, http://www.ietf.org/rfc/rfc2045.txt
IETF RFC 2119 (March 1997), Key words for use in RFCs to Indicate Requirement Levels, , ed., ftp://ftp.isi.edu/in-notes/rfc2119.txt
IETF RFC 2616 (June 1999), Hypertext Transfer Protocol - HTTP/1.1, , , , , and , eds. http://www.ietf.org/rfc/rfc2616.txt
IETF RFC 2396 (August 1998), Uniform Resource Identifiers (URI): Generic Syntax, , and , eds., http://www.ietf.org/rfc/rfc2396.txt
ISO 8601:1988(E), Data elements and interchange formats - Information interchange - Representation of dates and times
OGC AS 12 (September 2001), The OpenGIS Abstract Specification Topic 12: OpenGIS Service Architecture (Version 4.2), , ed., http://www.opengis.org/techno/specs.htm
UCUM, Unified Code for Units of Measure, and , eds., http://aurora.rg.iupui.edu/~schadow/untis/UCUM/
XML 1.0 (October 2000), Extensible Markup Language (XML) 1.0 (2nd edition), World Wide Web Consortium Recommendation, , , and , eds., http://www.w3.org/TR/2000/REC-xml
For the purposes of this document, the following terms and definitions apply.
specification of a transformation or query that an object may be called to execute [OGC AS 12]
named set of operations that characterize the behavior of an entity [OGC AS 12]
distinct part of the functionality that is provided by an entity through interfaces [OGC AS 12]
In the sections labeled as normative, the key words "required", "shall", "shall not", "should", "should not", "recommended", "may", and "optional" in this document are to be interpreted as described in [IETF RFC 2119].
The verb "deprecate" provides notice that the referenced portion of the specification is being retained for backwards compatibility with earlier versions but may be removed from a future version of the specification without further notice.
CGI | Common Gateway Interface |
DCP | Distributed Computing Platform |
DTD | Document Type Definition |
EPSG | European Petroleum Survey Group |
GIF | Graphics Interchange Format |
GIS | Geographic Information System |
GML | Geography Markup Language |
HTTP | Hypertext Transfer Protocol |
IETF | Internet Engineering Task Force |
JPEG | Joint Photographic Experts Group |
MIME | Multipurpose Internet Mail Extensions |
OGC | Open GIS Consortium |
OWS | OGC Web Service |
PNG | Portable Network Graphics |
RFC | Request for Comments |
SLD | Styled Layer Descriptor |
SVG | Scalable Vector Graphics |
URL | Uniform Resource Locator |
WebCGM | Web Computer Graphics Metafile |
WCS | Web Coverage Service |
WFS | Web Feature Service |
WMS | Web Map Service |
XML | Extensible Markup Language |
This clause specifies aspects of Web Map Server behavior (more generally, of OGC Web Service behavior) that are independent of particular operations or are common to several operations.
The published specification version number contains three positive integers, separated by decimal points, in the form "x.y.z". The numbers "y" and "z" will never exceed 99. Each OWS specification is numbered independently.
A particular specification's version number shall be changed with each revision. The number shall increase monotonically and shall comprise no more than three integers separated by decimal points, with the first integer being the most significant. There may be gaps in the numerical sequence. Some numbers may denote experimental or interim versions. Service instances and their clients need not support all defined versions, but shall obey the negotiation rules below.
The version number appears in at least two places: in the Capabilities XML describing a service, and in the parameter list of client requests to that service. The version number used in a client's request of a particular service instance shall be equal to a version number which that instance has declared it supports (except during negotiation as described below). A service instance may support several versions, whose values clients may discover according to the negotiation rules.
An OWS Client may negotiate with a Service Instance to determine a mutually agreeable specification version. Negotiation is performed using the GetCapabilities operation (described in Section 7.1, GetCapabilities) according to the following rules.
All Capabilities XML shall include a protocol version number. In response to a GetCapabilities request containing a version number, an OGC Web Service shall either respond with output that conforms to that version of the specification, or negotiate a mutually agreeable version if the requested version is not implemented on the server. If no version number is specified in the request, the server shall respond with the highest version it understands and label the response accordingly.
Version number negotiation occurs as follows:
1) If the server implements the requested version number, the server shall send that version.
2a) If a version unknown to the server is requested, the server shall send the highest version less than the requested version.
2b) If the client request is for a version lower than any of those known to the server, then the server shall send the lowest version it knows.
3a) If the client does not understand the new version number sent by the server, it may either cease communicating with the server or send a new request with a new version number that the client does understand but which is less than that sent by the server (if the server had responded with a lower version).
3b) If the server had responded with a higher version (because the request was for a version lower than any known to the server), and the client does not understand the proposed higher version, then the client may send a new request with a version number higher than that sent by the server.
The process is repeated until a mutually understood version is reached, or until the client determines that it will not or cannot communicate with that particular server.
At present, the only distributed computing platform (DCP) explicitly supported by OGC Web Services is the World Wide Web itself, or more specifically Internet hosts implementing the Hypertext Transfer Protocol (HTTP) [IETF RFC 2616]. Thus the Online Resource of each operation supported by a service instance is an HTTP Uniform Resource Locator (URL). The URL may be different for each operation, or the same, at the discretion of the service provider. Each URL shall conform to the description in [IETF RFC 2616] (Section 3.2.2 "HTTP URL") but is otherwise implementation-dependent; only the parameters comprising the service request itself are mandated by the OGC Web Services specifications.
HTTP supports two request methods: GET and POST. One or both of these methods may be defined for a particular OGC Web Service type and offered by a service instance, and the use of the Online Resource URL differs in each case. The basic WMS specification only defines HTTP GET for invoking operations. (A Styled Layer Descriptor WMS [3] defines HTTP POST for some operations.)
The URL specification [IETF RFC 2396] reserves particular characters as significant and requires that these be escaped when they might conflict with their defined usage. The present WMS specification explicitly reserves several of these characters for use in the query portion of HTTP GET requests. When the characters "?", "&", "=", "/", ":" and "," appear in one of the roles defined in Table 1, they are to appear literally in the URL. When such characters appear elsewhere (for example, in the value of a parameter), they are to be encoded as defined in [IETF RFC 2396].
Table 1. Reserved Characters in HTTP GET Query
Character | Reserved Usage |
|---|---|
? | Separator indicating start of query string. |
& | Separator between parameters in query string. |
= | Separator between name and value of parameter. |
/ | Separator between MIME type and subtype in format parameter value. |
: | Separator between Namespace and Identifier in SRS parameter value. |
, | Separator between individual values in list-oriented parameters. |
An Online Resource URL intended for HTTP GET requests is in fact only a URL prefix to which additional parameters are appended in order to construct a valid Operation request. A URL prefix is defined as an opaque string including the protocol, hostname, optional port number, path, a question mark '?', and, optionally, one or more server-specific parameters ending in an ampersand '&'. The prefix uniquely identifies the particular service instance. A client appends the necessary request parameters as name/value pairs in the form "name=value&". The resulting URL shall be valid according to the HTTP Common Gateway Interface standard [CGI], which mandates the presence of '?' before the sequence of query parameters and the '&' between each parameter.
The URL prefix shall end in either a '?' (in the absence of additional server-specific parameters) or a '&'. In practice, however, Clients should be prepared to add a necessary trailing '?' or '&' before appending the Operation parameters defined in this specification in order to construct a valid request URL.
Table 2 summarizes the components of an operation request URL.
Table 2. A general OGC Web Service Request
URL Component | Description |
|---|---|
http://host[:port]/path?{name[=value]&} | URL prefix of service operation. [ ] denotes 0 or 1 occurrence of an optional part; {} denotes 0 or more occurrences. The prefix is entirely at the discretion of the service provider. |
name=value& | One or more standard request parameter name/value pairs defined by an OGC Web Service. The actual list of required and optional parameters is mandated for each operation by the appropriate OWS specification. |
An Online Resource URL intended for HTTP POST requests is a complete and valid URL to which Clients transmit request parameters in the body of the POST request. A WMS shall not require additional parameters to be appended to the URL in order to construct a valid target for the Operation request.
Operation requests using HTTP POST have not yet been defined for the basic Web Map Service.
Upon receiving a valid request, the service shall send a response corresponding exactly to the request as detailed in the appropriate specification. Only in the case of Version Negotiation (described above) may the server offer a differing result.
Upon receiving an invalid request, the service shall issue a Service Exception as described in Section 6.7, Service Exceptions.
Note: As a practical matter, in the WWW environment a client should be prepared to receive either a valid result, or nothing, or any other result. This is because the client may itself have formed a non-conforming request that inadvertently triggered a reply by something other than an OGC Web Service, because the Service itself may be non-conforming, etc.
Response objects shall be accompanied by the appropriate Multipurpose Internet Mail Extensions (MIME) type [IETF RFC 2045] for that object. Allowable types for operation responses and service exceptions are discussed below.
Response objects should be accompanied by other HTTP entity headers as appropriate and to the extent possible. In particular, the Expires and Last-Modified headers provide important information for caching; Content-Length may be used by clients to know when data transmission is complete and to efficiently allocate space for results, and Content-Encoding or Content-Transfer-Encoding may be necessary for proper interpretation of the results.
Parameter names shall not be case sensitive, but parameter values shall be case sensitive. In this document, parameter names are typically shown in uppercase for typographical clarity, not as a requirement.
Parameters in a request may be specified in any order.
An OGC Web Service shall be prepared to encounter parameters that are not part of this specification. In terms of producing results per this specification, an OGC Web Service shall not require such parameters.
Parameters consisting of lists (for example, the LAYERS and STYLES in WMS GetMap) shall use the comma (",") as the separator between items in the list. Additional white space shall not be used to delimit list items. If a parameter value includes a space or comma, it shall be escaped using the URL encoding rules [IETF RFC 2396].
Individual entries in a list may be empty, as represented by two successive commas (",,").
The VERSION parameter specifies the protocol version number. The format of the version number, and version negotiation, are described in Section 6.1, Version Numbering and Negotiation.
The REQUEST parameter indicates which service operation is being invoked. The value shall be the name of one of the operations offered by the OGC Web Service Instance.
The FORMAT parameter specifies the output format of the response to an operation.
An OGC Web Service may offer only a subset of the formats known for that type of operation, but the server shall advertise in its Capabilities XML those formats it does support and shall accept requests for any format it advertises. A Service Instance may optionally offer a new format not previously offered by other instances, with the recognition that clients are not required to accept or process an unknown format. If a request contains a Format not offered by a particular server, the server shall throw a Service Exception (with code "InvalidFormat").
A Client may accept only a subset of the formats known for that type of operation. If a Client and Service do not support any mutually agreeable formats, the Client may, at its discretion, cease communicating with that service, or search for an intermediary service provider that performs format conversion, or allow the user to choose other disposition methods (e.g., saving to local storage or passing to helper application).
Formats are expressed in both Capabilities XML and in operation requests using MIME types. Each Operation has a distinct list of supported formats. Some formats may be offered by several operations, and are then duplicated as needed in each list.
Generally, OGC Web Service MIME types are chosen from among those in common use on the Internet [9]. However, additional OGC-specific types have been adopted to distinguish among different types of XML-formatted content (the generic XML MIME types being text/xml and application/xml), as listed in Table 3.
Table 3. OGC-Specific MIME Types
MIME Type | Document Content |
|---|---|
application/vnd.ogc.wms_xml | WMS Capabilities XML |
application/vnd.ogc.gml | Geography Markup Language XML [1] |
application/vnd.ogc.se_xml | Service Exception XML |
application/vnd.ogc.se_inimage | Image overwritten with Exception message. |
application/vnd.ogc.se_blank | Blank image because Exception occurred. |
The EXCEPTIONS parameter states the format in which to report errors. See Section 6.7, Service Exceptions below.
The Spatial Reference System (SRS) is a text parameter that names a horizontal coordinate reference system code. The name includes a namespace prefix, a colon, a numeric identifier, and possibly a comma followed by additional parameters. This specification defines two namespaces, EPSG and AUTO, which are discussed below.
Note: The use of the term SRS is in keeping with WMS 1.0.0. A more modern definition uses Coordinate Reference System (CRS) when referring to spatial referencing by coordinates, and SRS when referring to spatial referencing by addresses or indexes.
OGC Web Services are not required to support all possible SRSes, but shall advertise in their Capabilities XML those projections which they do offer and shall accept requests for all advertised projections. If a request contains an SRS not offered by a particular server, the server shall throw a Service Exception (code = "InvalidSRS").
Clients are not required to support all possible SRSes. If a Client and Service do not support any mutually agreeable SRS, the Client may, at its discretion, cease communicating with that service, or search for an intermediary service provider that performs coordinate transformations, or allow the user to choose other disposition methods.
The EPSG namespace makes use of the European Petroleum Survey Group tables [EPSG], which define numeric identifiers (the EPSG "CRS code," corresponding to the field "COORD_REF_SYS_CODE" in the EPSG database) for many common projections and which associate projection or coordinate metadata (such as measurement units or central meridian) for each identifier. An SRS name in the EPSG namespace includes only the prefix and the identifier, not any additional parameters. This format is used both as the value of the SRS parameter in a service request and as the value of an <SRS> element in the Capabilities XML.
When the SRS parameter specifies a Geographic Coordinate Reference System, e.g., "EPSG:4326", the returned image is implicitly projected using a pseudo-Plate Carree projection that plots Longitude along the X-axis and Latitude along the Y-axis. The BBOX request parameter (Section 7.2.3.6, BBOX) values for such a coordinate reference system shall be specified in the order minimum longitude, minimum latitude, maximum longitude, maximum latitude. The BBOX parameter values shall use the coordinate reference system units.
Some Projected Coordinate Reference Systems, e.g., "EPSG:30800" ("RT38 2.5 gon W", used in Sweden), have axes order other than X=East, Y=North. The BBOX request parameter values for such a coordinate system shall be specified in the order minimum Easting, minimum Northing, maximum Easting, maximum Northing. The BBOX parameters shall use the coordinate reference system units.
The BBOX parameters shall be specified using decimal or floating-point notation. In particular, sexagesimal degrees shall be specified as decimal degrees.
The AUTO namespace is used for "automatic" projections; that is, for a class of projections that include an arbitrary center of projection. An SRS request parameter specifying an automatic projection includes the AUTO namespace prefix, a numeric projection identifier from the AUTO namespace, a numeric identifier from the EPSG [EPSG] namespace indicating what units are to be used for bounding boxes in that SRS, and values for the central longitude and latitude in decimal degrees:
AUTO:auto_proj_id,epsg_units_id,lon0,lat0
Valid projection identifiers are defined by this specification in Annex E, Automatic Projections.
In a request for a georeferenced map or data, the complete AUTO SRS is specified including longitude, latitude, and units. In Capabilities XML, the longitude, latitude, and units variables are omitted because they are chosen by the client in a request for an AUTO SRS.
Example .
A service instance indicates that it supports Auto Orthographic projection by including the element "<SRS>AUTO:42003</SRS>" in its Capabilities XML. A client may issue a GetMap request for a map in this projection, with bounding box in meters, centered at 100 degrees West longitude and 45 degrees North latitude, using the parameter "SRS=AUTO:42003,9001,-100,45".
A server may offer geographic information whose precise spatial reference is undefined. For example, a digitized collection of hand-drawn historical maps may represent an area of the Earth but not employ a modern coordinate system. In such case, the value "NONE" (case-insensitive) shall be used when declaring the SRS of such a collection or object. Clients should not attempt to overlay information whose SRS=none with other information.
The Bounding Box (BBOX) is a set of four comma-separated decimal, scientific notation, or integer values (if integers are provided where floating point is needed, the decimal point is assumed at the end of the number). These values specify the minimum X, minimum Y, maximum X, and maximum Y ranges, in that order, expressed in units of the SRS of the request, such that a rectangular area is defined in those units. When the SRS is a Platte Carre projection of longitude and latitude coordinates, X refers to the longitudinal axis and Y to the latitudinal axis. The four bounding box values indicate the outside edges of a rectangle, as in Figure 5: minimum X is the left edge, maximum X the right, minimum Y the bottom, and maximum Y the top. The relation of the Bounding Box to the image pixel matrix is shown in the figure: the bounding box goes around the "outside" of the pixels of the image rather than through the centers of the border pixels. In this context, individual pixels have an area.
A Bounding Box should not have zero area.
If a request contains an invalid Bounding Box (e.g., one whose minimum X is greater than or equal to the maximum X, or whose minimum Y is greater than or equal to the maximum Y) the server shall throw an exception.
If a request contains a Bounding Box whose area does not overlap at all with the BoundingBox advertised in the Capabilities XML for the requested geodata object, the server should return empty content (e.g., a blank map, empty coverage file, null feature set) for that element. Any elements that are partly or entirely contained in the Bounding Box should be returned in the appropriate format.
If the Bounding Box values are not defined for the given SRS (e.g., latitudes greater than 90 degrees in EPSG:4326), the server should return empty content for areas outside the valid range of the SRS.
In the particular case of longitude, the following behavior may apply regarding the anti-meridian at 180 degrees of longitude. There is a legitimate desire for maps that span the
anti-meridian (for example, a map centered on the Pacific Ocean). However, a strict interpretation of the previous paragraph suggests that areas beyond 180 degrees should be shown as empty content; this corresponds to the STRICT constraint below. A server may choose to relax this behavior by instead applying the LOOSE constraint below. If minx is the west-most longitude in degrees and maxx is the east-most, then:
STRICT longitude constraint (default):
-180 <= minx < maxx <= 180
LOOSE longitude constraint (optional):
-180 <= minx < maxx < minx + 360 < 540
Some geospatial information may be available at multiple times (for example, an hourly weather map). An OGC Web Service may announce available times in its Capabilities XML, and some operations include a parameter for requesting a particular time. The format of a time string is specified in Annex C, Handling Multi-Dimensional Data. Depending on the context, time values may appear as a single value, a list of values, or an interval, as specified in Annex D, Conformance Tests. When providing temporal information, Servers should declare a default value in Capabilities XML unless there is compelling reason to behave otherwise, and Servers shall respond with the default value if one has been declared and the Client request does not include a value.
Some geospatial information may be available at multiple elevations (for example, ozone concentrations at different heights in the atmosphere). An OWS may announce available elevations in its Capabilities XML, and some operations include a parameter for requesting a particular elevation. A single elevation value is an integer or real number whose units are declared by naming an EPSG datum. Depending on the context, elevation values may appear as a single value, a list of values, or an interval, as specified in Annex D, Conformance Tests. When providing elevation information, Servers should declare a default value in Capabilities XML unless there is compelling reason to behave otherwise, and Servers shall respond with the default value if one has been declared and the Client request does not include a value.
Some geospatial information may be available at other dimensions (for example, satellite images in different wavelength bands). The dimensions other than the four space-time dimensions are referred to as "sample dimensions". An OWS may announce available sample dimensions in its Capabilities XML, and some operations include a mechanism for including dimensional parameters. Each sample dimension has a Name and one or more valid values. The declaration and use of sample dimensions are specified in Annex D, Conformance Tests.
Most service requests require additional parameters (beyond REQUEST) to unambiguously state what result to construct. Each OGC Web Service specification defines the required and optional parameters for its operation(s).
Finally, the requests allow for optional vendor-specific parameters (VSPs) that will enhance the results of a request. Typically, these are used for private testing of non-standard functionality prior to possible standardization. A generic client is not required or expected to make use of these VSPs.
An OGC Web Service shall produce a valid result even if VSPs are missing or malformed (i.e., the Service shall supply a default value), or if VSPs are supplied that are not known to the Service (i.e., the Service shall ignore unknown request parameters).
An OGC Web Service may choose not to advertise some or all of its VSPs. If VSPs are included in the Capabilities XML, then they shall be defined within an internal DTD section of that XML document. (An internal DTD comprises declarations enclosed in square brackets [] within the <DOCTYPE> element of the XML [see ref. 9].) In the absence of such parameters, the internal DTD is absent.
Clients may read the internal DTD and formulate requests using any VSPs advertised therein.
Vendors should choose vendor-specific parameter names with care to avoid clashes with standard parameters.
The return value of a valid Service request shall correspond to the type requested in the FORMAT parameter. In an HTTP environment, the Content-type header of the response shall be exactly the MIME type given in the request.
Several OGC-specific MIME types have been defined in Table 3 for various XML document types (all of which would traditionally be labeled "text/xml"). To be compliant with this Specification a server shall return the appropriate OGC MIME type if defined, and the client shall be able to accept it, but it is recommended that the client also be prepared to accept the MIME type "text/xml" and deduce the specific content type through other means.
Upon receiving a request that is invalid according to the rules of the Distributed Computing Platform (DCP) in use, the service may issue an exception of a type valid in that DCP. For example: in the HTTP DCP, if the URL prefix is incorrect an HTTP 404 status code [IETF RFC 2616] is sent.
Upon receiving a request that is invalid according to the relevant OGC Web Services specification, the service shall issue a Service Exception Report as defined here and in Annex A.3, Service Exception DTD. The Report is meant to describe to the client application or its human user the reason(s) that the request is invalid.
The EXCEPTIONS parameter in a request indicates the format in which the Client wishes to be notified of Service Exceptions. The only value of the EXCEPTIONS parameter that is defined for all OGC Web Services is "application/vnd.ogc.se_xml", which means "Service Exception XML." Particular services may define other formats; this specification defines additional Exception formats for Web Map Servers in Section 7.2.3.11, EXCEPTIONS.
Note: A client should also be prepared for other returned values and types since there is a possibility that the Service instance is poorly behaved or that a request was directed at a non-compliant OGC Web Service.
Service Exception Report XML shall be valid according to the Service Exception DTD in Annex A.3, Service Exception DTD. In an HTTP environment, the MIME type of the returned XML shall be "application/vnd.ogc.se_xml". Individual error messages appear as <ServiceException> elements within the <ServiceExceptionReport>. The messages can be formatted either as chunks of plain text or, if included in a character data (CDATA) section, as XML-like text containing angle brackets ("<" and ">"), as shown in the example Service Exception Report in Annex A.4, Sample Service Exception XML.
Service Exceptions may include exception codes as indicated in Annex A.3, Service Exception DTD. Services shall not use these codes for meanings other than those specified. This specification defines several exception codes; The specific codes and semantics of allowed exceptions may be extended by other OGC Web Service implementation specifications. Clients may use these codes to automate responses to Service Exceptions.
The three operations defined for a Web Map Service are GetCapabilities, GetMap, and GetFeatureInfo. This section specifies the implementation and use of these WMS operations in the Hypertext Transfer Protocol (HTTP) Distributed Computing Platform (DCP). Future versions may apply to other DCPs.
Note: As discussed in the Introduction, an SLD-enabled WMS also offers additional operations, which are specified in reference [3].
The purpose of the GetCapabilities operation is described in the Basic Service Elements section, above. In the particular case of a Web Map Service, the response of a GetCapabilities request is general information about the service itself and specific information about the available maps.
The general form of a GetCapabilities request is defined in the Basic Service Elements section. When making this request of a WMS, which may offer other OGC Web Services as well, it is necessary to indicate that the client seeks information about the WMS in particular. Thus, the SERVICE parameter of the request shall have the value "WMS" as shown in Table 4 below.
The optional VERSION parameter, and its use in version negotiation, is specified in the Basic Service Elements section.
In WMS version 1.0.0, the name of this parameter was "WMTVER". That name is now deprecated, but for backwards compatibility and version negotiation a post-1.0.0 server shall accept either form without issuing a Service Exception. In the case that VERSION and WMTVER are both given, VERSION takes precedence.
The required SERVICE parameter indicates which of the available service types at a particular service instance is being invoked. This parameter allows the same URL prefix to offer Capabilities XML for multiple OGC Web Services.
When invoking GetCapabilities on a WMS that implements this version of the specification or a later one, the service_name value "WMS" shall be used.
When invoking GetCapabilities on a WMS that implements version 1.0.6 or earlier, the SERVICE parameter should not be used by Clients and may be ignored by Servers. An earlier server shall not issue an Exception upon encountering this parameter (or any other unknown parameter), as specified in Section 6.2.5.1.4 of WMS 1.0.0 [6] and Section 6.4.1, Parameter Ordering and Case of the present specification.
This nature of the required REQUEST parameter is specified in the Basic Service Elements section. To invoke the GetCapabilities operation, the value "GetCapabilities" shall be used. In WMS version 1.0.0, the value of this parameter was "capabilities". That value is now deprecated, but for backwards compatibility a post-1.0.0 server shall accept either form without issuing a Service Exception. When a client is initially contacting a WMS whose version it does not know the Client should be prepared to recover if REQUEST=GetCapabilities fails and may send REQUEST=capabilities.
The optional UPDATESEQUENCE parameter is for maintaining cache consistency. Its value can be an integer, a timestamp in [ISO 8601:1988(E)] format (see Appendix B), or any other number or string. The server may include an UpdateSequence value in its Capabilities XML. If present, this value should be increased when changes are made to the Capabilities (e.g., when new maps are added to the service). The server is the sole judge of lexical ordering sequence. The client may include this parameter in its GetCapabilities request. The response of the server based on the presence and relative value of UpdateSequence in the client request and the server metadata shall be according to Table 5:
Table 5. Use of UpdateSequence Parameter
Client Request | Server Metadata | Server Response |
|---|---|---|
none | any | most recent Capabilities XML |
any | none | most recent Capabilities XML |
equal | equal | Exception: code=CurrentUpdateSequence |
lower | higher | most recent Capabilities XML |
higher | lower | Exception: code=InvalidUpdateSequence |
The Basic Service Elements section specifies general rules about the GetCapabilities response.
In the particular case of a Web Map Service complying with this version of the standard, the Extensible Markup Language (XML) [XML 1.0] response shall be valid according to the XML Document Type Definition (DTD) in Annex A.1, WMS Capabilities DTD of this document. The DTD specifies the required and optional content of the response and how the content is formatted.
A server's Capabilities XML may reference an exact copy of the DTD in Annex A.1, WMS Capabilities DTD instead of the master copy at the URL stated in the Annex. The DTD copy shall be located at a fully-qualified and accessible URL to permit XML validating software to retrieve it.
A server may comply with other published or experimental versions, in which case it shall support Version Negotiation as described in the Basic Service Elements section. A DTD for version 1.0.0 was published as an annex to that version of the WMS specification. Other DTDs are archived at <http://www.digitalearth.gov/wmt/xml/>.
A number of elements have both a <Name> and a <Title>. Typically, the Name is a single word used for machine-to-machine communication while the Title is for the benefit of humans. For example, a dataset might have the Title "Maximum Atmospheric Temperature" and be requested using the Name "ATMAX".
The first part of the Capabilities XML is a <Service> element providing general metadata for the service as a whole. It shall include a Name, Title, and Online Resource URL. Optionally, Abstract, Keyword List, Contact Information, Fees, and Access Constraints may be provided. The meaning of most of these elements is defined in [ISO 19115].
The Service Name shall be "OGC:WMS" in the case of a Web Map Service.
The Service Title is at the discretion of the provider, and should be brief yet descriptive enough to identify this server in a menu with other servers.
The Abstract element allows a descriptive narrative providing more information about the enclosing object.
The OnlineResource element within the Service element can be used, for example, to point to the web site of the service provider. There are other OnlineResource elements used for the URL prefix of each supported operation.
A list of keywords or keyword phrases should be included to help catalog searching. Currently, no controlled vocabulary has been defined.
Contact Information should be included.
The reserved word "none" (case-insensitive) shall be used if there are no fees or access constraints, as follows: <Fees>none</Fees>, <AccessConstraints>none</AccessConstraints>. When constraints are imposed, no precise syntax has been defined for the place-holder elements.
The <Capability> element of the Capabilities XML names the actual operations that are supported by the service instance, the output formats offered for those operations, and the URL prefix for each operation. The XML DTD includes placeholders for Distributed Computing Platforms other than HTTP, and request methods other that HTTP GET, but currently only HTTP GET is defined for a basic WMS.
Ignorable vendor-specific elements may be included as discussed in Section 6.5.11, Vendor-Specific Parameters. An SLD WMS would also include a <UserDefinedSymbolization> element and URLs for HTTP POST requests.
The most critical part of the WMS Capabilities XML is the Layers and Styles it defines.
Each available map is advertised by a <Layer> element in the Capabilities XML. A single parent Layer encloses any number of additional layers, which may be hierarchically nested as desired. Some properties defined in a parent layer are inherited by the children it encloses. These inherited properties may be either redefined or added to by the child. Section 7.1.4.7, Inheritance of Layer Properties defines whether or how each property is inherited.
A Map Server shall include at least one <Layer> element for each map layer offered. If desired, layers may be repeated in different categories when relevant.
No controlled vocabulary has been defined, so at present Layer and Style Names, Titles and Keywords are arbitrary.
The <Layer> element can enclose child elements providing metadata about the Layer. The values of some of these elements are inherited as defined in Section 7.1.4.7, Inheritance of Layer Properties. Their meanings are defined in this Section.
A <Title> is required for all layers; it is a human-readable string for presentation in a menu. The Title is not inherited by child Layers.
If, and only if, a layer has a <Name>, then it is a map layer that can be requested by using that Name in the LAYERS parameter of a GetMap request. If the layer has a Title but no Name, then that layer is only a category title for all the layers nested within. A Map Server that advertises a Layer containing a Name element shall be able to accept that Name as the value of LAYERS argument in a GetMap request and return the corresponding map. A Client shall not attempt to request a layer that has a Title but no Name.
A server shall throw an exception (code="LayerNotDefined") if an invalid layer is requested.
A containing category itself may include a Name by which all of the nested layers can be requested at once. For example, a parent layer "Roads" may have children "Interstates" and "State Highways" and allow the user to request either child individually or both together.
The Name is not inherited by child Layers.
The optional <Abstract> and <KeywordList> elements are recommended. Abstract is a narrative description of the map layer. KeywordList contains zero or more Keywords to aid in catalog searches. The Abstract and KeywordList elements are not inherited by child Layers.
Zero or more Styles may be advertised for a Layer or collection of layers using <Style> elements, each of which shall have <Name> and <Title> elements. The style's Name is used in the Map request STYLES parameter. The Title is a human-readable string. If only a single style is available, that style is known as the "default" style and need not be advertised by the server.
A Style may contain several other elements in the Capabilities XML DTD in Annex A.1, WMS Capabilities DTD. In particular, <Abstract> provides a narrative description while <LegendURL> contains the location of an image of a map legend appropriate to the enclosing Style. A <Format> element in LegendURL indicates the MIME type of the logo image, and the attributes width and height state the size of the image in pixels.
Style declarations are inherited by child Layers. A child shall not redefine a Style with the same Name as one inherited from a parent. A child may define a new Style with a new Name that is not available for the parent Layer.
Every Layer is available in one or more spatial reference systems (or in an undefined SRS; see Section 6.5.5.3, Undefined SRS).
Every Layer shall have at least one <SRS> element that is either stated explicitly or inherited from a parent Layer (Section 7.1.4.6.4, Subsettable and resizable layers). The root <Layer> element shall include a sequence of zero or more SRS elements listing all SRSes that are common to all subsidiary layers. Use a single SRS element with empty content (like so: "<SRS></SRS>") if there is no common SRS. Layers may optionally add to the global SRS list, or to the list inherited from a parent layer. Any duplication shall be ignored by clients.
When a Layer is available in several Spatial Reference Systems, there are two ways to encode the list of SRS values. The first of these is new in this version of the specification, the second is deprecated but still included for backwards compatibility.
Optional, recommended: Multiple single-valued <SRS> elements: a list of SRS values is represented as a sequence of <SRS> elements, each of which contains only a single SRS name. Example: <SRS>EPSG:1234</SRS> <SRS>EPSG:5678</SRS>.
Deprecated: Single list-valued <SRS> element: a list of SRS values is represented as a whitespace-separated list of SRS names contained within a single <SRS> element. Example: <SRS>EPSG:1234 EPSG:5678</SRS>.
WMS 1.1.1 Clients shall be prepared to handle either encoding.
Note: Change from version 1.1.0: Only the second, deprecated encoding was previously defined.
Every Layer shall have exactly one <LatLonBoundingBox> element that is either stated explicitly or inherited from a parent Layer. LatLonBoundingBox states the minimum bounding rectangle of the map data in the EPSG:4326 geographic coordinate system (see Section 6.5.5.1, EPSG Namespace for SRS). The LatLonBoundingBox attributes minx, miny, maxx, maxy indicate the edges of an enclosing rectangle in decimal degrees as in Figure 5. LatLonBoundingBox shall be supplied regardless of what SRS the map server may support, but it may be approximate if EPSG:4326 is not supported. Its purpose is to facilitate geographic searches without requiring coordinate transformations by the search engine.
The LatLonBoundingBox metadata element, and the BoundingBox element defined in the next section, have the following relationship to the BBOX request parameter defined in Section 7.2.3.6, BBOX. The bounding box metadata in Capabilities XML specify the minimum enclosing rectangle for the layer as a whole. The BBOX request parameter, on the other hand, specifies which rectangular area is to be drawn on the map. The BBOX rectangle may or may not overlap, contain, or be contained within the BoundingBox rectangle.
Layers may have zero or more <BoundingBox> elements that are either stated explicitly or inherited from a parent Layer. Each BoundingBox states the bounding rectangle of the map data in a particular spatial reference system; the attribute SRS indicates which SRS applies. If the data area is shaped irregularly then the BoundingBox gives the minimum enclosing rectangle. The attributes minx, miny, maxx, maxy indicate the edges of the bounding box in units of the specified SRS as in Figure 5. Optional resx and resy attributes indicate the spatial resolution of the data in those same units.
Note: <LatLonBoundingBox> (Section 7.1.4.5.6, LatLonBoundingBox) is effectively a BoundingBox in which the attribute SRS="EPSG:4326" is implicit, but LatLonBoundingBox does not include resx and resy attributes. A separate BoundingBox element explicitly naming EPSG:4326 may be provided by the server in order, for example, to provide resolution information.
A Layer may have multiple BoundingBox element, but each one shall state a different SRS. A Layer inherits any BoundingBox values defined by its parents. A BoundingBox inherited from the parent Layer for a particular SRS is replaced by any declaration for the same SRS in the child Layer. A BoundingBox in the child for a new SRS not already declared by the parent is added to the list of bounding boxes for the child Layer. A single Layer element shall not contain more than one BoundingBox for the same SRS.
Note: There is no provision for describing disjoint bounding boxes. For example, consider a dataset which covers two areas separated by some distance. The server cannot provide two separate bounding boxes in the same Layer using the same SRS to separately describe those areas. To handle this type of situation, the server may either define a single larger bounding box which encloses both areas, or may define two separate Layers that each have distinct Name and BoundingBox values.
A server which has the ability to transform data to different SRSes may choose not to provide an explicit BoundingBox for every possible SRS available for each Layer. The server should provide BoundingBox information for at least the native SRS of the Layer.
Layers may include a <ScaleHint> element that suggests minimum and maximum scales for which it is appropriate to display this layer. Because WMS output is destined for output devices of arbitrary size and resolution, the usual definition of scale as the ratio of map size to real-world size is not appropriate here. The following definition of Scale Hint is recommended. Consider a hypothetical map with a given Bounding Box, width and height. The central pixel of that map (or the pixel just to the northwest of center) will have some size, which can be expressed as the ground distance in meters of the southwest to northeast diagonal of that pixel. The two values in ScaleHint are the minimum and maximum recommended values of that diagonal. It is recognized that this definition is not geodetically precise, but at the same time the hope is that by including it conventions will develop that can be later specified more clearly.
ScaleHint is inherited by child Layers. A ScaleHint declaration in the child replaces the any declaration inherited from the parent.
The optional <Dimension> and <Extent> elements enclose metadata for multi-dimensional data. See Annex C, Handling Multi-Dimensional Data.
Dimension declarations are inherited from parent Layers. Any new Dimension declarations in the child are added to the list inherited from the parent. A child shall not redefine a Dimension with the same name attribute as one that was inherited.
Extent declarations are inherited from parent Layers. Any Extent declarations in the child with the same name attribute as one inherited from the parent replaces the value declared by the parent. A Layer shall not declare an Extent unless a Dimension with the same name has been declared or inherited earlier in the Capabilities XML.