<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>DatatypeConverter</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="DatatypeConverter";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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><a href="../../../jakarta/xml/bind/DataBindingException.html" title="class in jakarta.xml.bind"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/xml/bind/DatatypeConverterInterface.html" title="interface 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/DatatypeConverter.html" target="_top">Frames</a></li>
<li><a href="DatatypeConverter.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>Constr&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>Constr&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 DatatypeConverter" class="title">Class DatatypeConverter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>jakarta.xml.bind.DatatypeConverter</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">DatatypeConverter</span>
extends java.lang.Object</pre>
<div class="block"><p>
 The javaType binding declaration can be used to customize the binding of 
 an XML schema datatype to a Java datatype. Customizations can involve 
 writing a parse and print method for parsing and printing lexical 
 representations of a XML schema datatype respectively. However, writing 
 parse and print methods requires knowledge of the lexical representations ( 
 <a href="http://www.w3.org/TR/xmlschema-2/"> XML Schema Part2: Datatypes 
 specification </a>) and hence may be difficult to write. 
 </p>
 <p>
 This class makes it easier to write parse and print methods. It defines
 static parse and print methods that provide access to a JAXB provider's 
 implementation of parse and print methods. These methods are invoked by 
 custom parse and print methods. For example, the binding of xsd:dateTime 
 to a long can be customized using parse and print methods as follows:
 <blockquote>
    <pre>
    // Customized parse method 
    public long myParseCal( String dateTimeString ) {
        java.util.Calendar cal = DatatypeConverter.parseDateTime(dateTimeString);
        long longval = convert_calendar_to_long(cal); //application specific
        return longval;
    }
     
    // Customized print method
    public String myPrintCal( Long longval ) {
        java.util.Calendar cal = convert_long_to_calendar(longval) ; //application specific
        String dateTimeString = DatatypeConverter.printDateTime(cal);
        return dateTimeString;
    }
    </pre>
 </blockquote>
 <p>
 There is a static parse and print method corresponding to each parse and 
 print method respectively in the <a href="../../../jakarta/xml/bind/DatatypeConverterInterface.html" title="interface in jakarta.xml.bind"><code>DatatypeConverterInterface</code></a>. 
 <p>
 The static methods defined in the class can also be used to specify
 a parse or a print method in a javaType binding declaration.
 </p>
 <p>
 JAXB Providers are required to call the 
 <a href="../../../jakarta/xml/bind/DatatypeConverter.html#setDatatypeConverter-jakarta.xml.bind.DatatypeConverterInterface-"><code>setDatatypeConverter</code></a> api at some point before the first marshal or unmarshal 
 operation (perhaps during the call to JAXBContext.newInstance).  This step is 
 necessary to configure the converter that should be used to perform the 
 print and parse functionality.  
 </p>
 
 <p>
 A print method for a XML schema datatype can output any lexical 
 representation that is valid with respect to the XML schema datatype.
 If an error is encountered during conversion, then an IllegalArgumentException,
 or a subclass of IllegalArgumentException must be thrown by the method.
 </p></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="../../../jakarta/xml/bind/DatatypeConverterInterface.html" title="interface in jakarta.xml.bind"><code>DatatypeConverterInterface</code></a>, 
<a href="../../../jakarta/xml/bind/ParseConversionEvent.html" title="interface in jakarta.xml.bind"><code>ParseConversionEvent</code></a>, 
<a href="../../../jakarta/xml/bind/PrintConversionEvent.html" title="interface in jakarta.xml.bind"><code>PrintConversionEvent</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseAnySimpleType-java.lang.String-">parseAnySimpleType</a></span>(java.lang.String&nbsp;lexicalXSDAnySimpleType)</code>
<div class="block">
 Return a string containing the lexical representation of the 
 simple type.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseBase64Binary-java.lang.String-">parseBase64Binary</a></span>(java.lang.String&nbsp;lexicalXSDBase64Binary)</code>
<div class="block">
 Converts the string argument into an array of bytes.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseBoolean-java.lang.String-">parseBoolean</a></span>(java.lang.String&nbsp;lexicalXSDBoolean)</code>
<div class="block">
 Converts the string argument into a boolean value.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseByte-java.lang.String-">parseByte</a></span>(java.lang.String&nbsp;lexicalXSDByte)</code>
