Variables 在SSIS 2012中使用Foreach循环容器时,如何修复XML源中的源为空错误?
我对SSIS 2012中的一项非常简单的任务有疑问 在for-each-FILE枚举器模式下运行的每个容器都有一个for。我想读取包含XML文件的目标文件夹。文件夹的路径配置正确。文件字段设置为*.xml 变量映射是使用以下变量定义的:User::FileVar,索引0 现在,我在容器中添加了一个简单的数据流任务。数据流任务只有一个XML数据源任务,就是这样。对于XML数据源任务,将设置XSD位置。当我单击ChooseColumns时,我可以看到XSD模式中的列 但是:当我保存XML任务时,总是会收到错误消息:Variables 在SSIS 2012中使用Foreach循环容器时,如何修复XML源中的源为空错误?,variables,ssis,mapping,foreach-loop-container,Variables,Ssis,Mapping,Foreach Loop Container,我对SSIS 2012中的一项非常简单的任务有疑问 在for-each-FILE枚举器模式下运行的每个容器都有一个for。我想读取包含XML文件的目标文件夹。文件夹的路径配置正确。文件字段设置为*.xml 变量映射是使用以下变量定义的:User::FileVar,索引0 现在,我在容器中添加了一个简单的数据流任务。数据流任务只有一个XML数据源任务,就是这样。对于XML数据源任务,将设置XSD位置。当我单击ChooseColumns时,我可以看到XSD模式中的列 但是:当我保存XML任务时,总是
属性XMLDataVariable为空
。我尝试了两种数据访问模式:变量中的XML文件和变量中的XML数据。错误消息仍然存在,我无法运行包
我不在foreach循环容器或数据流任务中使用任何表达式
我不知道这里出了什么问题,我完全按照旧版本SSIS的一些教程中所示的步骤进行了操作
您有什么想法吗?问题是XML源试图在设计期间验证给定文件的存在性。但是,只有在运行时Foreach循环容器执行并循环给定文件夹中的每个XML文件时,您才会知道文件名
我使用对其他SO问题之一的回答重新创建了SSIS 2012包。
我能够重现错误XML源上的属性“XMLDataVariable”为空
在XML源代码上,我将属性ValidateExternalMetadata
设置为False
。将此设置为false将强制包在设计时不验证xml文件路径的存在
我成功地执行了这个包
希望这能有所帮助。@Siva已经回答了这个问题,所以这条评论是mootI在我的博客中链接到你的伟大答案:谢谢!