2016-12-07 17 views
0

私はJaxb Javaクラスの実装に問題があります。私はこのXMLを取得Jaxb、重複するxmlタグを避ける

public class Child { 

    private String child; 

    public Child() { 

    } 

    public void setChild(String child) { 
     this.child = child; 
    } 

    public String getChild() { 
     return child; 
    } 

} 

@XmlRootElement 
public class RootElement { 
    private String attr1; 
    private String attr2; 
    private Child child; 

    @XmlAttribute 
    public String getAttr1() { 
     return attr1; 
    } 

    public void setAttr1(String attr1) { 
     this.attr1 = attr1; 
    } 

    @XmlAttribute 
    public String getAttr2() { 
     return attr2; 
    } 

    public void setAttr2(String attr2) { 
     this.attr2 = attr2; 
    } 

    public void setChild(Child c) { 
     child = c; 
    } 

    @XmlElement 
    public Token getChild() { 
     return child; 
    } 
} 

、これが子供である:これは私のJavaクラスである

<rootElement attr1="value1" attr2="value2"> 
     <child> childValue </child> 
</rootElement> 

<rootElement attr1="value1" attr2="value2"> 
     <child><child>childValue</child></child> 
</rootElement> 
私のXMLレスポンスは次のようにする必要があります

どうしたの?

答えて

1

第1の<child>は変数RootElementクラスに対して生成されます。
第2の<child>はの変数子供クラスに対して生成されます。あなたは子供クラスで唯一のマッピングがあることを確認することができた場合は

、あなたは@XmlAnyElement変数childに追加することができます。 JAXPは第2の<child>要素を生成しません。

public class Child { 

    @XmlAnyElement 
    private String child; 

    public Child() { 
    } 

    public void setChild(String child) { 
     this.child = child; 
    } 
    public String getChild() { 
     return child; 
    } 
}