2012-01-10 90 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