XML ファイルを読み取り、データを親テーブルと 2 つの子テーブルに分割したいと考えています。データが移動する SQL スキーマと XSD は次のとおりです。SSISを使いたいと思っていますが、どうすればいいのかわかりません。子を反復処理してから、コードを使用して行を挿入する必要があります。どんなアイデアでも役に立ちます。SSIS 以外のものを使用したいと考えています。MS SQL Server 2008 を使用しています。
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MonthlyReportForm">
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element minOccurs="0" name="ReportingDate" type="xs:string" />
<xs:element minOccurs="0" name="ReportingYear" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="ReportingRegion" type="xs:string" />
<xs:element minOccurs="0" name="TeamMembersName" type="xs:string" />
<xs:element minOccurs="0" name="chkTraining" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="chkVernacularMaterials" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="RDHelpText" type="xs:string" />
<xs:element minOccurs="0" name="chkOutOfCountryForm" type="xs:unsignedByte" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="TravelData">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="TravelRowLocation" type="xs:string" />
<xs:element minOccurs="0" name="TravelRowTeam" type="xs:string" />
<xs:element minOccurs="0" name="TravelRowThisMonth" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TravelRowNextMonth" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="TrainingReport">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="TrainingData">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="TrainerName" type="xs:string" />
<xs:element minOccurs="0" name="TraineeGender" type="xs:string" />
<xs:element minOccurs="0" name="TraineeAge" type="xs:decimal" />
<xs:element minOccurs="0" name="TraineeLanguage" type="xs:string" />
<xs:element minOccurs="0" name="TraineeEducation" type="xs:string" />
<xs:element minOccurs="0" name="TraineeProvince" type="xs:string" />
<xs:element minOccurs="0" name="TrainingPrepHrs" type="xs:decimal" />
<xs:element minOccurs="0" name="TrainingTrainHrs" type="xs:decimal" />
<xs:element minOccurs="0" name="TrainingArea" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="TrainingActivity" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>