SPAN8.
SPAN4.
附加的工作区展示了以下方案的潜在解决方案:
我们有一组我们希望包含在Deegree CSW服务器提供的元数据目录中的AutoCAD DWG文件。第三方编辑器用于准备ISO19115元数据文件,该文件包含不是特定于文件的大多数元数据记录,但我们需要“填写”某些特定于文件的记录,例如地理范围,文件位置, 等等。
Deegree-CSW有以下先决条件:
这Deegree文件是全面的,并为设置服务提供了很好的说明。
服务的设置包括:
要验证degree是否正确配置,请导航到在Tomcat中运行的degree web应用程序。默认url是http://localhost:8080/deegree-csw/主机(或http:// < >: <端口> / deegree-csw /)。提供了功能、状态信息和基本客户端应用程序的链接。
通用web服务客户机提供了一个简单的接口,用于向服务发送xml格式的请求,并检查xml格式的响应。客户端接口还包括几个示例请求,这些请求对于理解CSW的工作方式非常有用。本演示中包含的“模板”元数据文件来自这些示例。
源数据是一组AutoCAD DWG文件,由奥斯汀市的包裹数据组成,该城市被划分为多个部分,其中一些部分重叠。
下面显示数据的概述;每个文件的边界框显示为彩色框。
上面放大的一段。
典型的FME翻译从文件中读取数据,这会导致创建与文件数据对应的属性数据的特性。该工作区将XML元数据记录视为使用XQuery转换器操作的不透明块。
此方法允许我们使用易于扩展的构建块方法来操纵元数据,然后将其插入目录服务:
使用XQuery的额外好处是它确保我们在转换的每个阶段处理有效的XML,从而消除了一个潜在的服务源。
工作区分为3个部分:
为了方便导航,工作区被划分为几个编号的书签。下面的部分将描述每个书签内部发生的情况。
这个工作空间从几个AutoCAD DWG文件读取。通常,每个文件都会映射到一个单独的FME特性类型,但是,如果你检查单个源特性类型的属性,你会注意到它是一个“通配符”特性类型,它合并了所有源特性类型。这是处理共享一个公共模式的多个文件的一种非常方便的方法。
MetadataAccumulator变压器检查从特性中读取的每个特性,并为每个特性类型积累以下信息:
此外,根据特性类型生成一个标题(用于元数据引用)。
变换器为读取的每个文件输出一个功能。
元数据模板的副本(作为字符串属性)被添加到每个特性中。
这个转换阶段被分成几个独立的块。这些块可以被重新排序或删除,而不影响前面或后面的块。每个区块使用一个非常简单的模式:
Python调用程序用于生成XQuery有以下几个原因:
另一个选择是使用Contenator变压器,但读取正在创建的XQuery会更难。
为了演示的目的,这些书签块中的每一个都被“暴露”在主工作区窗口中。将这些块封装到自定义变压器中是非常容易的,并且强烈推荐。这样做将允许用户创建一个元数据操作转换程序库,这些转换程序可以很容易地链接在一起来操作元数据记录。
此块为元数据生成文件indentification部分。此特定演示使用由此生成的随机UUID标识符Uuidgenerator(Link_todo)变压器;如果需要记录更新,这种方法在生产环境中可能适用,也可能不适用。在这种情况下,必须从外部维护的文件名到标识符的映射中获得标识符。
这个块生成dateStamp部分。
此块插入引文部分的标题元素。
为每个包含文件位置和大小的数据集文件生成distributionInfo部分,该部分包含一个transferOptions元素。在这个例子中,我们的源数据集是Autodesk DWG,每个数据集有一个文件。其他格式,如MIF/MID或Shape,每个数据集有多个文件。有关如何正确处理多个文件的示例,请参阅MetadataAccumulator源代码。此时,必须将所使用的格式硬编码到MetadataAccumulator中,以正确地处理每个数据集多个文件的问题。
根据组织的要求,可能有其他选项来指示文件位置和格式;这只是一个例子。
此块演示了如何提取功能的CRS,用于构建参考系统INFO部分。笔记:
使用前面累积的边界框构造IdignionFo部分的Ex_geopupbooptingBox元素。
此时在翻译中,已创建完整的元数据XML记录,并已将已插入OGC目录Web服务。翻译的这个阶段准备了请求,将其提交到服务器,然后检查响应以确定请求是否成功
准备CSW插入交易相当简单。以前准备的元数据记录仅在XML CSW事务信封中包装。
使用HTTP POST,请求按程度发送到提供的服务。
注意:根据您已安装和配置的Deegree-CSW的方式,您可能需要更改HTTPUPLOODER变压器中的服务端点的URL。
测试服务器响应以查看它是否包含文本“例外”,表示事务失败。如果插入成功,Web服务将返回200的HTTP状态为200。
每个成功的交易响应都包含以下项目:
SummaryLog不是记录每个结果,而是累积所有结果,并在翻译结束时创建一个简洁的摘要日志。
在失败时,degree -csw将响应一个异常消息,描述导致失败的原因。假设服务配置正确,最常见的故障原因要么是XML格式不正确,要么是不一致的元数据记录。
©2019 S亚搏在线afe Software Inc |合法的