<div class="block">
 Converts the string argument into a byte value.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static java.util.Calendar</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseDate-java.lang.String-">parseDate</a></span>(java.lang.String&nbsp;lexicalXSDDate)</code>
<div class="block">
 Converts the string argument into a Calendar value.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static java.util.Calendar</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseDateTime-java.lang.String-">parseDateTime</a></span>(java.lang.String&nbsp;lexicalXSDDateTime)</code>
<div class="block">
 Converts the string argument into a Calendar value.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static java.math.BigDecimal</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseDecimal-java.lang.String-">parseDecimal</a></span>(java.lang.String&nbsp;lexicalXSDDecimal)</code>
<div class="block">
 Converts the string argument into a BigDecimal value.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseDouble-java.lang.String-">parseDouble</a></span>(java.lang.String&nbsp;lexicalXSDDouble)</code>
<div class="block">
 Converts the string argument into a double value.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseFloat-java.lang.String-">parseFloat</a></span>(java.lang.String&nbsp;lexicalXSDFloat)</code>
<div class="block">
 Converts the string argument into a float value.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseHexBinary-java.lang.String-">parseHexBinary</a></span>(java.lang.String&nbsp;lexicalXSDHexBinary)</code>
<div class="block">
 Converts the string argument into an array of bytes.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseInt-java.lang.String-">parseInt</a></span>(java.lang.String&nbsp;lexicalXSDInt)</code>
<div class="block">
 Convert the string argument into an int value.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static java.math.BigInteger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseInteger-java.lang.String-">parseInteger</a></span>(java.lang.String&nbsp;lexicalXSDInteger)</code>
<div class="block">
 Convert the string argument into a BigInteger value.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseLong-java.lang.String-">parseLong</a></span>(java.lang.String&nbsp;lexicalXSDLong)</code>
<div class="block">
 Converts the string argument into a long value.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static javax.xml.namespace.QName</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseQName-java.lang.String-javax.xml.namespace.NamespaceContext-">parseQName</a></span>(java.lang.String&nbsp;lexicalXSDQName,
          javax.xml.namespace.NamespaceContext&nbsp;nsc)</code>
<div class="block">
 Converts the string argument into a byte value.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseShort-java.lang.String-">parseShort</a></span>(java.lang.String&nbsp;lexicalXSDShort)</code>
<div class="block">
 Converts the string argument into a short value.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseString-java.lang.String-">parseString</a></span>(java.lang.String&nbsp;lexicalXSDString)</code>
<div class="block">
 Convert the lexical XSD string argument into a String value.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static java.util.Calendar</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseTime-java.lang.String-">parseTime</a></span>(java.lang.String&nbsp;lexicalXSDTime)</code>
<div class="block">
 Converts the string argument into a Calendar value.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseUnsignedInt-java.lang.String-">parseUnsignedInt</a></span>(java.lang.String&nbsp;lexicalXSDUnsignedInt)</code>
<div class="block">
 Converts the string argument into a long value.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#parseUnsignedShort-java.lang.String-">parseUnsignedShort</a></span>(java.lang.String&nbsp;lexicalXSDUnsignedShort)</code>
<div class="block">
 Converts the string argument into an int value.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printAnySimpleType-java.lang.String-">printAnySimpleType</a></span>(java.lang.String&nbsp;val)</code>
<div class="block">
 Converts a string value into a string.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printBase64Binary-byte:A-">printBase64Binary</a></span>(byte[]&nbsp;val)</code>
<div class="block">
 Converts an array of bytes into a string.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printBoolean-boolean-">printBoolean</a></span>(boolean&nbsp;val)</code>
<div class="block">
 Converts a boolean value into a string.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printByte-byte-">printByte</a></span>(byte&nbsp;val)</code>
<div class="block">
 Converts a byte value into a string.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printDate-java.util.Calendar-">printDate</a></span>(java.util.Calendar&nbsp;val)</code>
<div class="block">
 Converts a Calendar value into a string.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printDateTime-java.util.Calendar-">printDateTime</a></span>(java.util.Calendar&nbsp;val)</code>
<div class="block">
 Converts a Calendar value into a string.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printDecimal-java.math.BigDecimal-">printDecimal</a></span>(java.math.BigDecimal&nbsp;val)</code>
