我有一个xml文件,其中附加了一些数据和内联架构。 如果我在SSIS(2008或2005)xml源组件中使用它,我没有输出到任何目的地(尝试过,原始文件,平面文件,excel,ole db,db目的地)。
列出现就好了,在以下组件中映射(例如db目标)似乎可以正常工作,映射正常。
然后如果我运行ssis包,检查没问题,测试没问题,一切都在“绿色”,但最后0行写到目的地......;(
我对此进行了相当多的研究,有些情况是缺少列,数据类型转换,架构问题(我有一个有效的内联架构)等。
以下是虚拟数据的示例,还有5个其他模式,其中包含更多列。
<?xml version="1.0" encoding="utf-16"?>
<DataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="CompanyNameID" type="xs:int" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Description" 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">
<NewDataSet>
<Table diffgr:id="Table1" msdata:rowOrder="0">
<CompanyNameID>1</CompanyNameID>
<Name>a</Name>
<Description />
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1">
<CompanyNameID>7</CompanyNameID>
<Name>b</Name>
<Description />
</Table>
<Table diffgr:id="Table3" msdata:rowOrder="2">
<CompanyNameID>6</CompanyNameID>
<Name>c</Name>
<Description />
</Table>
</NewDataSet>
</diffgr:diffgram>
</DataSet>