版本号格式
网络地图服务定义了协议版本号。规范的版本号由3个正整数组成,并由小数点分隔,其形式为“x.y.z”。数字“y”和“z”不能超过99。
版本变化
协议版本号将会随每次改版而发生变化。数字不断增加,并且将会由不多于3个由小数点分隔的正整数组成。第一个整数最有意义。在数字序列中,可能出现断沟,一些数字可能意味着实验的或过渡的版本。服务器和客户端不需要支持所有的版本,但是必须遵守下面的协商规则。
在请求和服务元数据中的出现形式
版本号至少出现在两个地方:描述服务能力的 XML 文档中和客户端对服务器的请求参数列表中。客户端请求的一个指定服务实例中使用的版本号必须等于这个实例已经申明支持的版本号。一个服务实例可以支持多种版本,客户端根据协商规则可以发现它们的值。
版本号协商
WMS 客户端会和服务器协商决定双方都同意的协议版本号。协商时通过 GetCapabilitities 操作完成的,并依据下面的规则。
所有的服务元数据必须包含一个协议版本号以及必须和此版本定义的 XML DTD 或者 Schema 一致。为了响应没有指定版本号的 GetCapabilitities 请求,OGC 网络地图服务必须响应输出它所支持的最高版本。为响应包含服务器已实现的版本号的 GetCapabilitities 请求,服务器必须发送这个版本号的信息。如果不支持请求的版本,服务器应该依据下面的规则,转换输出一个它所支持的版本。
- 如果客户端请求了一个未知的版本号,此版本号高于服务器支持的最低的版本号,服务器必须发送低于请求版本号的最高版本号。
- 如果客户端发送的版本号低于服务器支持的所有版本号,服务器必须发送一个它所支持的最低版本号。
- 如果客户端不支持服务器传递的版本号,它可能或者停止与服务器通信,或者发送一个带有客户端支持的的另一个版本号的新请求,但这个版本号是客户端不支持的。
这个过程会不断重复,直到取得双方都能理解的版本,或者直到客户认为它不能和这个服务通信。
例1,服务器响应版本1,2,4,5和8。客户端理解版本1,3,4,6和7。客户端请求版本7。服务器响应版本5。客户端请求版本4。服务器响应版本4,客户端和服务器都理解版本4,协商成功结束。
例2,服务器响应版本4,5和8。客户端理解版本3。客户端请求版本3。服务器响应版本4。客户端不理解这个版本或者任何更高的版本,因此协商失败,客户端和服务器通信终止。
VERSION 参数是请求中的必须参数,除了 GetCapabilities 操作。