1

次の構造のxmlファイルがあります。

<root>
<paramsToInclude>
    <params id="id1">
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
    </params>

    <params id="id3">
        <param31>val1</param31>
        <param32>val2</param32>
    </params>
</paramsToInclude>

<process>
    <subprocess1>
        <include params="id1"/>
        <query>
            SELECT *
            FROM
            table;
        </query>
    </subprocess2>

    <subprocess1>
        <rule>rule1</rule>
        <rule>rule2</rule>
    </subprocess2>

    <subprocess3>
        <processParam>val1</processParam>
        <include params="id2"/>
        <include params="id3"/>
    </subprocess3>
</process>

jaxb を使用して、この xml を Java クラスに解析しています。ファイルの先頭からの値でプロセスのインクルードを置き換える方法はありますか? つまり、次のようにファイルを解析したくありません

<root>
<paramsToInclude>
    <params id="id1">
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
    </params>

    <params id="id3">
        <param31>val1</param31>
        <param32>val2</param32>
    </params>
</paramsToInclude>

<process>
    <subprocess1>
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
        <query>
            SELECT *
            FROM
            table;
        </query>
    </subprocess2>

    <subprocess1>
        <rule>rule1</rule>
        <rule>rule2</rule>
    </subprocess2>

    <subprocess3>
        <processParam>val1</processParam>
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
        <param31>val1</param31>
        <param32>val2</param32>
    </subprocess3>
</process>

これを行うことは可能ですか?リンクhttp://thetechietutorials.blogspot.com/2011/08/jaxb-tutorial-part-2-jaxb-with-xinclude.htmlを見つけましたが、これを別のファイルからインクルードする方法ですが、コメントではそれを行うことは不可能であると書かれていますこれは同じファイルに対してです(これを別のxmlに含めることができることは理解していますが、それが最善の方法だとは思いません)。また、hashMap を使用したくありません。この方法では、含まれる params が hashMap に格納され、processParam (subprocess3 から) がクラス変数になるためです。どういうわけかこれを行う方法はありますか?

4

0 に答える 0