2012-10-03 53 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你有没有设法让它工作? –