span8
span4
关于XML(可扩展标记语言)的常见问题解答。
问:如何读取XML?
1)首先,您需要确定FME是否支持将其作为标准XML配置文件,如GML、KML,LandXML等等。在“格式”库中键入“XML”或“GML”应该会列出大部分可用的格式。
如果FME不支持您的XML模式作为标准配置文件,然后你需要使用功能路径,Xfmaps或使用xquery支持将xml解释为结构化的FME特性。现在我们强烈建议您尝试一下带有特性路径的XML阅读器首先,由于我们最近对此进行了广泛的增强,以帮助用户避免使用脚本配置XML读取。只有当您已经熟悉XQuery或XfMap方法时,才可以尝试它们,或者已经尝试过特性路径,并且需要xfmap和XQuery为处理复杂几何图形或动态模式提供的附加功能。最后,如果不希望改变或扁平化基本的XML结构,但只执行更新,插入,删除其中的某些元素,然后,您应该研究XMLUpdater或XQuery转换器的使用。
问:使用FME编写XML有哪些选项?
将GML或XML写入特定的模式可能是一个棘手的问题。过去常常涉及xslt的使用。现在我们有一个新工具叫做XMLTemplater它允许您将特性数据与预先定义的xml模板合并。
在阅读器/编写器指南中查看GML和XML编写器文档。然后看看与在fmepedia上编写XML/GML相关的链接:
使用FME编写XML的四个主要选项是:
1.直接写入后面跟着的XMLXSLT如果需要,样式后处理。注意,这种方法不支持几何,只有属性记录。
2.FME有一个新工具叫做XMLTemplater它允许您将特性数据与预先定义的xml模板合并。基本上,您定义了一个模板,其中包含FME属性的占位符,以及在编写特性时替换的几何图形。
3.你可以用文本文件写入器写出你想要的任何文本数据,包括使用串接器和子串提取器等字符串处理转换器从FME特性生成的结构化xml文本。您可以使用类似模板的方法来读取文档的xml页眉和页脚,然后使用连接器将这个预定义的xml与数据结合起来。AttributeFileReader可以支持读取xml头和脚,然后可以从特性本身附加到xml属性。
4.您还可以使用GML编写器写出通用的GML,然后使用XSLT要将其格式化为特定的非gml,您需要的XML结构。这将是在非GML xml中支持几何的一种方法,假设XSLT中有一组转换规则,可以将GML几何映射到所需的xml几何。
XSLT可能是xml世界中更知名的脚本语言,但对许多人来说,它也是最难处理的,而且对于大型数据集存在性能问题。正因为如此,我建议大家先看看XMLTemplater这种方法通常具有最短的学习曲线,因为模板逻辑在不同的应用程序之间变化不大。还有一些新的basicXMLTemplater_Examples这应该会帮助你开始。记住,像往常一样,FME是一个强大的工具,可以为您做很多事情,但您仍然需要了解您的数据。XML也不例外,因此,回顾一些基本的xml概念和术语(如名称空间)并无不妥,元素,xsds等等,如果您是XML新手的话。
我们的GML编写器比xml编写器成熟一些,并被设置为处理几何,例如,而xml编写器只会写出非几何输出(属性),尽管在写出来之前,您总是可以将特性上的几何图形作为OGC WKT表示形式存储在几何文本列中。我们的通用XML编写器只处理平面,此时只输出tabular属性,因此在许多情况下,您最终将在工作区中构造XML并使用文本文件编写器将其写出来。
问) 您能给我一个最大输出xml文件大小的概念吗?
一)我们使用Xalan c++ XSLT引擎进行样式表转换。据我们所知,几乎所有XSLT引擎(DataPower中的流XSLT引擎除外)都是通过将所有文档加载到内存中来构建的。最大输出大小类似于尝试使用DOM而不是SAX或其他流XML API读取GML文档的问题。当文件大小超过30MB左右时,电脑可能会慢到爬行;如果你用IE或Firefox打开一个~10MB的xml文件,大多数的搜索框肯定会慢下来,但话又说回来,浏览器必须做一些额外的处理。然而,如果使用TextFile写入器输出xml,哪一个是典型的XMLTemplater,这个最大文件大小可能要大得多。
©2019安全亚搏在线软件公司法律