XmlRootElement
とXmlType
の違いは、スコープの問題です。このアノテーションは、単にXMLを生成するために使用されるスキーマの作成を指示することに留意してください。 XmlType
が(匿名または複合型の)ローカル要素を示すために使用されている間
<xs:element name=foo type="bar"> </xs:element> <-- schema type
:XmlRootElement
グローバル要素(匿名またはスキーマタイプ)である
<xs:complexType name=bar> </xs:complexType> <-- complex type
主ここでのローカル/グローバルの相違点は、オブジェクトが表示されるスキーマの階層と、スキーマタイプまたは複合タイプを宣言しているかどうかです。これらのアノテーションの両方のドキュメントはよく書かれており、例が含まれます:
XmlRootElement
XmlType
EDIT:あなたも地元を宣言している場合は、グローバルな要素でそれを使用することができます:propOrder
質問への対処しますタイプ:
@XmlRootElement (name="PersonElement")
@XmlType (propOrder={"firstname", "lastname"})
public class People{
@XmlElement
public String firstname;
public String lastname;
}
このようなものが得られます:
を