2010-08-27 80 views
0

我正在开发一个SSIS包,用于将XML文件中的数据添加到现有的SQL Server表中。我已经完成了几个类似的项目,但在这个XML文件,我得到的错误从数据流标签中的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

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

您需要使用文本编辑器从文件中篡改该字符,并查看产生它的任何破解源文件。

(不幸的是我们看不到这个字符贴在这里,因为它是一个通常无形的控制代码,StackOverflow可以过滤出来,但是一个好的文本编辑器应该能够显示某种标记。错误中的列号表明它在c4属性值的开始处,尽管这不一定可靠。)

+0

THanks!我只是研究了我自己和你的正确。我研究了一些关于XML 2.0的内容,但它似乎并不支持这个特性。你能证实吗? – salvationishere 2010-08-27 16:16:08

+0

XML 1.1允许字符,但只能编码为字符引用,例如。 ''。这样做的目的很少。目前XML 2.0并不存在,它只是被删除XML的遗留问题而被启动的想法。 – bobince 2010-08-27 16:34:06

+0

太棒了!非常感谢! – salvationishere 2010-08-27 16:37:44

相关问题