<div class="block">
 Converts a BigDecimal value into a string.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printDouble-double-">printDouble</a></span>(double&nbsp;val)</code>
<div class="block">
 Converts a double value into a string.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printFloat-float-">printFloat</a></span>(float&nbsp;val)</code>
<div class="block">
 Converts a float value into a string.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printHexBinary-byte:A-">printHexBinary</a></span>(byte[]&nbsp;val)</code>
<div class="block">
 Converts an array of bytes into a string.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printInt-int-">printInt</a></span>(int&nbsp;val)</code>
<div class="block">
 Converts an int value into a string.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printInteger-java.math.BigInteger-">printInteger</a></span>(java.math.BigInteger&nbsp;val)</code>
<div class="block">
 Converts a BigInteger value into a string.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printLong-long-">printLong</a></span>(long&nbsp;val)</code>
<div class="block">
 Converts A long value into a string.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printQName-javax.xml.namespace.QName-javax.xml.namespace.NamespaceContext-">printQName</a></span>(javax.xml.namespace.QName&nbsp;val,
          javax.xml.namespace.NamespaceContext&nbsp;nsc)</code>
<div class="block">
 Converts a QName instance into a string.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printShort-short-">printShort</a></span>(short&nbsp;val)</code>
<div class="block">
 Converts a short value into a string.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printString-java.lang.String-">printString</a></span>(java.lang.String&nbsp;val)</code>
<div class="block">
 Converts the string argument into a string.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printTime-java.util.Calendar-">printTime</a></span>(java.util.Calendar&nbsp;val)</code>
<div class="block">
 Converts a Calendar value into a string.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printUnsignedInt-long-">printUnsignedInt</a></span>(long&nbsp;val)</code>
<div class="block">
 Converts a long value into a string.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#printUnsignedShort-int-">printUnsignedShort</a></span>(int&nbsp;val)</code>
<div class="block">
 Converts an int value into a string.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/xml/bind/DatatypeConverter.html#setDatatypeConverter-jakarta.xml.bind.DatatypeConverterInterface-">setDatatypeConverter</a></span>(<a href="../../../jakarta/xml/bind/DatatypeConverterInterface.html" title="interface in jakarta.xml.bind">DatatypeConverterInterface</a>&nbsp;converter)</code>
<div class="block">This method is for JAXB provider use only.</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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setDatatypeConverter-jakarta.xml.bind.DatatypeConverterInterface-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDatatypeConverter</h4>
<pre>public static&nbsp;void&nbsp;setDatatypeConverter(<a href="../../../jakarta/xml/bind/DatatypeConverterInterface.html" title="interface in jakarta.xml.bind">DatatypeConverterInterface</a>&nbsp;converter)</pre>
<div class="block">This method is for JAXB provider use only.
 <p>
 JAXB Providers are required to call this method at some point before
 allowing any of the JAXB client marshal or unmarshal operations to
 occur.  This is necessary to configure the datatype converter that 
 should be used to perform the print and parse conversions.
 
 <p>
 Calling this api repeatedly will have no effect - the 
 DatatypeConverterInterface instance passed into the first invocation is 
 the one that will be used from then on.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>converter</code> - an instance of a class that implements the 
 DatatypeConverterInterface class - this parameter must not be null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter is null</dd>
<dd><code>java.lang.SecurityException</code> - If the <code>SecurityManager</code> in charge denies the access to
      set the datatype converter.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../jakarta/xml/bind/JAXBPermission.html" title="class in jakarta.xml.bind"><code>JAXBPermission</code></a></dd>
</dl>
</li>
</ul>
<a name="parseString-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseString</h4>
<pre>public static&nbsp;java.lang.String&nbsp;parseString(java.lang.String&nbsp;lexicalXSDString)</pre>
<div class="block"><p>
 Convert the lexical XSD string argument into a String value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDString</code> - A string containing a lexical representation of
     xsd:string.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A String value represented by the string argument.</dd>
