<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>AbstractMarshallerImpl</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="AbstractMarshallerImpl";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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="../../../../javax/xml/bind/helpers/AbstractUnmarshallerImpl.html" title="class in javax.xml.bind.helpers"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/xml/bind/helpers/AbstractMarshallerImpl.html" target="_top">Frames</a></li>
<li><a href="AbstractMarshallerImpl.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">javax.xml.bind.helpers</div>
<h2 title="Class AbstractMarshallerImpl" class="title">Class AbstractMarshallerImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>javax.xml.bind.helpers.AbstractMarshallerImpl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractMarshallerImpl</span>
extends java.lang.Object
implements <a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></pre>
<div class="block">Partial default <code>Marshaller</code> implementation.
 
 <p>
 This class provides a partial default implementation for the
 <a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind"><code>Marshaller</code></a> interface.
 
 <p>
 The only methods that a JAXB Provider has to implement are
 <a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.transform.Result-"><code>marshal(Object, javax.xml.transform.Result)</code></a>,
 <a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.transform.Result-"><code>marshal(Object, javax.xml.stream.XMLStreamWriter)</code></a>, and
 <a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.transform.Result-"><code>marshal(Object, javax.xml.stream.XMLEventWriter)</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAXB 1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind"><code>Marshaller</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.javax.xml.bind.Marshaller">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;javax.xml.bind.<a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></h3>
<code><a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind">Marshaller.Listener</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.xml.bind.Marshaller">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;javax.xml.bind.<a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></h3>
<code><a href="../../../../javax/xml/bind/Marshaller.html#JAXB_ENCODING">JAXB_ENCODING</a>, <a href="../../../../javax/xml/bind/Marshaller.html#JAXB_FORMATTED_OUTPUT">JAXB_FORMATTED_OUTPUT</a>, <a href="../../../../javax/xml/bind/Marshaller.html#JAXB_FRAGMENT">JAXB_FRAGMENT</a>, <a href="../../../../javax/xml/bind/Marshaller.html#JAXB_NO_NAMESPACE_SCHEMA_LOCATION">JAXB_NO_NAMESPACE_SCHEMA_LOCATION</a>, <a href="../../../../javax/xml/bind/Marshaller.html#JAXB_SCHEMA_LOCATION">JAXB_SCHEMA_LOCATION</a></code></li>
</ul>
</li>
</ul>
<!-- ======== 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="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#AbstractMarshallerImpl--">AbstractMarshallerImpl</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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>&lt;A extends <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters">XmlAdapter</a>&gt;<br>A</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getAdapter-java.lang.Class-">getAdapter</a></span>(java.lang.Class&lt;A&gt;&nbsp;type)</code>
<div class="block">Gets the adapter associated with the specified type.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/xml/bind/attachment/AttachmentMarshaller.html" title="class in javax.xml.bind.attachment">AttachmentMarshaller</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getAttachmentMarshaller--">getAttachmentMarshaller</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getEncoding--">getEncoding</a></span>()</code>
<div class="block">Convenience method for getting the current output encoding.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind">ValidationEventHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.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="i4" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getJavaEncoding-java.lang.String-">getJavaEncoding</a></span>(java.lang.String&nbsp;encoding)</code>
<div class="block">Gets the corresponding Java encoding name from an IANA name.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind">Marshaller.Listener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getListener--">getListener</a></span>()</code>
<div class="block">Return <a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind"><code>Marshaller.Listener</code></a> registered with this <a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind"><code>Marshaller</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>org.w3c.dom.Node</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getNode-java.lang.Object-">getNode</a></span>(java.lang.Object&nbsp;obj)</code>
<div class="block">By default, the getNode method is unsupported and throw
 an <code>UnsupportedOperationException</code>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getNoNSSchemaLocation--">getNoNSSchemaLocation</a></span>()</code>
