<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>isDev();</title>
		<link>http://dev.alseom.co.kr/</link>
		<description></description>
		<language>ko</language>
		<pubDate>Fri, 11 Dec 2009 09:17:34 +0900</pubDate>
		<generator>Textcube 1.7.8 : Con moto</generator>
		<image>
		<title>isDev();</title>
		<url>http://alseom.co.kr/attach/3/6454013072.jpg</url>
		<link>http://dev.alseom.co.kr/</link>
		<width>220</width>
		<height>280</height>
		<description></description>
		</image>
		<item>
			<title>[oracle] 해당 유저 데이터타입정보 조회하기</title>
			<link>http://dev.alseom.co.kr/97</link>
			<description>// tod유저 ?LOB 타입 조회하기&lt;BR&gt;select owner, table_name, column_name, data_type from dba_tab_columns&lt;BR&gt;where data_type like &#039;%LOB&#039;&lt;BR&gt;and owner = &#039;TOD&#039;</description>
			<category>db</category>
			<author>(alseom)</author>
			<guid>http://dev.alseom.co.kr/97</guid>
			<comments>http://dev.alseom.co.kr/97#entry97comment</comments>
			<pubDate>Thu, 03 Dec 2009 14:18:37 +0900</pubDate>
		</item>
		<item>
			<title>Spring2.5 Anotations</title>
			<link>http://dev.alseom.co.kr/96</link>
			<description>&lt;P&gt;그동안 간단한 클래스 하나 추가 하려고 해도&lt;BR&gt;ActionClass, ServiceClass, ... 클래스 이에 맞는 Interface&lt;BR&gt;또 struts, spring, iBatis 설정들까지 생각하면 배보다 배꼽이 더 커지는 경우가 있다.&lt;BR&gt;이 참에 Anotations 으로 설정을 대신하는 방법으로 적용해 보았다.&lt;BR&gt;우선순위와 장단점이 있겠지만, 적당히 사용하면 좋을듯 하다.&lt;BR&gt;&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;xml&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;lt;!-- struts.xml --&amp;gt;
&amp;lt;struts&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;constant name=&quot;struts.objectFactory&quot; value=&quot;spring&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;package name=&quot;default&quot; namespace=&quot;/&quot; extends=&quot;struts-default&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;global-results&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result name=&quot;success&quot;&amp;gt;/result.jsp&amp;lt;/result&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/global-results&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;action name=&quot;jaxb&quot; class=&quot;kr.co.alseom.dev.JaxbAction&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/package&amp;gt;
&amp;lt;/struts&amp;gt;

&amp;lt;!-- spring.xml --&amp;gt;
&amp;lt;beans xmlns=&quot;....&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; ....
&amp;nbsp; &amp;nbsp; &amp;lt;context:component-scan base-package=&quot;kr.co.alseom.dev&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;bean id=&quot;sqlMapClient&quot; class=&quot;org.springframework.orm.ibatis.SqlMapClientFactoryBean&quot;&amp;gt; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;configLocation&quot; value=&quot;/WEB-INF/sqlmap-config.xml&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;dataSource&quot; ref=&quot;dataSource-common&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/bean&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;bean id=&quot;sqlMapClientTemplate&quot; class=&quot;org.springframework.orm.ibatis.SqlMapClientTemplate&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;sqlMapClient&quot; ref=&quot;sqlMapClient&quot; /&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/bean&amp;gt;
&amp;nbsp; &amp;nbsp; ....
&amp;lt;/beans&amp;gt;
&lt;/textarea&gt;&lt;BR&gt;별도의 bean을 설정하지 않았다.&lt;BR&gt;&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;java&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// JaxbAction.java
public class JaxbAction {
&amp;nbsp; &amp;nbsp; @Autowired
&amp;nbsp; &amp;nbsp; private TestService testService; 

&amp;nbsp; &amp;nbsp; public String execute() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List&amp;lt;String&amp;gt; result = testService.getList();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;success&quot;;
&amp;nbsp; &amp;nbsp; }
}

