管理目录¶
目录支持由元数据片段组成的元数据记录。其思想是,元数据片段可以在多个元数据记录中使用。
这是一个典型的片段示例。这是一个责任方,可以在同一个元数据记录中多次使用,也可以在多个元数据记录中使用(如果适用)。
<gmd:CI_ResponsibleParty xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" >
<gmd:individualName>
<gco:CharacterString>John D'Ath</gco:CharacterString>
</gmd:individualName>
<gmd:organisationName>
<gco:CharacterString>Mulligan & Sons, Funeral Directors</gco:CharacterString>
</gmd:organisationName>
<gmd:positionName>
<gco:CharacterString>Undertaker</gco:CharacterString>
</gmd:positionName>
<gmd:role>
<gmd:CI_RoleCode codeList="./resources/codeList.xml#CI_RoleCode" codeListValue="pointOfContact"/>
</gmd:role>
</gmd:CI_ResponsibleParty>
保存在目录数据库中的元数据片段称为子模板。这主要是由于历史原因,因为子模板类似于模板元数据记录,因为它可以用作构造新元数据记录的“模板”。
片段可以以两种模式插入元数据记录:
通过复制/粘贴
按链接(如果启用了xlink支持。见 元数据XLink )
使用XLinks时,如果片段被更新,那么所有元数据记录中的相关片段也将被更新(检查XLink缓存)。
碎片可以通过收割产生(参见 获取元数据片段以支持重用 )或者使用元数据导入页导入。
本手册本节描述:
如何管理子模板目录
如何从现有的元数据记录集中提取片段并将其存储为子模板
如何管理用于加快对不在本地目录中的片段的访问的片段缓存
管理子模板目录¶
处理子模板和元数据记录之间存在一些差异。与元数据记录不同,子模板没有一致的根元素,它们使用的元数据架构可能无法识别,它们不会出现在主搜索结果中(除非它们是元数据记录的一部分)。因此,编辑器板允许您搜索和管理目录条目的权限。
从编辑板中,选择 Manage directory
要访问目录项的编辑器,请执行以下操作:
如果你没有看到 Organizations and Contacts
选项卡,然后确保为元数据配置文件的联系人创建了子模板,并使用 Metadata and Templates
部分。
在这个页面中,编辑器可以使用顶部的选项卡edit/remove/import new subtemplates选择一种目录类型。
要导入新条目,请使用“元数据导入”页并选择适当的记录类型:
与元数据记录一样,它们被分配一个整数id并存储在catalog元数据表中(模板字段设置为“y”)。
在元数据记录中插入目录项¶
例如,在元数据编辑器中,该目录可用于填充联系人。
打开目录选择器,选择一个联系人,然后选择联系人角色。
从元数据记录中提取子模板¶
许多站点都有带有公共信息的现有元数据记录,例如ISO CI_contact元素中的联系人信息。这样的目录条目可以使用“Extract subtemplates”API从选定的元数据记录集中提取。
要使用此功能,应遵循以下步骤:
确保您了解XPath是什么-请参见http://www.w3schools.com/xpath/default.asp例如。
在元数据记录中标识要作为可重用子模板管理的元数据片段。这可以使用XPath完成。例如,XPath
.//gmd:CI_ResponsibleParty
确定记录中的所有责任方。下面的示例显示了这样一个片段(从一个样本记录中获取):
<gmd:CI_ResponsibleParty>
<gmd:individualName>
<gco:CharacterString>Jippe Hoogeveen</gco:CharacterString>
</gmd:individualName>
<gmd:organisationName>
<gco:CharacterString>FAO - NRCW</gco:CharacterString>
</gmd:organisationName>
<gmd:positionName>
<gco:CharacterString>Technical Officer</gco:CharacterString>
</gmd:positionName>
<gmd:contactInfo>
<gmd:CI_Contact>
<gmd:phone>
<gmd:CI_Telephone>
<gmd:voice gco:nilReason="missing">
<gco:CharacterString/>
</gmd:voice>
<gmd:facsimile gco:nilReason="missing">
<gco:CharacterString/>
</gmd:facsimile>
</gmd:CI_Telephone>
</gmd:phone>
<gmd:address>
<gmd:CI_Address>
<gmd:deliveryPoint>
<gco:CharacterString>Viale delle Terme di Caracalla</gco:CharacterString>
</gmd:deliveryPoint>
<gmd:city>
<gco:CharacterString>Rome</gco:CharacterString>
</gmd:city>
<gmd:administrativeArea gco:nilReason="missing">
<gco:CharacterString/>
</gmd:administrativeArea>
<gmd:postalCode>
<gco:CharacterString>00153</gco:CharacterString>
</gmd:postalCode>
<gmd:country>
<gco:CharacterString>Italy</gco:CharacterString>
</gmd:country>
<gmd:electronicMailAddress>
<gco:CharacterString>jippe.hoogeveen@fao.org</gco:CharacterString>
</gmd:electronicMailAddress>
</gmd:CI_Address>
</gmd:address>
</gmd:CI_Contact>
</gmd:contactInfo>
<gmd:role>
<gmd:CI_RoleCode codeList="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#CI_RoleCode"
codeListValue="pointOfContact"/>
</gmd:role>
</gmd:CI_ResponsibleParty>
标识并记录片段中一个或多个字段的XPath,其中文本内容将用作子模板的id。这个XPath应该与前一步中标识的片段的根元素相关。例如,在上面的片段中,我们可以选择
.//gmd:electronicMailAddress/gco:CharacterString/text()
作为要创建的片段的id。在API页面上,选择registries/collect操作:
用前面步骤中收集的信息填写表单。
提取的子模板可以使用GET模式预览,验证后,使用PUT方法将结果保存到目录中。
最后,转到子模板目录管理界面,您应该能够选择子模板的根元素来检查提取的子模板。
子模板索引基于架构(有关详细信息,请参见索引字段文件夹)。当前ISO19139索引子模板用作根元素:
gmd:CI_责任方
gmd:MD_分布
gmd:仅限CI资源
gmd:EX_范围
同步子模板与元数据记录¶
创建后,目录提供了将元数据记录与目录项同步的功能。为此,请使用API测试页。
同步进程使用与收集进程相同的参数,具有两个可选参数:
propertiesToCopy
保留元数据片段中可能定义的某些元素(例如联系人角色)substituteAsXLink
指示是否应使用XLMODE/POSITE。
管理片段缓存¶
如果目录链接中的元数据记录是来自外部站点的片段,则目录将在第一次查找后缓存这些片段,以减少网络通信量并加快元数据记录在搜索结果中的显示速度。
缓存是使用Java缓存系统(JCS)自动处理的。JCS通过以下方式智能地处理大型缓存:
定义最大缓存对象数
在转移到辅助存储器(磁盘)之前,尽可能多地使用主存储器
提供缓存持久性:当web应用程序关闭时,缓存保存到磁盘,当重新启动时从磁盘还原缓存
可以使用中的JCS配置文件在GeoNetwork中配置JCS参数 INSTALL_DIR/web/geonetwork/WEB-INF/classes/cache.ccf .
目录中生成元数据片段的某些操作(例如获取)将在生成新片段时自动刷新XLink缓存。但是,如果要链接来自外部站点的片段,则根据更改的频率,需要手动刷新XLink缓存。要执行此操作,您应该导航到“管理”页,然后选择“清除XLink缓存并使用XLinks重建记录索引”功能,该功能在“管理”页的以下屏幕截图中突出显示。