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