UPDATE(基於評論由xandross
您可以使用@XmlRootElement
控制根元素名稱:
@XmlRootElement(name="XML_DOCUMENT_TYPE")
public class Foo {
...
}
或者你可以用根對象中的JAXBElement
實例提供根元件信息
UPDATE(基於Mohamed Mansour的評論)
在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
,並且元素名稱是從屬性名稱派生的。
嗨布萊斯,我相信他指的是他正在使用的亞型。例如,在他的主類型中,他有'private SomeType xmlDocumentType;'所以在這種情況下,他需要在字段級別添加'@XmlElement(name =「XML_DOCUMENT_TYPE」)',因爲JAXB使用字段名稱而不是' @ XmlType'名稱。 – 2011-06-08 01:04:17
@穆罕默德曼蘇爾 - 你是對的,我已經更新了我的答案。 – 2011-06-08 01:56:33
其實我指的是根元素。子元素或字段很容易處理。對於缺少的信息抱歉。 – xandross 2011-06-08 03:28:40