0

jaxb がResult以下の名前の型パラメーターを生成するのはなぜですか?

次のようにゲッター/セッターを生成するのはきれいではありません:

  protected Result result;

         public void setResult(Result value) {
            this.approveRequestResult = (Result value);
        }

        public Result getResult() {
            return result;
        }

このファイルは、JavaTM Architecture for XML Binding(JAXB) Reference Implementation によって生成されました。

 protected JAXBElement<Result> result;

     public void setResult(JAXBElement<Result> value) {
        this.approveRequestResult = ((JAXBElement<Result> ) value);
    }

    public JAXBElement<Result> getResult() {
        return result;
    }

多分これは私が気付いていないデザインパターンですか?

4

1 に答える 1

1

JAXB は、JAXBElementそれ自体の値が XML 表現を正しく表現できない場合、型のフィールド/プロパティを作成します。以下にいくつかのケースを示します。

  1. この要素は、nillable であり、オプションでもあります。値が単純に null の場合、これらのシナリオのどれに対応するか ( オプションであり、nillable である JAXB 要素を参照)。
  2. プロパティが同じ型 (つまり) のxsd:choice異なる XML 要素 (つまりfooと) に対応できる構造を表す場合。値がだったら、それを要素orとしてマーシャリングします。barxsd:stringHello Worldfoobar
  3. nillable で属性を持つ要素の処理 (参照: .Net/Jaxb で xsi:nil と属性を持つ XML 要素を作成する)
于 2013-11-07T16:09:07.163 に答える