// TestService.java
@Service
public class TestServiceImpl implements TestService { 
&amp;nbsp; &amp;nbsp; @Autowired
&amp;nbsp; &amp;nbsp; private TestDao testDao;

&amp;nbsp; &amp;nbsp; public List&amp;lt;String&amp;gt; getList() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return testDao.getList();
&amp;nbsp; &amp;nbsp; }
}

// TestDao.java
@Repository
public class TestDaoImpl extends SqlMapClientDaoSupport implements TestDao {
&amp;nbsp; &amp;nbsp; @Resource(name=&quot;sqlMapClient&quot;)
&amp;nbsp; &amp;nbsp; public void initDAO(SqlMapClient sqlMapClient) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super.setSqlMapClient(sqlMapClient);
&amp;nbsp; &amp;nbsp; }

&amp;nbsp; &amp;nbsp; public List&amp;lt;String&amp;gt; getList() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (List&amp;lt;String&amp;gt;) getSqlMapClientTemplate().queryForList(&quot;Test.getList&quot;);
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;&lt;BR&gt;&lt;BR&gt;Anotations 에 관한 내용은 구차니즘.. ㅠㅠ&lt;BR&gt;아래 참고사이트에 너무 잘 되어있다~ ㅎ&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#333333&gt;참고 : &lt;/FONT&gt;&lt;/STRONG&gt;&lt;A href=&quot;http://jjaeko.tistory.com/20&quot; target=_blank&gt;&lt;STRONG&gt;&lt;FONT color=#333333&gt;http://jjaeko.tistory.com/20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;</description>
			<category>framework</category>
			<category>annotation</category>
			<category>spring</category>
			<category>spring2.5</category>
			<author>(alseom)</author>
			<guid>http://dev.alseom.co.kr/96</guid>
			<comments>http://dev.alseom.co.kr/96#entry96comment</comments>
			<pubDate>Fri, 27 Nov 2009 09:50:34 +0900</pubDate>
		</item>
		<item>
			<title>enum 사용기</title>
			<link>http://dev.alseom.co.kr/94</link>
			<description>&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;java&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// FormatType.java
public enum FormatType {
&amp;nbsp; &amp;nbsp; XML {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public String getContentType() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;xml&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; },
&amp;nbsp; &amp;nbsp; JSON {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public String getContentType() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;plain&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; };
&amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; public String getContentType() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return null;
&amp;nbsp; &amp;nbsp; }
}

// 사용
FormatType.XML.getContentType(); &amp;nbsp; &amp;nbsp; // xml
FormatType.JSON.getContentType(); &amp;nbsp;&amp;nbsp; // plain
&lt;/textarea&gt;&lt;BR&gt;&lt;/P&gt;</description>
			<category>java</category>
			<category>enum</category>
			<category>java5</category>
			<author>(alseom)</author>
			<guid>http://dev.alseom.co.kr/94</guid>
			<comments>http://dev.alseom.co.kr/94#entry94comment</comments>
			<pubDate>Thu, 19 Nov 2009 12:33:18 +0900</pubDate>
		</item>
		<item>
			<title>[struts2] result-type 지정하기</title>
			<link>http://dev.alseom.co.kr/93</link>
			<description>&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;xml&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;lt;!-- server.xml --&amp;gt;
&amp;lt;result-types&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;result-type name=&quot;jaxb&quot; class=&quot;kr.co.alseom.dev.result.StrutsResultTypeJaxb&quot; /&amp;gt;
&amp;lt;/result-types&amp;gt;

