This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 8fef5f5  Javadoc updates.
8fef5f5 is described below

commit 8fef5f55fc7673bff907ee22b172d4be02807b4e
Author: JamesBognar <[email protected]>
AuthorDate: Mon Mar 5 13:14:32 2018 -0500

    Javadoc updates.
---
 .../main/java/org/apache/juneau/jena/package.html  | 209 --------
 .../main/java/org/apache/juneau/json/package.html  | 291 -----------
 .../main/java/org/apache/juneau/uon/package.html   | 282 -----------
 .../org/apache/juneau/urlencoding/package.html     | 282 -----------
 .../main/java/org/apache/juneau/xml/package.html   | 202 --------
 juneau-doc/src/main/javadoc/overview.html          | 563 ++++++++++++++++++++-
 6 files changed, 537 insertions(+), 1292 deletions(-)

diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
index e50b908..281451c 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
@@ -65,17 +65,14 @@
        <ol>
                <li><p><a class='doclink' href='#Namespaces'>Namespaces</a></p>
                <li><p><a class='doclink' href='#UriProperties'>URI 
properties</a></p>
-               <li><p><a class='doclink' href='#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                <li><p><a class='doclink' 
href='#Collections'>Collections</a></p>
                <li><p><a class='doclink' href='#RootProperty'>Root 
property</a></p>
                <li><p><a class='doclink' href='#TypedLiterals'>Typed 
literals</a></p>
-               <li><p><a class='doclink' href='#Recursion'>Non-tree models and 
recursion detection</a></p>
                <li><p><a class='doclink' 
href='#SerializerConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#SerializerOtherNotes'>Other 
notes</a></p>
        </ol>   
        <li><p><a class='doclink' href='#RdfParser'>RdfParser class</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#GenericParsing'>Parsing into 
generic POJO models</a></p>
                <li><p><a class='doclink' 
href='#ParserConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#ParserOtherNotes'>Other 
notes</a></p>
        </ol>   
@@ -470,78 +467,6 @@
                </p>            
        </div>
        
-       <!-- 
========================================================================================================
 -->
