OGC标准介绍 11
目录
I. OWS-OGC Web服务通用标准
· 概述
OWS(OGC Web Service Common Implementation Specification)当前版本是2.0.0。OWS描述了Web服务通用的一些接口规范,包括请求和响应的内容、请求的参数和编码等。目前,OWS包括WFS、WMS、WCS,因此,后续的《VII.WFS-要素Web服务》、《VIII.WMS-地图Web服务》、《IX.WCS-栅格Web服务》都和本章节有关系。
· 服务涉及的基本元素
1. HTTP请求规则
OWS可以通过GET和POST两种方式对服务进行请求。而请求的参数编码也有两种:一种是键值对应(KVP[1])、另一种是XML对象(XML)。它们的组合情况如下:
GET
POST
KVP
非MIME(URL)
MIME:application/x-www-form-urlencoded[2]
XML
不支持
MIME:text/xml[3]
因此,比如某OWS服务的GetCapabilities操作,可能会有以下3种请求方式,当然,不同种类的服务并不一定实现所有的这些组合:
URL
请求体
GET
http://host:port/path?SERVICE=WFS&REQUEST=GetCapabilities
POST
http://host:port/path
SERVICE:WFS
REQUEST:GetCapabilities
http://host:port/path
<?xml version="1.0" ?> <GetCapabilities service="WFS" xmlns=http://www.opengis.net/wfs xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.opengis.net/wfs ../wfs/1.1.0/WFS.xsd">
2. HTTP响应规则
服务处理完请求后,生成结果或异常信息,然后以MIME的方式返回客户端。
3. SOAP
在OWS服务和OWS服务之间可以采用SOAP消息进行数据交互(POST)。SOAP消息是符合SOAP规范的XML,它需要包括SOAP信封、SOAP消息头、SOAP消息体等组成部分:
<?xml version="1.0"?> <soap:Envelope xmlns:soap=http://www.w3.org/2003/05/soap-envelope soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <soap:Header> ... ... </soap:Header> <soap:Body> ... ... <soap:Fault>...</soap:Fault> </soap:Body> </soap:Envelope>
· GetCapabilities操作
每个OWS服务都包括GetCapabilities操作,这个操作返回这个服务的元数据信息。GetCapabilities包括2个必须的参数和若干可选参数,这些参数的取值见下表:
参数
是否必须
取值(示例)
SERVICE
是
WFS或WMS或WCS
REQUEST
是
GetCapabilities
ACCEPTVERSIONS
1.1.0,1.0.0
SECTIONS
Contents
UPDATESEQUENCE
ACCEPTFORMATS
text/xml
ACCEPTLANGUAGES
en-US,zh-CN
以下是一个WFS使用KVP格式的GetCapabilities操作:
http://www.someserver.com/wfs?
SERVICE=WFS&
REQUEST=GetCapabilities
以下是一个WCS使用KVP格式的GetCapabilities操作:
http://hostname:port/path?
SERVICE=WCS&
REQUEST=GetCapabilities&
ACCEPTVERSIONS=1.0.0 0.8.3&
SECTIONS=Contents&
UPDATESEQUENCE=XYZ123&
ACCEPTFORMATS=text/xml&
ACCEPTLANGUAGES=en-CA fr-CA
以下是一个WCS使用XML格式的GetCapabilities操作:
<?xml version="1.0" encoding="UTF-8"?> <GetCapabilities xmlns="http://www.opengis.net/ows/2.0" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ows/2.0 fragmentGetCapabilitiesRequest.xsd" service="WCS" updateSequence="XYZ123" > <AcceptVersions> <Version>1.0.0</Version> <Version>0.8.3</Version> </AcceptVersions> <Sections> <Section>Contents</Section> </Sections> <AcceptFormats> <OutputFormat>text/xml</OutputFormat> </AcceptFormats> <AcceptLanguages> <Language>en-CA</Language> <Language>fr-CA</Language> </AcceptLanguages> </GetCapabilities>
· 其它一般操作
除了GetCapabilities,不同的OWS还包括其它不同操作以实现各自的功能,这些操作都包括以下3个必选参数和其它可选参数。当然,不同的操作还包括自身功能有关的其它必选参数和可选参数。
参数
是否必须
取值(示例)
SERVICE
是
WFS或WMS或WCS
REQUEST
是
GetMap
VERSION
是
1.3.0
ACCEPTLANGUAGES
en-US,zh-CN
以下是一个WCS使用KVP格式的GetCoverage操作:
http://hostname:port/path?
SERVICE=WCS&
REQUEST=GetCoverage&
VERSION=1.0.0&
AcceptLanguages=en fr
[1] Key-Value Pair
[2] http://en.wikipedia.org/wiki/POST_%28HTTP%29
[3] http://en.wikipedia.org/wiki/XML_and_MIME