XMLからオブジェクトを作る その4

改行を含む文字列に対応。

XMLのデータ

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bodybuilder>
<bodybuilder>
  <list>
    <add value="value1"/>
    <add value="value2"/>
    <add>
      <list>
        <add value="value1"/>
        <add>
          <string>
            拡張した文字列①
            1234567890
          </string>
        </add>
        <add>
          <string trim="false">
            &gt;拡張した文字列②&lt;
            &gt;1234567890&lt;
          </string>
        </add>
        <add value="value4"/>
      </list>
    </add>
    <add value="value4"/>
    <add>
      <map>
        <key1 value="map value1"/>
        <key2>
          <string>
            <![CDATA[
拡張した文字列③
&<>"'
            ]]>
          </string>
        </key2>
        <key3 value="map value3"/>
      </map>
    </add>
  </list>
</bodybuilder>

サンプルのコード


package sample;

import bodybuilder.builder.Bullworker;
import bodybuilder.viewer.Viewer;

public class Sample5 {

public static void main(String[] args) {
Bullworker bullworker = new Bullworker(
"C:\\eclipse3\\workspace\\bodybuilder\\data\\sample5.xml");
Object obj = bullworker.getMuscle();
Viewer.dump(obj);
}

}

実行結果


ArrayList(5) {
[0]=>
String(6) "value1"
[1]=>
String(6) "value2"
[2]=>
ArrayList(4) {
[0]=>
String(6) "value1"
[1]=>
String(25) "拡張した文字列①
1234567890"
[2]=>
String(42) "
>拡張した文字列②<
>1234567890<
"
[3]=>
String(6) "value4"
}
[3]=>
String(6) "value4"
[4]=>
HashMap(3) {
["key1"]=>
String(10) "map value1"
["key3"]=>
String(10) "map value3"
["key2"]=>
String(14) "拡張した文字列③
&<>"'"
}
}

TODO

  • サーブレットAPIへの対応。
    • MockRunner、StrutsTestCaseへの対応。
  • 精査しない(できない)値への対応。
  • XMLの一ファイルを一テストケースとするテストユーティリティの作成。
  • ロギングの追加。
  • メモリリークしてるかも。
  • 実装クラスの指定を追加。

その他

Eclipseのプロジェクト一式(JUnit、Commons BeanUtils/Logging、JDOM、Xercesが必要)。