<div class="block">Convenience method for getting the current noNamespaceSchemaLocation.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getProperty-java.lang.String-">getProperty</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Default implementation of the getProperty method handles
 the four defined properties in Marshaller.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>javax.xml.validation.Schema</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getSchema--">getSchema</a></span>()</code>
<div class="block">Get the JAXP 1.3 <code>Schema</code> object
 being used to perform marshal-time validation.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#getSchemaLocation--">getSchemaLocation</a></span>()</code>
<div class="block">Convenience method for getting the current schemaLocation.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#isFormattedOutput--">isFormattedOutput</a></span>()</code>
<div class="block">Convenience method for getting the formatted output flag.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#isFragment--">isFragment</a></span>()</code>
<div class="block">Convenience method for getting the fragment flag.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-org.xml.sax.ContentHandler-">marshal</a></span>(java.lang.Object&nbsp;obj,
       org.xml.sax.ContentHandler&nbsp;handler)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into SAX2 events.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-java.io.File-">marshal</a></span>(java.lang.Object&nbsp;jaxbElement,
       java.io.File&nbsp;output)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a file.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-org.w3c.dom.Node-">marshal</a></span>(java.lang.Object&nbsp;obj,
       org.w3c.dom.Node&nbsp;node)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a DOM tree.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-java.io.OutputStream-">marshal</a></span>(java.lang.Object&nbsp;obj,
       java.io.OutputStream&nbsp;os)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into an output stream.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-java.io.Writer-">marshal</a></span>(java.lang.Object&nbsp;obj,
       java.io.Writer&nbsp;w)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a Writer.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-javax.xml.stream.XMLEventWriter-">marshal</a></span>(java.lang.Object&nbsp;obj,
       javax.xml.stream.XMLEventWriter&nbsp;writer)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a
 <code>XMLEventWriter</code>.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal-java.lang.Object-javax.xml.stream.XMLStreamWriter-">marshal</a></span>(java.lang.Object&nbsp;obj,
       javax.xml.stream.XMLStreamWriter&nbsp;writer)</code>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a
 <code>XMLStreamWriter</code>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>&lt;A extends <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters">XmlAdapter</a>&gt;<br>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setAdapter-java.lang.Class-A-">setAdapter</a></span>(java.lang.Class&lt;A&gt;&nbsp;type,
          A&nbsp;adapter)</code>
<div class="block">Associates a configured instance of <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters"><code>XmlAdapter</code></a> with this marshaller.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setAdapter-javax.xml.bind.annotation.adapters.XmlAdapter-">setAdapter</a></span>(<a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters">XmlAdapter</a>&nbsp;adapter)</code>
<div class="block">Associates a configured instance of <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters"><code>XmlAdapter</code></a> with this marshaller.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setAttachmentMarshaller-javax.xml.bind.attachment.AttachmentMarshaller-">setAttachmentMarshaller</a></span>(<a href="../../../../javax/xml/bind/attachment/AttachmentMarshaller.html" title="class in javax.xml.bind.attachment">AttachmentMarshaller</a>&nbsp;am)</code>
<div class="block">Associate a context that enables binary data within an XML document
 to be transmitted as XML-binary optimized attachment.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setEncoding-java.lang.String-">setEncoding</a></span>(java.lang.String&nbsp;encoding)</code>
<div class="block">Convenience method for setting the output encoding.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setEventHandler-javax.xml.bind.ValidationEventHandler-">setEventHandler</a></span>(<a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind">ValidationEventHandler</a>&nbsp;handler)</code>
<div class="block">Allow an application to register a validation event handler.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setFormattedOutput-boolean-">setFormattedOutput</a></span>(boolean&nbsp;v)</code>
<div class="block">Convenience method for setting the formatted output flag.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setFragment-boolean-">setFragment</a></span>(boolean&nbsp;v)</code>
<div class="block">Convenience method for setting the fragment flag.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setListener-javax.xml.bind.Marshaller.Listener-">setListener</a></span>(<a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind">Marshaller.Listener</a>&nbsp;listener)</code>
<div class="block">
 Register marshal event callback <a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind"><code>Marshaller.Listener</code></a> with this <a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind"><code>Marshaller</code></a>.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setNoNSSchemaLocation-java.lang.String-">setNoNSSchemaLocation</a></span>(java.lang.String&nbsp;location)</code>
