当 运行 具有 XML 源和内联架构的 SSIS 数据流任务未读取任何内容

When Running SSIS Data Flow Task with XML Source and Inline Schema Nothing is Read

我有一个很大的 XML 文件,我一直在尝试使用 SSIS 中的数据流任务将其加载到 SQL table 中。我有一个 XML 来源和一个 ADO.NET 目的地。当我 运行 包时,即使 XML 文件有很多记录,也没有读取任何内容,就像它无法读取子元素一样。 XML 文件有内联 XSD 所以我在属性中检查了它。对于我的生活,我无法阅读记录。请找到 XML.

<?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="StationID" type="xs:int" />
                <xs:element name="Station" minOccurs="0">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:maxLength value="60" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element name="Market" minOccurs="0">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:maxLength value="30" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element name="Format" minOccurs="0">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:maxLength value="30" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element name="earliest_report_data" type="xs:dateTime" minOccurs="0" />
                <xs:element name="FCC_ID" type="xs:int" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table" />
        <xs:field xpath="StationID" />
      </xs:unique>
    </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">
        <StationID>2978</StationID>
        <Station>WKDD-FM</Station>
        <Market>Akron</Market>
        <Format>Hot AC</Format>
        <earliest_report_data>2006-11-28T00:00:00-05:00</earliest_report_data>
        <FCC_ID>43863</FCC_ID>
      </Table>
      <Table diffgr:id="Table2" msdata:rowOrder="1">
        <StationID>2975</StationID>
        <Station>WNIR-FM</Station>
        <Market>Akron</Market>
        <Format>News/Talk</Format>
        <earliest_report_data>2006-11-28T00:00:00-05:00</earliest_report_data>
        <FCC_ID>41077</FCC_ID>
      </Table>
      <Table diffgr:id="Table3" msdata:rowOrder="2">
        <StationID>2977</StationID>
        <Station>WONE-FM</Station>
        <Market>Akron</Market>
        <Format>Classic Rock</Format>
        <earliest_report_data>2006-11-28T00:00:00-05:00</earliest_report_data>
        <FCC_ID>43873</FCC_ID>
      </Table>
      <Table diffgr:id="Table4" msdata:rowOrder="3">
        <StationID>2976</StationID>
        <Station>WQMX-FM</Station>
        <Market>Akron</Market>
        <Format>Country</Format>
        <earliest_report_data>2006-11-28T00:00:00-05:00</earliest_report_data>
        <FCC_ID>43872</FCC_ID>
      </Table>
      <Table diffgr:id="Table5" msdata:rowOrder="4">
        <StationID>2804</StationID>
        <Station>WAJZ-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Rhythmic</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>35537</FCC_ID>
      </Table>
      <Table diffgr:id="Table6" msdata:rowOrder="5">
        <StationID>2797</StationID>
        <Station>WFLY-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Top 40</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>832</FCC_ID>
      </Table>
      <Table diffgr:id="Table7" msdata:rowOrder="6">
        <StationID>2793</StationID>
        <Station>WGDJ-AM</Station>
        <Market>Albany, NY</Market>
        <Format>News/Talk</Format>
        <earliest_report_data>2009-06-28T00:00:00-04:00</earliest_report_data>
        <FCC_ID>40768</FCC_ID>
      </Table>
      <Table diffgr:id="Table8" msdata:rowOrder="7">
        <StationID>2795</StationID>
        <Station>WGNA-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Country</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>72118</FCC_ID>
      </Table>
      <Table diffgr:id="Table9" msdata:rowOrder="8">
        <StationID>2791</StationID>
        <Station>WGY-AM</Station>
        <Market>Albany, NY</Market>
        <Format>News/Talk</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>15329</FCC_ID>
      </Table>
      <Table diffgr:id="Table10" msdata:rowOrder="9">
        <StationID>2805</StationID>
        <Station>WINU-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Alternative Rock</Format>
        <earliest_report_data>2008-12-06T00:00:00-05:00</earliest_report_data>
        <FCC_ID>27551</FCC_ID>
      </Table>
      <Table diffgr:id="Table11" msdata:rowOrder="10">
        <StationID>2803</StationID>
        <Station>WKKF-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Top 40</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>17030</FCC_ID>
      </Table>
      <Table diffgr:id="Table12" msdata:rowOrder="11">
        <StationID>2798</StationID>
        <Station>WKLI-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Country</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>4682</FCC_ID>
      </Table>
      <Table diffgr:id="Table13" msdata:rowOrder="12">
        <StationID>2807</StationID>
        <Station>WPBZ-FM</Station>
        <Market>Albany, NY</Market>
        <Format>AC</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>40767</FCC_ID>
      </Table>
      <Table diffgr:id="Table14" msdata:rowOrder="13">
        <StationID>2799</StationID>
        <Station>WPYX-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Classic Rock</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>73911</FCC_ID>
      </Table>
      <Table diffgr:id="Table15" msdata:rowOrder="14">
        <StationID>2806</StationID>
        <Station>WQBK-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Classic Rock</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>6613</FCC_ID>
      </Table>
      <Table diffgr:id="Table16" msdata:rowOrder="15">
        <StationID>2792</StationID>
        <Station>WROW-AM</Station>
        <Market>Albany, NY</Market>
        <Format>Adult Standards</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>54853</FCC_ID>
      </Table>
      <Table diffgr:id="Table17" msdata:rowOrder="16">
        <StationID>2800</StationID>
        <Station>WRVE-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Hot AC</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>15330</FCC_ID>
      </Table>
      <Table diffgr:id="Table18" msdata:rowOrder="17">
        <StationID>2815</StationID>
        <Station>WTMM-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Sports</Format>
        <earliest_report_data>2010-04-29T00:00:00-04:00</earliest_report_data>
        <FCC_ID>22004</FCC_ID>
      </Table>
      <Table diffgr:id="Table19" msdata:rowOrder="18">
        <StationID>2802</StationID>
        <Station>WTRY-FM</Station>
        <Market>Albany, NY</Market>
        <Format>Classic Hits</Format>
        <earliest_report_data>2006-08-18T00:00:00-04:00</earliest_report_data>
        <FCC_ID>8563</FCC_ID>
      </Table>
    </NewDataSet>
  </diffgr:diffgram>
</DataSet>

不要使用内联架构。只需让 SSIS 为您生成它即可。 SSIS 生成 SSIS 理解的架构保证。

如果您有多个命名空间。使用 XML 任务。操作类型 XSLT。为您的原始 XML 文件创建连接,您的 "transformed" XML 文件将成为输出的新 XML 文件连接。

对于第二个操作数,选择直接输入。

在第二个操作数中使用以下内容。然后您将能够将 XML 源指向输出文件并生成 XSD 以正确加载到 SQL.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="xml" indent="no" />
   <xsl:template match="/|comment()|processing-instruction()">
      <xsl:copy>
         <xsl:apply-templates />
      </xsl:copy>
   </xsl:template>
   <xsl:template match="*">
      <xsl:element name="{local-name()}">
         <xsl:apply-templates select="@*|node()" />
      </xsl:element>
   </xsl:template>
   <xsl:template match="@*">
      <xsl:attribute name="{local-name()}">
         <xsl:value-of select="." />
      </xsl:attribute>
   </xsl:template>
</xsl:stylesheet>