Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在SSIS 2012中使用Foreach循环容器时,如何修复XML源中的源为空错误?_Variables_Ssis_Mapping_Foreach Loop Container - Fatal编程技术网

Variables 在SSIS 2012中使用Foreach循环容器时,如何修复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任务时,总是

我对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在我的博客中链接到你的伟大答案:谢谢!