</dl>
</li>
</ul>
<a name="parseInteger-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseInteger</h4>
<pre>public static&nbsp;java.math.BigInteger&nbsp;parseInteger(java.lang.String&nbsp;lexicalXSDInteger)</pre>
<div class="block"><p>
 Convert the string argument into a BigInteger value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDInteger</code> - A string containing a lexical representation of
     xsd:integer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A BigInteger value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDInteger</code> is not a valid string representation of a <code>BigInteger</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseInt-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseInt</h4>
<pre>public static&nbsp;int&nbsp;parseInt(java.lang.String&nbsp;lexicalXSDInt)</pre>
<div class="block"><p>
 Convert the string argument into an int value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDInt</code> - A string containing a lexical representation of
     xsd:int.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A int value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDInt</code> is not a valid string representation of an <code>int</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseLong-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseLong</h4>
<pre>public static&nbsp;long&nbsp;parseLong(java.lang.String&nbsp;lexicalXSDLong)</pre>
<div class="block"><p>
 Converts the string argument into a long value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDLong</code> - A string containing lexical representation of
     xsd:long.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A long value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDLong</code> is not a valid string representation of a <code>long</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseShort-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseShort</h4>
<pre>public static&nbsp;short&nbsp;parseShort(java.lang.String&nbsp;lexicalXSDShort)</pre>
<div class="block"><p>
 Converts the string argument into a short value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDShort</code> - A string containing lexical representation of
     xsd:short.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A short value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDShort</code> is not a valid string representation of a <code>short</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseDecimal-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseDecimal</h4>
<pre>public static&nbsp;java.math.BigDecimal&nbsp;parseDecimal(java.lang.String&nbsp;lexicalXSDDecimal)</pre>
<div class="block"><p>
 Converts the string argument into a BigDecimal value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDDecimal</code> - A string containing lexical representation of
     xsd:decimal.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A BigDecimal value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDDecimal</code> is not a valid string representation of <code>BigDecimal</code>.</dd>
</dl>
</li>
</ul>
<a name="parseFloat-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseFloat</h4>
<pre>public static&nbsp;float&nbsp;parseFloat(java.lang.String&nbsp;lexicalXSDFloat)</pre>
<div class="block"><p>
 Converts the string argument into a float value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDFloat</code> - A string containing lexical representation of
     xsd:float.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A float value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDFloat</code> is not a valid string representation of a <code>float</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseDouble-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseDouble</h4>
<pre>public static&nbsp;double&nbsp;parseDouble(java.lang.String&nbsp;lexicalXSDDouble)</pre>
<div class="block"><p>
 Converts the string argument into a double value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDDouble</code> - A string containing lexical representation of
     xsd:double.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A double value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - <code>lexicalXSDDouble</code> is not a valid string representation of a <code>double</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseBoolean-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseBoolean</h4>
<pre>public static&nbsp;boolean&nbsp;parseBoolean(java.lang.String&nbsp;lexicalXSDBoolean)</pre>
<div class="block"><p>
 Converts the string argument into a boolean value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDBoolean</code> - A string containing lexical representation of
     xsd:boolean.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A boolean value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:boolean.</dd>
</dl>
</li>
</ul>
<a name="parseByte-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseByte</h4>
<pre>public static&nbsp;byte&nbsp;parseByte(java.lang.String&nbsp;lexicalXSDByte)</pre>
<div class="block"><p>
 Converts the string argument into a byte value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDByte</code> - A string containing lexical representation of
     xsd:byte.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A byte value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:byte.</dd>
</dl>
</li>
</ul>
<a name="parseQName-java.lang.String-javax.xml.namespace.NamespaceContext-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseQName</h4>
<pre>public static&nbsp;javax.xml.namespace.QName&nbsp;parseQName(java.lang.String&nbsp;lexicalXSDQName,
                                                   javax.xml.namespace.NamespaceContext&nbsp;nsc)</pre>
<div class="block"><p>
 Converts the string argument into a byte value.

 <p>
 String parameter <code>lexicalXSDQname</code> must conform to lexical value space specifed at
 <a href="http://www.w3.org/TR/xmlschema-2/#QName">XML Schema Part 2:Datatypes specification:QNames</a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDQName</code> - A string containing lexical representation of xsd:QName.</dd>
<dd><code>nsc</code> - A namespace context for interpreting a prefix within a QName.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A QName value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to XML Schema Part 2 specification or 
      if namespace prefix of <code>lexicalXSDQname</code> is not bound to a URI in NamespaceContext <code>nsc</code>.</dd>