<div class="block">Convenience method for setting the noNamespaceSchemaLocation.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.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">Default implementation of the setProperty method handles
 the four defined properties in Marshaller.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setSchema-javax.xml.validation.Schema-">setSchema</a></span>(javax.xml.validation.Schema&nbsp;schema)</code>
<div class="block">Specify the JAXP 1.3 <code>Schema</code>
 object that should be used to validate subsequent marshal operations
 against.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/helpers/AbstractMarshallerImpl.html#setSchemaLocation-java.lang.String-">setSchemaLocation</a></span>(java.lang.String&nbsp;location)</code>
<div class="block">Convenience method for setting the schemaLocation.</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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.xml.bind.Marshaller">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;javax.xml.bind.<a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></h3>
<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.transform.Result-">marshal</a></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="AbstractMarshallerImpl--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractMarshallerImpl</h4>
<pre>public&nbsp;AbstractMarshallerImpl()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="marshal-java.lang.Object-java.io.OutputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public final&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;obj,
                          java.io.OutputStream&nbsp;os)
                   throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-java.io.OutputStream-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into an output stream.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-java.io.OutputStream-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The root of content tree to be marshalled.</dd>
<dd><code>os</code> - XML will be added to this stream.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;jaxbElement,
                    java.io.File&nbsp;output)
             throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-java.io.File-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a file.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-java.io.File-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jaxbElement</code> - The root of content tree to be marshalled.</dd>
<dd><code>output</code> - File to be written. If this file already exists, it will be overwritten.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-java.io.Writer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public final&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;obj,
                          java.io.Writer&nbsp;w)
                   throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-java.io.Writer-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a Writer.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-java.io.Writer-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The root of content tree to be marshalled.</dd>
<dd><code>w</code> - XML will be sent to this writer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-org.xml.sax.ContentHandler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public final&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;obj,
                          org.xml.sax.ContentHandler&nbsp;handler)
                   throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-org.xml.sax.ContentHandler-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into SAX2 events.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-org.xml.sax.ContentHandler-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The root of content tree to be marshalled.</dd>
<dd><code>handler</code> - XML will be sent to this handler as SAX2 events.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-org.w3c.dom.Node-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public final&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;obj,
                          org.w3c.dom.Node&nbsp;node)
                   throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-org.w3c.dom.Node-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a DOM tree.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-org.w3c.dom.Node-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The content tree to be marshalled.</dd>
<dd><code>node</code> - DOM nodes will be added as children of this node.
      This parameter must be a Node that accepts children
      (<code>Document</code>,
      <code>DocumentFragment</code>, or
      <code>Element</code>)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="getNode-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNode</h4>
<pre>public&nbsp;org.w3c.dom.Node&nbsp;getNode(java.lang.Object&nbsp;obj)
                         throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block">By default, the getNode method is unsupported and throw
 an <code>UnsupportedOperationException</code>.
 
 Implementations that choose to support this method must
 override this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getNode-java.lang.Object-">getNode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - - JAXB Java representation of XML content</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the DOM tree view of the contentTree</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs</dd>
</dl>
</li>
</ul>
<a name="getEncoding--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEncoding</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getEncoding()</pre>
<div class="block">Convenience method for getting the current output encoding.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current encoding or "UTF-8" if it hasn't been set.</dd>
</dl>
</li>
</ul>
<a name="setEncoding-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEncoding</h4>
<pre>protected&nbsp;void&nbsp;setEncoding(java.lang.String&nbsp;encoding)</pre>
<div class="block">Convenience method for setting the output encoding.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encoding</code> - a valid encoding as specified in the Marshaller class 
 documentation</dd>
