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