</dl>
</li>
</ul>
<a name="parseDateTime-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseDateTime</h4>
<pre>public static&nbsp;java.util.Calendar&nbsp;parseDateTime(java.lang.String&nbsp;lexicalXSDDateTime)</pre>
<div class="block"><p>
 Converts the string argument into a Calendar value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDDateTime</code> - A string containing lexical representation of
     xsd:datetime.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Calendar object represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:dateTime.</dd>
</dl>
</li>
</ul>
<a name="parseBase64Binary-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseBase64Binary</h4>
<pre>public static&nbsp;byte[]&nbsp;parseBase64Binary(java.lang.String&nbsp;lexicalXSDBase64Binary)</pre>
<div class="block"><p>
 Converts the string argument into an array of bytes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDBase64Binary</code> - A string containing lexical representation
     of xsd:base64Binary.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An array of bytes represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:base64Binary</dd>
</dl>
</li>
</ul>
<a name="parseHexBinary-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseHexBinary</h4>
<pre>public static&nbsp;byte[]&nbsp;parseHexBinary(java.lang.String&nbsp;lexicalXSDHexBinary)</pre>
<div class="block"><p>
 Converts the string argument into an array of bytes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDHexBinary</code> - A string containing lexical representation of
     xsd:hexBinary.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An array of bytes represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:hexBinary.</dd>
</dl>
</li>
</ul>
<a name="parseUnsignedInt-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseUnsignedInt</h4>
<pre>public static&nbsp;long&nbsp;parseUnsignedInt(java.lang.String&nbsp;lexicalXSDUnsignedInt)</pre>
<div class="block"><p>
 Converts the string argument into a long value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDUnsignedInt</code> - A string containing lexical representation
     of xsd:unsignedInt.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A long value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - if string parameter can not be parsed into a <code>long</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseUnsignedShort-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseUnsignedShort</h4>
<pre>public static&nbsp;int&nbsp;parseUnsignedShort(java.lang.String&nbsp;lexicalXSDUnsignedShort)</pre>
<div class="block"><p>
 Converts the string argument into an int value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDUnsignedShort</code> - A string containing lexical
     representation of xsd:unsignedShort.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An int value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NumberFormatException</code> - if string parameter can not be parsed into an <code>int</code> value.</dd>
</dl>
</li>
</ul>
<a name="parseTime-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseTime</h4>
<pre>public static&nbsp;java.util.Calendar&nbsp;parseTime(java.lang.String&nbsp;lexicalXSDTime)</pre>
<div class="block"><p>
 Converts the string argument into a Calendar value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDTime</code> - A string containing lexical representation of
     xsd:time.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Calendar value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:Time.</dd>
</dl>
</li>
</ul>
<a name="parseDate-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseDate</h4>
<pre>public static&nbsp;java.util.Calendar&nbsp;parseDate(java.lang.String&nbsp;lexicalXSDDate)</pre>
<div class="block"><p>
 Converts the string argument into a Calendar value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDDate</code> - A string containing lexical representation of
     xsd:Date.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Calendar value represented by the string argument.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:Date.</dd>
</dl>
</li>
</ul>
<a name="parseAnySimpleType-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseAnySimpleType</h4>
<pre>public static&nbsp;java.lang.String&nbsp;parseAnySimpleType(java.lang.String&nbsp;lexicalXSDAnySimpleType)</pre>
<div class="block"><p>
 Return a string containing the lexical representation of the 
 simple type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lexicalXSDAnySimpleType</code> - A string containing lexical
     representation of the simple type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing the lexical representation of the 
     simple type.</dd>
</dl>
</li>
</ul>
<a name="printString-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printString</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printString(java.lang.String&nbsp;val)</pre>
<div class="block"><p>
 Converts the string argument into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A string value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:string.</dd>
</dl>
</li>
</ul>
<a name="printInteger-java.math.BigInteger-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printInteger</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printInteger(java.math.BigInteger&nbsp;val)</pre>
<div class="block"><p>
 Converts a BigInteger value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A BigInteger value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:integer</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printInt-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printInt</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printInt(int&nbsp;val)</pre>
