我在Talend中使用来自一个提供程序的xml文件定义了一个xml-schema。我有多个我需要单独处理的提供程序,但它们具有相同的xml格式。
我只想定义一次xml架构,但是在多个作业中使用它们,每个作业都有不同的文件名。然而,xml架构似乎对文件名很紧张,而更改文件名使其成为内置类型。我不想要构建类型,因为我希望对xml架构进行一次更改。
有人能指出我正确的方向吗?是否应该使用上下文来完成?
答案 0 :(得分:1)
可以为设置文件定义一个模式(使用提供的向导或自己构建它),然后只需从存储库中选择它就可以使用该模式。
因此,作为示例,您可能希望循环遍历XML文件的文件夹,并使用相同的模式为所有文件读取它们,然后将其加载到数据库中:
要执行此操作,您将从tFileList
开始,该Iterate
指向包含XML文件的文件夹。像往常一样设置它(您可能需要* .xml上的文件掩码“),然后通过tFileInputXML
流将其链接到指定文件名为((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"))
的{{1}}组件。Repository
。 / p>
现在从Schema
旁边的下拉框中选择Built-In
(默认为tMySQLOutput
。从此处只需选择之前为单个文件定义的XML架构。现在您可以仅使用已定义的模式但更改其他所有内容(您可能只想控制文件名并保持原样)。
现在,您只需将其连接到您选择的数据库组件,例如{{1}},并让数据库组件按常规方式插入行。
答案 1 :(得分:0)
这很常见,但不幸的是没有一个优雅的解决方案。
上下文变量仅限于原始类型(几乎),而唯一的方法是定义xml模式元数据,然后关闭内置以仅更改文件名。这非常难看,但AFAIK是唯一可能的解决方案。