</dl>
</li>
</ul>
<a name="getSchemaLocation--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSchemaLocation</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getSchemaLocation()</pre>
<div class="block">Convenience method for getting the current schemaLocation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current schemaLocation or null if it hasn't been set</dd>
</dl>
</li>
</ul>
<a name="setSchemaLocation-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSchemaLocation</h4>
<pre>protected&nbsp;void&nbsp;setSchemaLocation(java.lang.String&nbsp;location)</pre>
<div class="block">Convenience method for setting the schemaLocation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>location</code> - the schemaLocation value</dd>
</dl>
</li>
</ul>
<a name="getNoNSSchemaLocation--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNoNSSchemaLocation</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getNoNSSchemaLocation()</pre>
<div class="block">Convenience method for getting the current noNamespaceSchemaLocation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current noNamespaceSchemaLocation or null if it hasn't
 been set</dd>
</dl>
</li>
</ul>
<a name="setNoNSSchemaLocation-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNoNSSchemaLocation</h4>
<pre>protected&nbsp;void&nbsp;setNoNSSchemaLocation(java.lang.String&nbsp;location)</pre>
<div class="block">Convenience method for setting the noNamespaceSchemaLocation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>location</code> - the noNamespaceSchemaLocation value</dd>
</dl>
</li>
</ul>
<a name="isFormattedOutput--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFormattedOutput</h4>
<pre>protected&nbsp;boolean&nbsp;isFormattedOutput()</pre>
<div class="block">Convenience method for getting the formatted output flag.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current value of the formatted output flag or false if
 it hasn't been set.</dd>
</dl>
</li>
</ul>
<a name="setFormattedOutput-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFormattedOutput</h4>
<pre>protected&nbsp;void&nbsp;setFormattedOutput(boolean&nbsp;v)</pre>
<div class="block">Convenience method for setting the formatted output flag.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>v</code> - value of the formatted output flag.</dd>
</dl>
</li>
</ul>
<a name="isFragment--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFragment</h4>
<pre>protected&nbsp;boolean&nbsp;isFragment()</pre>
<div class="block">Convenience method for getting the fragment flag.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current value of the fragment flag or false if
 it hasn't been set.</dd>
</dl>
</li>
</ul>
<a name="setFragment-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFragment</h4>
<pre>protected&nbsp;void&nbsp;setFragment(boolean&nbsp;v)</pre>
<div class="block">Convenience method for setting the fragment flag.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>v</code> - value of the fragment flag.</dd>
</dl>
</li>
</ul>
<a name="getJavaEncoding-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJavaEncoding</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getJavaEncoding(java.lang.String&nbsp;encoding)
                                    throws java.io.UnsupportedEncodingException</pre>
<div class="block">Gets the corresponding Java encoding name from an IANA name.
 
 This method is a helper method for the derived class to convert
 encoding names.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.UnsupportedEncodingException</code> - If this implementation couldn't find the Java encoding name.</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&nbsp;void&nbsp;setProperty(java.lang.String&nbsp;name,
                        java.lang.Object&nbsp;value)
                 throws <a href="../../../../javax/xml/bind/PropertyException.html" title="class in javax.xml.bind">PropertyException</a></pre>
<div class="block">Default implementation of the setProperty method handles
 the four defined properties in Marshaller. If a provider 
 needs to handle additional properties, it should override 
 this method in a derived class.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setProperty-java.lang.String-java.lang.Object-">setProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<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="../../../../javax/xml/bind/PropertyException.html" title="class in javax.xml.bind">PropertyException</a></code> - when there is an error processing the given
                            property or value</dd>
</dl>
</li>
</ul>
<a name="getProperty-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProperty</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getProperty(java.lang.String&nbsp;name)
                             throws <a href="../../../../javax/xml/bind/PropertyException.html" title="class in javax.xml.bind">PropertyException</a></pre>
