2

SAX パーサーから JAXB に変換しています - 複数のタグ/属性値を単一の (compassable) Java POJO に非整列化する方法がわかりません。

次のようなxmlファイルがあります。

<item validFrom="1950" validUntil="1980">
    <description>some text</description>
</item>

「validFrom」と「validUntil」の値は、有効な「MutableRange」POJO に構成する必要があります (以下の定義を参照)。

アンマーシャリングする必要がある Java アイテムの定義は次のとおりです。

@XmlRootElement
@XmlAccessorType(XmlAcccessType.FIELD)
public class Item {
    // ??? need help mapping this to be composed from "validFrom", "validUntil" attributes
    private MutableRange validRange;

    @XmlElement
    private String description;
}

// assume all other boilerplate code exists
public class MutableRange {
    private int lowerBound;
    private int upperBound;
}

アダプターを使用してみましたが、「from」と「until」の両方の値を一緒にキャプチャして MutableRange インスタンスを作成することはできませんでした。使用@XmlMixedしてみましたが、成功しませんでした。

これを達成するためのJAXB規定の方法は何ですか?

これが解決されたらMutableRange、 ( XmlAdapter) を拡張してラッパーとして機能し、グアバの不変の Range オブジェクトを作成し、それをにマッピングしvalidRangeます@XmlJavaTypeAdapter(MutableRange.class)

4

2 に答える 2

1

注: 私はEclipseLink JAXB (MOXy)のリーダーであり、JAXB (JSR-222)エキスパート グループのメンバーです。

MOXy の@XmlPath拡張機能を使用して、このユース ケースをマッピングできます。

@XmlRootElement
@XmlAccessorType(XmlAcccessType.FIELD)
public class Item {
    @org.eclipse.persistence.oxm.annotations.XmlPath(".")
    private MutableRange validRange;

    @XmlElement
    private String description;
}

詳細については

于 2013-04-09T15:57:59.467 に答える