2012-10-03 56 views
1

我遇到了XML數據源的一些問題。基本上我想打到xml文檔,然後在文檔中拉回兩個值(狀態和說明)並將它們記錄到表格中。當我嘗試查看文檔中的可用列時,在「XML源編輯器」SSIS屏幕中看不到任何可用的列,但單擊「列」選項卡時沒有收到任何錯誤,只是沒有列可用。我猜測,XML數據是不夠複雜,以便從閱讀下面的站點使用它:SSIS XML數據源問題 - SQL Server 2008 R2

http://resquel.com/ssb/CommentView,guid,4fac4c46-b1e1-48a5-9434-4fa5e3eac48f.aspx http://blogs.msdn.com/b/mattm/archive/2007/12/11/using-xml-source.aspx

但是我找不到,告訴我一個明確的方式或任何文件另一個。任何幫助是極大的讚賞!

XML文檔在這裏:

<?xml version='1.0' encoding='ISO-8859-1'?> 
<Response> 
    <Status>Error</Status> 
    <Description>Transaction Already Approved</Description> 
</Response> 

XSD格式我使用的是這裏:

<?xml version="1.0"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Response"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element minOccurs="0" name="Status" type="xs:string" /> 
     <xs:element minOccurs="0" name="Description" type="xs:string" /> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

回答

0

你的XML文檔看起來很簡單...你嘗試使用的 「生成XSD」 按鈕「XML Source」生成一個可以由SSIS管理的簡單XSD?

+0

是的,這就是我附加的XSD文檔的位置,我根本沒有改變它。 – crosan

1

修改生成的XSD添加maxOccurs="unbounded屬性如下:

<?xml version="1.0"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Response"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element minOccurs="0" maxOccurs="unbounded" name="Status" type="xs:string" /> 
     <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" type="xs:string" /> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

接受對話框,那麼你會得到你的兩個字段在嚮導的列視圖combolist。

我希望它有幫助。

+0

謝謝胺!這讓我更接近,但現在這兩個元素顯示爲組名稱,我無法將實際元素值從文檔中拉出。它幾乎看起來像元素是否有子元素它會工作。 – crosan

+0

@crosan你有沒有設法讓它工作? –