<div class="block"><p>
 Converts an int value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - An int value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:int</dd>
</dl>
</li>
</ul>
<a name="printLong-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printLong</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printLong(long&nbsp;val)</pre>
<div class="block"><p>
 Converts A long value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A long value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:long</dd>
</dl>
</li>
</ul>
<a name="printShort-short-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printShort</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printShort(short&nbsp;val)</pre>
<div class="block"><p>
 Converts a short value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A short value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:short</dd>
</dl>
</li>
</ul>
<a name="printDecimal-java.math.BigDecimal-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printDecimal</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printDecimal(java.math.BigDecimal&nbsp;val)</pre>
<div class="block"><p>
 Converts a BigDecimal value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A BigDecimal value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:decimal</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printFloat-float-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printFloat</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printFloat(float&nbsp;val)</pre>
<div class="block"><p>
 Converts a float value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A float value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:float</dd>
</dl>
</li>
</ul>
<a name="printDouble-double-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printDouble</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printDouble(double&nbsp;val)</pre>
<div class="block"><p>
 Converts a double value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A double value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:double</dd>
</dl>
</li>
</ul>
<a name="printBoolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printBoolean</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printBoolean(boolean&nbsp;val)</pre>
<div class="block"><p>
 Converts a boolean value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A boolean value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:boolean</dd>
</dl>
</li>
</ul>
<a name="printByte-byte-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printByte</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printByte(byte&nbsp;val)</pre>
<div class="block"><p>
 Converts a byte value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A byte value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:byte</dd>
</dl>
</li>
</ul>
<a name="printQName-javax.xml.namespace.QName-javax.xml.namespace.NamespaceContext-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printQName</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printQName(javax.xml.namespace.QName&nbsp;val,
                                          javax.xml.namespace.NamespaceContext&nbsp;nsc)</pre>
<div class="block"><p>
 Converts a QName instance into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A QName value</dd>
<dd><code>nsc</code> - A namespace context for interpreting a prefix within a QName.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of QName</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>val</code> is null or
 if <code>nsc</code> is non-null or <code>nsc.getPrefix(nsprefixFromVal)</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printDateTime-java.util.Calendar-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printDateTime</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printDateTime(java.util.Calendar&nbsp;val)</pre>
<div class="block"><p>
 Converts a Calendar value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A Calendar value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:dateTime</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printBase64Binary-byte:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printBase64Binary</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printBase64Binary(byte[]&nbsp;val)</pre>
<div class="block"><p>
 Converts an array of bytes into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - An array of bytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:base64Binary</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printHexBinary-byte:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printHexBinary</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printHexBinary(byte[]&nbsp;val)</pre>
<div class="block"><p>
 Converts an array of bytes into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - An array of bytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:hexBinary</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printUnsignedInt-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printUnsignedInt</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printUnsignedInt(long&nbsp;val)</pre>
<div class="block"><p>
 Converts a long value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A long value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:unsignedInt</dd>
</dl>
</li>
</ul>
<a name="printUnsignedShort-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printUnsignedShort</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printUnsignedShort(int&nbsp;val)</pre>
<div class="block"><p>
 Converts an int value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - An int value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:unsignedShort</dd>
</dl>
</li>
</ul>
<a name="printTime-java.util.Calendar-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printTime</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printTime(java.util.Calendar&nbsp;val)</pre>
<div class="block"><p>
 Converts a Calendar value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A Calendar value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:time</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printDate-java.util.Calendar-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printDate</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printDate(java.util.Calendar&nbsp;val)</pre>
<div class="block"><p>
 Converts a Calendar value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A Calendar value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:date</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>val</code> is null.</dd>
</dl>
</li>
</ul>
<a name="printAnySimpleType-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>printAnySimpleType</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printAnySimpleType(java.lang.String&nbsp;val)</pre>
<div class="block"><p>
 Converts a string value into a string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - A string value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string containing a lexical representation of xsd:AnySimpleType</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><a href="../../../jakarta/xml/bind/DataBindingException.html" title="class in jakarta.xml.bind"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/xml/bind/DatatypeConverterInterface.html" title="interface 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/DatatypeConverter.html" target="_top">Frames</a></li>
<li><a href="DatatypeConverter.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>Constr&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>Constr&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>
