span8
span4
阅读INSPIRE通常只需要指向源数据并选择INSPIRE格式。你可能需要选择轴顺序,如果它没有正确的方向。您还可以选择将复杂的属性映射为XML片段,然后使用扁平化选项(用空字符串替代列表括号),以便更容易地将多个嵌套元素映射为关系结构,如在GIS中。
地图名字{0}.GeographicalName.spelling {0} .SpellingOfName。text to name0.GeographicalName.spelling.SpellingOfName.text
要保留XML结构,请将Map复杂属性的默认读取器设置设置为“嵌套属性”。对于模式,显示来自:“数据集仅具有从模式合并的属性”的特征类型通常会产生最佳结果。
INSPIRE的复杂性之一是,每个特性可以包含多个几何图形。例如,除了一个多边形外,一个包裹可能有一个参考点和一个被框包围的点。默认情况下,FME读取所有这些几何图形。这可能需要在工作空间中通过反聚合和过滤来简化几何图形。要消除框的限制,只需取消“读取预定义属性”读取器设置。边界框可能很麻烦,因为它们可以完全覆盖您真正希望看到的功能,因此能够关闭它是有帮助的。
如果您根本无法读取您的特性,那么您的源GML可能存在问题。有时,出版商声称他们的数据会招致抱怨,但事实并非如此。要检查源数据是否有效,请参阅下面的验证部分。因为有太多的INSPIRE模式,所以发布者通常会构建自己的伞形模式来调用他们发布的主题的所有模式,如果您从这样的数据源获取数据,那么没有他们的伞形模式就无法读取数据。要使用它们的模式,在Application schema的reader设置中,将“select feature types by”更改为XSD,然后在“Application schema”中输入它们的模式XSD文件的文件或url路径。要诊断阅读激发数据的其他问题,可以搜索FMEpedia,查找与GML和XML阅读诊断相关的文章。
在2014年FME之前,用户通常需要XMLTemplater和文本文件编写器来编写INSPIRE GML。现在,你需要做的就是添加一个激励作家,设置“选择功能类型”到“主题”,并选择你想写的激励主题。FME根据INSPIRE模式将这些目标功能类型放到工作空间中。然后就是FME数据重组和模式映射来支持目标INSPIRE模式的问题了。您仍然需要了解INSPIRE模式需求,包括必需字段、关系、可nillable字段等。通常使用AttributeCopiers进行模式字段映射,使用AttributeCreators定义默认值,使用AttributeValueMapper进行值映射。SchemaMapper可以使用存储在csv或excel表中的外部crosswalk表跨多个特性类型完成所有这些工作。一个读取激励数据并将其写回的工作空间正好需要0个转换器—请参阅所附的工作空间。INSPIRE读者/作者支持INSPIRE所需的所有复杂性,比如每个特性的多个几何图形、嵌套的特性、重复的元素、可修改的元素。我们还简化了gui和工作区参数,使它们更易于使用。注意,这是开始编写INSPIRE GML的好方法。一个往返的工作空间,如附件中的工作空间,加上一个日志记录器,将向您展示在FME中为了写出兼容的INSPIRE GML需要什么样的数据结构。
一个好的开始是基本启发GML写作范例。这涵盖了如何命名属性和几何图形以便正确地写出它们的基础知识。《激励》的作者也有一个漂亮的印刷环境。这在原型化工作空间以编写新主题时非常有用。与序列化XML相比,用漂亮的打印XML进行故障排除要容易得多。对于大多数其他设置来说,默认的writer参数应该是合适的,因为INSPIRE模式控制着与这些参数相关的XML文档的结构。
注意,如果您希望使用一个新的草案模式,您可以用更新后的模式覆盖已发布的模式,或者只使用GML写入器。注意,GML读取器将检查任何给定GML文件上的名称空间,并使用它来确定使用哪个读取器,因此GML读取器也可以用来读取INSPIRE数据。
如果您不能验证输出,那么编写INSPIRE GML就没有多大意义。要检查这一点,可以使用XMLValidator根据上面url中的相关主题的INSPIRE模式验证源数据。您还可以在FME\xml\schemas\inspire中找到这些模式。XMLValidator使用Apache Xerces库进行验证,因此您知道结果是客观的。
最简单的方法是创建一个新的工作区,添加一个创建者,然后是XMLValidator。将XMLValidator指向要测试的XML文件,并指向要验证的INSPIRE应用程序模式的XSD文件。将XMLValidator的输出连接到日志记录器。运行工作区并查看日志,以查看XML是否有效。如果没有,您将得到一份完整的报告,其中列出了与INSPIRE模式相关的XML问题。注意,XMLValidator也有一个语法验证模式。有关示例,请参见附加的工作区。
FME服务器可用于提供在线验证服务,由类似于上面所示的工作空间驱动。这是一个演示INSPIRE GML验证服务这允许您上传与任何附录I主题相对应的数据并验证模式。演示中使用的源代码和工作空间可从网站并修改为部署在自己的FME服务器。您可以根据需要使用FME转换器轻松地添加其他验证测试。
那么,我们不再需要XMLTemplater了吗?不是这样的。XMLTemplater对于XML编写仍然非常有用,因为我们还没有基于模式的XML编写。还有一些情况需要生成GML,但是没有GML应用程序模式。另外,有些模式非常大,希望写入的部分可能非常小,因此使用XMLTemplater可能更容易。元数据就是一个很好的例子。一个给定的组织可能有一个标准的元数据模板,可以配置XMLTemplater来使用它。通常情况下,解决FME中任何给定问题的方法通常都不止一种。不过,为了生成INSPIRE GML,在尝试构建自己的模板之前,应该尝试应用程序模式编写方法。
现在,通过ogc wfs将inspire gml发布到web上要容易得多。事实上,您可以将托管工作区的web服务发布到处理http ogc消息通信量和gml响应的数据流服务。getCapabilities和describeFeatureType请求只是工作区输入,它们被解析并用于通过文本文件编写器生成适当的getCapabilities XML和describeFeatureType XSD响应。处理getfeature请求以生成inspire gml响应。一旦发布到fme服务器,输入就由数据流服务托管。这允许您几乎可以配置任何您想要的web服务,并且可以很容易地配置为支持xml过滤器、wfs 2.0、wps、wmts等,所有这些都可以通过配置您的工作区而无需编写一行代码。有关更多信息,请参见激发WFS演示。
你可以自己测试一下,选择任何inspire-gml数据集,建立一个读写工作区。附件geonamesgmlwriter_fme2014.zip就是一个很好的例子。在数据检查器中打开gml输出,查看it拥有输入所拥有的一切。然后检查以确保根据相关的inspire模式验证结果。注意,如果输出没有验证,首先要检查的是输入是否验证。如果输入数据无效,FME将不会自动修复它。还要注意,如果您想编写一个特定的inspire主题,一个好的第一步仍然是获取一些示例数据。然后您可以创建一个inspire to inspire工作区并记录结果。这将向您展示您需要生成的fme特性的结构,以便驱动您的inspire gml编写器。在诸如notepad++这样的xml编辑器中查看gml也是一个好主意,以确保所有东西都在那里,并且按照您的预期结构。
如果你有任何问题,请联系支持。。
XML中的Inspire GeographicalNames功能示例:
2013-01-01T12:00:00 36.715000152587891 15.090000152587891 8756D185-EF24-4352-974B-82C263B43D69IT.IMA.GN公司里贾内意大利内地名标准化帕奇诺行政单位
从FME工作区日志中激发地理名称功能的示例:
特征类型:`namedplace_logged'属性(编码:utf-16):`beginlifespanversion'具有值`2013-01-01t12:00:00'属性(字符串):`fme_特征_type'具有值`namedplace'属性(字符串):`fme_geometry'具有值`fme_point'属性(纠缠:字符串):`fme_type'具有值`fme_point'%.-1440964106_36%属性(编码:utf-16):` gml_id'有值'it.ima.gn.8756d185-ef24-4352-974b-82c263b43d69'属性(编码:utf-16):`gml_original_coordinate_system'有值'urn:ogc:def:crs:epsg::4326'属性(编码:utf-16):`inspireid.identifier.localid'有值'8756d185-ef24-4352-974b-82c263b43d69'属性(编码:utf-16):`inspireid.identifier.names'有值` it.ima.gn'属性(编码:utf-16):`localtype{0}.localisedcharacterstring'具有值“regione”属性(编码:utf-16):`localtype{0}.localisedcharacterstring.locale'具有值“it it”属性(编码:utf-16):`name{0}.geographicalname.language'具有值“意大利语”属性(编码:utf-16):`name{0}.geographicalname.namestatus'具有值“standardized”属性(编码:utf-16):`name{0}.geographicalname.nativeness'具有值“endonym”属性(编码:utf-16):`name{0}.geographicalname.sourceofname'为属性(编码:UTF-16):`名称{0} .GeographicalName.sourceOfName.nilReason '具有值'未知' 属性(编码:UTF-16):`名称{0} .GeographicalName.spelling {0} .SpellingOfName。脚本 '具有值'LATN' 属性(编码:UTF-16):`名称{0} .GeographicalName.spelling {0} .SpellingOfName.text '具有值'帕基诺' 属性(编码:UTF-16):`类型{0}' has value `Administrative unit' Attribute(string) : `xml_type' has value `xml_point' Coordinate System: `EPSG:4326' Geometry Type: IFMEPoint Name(utf-16): `geometry' Number of Geometry Traits: 1 GeometryTrait(encoded: utf-16): `gml_id' has value `IT.IMA.GN.P8756d185-ef24-4352-974b-82c263b43d69' Coordinate Dimension: 2 (36.7150001525879,15.0900001525879)
©2019安全亚搏在线软件公司法律