-       <a id="BeanAnnotations"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.3 - @Bean and @BeanProperty 
annotations</h3>
-       <div class='topic'>
-               <p>
-                       The {@link org.apache.juneau.annotation.Bean @Bean} and 
{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 
-                       annotations are used to customize the behavior of beans 
across the entire framework.
-                       <br>In addition to using them to identify the resource 
URI for the bean shown above, they have various other 
-                       uses:
-               </p>
-               <ul class='spaced-list'>
-                       <li>
-                               Hiding bean properties.
-                       <li>
-                               Specifying the ordering of bean properties.
-                       <li>
-                               Overriding the names of bean properties.
-                       <li>
-                               Associating transforms at both the class and 
property level (to convert non-serializable POJOs to 
-                               serializable forms).
-               </ul>
-               <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a swap with it to transform
-                       it to an ISO8601 date-time string in GMT time.
-                       <br>By default, <code>Calendars</code> are treated as 
beans by the framework, which is usually not how you want 
-                       them serialized.
-                       <br>Using swaps, we can convert them to standardized 
string forms.
-               </p>
-               <p class='bcode'>       
-       <jk>public class</jk> Person {
-               
-               <jc>// Bean properties</jc>
-               
<ja>@BeanProperty</ja>(swap=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar birthDate;
-               ...
-               
-               <jc>// Normal constructor</jc>
-               <jk>public</jk> Person(<jk>int</jk> id, String name, String 
uri, String addressBookUri, String birthDate) 
-                               <jk>throws</jk> Exception {
-                       ...
-                       <jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> 
GregorianCalendar();
-                       <jk>this</jk>.<jf>birthDate</jf>.setTime(
-                               
DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-               }
-       }
-               </p>
-               <p>
-                       And we alter our code to pass in the birthdate.
-               </p>
-               <p class='bcode'>
-       <jc>// Create our bean.</jc>
-       Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, 
<js>"http://sample/addressBook/person/1";</js>, 
-               <js>"http://sample/addressBook";</js>, <js>"Aug 12, 1946"</js>);
-               </p>
-               <p>
-                       Now when we rerun the sample code, we'll get the 
following:
-               </p>
-               <p class='bcode'>
-       <xt>&lt;rdf:RDF</xt>
-           
<xa>xmlns:rdf</xa>=<xs>"http://www.w3.org/1999/02/22-rdf-syntax-ns#";</xs>
-           <xa>xmlns:j</xa>=<xs>"http://www.apache.org/juneau/";</xs>
-           <xa>xmlns:jp</xa>=<xs>"http://www.apache.org/juneaubp/";</xs>
-           
<xa>xmlns:per</xa>=<xs>"http://www.apache.org/person/";</xs><xt>&gt;</xt>
-          <xt>&lt;rdf:Description 
<xa>rdf:about</xa>=<xs>"http://sample/addressBook/person/1";</xs>&gt;</xt>
-             <xt>&lt;per:addressBookUri</xt> 
<xa>rdf:resource</xa>=<xs>"http://sample/addressBook";</xs><xt>/&gt;</xt>
-             <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-             <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-             
<xt>&lt;per:birthDate&gt;</xt>1946-08-12T00:00:00Z<xt>&lt;/per:birthDate&gt;</xt>
-          <xt>&lt;/rdf:Description&gt;</xt>
-       <xt>&lt;/rdf:RDF&gt;</xt>
-               </p>
-       </div>
-       
                
        <!-- 
========================================================================================================
 -->
        <a id="Collections"></a>
@@ -766,30 +691,6 @@
 
 
        <!-- 
========================================================================================================
 -->
-       <a id="Recursion"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.7 - Non-tree models and 
recursion detection</h3>
-       <div class='topic'>
-               <p>
-                       The RDF serializer is designed to be used against tree 
structures.
-                       <br>It expects that there not be loops in the POJO 
model (e.g. children with references to parents, etc...).
-                       <br>If you try to serialize models with loops, you will 
usually cause a <code>StackOverflowError</code> to 
-                       be thrown (if {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
-                       first).
-               </p>
-               <p>
-                       If you still want to use the XML serializer on such 
models, Juneau provides the 
-                       {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
-                       <br>It tells the serializer to look for instances of an 
object in the current branch of the tree and skip 
-                       serialization when a duplicate is encountered.
-               </p>
-               <p>
-                       Recursion detection introduces a performance penalty of 
around 20%.
-                       <br>For this reason the setting is disabled by default.
-               </p>
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="SerializerConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>2.8 - Configurable 
properties</h3>
        <div class='topic'>
@@ -909,116 +810,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="GenericParsing"></a>
-       <h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic 
POJO models</h3>
-       <div class='topic'>
-               <p>
-                       The RDF parser is not limited to parsing back into the 
original bean classes.
-                       <br>If the bean classes are not available on the 
parsing side, the parser can also be used to parse into a 
-                       generic model consisting of <code>Maps</code>, 
<code>Collections</code>, and primitive objects.
-               </p>
-               <p>
-                       You can parse into any <code>Map</code> type (e.g. 
<code>HashMap</code>, <code>TreeMap</code>), but
-                       using {@link org.apache.juneau.ObjectMap} is 
recommended since it has many convenience methods
-                       for converting values to various types. 
-                       <br>The same is true when parsing collections.  You can 
use any Collection (e.g. <code>HashSet</code>, 
-                       <code>LinkedList</code>) or array (e.g. 
<code>Object[]</code>, <code>String[]</code>, 
-                       <code>String[][]</code>), but using {@link 
org.apache.juneau.ObjectList} is recommended.
-               </p>
-               <p>
-                       When the map or list type is not specified, or is the 
abstract <code>Map</code>, <code>Collection</code>, 
-                       or <code>List</code> types, the parser will use 
<code>ObjectMap</code> and <code>ObjectList</code> by 
-                       default.
-               </p>
-               <p>
-                       In the following example, we parse into an 
<code>ObjectMap</code> and use the convenience methods for 
-                       performing data conversion on values in the map.
-               </p>
-               <p class='bcode'>       
-       <jc>// Parse RDF into a generic POJO model.</jc>
-       ObjectMap m = RdfParser.<jsf>DEFAULT_XML</jsf>.parse(rdfXml, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Get some simple values.</jc>
-       String name = m.getString(<js>"name"</js>);
-       <jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-       <jc>// Get a value convertable from a String.</jc>
-       URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-       <jc>// Get a value using a swap.</jc>
-       CalendarSwap swap = <jk>new</jk> CalendarSwap.ISO8601DTZ();
-       Calendar birthDate = m.get(swap, <js>"birthDate"</js>);
-
-       <jc>// Get the addresses.</jc>
-       ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-       <jc>// Get the first address and convert it to a bean.</jc>
-       Address address = addresses.get(Address.<jk>class</jk>, 0);
-               </p>
-               
-               <p>
-                       However, there are caveats when parsing into generic 
models due to the nature of RDF.
-                       <br>Watch out for the following:
-               </p>
-               <ul class='spaced-list'>
-                       <li>
-                               The ordering of entries are going to be 
inconsistent.
-                       <li>
-                               Bean URIs are always going to be denoted with 
the key <js>"uri"</js>.
-                               <br>Therefore, you cannot have a bean with a 
URI property and a separate property named <js>"uri"</js>.
-                               <br>The latter will overwrite the former.
-                               <br>This isn't a problem when parsing into 
beans instead of generic POJO models.
-                       <li>
-                               All values are strings.
-                               <br>This normally isn't a problem when using 
<code>ObjectMap</code> and <code>ObjectList</code> since 
-                               various methods are provided for converting to 
the correct type anyway.
-                       <li>
-                               The results may not be what is expected if 
there are lots of URL reference loops in the RDF model.
-                               <br>As nodes are processed from the root node 
down through the child nodes, the parser keeps
-                               track of previously processed parent URIs and 
handles them accordingly.
-                               <br>If it finds that the URI has previously 
been processed, it handles it as a normal URI string and doesn't 
-                               process further.
-                               <br>However, depending on how complex the 
reference loops are, the parsed data may end up having the
-                               same data in it, but structured differently 
from the original POJO.
-               </ul>
-               <p>
-                       We can see some of these when we render the 
<code>ObjectMap</code> back to JSON.
-               </p>
-               <p class='bcode'>
-       
System.<jsm>err</jsm>.println(JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m));
-               </p>
-               <p>
-                       This is what's produced:
-               </p>
-               <p class='bcode'>
-       {
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               addresses: [
-                       {
-                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
-                               isCurrent: <js>'true'</js>, 
-                               zip: <js>'12345'</js>, 
-                               state: <js>'NY'</js>, 
-                               city: <js>'Anywhereville'</js>, 
-                               street: <js>'100 Main Street'</js>, 
-                               id: <js>'1'</js>, 
-                               personUri: 
<js>'http://sample/addressBook/person/1'</js>
-                       }
-               ], 
-               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-               addressBookUri: <js>'http://sample/addressBook'</js>, 
-               name: <js>'John Smith'</js>, 
-               id: <js>'1'</js>, 
-               root: <js>'true'</js>
-       }               
-               </p>
-               <p>
-                       As a general rule, parsing into beans is often more 
efficient than parsing into generic models.
-                       <br>And working with beans is often less error prone 
than working with generic models.
-               </p>
-       </div>
-
-       <!-- 
========================================================================================================
 -->
        <a id="ParserConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>3.2 - Configurable 
properties</h3>
        <!-- TODO -->
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
index 4bdc900..bce9595 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
@@ -63,16 +63,13 @@
        </ol>
        <li><p><a class='doclink' href='#JsonSerializer'>JsonSerializer 
class</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                <li><p><a class='doclink' 
href='#Collections'>Collections</a></p>
                <li><p><a class='doclink' href='#JsonSchemaSupport'>JSON-Schema 
support</a></p>
-               <li><p><a class='doclink' href='#Recursion'> Non-tree models 
and recursion detection</a></p>
                <li><p><a class='doclink' 
href='#SerializerConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#SerializerOtherNotes'>Other 
notes</a></p>
        </ol>
        <li><p><a class='doclink' href='#JsonParser'>JsonParser class</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#GenericParsing'>Parsing into 
generic POJO models</a></p>
                <li><p><a class='doclink' 
href='#ParserConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#ParserOtherNotes'>Other 
notes</a></p>
        </ol>
@@ -306,107 +303,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="BeanAnnotations"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.1 - @Bean and @BeanProperty 
annotations</h3>
-       <div class='topic'>
-               <p>
-                       The {@link org.apache.juneau.annotation.Bean @Bean} and 
-                       {@link org.apache.juneau.annotation.BeanProperty 
@BeanProperty} annotations are used to customize the 
-                       behavior of beans across the entire framework.
-                       <br>They have various uses:
-               </p>
-               <ul class='spaced-list'>
-                       <li>
-                               Hiding bean properties.
-                       <li>
-                               Specifying the ordering of bean properties.
-                       <li>
-                               Overriding the names of bean properties.
-                       <li>
-                               Associating swaps at both the class and 
property level (to convert non-serializable POJOs to 
-                               serializable forms).
-               </ul>
-               <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a swap with it to transform it to 
-                       an ISO8601 date-time string in GMT time.
-                       <br>We'll also add a couple of <code>URI</code> 
properties.
-                       <br>By default, <code>Calendars</code> are treated as 
beans by the framework, which is usually not how you 
-                       want them serialized.
-                       <br>Using swaps, we can convert them to standardized 
string forms.
-               </p>
-               <p class='bcode'>       
-       <jk>public class</jk> Person {
-               <jc>// Bean properties</jc>
-               <jk>public int</jk> <jf>id</jf>;
-               <jk>public</jk> String <jf>name</jf>;
-               <jk>public</jk> URI <jf>uri</jf>;
-               <jk>public</jk> URI <jf>addressBookUri</jf>;
-
-               
<ja>@BeanProperty</ja>(swap=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
-
-
-               <jc>// Bean constructor (needed by parser)</jc>
-               <jk>public</jk> Person() {}
-
-               <jc>// Normal constructor</jc>
-               <jk>public</jk> Person(<jk>int</jk> id, String name, String 
uri, String addressBookUri, String birthDate) <jk>throws</jk> Exception {
-                       <jk>this</jk>.<jf>id</jf> = id;
-                       <jk>this</jk>.<jf>name</jf> = name;
-                       <jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-                       <jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> 
URI(addressBookUri);
-                       <jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> 
GregorianCalendar();
-                       
<jk>this</jk>.<jf>birthDate</jf>.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-               }
-       }
-               </p>
-               <p>
-                       Next, we alter our code to pass in the birthdate:
-               </p>
-               <p class='bcode'>
-       <jc>// Create our bean.</jc>
-       Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, 
<js>"http://sample/addressBook/person/1";</js>, 
-               <js>"http://sample/addressBook";</js>, <js>"Aug 12, 1946"</js>);
-               </p>
-               <p>
-                       Now when we rerun the sample code, we'll get the 
following:
-               </p>
-               <p class='bcode'>
-       {
-               id: <jk>1</jk>, 
-               name: <js>'John Smith'</js>, 
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               addressBookUri: <js>'http://sample/addressBook'</js>, 
-               birthDate: <js>'1946-08-12T00:00:00Z'</js>
-       }
-               </p>
-               <p>
-                       Another useful feature is the {@link 
org.apache.juneau.annotation.Bean#propertyNamer() @Bean.propertyNamer()} 
-                       annotation that allows you to plug in your own logic 
for determining bean property names.
-                       <br>The {@link org.apache.juneau.PropertyNamerDLC} is 
an example of an alternate property namer.
-                       It converts bean property names to lowercase-dashed 
format.
-               </p>
-               
-               <h5 class='topic'>Example:</h5>
-               <p class='bcode'>       
-       <ja>@Bean</ja>(propertyNamer=PropertyNamerDLC.<jk>class</jk>)
-       <jk>public class</jk> Person {
-               ...
-               </p>
-               
-               <h5 class='figure'>Results</h5>
-               <p class='bcode'>
-       {
-               id: <jk>1</jk>, 
-               name: <js>'John Smith'</js>, 
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               <js>'address-book-uri'</js>: 
<js>'http://sample/addressBook'</js>, 
-               <js>'birth-date'</js>: <js>'1946-08-12T00:00:00Z'</js>
-       }
-               </p>
-       </div>
-       
-               
-       <!-- 
========================================================================================================
 -->
        <a id="Collections"></a>
        <h3 class='topic' onclick='toggle(this)'>2.2 - Collections</h3>
        <div class='topic'>
@@ -634,77 +530,6 @@
                </p>
        </div>
 
-
-       <!-- 
========================================================================================================
 -->
-       <a id="Recursion"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.4 - Non-tree models and 
recursion detection</h3>
-       <div class='topic'>
-               <p>
-                       The JSON serializer is designed to be used against POJO 
tree structures. 
-                       <br>It expects that there not be loops in the POJO 
model (e.g. children with references to parents, etc...).
-                       <br>If you try to serialize models with loops, you will 
usually cause a <code>StackOverflowError</code> to 
-                       be thrown (if {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
-                       first).
-               </p>
-               <p>
-                       If you still want to use the JSON serializer on such 
models, Juneau provides the 
-                       {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
-                       <br>It tells the serializer to look for instances of an 
object in the current branch of the tree and skip 
-                       serialization when a duplicate is encountered.
-               </p>
-               <p>
-                       For example, let's make a POJO model out of the 
following classes:
-               </p>
-               <p class='bcode'>
-       <jk>public class</jk> A {
-               <jk>public</jk> B b;
-       }
-       
-       <jk>public class</jk> B {
-               <jk>public</jk> C c;
-       }
-       
-       <jk>public class</jk> C {
-               <jk>public</jk> A a;
-       }
-               </p>
-               <p>
-                       Now we create a model with a loop and serialize the 
results.
-               </p>
-               <p class='bcode'>
-       <jc>// Clone an existing serializer and set property for detecting 
recursions.</jc>
-       JsonSerializer s = 
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.builder().detectRecursions(<jk>true</jk>).build();
-
-       <jc>// Create a recursive loop.</jc>
-       A a = <jk>new</jk> A();
-       a.<jf>b</jf> = <jk>new</jk> B();
-       a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
-       a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
-       
-       <jc>// Serialize to JSON.</jc>
-       String json = s.serialize(a);
-               </p>
-               <p>
-                       What we end up with is the following, which does not 
serialize the contents of the <code>c</code> field:
-               </p>
-               <p class='bcode'>
-       {
-               b: {
-                       c: {
-                       }
-               }
-       }
-               </p>
-               <p>
-                       Without recursion detection enabled, this would cause a 
stack-overflow error.
-               </p>
-               <p>
-                       Recursion detection introduces a performance penalty of 
around 20%.
-                       <br>For this reason the setting is disabled by default.
-               </p>
-       </div>
-
-
        <!-- 
========================================================================================================
 -->
        <a id="SerializerConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>2.5 - Configurable 
properties</h3>
@@ -850,122 +675,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="GenericParsing"></a>
-       <h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic 
POJO models</h3>
-       <div class='topic'>
-               <p>
-                       The JSON parser is not limited to parsing back into the 
original bean classes.
-                       <br>If the bean classes are not available on the 
parsing side, the parser can also be used to 
-                       parse into a generic model consisting of 
<code>Maps</code>, <code>Collections</code>, and primitive
-                       objects.
-               </p>
-               <p>
-                       You can parse into any <code>Map</code> type (e.g. 
<code>HashMap</code>, <code>TreeMap</code>), but
-                       using {@link org.apache.juneau.ObjectMap} is 
recommended since it has many convenience methods
-                       for converting values to various types.
-                       <br>The same is true when parsing collections.  You can 
use any Collection (e.g. <code>HashSet</code>, 
-                       <code>LinkedList</code>) or array (e.g. 
<code>Object[]</code>, <code>String[]</code>, 
-                       <code>String[][]</code>), but using {@link 
org.apache.juneau.ObjectList} is recommended.
-               </p>
-               <p>
-                       When the map or list type is not specified, or is the 
abstract <code>Map</code>, <code>Collection</code>, 
-                       or <code>List</code> types, the parser will use 
<code>ObjectMap</code> and <code>ObjectList</code> by 
-                       default.
-               </p>
-               <p>
-                       Starting back with our original JSON:
-               </p>
-               <p class='bcode'>
-       {
-               id: <jk>1</jk>, 
-               name: <js>'John Smith'</js>, 
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               addressBookUri: <js>'http://sample/addressBook'</js>, 
-               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-               addresses: [
-                       {
-                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
-                               personUri: 
<js>'http://sample/addressBook/person/1'</js>, 
-                               id: <jk>1</jk>, 
-                               street: <js>'100 Main Street'</js>, 
-                               city: <js>'Anywhereville'</js>, 
-                               state: <js>'NY'</js>, 
-                               zip: <jk>12345</jk>, 
-                               isCurrent: <jk>true</jk>
-                       }
-               ]
-       }
-               </p>
-               <p>
-                       We can parse this into a generic <code>ObjectMap</code>:
-               </p>
-               <p class='bcode'>       
-       <jc>// Parse JSON into a generic POJO model.</jc>
-       ObjectMap m = JsonParser.<jsf>DEFAULT</jsf>.parse(json, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Convert it back to JSON.</jc>
-       String json = 
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m);
-               </p>
-               <p>
-                       What we end up with is the exact same output.
-                       <br>Even the numbers and booleans are preserved because 
they are parsed into <code>Number</code> and 
-                       <code>Boolean</code> objects when parsing into generic 
models.
-               </p>
-               <p class='bcode'>
-       {
-               id: <jk>1</jk>, 
-               name: <js>'John Smith'</js>, 
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               addressBookUri: <js>'http://sample/addressBook'</js>, 
-               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-               addresses: [
-                       {
-                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
-                               personUri: 
<js>'http://sample/addressBook/person/1'</js>, 
-                               id: <jk>1</jk>, 
-                               street: <js>'100 Main Street'</js>, 
-                               city: <js>'Anywhereville'</js>, 
-                               state: <js>'NY'</js>, 
-                               zip: <jk>12345</jk>, 
-                               isCurrent: <jk>true</jk>
-                       }
-               ]
-       }
-               </p>
-               <p>
-                       Once parsed into a generic model, various convenience 
methods are provided on the <code>ObjectMap</code>
-                               and <code>ObjectList</code> classes to retrieve 
values:
-               </p>
-               <p class='bcode'>
-       <jc>// Parse JSON into a generic POJO model.</jc>
-       ObjectMap m = JsonParser.<jsf>DEFAULT</jsf>.parse(json, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Get some simple values.</jc>
-       String name = m.getString(<js>"name"</js>);
-       <jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-       <jc>// Get a value convertable from a String.</jc>
-       URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-       <jc>// Get a value using a swap.</jc>
-       CalendarSwap swap = <jk>new</jk> CalendarSwap.ISO8601DTZ();
-       Calendar birthDate = m.get(swap, <js>"birthDate"</js>);
-
-       <jc>// Get the addresses.</jc>
-       ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-       <jc>// Get the first address and convert it to a bean.</jc>
-       Address address = addresses.get(Address.<jk>class</jk>, 0);
-               </p>
-
-               <p>
-                       As a general rule, parsing into beans is often more 
efficient than parsing into generic models.
-                       <br>And working with beans is often less error prone 
than working with generic models.
-               </p>            
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="ParserConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>3.2 - Configurable 
properties</h3>
        <div class='topic'>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/package.html 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/package.html
index b2d50fd..eb457ba 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/package.html
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/package.html
@@ -63,15 +63,12 @@
        </ol>
        <li><p><a class='doclink' 
href='#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer 
classes</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                <li><p><a class='doclink' 
href='#Collections'>Collections</a></p>
-               <li><p><a class='doclink' href='#Recursion'> Non-tree models 
and recursion detection</a></p>
                <li><p><a class='doclink' 
href='#SerializerConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#SerializerOtherNotes'>Other 
notes</a></p>
        </ol>
        <li><p><a class='doclink' href='#UrlEncodingParser'>UrlEncodingParser 
and UonParser classes</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#GenericParsing'>Parsing into 
generic POJO models</a></p>
                <li><p><a class='doclink' 
href='#ParserConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#ParserOtherNotes'>Other 
notes</a></p>
        </ol>
@@ -428,100 +425,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="BeanAnnotations"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.1 - @Bean and @BeanProperty 
annotations</h3>
-       <div class='topic'>
-               <p>
-                       The {@link org.apache.juneau.annotation.Bean @Bean} and 
{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 
-                       annotations are used to customize the behavior of beans 
across the entire framework.
-                       <br>They have various uses:
-               </p>
-               <ul>
-                       <li>Hiding bean properties.
-                       <li>Specifying the ordering of bean properties.
-                       <li>Overriding the names of bean properties.
-                       <li>Associating transforms at both the class and 
property level (to convert non-serializable POJOs to 
-                               serializable forms).
-               </ul>
-               <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a transform with it to transform
-                       it to an ISO8601 date-time string in GMT time.
-                       <br>We'll also add a couple of <code>URI</code> 
properties.
-                       <br>By default, <code>Calendars</code> are treated as 
beans by the framework, which is usually not how you 
-                       want them serialized.
-                       <br>Using transforms, we can convert them to 
standardized string forms.
-               </p>
-               <p class='bcode'>       
-       <jk>public class</jk> Person {
-               <jc>// Bean properties</jc>
-               <jk>public int</jk> <jf>id</jf>;
-               <jk>public</jk> String <jf>name</jf>;
-               <jk>public</jk> URI <jf>uri</jf>;
-               <jk>public</jk> URI <jf>addressBookUri</jf>;
-
-               
<ja>@BeanProperty</ja>(swap=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
-
-               <jc>// Bean constructor (needed by parser)</jc>
-               <jk>public</jk> Person() {}
-
-               <jc>// Normal constructor</jc>
-               <jk>public</jk> Person(<jk>int</jk> id, String name, String 
uri, String addressBookUri, String birthDate) 
-                               <jk>throws</jk> Exception {
-                       <jk>this</jk>.<jf>id</jf> = id;
-                       <jk>this</jk>.<jf>name</jf> = name;
-                       <jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-                       <jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> 
URI(addressBookUri);
-                       <jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> 
GregorianCalendar();
-                       <jk>this</jk>.<jf>birthDate</jf>
-                               
.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
-               }
-       }
-               </p>
-               <p>
-                       Next, we alter our code to pass in the birthdate:
-               </p>
-               <p class='bcode'>
-       <jc>// Create our bean.</jc>
-       Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, 
<js>"http://sample/addressBook/person/1";</js>, 
-               <js>"http://sample/addressBook";</js>, <js>"Aug 12, 1946"</js>);
-               </p>
-               <p>
-                       Now when we rerun the sample code, we'll get the 
following:
-               </p>
-               <p class='bcode'>
-       
(<ua>id</ua>=<un>1</un>,<ua>name</ua>=<us>'John+Smith'</us>,<ua>uri</ua>=<us>http://sample/addressBook/person/1</us>,
-               
<ua>addressBookUri</ua>=<us>http://sample/addressBook</us>,<ua>birthDate</ua>=<us>1946-08-12T00:00:00Z</us>)
-               </p>
-               <p>
-                       Using <code>UrlEncodingSerializer</code> instead would 
create the following:
-               </p>
-               <p class='bcode'>
-       
<ua>id</ua>=<un>1</un>&amp;<ua>name</ua>=<us>'John+Smith'</us>&amp;<ua>uri</ua>=<us>http://sample/addressBook/person/1</us>
-       
&amp;<ua>addressBookUri</ua>=<us>http://sample/addressBook</us>&amp;<ua>birthDate</ua>=<us>1946-08-12T00:00:00Z</us>
-               </p>
-               <p>
-                       Another useful feature is the {@link 
org.apache.juneau.annotation.Bean#propertyNamer() @Bean.propertyNamer()} 
annotation that 
-                       allows you to plug in your own logic for determining 
bean property names.
-                       <br>The {@link org.apache.juneau.PropertyNamerDLC} is 
an example of an alternate property namer.
-                       It converts bean property names to lowercase-dashed 
format.
-               </p>
-               
-               <h5 class='figure'>Example:</h5>
-               <p class='bcode'>       
-       <ja>@Bean</ja>(propertyNamer=PropertyNamerDLC.<jk>class</jk>)
-       <jk>public class</jk> Person {
-               ...
-               </p>
-               
-               <h5 class='figure'>Results</h5>
-               <p class='bcode'>
-       
(<ua>id</ua>=<un>1</us>,<ua>name</ua>=<us>'John+Smith'</us>,<ua>uri</ua>=<us>http://sample/addressBook/person/1</us>,
-       
<ua>address-book-uri</ua>=<us>http://sample/addressBook</us>,<ua>birth-date</ua>=<us>1946-08-12T00:00:00Z</us>)
-               </p>
-       </div>
-       
-               
-       <!-- 
========================================================================================================
 -->
        <a id="Collections"></a>
        <h3 class='topic' onclick='toggle(this)'>2.2 - Collections</h3>
        <div class='topic'>
@@ -627,76 +530,6 @@
 
 
        <!-- 
========================================================================================================
 -->
-       <a id="Recursion"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.3 - Non-tree models and 
recursion detection</h3>
-       <div class='topic'>
-               <p>
-                       The URL-encoding serializer is designed to be used 
against POJO tree structures.
-                       It expects that there not be loops in the POJO model 
(e.g. children with references to parents, etc...).
-                       <br>If you try to serialize models with loops, you will 
usually cause a <code>StackOverflowError</code> to 
-                       be thrown (if {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
-                       first).
-               </p>
-               <p>
-                       If you still want to use the URL-encoding serializer on 
such models, Juneau provides the 
-                       {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
-                       <br>It tells the serializer to look for instances of an 
object in the current branch of the tree and skip 
-                       serialization when a duplicate is encountered.
-               </p>
-               <p>
-                       For example, let's make a POJO model out of the 
following classes:
-               </p>
-               <p class='bcode'>
-       <jk>public class</jk> A {
-               <jk>public</jk> B b;
-       }
-       
-       <jk>public class</jk> B {
-               <jk>public</jk> C c;
-       }
-       
-       <jk>public class</jk> C {
-               <jk>public</jk> A a;
-       }
-               </p>
-               <p>
-                       Now we create a model with a loop and serialize the 
results.
-               </p>
-               <p class='bcode'>
-       <jc>// Clone an existing serializer and set property for detecting 
recursions.</jc>
-       UrlEncodingSerializer s = 
UrlEncodingSerializer.<jsf>DEFAULT_READABLE</jsf>.builder()
-               .detectRecursions(<jk>true</jk>).build();
-
-       <jc>// Create a recursive loop.</jc>
-       A a = <jk>new</jk> A();
-       a.<jf>b</jf> = <jk>new</jk> B();
-       a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
-       a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
-       
-       <jc>// Serialize.</jc>
-       String json = s.serialize(a);
-               </p>
-               <p>
-                       What we end up with is the following, which does not 
serialize the contents of the <code>c</code> field:
-               </p>
-               <p class='bcode'>
-       (
-               <ua>b</ua>=(
-                       <ua>c</ua>=()
-               )
-       )
-               </p>
-               <p>
-                       Without recursion detection enabled, this would cause a 
stack-overflow error.
-               </p>
-               <p>
-                       Recursion detection introduces a performance penalty of 
around 20%.
-                       For this reason the setting is disabled by default.
-               </p>
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="SerializerConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>2.4 - Configurable 
properties</h3>
        <div class='topic'>
@@ -855,121 +688,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="GenericParsing"></a>
-       <h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic 
POJO models</h3>
-       <div class='topic'>
-               <p>
-                       The URL-encoding parser is not limited to parsing back 
into the original bean classes.
-                       <br>If the bean classes are not available on the 
parsing side, the parser can also be used to parse into a 
-                       generic model consisting of <code>Maps</code>, 
<code>Collections</code>, and primitive objects.
-               </p>
-               <p>
-                       You can parse into any <code>Map</code> type (e.g. 
<code>HashMap</code>, <code>TreeMap</code>), but
-                       using {@link org.apache.juneau.ObjectMap} is 
recommended since it has many convenience methods
-                       for converting values to various types.
-                       <br>The same is true when parsing collections.  
-                       You can use any Collection (e.g. <code>HashSet</code>, 
<code>LinkedList</code>)
-                       or array (e.g. <code>Object[]</code>, 
<code>String[]</code>, <code>String[][]</code>), but using 
-                       {@link org.apache.juneau.ObjectList} is recommended.
-               </p>
-               <p>
-                       When the map or list type is not specified, or is the 
abstract <code>Map</code>, <code>Collection</code>, 
-                       or <code>List</code> types, the parser will use 
<code>ObjectMap</code> and <code>ObjectList</code> by default.
-               </p>
-               <p>
-                       Starting back with our original URL-encoded string:
-               </p>
-               <p class='bcode'>
-       (
-               <ua>id</ua>=<un>1</un>, 
-               <ua>name</ua>=<us>'John+Smith'</us>, 
-               <ua>uri</ua>=<us>http://sample/addressBook/person/1</us>, 
-               <ua>addressBookUri</ua>=<us>http://sample/addressBook</us>,
-               <ua>birthDate</ua>=<us>1946-08-12T00:00:00Z</us>,
-               <ua>addresses</ua>=@(
-                       (
-                               
<ua>uri</ua>=<us>http://sample/addressBook/address/1</us>, 
-                               
<ua>personUri</ua>=<us>http://sample/addressBook/person/1</us>, 
-                               <ua>id</ua>=<un>1</un>, 
-                               <ua>street</ua>=<us>'100+Main+Street'</us>, 
-                               <ua>city</ua>=<us>Anywhereville</us>, 
-                               <ua>state</ua>=<us>NY</us>, 
-                               <ua>zip</ua>=<un>12345</un>, 
-                               <ua>isCurrent</ua>=<uk>true</uk>
-                       )
-               )
-       )
-               </p>
-               <p>
-                       We can parse this into a generic <code>ObjectMap</code>:
-               </p>
-               <p class='bcode'>       
-       <jc>// Parse URL-encoded string into a generic POJO model.</jc>
-       ObjectMap m = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Convert it back to JSON.</jc>
-       String json = 
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m);
-               </p>
-               <p>
-                       What we end up with is the exact same output.
-                       <br>Even the numbers and booleans are preserved because 
they are parsed into <code>Number</code> and 
-                       <code>Boolean</code> objects when parsing into generic 
models.
-               </p>
-               <p class='bcode'>
-       {
-               id: <un>1</un>, 
-               name: <js>'John Smith'</js>, 
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               addressBookUri: <js>'http://sample/addressBook'</js>, 
-               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-               addresses: [
-                       {
-                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
-                               personUri: 
<js>'http://sample/addressBook/person/1'</js>, 
-                               id: <un>1</un>, 
-                               street: <js>'100 Main Street'</js>, 
-                               city: <js>'Anywhereville'</js>, 
-                               state: <js>'NY'</js>, 
-                               zip: <un>12345</un>, 
-                               isCurrent: <jk>true</jk>
-                       }
-               ]
-       }
-               </p>
-               <p>
-                       Once parsed into a generic model, various convenience 
methods are provided on the <code>ObjectMap</code>
-                       and <code>ObjectList</code> classes to retrieve values:
-               </p>
-               <p class='bcode'>
-       <jc>// Parse URL-encoded string into a generic POJO model.</jc>
-       ObjectMap m = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Get some simple values.</jc>
-       String name = m.getString(<js>"name"</js>);
-       <jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-       <jc>// Get a value convertable from a String.</jc>
-       URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-       <jc>// Get a value using a transform.</jc>
-       CalendarSwap transform = <jk>new</jk> CalendarSwap.ISO8601DTZ();
-       Calendar birthDate = m.get(transform, <js>"birthDate"</js>);
-
-       <jc>// Get the addresses.</jc>
-       ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-       <jc>// Get the first address and convert it to a bean.</jc>
-       Address address = addresses.get(Address.<jk>class</jk>, 0);
-               </p>
-
-               <p>
-                       As a general rule, parsing into beans is often more 
efficient than parsing into generic models.
-                       <br>And working with beans is often less error prone 
than working with generic models.
-               </p>            
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="ParserConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>3.2 - Configurable 
properties</h3>
        <div class='topic'>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/package.html
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/package.html
index 11b216c..721625a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/package.html
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/package.html
@@ -63,15 +63,12 @@
        </ol>
        <li><p><a class='doclink' 
href='#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer 
classes</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                <li><p><a class='doclink' 
href='#Collections'>Collections</a></p>
-               <li><p><a class='doclink' href='#Recursion'> Non-tree models 
and recursion detection</a></p>
                <li><p><a class='doclink' 
href='#SerializerConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#SerializerOtherNotes'>Other 
notes</a></p>
        </ol>
        <li><p><a class='doclink' href='#UrlEncodingParser'>UrlEncodingParser 
and UonParser classes</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#GenericParsing'>Parsing into 
generic POJO models</a></p>
                <li><p><a class='doclink' 
href='#ParserConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#ParserOtherNotes'>Other 
notes</a></p>
        </ol>
@@ -428,101 +425,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="BeanAnnotations"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.1 - @Bean and @BeanProperty 
annotations</h3>
-       <div class='topic'>
-               <p>
-                       The {@link org.apache.juneau.annotation.Bean @Bean} and 
{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 
-                       annotations are used to customize the behavior of beans 
across the entire framework.
-                       <br>They have various uses:
-               </p>
-               <ul>
-                       <li>Hiding bean properties.
-                       <li>Specifying the ordering of bean properties.
-                       <li>Overriding the names of bean properties.
-                       <li>Associating transforms at both the class and 
property level (to convert non-serializable POJOs to 
-                               serializable forms).
-               </ul>
-               <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a transform with it to transform
-                       it to an ISO8601 date-time string in GMT time.
-                       <br>We'll also add a couple of <code>URI</code> 
properties.
-                       <br>By default, <code>Calendars</code> are treated as 
beans by the framework, which is usually not how you want 
-                       them serialized.
-                       <br>Using transforms, we can convert them to 
standardized string forms.
-               </p>
-               <p class='bcode'>       
-       <jk>public class</jk> Person {
-               <jc>// Bean properties</jc>
-               <jk>public int</jk> <jf>id</jf>;
-               <jk>public</jk> String <jf>name</jf>;
-               <jk>public</jk> URI <jf>uri</jf>;
-               <jk>public</jk> URI <jf>addressBookUri</jf>;
-
-               
<ja>@BeanProperty</ja>(swap=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar <jf>birthDate</jf>;
-
-               <jc>// Bean constructor (needed by parser)</jc>
-               <jk>public</jk> Person() {}
-
-               <jc>// Normal constructor</jc>
-               <jk>public</jk> Person(<jk>int</jk> id, String name, String 
uri, String addressBookUri, String birthDate) 
-                               <jk>throws</jk> Exception {
-                       <jk>this</jk>.<jf>id</jf> = id;
-                       <jk>this</jk>.<jf>name</jf> = name;
-                       <jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
-                       <jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk> 
URI(addressBookUri);
-                       <jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> 
GregorianCalendar();
-                       <jk>this</jk>.<jf>birthDate</jf>
-                               
.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>)
-                               .parse(birthDate));
-               }
-       }
-               </p>
-               <p>
-                       Next, we alter our code to pass in the birthdate:
-               </p>
-               <p class='bcode'>
-       <jc>// Create our bean.</jc>
-       Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, 
<js>"http://sample/addressBook/person/1";</js>, 
-               <js>"http://sample/addressBook";</js>, <js>"Aug 12, 1946"</js>);
-               </p>
-               <p>
-                       Now when we rerun the sample code, we'll get the 
following:
-               </p>
-               <p class='bcode'>
-       
(<ua>id</ua>=<un>1</un>,<ua>name</ua>=<us>'John+Smith'</us>,<ua>uri</ua>=<us>http://sample/addressBook/person/1</us>,
-               
<ua>addressBookUri</ua>=<us>http://sample/addressBook</us>,<ua>birthDate</ua>=<us>1946-08-12T00:00:00Z</us>)
-               </p>
-               <p>
-                       Using <code>UrlEncodingSerializer</code> instead would 
create the following:
-               </p>
-               <p class='bcode'>
-       
<ua>id</ua>=<un>1</un>&amp;<ua>name</ua>=<us>'John+Smith'</us>&amp;<ua>uri</ua>=<us>http://sample/addressBook/person/1</us>
-       
&amp;<ua>addressBookUri</ua>=<us>http://sample/addressBook</us>&amp;<ua>birthDate</ua>=<us>1946-08-12T00:00:00Z</us>
-               </p>
-               <p>
-                       Another useful feature is the {@link 
org.apache.juneau.annotation.Bean#propertyNamer() @Bean.propertyNamer()} 
annotation that 
-                       allows you to plug in your own logic for determining 
bean property names.
-                       <br>The {@link org.apache.juneau.PropertyNamerDLC} is 
an example of an alternate property namer.
-                       It converts bean property names to lowercase-dashed 
format.
-               </p>
-               
-               <h5 class='figure'>Example:</h5>
-               <p class='bcode'>       
-       <ja>@Bean</ja>(propertyNamer=PropertyNamerDLC.<jk>class</jk>)
-       <jk>public class</jk> Person {
-               ...
-               </p>
-               
-               <h5 class='figure'>Results</h5>
-               <p class='bcode'>
-       
(<ua>id</ua>=<un>1</us>,<ua>name</ua>=<us>'John+Smith'</us>,<ua>uri</ua>=<us>http://sample/addressBook/person/1</us>,
-               
<ua>address-book-uri</ua>=<us>http://sample/addressBook</us>,<ua>birth-date</ua>=<us>1946-08-12T00:00:00Z</us>)
-               </p>
-       </div>
-       
-               
-       <!-- 
========================================================================================================
 -->
        <a id="Collections"></a>
        <h3 class='topic' onclick='toggle(this)'>2.2 - Collections</h3>
        <div class='topic'>
@@ -628,75 +530,6 @@
 
 
        <!-- 
========================================================================================================
 -->
-       <a id="Recursion"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.3 - Non-tree models and 
recursion detection</h3>
-       <div class='topic'>
-               <p>
-                       The URL-encoding serializer is designed to be used 
against POJO tree structures.
-                       <br>It expects that there not be loops in the POJO 
model (e.g. children with references to parents, etc...).
-                       <br>If you try to serialize models with loops, you will 
usually cause a <code>StackOverflowError</code> to 
-                       be thrown (if {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
first).
-               </p>
-               <p>
-                       If you still want to use the URL-encoding serializer on 
such models, Juneau provides the 
-                       {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
-                       <br>It tells the serializer to look for instances of an 
object in the current branch of the tree and
-                       skip serialization when a duplicate is encountered.
-               </p>
-               <p>
-                       For example, let's make a POJO model out of the 
following classes:
-               </p>
-               <p class='bcode'>
-       <jk>public class</jk> A {
-               <jk>public</jk> B b;
-       }
-       
-       <jk>public class</jk> B {
-               <jk>public</jk> C c;
-       }
-       
-       <jk>public class</jk> C {
-               <jk>public</jk> A a;
-       }
-               </p>
-               <p>
-                       Now we create a model with a loop and serialize the 
results.
-               </p>
-               <p class='bcode'>
-       <jc>// Clone an existing serializer and set property for detecting 
recursions.</jc>
-       UrlEncodingSerializer s = 
UrlEncodingSerializer.<jsf>DEFAULT_READABLE</jsf>.builder()
-               .detectRecursions(<jk>true</jk>).build();
-
-       <jc>// Create a recursive loop.</jc>
-       A a = <jk>new</jk> A();
-       a.<jf>b</jf> = <jk>new</jk> B();
-       a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
-       a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
-       
-       <jc>// Serialize.</jc>
-       String json = s.serialize(a);
-               </p>
-               <p>
-                       What we end up with is the following, which does not 
serialize the contents of the <code>c</code> field:
-               </p>
-               <p class='bcode'>
-       (
-               <ua>b</ua>=(
-                       <ua>c</ua>=()
-               )
-       )
-               </p>
-               <p>
-                       Without recursion detection enabled, this would cause a 
stack-overflow error.
-               </p>
-               <p>
-                       Recursion detection introduces a performance penalty of 
around 20%.
-                       <br>For this reason the setting is disabled by default.
-               </p>
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="SerializerConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>2.4 - Configurable 
properties</h3>
        <div class='topic'>
@@ -857,121 +690,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="GenericParsing"></a>
-       <h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic 
POJO models</h3>
-       <div class='topic'>
-               <p>
-                       The URL-encoding parser is not limited to parsing back 
into the original bean classes.
-                       <br>If the bean classes are not available on the 
parsing side, the parser can also be used to parse into a 
-                       generic model consisting of <code>Maps</code>, 
<code>Collections</code>, and primitive objects.
-               </p>
-               <p>
-                       You can parse into any <code>Map</code> type (e.g. 
<code>HashMap</code>, <code>TreeMap</code>), but
-                       using {@link org.apache.juneau.ObjectMap} is 
recommended since it has many convenience methods
-                       for converting values to various types.
-                       <br>The same is true when parsing collections.  You can 
use any Collection (e.g. <code>HashSet</code>, 
-                       <code>LinkedList</code>) or array (e.g. 
<code>Object[]</code>, <code>String[]</code>, 
-                       <code>String[][]</code>), but using {@link 
org.apache.juneau.ObjectList} is recommended.
-               </p>
-               <p>
-                       When the map or list type is not specified, or is the 
abstract <code>Map</code>, <code>Collection</code>, 
-                       or <code>List</code> types, the parser will use 
<code>ObjectMap</code> and <code>ObjectList</code> by 
-                       default.
-               </p>
-               <p>
-                       Starting back with our original URL-encoded string:
-               </p>
-               <p class='bcode'>
-       (
-               <ua>id</ua>=<un>1</un>, 
-               <ua>name</ua>=<us>'John+Smith'</us>, 
-               <ua>uri</ua>=<us>http://sample/addressBook/person/1</us>, 
-               <ua>addressBookUri</ua>=<us>http://sample/addressBook</us>,
-               <ua>birthDate</ua>=<us>1946-08-12T00:00:00Z</us>,
-               <ua>addresses</ua>=@(
-                       (
-                               
<ua>uri</ua>=<us>http://sample/addressBook/address/1</us>, 
-                               
<ua>personUri</ua>=<us>http://sample/addressBook/person/1</us>, 
-                               <ua>id</ua>=<un>1</un>, 
-                               <ua>street</ua>=<us>'100+Main+Street'</us>, 
-                               <ua>city</ua>=<us>Anywhereville</us>, 
-                               <ua>state</ua>=<us>NY</us>, 
-                               <ua>zip</ua>=<un>12345</un>, 
-                               <ua>isCurrent</ua>=<uk>true</uk>
-                       )
-               )
-       )
-               </p>
-               <p>
-                       We can parse this into a generic <code>ObjectMap</code>:
-               </p>
-               <p class='bcode'>       
-       <jc>// Parse URL-encoded string into a generic POJO model.</jc>
-       ObjectMap m = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Convert it back to JSON.</jc>
-       String json = 
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m);
-               </p>
-               <p>
-                       What we end up with is the exact same output.
-                       <br>Even the numbers and booleans are preserved because 
they are parsed into <code>Number</code> and 
-                       <code>Boolean</code> objects when parsing into generic 
models.
-               </p>
-               <p class='bcode'>
-       {
-               id: <un>1</un>, 
-               name: <js>'John Smith'</js>, 
-               uri: <js>'http://sample/addressBook/person/1'</js>, 
-               addressBookUri: <js>'http://sample/addressBook'</js>, 
-               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-               addresses: [
-                       {
-                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
-                               personUri: 
<js>'http://sample/addressBook/person/1'</js>, 
-                               id: <un>1</un>, 
-                               street: <js>'100 Main Street'</js>, 
-                               city: <js>'Anywhereville'</js>, 
-                               state: <js>'NY'</js>, 
-                               zip: <un>12345</un>, 
-                               isCurrent: <jk>true</jk>
-                       }
-               ]
-       }
-               </p>
-               <p>
-                       Once parsed into a generic model, various convenience 
methods are provided on the <code>ObjectMap</code>
-                               and <code>ObjectList</code> classes to retrieve 
values:
-               </p>
-               <p class='bcode'>
-       <jc>// Parse URL-encoded string into a generic POJO model.</jc>
-       ObjectMap m = UonParser.<jsf>DEFAULT</jsf>.parse(urlencoded, 
ObjectMap.<jk>class</jk>);
-
-       <jc>// Get some simple values.</jc>
-       String name = m.getString(<js>"name"</js>);
-       <jk>int</jk> id = m.getInt(<js>"id"</js>);
-
-       <jc>// Get a value convertable from a String.</jc>
-       URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
-
-       <jc>// Get a value using a transform.</jc>
-       CalendarSwap transform = <jk>new</jk> CalendarSwap.ISO8601DTZ();
-       Calendar birthDate = m.get(transform, <js>"birthDate"</js>);
-
-       <jc>// Get the addresses.</jc>
-       ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
-
-       <jc>// Get the first address and convert it to a bean.</jc>
-       Address address = addresses.get(Address.<jk>class</jk>, 0);
-               </p>
-
-               <p>
-                       As a general rule, parsing into beans is often more 
efficient than parsing into generic models.
-                       <br>And working with beans is often less error prone 
than working with generic models.
-               </p>            
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="ParserConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>3.2 - Configurable 
properties</h3>
        <div class='topic'>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
index 1d2df4e..6649d97 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
@@ -74,16 +74,13 @@
                <ol>
                        <li><p><a class='doclink' 
href='#AutoDetectNamespaces'>Auto-detection of namespaces</a></p>
                </ol>
-               <li><p><a class='doclink' href='#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                <li><p><a class='doclink' 
href='#Collections'>Collections</a></p>
                <li><p><a class='doclink' href='#XmlSchemaSupport'>XML-Schema 
support</a></p>
-               <li><p><a class='doclink' href='#Recursion'> Non-tree models 
and recursion detection</a></p>
                <li><p><a class='doclink' 
href='#SerializerConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#SerializerOtherNotes'>Other 
notes</a></p>
        </ol>
        <li><p><a class='doclink' href='#XmlParser'>XmlParser class</a></p> 
        <ol>
-               <li><p><a class='doclink' href='#GenericParsing'>Parsing into 
generic POJO models</a></p>
                <li><p><a class='doclink' 
href='#ParserConfigurableProperties'>Configurable properties</a></p>
                <li><p><a class='doclink' href='#ParserOtherNotes'>Other 
notes</a></p>
        </ol>
@@ -2180,105 +2177,6 @@
                
        </div>
        
-       <!-- 
========================================================================================================
 -->
-       <a id="BeanAnnotations"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.4 - @Bean and @BeanProperty 
annotations</h3>
-       <div class='topic'>
-               <p>
-                       The {@link org.apache.juneau.annotation.Bean @Bean} and 
{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 
-                       annotations are used to customize the behavior of beans 
across the entire framework.
-                       <br>In addition to using them to identify the resource 
URI for the bean shown above, they have various other 
-                       uses:
-               </p>
-               <ul class='spaced-list'>
-                       <li>
-                               Hiding bean properties.
-                       <li>
-                               Specifying the ordering of bean properties.
-                       <li>
-                               Overriding the names of bean properties.
-                       <li>
-                               Associating transforms at both the class and 
property level (to convert non-serializable POJOs to 
-                               serializable forms).
-               </ul>
-               <p>
-                       For example, we now add a <code>birthDate</code> 
property, and associate a transform with it to transform
-                       it to an ISO8601 date-time string in GMT time.
-                       <br>By default, <code>Calendars</code> are treated as 
beans by the framework, which is usually not how you want 
-                       them serialized.
-                       <br>Using transforms, we can convert them to 
standardized string forms.
-               </p>
-               <p class='bcode'>       
-       <ja>@Xml</ja>(prefix=<js>"per"</js>)
-       <ja>@Bean</ja>(typeName=<js>"person"</js>)
-       <jk>public class</jk> Person {
-               
-               <jc>// Bean properties</jc>
-               
<ja>@BeanProperty</ja>(swap=CalendarSwap.ISO8601DTZ.<jk>class</jk>) 
<jk>public</jk> Calendar birthDate;
-               ...
-               
-               <jc>// Normal constructor</jc>
-               <jk>public</jk> Person(<jk>int</jk> id, String name, String 
uri, String addressBookUri, String birthDate) 
-                               <jk>throws</jk> Exception {
-                       ...
-                       <jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk> 
GregorianCalendar();
-                       <jk>this</jk>.<jf>birthDate</jf>
-                               
.setTime(DateFormat.<jsm>getDateInstance</jsm>(DateFormat.<jsf>MEDIUM</jsf>)
-                               .parse(birthDate));
-               }
-       }
-               </p>
-               <p>
-                       Next, we alter our code to pass in the birthdate:
-               </p>
-               <p class='bcode'>
-       <jc>// Create our bean.</jc>
-       Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, 
<js>"http://sample/addressBook/person/1";</js>, 
-               <js>"http://sample/addressBook";</js>, <js>"Aug 12, 1946"</js>);
-               </p>
-               <p>
-                       Now when we rerun the sample code, we'll get the 
following:
-               </p>
-               <p class='bcode'>
-       <xt>&lt;per:person</xt> 
-                       
<xa>xmlns</xa>=<xs>'http://www.apache.org/2013/Juneau'</xs> 
-                       
<xa>xmlns:per</xa>=<xs>'http://www.apache.org/person/'</xs> 
-                       
<xa>uri</xa>=<xs>'http://sample/addressBook/person/1'</xs><xt>&gt;</xt>
-               <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-               <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-               
<xt>&lt;per:addressBookUri&gt;</xt>http://sample/addressBook<xt>&lt;/per:addressBookUri&gt;</xt>
-               
<xt>&lt;per:birthDate&gt;</xt>1946-08-12T00:00:00Z<xt>&lt;/per:birthDate&gt;</xt>
-       <xt>&lt;/per:person&gt;</xt>
-               </p>
-               <p>
-                       Another useful feature is the {@link 
org.apache.juneau.annotation.Bean#propertyNamer() @Bean.propertyNamer()} 
annotation that 
-                       allows you to plug in your own logic for determining 
bean property names.
-                       <br>The {@link org.apache.juneau.PropertyNamerDLC} is 
an example of an alternate property namer.
-                       It converts bean property names to lowercase-dashed 
format.
-               </p>
-               
-               <h5 class='figure'>Example</h5>
-               <p class='bcode'>       
-       <ja>@Xml</ja>(prefix=<js>"per"</js>)
-       
<ja>@Bean</ja>(typeName=<js>"person"</js>,propertyNamer=PropertyNamerDLC.<jk>class</jk>)
-       <jk>public class</jk> Person {
-               ...
-               </p>
-               
-               <h5 class='figure'>Results</h5>
-               <p class='bcode'>
-       <xt>&lt;per:person</xt> 
-                       
<xa>xmlns</xa>=<xs>'http://www.apache.org/2013/Juneau'</xs> 
-                       
<xa>xmlns:per</xa>=<xs>'http://www.apache.org/person/'</xs> 
-                       
<xa>uri</xa>=<xs>'http://sample/addressBook/person/1'</xs><xt>&gt;</xt>
-               <xt>&lt;per:id&gt;</xt>1<xt>&lt;/per:id&gt;</xt>
-               <xt>&lt;per:name&gt;</xt>John Smith<xt>&lt;/per:name&gt;</xt>
-               
<xt>&lt;per:address-book-uri&gt;</xt>http://sample/addressBook<xt>&lt;/per:address-book-uri&gt;</xt>
-               
<xt>&lt;per:birth-date&gt;</xt>1946-08-12T04:00:00Z<xt>&lt;/per:birth-date&gt;</xt>
-       <xt>&lt;/per:person&gt;</xt>
-               </p>
-       </div>
-       
                
        <!-- 
========================================================================================================
 -->
        <a id="Collections"></a>
@@ -2702,81 +2600,6 @@
 
 
        <!-- 
========================================================================================================
 -->
-       <a id="Recursion"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.7 - Non-tree models and 
recursion detection</h3>
-       <div class='topic'>
-               <p>
-                       The XML serializer is designed to be used against POJO 
tree structures. 
-                       <br>It expects that there not be loops in the POJO 
model (e.g. children with references to parents, etc...).
-                       <br>If you try to serialize models with loops, you will 
usually cause a <code>StackOverflowError</code> to 
-                       be thrown (if {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
-                       first).
-               </p>
-               <p>
-                       If you still want to use the XML serializer on such 
models, Juneau provides the 
-                       {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
-                       <br>It tells the serializer to look for instances of an 
object in the current branch of the tree and skip 
-                       serialization when a duplicate is encountered.
-               </p>
-               <p>
-                       For example, let's make a POJO model out of the 
following classes:
-               </p>
-               <p class='bcode'>
-       <ja>@Bean</ja>(typeName=<js>"a"</js>)
-       <jk>public class</jk> A {
-               <jk>public</jk> B b;
-       }
-       
-       <jk>public class</jk> B {
-               <jk>public</jk> C c;
-       }
-       
-       <jk>public class</jk> C {
-               <jk>public</jk> A a;
-       }
-               </p>
-               <p>
-                       Now we create a model with a loop and serialize the 
results.
-               </p>
-               <p class='bcode'>
-       <jc>// Create a new serializer with readable output.</jc>
-       XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
-               .ws()
-               .sq()
-               .ns()
-               .detectRecursions(<jk>true</jk>)
-               .build();
-
-       <jc>// Create a recursive loop.</jc>
-       A a = <jk>new</jk> A();
-       a.<jf>b</jf> = <jk>new</jk> B();
-       a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
-       a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
-       
-       <jc>// Serialize to XML.</jc>
-       String xml = s.serialize(a);
-               </p>
-               <p>
-                       What we end up with is the following, which does not 
serialize the contents of the <code>c</code> field:
-               </p>
-               <p class='bcode'>
-       <xt>&lt;a&gt;</xt>
-               <xt>&lt;b&gt;</xt>
-                       <xt>&lt;c/&gt;</xt>
-               <xt>&lt;/b&gt;</xt>
-       <xt>&lt;/a&gt;</xt>             
-               </p>
-               <p>
-                       Without recursion detection enabled, this would cause a 
stack-overflow error.
-               </p>
-               <p>
-                       Recursion detection introduces a performance penalty of 
around 20%.
-                       <br>For this reason the setting is disabled by default.
-               </p>
-       </div>
-
-
-       <!-- 
========================================================================================================
 -->
        <a id="SerializerConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>2.8 - Configurable 
properties</h3>
        <div class='topic'>
@@ -2908,31 +2731,6 @@
        
 
        <!-- 
========================================================================================================
 -->
-       <a id="GenericParsing"></a>
-       <h3 class='topic' onclick='toggle(this)'>3.1 - Parsing into generic 
POJO models</h3>
-       <div class='topic'>
-               <p>
-                       The XML parser is not limited to parsing back into the 
original bean classes.
-                       <br>If the bean classes are not available on the 
parsing side, the parser can also be used to parse into a 
-                       generic model consisting of <code>Maps</code>, 
<code>Collections</code>, and primitive objects.
-               </p>
-               <p>
-                       You can parse into any <code>Map</code> type (e.g. 
<code>HashMap</code>, <code>TreeMap</code>), but
-                       using {@link org.apache.juneau.ObjectMap} is 
recommended since it has many convenience methods
-                       for converting values to various types.
-                       <br>The same is true when parsing collections.  You can 
use any Collection (e.g. <code>HashSet</code>, 
-                       <code>LinkedList</code>) or array (e.g. 
<code>Object[]</code>, <code>String[]</code>, 
-                       <code>String[][]</code>), but using {@link 
org.apache.juneau.ObjectList} is recommended.
-               </p>
-               <p>
-                       When the map or list type is not specified, or is the 
abstract <code>Map</code>, <code>Collection</code>, 
-                       or <code>List</code> types, the parser will use 
<code>ObjectMap</code> and <code>ObjectList</code> by 
-                       default.
-               </p>
-       </div>
-       
-
-       <!-- 
========================================================================================================
 -->
        <a id="ParserConfigurableProperties"></a>
        <h3 class='topic' onclick='toggle(this)'>3.2 - Configurable 
properties</h3>
        <div class='topic'>
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index e89e16a..61a869f 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -115,19 +115,70 @@
                        <li><p><a class='doclink' 
href='#juneau-marshall.BeanSubTypes'>Bean Subtypes</a></p>
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.VirtualBeans'>Virtual Beans</a></p>
+               <li><p><a class='doclink' 
href='#juneau-marshall.Recursion'>Non-Tree Models and Recursion 
Detection</a></p>
+               <li><p><a class='doclink' 
href='#juneau-marshall.ParsingIntoGenericModels'>Parsing into Generic 
Models</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.ReadingContinuousStreams'>Reading Continuous 
Streams</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.JacksonComparison'>Comparison with Jackson</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.PojoCategories'>POJO Categories</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.BestPractices'>Best Practices</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails'>JSON Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.Methodology'>JSON Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.Serializers'>Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.Parsers'>Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.ConfigurableProperties'>Configurable 
Properties</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonAnnotation'>@Json Annotation</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonSchema'>JSON-Schema Support</a></p>
+               </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails'>XML Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Methodology'>XML Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Serializers'>Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Parsers'>Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.ConfigurableProperties'>Configurable 
Properties</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlAnnotation'>@Xml Annotation</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Namespaces'>Namespaces</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlSchema'>XML-Schema Support</a></p>
+               </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails'>HTML Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.Methodology'>HTML Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.Serializers'>Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.Parsers'>Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.ConfigurableProperties'>Configurable 
Properties</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlAnnotation'>@Html Annotation</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlSchema'>HTML-Schema Support</a></p>
+               </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails'>UON Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.Methodology'>UON Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.Serializers'>Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.Parsers'>Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.ConfigurableProperties'>Configurable 
Properties</a></p>
+               </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails'>URL-Encoding Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.Methodology'>URL-Encoding 
Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.Serializers'>Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.Parsers'>Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.ConfigurableProperties'>Configurable 
Properties</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>@UrlEncoding 
Annotation</a></p>
+               </ol>
        </ol>
        <li><p class='toc2'><a class='doclink' 
href='#juneau-marshall-rdf'><i>juneau-marshall-rdf</i></a></p>
        <ol>
                <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails'>RDF Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.RdfDetails.Methodology'>RDF Methodology</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.Serializers'>Serializers</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.Parsers'>Parsers</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.ConfigurableProperties'>Configurable 
Properties</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.RdfAnnotation'>@Rdf Annotation</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.Namespaces'>Namespaces</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.UriProperties'>URI Properties</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.RootProperty'>Root Property</a></p>
+                       <li><p><a class='doclink' 
href='juneau-marshall-rdf.RdfDetails.TypedLiterals'>Typed Literals</a></p>
+               </ol>
        </ol>
        <li><p class='toc2'><a class='doclink' 
href='#juneau-dto'><i>juneau-dto</i></a></p>
        <ol>
@@ -3195,12 +3246,196 @@
                </p>
        </div>
 
+       <!-- 
========================================================================================================
 -->
+       <a id="juneau-marshall.Recursion"></a>
+       <h3 class='topic' onclick='toggle(this)'>2.10 - Non-Tree Models and 
Recursion Detection</h3>
+       <div class='topic'>
+               <p>
+                       The Juneau Serializer API is designed to be used 
against POJO tree structures. 
+                       <br>It expects that there not be loops in the POJO 
model (e.g. children with references to parents, etc...).
+                       <br>If you try to serialize models with loops, you will 
usually cause a <code>StackOverflowError</code> to 
+                       be thrown (if {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth} is not reached 
+                       first).
+               </p>
+               <p>
+                       If you still want to use the Juneau serializers on such 
models, Juneau provides the 
+                       {@link 
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions} setting.
+                       <br>It tells the serializer to look for instances of an 
object in the current branch of the tree and skip 
+                       serialization when a duplicate is encountered.
+               </p>
+               <p>
+                       For example, let's make a POJO model out of the 
following classes:
+               </p>
+               <p class='bcode'>
+       <jk>public class</jk> A {
+               <jk>public</jk> B b;
+       }
+       
+       <jk>public class</jk> B {
+               <jk>public</jk> C c;
+       }
+       
+       <jk>public class</jk> C {
+               <jk>public</jk> A a;
+       }
+               </p>
+               <p>
+                       Now we create a model with a loop and serialize the 
results.
+               </p>
+               <p class='bcode'>
+       <jc>// Clone an existing serializer and set property for detecting 
recursions.</jc>
+       JsonSerializer s = 
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.builder().detectRecursions(<jk>true</jk>).build();
+
+       <jc>// Create a recursive loop.</jc>
+       A a = <jk>new</jk> A();
+       a.<jf>b</jf> = <jk>new</jk> B();
+       a.<jf>b</jf>.<jf>c</jf> = <jk>new</jk> C();
+       a.<jf>b</jf>.<jf>c</jf>.<jf>a</jf> = a;
+       
+       <jc>// Serialize to JSON.</jc>
+       String json = s.serialize(a);
+               </p>
+               <p>
+                       What we end up with is the following, which does not 
serialize the contents of the <code>c</code> field:
+               </p>
+               <p class='bcode'>
+       {
+               b: {
+                       c: {
+                       }
+               }
+       }
+               </p>
+               <p>
+                       Without recursion detection enabled, this would cause a 
stack-overflow error.
+               </p>
+               <p>
+                       Recursion detection introduces a performance penalty of 
around 20%.
+                       <br>For this reason the setting is disabled by default.
+               </p>
+       </div>
+
+       <!-- 
========================================================================================================
 -->
+       <a id="juneau-marshall.ParsingIntoGenericModels"></a>
+       <h3 class='topic' onclick='toggle(this)'>2.11 - Parsing into Generic 
Models</h3>
+       <div class='topic'>
+               <p>
+                       The Juneau parsers are not limited to parsing back into 
the original bean classes.
+                       <br>If the bean classes are not available on the 
parsing side, the parser can also be used to 
+                       parse into a generic model consisting of 
<code>Maps</code>, <code>Collections</code>, and primitive
+                       objects.
+               </p>
+               <p>
+                       You can parse into any <code>Map</code> type (e.g. 
<code>HashMap</code>, <code>TreeMap</code>), but
+                       using {@link org.apache.juneau.ObjectMap} is 
recommended since it has many convenience methods
+                       for converting values to various types.
+                       <br>The same is true when parsing collections.  You can 
use any Collection (e.g. <code>HashSet</code>, 
+                       <code>LinkedList</code>) or array (e.g. 
<code>Object[]</code>, <code>String[]</code>, 
+                       <code>String[][]</code>), but using {@link 
org.apache.juneau.ObjectList} is recommended.
+               </p>
+               <p>
+                       When the map or list type is not specified, or is the 
abstract <code>Map</code>, <code>Collection</code>, 
+                       or <code>List</code> types, the parser will use 
<code>ObjectMap</code> and <code>ObjectList</code> by 
+                       default.
+               </p>
+               <p>
+                       Starting back with our original JSON:
+               </p>
+               <p class='bcode'>
+       {
+               id: <jk>1</jk>, 
+               name: <js>'John Smith'</js>, 
+               uri: <js>'http://sample/addressBook/person/1'</js>, 
+               addressBookUri: <js>'http://sample/addressBook'</js>, 
+               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
+               addresses: [
+                       {
+                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
+                               personUri: 
<js>'http://sample/addressBook/person/1'</js>, 
+                               id: <jk>1</jk>, 
+                               street: <js>'100 Main Street'</js>, 
+                               city: <js>'Anywhereville'</js>, 
+                               state: <js>'NY'</js>, 
+                               zip: <jk>12345</jk>, 
+                               isCurrent: <jk>true</jk>
+                       }
+               ]
+       }
+               </p>
+               <p>
+                       We can parse this into a generic <code>ObjectMap</code>:
+               </p>
+               <p class='bcode'>       
+       <jc>// Parse JSON into a generic POJO model.</jc>
+       ObjectMap m = JsonParser.<jsf>DEFAULT</jsf>.parse(json, 
ObjectMap.<jk>class</jk>);
+
+       <jc>// Convert it back to JSON.</jc>
+       String json = 
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(m);
+               </p>
+               <p>
+                       What we end up with is the exact same output.
+                       <br>Even the numbers and booleans are preserved because 
they are parsed into <code>Number</code> and 
+                       <code>Boolean</code> objects when parsing into generic 
models.
+               </p>
+               <p class='bcode'>
+       {
+               id: <jk>1</jk>, 
+               name: <js>'John Smith'</js>, 
+               uri: <js>'http://sample/addressBook/person/1'</js>, 
+               addressBookUri: <js>'http://sample/addressBook'</js>, 
+               birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
+               addresses: [
+                       {
+                               uri: 
<js>'http://sample/addressBook/address/1'</js>, 
+                               personUri: 
<js>'http://sample/addressBook/person/1'</js>, 
+                               id: <jk>1</jk>, 
+                               street: <js>'100 Main Street'</js>, 
+                               city: <js>'Anywhereville'</js>, 
+                               state: <js>'NY'</js>, 
+                               zip: <jk>12345</jk>, 
+                               isCurrent: <jk>true</jk>
+                       }
+               ]
+       }
+               </p>
+               <p>
+                       Once parsed into a generic model, various convenience 
methods are provided on the <code>ObjectMap</code>
+                               and <code>ObjectList</code> classes to retrieve 
values:
+               </p>
+               <p class='bcode'>
+       <jc>// Parse JSON into a generic POJO model.</jc>
+       ObjectMap m = JsonParser.<jsf>DEFAULT</jsf>.parse(json, 
ObjectMap.<jk>class</jk>);
+
+       <jc>// Get some simple values.</jc>
+       String name = m.getString(<js>"name"</js>);
+       <jk>int</jk> id = m.getInt(<js>"id"</js>);
+
+       <jc>// Get a value convertable from a String.</jc>
+       URI uri = m.get(URI.<jk>class</jk>, <js>"uri"</js>);
+
+       <jc>// Get a value using a swap.</jc>
+       CalendarSwap swap = <jk>new</jk> CalendarSwap.ISO8601DTZ();
+       Calendar birthDate = m.get(swap, <js>"birthDate"</js>);
+
+       <jc>// Get the addresses.</jc>
+       ObjectList addresses = m.getObjectList(<js>"addresses"</js>);
+
+       <jc>// Get the first address and convert it to a bean.</jc>
+       Address address = addresses.get(Address.<jk>class</jk>, 0);
+               </p>
+
+               <p>
+                       As a general rule, parsing into beans is often more 
efficient than parsing into generic models.
+                       <br>And working with beans is often less error prone 
than working with generic models.
+               </p>            
+       </div>
+
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.ReadingContinuousStreams"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.10 - Reading Continuous 
Streams</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.12 - Reading Continuous 
Streams</h3>
        <div class='topic'>
                <p>
-                       The following parsers can be configured to read 
continous streams of objects from the same input stream:
+                       The following parsers can be configured to read 
continuous streams of objects from the same input stream:
                </p>
                <ul>
                        <li class='jc'>{@link org.apache.juneau.json.JsonParser}
@@ -3209,7 +3444,7 @@
                </ul>
                <p>
                        The {@link org.apache.juneau.json.JsonParser} and 
{@link org.apache.juneau.uon.UonParser}
-                       classes can read continous streams by using the {@link 
org.apache.juneau.parser.Parser#PARSER_unbuffered}
+                       classes can read continuous streams by using the {@link 
org.apache.juneau.parser.Parser#PARSER_unbuffered}
                        setting.
                        <br>This prevents the parsers from using an internal 
buffer that would read past the end of the currently
                        parsed POJO.
@@ -3249,7 +3484,7 @@
        
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.JacksonComparison"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.11 - Comparison with 
Jackson</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.13 - Comparison with 
Jackson</h3>
        <div class='topic'>
                <p>
                        Juneau was developed independently from Jackson, but 
shares many of the same features and capabilities.
@@ -3362,7 +3597,7 @@
 
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.PojoCategories"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.12 - POJO Categories</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.14 - POJO Categories</h3>
        <div class='topic'>
                <p>
                        The following chart shows POJOs categorized into groups 
and whether they can be serialized or parsed:
@@ -3628,7 +3863,7 @@
 
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.BestPractices"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.13 - Best Practices</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.15 - Best Practices</h3>
        <div class='topic'>
                <ol class='spaced-list'>
                        <li>
@@ -3657,8 +3892,21 @@
 
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.JsonDetails"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.14 - JSON Details</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.16 - JSON Details</h3>
        <div class='topic'>
+               <p>
+                       Juneau supports converting arbitrary POJOs to and from 
JSON using ultra-efficient serializers and parsers.
+                       <br>The JSON serializer converts POJOs directly to JSON 
without the need for intermediate DOM objects using a 
+                       highly-efficient state machine.
+                       <br>Likewise, the JSON parser creates POJOs directly 
from JSON without the need for intermediate DOM objects. 
+               </p>
+               
+               <h5 class='topic'>Prerequisites</h5>
+               <p>
+                       The Juneau JSON serialization and parsing support does 
not require any external prerequisites.  
+                       <br>It only requires Java 1.6 or above.
+               </p>
+               
                <h5 class='toc'>Additional Information - 
org.apache.juneau.json</h5>
                <ol class='toc'>
                        <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#Overview'>JSON support 
overview</a></p> 
@@ -3667,25 +3915,120 @@
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#JsonSerializer'>JsonSerializer
 class</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#Collections'>Collections</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#JsonSchemaSupport'>JSON-Schema
 support</a></p>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#Recursion'> Non-tree models 
and recursion detection</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#SerializerConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#SerializerOtherNotes'>Other 
notes</a></p>
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#JsonParser'>JsonParser 
class</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#GenericParsing'>Parsing into 
generic POJO models</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#ParserConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/json/package-summary.html#ParserOtherNotes'>Other 
notes</a></p>
                        </ol>
                </ol>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.JsonDetails.Methodology"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.16.1 - JSON 
Methodology</h4>
+               <div class='topic'>
+                       <p>
+                               The JSON data type produced depends on the Java 
object type being serialized.
+                       </p>
+                       <ul class='spaced-list'>
+                               <li>
+                                       Primitives and primitive objects are 
converted to JSON primitives.
+                               <li>
+                                       Beans and Maps are converted to JSON 
objects.
+                               <li>
+                                       Collections and arrays are converted to 
JSON arrays.
+                               <li>
+                                       Anything else is converted to JSON 
strings.
+                       </ul>
+                       
+                       <h5 class='topic'>Examples:</h5>
+                       <table class='styled'>
+                               <tr>
+                                       <th>POJO type</th>
+                                       <th>Example</th>
+                                       <th>Serialized form</th>
+                               </tr>
+                               <tr>
+                                       <td>String</td>
+                                       
<td><code>serializer.serialize(<js>"foobar"</js>);</code></td>
+                                       <td><code><js>'foobar'</js></code>
+                               </tr>
+                               <tr>
+                                       <td>Number</td>
+                                       
<td><code>serializer.serialize(123);</code></td>
+                                       <td><code><jk>123</jk></code>
+                               </tr>
+                               <tr>
+                                       <td>Boolean</td>
+                                       
<td><code>serializer.serialize(<jk>true</jk>);</code></td>
+                                       <td><code><jk>true</jk></code>
+                               </tr>
+                               <tr>
+                                       <td>Null</td>
+                                       
<td><code>serializer.serialize(<jk>null</jk>);</code></td>
+                                       <td><code><jk>null</jk></code>
+                               </tr>
+                               <tr>
+                                       <td>Beans with properties of any type 
on this list</td>
+                                       
<td><code>serializer.serialize(<jk>new</jk> MyBean());</code></td>
+                                       
<td><code>{p1:<js>'val1'</js>,p2:<jk>true</jk>}</code>
+                               </tr>
+                               <tr>
+                                       <td>Maps with values of any type on 
this list</td>
+                                       
<td><code>serializer.serialize(<jk>new</jk> TreeMap());</code></td>
+                                       
<td><code>{key1:<js>'val1'</js>,key2:<jk>true</jk>}</code>
+                               </tr>
+                               <tr>
+                                       <td>Collections and arrays of any type 
on this list</td>
+                                       
<td><code>serializer.serialize(<jk>new</jk> 
Object[]{1,<js>"foo"</js>,<jk>true</jk>});</code></td>
+                                       <td><code>[1,'foo',true]</code>
+                               </tr>
+                       </table>
+                       <p>
+                               In addition, swaps can be used to convert 
non-serializable POJOs into serializable forms, such as converting 
+                               <code>Calendar</code> object to ISO8601 
strings, or <code><jk>byte</jk>[]</code> arrays to Base-64 
+                               encoded strings.
+                       </p>
+               </div>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.JsonDetails.Serializers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.16.2 - 
Serializers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.JsonDetails.Parsers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.16.3 - Parsers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.JsonDetails.ConfigurableProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.16.4 - Configurable 
Properties</h4>
+               <div class='topic'>
+               </div>          
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.JsonDetails.JsonAnnotation"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.16.5 - @Json 
Annotation</h4>
+               <div class='topic'>
+               </div>          
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.JsonDetails.JsonSchema"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.16.6 - JSON-Schema 
Support</h4>
+               <div class='topic'>
+               </div>          
        </div>
 
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.XmlDetails"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.15 - XML Details</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.17 - XML Details</h3>
        <div class='topic'>
                <h5 class='toc'>Additional Information - 
org.apache.juneau.xml</h5>
                <ol class='toc'>
@@ -3706,36 +4049,111 @@
                                <ol>
                                        <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#AutoDetectNamespaces'>Auto-detection
 of namespaces</a></p>
                                </ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#Collections'>Collections</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#XmlSchemaSupport'>XML-Schema 
support</a></p>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#Recursion'> Non-tree models 
and recursion detection</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#SerializerConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#SerializerOtherNotes'>Other 
notes</a></p>
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#XmlParser'>XmlParser 
class</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#GenericParsing'>Parsing into 
generic POJO models</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#ParserConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/xml/package-summary.html#ParserOtherNotes'>Other 
notes</a></p>
                        </ol>
                </ol>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.Methodology"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.1 - XML 
Methodology</h4>
+               <div class='topic'>
+               </div>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.Serializers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.2 - 
Serializers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.Parsers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.3 - Parsers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.ConfigurableProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.4 - Configurable 
Properties</h4>
+               <div class='topic'>
+               </div>          
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.XmlAnnotation"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.5 - @Xml 
Annotation</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.Namespaces"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.6- Namespaces</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.XmlDetails.XmlSchema"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.17.7 - XML-Schema 
Support</h4>
+               <div class='topic'>
+               </div>          
        </div>
 
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.HtmlDetails"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.16 - HTML Details</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.18 - HTML Details</h3>
        <div class='topic'>
                <h5 class='toc'>Additional Information - 
org.apache.juneau.html</h5>
                <ol class='toc'>
                        <li><p><a class='doclink' 
href='org/apache/juneau/html/package-summary.html#HtmlSerializer'>HTML 
serialization support</a></p> 
                        <li><p><a class='doclink' 
href='org/apache/juneau/html/package-summary.html#HtmlParser'>HTML parsing 
support</a></p> 
                </ol>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.HtmlDetails.Methodology"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.18.1 - HTML 
Methodology</h4>
+               <div class='topic'>
+               </div>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.HtmlDetails.Serializers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.18.2 - 
Serializers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.HtmlDetails.Parsers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.18.3 - Parsers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.HtmlDetails.ConfigurableProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.18.4 - Configurable 
Properties</h4>
+               <div class='topic'>
+               </div>          
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.HtmlDetails.HtmlAnnotation"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.18.5 - @Html 
Annotation</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.HtmlDetails.HtmlSchema"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.18.6 - HTML-Schema 
Support</h4>
+               <div class='topic'>
+               </div>          
        </div>
 
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.UonDetails"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.17 - UON Details</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.19 - UON Details</h3>
        <div class='topic'>
                <h5 class='toc'>Additional Information - 
org.apache.juneau.uon</h5>
                <ol class='toc'>
@@ -3745,24 +4163,45 @@
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#UrlEncodingSerializer'>UrlEncodingSerializer
 and UonSerializer classes</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#Collections'>Collections</a></p>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#Recursion'> Non-tree models 
and recursion detection</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#SerializerConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#SerializerOtherNotes'>Other 
notes</a></p>
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#UrlEncodingParser'>UrlEncodingParser
 and UonParser classes</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#GenericParsing'>Parsing into 
generic POJO models</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#ParserConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/uon/package-summary.html#ParserOtherNotes'>Other 
notes</a></p>
                        </ol>
                </ol>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UonDetails.Methodology"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.19.1 - UON 
Methodology</h4>
+               <div class='topic'>
+               </div>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UonDetails.Serializers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.19.2 - 
Serializers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UonDetails.Parsers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.19.3 - Parsers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UonDetails.ConfigurableProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.19.4 - Configurable 
Properties</h4>
+               <div class='topic'>
+               </div>          
        </div>
        
        <!-- 
=======================================================================================================
 -->
        <a id="juneau-marshall.UrlEncodingDetails"></a>
-       <h3 class='topic' onclick='toggle(this)'>2.18 - URL-Encoding 
Details</h3>
+       <h3 class='topic' onclick='toggle(this)'>2.20 - URL-Encoding 
Details</h3>
        <div class='topic'>
                <h5 class='toc'>Additional Information - 
org.apache.juneau.urlencoding</h5>
                <ol class='toc'>
@@ -3772,19 +4211,40 @@
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#UrlEncodingSerializer'>UrlEncodingSerializer
 and UonSerializer classes</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#BeanAnnotations'>@Bean 
and @BeanProperty annotations</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#Collections'>Collections</a></p>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#Recursion'> Non-tree 
models and recursion detection</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#SerializerConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#SerializerOtherNotes'>Other
 notes</a></p>
                        </ol>
                        <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#UrlEncodingParser'>UrlEncodingParser
 and UonParser classes</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#GenericParsing'>Parsing
 into generic POJO models</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#ParserConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/urlencoding/package-summary.html#ParserOtherNotes'>Other
 notes</a></p>
                        </ol>
                </ol>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UrlEncodingDetails.Methodology"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.20.1 - URL-Encoding 
Methodology</h4>
+               <div class='topic'>
+               </div>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UrlEncodingDetails.Serializers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.20.2 - 
Serializers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall.UrlEncodingDetails.Parsers"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.20.3 - Parsers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a 
id="juneau-marshall.UrlEncodingDetails.ConfigurableProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>2.20.4 - Configurable 
Properties</h4>
+               <div class='topic'>
+               </div>
        </div>
 </div>
 
@@ -3877,21 +4337,72 @@
                        <ol>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#Namespaces'>Namespaces</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#UriProperties'>URI 
properties</a></p>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#BeanAnnotations'>@Bean and 
@BeanProperty annotations</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#Collections'>Collections</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#RootProperty'>Root 
property</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#TypedLiterals'>Typed 
literals</a></p>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#Recursion'>Non-tree models 
and recursion detection</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#SerializerConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#SerializerOtherNotes'>Other 
notes</a></p>
                        </ol>   
                        <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#RdfParser'>RdfParser 
class</a></p> 
                        <ol>
-                               <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#GenericParsing'>Parsing into 
generic POJO models</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#ParserConfigurableProperties'>Configurable
 properties</a></p>
                                <li><p><a class='doclink' 
href='org/apache/juneau/jena/package-summary.html#ParserOtherNotes'>Other 
notes</a></p>
                        </ol>   
                </ol>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.Methodology"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.1 - RDF 
Methodology</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.Serializers"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.2 - 
Serializers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.Parsers"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.3 - Parsers</h4>
+               <div class='topic'>
+               </div>          
+               
+               <!-- 
=======================================================================================================
 -->
+               <a 
id="juneau-marshall-rdf.RdfDetails.ConfigurableProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.4 - Configurable 
Properties</h4>
+               <div class='topic'>
+               </div>
+               
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.RdfAnnotation"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.5 - @Rdf 
Annotation</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.Namespaces"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.6 - Namespaces</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.UriProperties"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.7 - URI 
Properties</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.RootProperty"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.8 - Root 
Property</h4>
+               <div class='topic'>
+               </div>
+
+               <!-- 
=======================================================================================================
 -->
+               <a id="juneau-marshall-rdf.RdfDetails.TypedLiterals"></a>
+               <h4 class='topic' onclick='toggle(this)'>3.1.9 - Typed 
Literals</h4>
+               <div class='topic'>
+               </div>
        </div>
        
 </div>

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to