<div class="block">Default implementation of the getProperty method handles
 the four defined properties in Marshaller.  If a provider 
 needs to support additional provider specific properties, 
 it should override this method in a derived class.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getProperty-java.lang.String-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<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="../../../../javax/xml/bind/PropertyException.html" title="class in javax.xml.bind">PropertyException</a></code> - when there is an error retrieving the given property or value
      property name</dd>
</dl>
</li>
</ul>
<a name="getEventHandler--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventHandler</h4>
<pre>public&nbsp;<a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind">ValidationEventHandler</a>&nbsp;getEventHandler()
                                       throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#getEventHandler--">Marshaller</a></code></span></div>
<div class="block">Return the current event handler or the default event handler if one
 hasn't been set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getEventHandler--">getEventHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<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="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - if an error was encountered while getting the 
         current event handler</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/xml/bind/Marshaller.html#getEventHandler--"><code>Marshaller.getEventHandler()</code></a></dd>
</dl>
</li>
</ul>
<a name="setEventHandler-javax.xml.bind.ValidationEventHandler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEventHandler</h4>
<pre>public&nbsp;void&nbsp;setEventHandler(<a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind">ValidationEventHandler</a>&nbsp;handler)
                     throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#setEventHandler-javax.xml.bind.ValidationEventHandler-">Marshaller</a></code></span></div>
<div class="block">Allow an application to register a validation event handler.
 <p>
 The validation event handler will be called by the JAXB Provider if any
 validation errors are encountered during calls to any of the marshal
 API's.  If the client application does not register a validation event 
 handler before invoking one of the marshal methods, then validation 
 events will be handled by the default event handler which will terminate 
 the marshal operation after the first error or fatal error is encountered.
 <p>
 Calling this method with a null parameter will cause the Marshaller
 to revert back to the default default event handler.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setEventHandler-javax.xml.bind.ValidationEventHandler-">setEventHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<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="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - if an error was encountered while setting the
         event handler</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/xml/bind/Marshaller.html#setEventHandler-javax.xml.bind.ValidationEventHandler-"><code>Marshaller.setEventHandler(ValidationEventHandler)</code></a></dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-javax.xml.stream.XMLEventWriter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;obj,
                    javax.xml.stream.XMLEventWriter&nbsp;writer)
             throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.stream.XMLEventWriter-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a
 <code>XMLEventWriter</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.stream.XMLEventWriter-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The content tree rooted at jaxbElement to be marshalled.</dd>
<dd><code>writer</code> - XML will be sent to this writer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="marshal-java.lang.Object-javax.xml.stream.XMLStreamWriter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>marshal</h4>
<pre>public&nbsp;void&nbsp;marshal(java.lang.Object&nbsp;obj,
                    javax.xml.stream.XMLStreamWriter&nbsp;writer)
             throws <a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.stream.XMLStreamWriter-">Marshaller</a></code></span></div>
<div class="block">Marshal the content tree rooted at <code>jaxbElement</code> into a
 <code>XMLStreamWriter</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#marshal-java.lang.Object-javax.xml.stream.XMLStreamWriter-">marshal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The content tree to be marshalled.</dd>
<dd><code>writer</code> - XML will be sent to this writer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/JAXBException.html" title="class in javax.xml.bind">JAXBException</a></code> - If any unexpected problem occurs during the marshalling.</dd>
<dd><code><a href="../../../../javax/xml/bind/MarshalException.html" title="class in javax.xml.bind">MarshalException</a></code> - If the <a href="../../../../javax/xml/bind/ValidationEventHandler.html" title="interface in javax.xml.bind"><code>ValidationEventHandler</code></a>
      returns false from its <code>handleEvent</code> method or the
      <code>Marshaller</code> is unable to marshal <code>jaxbElement</code> (or any
      object reachable from <code>jaxbElement</code>).  See <a href="../../../../javax/xml/bind/Marshaller.html#elementMarshalling">
      Marshalling a JAXB element</a>.</dd>
