1

Subversion XML 形式の出力は、属性と要素 (特に要素内) の組み合わせです<path>。以下のサンプルを参照してください。

<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
   revision="29">
<author>bob</author>
<date>2013-02-14T17:21:42.848605Z</date>
<paths>
<path
   action="A"
   kind="dir"
   copyfrom-path="/trunk"
   copyfrom-rev="28">/tags/TAG-0.1</path>
</paths>
<msg>Creating tag TAG-0.1</msg>
</logentry>
</log>

以下を使用して、コモンズ ダイジェスターを使用して、ログの内容を 2 つの異なる POJO (LogEntry と Path) に解析しようとしています。

ArrayList<LogEntry> logEntries = new ArrayList<LogEntry>();
    digester.push(logEntries);

    digester.addObjectCreate("*/logentry", LogEntry.class);
    digester.addSetProperties("*/logentry");
    digester.addBeanPropertySetter("*/logentry/author");
    digester.addBeanPropertySetter("*/logentry/date");
    digester.addBeanPropertySetter("*/logentry/msg");
    digester.addSetNext("*/logentry", "add");

    digester.addObjectCreate("*/logentry/paths/path", Path.class);    
    digester.addSetProperties("*/logentry/paths/path");
    digester.addBeanPropertySetter("*/logentry/paths/path", "value");
    digester.addSetNext("*/logentry/paths/path", "addPath");

(addPath は、作成されたArrayList<Path>LogEntry オブジェクト内に作成中のパス オブジェクトを追加することに注意してください)

Path クラスが完全に設定されていない理由がわかりません。XML に基づいて、 (ハイフンが原因で)copyfrom-revおよびcopyfrom-path属性が対応する copyFromRev 属性にコピーされない理由を理解できます。

kindしかし、パス内で属性が設定されていない理由がわかりません。

誰にもアイデアはありますか?

4

1 に答える 1