blob: 75abee9fa93f6e961a4524d1a997718a8fcf04c7 [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 Jakarta XML Binding objects
representing same XML document.
<p>
An instance of this class maintains the association between XML nodes of
an infoset preserving view and a Jakarta XML Binding 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
Jakarta XML Binding 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 Jakarta XML Binding view.
(Note to conserve resources, it is possible to only unmarshal a
subtree of the XML infoset view to the Jakarta XML Binding view.)</li>
<li>application access/updates Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding mapped class to hold <code>node</code>'s XML data.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="JAXBElement.html">JAXBElement</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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding object.
<p>
Once a Jakarta XML Binding 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 Jakarta XML Binding object is
established by the bind methods and the update methods.
Note that this association is partial; not all XML elements
have associated Jakarta XML Binding objects, and not all Jakarta XML Binding 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 Jakarta XML Binding object tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if the specified Jakarta XML Binding 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 Jakarta XML Binding object associated with the given XML element.
<p>
Once a Jakarta XML Binding 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 Jakarta XML Binding object is
established by the unmarshal, marshal and update methods.
Note that this association is partial; not all XML elements
have associated Jakarta XML Binding objects, and not all Jakarta XML Binding 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
Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jaxbObject</code> - root of potentially modified Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding tree,
this operation updates an existing tree, reusing as much Jakarta XML Binding objects
as possible.
<p>
As a side-effect, this operation updates the association between
XML nodes and Jakarta XML Binding objects.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the updated Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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 Jakarta XML Binding 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>