</dl>
</li>
</ul>
<a name="setSchema-javax.xml.validation.Schema-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSchema</h4>
<pre>public&nbsp;void&nbsp;setSchema(javax.xml.validation.Schema&nbsp;schema)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#setSchema-javax.xml.validation.Schema-">Marshaller</a></code></span></div>
<div class="block">Specify the JAXP 1.3 <code>Schema</code>
 object that should be used to validate subsequent marshal operations
 against.  Passing null into this method will disable validation.

 <p>
 This method allows the caller to validate the marshalled XML as it's marshalled.

 <p>
 Initially this property is set to <code>null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setSchema-javax.xml.validation.Schema-">setSchema</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schema</code> - Schema object to validate marshal operations against or null to disable validation</dd>
</dl>
</li>
</ul>
<a name="getSchema--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSchema</h4>
<pre>public&nbsp;javax.xml.validation.Schema&nbsp;getSchema()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#getSchema--">Marshaller</a></code></span></div>
<div class="block">Get the JAXP 1.3 <code>Schema</code> object
 being used to perform marshal-time validation.  If there is no
 Schema set on the marshaller, then this method will return null
 indicating that marshal-time validation will not be performed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getSchema--">getSchema</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Schema object being used to perform marshal-time
      validation or null if not present.</dd>
</dl>
</li>
</ul>
<a name="setAdapter-javax.xml.bind.annotation.adapters.XmlAdapter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAdapter</h4>
<pre>public&nbsp;void&nbsp;setAdapter(<a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters">XmlAdapter</a>&nbsp;adapter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#setAdapter-javax.xml.bind.annotation.adapters.XmlAdapter-">Marshaller</a></code></span></div>
<div class="block">Associates a configured instance of <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters"><code>XmlAdapter</code></a> with this marshaller.

 <p>
 This is a convenience method that invokes <code>setAdapter(adapter.getClass(),adapter);</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setAdapter-javax.xml.bind.annotation.adapters.XmlAdapter-">setAdapter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/xml/bind/Marshaller.html#setAdapter-java.lang.Class-A-"><code>Marshaller.setAdapter(Class,XmlAdapter)</code></a></dd>
</dl>
</li>
</ul>
<a name="setAdapter-java.lang.Class-javax.xml.bind.annotation.adapters.XmlAdapter-">
<!--   -->
</a><a name="setAdapter-java.lang.Class-A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAdapter</h4>
<pre>public&nbsp;&lt;A extends <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters">XmlAdapter</a>&gt;&nbsp;void&nbsp;setAdapter(java.lang.Class&lt;A&gt;&nbsp;type,
                                              A&nbsp;adapter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#setAdapter-java.lang.Class-A-">Marshaller</a></code></span></div>
<div class="block">Associates a configured instance of <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters"><code>XmlAdapter</code></a> with this marshaller.

 <p>
 Every marshaller internally maintains a
 <code>Map</code>&lt;<code>Class</code>,<a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters"><code>XmlAdapter</code></a>&gt;,
 which it uses for marshalling classes whose fields/methods are annotated
 with <a href="../../../../javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html" title="annotation in javax.xml.bind.annotation.adapters"><code>XmlJavaTypeAdapter</code></a>.

 <p>
 This method allows applications to use a configured instance of <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters"><code>XmlAdapter</code></a>.
 When an instance of an adapter is not given, a marshaller will create
 one by invoking its default constructor.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setAdapter-java.lang.Class-A-">setAdapter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - The type of the adapter. The specified instance will be used when
      <a href="../../../../javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html#value--"><code>XmlJavaTypeAdapter.value()</code></a>
      refers to this type.</dd>
<dd><code>adapter</code> - The instance of the adapter to be used. If null, it will un-register
      the current adapter set for this type.</dd>
</dl>
</li>
</ul>
<a name="getAdapter-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAdapter</h4>
<pre>public&nbsp;&lt;A extends <a href="../../../../javax/xml/bind/annotation/adapters/XmlAdapter.html" title="class in javax.xml.bind.annotation.adapters">XmlAdapter</a>&gt;&nbsp;A&nbsp;getAdapter(java.lang.Class&lt;A&gt;&nbsp;type)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#getAdapter-java.lang.Class-">Marshaller</a></code></span></div>
<div class="block">Gets the adapter associated with the specified type.

 This is the reverse operation of the <a href="../../../../javax/xml/bind/Marshaller.html#setAdapter-javax.xml.bind.annotation.adapters.XmlAdapter-"><code>Marshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter)</code></a> method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getAdapter-java.lang.Class-">getAdapter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
