ОБНОВЛЕНИЕ (на основе комментария xandross
Вы можете использовать @XmlRootElement
для управления именем корневого элемента:
@XmlRootElement(name="XML_DOCUMENT_TYPE")
public class Foo {
...
}
В качестве альтернативы вы можете обернуть кореньобъект в экземпляре JAXBElement
для предоставления информации о корневом элементе.
ОБНОВЛЕНИЕ (на основе комментария Мохамеда Мансура)
В JAXB классы соответствуют типам XML, а поля / свойства соответствуют атрибутам / элементам XML.Это имеет смысл, если учесть, что может существовать тип адреса:
<xs:complexType name="address">
<xs:sequence>
<xs:element name="street" type="xs:string"/>
</xs:sequence>
</xs:complexType>
и несколько элементов (с разными именами) этого типа:
<xs:complexType name="customer">
<xs:sequence>
<xs:element name="billing-address type="address"/>
<xs:element name="shipping-address type="address"/>
</xs:sequence>
</xs:complexType>
Вы можете контролировать имяэлемента / атрибута, с которым свойство сопоставляется с аннотациями @XmlElement
/ @XmlAttribute
:
@XmlElement(name="shipping-address")
public getShippingAddress() {
return shippingAddress;
}
или
@XmlElement(name="ShippingAddress")
public getShippingAddress() {
return shippingAddress;
}
Если свойство не аннотировано, оно рассматривается как@XmlElement
, а имя элемента является производным от имени свойства.