用于Web(CSW)功能的目录服务

支持的操作

当前支持以下标准CSW操作:

  • GetCapabilities

  • GetRecords

  • GetRecordById

  • GetDomain

  • DescribeRecord

(从geoserver 2.9.x开始,添加了一个新的供应商操作: DirectDownload

内部目录存储支持对完整X路径以及getCapabilities中指定的“queryables”进行筛选。

目录存储

默认的目录存储是内部目录存储,它从地理服务器的内部目录中检索信息。简单目录存储 (simple-store 模块)添加了一个替代的简单存储,它直接从文件(主要用于测试)中读取目录数据。

如果存在多个目录存储区(例如,当加载简单目录存储模块时),设置Java系统属性 DefaultCatalogStore 以确保使用正确的目录存储。若要使用内部目录存储,此属性必须设置为::

DefaultCatalogStore=org.geoserver.csw.store.internal.InternalCatalogStore

要使用简单目录存储:

DefaultCatalogStore=org.geoserver.csw.store.simple.GeoServerSimpleCatalogStore

支持的方案

内部目录存储当前支持两个元数据方案:

映射文件

映射文件位于 csw 目录 地理服务器数据目录 .每个映射文件必须具有与 .properties 扩展。例如:

  • 都柏林核心映射可以在文件中找到 csw/Record.properties 在数据目录中。

  • 可以在文件中找到ISO元数据映射 csw/MD_Metadata.properties 在数据目录中(请参见 Web目录服务(CSW)-ISO元数据配置文件 社区模块)。

映射文件采用来自Java属性文件的语法。等号左侧指定元数据记录中的目标字段名或路径,路径用点分隔。等号右侧指定表示目标属性值的任何CQL表达式。CQL表达式应用于每个 ResourceInfo 对象,并可以从此对象检索所有属性。这些表达式可以使用文本、 ResourceInfo 对象以及所有常规CQL运算符和函数。它还支持复杂的数据结构,比如使用点符号的Map和使用括号符号的列表(下面给出了示例映射文件)。

中的属性 ResourceInfo 可以使用的对象是:

name
qualifiedName
nativeName
qualifiedNativeName
alias
title
abstract
description
metadata.?
namespace
namespace.prefix
namespace.name
namespace.uri
namespace.metadata.?
keywords
keywords[?]
keywords[?].value
keywords[?].language
keywords[?].vocabulary
keywordValues
keywordValues[?]
metadataLinks
metadataLinks[?]
metadataLinks[?].id
metadataLinks[?].about
metadataLinks[?].metadataType
metadataLinks[?].type
metadataLinks[?].content
latLonBoundingBox
latLonBoundingBox.dimension
latLonBoundingBox.lowerCorner
latLonBoundingBox.upperCorner
nativeBoundingBox
nativeBoundingBox.dimension
nativeBoundingBox.lowerCorner
nativeBoundingBox.upperCorner
srs
nativeCrs
projectionPolicy
enabled
advertised
catalog.defaultNamespace
catalog.defaultWorkspace
store.name
store.description
store.type
store.metadata.?
store.enabled
store.workspace
store.workspace.name
store.metadata.?
store.connectionParameters.?
store.error

根据资源是FeatureTypeInfo还是CoverageInfo,可以从其各自的对象结构中获取其他属性。你可以用 REST 查看功能类型和数据存储的XML模型,其中XML标记表示对象中的可用属性。

元数据方案中的某些字段可以多次出现。它们可以映射到目录模型中也是多值的属性,例如 keywords 。也可以使用名为 list 将多个单值或多值目录特性映射到具有多个匹配项的元数据字段的步骤(请参见ISO元数据配置文件示例中的映射 identificationInfo.AbstractMD_Identification.citation.CI_Citation.alternateTitle 字段)。

放置 @ 字段前面的符号将设置为用作每个元数据记录的标识符。这对于ID过滤器可能很有用。使用 $ 在需要的字段前面签名,以确保映射了解需求(特别是为了进行属性选择)。

以下是都柏林核心映射文件的示例:

@identifier.value=id
title.value=title
creator.value='GeoServer Catalog'
subject.value=keywords
subject.scheme='http://www.digest.org/2.1'
abstract.value=abstract
description.value=strConcat('description about ' , title)
date.value="metadata.date"
type.value='http://purl.org/dc/dcmitype/Dataset'
publisher.value='Niels Charlier'
#format.value=
#language.value=
#coverage.value=
#source.value=
#relation.value=
#rights.value=
#contributor.value=

所有字段的形式为 <fieldname>.value 字段中的实际值。另外 <fieldname>.scheme 可以为指定 @scheme 此字段的属性。

从resourceinfo提取的属性示例如下 idtitlekeywords 等属性 metadata.date 使用元数据 (java.util. )从资源对象映射。在这个地图中,它搜索关键字“日期”。

请注意,双引号是必要的,以保持这一点的意义。