SSISを使用してXMlファイルを読み込もうとしています。サンプルXMLと対応するXSDがあります。
私のSSISパッケージXMLSoruceで、入力XMLファイルパスとXSDパスを指定しました。列を表示しようとすると、次のエラーが発生していました。
コンポーネント「XMLソース」はXMLデータを処理できませんでした。あいまいな複合型の定義。要素「childusages」には、「usages」という名前の複数のメンバーがあります
そして、XMLと対応するXSDを.Net(C#またはVB)で検証しようとしましたが、検証に合格しました。
サンプル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>