斯潘8
斯潘4
随着GML编写器的改进,FME取得了巨大的进步。现在您几乎可以写入任何应用程序模式(XSD),而无需使用xmlTemplater,XSLT或任何其他类型的脚本或转换后处理。只需指向要写入的应用程序架构(.xsd文件),并确保将GML版本参数设置为“应用程序模式”。一旦添加了数据集,然后需要从同一个模式中导入目标特征类型。然后,它只是一个问题的FME数据重组和模式映射,以支持该目标模式。
影响范围很广。基本上,我们现在可以读的任何GML都可以写。例如,读取激励数据并将其写回的工作区需要0个变压器-请参阅附加的工作区。GML编写器甚至支持每个功能的多个几何图形,嵌套功能,重复元素,nillable元素,三维几何图形等。我们还为我们的许多GML读写器简化了GUI和工作区参数,使它们更易于使用。此外,这也意味着通过OGC WFS将任何复杂的GML数据流发布到Web上要容易得多。
FME有几个新的作者,包括Inspire GML和AIXM 5.1,它们都建立在这个能力之上。请注意,这些新的基于模式的编写器不需要您指定应用程序模式,因为它们是基于标准的,并且随附了FME。然而,如果您希望使用新的草稿模式,您可以用更新后的FME覆盖一个出厂的FME,或者使用GML编写器。请注意,GML读卡器将检查任何给定GML文件上的名称空间,并使用该名称空间确定要使用的读卡器。
如果无法验证输出,则写入指定架构的意义不大。在FME中,我们使用XMLvalidator转换器来实现这一点。它使用Apache Xerces库进行验证,所以你知道结果是客观的。最简单的方法是创建一个新的工作区,添加一个创建者,然后是xmlvalidator。将xmlvalidator指向要测试的XML文件和要验证的应用程序架构的xsd文件。将xmlvalidator的输出连接到记录器。运行工作区并查看日志以查看XML是否有效。如果没有,您将得到一个完整的报告,列出与该模式相关的XML问题。请注意,XMLvalidator也有一个仅限语法的验证模式。有关此示例,请参阅附加的工作区。
那么我们不再需要xmlTemplater了吗?不是这样。XML模板对于XML编写仍然非常有用,因为我们还没有基于模式的XML编写。在没有GML应用程序模式的情况下,还需要生成GML。也,有些模式太大了,你想写的部分可能很小,使用xmlTemplater可能更容易。元数据就是一个很好的例子。给定的组织可能有一个标准的元数据模板,可以将xmlTemplater配置为使用该模板。通常情况下,通常有不止一种方法来解决FME中的任何给定问题。仍然,如果您有GML应用程序模式,在尝试构建自己的模板之前,应该尝试应用程序模式编写方法。
通过选择任何GML数据集并设置一个读写它的工作区来自己测试这个问题。检查以查看输出中是否包含作为输入的所有内容,并且仍然针对XSD进行验证。请注意,如果输出没有验证,首先要检查的是输入是否有效。如果输入数据无效,FME不会自动修复。还要注意,如果您想要写入一个特别复杂的模式,一个好的第一步仍然是获取一些样本数据。然后您可以将GML创建到GML工作区并记录结果。这将向您展示您需要生成的FME特性的结构,以便驱动GML编写器。还要注意,并非所有的GML应用程序模式都是格式良好的。例如,一些应用程序模式可能依赖于不可用的导入或包含的模式。其他人可能有未完全定义的抽象特征类型定义,因此FME无法从中构建完整的特征类型定义。
?2019安全亚搏在线软件公司|合法的