</dl>
</li>
</ul>
<a name="setAttachmentMarshaller-javax.xml.bind.attachment.AttachmentMarshaller-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttachmentMarshaller</h4>
<pre>public&nbsp;void&nbsp;setAttachmentMarshaller(<a href="../../../../javax/xml/bind/attachment/AttachmentMarshaller.html" title="class in javax.xml.bind.attachment">AttachmentMarshaller</a>&nbsp;am)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#setAttachmentMarshaller-javax.xml.bind.attachment.AttachmentMarshaller-">Marshaller</a></code></span></div>
<div class="block"><p>Associate a context that enables binary data within an XML document
 to be transmitted as XML-binary optimized attachment.
 The attachment is referenced from the XML document content model
 by content-id URIs(cid) references stored within the xml document.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setAttachmentMarshaller-javax.xml.bind.attachment.AttachmentMarshaller-">setAttachmentMarshaller</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
</dl>
</li>
</ul>
<a name="getAttachmentMarshaller--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttachmentMarshaller</h4>
<pre>public&nbsp;<a href="../../../../javax/xml/bind/attachment/AttachmentMarshaller.html" title="class in javax.xml.bind.attachment">AttachmentMarshaller</a>&nbsp;getAttachmentMarshaller()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getAttachmentMarshaller--">getAttachmentMarshaller</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
</dl>
</li>
</ul>
<a name="setListener-javax.xml.bind.Marshaller.Listener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setListener</h4>
<pre>public&nbsp;void&nbsp;setListener(<a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind">Marshaller.Listener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#setListener-javax.xml.bind.Marshaller.Listener-">Marshaller</a></code></span></div>
<div class="block"><p>
 Register marshal event callback <a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind"><code>Marshaller.Listener</code></a> with this <a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind"><code>Marshaller</code></a>.
 
 <p>
 There is only one Listener per Marshaller. Setting a Listener replaces the previous set Listener.
 One can unregister current Listener by setting listener to <code>null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#setListener-javax.xml.bind.Marshaller.Listener-">setListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - an instance of a class that implements <a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind"><code>Marshaller.Listener</code></a></dd>
</dl>
</li>
</ul>
<a name="getListener--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getListener</h4>
<pre>public&nbsp;<a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind">Marshaller.Listener</a>&nbsp;getListener()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html#getListener--">Marshaller</a></code></span></div>
<div class="block"><p>Return <a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind"><code>Marshaller.Listener</code></a> registered with this <a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind"><code>Marshaller</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/xml/bind/Marshaller.html#getListener--">getListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/xml/bind/Marshaller.html" title="interface in javax.xml.bind">Marshaller</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>registered <a href="../../../../javax/xml/bind/Marshaller.Listener.html" title="class in javax.xml.bind"><code>Marshaller.Listener</code></a> or <code>null</code>
         if no Listener is registered with this Marshaller.</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="../../../../javax/xml/bind/helpers/AbstractUnmarshallerImpl.html" title="class in javax.xml.bind.helpers"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/xml/bind/helpers/AbstractMarshallerImpl.html" target="_top">Frames</a></li>
<li><a href="AbstractMarshallerImpl.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>
