<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_252) on Fri Jul 16 09:39:14 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.eclipse.persistence.oxm.annotations (EclipseLink 3.0.2, API Reference)</title>
<meta name="date" content="2021-07-16">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.eclipse.persistence.oxm.annotations (EclipseLink 3.0.2, API Reference)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/persistence/oxm/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/eclipse/persistence/oxm/attachment/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/oxm/annotations/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.eclipse.persistence.oxm.annotations</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlVariableNode.DEFAULT.html" title="class in org.eclipse.persistence.oxm.annotations">XmlVariableNode.DEFAULT</a></td>
<td class="colLast">
<div class="block">Used in <a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlVariableNode.html#type--"><code>XmlVariableNode.type()</code></a> to
 signal that the type be inferred from the signature
 of the property.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlMarshalNullRepresentation.html" title="enum in org.eclipse.persistence.oxm.annotations">XmlMarshalNullRepresentation</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> This enumeration provides a means of specifying how a null value in a
 java object should be marshalled to XML.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlVirtualAccessMethodsSchema.html" title="enum in org.eclipse.persistence.oxm.annotations">XmlVirtualAccessMethodsSchema</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Annotation Type</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlAccessMethods.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlAccessMethods</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b>This annotation allows the userTo specify accessor methods for
 a given property.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlCDATA.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlCDATA</a></td>
<td class="colLast">
<div class="block">Wrap the value inside a CDATA section.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlClassExtractor.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlClassExtractor</a></td>
<td class="colLast">
<div class="block">A ClassExtractor allows for a user defined class indicator in place of
 using xsi:type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlCustomizer.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlCustomizer</a></td>
<td class="colLast">
<div class="block">The XmlCustomizer annotation is used to specify a class that implements the
 org.eclipse.persistence.config.DescriptorCustomizer
 interface and is to run against a class descriptor after all metadata
 processing has been completed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlDiscriminatorNode.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlDiscriminatorNode</a></td>
<td class="colLast">
<div class="block">The XmlDiscriminatorNode annotation is used to specify the class
 indicator field name when using inheritance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlDiscriminatorValue.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlDiscriminatorValue</a></td>
<td class="colLast">
<div class="block">The XmlDiscriminatorValue annotation is used to specify the class indicator for a
 given type when using inheritance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlElementNillable.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlElementNillable</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Provide a means of setting nillable on type and package
 level, which is not possible with standard XmlElement annotation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlElementsJoinNodes.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlElementsJoinNodes</a></td>
<td class="colLast">
<div class="block">XmlElementsJoinNodes is used in conjunction with <code>XmlElements</code> in order to specify the key references for the
 targets of the XmlElements annotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlIDExtension.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlIDExtension</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Provide a way to allow properties with XmlID annotation have different type than java.lang.String.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlInverseReference.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlInverseReference</a></td>
<td class="colLast">
<div class="block">This annotation is used to map a back-pointer during the unmarshal operation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlIsSetNullPolicy.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlIsSetNullPolicy</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Provide a means of using annotations to customise the handling of null values
 and their xml representation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlJoinNode.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlJoinNode</a></td>
<td class="colLast">
<div class="block"><b>XmlJoinNode</b> is used in conjunction with <code>XmlKey</code> to specify a reference mapping.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlJoinNodes.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlJoinNodes</a></td>
<td class="colLast">
<div class="block"><b>XmlJoinNodes</b> is a holder for multiple <code>XmlJoinNode</code> annotations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlKey.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlKey</a></td>
<td class="colLast">
<div class="block">XmlKey is used to mark a property as a key, to be referenced using a key-based mapping via <code>XmlJoinNode</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlLocation.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlLocation</a></td>
<td class="colLast">
<div class="block">XmlLocation can be used on a property of type Locator, to provide information about
 the XML location (line and column number, source location) that the owning object was unmarshalled from.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlNamedAttributeNode.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlNamedAttributeNode</a></td>
<td class="colLast">
<div class="block">A <code>XmlNamedAttributeNode</code> is a member element of a
 <code>XmlNamedObjectGraph</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlNamedObjectGraph.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlNamedObjectGraph</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Used to define the boundaries for a marshal or unmarhsal
 operation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlNamedObjectGraphs.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlNamedObjectGraphs</a></td>
<td class="colLast">
<div class="block">Used to group <code>XmlNamedObjectGraph</code> annotations.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlNamedSubgraph.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlNamedSubgraph</a></td>
<td class="colLast">
<div class="block">A <code>XmlNamedSubgraph</code> is a member element of a
 <code>XmlNamedObjectGraph</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlNameTransformer.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlNameTransformer</a></td>
<td class="colLast">
<div class="block">An XmlNameTransformer allows for a user defined class to transform names.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlNullPolicy.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlNullPolicy</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Provide a means of using annotations to customise the handling of null values
 and their xml representation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlParameter.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlParameter</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> An annotation representing a parameter to a method.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlPath.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlPath</a></td>
<td class="colLast">
<div class="block">XPath based mapping is what allows an existing object model to be mapped
 to an existing XML schema.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlPaths.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlPaths</a></td>
<td class="colLast">
<div class="block"><b>Purpose</b>: This annotation is used in conjunction with an XmlElements annotation to
 specify an XmlPath for each of the XmlElement annotations in the XmlElements.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlProperties.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlProperties</a></td>
<td class="colLast">
<div class="block">Annotation for user defined properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlProperty.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlProperty</a></td>
<td class="colLast">
<div class="block">Annotation for a user defined property.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlReadOnly.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlReadOnly</a></td>
<td class="colLast">
<div class="block"><b>Purpose: </b>This annotation indicates that a specific property should be flagged as read-only
 by EclipseLink.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlReadTransformer.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlReadTransformer</a></td>
<td class="colLast">
<div class="block"><b>Purpose: </b>XmlReadTransformer is used to allow the user direct access to the XML in order to populate their
 object model.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlTransformation.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlTransformation</a></td>
<td class="colLast">
<div class="block">Transformation is an optional annotation for org.eclipse.persistence.mappings.oxm.XMLTransformationMapping.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlValueExtension.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlValueExtension</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Provide a way to allow classes, which contain property annotated with XmlValue to extend classes other than java.lang.Object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlVariableNode.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlVariableNode</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlVirtualAccessMethods.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlVirtualAccessMethods</a></td>
<td class="colLast">
<div class="block">The XmlVirtualAccessMethods annotation is used to indicate that this class has
 been configured to hold virtual properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlWriteOnly.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlWriteOnly</a></td>
<td class="colLast">
<div class="block"><b>Purpose</b>: This annotation indicates that a specific property should be flagged as write-only
 by EclipseLink.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlWriteTransformer.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlWriteTransformer</a></td>
<td class="colLast">
<div class="block">Annotation for org.eclipse.persistence.mappings.oxm.XMLTransformationMapping.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/persistence/oxm/annotations/XmlWriteTransformers.html" title="annotation in org.eclipse.persistence.oxm.annotations">XmlWriteTransformers</a></td>
<td class="colLast">
<div class="block"><b>Purpose:</b> Annotation used to wrap multiple XmlWriteTransformer annotations.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/persistence/oxm/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/eclipse/persistence/oxm/attachment/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/oxm/annotations/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</body>
</html>
