XML任务错误消息十六进制无效字符

时间:2010-08-27 13:40:48

标签: xml ssis task

我正在开发一个SSIS包,用于将XML文件中的数据添加到现有的SQL Server表中。我已经完成了几个类似的项目,但是在这个XML文件中,我从XML任务和数据流任务之间的数据流选项卡中得到错误:

Error: 0xC002F304 at XML Task, XML Task: An error occurred with the following error message: 
"'', hexadecimal value 0x15, is an invalid character. Line 28, position 54.".
Error: 0xC002928F at XML Task, XML Task: Property "New Source" has no source Xml text; 
Xml Text is either invalid, null or empty string.
Task failed: XML Task
Warning: 0x80019002 at zSTU_TS_Element: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (2) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
SSIS package "zStu_TS_Element.dtsx" finished: Failure.

你知道我怎么解决这个问题吗?

这是我从XML文件中引用的行:

<z:row c0='12' c1='80' c2='2006-04-17' c3='539' c4='1M2083N4N5N6N75800901110 11 '/>

1 个答案:

答案 0 :(得分:1)

没错。字符“U + 0015否定确认”(0x15,ASCII 21)是一个控制代码,不能放入XML 1.0文件中。您拥有的XML文件格式不正确(因此不是真正的XML文件);尝试在任何其他XML阅读器(例如IE)中打开它,你应该得到同样的错误。

你需要使用文本编辑器从文件中删除该字符,并查看产生它的任何破坏源。

(不幸的是我们看不到这里贴出的字符,因为它是StackOverflow过滤掉的典型隐形控制代码。但是,一个优秀的文本编辑器应该能够显示它所在的某种标记。错误中的列号表明它位于c4属性值的开头,但这不一定可靠。)