最近項目原因,研究了下jaxb。jaxb是Java api xml binding的簡稱,是為實現java與xml數據的相互轉換而定義的一個api標準。該標準以annotation的方式實現xml的轉換。不用開發人員單獨解析每個對象屬性與xml元素的mapping關系,只需在java bean中注入簡單的java annotation,其他的交給工具去處理。該工具包類能給xml數據處理帶來極大方便。具體實現見下。
Java bean對象定義:





















































說明:上文定義了一個促銷對象類Promotion.
類標注表示:
@XmlRootElement:用于定義該對象映射成xml根節點元素名,默認與類名一致。可通過@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 元素包裝,如下所示,就可以按此種方式實現。
<products>
<product> … </product>
<product> … </product>
…
</products>
Java與xml映射方法
Java對象到XML



































XML到Java對象


















---------------------
月下孤城
mail:eagle_daiqiang@sina.com