2011-02-01 34 views
0

我试图使用SQL Server 2008 SSIS来读取XML文件并将其放入数据库,但我遇到了问题。我运行调试时一切都是绿色的,但实际上没有数据传输。即使创建一个简单的XML Source - > Flat File输出,平面文件在创建后也是空白的。遇到XML文件和SQL Server 2008的问题SSIS

我正在使用内联模式,但即使我删除模式SSIS也无法生成XSD文件。

这里的XML:

<?xml version="1.0" encoding="utf-16"?> 
<DataSet> 
    <xs:schema id="Schedule_x0020_Set" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
    <xs:element name="Schedule_x0020_Set" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
     <xs:complexType> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
      <xs:element name="Schedule_x0020_Table"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="ScheduleDate" type="xs:string" minOccurs="0" /> 
       <xs:element name="StaffLName" type="xs:string" minOccurs="0" /> 
       <xs:element name="StaffFName" type="xs:string" minOccurs="0" /> 
       <xs:element name="TaskName" type="xs:string" minOccurs="0" /> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
     </xs:choice> 
     </xs:complexType> 
    </xs:element> 
    </xs:schema> 
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> 
    <Schedule_x0020_Set> 
     <Schedule_x0020_Table diffgr:id="Schedule Table1" msdata:rowOrder="0" diffgr:hasChanges="inserted"> 
     <ScheduleDate>1/24/2011</ScheduleDate> 
     <StaffLName>Smith</StaffLName> 
     <StaffFName>Josh</StaffFName> 
     <TaskName>Day Shift</TaskName> 
     </Schedule_x0020_Table> 
     <Schedule_x0020_Table diffgr:id="Schedule Table2" msdata:rowOrder="1" diffgr:hasChanges="inserted"> 
     <ScheduleDate>1/24/2011</ScheduleDate> 
     <StaffLName>Doe</StaffLName> 
     <StaffFName>Jane</StaffFName> 
     <TaskName>Night Shift</TaskName> 
     </Schedule_x0020_Table> 
     <Schedule_x0020_Table diffgr:id="Schedule Table3" msdata:rowOrder="2" diffgr:hasChanges="inserted"> 
     <ScheduleDate>1/24/2011</ScheduleDate> 
     <StaffLName>Johnson</StaffLName> 
     <StaffFName>Barbara</StaffFName> 
     <TaskName>Off</TaskName> 
     </Schedule_x0020_Table> 
    </Schedule_x0020_Set> 
    </diffgr:diffgram> 
</DataSet> 

回答

0

我不得不使用下面的文件来得到它的工作。它只在我更改模式并删除diffgr时才开始工作。希望这可以帮助。

<DataSet>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"><xs:element name="DataSet">
<xs:complexType>
<xs:sequence>
<xs:element ref="Schedule_x0020_Set"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Schedule_x0020_Set">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Schedule_x0020_Table"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Schedule_x0020_Table">
<xs:complexType>
<xs:sequence>
<xs:element ref="ScheduleDate"/>
<xs:element ref="StaffLName"/>
<xs:element ref="StaffFName"/>
<xs:element ref="TaskName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ScheduleDate" type="xs:string"/>
<xs:element name="StaffLName" type="xs:NCName"/>
<xs:element name="StaffFName" type="xs:NCName"/>
<xs:element name="TaskName" type="xs:string"/>
</xs:schema>
<Schedule_x0020_Set>
<Schedule_x0020_Table>
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Smith</StaffLName>
<StaffFName>Josh</StaffFName>
<TaskName>Day Shift</TaskName>
</Schedule_x0020_Table>
<Schedule_x0020_Table>
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Doe</StaffLName>
<StaffFName>Jane</StaffFName>
<TaskName>Night Shift</TaskName>
</Schedule_x0020_Table>
<Schedule_x0020_Table>
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Johnson</StaffLName>
<StaffFName>Barbara</StaffFName>
<TaskName>Off</TaskName>
</Schedule_x0020_Table>
</Schedule_x0020_Set>
</DataSet>