GetCapabilities 响应 |
WFS Capabilities 文档包括 服务、能力、要素类型、过滤器 能力四个组成部分。
服务部分提供了服务自身的元数据信息。
表1 服务部分元素
元素名称 | 描述 |
Name |
WFS 服务的名称。 |
Title |
服务标题。 服务器的简短描述。 |
Abstract |
服务摘要。 提供有关服务器信息的更多描述。 |
Keyword |
关键字。 用于目录搜索的简短单词。 |
OnlineResource |
在线资源。 定义了服务的最高级的 HTTP URL,例如,服务的首页(home page)URL。 |
Fees |
费用。 指定使用 WFS 服务或者从 WFS 服务获取数据所要支付的费用。 关键字 NONE 表示免费。 |
AccessConstraints |
访问限制。 表示使用 WFS 服务或者从 WFS 服务获取数据的访问限制。 关键字 NONE 表示没有访问限制。 |
能力部分列举了 WFS 能够处理的请求。
一个基本的 WFS 包括 GetCapabilities、DescribeFeatureType 和 GetFeature 三个操作。一个处理事务的 WFS 包括 Transaction 操作,可能还包括 LockFeature 和/或 GetFeatureWithLock 操作。
表2 能力部分元素
元素名称 | 描述 |
GetCapabilities |
<GetCapabilities>元素定义了当前服务可用的分布式计算平台。 |
DescribeFeatureType |
<DescribeFeatureType>元素用来定义当前服务可用的分布式计算平台,以及 schema 描述语言。 XMLSCHEMA 是唯一有效的 schema 描述语言,SCHEMALANGUAGES 实体可以被重新定义以包含有服务提供者的特定语言。 |
Transaction |
<Transaction>元素定义当前服务可用的分布式计算平台。 |
GetFeature |
<GetFeature>元素定义了当前服务可用的分布式计算平台,并且列举了查询结果的有效格式。 RESULTFORMATS 实体定义了强制输出格式——GML,但也可以重新定义 RESULTFORMATS 以包含服务提供者的特定格式。 |
LockFeature |
<LockFeature>元素定义了当前服务可用的分布式计算平台。 |
HTTP 是唯一有效的分布式计算平台,因此,需要定义两种请求方式:GET 和 POST。对于 HTTP GET 请求,onlineResource 属性值是 URL 的前缀(在英文问号和查询字符串前面的部分,http://hostname[:port]/path/scriptname);对于 HTTP POST 请求,onlineResource 属性值是完整的 URL。
<VendorSpecificCapabilities>元素用来定义包含服务提供者的特定扩展。
这部分定义了 WFS 提供的要素类型列表,以及每个要素类型的操作。此外,还提供了关于每个要素类型的附加信息,比如 SRS 等。
<FeatureTypeList>元素包含了 WFS 服务提供的要素类型列表,定义了每个要素类型所支持的事务(transaction)处理和查询(query)元素。
表3 要素的事务处理和查询元素
元素名称 | 描述 |
Insert |
插入。 表示 WFS 可以创建新的要素类型实例。 |
Update |
更新。 表示 WFS 可以更新已有的要素。 |
Delete |
删除。 表示 WFS 可以删除的要素类型。 |
Query |
查询。 表示 WFS 能够在某个要素类型上执行查询操作。 |
Lock |
锁。 表示 WFS 能够锁定的要素类型实例。 |
Transaction 和 Query 元素可以被全局指定,用来描述所有的要素类型;也可以局部指定,用来描述包含在<FeatureTypeList>元素中的特定要素类型。全局指定的 Transaction 和 Query 元素可以被包含在<FeatureTypeList>元素中每个要素类型继承,并且可以被特定的局部 Transaction 和 Query 元素扩展。例如,<Query>元素可以全局指定<FeatureTypeList>元素中的所有要素类型,而<Update>元素只能局部指定一小部分要素类型。如果没有在任何地方定义 Transaction 和 Query 元素,那么缺省的<Query>元素将隐含定义在<FeatureTypeList>元素的所有要素类型中。
<FeatureTypeList>元素中用于描述要素类型的元素如下表所示:
表4 描述要素类型的元素
元素名称 | 描述 |
Name |
要素类型名称。 要素类型在名字空间中指定的类型。 该元素是必须的。 |
Title |
要素标题。 对要素类型的简短描述。 |
Abstract |
要素摘要。 对要素类型更多信息的描述。 |
Keyword |
关键字。 便于目录搜索的简短单词。 |
SRS |
空间坐标参考系统。 要素所基于的空间坐标参考系统。 SRS 可以采用 POSC(Petrotechnical Open Software Corporation)格式,其形式为“EPSG:<POSC Code>”,或者采用 URL 格式。 SuperMap iServer 目前只支持 POSC (EPSG:4326)格式。 |
Operations |
操作。 用于定义一个要素类型所支持的操作。 局部定义的操作优先于全局定义的操作。 |
LatLongBoundingBox |
边界框。 表示基于 SRS(EPSG:4326) 的要素类型的一个封闭矩形边界。通过指定特殊要素类型存在的位置以方便地理搜索。 由于可以指定多个 LatLongBoundingBoxes,所以 WFS 可以指定不同数据的存在位置。 |
MetadataURL |
元数据 URL。 WFS 可以使用0个或多个<MetadataURL>元素提供细节和特定要素类型数据的标准元数据。type 属性表示元数据所采用的标准;format 属性表示元数据如何构成。目前有两类定义:'TC211' = ISO TC211 19115和'FGDC' = FGDC CSDGM。 |
过滤器能力部分是可选的部分,如果这部分存在,表示 WFS 将支持相应的操作。如果过滤器能力部分没有定义,那么客户端将只支持在扩滤器编码实现规范中定义的最小缺省过滤操作。
version 属性指定了当前 schema 所采用的规范修订版。其格式是由分隔的一个、两个或者三个整数组成:“x”、“x.y”或者“x.y.z”,最重要数字放在第一位。以后的版本是单调增加的数字形式。
updateSequence 属性是一个序列号,用于管理 capabilities 文档的内容。例如,一个要素服务器增加了一些要素类型,它将增加更新序列号(update sequence)来告知目录服务器以前的缓存版本已经失效。该属性的格式是一个正整数。
请求示例 的响应结果如下: