3
我正在使用JAXB(包含在JDK 6中的版本)將對象編組爲XML。下面的代碼段產生意想不到的結果: JAXB如何將類名映射到XML元素名稱?
public class JAXBTest {
@XmlRootElement
public static class VIPPerson {}
public static void main(String[] args) throws JAXBException {
StringWriter sw = new StringWriter();
VIPPerson p = new VIPPerson();
JAXB.marshal(p, sw);
System.out.println(sw.toString());
}
}
從上述的輸出是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vipPerson/>
我期待看到映射到VIPPerson
元素的類名,而不是基於部分8.12 vipPerson
.1在JAXB specification中,它表示
類名稱:類名稱通過使用java的de大寫映射到XML名稱。 beans.Introspector.decapitalize(類名)。
該decapitalize
方法的JavaDoc中這樣說:取一個字符串並將它轉換成普通Java變量名稱大寫
實用方法。這通常意味着將第一個字符從大寫字母轉換爲小寫字母,,但在(不常見)特殊情況下,如果有多個字符且第一個字符和第二個字符都是大寫字母,則我們將其單獨留爲。 因此,「FooBah」變成「fooBah」,「X」變成「x」,但「URL」保持爲「URL」。
執行是否違反規範還是我誤解了某些東西?
好信息 – chris 2011-02-23 23:40:52