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