WFS获取特征收获

元数据可以出现在关系数据库的表中,许多组织通常使用这些表。将OGC Web特性服务(WFS)放在关系数据库上将允许通过标准查询机制提取元数据。此获取类型允许用户指定GetFeature查询,并将功能中的信息映射到元数据片段,这些元数据片段可以链接或复制到模板中以创建元数据记录。

添加OGC WFS GetFeature Harvester

OGC web特性服务(WFS)实现一个GetFeature查询操作,该操作以特性的形式返回数据(通常是关系数据库中相关表中的行)。GeoNetwork作为客户机,可以读取GetFeature响应并应用用户提供的XSLT样式表来生成元数据片段,这些片段可以链接或复制到用户提供的模板中以构建元数据记录。

可用选项包括:

  • Site

  • Name -这是对收割机的简短描述。它将在收割主页上显示为此WFS GetFeature harvester的名称。

  • 服务URL -WFS服务的裸URL(不需要OGC参数)

  • 元数据语言 -将在收割机创建的元数据记录中使用的语言

  • OGC WFS GetFeature查询 -用于从WFS提取特征的OGC WFS GetFeature查询。

  • 输出元数据记录的架构 -为收集的元数据记录选择元数据架构或配置文件。注意:只有具有WFS片段样式表的模式才会显示在列表中(有关这些样式表的位置,请参见下一个选项)。

    • 创建片段的样式表 -用户提供的样式表,用于将GetFeature响应转换为元数据片段文档(有关该文档的格式,请参见下文)。样式表存在于WFSToFragments目录中,该目录位于所选输出模式的convert目录中。对于iso19139模式,这个目录是 GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/WFSToFragments .

    • 将大响应保存到磁盘 -如果您希望WFS GetFeature响应很大(例如大于10MB),请选中此框。如果选中,GetFeature响应将保存在临时文件中的磁盘上。然后从临时文件中提取每个特性,并用于创建片段和元数据记录。如果未选中,则响应将保存在RAM中。

    • 创建子模板 -如果要将获取的元数据片段保存为元数据目录中的子模板,并将xlink保存到元数据模板中,请选中此框(请参见下一选项)。如果未选中,则片段将复制到元数据模板中。

    • 用于使用片段生成元数据的模板 -选择将与收集的元数据片段组合在一起的元数据模板以创建元数据记录。这是标准的地理网络元数据模板记录。

  • 使用链接片段生成的记录的类别 -选择将与收集的元数据片段组合在一起的元数据模板以创建元数据记录。这是标准的地理网络元数据模板记录。

  • Options

  • Privileges

  • 子模板类别 -当片段作为子模板保存到GeoNetwork时,它们将被分配到此处选择的类别。

有关将GetFeature响应转换为元数据片段的详细信息

在根<record>元素中,可以有零到多个<record>元素。生成元数据时,每个记录元素将生成一个元数据文档,否则,<record>元素仅用于根据需要对元数据片段进行分组(例如,为数据集或功能生成的片段)。

在<record>元素中,可以有零到多个<fragment>元素和零到多个<replacementGroup>元素。元素本身可以包含0到多个<fragment>元素。<record>或<replacementGroup>元素中<fragment>元素和<replacementGroup>元素的顺序并不重要。

<fragment>元素包含单独的xml片段。<fragment>的内容可以是来自受支持的geonnetwork模式的任何xml元素,但条件是该元素必须包含足够的相关元数据,以允许标识目标模式(即区分名称空间)。

<replacementGroup>元素仅在元数据生成期间才有意义。它们用于将零个或多个片段分组,以便插入或创建用于生成元数据的元数据模板副本中的链接。如果<replacementGroup>元素不包含<fragment>元素,则将删除模板副本中的引用元素,否则将用片段的内容替换它。

这些元素及其函数的有效属性如下:

元素

属性

描述

记录

Uuid公司

生成的元数据记录的Uuid(可选-否则将由收割机分配一个)

碎片

身份证件

要替换/链接的元数据模板中元素的Id。当片段在替换组中时忽略。

Uuid公司

用于生成的子模板的Uuid(用于从元数据链接到此子模板)

书名

片段标题-用作xlink的标题

ReplacementGroup

身份证件

元数据模板中要从中删除、替换或链接到包含片段的元素的Id

最后,使用geonnetwork提供的样式表和模板,可以给出两个如何从OGC WFS harvester的特性中获取元数据的示例。

捆绑地理服务器边界获取示例

