斯潘8
斯潘4
XML是一种标记语言,允许用户在Web服务之间交换数据。在FME服务器中,可以使用数据流服务发布工作区,以便轻松创建Web应用程序,以流式传输存储为XML的空间数据。
下面的示例显示了如何创建一个工作区,该工作区将空间数据写入XML,然后将XML发布到FME服务器,以生成一个可用于在Web服务中传输数据的直接URL。本教程的第二部分将概述采用GML格式的数据流服务-anOGC规范用于以XML表示地理数据。
按照下面的说明创建一个工作区,该工作区将以XML形式写出数据,然后可以使用数据流服务发布到FME服务器。如果要跳到步骤8,则此工作区的完整版本可用。
XML文档通常由至少两个组件组成:
1。创建城市名称属性
若要创建根元素,请将attributeCreator转换器添加到空白工作区,并将新属性设置为“city name”,将属性值设置为“austin bus routes”。这个转换器需要一个输入来运行,所以在attributeCreator之前添加一个创建者转换器。
属性创建者参数对话框
2。添加SDF读卡器
在本例中,子模板将列出奥斯汀公交路线的几何图形。首先,我们需要读取transit.sdf数据集。使用以下参数添加读卡器:
格式 | Autodesk MapGuide企业版SDF |
数据集 |
|
在选择“确定”之前,打开参数…在“约束”下,选择“表”列表旁边的省略号“…”,然后选择“默认.busroutes”功能。
添加SDF读卡器并选择要从表列表中读取的功能类型
三。提取特征几何
添加geometryextractor转换器并将其连接到读卡器输出端口,在参数中将geometry编码更改为“fme xml”。此转换器将与每个总线路由关联的几何体转换为XML结构。
如果要添加一个检查器并立即运行工作区,每个特征都有一个额外的几何属性,其外观如下:
…
注意到
4。设置XML模板
现在您已经为最终的XML文件创建了这两个需求,我们可以使用xmlstemplater转换器将它们放在一起。当这个转换器第一次添加到画布上时,它只有一个根输入,所以打开参数编辑器,选中子模板框,并命名端口总线路径。
在根模板表达式中,复制以下代码行:
fme:get属性(“cityname”) FME:过程特性(“总线路径”)
此模板声明文档将是XML,还将写出步骤1中创建的cityname属性的值。
您可以编辑此模板以包括其他属性数据,只要根端口正在接收该数据。
注:行FME:流程功能(“总线路径”)是一个与我们要创建的子模板相关联的占位符。每个公交路线将作为
在子模板表达式中添加以下代码行:
fme:get属性(“line_id”) fme:get attribute(“line_name”) fme:get xml属性(“_geometry”)
此子模板告诉文档在详细描述路线的几何图形之前添加总线路线ID和名称。
注意:行fm:get xml属性(“ geometry”)拉入在geometryextractor中创建的xml geometry功能。注意,这是一个get xml属性函数,而不是通常的get属性,这是为了告诉模板这些属性已经用XML编写,并除去几何体本身以外的所有内容。
注意:如果您有一个XML模式(XSD)文件,那么可以使用xmlsamplegenerator转换器创建一个XML模板,该模板可以用作xmlsemplater中的基。
在关闭参数编辑器之前,请将结果属性名称更改为“文本\u行\u数据”。
5。将数据连接到XML模板
如果尚未这样做,请将attributeCreator连接到根输入,将geometryextractor连接到总线路径输入。xmlTemplater将创建一个具有包含整个文档的属性的功能。
6。格式化XML文件
添加一个xmlFormatter,并将带有xml文本的属性更改为“text_line_data”,对包含xml输出的属性执行相同的操作。我们可以在写数据之前使用这个转换器来清理线条和外观。
用XML文本将text_line_data属性设置为1
7。添加文本文件编写器
XML文档现在可以导出到文本文件了。添加具有以下参数的写入程序:
格式 | 文本文件 |
数据集 | XML文件 |
在参数中…从下拉列表中将mime类型更改为text/xml。
添加mime类型设置为text/xml的文本文件编写器
注意:这里我们使用的是文本文件编写器而不是XML编写器,因为我们已经在一个属性中生成了整个XML文档,所以所需要的只是将编写器指向这个文本行数据属性。在使用数据流服务时,必须设置正确的mime类型。
8。运行工作区
在将工作区发布到FME服务器之前,运行工作区并在文本编辑器中检查输出,以查看您创建了什么。
XML返回到文本文件
9。将工作区发布到FME服务器
将工作区发布到FME服务器文件>发布到FME服务器。创建一个名为XML教程的新存储库,并确保选中“上载数据文件”框。仅将工作区注册到数据流服务。
10。使用数据流服务运行工作区
打开FME服务器Web界面,在主页上最新发布的工作区下找到您的工作区。单击工作区以运行它,这将自动将XML流返回到浏览器。或者返回“运行工作区”页面并显示“高级”部分。在这里,您可以找到直接的URL来设置一个链接,以直接使用Web服务运行此工作区。
在FME服务器运行工作区页面上的直接URL示例位置
注意:您还可以根据此数据流服务的成功或失败创建要通知的主题。
此示例演示如何将空间数据集写出GML格式,以生成自己的XML模式,该模式可用于在Web服务中传输数据。
1。使用GML读卡器生成工作区
写入GML比写入XML简单得多,因为它不需要任何格式。打开FME Workbench并选择Generate Workspace。使用下表设置参数:
读者格式 | Autodesk MapGuide企业版SDF |
读者数据集 |
|
读卡器参数 | 约束>表列表>默认.busroutes |
写入格式 | 地理标记语言 |
写入数据集 | C:\总线路径\gml.gml |
书写器坐标系 | LL84 |
“生成工作区完成”对话框
2。运行工作区
运行工作区,然后将鼠标悬停在GML编写器上并选择“打开包含文件夹”图标。
.注意,通过运行这个工作区,创建了两个文件——包含所有数据的GML文件和一个XML模式文件。
运行工作区创建的GML和XML架构文件
三。更新编写器以使用架构
返回到工作区,在导航器面板下右键单击总线路径写入程序并选择“更新写入程序…”。
在导航器窗口中更新编写器
打开参数选项卡,在GML版本下,将设置从3.1.1更改为GML应用程序架构,然后在应用程序架构中浏览到刚刚创建的.xsd文件。一旦写入程序成功更新,您现在可以将工作区发布到FME服务器。
将XML架构文件添加到GML编写器
4。发布到数据流服务下的FME服务器
当将工作区发布到FME服务器时,将工作区注册到数据流服务,并注意到这一次它以红色突出显示,这意味着一个或多个参数需要用户输入才能成功转换。单击“编辑”,然后单击“包括要传输的浏览器”旁边的椭圆,并确保选择了总线路径文件。
编辑数据流服务属性以将GML文件作为写入程序包含到流中
5。从FME服务器运行工作区
返回到FME服务器Web界面并选择运行工作区,或者,可以在高级部分下找到将此数据流链接到Web服务的URL,如流XML示例中所示。
在FME服务器中运行工作区返回的GML流的代码段
OGCWeb功能服务(WFS)由FME服务器支持,并且能够返回具有空间几何特征的特性,如本文中介绍的示例。有关如何使用FME服务器创建WFS服务的详细说明,请参阅在这里.
或者,您可能对流式处理其他数据格式感兴趣,在这种情况下,本文可能会感兴趣:使用FME服务器传输geojson。
本文中使用的数据源于奥斯丁城得克萨斯州.它包含根据公共领域奉献许可证(奥斯汀市)授权的数据。
?2019安全亚搏在线软件公司|合法的