Data Studio 工作流文件内容及其结构
作者:王方舟
DATA STUDIO 在存储 Workflow 后会在工程文件下建立若干的文件夹及文件:
其中 DATA STUDIO 工程中的每一个 Node 的信息会存在类型 ( 编号 ) 的文件夹下,其中编号是该 Node 在工作流下被创建的顺序号。另外,出去这些 Node 的文件夹之外,还会有 4 个单独的文件,用来保存工作流的各种信息,分别是: .lock 、 .project 、 .savedWithData 、 workflow.knime 。
.lock 文件只在当前工程被打开时存在,用于存储 DATA STUDIO 工程文件的写锁信息。
.project 文件用于存储工程的信息,该文件在第一次创建工程时创建。
除了 XML 头信息之外,利用标签 <projectDescription> 作为根标签,维护一个工程信息的列表:
<projectDescription>
<name> 工程的名字 </name>
<projects></projects>
<buildSpec></buildSpec>
<natures>
<nature>org.knime.workbench.ui.KNIMEProjectNature</nature>
</natures>
</projectDescription>
注:经过实验改变工程的名字操作将不会影响 name 字段。
.savedWithData 文件是用来存储 Workflow 最后一次修改的时间及修改的用户的信息。
workflow.knime 文件中存储的是 Workflow 的 NodeSettings 信息,结构是以 <config key = “” > 作为根标签、由 key, type, value 构成的 entry 作为子标签。整个 save 的过程在 WorkflowPersistorVersion1xx 的 save 方法中。
其中第一部分是用来保存该工程使用的 DATA STUDIO 版本、作者信息、以及创建和修改的时间信息:
<config xmlns= ”” xmlns:xsi = “”… key = “ workflow.Data Studio ” >
<entry key = “” type= ”” value= ”” />
…
</config>
之后建立子 NodeSettings 用来描述工作流中每个 Node 的信息及其 settings 文件所存储的位置、节点的 UI settings( 所在的位置信息 ) :
<config key = “ nodes ” >
<config key = “ node_n ” >
<entry key = “ id ” , type = “ xint ” , value = “ 1 ” />
<entry key = “ node_settings_file ” type = “ xstring ” value = “ File Reader (#1)/settings.xml/>
…
同时构建 node_n 的 settings.xml 文件
接着是节点之间的连接 (Connections) 的信息:
<config key = “ connections ” >
<config key = “ connection_0 ” > 源节点的 ID 、目标节点的 ID 、连接的源节点的端口号、连接的目标节点的端口号。
最后保存 workflow_editor_settings 的信息,包括对齐网格、显示网格、网格的大小信息及当前 Workflow 的 Zoom 值。