我正在尝试使用 SSIS 加载 XMl 文件。我有我的示例 XML 和相应的 XSD。
在我的 SSIS 包 XML Soruce 中,提供了输入 XML 文件路径和 XSD 路径,当我尝试查看列时,我收到以下错误
组件“XML 源”无法处理 XML 数据。模棱两可的复杂类型定义。元素“childusages”有多个名为“usages”的成员
我尝试使用 .Net(C# 或 VB)验证 XML 和相应的 XSD,它通过了验证。
示例 XML 文件:
<gmx-rcc>
<statement>
<summaryAccountName>test test</summaryAccountName>
<accounts>
<account>
<accountnumber>abcdefghijk</accountnumber>
<meters>
<meter>
<mnumber>a123456</mnumber>
<usages>
<usage>
<actualUsage>1234</actualUsage>
<childUsages>
<usage><actualUsage>1234</actualUsage></usage>
<usage><actualUsage>1234</actualUsage></usage>
<usage><actualUsage>1234</actualUsage></usage>
</childUsages>
</usage>
</usages>
</meter>
</meters>
</account>
</accounts>
</statement>
</gmx-rcc>
对应的 XSD:
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="gmx-rcc">
<xsd:complexType >
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element type="statement" name="statement"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="statement" >
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element name="summaryAccountName" type="xsd:string"/>
<xsd:element ref="accounts"/>
</xsd:choice>
</xsd:complexType>
<xsd:element name="accounts">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="account" type="account"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="account" >
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element name="accountnumber" type="xsd:string"/>
<xsd:element ref="meters"/>
</xsd:choice>
</xsd:complexType>
<xsd:element name="meters">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="meter" type="meter"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="meter" >
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element name="mnumber" type="xsd:string"/>
<xsd:element ref="usages"/>
</xsd:choice>
</xsd:complexType>
<xsd:element name="usages">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="usage" type="usage"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="usage" >
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element name="actualUsage" type="xsd:decimal"/>
<xsd:element ref="childUsages"/>
</xsd:choice>
</xsd:complexType>
<xsd:element name="childUsages">
<xsd:complexType >
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="usage" type="usage"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>