<html>
<!--
Copyright (C) 2005, 2006 Joe Walnes.
Copyright (C) 2006, 2007, 2008, 2009, 2011, 2013, 2014, 2015, 2016, 2017 XStream committers.
All rights reserved.
The software in this package is published under the terms of the BSD
style license a copy of which has been included with this distribution in
the LICENSE.txt file.
Created on 29. January 2005 by Joe Walnes
-->
<head>
<title>Converters</title>
<style type="text/css">
.example { font-family: courier; font-size: 8pt; }
#content td { border-top: thin solid #5c5 ;}
#content .headerRow { background-color: white; }
</style>
</head>
<body>
<p>The core of XStream consists of a registry of
<a href="javadoc/com/thoughtworks/xstream/converters/Converter.html"><b>Converters</b></a>. The responsibility
of a Converter is to provide a strategy for converting particular types of objects found in the object graph,
to and from XML.</p>
<p>XStream is provided with Converters for common types such as primitives, String, File, Collections, arrays,
and Dates. The following table lists any converter delivered with XStream and documents, if they are
registered by default with which priority.</p>
<table class="examplesTable" summary="Overview over all Converters delivered with XStream">
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.lang">java.lang (and core special types)</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/NullConverter.html">NullConverter</a></td>
<td>null values</td>
<td class="example"><null/></td>
<td>Usually, null fields are left out of the XML, however when used in arrays or the root object they
have to be explicitly marked.</td>
<td>very high</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/ArrayConverter.html">ArrayConverter</a></td>
<td>any kind of array</td>
<td class="example">
<<i>string</i>-array><br/>
<<i>string</i>>apple</<i>string</i>><br/>
<<i>string</i>>banana</<i>string</i>><br/>
<<i>string</i>>cabbage</<i>string</i>><br/>
<<i>string</i>-array>
</td>
<td>This supports arrays of primitives as well as objects. It also supports multi-dimensional arrays, even if
they are non-rectangular.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/BooleanConverter.html">BooleanConverter</a></td>
<td>boolean<br/>java.lang.Boolean</td>
<td class="example"><boolean>true</boolean></td>
<td>Can also be registered locally using different values.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/ByteConverter.html">ByteConverter</a></td>
<td>byte<br/>java.lang.Byte</td>
<td class="example"><byte>22</byte></td>
<td>The byte is represented as an integer.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/EncodedByteArrayConverter.html">EncodedByteArrayConverter</a></td>
<td>byte[]</td>
<td class="example"><byte-array>AHiEFiEABQ==</byte-array></td>
<td>Uses Base64 encoding to store binary data in XML. Converter can be registered globally or locally.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/CharConverter.html">CharConverter</a></td>
<td>char<br/>java.lang.Character</td>
<td class="example"><char>X</char><br/><char null="true"/></td>
<td>The '\0' character is invalid in XML.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/CharArrayConverter.html">CharArrayConverter</a></td>
<td>char[]</td>
<td class="example"><char-array>hello<char-array></td>
<td>Joins all characters into a single String.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/DoubleConverter.html">DoubleConverter</a></td>
<td>double<br/>java.lang.Double</td>
<td class="example"><double>456774543443.4553435</double></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/FloatConverter.html">FloatConverter</a></td>
<td>float<br/>java.lang.Float</td>
<td class="example"><float>4563443.435</float></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/IntConverter.html">IntConverter</a></td>
<td>int<br/>java.lang.Integer</td>
<td class="example"><int>12345678</int></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/LongConverter.html">LongConverter</a></td>
<td>long<br/>java.lang.Long</td>
<td class="example"><long>2344556678888786</long></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/NamedArrayConverter.html">NamedArrayConverter</a></td>
<td>any kind of array</td>
<td class="example">
<<i>string</i>-array><br/>
<<i>product</i>>apple</<i>product</i>><br/>
<<i>product</i>>banana</<i>product</i>><br/>
<<i>product</i>>cabbage</<i>product</i>><br/>
<<i>string</i>-array>
</td>
<td>This supports arrays of primitives as well as objects. It also supports multi-dimensional arrays, even if
they are non-rectangular. Should be registered locally or for an individual array type.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/ShortConverter.html">ShortConverter</a></td>
<td>short<br/>java.lang.Short</td>
<td class="example"><short>1445</short></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/StringConverter.html">StringConverter</a></td>
<td>java.lang.String</td>
<td class="example"><string>hello world</string></td>
<td>This converter can be registered with different caching strategies.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/StringBufferConverter.html">StringBufferConverter</a></td>
<td>java.lang.StringBuffer</td>
<td class="example"><string-buffer>hello world</string-buffer></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/StringBuildererConverter.html">StringBuilderConverter</a></td>
<td>java.lang.StringBuilder</td>
<td class="example"><string-builder>hello world</string-builder></td>
<td>Available with Java 1.5 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ThrowableConverter.html">ThrowableConverter</a></td>
<td>java.lang.Throwable<br/>java.lang.Exception<br/>java.lang.RuntimeException<br/>java.lang.Error<br/>...and all subclasses
of these.</td>
<td class="example">
<java.io.IOException><br/>
<detailMessage>No file</detailMessage><br/>
<stack-trace><br/>
<trace>com.x.Foo.stuff(Foo.java:22)</trace><br/>
<trace>com.x.Foo.blah(Foo.java:31)</trace><br/>
<trace>com.x.Foo.main(Foo.java:43)</trace><br/>
</stack-trace><br/>
</java.io.IOException>
</td>
<td>This is only available with Java 1.4 or greater. It retains the full stack trace, including that of any
nested exceptions. The stack trace elements are handled by the
<a href="javadoc/com/thoughtworks/xstream/converters/extended/StackTraceElementConverter.html">StackTraceElementConverter</a>.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumConverter.html">EnumConverter</a></td>
<td>java.lang.Enum</td>
<td class="example"><java.lang.annotation.RetentionPolicy><br/>CLASS<br/></java.lang.annotation.RetentionPolicy></td>
<td>Available with Java 1.5 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumToStringConverter.html">EnumToStringConverter</a></td>
<td>java.lang.Enum</td>
<td>The Converter must be initialized with an Enum type and an optional mapping between strings and enum values. By default
it will use the Enum's string representation as value.</td>
<td>Available with Java 1.5 or greater. Must be registered explicitly for the Enum type or locally.</td>
<td> </td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.util">java.util</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/CollectionConverter.html">CollectionConverter</a></td>
<td>java.util.ArrayList<br/>java.util.LinkedList<br/>java.util.HashSet<br/>java.util.Vector<br/>java.util.LinkedHashSet</td>
<td class="example">
<linked-list><br/>
<string>apple</string><br/>
<string>banana</string><br/>
<big-decimal>12345.4555</big-decimal><br/>
</linked-list>
</td>
<td>The objects inside the collection can be any type of objects, including nested collections. Can be
registered for an individual Collection type or locally, suppression of implicit type might be
necessary.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/MapConverter.html">MapConverter</a></td>
<td>java.util.HashMap<br/>java.util.Hashtable<br/>java.util.LinkedHashMap<br/>java.util.concurrent.ConcurrentHashMap</td>
<td class="example">
<map><br/>
<entry><br/>
<string>apple</string><br/>
<float>123.553</float><br/>
</entry><br/>
<entry><br/>
<string>orange</string><br/>
<float>55.4</float><br/>
</entry><br/>
</map>
</td>
<td>Both key and values can be any type of objects. Can be registered for an individual Map type or
locally, suppression of implicit type might be necessary.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/NamedCollectionConverter.html">NamedCollectionConverter</a></td>
<td>java.util.ArrayList<br/>java.util.LinkedList<br/>java.util.HashSet<br/>java.util.Vector<br/>java.util.LinkedHashSet</td>
<td class="example">
<fruits><br/>
<fruit>apple</fruit><br/>
<fruit>banana</fruit><br/>
<fruit>orange</fruit><br/>
</fruits>
</td>
<td>The objects inside the collection can be of any type shared between the objects. Should be
registered locally or for an individual Collection type.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/NamedMapConverter.html">NamedMapConverter</a></td>
<td>java.util.HashMap<br/>java.util.Hashtable<br/>java.util.LinkedHashMap<br/>java.util.concurrent.ConcurrentHashMap</td>
<td class="example">
<map><br/>
<fruit><br/>
<name>apple</name><br/>
<price>123.553</price><br/>
</fruit><br/>
<fruit><br/>
<name>orange</name><br/>
<price>55.4</price><br/>
</fruit><br/>
</map>
</td>
<td>Both key and values can be any type of objects. If key or value are written as attributes or if
the value is written as text of the entry element, those types must be handled by a
<a href="javadoc/com/thoughtworks/xstream/converters/SingleValueConverter.html">SingleValueConverter</a>.
Should be registered locally or for an individual Map type.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/PropertiesConverter.html">PropertiesConverter</a></td>
<td>java.util.Properties</td>
<td class="example">
<properties><br/>
<property name="host" value="localhost"/><br/>
<property name="port" value="888"/><br/>
</properties>
</td>
<td>Because the Properties class only accepts Strings for keys and values, the XML can be more concise.
If the Properties instance includes a set of default Properties, these are serialized in a nested <code><defaults></code> element.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/SingletonCollectionConverter.html">SingletonCollectionConverter</a></td>
<td>java.util.Collections.singletonList().getClass()<br/>java.util.Collections.singleton().getClass()</td>
<td class="example">
<singleton-set><br/>
<string>apple</string><br/>
</singleton-set>
</td>
<td>The objects inside the singleton collection can be any type of objects, including nested collections.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/SingletonMapConverter.html">SingletonMapConverter</a></td>
<td>java.util.Collections.singletonMap().getClass()</td>
<td class="example">
<singleton-map><br/>
<entry><br/>
<string>apple</string><br/>
<float>123.553</float><br/>
</entry><br/>
</singleton-map>
</td>
<td>The objects inside the singleton collection can be any type of objects, including nested collections.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/TreeMapConverter.html">TreeMapConverter</a></td>
<td>java.util.TreeMap</td>
<td class="example">
<tree-map><br/>
<comparator class="com.blah.MyComparator"/><br/>
<entry><br/>
<string>apple</string><br/>
<float>123.553</float><br/>
</entry><br/>
<entry><br/>
<string>orange</string><br/>
<float>55.4</float><br/>
</entry><br/>
</tree-map>
</td>
<td>This is similar to MapConverter with an additional field for storing the java.util.Comparator associated with the TreeMap.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/TreeSetConverter.html">TreeSetConverter</a></td>
<td>java.util.TreeSet</td>
<td class="example">
<tree-set><br/>
<comparator class="com.blah.MyComparator"/><br/>
<string>apple</string><br/>
<string>banana</string><br/>
<string>cabbage</string><br/>
</tree-set>
</td>
<td>This is similar to CollectionConverter with an additional field for storing the java.util.Comparator associated with the TreeSet.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/collections/BitSetConverter.html">BitSetConverter</a></td>
<td>java.util.BitSet</td>
<td class="example">
<bit-set>0,1,3,5,6,8,10</bit-set>
</td>
<td>Stores a comma separated list of which bits are set. Designed to be readable without taking up too much space.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/DateConverter.html">DateConverter</a></td>
<td>java.util.Date</td>
<td class="example"><date>2004-02-22 15:16:04.0 UTC</date></td>
<td>Can be registered with different formats, locales or time zone globally or locally.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/GregorianCalendarConverter.html">GregorianCalendarConverter</a></td>
<td>java.util.Calendar<br/>java.util.GregorianCalendar</td>
<td class="example">
<gregorian-calendar><br/>
<time>555454646</time><br/>
</gregorian-calendar>
</td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ISO8601DateConverter.html">ISO8601DateConverter</a></td>
<td>java.util.Date</td>
<td class="example"><date>2006-07-28T12:06:17.654-03:00</date></td>
<td>Not automatically registered, can be used globally or locally. Implementation needs joda-time for JDK 1.7 or below.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ISO8601GregorianCalendarConverter.html">ISO8601GregorianCalendarConverter</a></td>
<td>java.util.GregorianCalendar</td>
<td class="example">
<gregorian-calendar><br/>
2006-07-28T12:07:02.788-03:00<br/>
</gregorian-calendar>
</td>
<td>Not automatically registered, can be used globally or locally. Implementation needs joda-time for JDK 1.7 or below.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/LocaleConverter.html">LocaleConverter</a></td>
<td>java.util.Locale</td>
<td class="example"><locale>en_GB</locale></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/CurrencyConverter.html">CurrencyConverter</a></td>
<td>java.util.Currency</td>
<td class="example"><currency>USD</currency></td>
<td>Available with Java 1.4 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/UUIDConverter.html">UUIDConverter</a></td>
<td>java.util.UUID</td>
<td class="example"><uuid>ca05f023-e07f-4956-a6ef-14ddd23df47b</uuid></td>
<td>Available with Java 1.5 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumMapConverter.html">EnumMapConverter</a></td>
<td>java.util.EnumMap</td>
<td class="example">
<enum-map enum-type="simple"><br/>
<entry><br/>
<simple>GREEN</simple><br/>
<string>grass</string><br/>
</entry><br/>
<entry><br/>
<simple>BLUE</simple><br/>
<string>sky</string><br/>
</entry><br/>
</enum-map></td>
<td>Available with Java 1.5 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumSetConverter.html">EnumSetConverter</a></td>
<td>java.util.EnumSet</td>
<td class="example">
<enum-set enum-type="simple"><br/>
GREEN,BLUE<br/>
</enum-set></td>
<td>Available with Java 1.5 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/RegexPatternConverter.html">RegexPatternConverter</a></td>
<td>java.util.regex.Pattern</td>
<td class="example">
<java.util.regex.Pattern><br/>
<pattern>.*</pattern><br/>
<flags>0</flags><br/>
</java.util.regex.Pattern>
</td>
<td>Available with Java 1.4 or greater.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.time">java.time</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/DurationConverter.html">DurationConverter</a></td>
<td>java.time.Duration</td>
<td class="example">
<duration>PT24000H</duration>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/InstantConverter.html">InstantConverter</a></td>
<td>java.time.Instant</td>
<td class="example">
<instant>2017-07-30T20:40:00Z</instant>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/LocalDateConverter.html">LocalDateConverter</a></td>
<td>java.time.LocalDate</td>
<td class="example">
<local-date>2017-10-30</local-date>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/LocalDateTimeConverter.html">LocalDateTimeConverter</a></td>
<td>java.time.LocalDateTime</td>
<td class="example">
<local-date-time>2017-10-30T20:40:15</local-date-time>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/LocalTimeConverter.html">LocalTimeConverter</a></td>
<td>java.time.LocalTime</td>
<td class="example">
<local-time>20:40:15</local-time>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/MonthDayConverter.html">MonthDayConverter</a></td>
<td>java.time.MonthDay</td>
<td class="example">
<month-day>--01-13</month-day>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/OffsetDateTimeConverter.html">OffsetDateTimeConverter</a></td>
<td>java.time.OffsetDateTime</td>
<td class="example">
<offset-date-time>2017-07-30T20:40:00Z</offset-date-time>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/OffsetTimeConverter.html">OffsetTimeConverter</a></td>
<td>java.time.OffsetTime</td>
<td class="example">
<offset-time>20:40:15+01:00</offset-time>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/PeriodConverter.html">PeriodConverter</a></td>
<td>java.time.Period</td>
<td class="example">
<period>P1000D</period>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/SystemClockConverter.html">SystemClockConverter</a></td>
<td>java.time.Clock$SystemClock</td>
<td class="example">
<system-clock>
<zone>Europe/Berlin</zone>
</system-clock>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/YearConverter.html">YearConverter</a></td>
<td>java.time.Year</td>
<td class="example">
<year>2017</year>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/YearMonthConverter.html">YearMonthConverter</a></td>
<td>java.time.YearMonth</td>
<td class="example">
<year-month>2017-02</year-month>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/ZonedDateTimeConverter.html">ZonedDateTimeConverter</a></td>
<td>java.time.ZonedDateTime</td>
<td class="example">
<zoned-date-time>2017-10-30T20:40:00Z[Europe/London]</zoned-date-time>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/ZoneIdConverter.html">ZoneIdConverter</a></td>
<td>java.time.ZoneId<br/>java.time.ZoneOffset<br/>java.time.ZoneRegion</td>
<td class="example">
<zone-id>Z</zone-id>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.time.chrono">java.time.chrono</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/ChronologyConverter.html">ChronologyConverter</a></td>
<td>java.time.chrono.Chronology implementations</td>
<td class="example">
<chronology>ISO</chronology>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/HijrahDateConverter.html">HijrahDateConverter</a></td>
<td>java.time.chrono.HijrahDate</td>
<td class="example">
<hijrah-date>Hijrah-umalqura AH 1438-11-07</hijrah-date>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/JapaneseDateConverter.html">JapaneseDateConverter</a></td>
<td>java.time.chrono.JapaneseDate</td>
<td class="example">
<japanese-date>Japanese Heisei 29-07-30</japanese-date>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/JapaneseEraConverter.html">JapaneseEraConverter</a></td>
<td>java.time.chrono.JapaneseEra</td>
<td class="example">
<japanese-era>Taisho</japanese-era>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/MinguoDateConverter.html">MinguoDateConverter</a></td>
<td>java.time.chrono.MinguoDate</td>
<td class="example">
<minguo-date>Minguo ROC 106-07-30</minguo-date>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/ThaiBuddhistDateConverter.html">ThaiBuddhistDateConverter</a></td>
<td>java.time.chrono.ThaiBuddhistDate</td>
<td class="example">
<thai-buddhist-date>haiBuddhist BE 2560-07-30</thai-buddhist-date>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.time.temporal">java.time.temporal</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/ValueRangeConverter.html">ValueRangeConverter</a></td>
<td>java.time.temporal.ValueRange</td>
<td class="example">
<temporal-value-range><br/>
<maxLargest>45</maxLargest><br/>
<maxSmallest>30</maxSmallest><br/>
<minLargest>1</minLargest><br/>
<minSmallest>0</minSmallest><br/>
</temporal-value-range>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/time/WeekFieldsConverter.html">WeekFieldsConverter</a></td>
<td>java.time.temporal.WeekFields</td>
<td class="example">
<week-fields><br/>
<minimalDays>2</minimalDays><br/>
<firstDayOfWeek>MONDAY</firstDayOfWeek><br/>
</week-fields>
</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.sql">java.sql</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SqlDateConverter.html">SqlDateConverter</a></td>
<td>java.sql.Date</td>
<td class="example"><sql-date>1978-08-25</sql-date></td>
<td>Only automatically registered if runtime has JDBC support.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SqlTimeConverter.html">SqlTimeConverter</a></td>
<td>java.sql.Time</td>
<td class="example"><sql-time>14:07:33</sql-time></td>
<td>Only automatically registered if runtime has JDBC support.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SqlTimestampConverter.html">SqlTimestampConverter</a></td>
<td>java.sql.Timestamp</td>
<td class="example"><sql-timestamp>1970-01-01 00:00:01.234</sql-timestamp></td>
<td>Only automatically registered if runtime has JDBC support.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ISO8601SqlTimestampConverter.html">ISO8601SqlTimestampConverter</a></td>
<td>java.sql.Timestamp</td>
<td class="example"><sql-timestamp>2006-07-28T12:06:17.654000000-03:00</sql-timestamp></td>
<td>Not automatically registered, can be used globally or locally. Implementation needs joda-time for JDK 1.7 or below.</td>
<td> </td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.math">java.math</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/BigDecimalConverter.html">BigDecimalConverter</a></td>
<td>java.math.BigDecimal</td>
<td class="example"><big-decimal>342346.445332</big-decimal></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/BigIntegerConverter.html">BigIntegerConverter</a></td>
<td>java.math.BigInteger</td>
<td class="example"><big-int>23434224556</big-int></td>
<td> </td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.net">java.net</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/URIConverter.html">URIConverter</a></td>
<td>java.net.URI</td>
<td class="example"><uri>mailto:xstream-user.codehaus.org</uri></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/basic/URLConverter.html">URLConverter</a></td>
<td>java.net.URL</td>
<td class="example"><url>http://codehaus.org/blah</url></td>
<td> </td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.io">java.io</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/FileConverter.html">FileConverter</a></td>
<td>java.io.File</td>
<td class="example"><file>/stuff/hello.txt</file></td>
<td> </td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/SerializableConverter.html">SerializableConverter</a></td>
<td>java.io.Serializable</td>
<td> </td>
<td>See description at Generalized Converters.</td>
<td>low</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/ExternalizableConverter.html">ExternalizableConverter</a></td>
<td>java.io.Externalizable</td>
<td class="example">
<<i>externalizable-type</i>><br/>
<string>apple</string><br/>
<int>42</int><br/>
<big-decimal>12345.4555</big-decimal><br/>
</<i>externalizable-type</i>>
</td>
<td>See description at Generalized Converters.</td>
<td>low</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.nio">java.nio</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/CharsetConverter.html">CharsetConverter</a></td>
<td>java.nio.charset.Charset</td>
<td class="example"><charset>US-ASCII</charset></td>
<td>Available with Java 1.4 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/PathConverter.html">PathConverter</a></td>
<td>java.nio.file.Path</td>
<td class="example"><path>../dir/file.txt</path></td>
<td>Available with Java 7 or greater.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.lang.reflect">java.lang.reflect</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/JavaClassConverter.html">JavaClassConverter</a></td>
<td>java.lang.Class</td>
<td class="example"><class>com.foo.MyThing</class></td>
<td>This converter uses the ClassLoaderReference of the XStream instance. Can be registered with
Mapper globally or locally to respect type aliases.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/JavaFieldConverter.html">JavaFieldConverter</a></td>
<td>java.lang.reflect.Field</td>
<td class="example">
<field><br/>
<name>myField</name><br/>
<class>com.foo.MyThing</class><br/>
</field>
</td>
<td>This converter uses the ClassLoaderReference of the XStream instance. Can be registered with
Mapper globally or locally to respect type aliases.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/JavaMethodConverter.html">JavaMethodConverter</a></td>
<td>java.lang.reflect.Method<br/>java.lang.reflect.Constructor</td>
<td class="example">
<method><br/>
<class>com.foo.MyThing</class><br/>
<name>doStuff</name><br/>
<parameter-types><br/>
<class>java.lang.String</class><br/>
<class>java.util.Iterator</class><br/>
</parameter-types><br/>
</method>
</td>
<td>The enclosing element for this tag will either by <method> or <constructor>. This converter uses the ClassLoaderReference of the XStream insatance. Can be regisreted with
Mapper globally or locally to respect type aliases.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/DynamicProxyConverter.html">DynamicProxyConverter</a></td>
<td>Any dynamic proxy generated by java.lang.reflect.Proxy</td>
<td class="example">
<dynamic-proxy><br/>
<interface>com.foo.Blah</interface><br/>
<interface>com.foo.Woo</interface><br/>
<handler class="com.foo.MyHandler"><br/>
<something>blah</something><br/>
</handler><br/>
</dynamic-proxy>
</td>
<td>The dynamic proxy itself is not serialized, however the interfaces it implements and the actual InvocationHandler
instance are serialized. This allows the proxy to be reconstructed after deserialization.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.awt">java.awt</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ColorConverter.html">ColorConverter</a></td>
<td>java.awt.Color</td>
<td class="example">
<awt-color><br/>
<red>255</red><br/>
<green>255</green><br/>
<blue>255</blue><br/>
<alpha>255</alpha><br/>
</awt-color>
</td>
<td>Only automatically registered if runtime has AWT support.<br/>
<b>Warning:</b> The AWT toolkit is definitely initialized when a Color is deserialized.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/FontConverter.html">FontConverter</a></td>
<td>java.awt.Font<br/>
javax.swing.plaf.FontUIResource</td>
<td class="example">
<awt-font><br/>
<family class="string">Arial</family><br/>
<size class="float">20.0</size><br/>
<width class="null"/><br/>
<posture class="null"/><br/>
<weight class="float">2.0</weight><br/>
<superscript class="null"/><br/>
</awt-font>
</td>
<td>Only automatically registered if runtime has AWT support.<br/>
<b>Warning:</b> The AWT toolkit is definitely initialized when a Font is deserialized.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="java.awt.font">java.awt.font</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/TextAttributeConverter.html">TextAttributeConverter</a></td>
<td>java.awt.font.TextAttribute</td>
<td class="example">
<awt-text-attribute>family</awt-text-attribute>
</td>
<td>Only automatically registered if runtime has AWT support.<br/>
<b>Warning:</b> The AWT toolkit is definitely initialized when a TextAttribute is deserialized.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="javax.activation">javax.activation</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ActivationDataFlavorConverter.html">ActivationDataFlavorConverter</a></td>
<td>javax.activation.ActivationDataFlavor</td>
<td class="example">
<activation-data-flavor><br/>
<mimeType>application/x-junit</mimeType><br/>
<humanRepresentableName>JUnit</humanRepresentableName><br/>
<representationClass>java.io.InputStream</representationClass><br/>
</activation-data-flavor>
</td>
<td>Available with Java 6, 7 and 8. Requires module <em>java.activation</em> with Java 9 or greater.<br/>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="javax.swing">javax.swing</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/LookAndFeelConverter.html">LookAndFeelConverter</a></td>
<td>javax.swing.LookAndFeel implementations</td>
<td class="example"> </td>
<td>Only automatically registered if runtime has Swing support.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="javax.security.auth">javax.security.auth</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SubjectConverter.html">SubjectConverter</a></td>
<td>javax.security.auth.Subject</td>
<td class="example">
<auth-subject><br/>
<principals><br/>
<com.thoughtworks.xstream.Admin/><br/>
</principals><br/>
<readOnly>false</readOnly><br/>
</auth-subject><br/>
</td>
<td>Available with Java 1.4 or greater. This converter does not serialize any credentials but only the principals.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="javax.xml.datatype">javax.xml.datatype</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Example</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/DurationConverter.html">DurationConverter</a></td>
<td>javax.xml.datatype.Duration</td>
<td class="example"><duration>PT1H2M</duration></td>
<td>Available with Java 1.5 or greater.</td>
<td>normal</td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="generic">Generalized Converters</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Explanation</th>
<th>Notes</th>
<th>Prio</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/ReflectionConverter.html">ReflectionConverter</a></td>
<td>Any type</td>
<td>The Converter is used as fallback. It uses reflection to examine the class and will serialize its fields.</td>
<td> </td>
<td>very low</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/annotations/AnnotationReflectionConverter.html">AnnotationReflectionConverter</a></td>
<td>Any type</td>
<td>The Converter is used as fallback. It uses reflection to examine the class and will serialize its fields and supports annotations for
local converters.</td>
<td>Needs JDK 1.5, default for JDK 1.5. Deprecated since XStream 1.3 and must be registered now explicitly.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/SerializableConverter.html">SerializableConverter</a></td>
<td>java.io.Serializable or types with one of the serializable methods readObject or writeObject</td>
<td>The Converter is used for any JDK-serializable types, if not handled by a specialized Converter.</td>
<td> </td>
<td>low</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/ExternalizableConverter.html">ExternalizableConverter</a></td>
<td>java.io.Externalizable</td>
<td>The Converter is used for any externalizable type, if not handled by a specialized Converter.</td>
<td> </td>
<td>low</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/LambdaConverter.html">LambdaConverter</a></td>
<td>For serializable lambda types.</td>
<td>Non-serializable lambda instances will be mapped to null, since they contain no information for recreation. Serializable
lambda types have such info, but it is specific to compiler vendor and occurrence in the code. Never assume that you can
deserialize such an element when you use a different version of your code or a different compiler.</td>
<td>Available with Java 8 or greater.</td>
<td>normal</td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ToAttributedValueConverter.html">ToAttributedValueConverter</a></td>
<td>Any type with all fields to be represented by a single string but one.</td>
<td>The Converter is used to write all but one fields of the type as attributes. The left over field is then used as current value.</td>
<td>Must be registered globally or locally for the appropriate type.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ToStringConverter.html">ToStringConverter</a></td>
<td>Any type with natural String representation</td>
<td>The Converter must be initialized with a type, that provides a complete String representation with its toString() method
and is able to be recreated by a constructor taking a single String argument.</td>
<td>Must be registered globally or locally for the appropriate type.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/javabean/JavaBeanConverter.html">JavaBeanConverter</a></td>
<td>Java beans</td>
<td>The Converter handles any type as Java bean. It expects the type to convert to have a public default constructor and
appropriate getter and setters.</td>
<td>Must be registered globally or locally. Can be used as fallback with priority <b>very low</b>.</td>
<td> </td>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/extended/PropertyEditorCapableConverter.html">PropertyEditorCapableConverter</a></td>
<td>Any type with a PropertyEditor implementation</td>
<td>The Converter can handles any type that provides a PropertyEditor implementation. The PropertyEditor's methods getAsText() and
setAsText() are used to convert between object and string representation.</td>
<td>Must be registered globally or locally for the appropriate type.</td>
<td> </td>
</tr>
<!-- .................................................................................................. -->
<tr>
<td colspan="5" class="headerRow"><h1 id="3rdParty">Converters for 3rd party classes</h1></td>
</tr>
<tr>
<th>Converter</th>
<th>Supported types</th>
<th>Explanation</th>
<th>Notes</th>
<th>Add-On</th>
</tr>
<tr>
<td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/CGLIBEnhancedConverter.html">CGLIBEnhancedConverter</a></td>
<td>Proxies generated by the CGLIB Enhancer</td>
<td>The Converter handles proxies generated by the CGLIB Enhancer, if there were not multiple callbacks registered.
A proxy with multiple callbacks can currently not be handled at all.</td>
<td>Must be registered globally and in combination with the CGLIBMapper. See <a href="faq.html#Serialization_CGLIB">FAQ</a>.</td>
<td>xstream</td>
</tr>
<tr>
<td><a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/converter/HibernatePersistentCollectionConverter.html">HibernatePersistentCollectionConverter</a></td>
<td>org.hibernate.collection.internal.PersistentBag<br/>
org.hibernate.collection.internal.PersistentList<br/>
org.hibernate.collection.internal.PersistentSet<br/>
org.hibernate.envers.entities.mapper.relation.lazy.proxy.ListProxy<br/>
org.hibernate.envers.entities.mapper.relation.lazy.proxy.SetProxy</td>
<td>The Converter handles Hibernate 4 (or 3) standard collections and Envers proxies. It will handle any element of the collection.</td>
<td>Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See <a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/package-summary.html">package description</a>.</td>
<td>xstream-hibernate</td>
</tr>
<tr>
<td><a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/converter/HibernatePersistentMapConverter.html">HibernatePersistentMapConverter</a></td>
<td>org.hibernate.collection.internal.PersistentMap<br/>
org.hibernate.envers.entities.mapper.relation.lazy.proxy.MapProxy</td>
<td>The Converter handles unsorted Hibernate 4 (or 3) maps or Envers proxy. It will handle any key and value of the map.</td>
<td>Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See <a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/package-summary.html">package description</a>.</td>
<td>xstream-hibernate</td>
</tr>
<tr>
<td><a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/converter/HibernatePersistentSortedMapConverter.html">HibernatePersistentSortedMapConverter</a></td>
<td>org.hibernate.collection.internal.PersistentSortedMap<br/>
org.hibernate.envers.entities.mapper.relation.lazy.proxy.SortedMapProxy</td>
<td>The Converter handles sorted Hibernate 4 (or 3) maps or Envers proxy. It will handle any key and value of the map.</td>
<td>Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See <a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/package-summary.html">package description</a>.</td>
<td>xstream-hibernate</td>
</tr>
<tr>
<td><a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/converter/HibernatePersistentSortedSetConverter.html">HibernatePersistentSortedSetConverter</a></td>
<td>org.hibernate.collection.intrernal.PersistentSortedSet<br/>
org.hibernate.envers.entities.mapper.relation.lazy.proxy.SortedSetProxy</td>
<td>The Converter handles sorted Hibernate 4 (or 3) sets or Envers proxy. It will handle any element of the set.</td>
<td>Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See <a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/package-summary.html">package description</a>.</td>
<td>xstream-hibernate</td>
</tr>
<tr>
<td><a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/converter/HibernateProxyConverter.html">HibernateProxyConverter</a></td>
<td>org.hibernate.proxy.HibernateProxy</td>
<td>The Converter handle any element that is wrapped by a Hibernate proxy.</td>
<td>Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See <a href="hibernate-javadoc/com/thoughtworks/xstream/hibernate/package-summary.html">package description</a>.</td>
<td>xstream-hibernate</td>
</tr>
</table>
</body>
</html>