第8页
斯潘4
阅读INSPIRE通常只需要指向源数据并选择INSPIRE格式。如果轴方向不正确,可能需要选择轴顺序。您还可以选择将复杂属性映射为XML片段,然后使用展平选项(用空字符串代替大括号),以便更容易地从多个嵌套元素映射到关系结构(如在GIS中)。
映射名称{0}。地理名称.拼写{0}.拼写fname.text到名称0。GeographicalName.spelling.SpellingOfName名称.文本
要保留XML结构,请将映射复杂属性的默认读取器设置保留为“嵌套属性”。对于schema Show功能类型from:“Dataset only with attributes merged from schema”通常会产生最佳结果。
INSPIRE的复杂性之一是每个特征可以包含多个几何体。例如,除了多边形之外,地块还可以具有参照点和边界框。默认情况下,FME读取所有这些几何图形。这可能需要通过工作空间中的解聚集和过滤来简化几何体。要消除框的限制,只需取消选中“读取预定义属性”读取器设置。边界框可能是一个麻烦,因为它们可以完全覆盖您真正想要看到的功能,所以能够关闭它是很有帮助的。
如果您根本无法读取您的特性,那么您的源GML可能有问题。有时出版商声称他们的数据是真实的,而事实并非如此。要检查源数据是否有效,请参阅下面的验证部分。由于INSPIRE模式太多,发布者通常会构建自己的伞式模式,为发布的主题调用所有模式,如果您从这样的源获取数据,没有伞式模式您将无法读取数据。要使用其架构,请在“应用程序架构”下的“读取器设置”中,将“选择功能类型依据”更改为XSD,然后为“应用程序架构”输入其架构XSD文件的文件或url路径。要诊断有关读取数据的其他问题,请在FMEpedia中搜索与GML和XML读取诊断相关的文章。
在FME 2014之前,用户通常需要使用带有文本文件编写器的XMLTemplater来编写INSPIRE GML。现在,您只需添加一个INSPIRE writer,将“select feature types”设置为“by themes”,然后选择要写入的INSPIRE主题。FME基于INSPIRE模式将这些目标要素类型放置在工作区中。然后,只需要FME数据重组和模式映射来支持目标模式。您仍然需要从必填字段、关系、nillable字段等方面理解INSPIRE架构要求。通常,attributecorers用于进行架构字段映射,AttributeCreators用于定义默认值,AttributeValueMapper用于值映射。SchemaMapper可以使用存储在csv或excel表中的外部人行横道表跨多个功能类型执行所有这些操作。读取激励数据并将其写回的工作区正好需要0个转换器-请参阅附件工作区。INSPIRE reader/writer支持INSPIRE所需的所有复杂性,例如每个特征有多个几何图形、嵌套特征、重复元素、nillable元素。我们还简化了gui和工作区参数,使它们更易于使用。请注意,这是开始编写INSPIRE GML的好方法。一个往返的工作区,比如所附的工作区,加上一个记录器,将向您显示FME中需要什么样的数据结构才能写出符合GML的代码。
一个好的开始是GML基础写作范例。本文介绍了如何命名属性和几何图形的基本知识,以便将它们写出来没错。那个INSPIRE writer还有一个漂亮的打印设置。这在创建工作区原型以编写新主题时非常有用。打印精美的XML比序列化的XML更容易解决问题。对于大多数其他设置,默认writer参数应该是合适的,因为INSPIRE模式控制与这些参数相关的XML文档的结构。
注意,如果您希望使用一个新的草案模式,您可以用更新的模式覆盖FME附带的模式,或者只使用GML编写器。请注意,GML读取器将检查任何给定GML文件上的名称空间,并使用该名称空间确定要使用哪个读取器,因此GML读取器也可以用于读取INSPIRE数据。
如果不能验证输出,那么编写INSPIRE GML就没有多大意义。要检查这一点,可以使用XMLValidator根据上述url中相关主题的INSPIRE模式验证源数据。您还可以在FME\xml\schemas\inspire本地找到这些模式。XMLValidator使用ApacheXerces库进行验证,因此您知道结果是客观的。
最简单的方法是创建一个新的工作区,添加一个创建者,然后添加XMLValidator。将XMLValidator指向要测试的XML文件,并指向要验证的INSPIRE应用程序架构的XSD文件。将XMLValidator的输出连接到记录器。运行工作区并查看日志以查看XML是否有效。否则,您将得到一份完整的报告,列出与INSPIRE模式相关的XML问题。请注意,XMLValidator还有一个仅限语法的验证模式。有关示例,请参见所附的工作区。
FME服务器可用于提供由类似于上面所示的工作区驱动的在线验证服务。这是一个演示激励GML验证服务这允许您上传与任何附件一主题对应的数据并验证模式。此演示中使用的源代码和工作区可以从网站并修改为在您自己的FME服务器上部署。您可以根据需要使用FME transformers轻松地添加其他验证测试。
那么我们不再需要XMLTemplater了吗?不是这样的。XMLTemplater对于XML编写仍然非常有用,因为我们还没有基于模式的XML编写。在有些情况下,您需要生成GML,但没有GML应用程序模式。另外,有些模式非常大,而要写入的部分可能非常小,因此使用XMLTemplater可能更容易。元数据就是一个很好的例子。给定的组织可能有一个标准元数据模板,XMLTemplater可以配置为使用该模板。通常情况下,在FME中,解决任何给定问题的方法通常不止一种。不过,为了生成INSPIRE GML,您应该在尝试构建自己的模板之前尝试应用程序模式编写方法。
现在,通过OGC WFS将任何INSPIRE GML发布到web上要容易得多。实际上,您可以将web服务宿主工作区发布到处理HTTPOGC消息通信量以及GML响应的数据流服务。GetCapabilities和DescribeFeatureType请求只是工作区输入,它们被解析并用于通过文本文件编写器生成适当的GetCapabilities XML和DescribeFeatureType XSD响应。处理GetFeature请求以生成INSPIRE GML响应。一旦发布到FME服务器,输入就由数据流服务托管。这允许您配置几乎任何您想要的web服务,并且可以很容易地配置为支持XML过滤器、wfs2.0、WPS、WMTS等,所有这些都是通过配置您的工作区,而无需编写一行代码。更多信息请参见激发WFS演示.
你可以自己测试一下,选择任何INSPIRE GML数据集,然后建立一个读写它的工作区。附件GeoNamesGMLwriter\u FME2014.zip就是一个很好的例子。在datainspector中打开GML输出,查看它拥有输入的所有内容。然后检查以确保结果符合相关的INSPIRE模式。请注意,如果输出没有验证,首先要检查输入是否验证。如果输入数据无效,FME不会自动修复。还要注意的是,如果您想编写一个特定的INSPIRE主题,那么最好的第一步仍然是获得一些示例数据。然后您可以创建一个INSPIRE to INSPIRE工作区并记录结果。这将向您展示需要生成的FME特性的结构,以便驱动INSPIRE GML编写器。在诸如Notepad++之类的xml编辑器中查看GML也是一个好主意,以确保所有内容都在那里,并按照您的预期进行结构化。
如果你有任何问题,请联系支持人员..
XML中的地理名称功能示例:
2013-01-01T12:00:00 36.715000152587891 15.090000152587891 8756d185-ef24-4352-974b-82c263b43d69IT.IMA.GN公司意大利地名标准化帕奇诺行政单位
FME工作区日志中的INSPIRE GeographicalNames功能示例:
要素类型:`NamedPlace_LOGGED'属性(编码:utf-16):`beginLifespanVersion'具有值`2013-01-01T12:00:00'属性(字符串):`fme_要素类型'具有值`NamedPlace'属性(字符串):`fme_几何体'具有值`fme_point'属性(纠缠:字符串):`fme_Type'具有值`fme_point'%|-1440964106|%Attribute(编码:utf-16):`“gml\u id”有值`IT.IMA.GN公司.8756d185-ef24-4352-974b-82c263b43d69'属性(编码:utf-16):'gml\u original\u coordinate\u system'具有值`骨灰盒:ogc:定义:crs:EPSG::4326'属性(编码:utf-16):`inspireId.Identifier.localId'具有值'8756d185-ef24-4352-974b-82c263b43d69'属性(编码:utf-16):`inspireId.Identifier.namespace名称空间'有价值 `IT.IMA.GN公司'Attribute(encoded:utf-16):`localType{0}.localsedCharacterString'具有值'Regione'属性(encoded:utf-16):`localType{0}.LocalisedCharacterString.locale语言环境'具有值'it'属性(编码:utf-16):`name{0}。地理名称.language'具有值'意大利语'属性(编码:utf-16):`name{0}。地理名称.nameStatus' 具有值“standarized”属性(编码:utf-16):`name{0}。地理名称.本地性'具有值'endonym'属性(编码:utf-16):`name{0}。地理名称.sourceOfName'is属性(编码:utf-16):`name{0}。GeographicalName.sourceOfName.nilReason'具有值'unknown'属性(编码:utf-16):`名称{0}。地理名称.拼写{0}.拼写fname.script'具有值'Latn'属性(编码:utf-16):`name{0}。地理名称.拼写{0}.拼写fname.text'has value'PACHINO'属性(编码:utf-16):'type{0}'has value'Administrative unit'属性(字符串):'xml\u type'has value'xml\u point'坐标系:`EPSG:4326'几何体类型:IFMEPoint Name(utf-16):`geometry'几何特征数:1 GeometryTrait(编码:utf-16):`gml\u id'具有值`IT.IMA.GN公司.P8756d185-ef24-4352-974b-82c263b43d69'坐标尺寸:2(36.7150001525879,15.0900001525879)
©2019安全亚搏在线软件公司|法律