blob: c8c3da9286080feb0f26dd74341eeb737560e7ba [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Binder</title>
<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="Binder";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../jakarta/xml/bind/DataBindingException.html" title="class in jakarta.xml.bind"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/xml/bind/Binder.html" target="_top">Frames</a></li>
<li><a href="Binder.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.xml.bind</div>
<h2 title="Class Binder" class="title">Class Binder&lt;XmlNode&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>jakarta.xml.bind.Binder&lt;XmlNode&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">Binder&lt;XmlNode&gt;</span>
extends java.lang.Object</pre>
<div class="block">Enable synchronization between XML infoset nodes and JAXB objects
representing same XML document.
<p>
An instance of this class maintains the association between XML nodes of
an infoset preserving view and a JAXB representation of an XML document.
Navigation between the two views is provided by the methods
<a href="../../../jakarta/xml/bind/Binder.html#getXMLNode-java.lang.Object-"><code>getXMLNode(Object)</code></a> and <a href="../../../jakarta/xml/bind/Binder.html#getJAXBNode-XmlNode-"><code>getJAXBNode(Object)</code></a>.
<p>
Modifications can be made to either the infoset preserving view or the
JAXB representation of the document while the other view remains
unmodified. The binder is able to synchronize the changes made in the
modified view back into the other view using the appropriate
Binder update methods, <a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-XmlNode-"><code>updateXML(Object, Object)</code></a> or
<a href="../../../jakarta/xml/bind/Binder.html#updateJAXB-XmlNode-"><code>updateJAXB(Object)</code></a>.
<p>
A typical usage scenario is the following:
<ul>
<li>load XML document into an XML infoset representation</li>
<li><a href="../../../jakarta/xml/bind/Binder.html#unmarshal-XmlNode-"><code>unmarshal(Object)</code></a> XML infoset view to JAXB view.
(Note to conserve resources, it is possible to only unmarshal a
subtree of the XML infoset view to the JAXB view.)</li>
<li>application access/updates JAXB view of XML document.</li>
<li><a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-"><code>updateXML(Object)</code></a> synchronizes modifications to JAXB view
back into the XML infoset view. Update operation preserves as
much of original XML infoset as possible (i.e. comments, PI, ...)</li>
</ul>
<p>
A Binder instance is created using the factory method
<a href="../../../jakarta/xml/bind/JAXBContext.html#createBinder--"><code>JAXBContext.createBinder()</code></a> or <a href="../../../jakarta/xml/bind/JAXBContext.html#createBinder-java.lang.Class-"><code>JAXBContext.createBinder(Class)</code></a>.
<p>
The template parameter, <code>XmlNode</code>, is the
root interface/class for the XML infoset preserving representation.
A Binder implementation is required to minimally support
an <code>XmlNode</code> value of <code>org.w3c.dom.Node.class</code>.
A Binder implementation can support alternative XML infoset
preserving representations.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAXB 2.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#Binder--">Binder</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind">ValidationEventHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#getEventHandler--">getEventHandler</a></span>()</code>
<div class="block">Return the current event handler or the default event handler if one
hasn't been set.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#getJAXBNode-XmlNode-">getJAXBNode</a></span>(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)</code>
<div class="block">Gets the JAXB object associated with the given XML element.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#getProperty-java.lang.String-">getProperty</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Get the particular property in the underlying implementation of
<code>Binder</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract javax.xml.validation.Schema</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#getSchema--">getSchema</a></span>()</code>
<div class="block">Gets the last <code>Schema</code> object (including null) set by the
<a href="../../../jakarta/xml/bind/Binder.html#setSchema-javax.xml.validation.Schema-"><code>setSchema(Schema)</code></a> method.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#getXMLNode-java.lang.Object-">getXMLNode</a></span>(java.lang.Object&nbsp;jaxbObject)</code>
<div class="block">Gets the XML element associated with the given JAXB object.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#marshal-java.lang.Object-XmlNode-">marshal</a></span>(java.lang.Object&nbsp;jaxbObject,
<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)</code>
<div class="block">Marshal a JAXB object tree to a new XML document.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#setEventHandler-jakarta.xml.bind.ValidationEventHandler-">setEventHandler</a></span>(<a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind">ValidationEventHandler</a>&nbsp;handler)</code>
<div class="block">Allow an application to register a <code>ValidationEventHandler</code>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#setProperty-java.lang.String-java.lang.Object-">setProperty</a></span>(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value)</code>
<div class="block">Set the particular property in the underlying implementation of
<code>Binder</code>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#setSchema-javax.xml.validation.Schema-">setSchema</a></span>(javax.xml.validation.Schema&nbsp;schema)</code>
<div class="block">Specifies whether marshal, unmarshal and update methods
performs validation on their XML content.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#unmarshal-XmlNode-">unmarshal</a></span>(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)</code>
<div class="block">Unmarshal XML infoset view to a JAXB object tree.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;<a href="../../../jakarta/xml/bind/JAXBElement.html" title="class in jakarta.xml.bind">JAXBElement</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#unmarshal-XmlNode-java.lang.Class-">unmarshal</a></span>(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode,
java.lang.Class&lt;T&gt;&nbsp;declaredType)</code>
<div class="block">Unmarshal XML root element by provided <code>declaredType</code>
to a JAXB object tree.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#updateJAXB-XmlNode-">updateJAXB</a></span>(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)</code>
<div class="block">Takes an XML node and updates its associated JAXB object and its descendants.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-">updateXML</a></span>(java.lang.Object&nbsp;jaxbObject)</code>
<div class="block">Takes an JAXB object and updates
its associated XML node and its descendants.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-XmlNode-">updateXML</a></span>(java.lang.Object&nbsp;jaxbObject,
<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)</code>
<div class="block">Changes in JAXB object tree are updated in its associated XML parse tree.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Binder--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Binder</h4>
<pre>public&nbsp;Binder()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="unmarshal-java.lang.Object-">
<!-- -->
</a><a name="unmarshal-XmlNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unmarshal</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;unmarshal(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Unmarshal XML infoset view to a JAXB object tree.
<p>
This method is similar to <a href="../../../jakarta/xml/bind/Unmarshaller.html#unmarshal-org.w3c.dom.Node-"><code>Unmarshaller.unmarshal(Node)</code></a>
with the addition of maintaining the association between XML nodes
and the produced JAXB objects, enabling future update operations,
<a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-XmlNode-"><code>updateXML(Object, Object)</code></a> or <a href="../../../jakarta/xml/bind/Binder.html#updateJAXB-XmlNode-"><code>updateJAXB(Object)</code></a>.
<p>
When <a href="../../../jakarta/xml/bind/Binder.html#getSchema--"><code>getSchema()</code></a> is non-null, <code>xmlNode</code>
and its descendants is validated during this operation.
<p>
This method throws <a href="../../../jakarta/xml/bind/UnmarshalException.html" title="class in jakarta.xml.bind"><code>UnmarshalException</code></a> when the Binder's
<a href="../../../jakarta/xml/bind/JAXBContext.html" title="class in jakarta.xml.bind"><code>JAXBContext</code></a> does not have a mapping for the XML element name
or the type, specifiable via <code>@xsi:type</code>, of <code>xmlNode</code>
to a JAXB mapped class. The method <a href="../../../jakarta/xml/bind/Binder.html#unmarshal-XmlNode-java.lang.Class-"><code>unmarshal(Object, Class)</code></a>
enables an application to specify the JAXB mapped class that
the <code>xmlNode</code> should be mapped to.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>xmlNode</code> - the document/element to unmarshal XML data from.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created root object of the JAXB object tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - If any unexpected errors occur while unmarshalling</dd>
<dd><code><a href="../../../jakarta/xml/bind/UnmarshalException.html" title="class in jakarta.xml.bind">UnmarshalException</a></code> - If the <a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind"><code>ValidationEventHandler</code></a>
returns false from its <code>handleEvent</code> method or the
<code>Binder</code> is unable to perform the XML to Java
binding.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If the node parameter is null</dd>
</dl>
</li>
</ul>
<a name="unmarshal-java.lang.Object-java.lang.Class-">
<!-- -->
</a><a name="unmarshal-XmlNode-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unmarshal</h4>
<pre>public abstract&nbsp;&lt;T&gt;&nbsp;<a href="../../../jakarta/xml/bind/JAXBElement.html" title="class in jakarta.xml.bind">JAXBElement</a>&lt;T&gt;&nbsp;unmarshal(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode,
java.lang.Class&lt;T&gt;&nbsp;declaredType)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Unmarshal XML root element by provided <code>declaredType</code>
to a JAXB object tree.
<p>
Implements <a href="Unmarshaller.html#unmarshalByDeclaredType">Unmarshal by Declared Type</a>
<p>
This method is similar to <a href="../../../jakarta/xml/bind/Unmarshaller.html#unmarshal-org.w3c.dom.Node-java.lang.Class-"><code>Unmarshaller.unmarshal(Node, Class)</code></a>
with the addition of maintaining the association between XML nodes
and the produced JAXB objects, enabling future update operations,
<a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-XmlNode-"><code>updateXML(Object, Object)</code></a> or <a href="../../../jakarta/xml/bind/Binder.html#updateJAXB-XmlNode-"><code>updateJAXB(Object)</code></a>.
<p>
When <a href="../../../jakarta/xml/bind/Binder.html#getSchema--"><code>getSchema()</code></a> is non-null, <code>xmlNode</code>
and its descendants is validated during this operation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>xmlNode</code> - the document/element to unmarshal XML data from.</dd>
<dd><code>declaredType</code> - appropriate JAXB mapped class to hold <code>node</code>'s XML data.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="JAXBElement.html">JAXB Element</a> representation
of <code>node</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - If any unexpected errors occur while unmarshalling</dd>
<dd><code><a href="../../../jakarta/xml/bind/UnmarshalException.html" title="class in jakarta.xml.bind">UnmarshalException</a></code> - If the <a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind"><code>ValidationEventHandler</code></a>
returns false from its <code>handleEvent</code> method or the
<code>Binder</code> is unable to perform the XML to Java
binding.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If any of the input parameters are null</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAXB 2.0</dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-java.lang.Object-">
<!-- -->
</a><a name="marshal-java.lang.Object-XmlNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public abstract&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;jaxbObject,
<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Marshal a JAXB object tree to a new XML document.
<p>
This method is similar to <a href="../../../jakarta/xml/bind/Marshaller.html#marshal-java.lang.Object-org.w3c.dom.Node-"><code>Marshaller.marshal(Object, Node)</code></a>
with the addition of maintaining the association between JAXB objects
and the produced XML nodes,
enabling future update operations such as
<a href="../../../jakarta/xml/bind/Binder.html#updateXML-java.lang.Object-XmlNode-"><code>updateXML(Object, Object)</code></a> or <a href="../../../jakarta/xml/bind/Binder.html#updateJAXB-XmlNode-"><code>updateJAXB(Object)</code></a>.
<p>
When <a href="../../../jakarta/xml/bind/Binder.html#getSchema--"><code>getSchema()</code></a> is non-null, the marshalled
xml content is validated during this operation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jaxbObject</code> - The content tree to be marshalled.</dd>
<dd><code>xmlNode</code> - The parameter must be a Node that accepts children.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../jakarta/xml/bind/MarshalException.html" title="class in jakarta.xml.bind">MarshalException</a></code> - If the <a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind"><code>ValidationEventHandler</code></a>
returns false from its <code>handleEvent</code> method or the
<code>Binder</code> is unable to marshal <code>jaxbObject</code> (or any
object reachable from <code>jaxbObject</code>).</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If any of the method parameters are null</dd>
</dl>
</li>
</ul>
<a name="getXMLNode-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getXMLNode</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;getXMLNode(java.lang.Object&nbsp;jaxbObject)</pre>
<div class="block">Gets the XML element associated with the given JAXB object.
<p>
Once a JAXB object tree is associated with an XML fragment,
this method enables navigation between the two trees.
<p>
An association between an XML element and a JAXB object is
established by the bind methods and the update methods.
Note that this association is partial; not all XML elements
have associated JAXB objects, and not all JAXB objects have
associated XML elements.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jaxbObject</code> - An instance that is reachable from a prior
call to a bind or update method that returned
a JAXB object tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if the specified JAXB object is not known to this
<a href="../../../jakarta/xml/bind/Binder.html" title="class in jakarta.xml.bind"><code>Binder</code></a>, or if it is not associated with an
XML element.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If the jaxbObject parameter is null</dd>
</dl>
</li>
</ul>
<a name="getJAXBNode-java.lang.Object-">
<!-- -->
</a><a name="getJAXBNode-XmlNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJAXBNode</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;getJAXBNode(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)</pre>
<div class="block">Gets the JAXB object associated with the given XML element.
<p>
Once a JAXB object tree is associated with an XML fragment,
this method enables navigation between the two trees.
<p>
An association between an XML element and a JAXB object is
established by the unmarshal, marshal and update methods.
Note that this association is partial; not all XML elements
have associated JAXB objects, and not all JAXB objects have
associated XML elements.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if the specified XML node is not known to this
<a href="../../../jakarta/xml/bind/Binder.html" title="class in jakarta.xml.bind"><code>Binder</code></a>, or if it is not associated with a
JAXB object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If the node parameter is null</dd>
</dl>
</li>
</ul>
<a name="updateXML-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateXML</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;updateXML(java.lang.Object&nbsp;jaxbObject)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Takes an JAXB object and updates
its associated XML node and its descendants.
<p>
This is a convenience method of:
<pre>
updateXML( jaxbObject, getXMLNode(jaxbObject));
</pre></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - If any unexpected problem occurs updating corresponding XML content.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If the jaxbObject parameter is null</dd>
</dl>
</li>
</ul>
<a name="updateXML-java.lang.Object-java.lang.Object-">
<!-- -->
</a><a name="updateXML-java.lang.Object-XmlNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateXML</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;updateXML(java.lang.Object&nbsp;jaxbObject,
<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Changes in JAXB object tree are updated in its associated XML parse tree.
<p>
This operation can be thought of as an "in-place" marshalling.
The difference is that instead of creating a whole new XML tree,
this operation updates an existing tree while trying to preserve
the XML as much as possible.
<p>
For example, unknown elements/attributes in XML that were not bound
to JAXB will be left untouched (whereas a marshalling operation
would create a new tree that doesn't contain any of those.)
<p>
As a side-effect, this operation updates the association between
XML nodes and JAXB objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jaxbObject</code> - root of potentially modified JAXB object tree</dd>
<dd><code>xmlNode</code> - root of update target XML parse tree</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the updated XML node. Typically, this is the same
node you passed in as <i>xmlNode</i>, but it maybe
a different object, for example when the tag name of the object
has changed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - If any unexpected problem occurs updating corresponding XML content.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If any of the input parameters are null</dd>
</dl>
</li>
</ul>
<a name="updateJAXB-java.lang.Object-">
<!-- -->
</a><a name="updateJAXB-XmlNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateJAXB</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;updateJAXB(<a href="../../../jakarta/xml/bind/Binder.html" title="type parameter in Binder">XmlNode</a>&nbsp;xmlNode)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Takes an XML node and updates its associated JAXB object and its descendants.
<p>
This operation can be thought of as an "in-place" unmarshalling.
The difference is that instead of creating a whole new JAXB tree,
this operation updates an existing tree, reusing as much JAXB objects
as possible.
<p>
As a side-effect, this operation updates the association between
XML nodes and JAXB objects.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the updated JAXB object. Typically, this is the same
object that was returned from earlier
<a href="../../../jakarta/xml/bind/Binder.html#marshal-java.lang.Object-XmlNode-"><code>marshal(Object,Object)</code></a> or
<a href="../../../jakarta/xml/bind/Binder.html#updateJAXB-XmlNode-"><code>updateJAXB(Object)</code></a> method invocation,
but it maybe
a different object, for example when the name of the XML
element has changed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - If any unexpected problem occurs updating corresponding JAXB mapped content.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If node parameter is null</dd>
</dl>
</li>
</ul>
<a name="setSchema-javax.xml.validation.Schema-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSchema</h4>
<pre>public abstract&nbsp;void&nbsp;setSchema(javax.xml.validation.Schema&nbsp;schema)</pre>
<div class="block">Specifies whether marshal, unmarshal and update methods
performs validation on their XML content.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schema</code> - set to null to disable validation.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../jakarta/xml/bind/Unmarshaller.html#setSchema-javax.xml.validation.Schema-"><code>Unmarshaller.setSchema(Schema)</code></a></dd>
</dl>
</li>
</ul>
<a name="getSchema--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSchema</h4>
<pre>public abstract&nbsp;javax.xml.validation.Schema&nbsp;getSchema()</pre>
<div class="block">Gets the last <code>Schema</code> object (including null) set by the
<a href="../../../jakarta/xml/bind/Binder.html#setSchema-javax.xml.validation.Schema-"><code>setSchema(Schema)</code></a> method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Schema object for validation or null if not present</dd>
</dl>
</li>
</ul>
<a name="setEventHandler-jakarta.xml.bind.ValidationEventHandler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEventHandler</h4>
<pre>public abstract&nbsp;void&nbsp;setEventHandler(<a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind">ValidationEventHandler</a>&nbsp;handler)
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Allow an application to register a <code>ValidationEventHandler</code>.
<p>
The <code>ValidationEventHandler</code> will be called by the JAXB Provider
if any validation errors are encountered during calls to any of the
Binder unmarshal, marshal and update methods.
<p>
Calling this method with a null parameter will cause the Binder
to revert back to the default default event handler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - the validation event handler</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - if an error was encountered while setting the
event handler</dd>
</dl>
</li>
</ul>
<a name="getEventHandler--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventHandler</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/xml/bind/ValidationEventHandler.html" title="interface in jakarta.xml.bind">ValidationEventHandler</a>&nbsp;getEventHandler()
throws <a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></pre>
<div class="block">Return the current event handler or the default event handler if one
hasn't been set.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current ValidationEventHandler or the default event handler
if it hasn't been set</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/JAXBException.html" title="class in jakarta.xml.bind">JAXBException</a></code> - if an error was encountered while getting the
current event handler</dd>
</dl>
</li>
</ul>
<a name="setProperty-java.lang.String-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setProperty</h4>
<pre>public abstract&nbsp;void&nbsp;setProperty(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value)
throws <a href="../../../jakarta/xml/bind/PropertyException.html" title="class in jakarta.xml.bind">PropertyException</a></pre>
<div class="block">Set the particular property in the underlying implementation of
<code>Binder</code>. This method can only be used to set one of
the standard JAXB defined unmarshal/marshal properties
or a provider specific property for binder, unmarshal or marshal.
Attempting to set an undefined property will result in
a PropertyException being thrown. See
<a href="Unmarshaller.html#supportedProps">Supported Unmarshal Properties</a>
and
<a href="Marshaller.html#supportedProps">Supported Marshal Properties</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the property to be set. This value can either
be specified using one of the constant fields or a user
supplied string.</dd>
<dd><code>value</code> - the value of the property to be set</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/PropertyException.html" title="class in jakarta.xml.bind">PropertyException</a></code> - when there is an error processing the given
property or value</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If the name parameter is null</dd>
</dl>
</li>
</ul>
<a name="getProperty-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getProperty</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;getProperty(java.lang.String&nbsp;name)
throws <a href="../../../jakarta/xml/bind/PropertyException.html" title="class in jakarta.xml.bind">PropertyException</a></pre>
<div class="block">Get the particular property in the underlying implementation of
<code>Binder</code>. This method can only
be used to get one of
the standard JAXB defined unmarshal/marshal properties
or a provider specific property for binder, unmarshal or marshal.
Attempting to get an undefined property will result in
a PropertyException being thrown. See
<a href="Unmarshaller.html#supportedProps">Supported Unmarshal Properties</a>
and
<a href="Marshaller.html#supportedProps">Supported Marshal Properties</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the property to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value of the requested property</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/xml/bind/PropertyException.html" title="class in jakarta.xml.bind">PropertyException</a></code> - when there is an error retrieving the given property or value
property name</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If the name parameter is null</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../jakarta/xml/bind/DataBindingException.html" title="class in jakarta.xml.bind"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/xml/bind/Binder.html" target="_top">Frames</a></li>
<li><a href="Binder.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>