↵
请求参数
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>