GetRecords 请求

发送反馈


请求参数

GetRecords 操作遵循 HTTP 协议,用户终端采用 KVP 编码格式向服务端提交请求,主要请求参数如下:

表1 GetRecords 操作请求主要参数

请求参数 是否必需 描述
SERVICE=CSW

服务类型。

请求 CSW 服务,请求类型需要设为“CSW”。

REQUEST=GetRecords

请求操作的名称。

请求 GetRecords 操作,请求名称需要设为“GetRecords”。

VERSION=version

服务支持的版本号。

服务的版本号,需设为“2.0.2”。

NAMESPACE=nameSpace

指定名空间地址。

RESULTTYPE=resultType

请求结果的类型。

值为 results、hits、validate,目前支持 results、hits 类型。

REQUESTID=requestid

包含 request 信息唯一标识。

OUTPUTFORMAT=outputFormat

输出格式。

用于控制输出格式,默认为 application/xml。

OUTPUTSCHEMA=outputSchema

结果所用的结构和格式

默认值为 http://www.opengis.net/cat/csw/2.0.2。

STARTPOSITION=startPosition

指定返回结果的起始位置。

默认值为1,意思是在结果集中从第一条记录开始返回给客户端。

MAXRECORDS=maxRecords

最大记录条数。

指定从结果中返回的记录最大数值,若符合查询条件的记录数小于该值,则返回符合条件的记录条数。

TYPENAMES=typeNames

查询信息模型对象。

例如 csw ogc 的 Record 模型。

ELEMENTSETNAME=ElementSetName

返回结果类型。

值可为 brief、summary、full。

ELEMENTNAME=ElementName

根据指定字段返回结果。

例如<dc:modified>

CONSTRAINTLANGUAGE=ConstranintLanguage

指定查询谓语语言。

例如 ogc:filter1.1.0。

CONSTRAINT=Constraint

约束条件。

用于定义查询谓语表述,缺省则返回所有结果,例如查询所有记录中与给定范围相交的记录:

<Constraint version="1.1.0">

<ogc:Filter>

<ogc:Within>

<ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>

<gml:Envelope>

<gml:lowerCorner>-181 -91</gml:lowerCorner>

<gml:upperCorner>181 91</gml:upperCorner>

</gml:Envelope>

</ogc:Within>

</ogc:Filter>

</Constraint>

SORTBY=SortBy

对查询数据中指定字段进行排序。

例如:<SortBy sortOrder='ASC'>modified</SortBy>

说明:参数的大小写不是必须的,请求参数的顺序也可以任意顺序排列。

GET 请求(暂时不支持)

POST 请求

GetRecords 操作 POST 的请求方式如下:

GetRecords 操作遵循 HTTP 协议,用户终端可采用 POST 方式向服务端提交请求,例如,本机 SuperMap iServer CSW 2.0.2 服务启动成功之后,POST 访问 GetRecords 操作的 URI 的地址为: http://localhost:8090/iserver/services.csw?SERVICE=CSW&REQUEST=GetRecords&VERSION=2.0.2 。

查询符合与给定范围相交且 title 字段含“map-world”字符的元数据记录,请求体示例如下:

<?xml version="1.0" encoding="utf-8"?>

<GetRecords service="CSW" version="2.0.2" maxRecords="5" startPosition="1" resultType="results" outputFormat="application/xml" outputSchema="http://www.opengis.net/cat/csw/2.0.2" xmlns="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">

<ResponseHandler>ftp://www.myserver.com/pub/MyQuery_Resp.xml</ResponseHandler>

<Query typeNames="Record">

<ElementSetName>SUMMARY</ElementSetName>

<Constraint version="1.1.0">

<ogc:Filter>

<ogc:And>

<ogc:PropertyIsLike wildCard="%" singleChar="_" escapeChar="\">

<ogc:PropertyName>title</ogc:PropertyName>

<ogc:Literal>%map-world%</ogc:Literal>

</ogc:PropertyIsLike>

<ogc:Intersects>

<ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>

<gml:Envelope>

<gml:lowerCorner>14.05 46.46</gml:lowerCorner>

<gml:upperCorner>17.24 48.42</gml:upperCorner>

</gml:Envelope>

</ogc:Intersects>

</ogc:And>

</ogc:Filter>

</Constraint>

</Query>

</GetRecords>

该请求示例的响应结果请参见响应示例

查询在给定时间范围内的元数据记录,请求体示例如下:

<?xml version="1.0" encoding="utf-8"?>

<GetRecords service="CSW" version="2.0.2" maxRecords="5" startPosition="1" resultType="results" outputFormat="application/xml" outputSchema="http://www.opengis.net/cat/csw/2.0.2" xmlns="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"> <ResponseHandler>ftp://www.myserver.com/pub/MyQuery_Resp.xml</ResponseHandler>

<Query typeNames="Record">

<ElementSetName>brief</ElementSetName>

<Constraint version="1.1.0">

<ogc:Filter>

<ogc:PropertyIsBetween>

<ogc:PropertyName>modified</ogc:PropertyName>

<ogc:LowerBoundary>

<ogc:Literal>2012-09-01</ogc:Literal>

</ogc:LowerBoundary>

<ogc:UpperBoundary>

<ogc:Literal>2020-09-22</ogc:Literal>

</ogc:UpperBoundary>

</ogc:PropertyIsBetween>

</ogc:Filter>

</Constraint>

</Query>

</GetRecords>

查询 rest 类型的元数据记录,请求体示例如下:

<?xml version="1.0" encoding="utf-8"?>

<GetRecords service="CSW" version="2.0.2" maxRecords="5"

startPosition="1" resultType="results" outputFormat="application/xml"

outputSchema="http://www.opengis.net/cat/csw/2.0.2" xmlns="http://www.opengis.net/cat/csw/2.0.2"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">

<ResponseHandler>ftp://www.myserver.com/pub/MyQuery_Resp.xml</ResponseHandler>

<Query typeNames="Record">

<ElementSetName>brief</ElementSetName>

<Constraint version="1.1.0">

<ogc:Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>dc:type</ogc:PropertyName>

<ogc:Literal>rest</ogc:Literal>

</ogc:PropertyIsEqualTo>

</ogc:Filter>

</Constraint>

</Query>

</GetRecords>