本例假设您已经安装了GeoNetwork附带的绑定GeoServer。此示例的最终结果将是251个ISO19139元数据记录,这些记录链接1506个片段(每个记录6个片段),这些片段是从geonnetwork提供的GeoServer实例中边界shapefile上的GetFeature响应创建的。创建的记录包含有关世界各国的元数据。

要遵循的步骤是:

  • 从“管理”->“系统配置”菜单中,启用XLink解析器并 Save 数据库的配置。

  • 添加一个 OGC WFS GetFeature响应 “管理”->“收割”菜单中的“收割器”。

  • 给它一个 Name (例如gboundaries)并从绑定的geoserver输入wfs服务的URL(例如。http://localhost/本地主机:8080/geoserver/wfs)中的 服务URL 字段。

  • 我们将使用一个简单的GetFeature查询从WFS后面的边界shapefile中选择所有国家。此类查询的XML(将在 GetFeature查询 文本区域)是:

<wfs:GetFeature service="WFS" version="1.1.0"
        xmlns:wfs="http://www.opengis.net/wfs">

 <wfs:Query typeName="gboundaries"/>

</wfs:GetFeature>
  • 选择输出模式-我们将选择 国际标准组织19139 因为这个模式有示例样式表和模板,所以我们需要这个示例。请注意,选择此选项后,以下选项将变为可见,我们将采取以下操作:

    • 选择提供的“geoserver_boundary_fragments”样式表,从 用于创建片段的样式表 下拉列表。此样式表可以在 GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/WFSToFragments .

    • 从中选择提供的“Geoserver WFS Fragments Country boundries Test Template”模板 用于使用片段生成元数据的模板 下拉列表。此模板可以在 GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/templates/geoserver_fragment_tester.xml .

  • 为收割机创建的记录选择一个类别,检查 只跑一次 框中,添加一些权限(最简单的是让所有用户都具有查看权限)。在这个阶段,你的收割机进入表应该像下面的截图。

  • Save 收割机登记表。

  • 您将返回到harvester操作菜单 激活 收割机然后 Run 它。

结果页面显示,从WFS GetFeature响应中获取了1506个元数据片段。它们作为子模板保存到GeoNetwork数据库中,并链接到元数据模板中,形成251条新的元数据记录。

Deegree 2.x版哲学家数据库示例

本例假设您已经下载了Deegree版本2.x并加载了哲学家示例数据库。本例的最终结果将是7个ISO19139元数据记录,这些记录链接42个片段(每个记录6个片段),这些片段是从deegree安装的GetFeature响应创建的。这些记录包含7位著名哲学家的元数据。

要遵循的步骤是:

  • 从“管理”->“系统配置”菜单中,启用XLink解析器并 Save 数据库的配置。

  • 添加一个 OGC WFS GetFeature响应 “管理”->“收割”菜单中的“收割器”。

  • 给它一个 Name (例如deegree22哲学家测试)并在 服务URL 字段。

  • 我们将使用一个简单的GetFeature查询从WFS下的数据库中选择所有哲学家。此类查询的XML(将在 GetFeature查询 文本区域)是:

<wfs:GetFeature version="1.1.0" xmlns:app="http://www.deegree.org/app"
           xmlns:wfs="http://www.opengis.net/wfs">

 <!-- request all Philosopher instances -->
 <wfs:Query typeName="app:Philosopher"/>

</wfs:GetFeature>
  • 选择输出模式-我们将选择 国际标准组织19139 因为这个模式有示例样式表和模板,所以我们需要这个示例。请注意,选择此选项后,以下选项将变为可见,我们将采取以下操作:

    • 选择提供的“deegree2u哲学家碎片”样式表,从 用于创建片段的样式表 下拉列表。此样式表可以在 GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/WFSToFragments .

    • 用于使用片段生成元数据的模板 下拉列表。此模板可以在 GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/templates/deegree_fragment_tester.xml .

  • 为收割机创建的记录选择一个类别,检查 只跑一次 框中,添加一些权限(最简单的是让所有用户都具有查看权限)。在这个阶段,你的收割机进入表应该像下面的截图。

  • Save 收割机登记表。

  • 您将返回到harvester操作菜单 激活 收割机然后 Run 它。

在收割机运行之后,您应该会看到一个类似于以下截图的结果屏幕。

结果页面显示,从WFS GetFeature响应中获取了42个元数据片段。它们作为子模板保存到GeoNetwork数据库中,并链接到元数据模板中以形成7个新的元数据记录。