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