&amp;lt;action name=&quot;jaxb-action&quot; class=&quot;kr.co.alseom.dev.action.JaxbAction&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;result name=&quot;jaxb-result&quot; type=&quot;jaxb&quot;&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&quot;resultName&quot;&amp;gt;result&amp;lt;/param&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/result&amp;gt;
&amp;lt;/action&amp;gt;
&lt;/textarea&gt;&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;java&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// JaxbAction.java
public class JaxbAction {
&amp;nbsp; &amp;nbsp; ...
&amp;nbsp; &amp;nbsp; private List&amp;lt;User&amp;gt; result;
&amp;nbsp; &amp;nbsp; public List&amp;lt;User&amp;gt; getResult() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return this.result;
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; public String execute() {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = testService.getList();

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;jaxb-result&quot;;
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; ...
}

// StrutsResultTypeJaxb.java
public class StrutsResultTypeJaxb implements com.opensymphony.xwork2.Result {
&amp;nbsp; &amp;nbsp; private String resultName;
&amp;nbsp; &amp;nbsp; public void setResultName(String resultName) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.resultName = resultName;
&amp;nbsp; &amp;nbsp; }
&amp;nbsp;
&amp;nbsp; &amp;nbsp; public void execute(ActionInvocation invocation) throws Exception {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Object obj = invocation.getStack().findValue(this.resultName);

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JaxbResult r = new JaxbResult(obj.getClass().cast(obj));
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JaxbFormat result = new JaxbFormat(r);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.setEncoding(&quot;utf-8&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.setFormatType(FormatType.XML);

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(result.getResult());
&amp;nbsp; &amp;nbsp; }
}

&lt;/textarea&gt;&lt;/P&gt;</description>
			<category>framework</category>
			<category>result-type</category>
			<category>struts2</category>
			<author>(alseom)</author>
			<guid>http://dev.alseom.co.kr/93</guid>
			<comments>http://dev.alseom.co.kr/93#entry93comment</comments>
			<pubDate>Thu, 19 Nov 2009 08:52:03 +0900</pubDate>
		</item>
		<item>
			<title>jaxb annotations</title>
			<link>http://dev.alseom.co.kr/92</link>
			<description>&lt;SPAN class=Apple-style-span style=&quot;WORD-SPACING: 0px; FONT: medium Gulim; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px&quot;&gt;&lt;SPAN class=Apple-style-span style=&quot;FONT-FAMILY: serif&quot;&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;98%&quot; summary=&quot;&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR vAlign=top&gt;
&lt;TD&gt;
&lt;H1 class=title style=&quot;FONT-SIZE: 27px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0em 0.5em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; FONT-VARIANT: normal&quot;&gt;&lt;FONT size=3&gt;출처 : &lt;/FONT&gt;&lt;A href=&quot;http://www.caucho.com/resin-3.1/doc/jaxb-annotations.xtp&quot; target=_blank&gt;&lt;FONT size=3&gt;http://www.caucho.com/resin-3.1/doc/jaxb-annotations.xtp&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR class=Apple-interchange-newline&gt;jaxb annotations for soa/ioc&lt;/H1&gt;
&lt;HR style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0.2em 0em; HEIGHT: 1px; BACKGROUND-COLOR: rgb(153,153,153); BORDER-RIGHT-WIDTH: 0px; webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;

&lt;P&gt;JAXB annotations customize the serialization of a model bean.&lt;/P&gt;
&lt;DIV class=toc style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 14px; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 732px; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif; BACKGROUND-COLOR: rgb(204,204,221); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlAccessorType&quot;&gt;@XmlAccessorType&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlAttribute&quot;&gt;@XmlAttribute&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlElement&quot;&gt;@XmlElement&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlElements&quot;&gt;@XmlElements&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlElementWrapper&quot;&gt;@XmlElementWrapper&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlJavaTypeAdapter&quot;&gt;@XmlJavaTypeAdapter&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlRootElement&quot;&gt;@XmlRootElement&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlTransient&quot;&gt;@XmlTransient&lt;/A&gt; 
&lt;LI&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlValue&quot;&gt;@XmlValue&lt;/A&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlAccessorType&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlAccessorType sets default field and property serializability. By default, JAXB serializes public fields and properties. By setting @XmlAccessorType, the bean can choose to only allow annotated fields to be serialized.&lt;/P&gt;
&lt;P&gt;@XmlAccessorType works with the other annotations and&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlTransient&quot;&gt;@XmlTransient&lt;/A&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;to serialize fields and properties. @XmlTransient prevents serialization, overriding the @XmlAccessorType. The presense of any other annotation will force serialization, overriding the @XmlAccessorType.&lt;/P&gt;
&lt;TABLE class=deftable style=&quot;MARGIN: 1em 0em 1em 1.6em; WIDTH: 732px; BORDER-COLLAPSE: collapse&quot;&gt;
&lt;CAPTION style=&quot;PADDING-RIGHT: 0em; PADDING-LEFT: 0em; FONT-SIZE: 19px; PADDING-BOTTOM: 0.3em; COLOR: rgb(153,0,51); PADDING-TOP: 0.3em; FONT-FAMILY: Helvetica, Arial, Helvetica, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlAccessorType values&lt;/CAPTION&gt;
&lt;TBODY&gt;
&lt;TR class=a style=&quot;BACKGROUND-COLOR: rgb(238,238,238); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;NONE&lt;/TD&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;Only annotated fields and properites should be serialized&amp;gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=b style=&quot;BACKGROUND-COLOR: rgb(248,248,248); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;FIELD&lt;/TD&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;All fields (public or private) should be serialized&amp;gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=a style=&quot;BACKGROUND-COLOR: rgb(238,238,238); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;PROPERTY&lt;/TD&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;All properties (public or private) should be serialized&amp;gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=b style=&quot;BACKGROUND-COLOR: rgb(248,248,248); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;PUBLIC_MEMBER&lt;/TD&gt;
&lt;TD style=&quot;PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; PADDING-TOP: 0.1em&quot;&gt;Public fields and properties&amp;gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlAccessorType serializing fields&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@XmlAccessorType(XmlAccessType.FIELD)
class Bean {
  private String data;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML Document&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean&amp;gt;
  &amp;lt;data&amp;gt;Sample Data&amp;lt;/data&amp;gt;
&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlAccessorType&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={PACKAGE,TYPE})
public @interface XmlAccessorType {
  public XmlAccessType value() default XmlAccessType.PUBLIC_MEMBER;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XmlAccessType&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;public enum XmlAccessType {
    FIELD, NONE, PROPERTY, PUBLIC_MEMBER;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlAttribute&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlAttribute marks a field or property as serialized to an XML attribute. By default, fields serialize to XML elements. It can also customize the XML attribute name and namespace.&lt;/P&gt;
&lt;P&gt;@XmlAttribute can work with&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlAccessorType&quot;&gt;@XmlAccessorType&lt;/A&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;to select which fields and properties should be serialized to XML. By default, public fields and properties will be serialized. Adding @XmlAttribute to a private field will mark that field as serializable.&lt;/P&gt;
&lt;P&gt;@XmlAttribute can also customize the XML attribute name. By default, the XML attribute name is taken from the field name or the property name. The&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE style=&quot;FONT-FAMILY: monospace&quot;&gt;name()&lt;/CODE&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;value of the @XmlAttribute annotation will override the default element name.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlAttribute for a private field&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@XmlRootElement
class Bean {
  @XmlAttribute(&quot;sample-field&quot;)
  private String _myField;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML document for the Bean&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean sample-field=&quot;A sample value&quot;&amp;gt;
&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlAttribute definition&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={FIELD,METHOD})
public @interface XmlAttribute {
  public String name() default &quot;##default&quot;;
  public boolean required() default false;
  public String namespace() default &quot;##default&quot;;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlElement&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlElement marks a field or property as serialized to an XML element. It can also customize the XML element name and namespace.&lt;/P&gt;
&lt;P&gt;@XmlElement can work with&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A style=&quot;COLOR: rgb(0,51,102); TEXT-DECORATION: none&quot; href=&quot;http://dev.alseom.co.kr/owner/entry/post#@XmlAccessorType&quot;&gt;@XmlAccessorType&lt;/A&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;to select which fields and properties should be serialized to XML. By default, public fields and properties will be serialized. Adding @XmlElement to a private field will mark that field as serializable.&lt;/P&gt;
&lt;P&gt;@XmlElement can also customize the XML element name. By default, the XML element name is taken from the field name or the property name. The&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE style=&quot;FONT-FAMILY: monospace&quot;&gt;name()&lt;/CODE&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;value of the @XmlElement annotation will override the default element name.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlElement for a private field&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@XmlRootElement
class Bean {
  @XmlElement(&quot;sample-field&quot;)
  private String _myField;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML document for the Bean&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean&amp;gt;
  &amp;lt;sample-field&amp;gt;A sample value&amp;lt;/sample-field&amp;gt;
&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlElement definition&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={FIELD,METHOD})
public @interface XmlElement {
  public String name() default &quot;##default&quot;;
  public boolean nillable() default false;
  public boolean required() default false;
  public String namespace() default &quot;##default&quot;;
  public String defaultValue() default &quot;\u0000&quot;;
  public Class type() DEFAULT.class;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlElements&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlElements allows lists to contain multiple different tags. It contains a list of @XmlElement values allowed as values.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlElement allowing two tags&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;class Bean {
  @XmlElements({
    @XmlElement(name=&quot;a&quot;,type=BeanA.class),
    @XmlElement(name=&quot;b&quot;,type=BeanB.class)
  })
  private List&amp;lt;SubBean&amp;gt; data = new List&amp;lt;SubBean&amp;gt;();
}

class BeanA extends SubBean {
  @XmlValue
  private String data;
}

class BeanB extends SubBean {
  @XmlValue
  private String data;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML document for the example&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean&amp;gt;
  &amp;lt;a&amp;gt;Some BeanA Data&amp;lt;/a&amp;gt;
  &amp;lt;b&amp;gt;Some BeanB Data&amp;lt;/b&amp;gt;
  &amp;lt;a&amp;gt;Another BeanA Data&amp;lt;/a&amp;gt;
&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlElements definition&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={FIELD,METHOD})
public @interface XmlElements {
  public XmlElement[] value();
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlElementWrapper&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlElementWrapper adds a wrapper XML tag for list values. By default, JAXB list values are serialized directly without any extra tags. @XmlElementWrapper adds a container XML tags.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;Bean example with @XmlElementWrapper&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;class Bean {
  @XmlElementWrapper(name=&quot;values&quot;)
  private List&amp;lt;String&amp;gt; data = new ArrayList&amp;lt;String&amp;gt;();
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML document for example&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean&amp;gt;
  &amp;lt;values&amp;gt;
    &amp;lt;data&amp;gt;Some data&amp;lt;/data&amp;gt;
    &amp;lt;data&amp;gt;Another item&amp;lt;/data&amp;gt;
    &amp;lt;data&amp;gt;Third item&amp;lt;/data&amp;gt;
  &amp;lt;/values&amp;gt;
&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlElementWrapper definition&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={FIELD,METHOD})
public @interface XmlElementWrapper {
  public String name() default &quot;##default&quot;;
  public String namespace() default &quot;##default&quot;;
  public boolean nillable() default false;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlJavaTypeAdapter&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlJavaTypeAdapter specifies a Java class which converts helper values to final values.&lt;/P&gt;
&lt;P&gt;In some cases, the Java model may not directly match the XML model. For example, it&#039;s complicated to represent Java maps in XML. The @XmlJavaTypeAdapter provides a standard way of managing complex types.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;Maps in a Bean&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;class Bean {
  @XmlJavaTypeAdapter(MyMapAdapter.class)
  private HashMap&amp;lt;String,String&amp;gt; map;
}

class MyMapAdapter
  extends XmlAdapter&amp;lt;Temp,Map&amp;lt;String,String&amp;gt;&amp;gt; {
  ...
}

class Temp {
  @XmlElement
  private List&amp;lt;Item&amp;gt; entry = new ArrayList&amp;lt;item&amp;gt;();
}

class Item {
  @XmlAttribute
  private String key;

  @XmlAttribute
  private String value;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML Document&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean&amp;gt;
  &amp;lt;entry key=&quot;a&quot; value=&quot;data-a&quot;/&amp;gt;
  &amp;lt;entry key=&quot;b&quot; value=&quot;data-b&quot;/&amp;gt;
  &amp;lt;entry key=&quot;c&quot; value=&quot;data-c&quot;/&amp;gt;
&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlJavaTypeAdapter&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target({PACKAGE, FIELD, METHOD, TYPE, PARAMETER})
public @interface XmlJavaTypeAdapter {
  Class&amp;lt;? extends XmlAdapter&amp;gt; value();
  Class type() default DEFAULT.class;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlRootElement&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlRootElement marks a class as a top-level XML node. @XmlRootElement can also be used with @XmlElementRef to handle some inheritance situations.&lt;/P&gt;
&lt;P&gt;The&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE style=&quot;FONT-FAMILY: monospace&quot;&gt;name()&lt;/CODE&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;value of @XmlRootElement customizes the XML name used to serialize a top-level element. The default value is the class name.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlRootElement for renaming&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@XmlRootElement(name=&quot;my-bean&quot;)
class Bean {
  public String data;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML document for the Bean&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;my-bean&amp;gt;
  &amp;lt;data&amp;gt;A sample value&amp;lt;/data&amp;gt;
&amp;lt;/my-bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlRootElement definition&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value=TYPE)
public @interface XmlRootElement {
  public String name() default &quot;##default&quot;;
  public String namespace() default &quot;##default&quot;;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlTransient&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlTransient marks a field or property as unserializable. JAXB will ignore the transient field.&lt;/P&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlTransient annotation&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={FIELD,METHOD})
public @interface XmlTransient {
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=s1&gt;
&lt;H1 class=section style=&quot;FONT-SIZE: 27px; COLOR: rgb(0,51,102); MARGIN-RIGHT: 1em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: Helvetica, Arial, sans-serif&quot;&gt;@XmlValue&lt;/H1&gt;&lt;/DIV&gt;
&lt;P&gt;@XmlValue marks a single field as representing the entire content of the bean. If a bean has an @XmlValue annotation, no other property or field may be serialized.&lt;/P&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlValue filling a bean&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;class Bean {
  @XmlValue
  private String data;
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(153,0,51); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;XML document for @XmlValue&lt;/DIV&gt;
&lt;DIV class=example style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(229,209,172); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;&amp;lt;Bean&amp;gt;Sample Data&amp;lt;/Bean&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV class=def-caption style=&quot;FONT-SIZE: 19px; MARGIN-LEFT: 1.3em; COLOR: rgb(102,102,102); FONT-FAMILY: Helvetica, Arial, sans-serif; TEXT-ALIGN: left&quot;&gt;@XmlValue definition&lt;/DIV&gt;
&lt;DIV class=definition style=&quot;BORDER-RIGHT: rgb(153,153,153) 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: rgb(153,153,153) 1px solid; PADDING-LEFT: 1em; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0em; MARGIN: 1em 2em; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 712px; COLOR: black; PADDING-TOP: 0em; BORDER-BOTTOM: rgb(153,153,153) 1px solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: rgb(241,241,242); webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;&lt;PRE&gt;@Target(value={FIELD,METHOD})
public @interface XmlValue {
}
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;HR style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0.2em 0em; HEIGHT: 1px; BACKGROUND-COLOR: rgb(153,153,153); BORDER-RIGHT-WIDTH: 0px; webkit-background-clip: initial; webkit-background-origin: initial&quot;&gt;
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR class=Apple-interchange-newline&gt;</description>
			<category>java</category>
			<category>annotation</category>
			<category>jaxb</category>
			<author>(alseom)</author>
			<guid>http://dev.alseom.co.kr/92</guid>
			<comments>http://dev.alseom.co.kr/92#entry92comment</comments>
			<pubDate>Tue, 17 Nov 2009 16:23:07 +0900</pubDate>
		</item>
	</channel>
</rss>
