2012-01-10 45 views
1

虽然使用XML源组件加载在SSIS一个XML文件的XML文件XSD,我得到一个错误而生成所述XSD
示例XML是无法推断.XML包含多个名称空间

<?xml version="1.0"?> 
    <!-- RSS generated by Radio UserLand v8.0.5 on 9/30/2002; 4:00:00 AM Pacific --> 
    <rss version="2.0" xmlns:blogChannel="http://backend.userland.com   /blogChannelModule"> 
    <channel> 
    <title>Scripting News</title> 
    <link>http://www.scripting.com/</link> 
    <description>A weblog about scripting and stuff like that.</description> 
    <language>en-us</language> 
    <blogChannel:mySubscriptions>http://radio.weblogs.com/0001015 /gems/mySubscriptions.opml</blogChannel:mySubscriptions> 
    <blogChannel:blink>http://diveintomark.org/</blogChannel:blink> 
    <copyright>Copyright 1997-2002 Dave Winer</copyright> 
    <lastBuildDate>Mon, 30 Sep 2002 11:00:00 GMT</lastBuildDate> 
    <ttl>40</ttl> 
    <item> 
    <description>"rssflowersalignright"With any luck we should have one or two more days of namespaces stuff here on Scripting News.</description> 
    <pubDate>Mon, 30 Sep 2002 01:56:02 GMT</pubDate> 
    <guid>http://scriptingnews.userland.com/backissues/2002/09/29#When:6:56:02PM</guid> 
    </item> 
</channel> 

请让我知道是否有产生XSD比SSIS

回答

1

其他的方式的问题是,你有你的XML文件中有多个命名空间。在你的文件的顶部,你可以看到:

"< ?xml version="1.0"?> < !-- RSS generated by Radio UserLand v8.0.5 on 9/30/2002; 4:00:00 AM Pacific --> < rss version="2.0" xmlns:blogChannel="http://backend.userland.com /blogChannelModule">"

如果你打开在记事本中的XML文件,或者一些其他的编辑器,你可以删除

"< rss version="2.0" xmlns:blogChannel="http://backend.userland.com /blogChannelModule">"

的RSS版本线正在将该文件声明为rss。问题在于rss名称空间声明与xml名称空间声明碰撞。删除rss行应该允许您在SSIS中加载文件,然后生成XSD。

希望有所帮助。

+0

我在此代码中只能看到一个“xmlns”声明。这不是说只有一个命名空间吗?或者是否存在某种固有名称空间,这又意味着SSIS无法导入任何包含“xmlns”的xml文件。这是一个相当大的问题。我希望每个XML文档至少包含一个名称空间声明 – 2015-10-06 04:37:07