最近項目原因,研究了下jaxb。jaxb是Java api xml binding的簡稱,是為實現(xiàn)java與xml數(shù)據(jù)的相互轉(zhuǎn)換而定義的一個api標準。該標準以annotation的方式實現(xiàn)xml的轉(zhuǎn)換。不用開發(fā)人員單獨解析每個對象屬性與xml元素的mapping關(guān)系,只需在java bean中注入簡單的java annotation,其他的交給工具去處理。該工具包類能給xml數(shù)據(jù)處理帶來極大方便。具體實現(xiàn)見下。
Java bean對象定義:
說明:上文定義了一個促銷對象類Promotion.
類標注表示:
@XmlRootElement:用于定義該對象映射成xml根節(jié)點元素名,默認與類名一致。可通過@XmlRootElement(name="otherRootElement")方式指定具體名稱。
@XmlAccessorType: 用于標識該java對象與xml映射的訪問方式。有如下屬性值。
PROPERTY/FIELD/PUBLIC_MEMBER/NONE
PROPERTY: 所有set/get方法對將被映射為xml元素.除非被XmlTransient標注例外.
FIELD:所有對象屬性將被映射為xml元素。除非被XmlTransient標注例外.
PUBLIC_MEMBER:每個public的get/set對方法或public field將被映射為xml元素。除非被XmlTransient標注例外.
NONE:沒有fields 或 property被映射,除非顯示指定具體fields或property。
屬性標注表示:
@XmlTransient:指對應屬性不做xml映射。
@XmlElement(name="product"):指定屬性映射時對應xml元素名稱
@XmlElementWrapper(name="products"):在某些場景下,需要對映射的屬性做包裝處理。如例子中products List對象屬性,在xml中我想在映射對所有的product元素再做一個products 元素包裝,如下所示,就可以按此種方式實現(xiàn)。
<products>
<product> … </product>
…
</products>
Java與xml映射方法
Java對象到XML
XML到Java對象
Powered by: BlogJava Copyright © 月下孤城