1

属性として長い文字列を取得していますが、その一部をアンマーシャリングしたいと思います。
要素は次のようになります。

<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">

1341592540748しかし、私はidとして設定したいだけです。
@XmlAttribute文字列をその場で編集することは可能ですか?

4

2 に答える 2

1

1つのアプローチは、次のようなセッターメソッドで変換を行うことです(テストされていません)。

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Party {

  @XmlTransient long id;

  // traditional JavaBean accessors for the long, _not_ used by JAXB
  public long getId() { return id; }
  public void setId(long id) { this.id = id; }

  // converting accessors for JAXB
  @XmlAttribute(name = "id")
  public String getStringId() { return String.valueOf(id); }
  public void setStringId(String idStr) {
    // extract relevant bit of the string and parse it into a long
  }
}
于 2012-08-08T13:47:58.220 に答える
1

XmlAdapterこのロジックを含めるためにのインスタンスを実装することをお勧めします。このアプローチの利点は、XML変換ロジックがドメインモデルから分離されていることです。アノテーションXmlAdapterを使用してフィールド/プロパティに設定されます。@XmlJavaTypeAdapter

詳細については

于 2012-08-08T16:33:13.530 に答える