0

各行を水平に分割してマッピングすることができました。問題は(Q1, Q2)、 (Q3, Q4) と (Q3, Q4) がそれぞれの囲みタグの下にまとめられていない場合に発生します。また、繰り返される行のグループに注意する必要があります。以下の例のように、最初の 2 行をもう一度繰り返します。

Q12222222222
Q21111111111
Q13333333333
Q24444444444
Q35555555555
Q46666666666

以下に示すターゲット XSDファイル:

<xs:schema>
    <xs:element name="Statement">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StatementDetails" type="StatementDetailsT" maxOccurs="unbounded"/>
                <xs:element name="FinalStatement" type="FinalStatementT" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="StatementDetailsT">
        <xs:sequence>
            <xs:element name="Q1" type="Q1_T" maxOccurs="1"/>
            <xs:element name="Q2" type="Q2_T" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="FinalStatementT">
        <xs:sequence>
            <xs:element name="Q3" type="Q3_T" maxOccurs="1"/>
            <xs:element name="Q4" type="Q4_T" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Q1_T">
        <xs:sequence>
            <xs:element type="st:string2" name="cIdentifier" fixed="Q1" />
            <xs:element type="st:string10" name="sNumber" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Q2_T">
        <xs:sequence>
            <xs:element type="st:string2" name="cIdentifier" fixed="Q2" />
            <xs:element type="st:string11" name="antiDumpingDuty" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Q3_T">
        <xs:sequence>
            <xs:element type="st:string2" name="cIdentifier" fixed="Q3" />
            <xs:element type="st:string10" name="sNumber" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Q4_T">
        <xs:sequence>
            <xs:element type="st:string2" name="cIdentifier" fixed="Q4" />
            <xs:element type="st:string11" name="antiDumpingDuty" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

予想される XMLは次のようになります。

    <Statement>
        <StatementDetails>
            <Q1>
                <cIdentifier>Q1</cIdentifier>
                <sNumber>2222222222</sNumber>
            </Q1>
            <Q2>
                <cIdentifier>Q2</cIdentifier>
                <antiDumpingDuty>1111111111</antiDumpingDuty>
            </Q2>
        </StatementDetails>
        <StatementDetails>
            <Q1>
                <cIdentifier>Q1</cIdentifier>
                <sNumber>3333333333</sNumber>
            </Q1>
            <Q2>
                <cIdentifier>Q2</cIdentifier>
                <antiDumpingDuty>4444444444</antiDumpingDuty>
            </Q2>
        </StatementDetails>
        <FinalStatement>
            <Q3>
                <cIdentifier>Q3</cIdentifier>
                <sNumber>5555555555</sNumber>               
            </Q3>
            <Q4>
                <cIdentifier>Q4</cIdentifier>
                <antiDumpingDuty>6666666666</antiDumpingDuty>
            </Q4>
        </FinalStatement>
    </Statement>

次の順序で分割を適用しました。

  1. モード: 区切られた (行で始まる)、正規表現: はい、パターン:^Q[13] これにより、データが 2 行ずつの 3 つのセグメントに分割されます。

  2. スイッチには次の正規表現が含まれます: ^Q[12], ^Q[34].

  3. 次に、ステップ 2 の各出力が水平方向に繰り返し分割されて適用されます。これにより、各セグメントが 1 つの行に分割されます。次に、列の長さに応じて複数の分割を1回適用します。

参照用に添付された分割図とマッピング図。
分割図
マッピング図

マッピングによって生成される実際の XMLファイルを以下に示します。

<Statement>
    <StatementDetails>
        <Q1>
            <cIdentifier>Q1</cIdentifier>
            <sNumber>2222222222</sNumber>
        </Q1>
    </StatementDetails>
    <StatementDetails>
        <Q2>
            <cIdentifier>Q2</cIdentifier>
            <antiDumpingDuty>1111111111</antiDumpingDuty>
        </Q2>
    </StatementDetails>
    <StatementDetails>
        <Q1>
            <cIdentifier>Q1</cIdentifier>
            <sNumber>3333333333</sNumber>
        </Q1>
    </StatementDetails>
    <StatementDetails>
        <Q2>
            <cIdentifier>Q2</cIdentifier>
            <antiDumpingDuty>4444444444</antiDumpingDuty>
        </Q2>
    </StatementDetails>
    <FinalStatement>
        <Q3>
            <cIdentifier>Q3</cIdentifier>
            <sNumber>5555555555</sNumber>
        </Q3>
    </FinalStatement>
    <FinalStatement>
        <Q4>
            <cIdentifier>Q4</cIdentifier>
            <antiDumpingDuty>6666666666</antiDumpingDuty>
        </Q4>
    </FinalStatement>
</Statement>

誰かが構造またはマッピングで何が問題になっているのか教えてください。前もって感謝します。

4

1 に答える 1