You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/04/07 18:19:41 UTC

[01/10] incubator-juneau git commit: More JUnits, bug fixes.

Repository: incubator-juneau
Updated Branches:
  refs/heads/master 2ca845c0f -> bde9b1015


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index a059d46..32bf3d3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -17,6 +17,7 @@ import static org.apache.juneau.serializer.SerializerContext.*;
 import java.util.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
 
 /**
  * Builder class for building instances of serializers.
@@ -516,6 +517,31 @@ public class SerializerBuilder extends CoreObjectBuilder {
 		return property(SERIALIZER_sortMaps, value);
 	}
 
+	/**
+	 * <b>Configuration property:</b>  Abridged output.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"Serializer.parserKnowsRootTypes"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * When enabled, it is assumed that the parser knows the exact Java POJO type being parsed,
+	 * and therefore top-level type information that might normally be included to determine
+	 * the data type will not be serialized.
+	 * <p>
+	 * For example, when serializing a POJO with a {@link Bean#typeName()} value, a <js>"_type"</js>
+	 * will be added when this setting is disabled, but not added when it is enabled.
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @see SerializerContext#SERIALIZER_sortMaps
+	 */
+	public SerializerBuilder abridged(boolean value) {
+		return property(SERIALIZER_abridged, value);
+	}
+
 	@Override /* CoreObjectBuilder */
 	public SerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerContext.java
index fe2bb9a..a89f130 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerContext.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.serializer;
 
 import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
 import org.apache.juneau.internal.*;
 
 /**
@@ -117,7 +118,7 @@ public class SerializerContext extends BeanContext {
 	 * <ul>
 	 * 	<li><b>Name:</b> <js>"Serializer.addBeanTypeProperties"</js>
 	 * 	<li><b>Data type:</b> <code>Boolean</code>
-	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Default:</b> <jk>true</jk>
 	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
 	 * </ul>
 	 * <p>
@@ -313,6 +314,25 @@ public class SerializerContext extends BeanContext {
 	 */
 	public static final String SERIALIZER_sortMaps = "Serializer.sortMaps";
 
+	/**
+	 * <b>Configuration property:</b>  Abridged output.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"Serializer.parserKnowsRootType"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * When enabled, it is assumed that the parser knows the exact Java POJO type being parsed,
+	 * and therefore top-level type information that might normally be included to determine
+	 * the data type will not be serialized.
+	 * <p>
+	 * For example, when serializing a POJO with a {@link Bean#typeName()} value, a <js>"_type"</js>
+	 * will be added when this setting is disabled, but not added when it is enabled.
+	 */
+	public static final String SERIALIZER_abridged = "Serializer.abridged";
+
 
 	final int maxDepth, initialDepth;
 	final boolean
@@ -325,7 +345,8 @@ public class SerializerContext extends BeanContext {
 		trimEmptyMaps,
 		trimStrings,
 		sortCollections,
-		sortMaps;
+		sortMaps,
+		abridged;
 	final char quoteChar;
 	final String relativeUriBase, absolutePathUriBase;
 
@@ -348,6 +369,7 @@ public class SerializerContext extends BeanContext {
 		trimStrings = ps.getProperty(SERIALIZER_trimStrings, boolean.class, false);
 		sortCollections = ps.getProperty(SERIALIZER_sortCollections, boolean.class, false);
 		sortMaps = ps.getProperty(SERIALIZER_sortMaps, boolean.class, false);
+		abridged = ps.getProperty(SERIALIZER_abridged, boolean.class, false);
 		quoteChar = ps.getProperty(SERIALIZER_quoteChar, String.class, "\"").charAt(0);
 		relativeUriBase = resolveRelativeUriBase(ps.getProperty(SERIALIZER_relativeUriBase, String.class, ""));
 		absolutePathUriBase = resolveAbsolutePathUriBase(ps.getProperty(SERIALIZER_absolutePathUriBase, String.class, ""));
@@ -387,6 +409,7 @@ public class SerializerContext extends BeanContext {
 				.append("trimStrings", trimStrings)
 				.append("sortCollections", sortCollections)
 				.append("sortMaps", sortMaps)
+				.append("parserKnowsRootTypes", abridged)
 				.append("quoteChar", quoteChar)
 				.append("relativeUriBase", relativeUriBase)
 				.append("absolutePathUriBase", absolutePathUriBase)

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index 5521a9d..7c572d2 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -369,6 +369,17 @@ public class SerializerGroupBuilder {
 	}
 
 	/**
+	 * Sets the {@link SerializerContext#SERIALIZER_abridged} property on all serializers in this group.
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @see SerializerContext#SERIALIZER_abridged
+	 */
+	public SerializerGroupBuilder parserKnowsRootType(boolean value) {
+		return property(SERIALIZER_abridged, value);
+	}
+
+	/**
 	 * Sets the {@link BeanContext#BEAN_beansRequireDefaultConstructor} property on all serializers in this group.
 	 *
 	 * @param value The new value for this property.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index 2fdfd0b..498113b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -49,7 +49,8 @@ public class SerializerSession extends BeanSession {
 		trimEmptyMaps,
 		trimStrings,
 		sortCollections,
-		sortMaps;
+		sortMaps,
+		abridged;
 	private final char quoteChar;
 	private final String relativeUriBase, absolutePathUriBase;
 
@@ -113,6 +114,7 @@ public class SerializerSession extends BeanSession {
 			absolutePathUriBase = ctx.absolutePathUriBase;
 			sortCollections = ctx.sortCollections;
 			sortMaps = ctx.sortMaps;
+			abridged = ctx.abridged;
 		} else {
 			maxDepth = op.getInt(SERIALIZER_maxDepth, ctx.maxDepth);
 			initialDepth = op.getInt(SERIALIZER_initialDepth, ctx.initialDepth);
@@ -129,6 +131,7 @@ public class SerializerSession extends BeanSession {
 			absolutePathUriBase = op.getString(SERIALIZER_absolutePathUriBase, ctx.absolutePathUriBase);
 			sortCollections = op.getBoolean(SERIALIZER_sortCollections, ctx.sortMaps);
 			sortMaps = op.getBoolean(SERIALIZER_sortMaps, ctx.sortMaps);
+			abridged = op.getBoolean(SERIALIZER_abridged, ctx.abridged);
 		}
 
 		this.indent = initialDepth;
@@ -740,4 +743,18 @@ public class SerializerSession extends BeanSession {
 
 		return null;
 	}
+
+	/**
+	 * Returns the parser-side expected type for the object.
+	 * <p>
+	 * The return value depends on the {@link SerializerContext#SERIALIZER_abridged} setting.
+	 * When enabled, the parser already knows the Java POJO type being parsed, so there is
+	 * no reason to add <js>"_type"</js> attributes to the root-level object.
+	 *
+	 * @param o The object to get the expected type on.
+	 * @return The expected type.
+	 */
+	public ClassMeta<?> getExpectedRootType(Object o) {
+		return abridged ? getClassMetaForObject(o) : object();
+	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
index cbf8e36..5cbbac9 100644
--- a/juneau-core/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
@@ -210,6 +210,12 @@ public class SoapXmlSerializerBuilder extends XmlSerializerBuilder {
 		return this;
 	}
 
+	@Override /* SerializerBuilder */
+	public SoapXmlSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public SoapXmlSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializer.java b/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializer.java
index 6ecb85d..3079ccb 100644
--- a/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -381,6 +381,6 @@ public class UonSerializer extends WriterSerializer {
 	@Override /* Serializer */
 	protected void doSerialize(SerializerSession session, Object o) throws Exception {
 		UonSerializerSession s = (UonSerializerSession)session;
-		serializeAnything(s, s.getWriter(), o, null, "root", null);
+		serializeAnything(s, s.getWriter(), o, s.getExpectedRootType(o), "root", null);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
index 96bb20b..ae6c748 100644
--- a/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
@@ -190,6 +190,13 @@ public class UonSerializerBuilder extends SerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public UonSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public UonSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
index 6ea4ed3..fbca471 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
@@ -210,6 +210,13 @@ public class UrlEncodingSerializerBuilder extends UonSerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public UrlEncodingSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public UrlEncodingSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java
index 6cdf163..d22e1bd 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java
@@ -190,6 +190,12 @@ public class XmlSchemaSerializerBuilder extends XmlSerializerBuilder {
 		return this;
 	}
 
+	@Override /* SerializerBuilder */
+	public XmlSchemaSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public XmlSchemaSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index ccb8f2a..ad04449 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -826,7 +826,7 @@ public class XmlSerializer extends WriterSerializer {
 		XmlSerializerSession s = (XmlSerializerSession)session;
 		if (s.isEnableNamespaces() && s.isAutoDetectNamespaces())
 			findNsfMappings(s, o);
-		serializeAnything(s, s.getWriter(), o, null, null, null, s.isEnableNamespaces() && s.isAddNamespaceUrlsToRoot(), XmlFormat.DEFAULT, false, false, null);
+		serializeAnything(s, s.getWriter(), o, s.getExpectedRootType(o), null, null, s.isEnableNamespaces() && s.isAddNamespaceUrlsToRoot(), XmlFormat.DEFAULT, false, false, null);
 	}
 
 	@Override /* Serializer */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
index d9f9a53..5203001 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
@@ -337,6 +337,12 @@ public class XmlSerializerBuilder extends SerializerBuilder {
 		return this;
 	}
 
+	@Override /* SerializerBuilder */
+	public XmlSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public XmlSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/overview.html b/juneau-core/src/main/javadoc/overview.html
index 171b7c3..afcbb9e 100644
--- a/juneau-core/src/main/javadoc/overview.html
+++ b/juneau-core/src/main/javadoc/overview.html
@@ -5751,6 +5751,12 @@
 				</ul>
 			<li>New {@link org.apache.juneau.annotation.Bean#typePropertyName @Bean.typePropertyName()} annotation allows you to 
 				specify the name of the <js>"_type"</js> property at the class level.
+			<li>New methods added to HTML5 container beans:
+				<ul>
+					<li>{@link org.apache.juneau.dto.html5.HtmlElementContainer#getChild(int...)}
+					<li>{@link org.apache.juneau.dto.html5.HtmlElementMixed#getChild(int...)}
+				</ul>
+			<li>New common serializer setting: {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_abridged}.
 		</ul>
 		
 		<h6 class='topic'>org.apache.juneau.rest</h6>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/AtomFeedResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/AtomFeedResource.java b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/AtomFeedResource.java
index 0d0f884..ff453ae 100644
--- a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/AtomFeedResource.java
+++ b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/AtomFeedResource.java
@@ -48,7 +48,7 @@ public class AtomFeedResource extends ResourceJena {
 	public void init() {
 
 		try {
-			feed = 
+			feed =
 				feed("tag:juneau.sample.com,2013:1", "Juneau ATOM specification", "2013-05-08T12:29:29Z")
 				.subtitle(text("html").text("A <em>lot</em> of effort went into making this effortless"))
 				.links(

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
index 5be1140..a089afc 100644
--- a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
+++ b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SqlQueryResource.java
@@ -66,7 +66,7 @@ public class SqlQueryResource extends Resource {
 	public Div doGet(RestRequest req) {
 		return div(
 			script("text/javascript",
-				 "\n	// Quick and dirty function to allow tabs in textarea."
+				"\n	// Quick and dirty function to allow tabs in textarea."
 				+"\n	function checkTab(e) {"
 				+"\n		if (e.keyCode == 9) {"
 				+"\n			var t = e.target;"

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
index 8cb843e..d49fd09 100644
--- a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
+++ b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
@@ -80,7 +80,7 @@ public class SystemPropertiesResource extends Resource {
 	}
 	
 	@RestMethod(
-		name="PUT", path="/{propertyName}", 
+		name="PUT", path="/{propertyName}",
 		summary="Replace system property",
 		description="Sets a new value for the specified system property.",
 		guards=AdminGuard.class,
@@ -89,12 +89,12 @@ public class SystemPropertiesResource extends Resource {
 			@Parameter(in="body", description="The new system property value."),
 		},
 		responses={
-			@Response(value=302, 
+			@Response(value=302,
 				headers={
 					@Parameter(name="Location", description="The root URL of this resource.")
 				}
 			),	
-			@Response(value=403, description="User is not an admin.") 
+			@Response(value=403, description="User is not an admin.")
 		}
 	)
 	public Redirect setSystemProperty(@Path String propertyName, @Body String value) {
@@ -103,7 +103,7 @@ public class SystemPropertiesResource extends Resource {
 	}
 
 	@RestMethod(
-		name="POST", path="/", 
+		name="POST", path="/",
 		summary="Add an entire set of system properties",
 		description="Takes in a map of key/value pairs and creates a set of new system properties.",
 		guards=AdminGuard.class,
@@ -112,12 +112,12 @@ public class SystemPropertiesResource extends Resource {
 			@Parameter(in="body", description="The new system property values.", schema="{example:{key1:'val1',key2:123}}"),
 		},
 		responses={
-			@Response(value=302, 
+			@Response(value=302,
 				headers={
 					@Parameter(name="Location", description="The root URL of this resource.")
 				}
 			),	
-			@Response(value=403, description="Unauthorized:  User is not an admin.") 
+			@Response(value=403, description="Unauthorized:  User is not an admin.")
 		}
 	)
 	public Redirect setSystemProperties(@Body java.util.Properties newProperties) {
@@ -126,7 +126,7 @@ public class SystemPropertiesResource extends Resource {
 	}
 
 	@RestMethod(
-		name="DELETE", path="/{propertyName}", 
+		name="DELETE", path="/{propertyName}",
 		summary="Delete system property",
 		description="Deletes the specified system property.",
 		guards=AdminGuard.class,
@@ -134,12 +134,12 @@ public class SystemPropertiesResource extends Resource {
 			@Parameter(in="path", name="propertyName", description="The system property name."),
 		},
 		responses={
-			@Response(value=302, 
+			@Response(value=302,
 				headers={
 					@Parameter(name="Location", description="The root URL of this resource.")
 				}
 			),	
-			@Response(value=403, description="Unauthorized:  User is not an admin") 
+			@Response(value=403, description="Unauthorized:  User is not an admin")
 		}
 	)
 	public Redirect deleteSystemProperty(@Path String propertyName) {
@@ -173,7 +173,7 @@ public class SystemPropertiesResource extends Resource {
 	}
 
 	@RestMethod(
-		name="POST", path="/formPagePost", 
+		name="POST", path="/formPagePost",
 		description="Accepts a simple form post of a system property name/value pair.",
 		guards=AdminGuard.class
 	)

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
index b92f3c3..7c6a448 100644
--- a/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
+++ b/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
@@ -47,7 +47,7 @@ public class TempDirResource extends DirectoryResource {
 	 */
 	@RestMethod(name="GET", path="/upload")
 	public Form getUploadForm(RestRequest req) {
-		return 
+		return
 			form().id("form").action(req.getServletURI() + "/upload").method("POST").enctype("multipart/form-data")
 			.children(
 				input().name("contents").type("file"),

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
index 8dfa7fd..b37a4ed 100644
--- a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
+++ b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
@@ -77,21 +77,21 @@ public class AddressBookResourceTest extends RestTestcase {
 	//====================================================================================================
 	@Test
 	public void testBasic() throws Exception {
-		String in = "" 
-		+"{"
-		+"\n	name: \"Bill Clinton\", "
-		+"\n	age: 66, "
-		+"\n	birthDate: \"Aug 19, 1946\", "
-		+"\n	addresses: ["
-		+"\n		{"
-		+"\n			street: \"a3\", "
-		+"\n			city: \"b3\", "
-		+"\n			state: \"c3\", "
-		+"\n			zip: 3, "
-		+"\n			isCurrent: false"
-		+"\n		}"
-		+"\n	]"
-		+"\n}";			
+		String in = ""
+			+"{"
+			+"\n	name: \"Bill Clinton\", "
+			+"\n	age: 66, "
+			+"\n	birthDate: \"Aug 19, 1946\", "
+			+"\n	addresses: ["
+			+"\n		{"
+			+"\n			street: \"a3\", "
+			+"\n			city: \"b3\", "
+			+"\n			state: \"c3\", "
+			+"\n			zip: 3, "
+			+"\n			isCurrent: false"
+			+"\n		}"
+			+"\n	]"
+			+"\n}";			
 		JsonParser p = new JsonParserBuilder().pojoSwaps(CalendarSwap.DateMedium.class).build();
 		Person person = p.parse(in, Person.class);
 		if (debug) System.err.println(person);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
index f7615af..b61fc53 100644
--- a/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
+++ b/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
@@ -259,11 +259,11 @@ public class TestUtils {
 
 	final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
 	public static String toHex(byte b) {
-	    char[] c = new char[2];
-	    int v = b & 0xFF;
-	    c[0] = hexArray[v >>> 4];
-	    c[1] = hexArray[v & 0x0F];
-	    return new String(c);
+		char[] c = new char[2];
+		int v = b & 0xFF;
+		c[0] = hexArray[v >>> 4];
+		c[1] = hexArray[v & 0x0F];
+		return new String(c);
 	}
 
 	public static void debugOut(Object o) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
index 044e3b1..07801b8 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/AllowAllRedirects.java
@@ -25,8 +25,8 @@ import org.apache.http.impl.client.*;
  */
 public class AllowAllRedirects extends DefaultRedirectStrategy {
 
-   @Override /* DefaultRedirectStrategy */
-   protected boolean isRedirectable(final String method) {
-   	return true;
-   }
+	@Override /* DefaultRedirectStrategy */
+	protected boolean isRedirectable(final String method) {
+		return true;
+	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index a97c540..869b922 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -973,6 +973,17 @@ public class RestClientBuilder extends CoreObjectBuilder {
 	}
 
 	/**
+	 * Sets the {@link SerializerContext#SERIALIZER_abridged} property on all serializers in this group.
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @see SerializerContext#SERIALIZER_abridged
+	 */
+	public RestClientBuilder abridged(boolean value) {
+		return property(SERIALIZER_abridged, value);
+	}
+
+	/**
 	 * Sets the {@link ParserContext#PARSER_trimStrings} property on all parsers in this group.
 	 *
 	 * @param value The new value for this property.


[02/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
index 376cbec..9bdd575 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
@@ -12,6 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.TestUtils.*;
+
+import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -39,502 +42,660 @@ public class DateSwapComboTest extends ComboTest {
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
 			{	/* 0 */
-				"DateSwap.ToString/singleDate",
-				singleDate,
-				DateSwap.ToString.class,
-				/* Json */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* JsonT */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* JsonR */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* Xml */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* XmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* XmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>\n",
-				/* XmlNs */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* Html */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* HtmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* HtmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* Uon */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* UonT */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* UonR */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* UrlEnc */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncT */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncR */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
-				/* MsgPack */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* MsgPackT */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Date>(
+					"DateSwap.ToString/singleDate",
+					Date.class,
+					singleDate,
+					DateSwap.ToString.class,
+					/* Json */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* JsonT */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* JsonR */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* Xml */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* XmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* XmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>\n",
+					/* XmlNs */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* Html */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* HtmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* HtmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* Uon */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* UonT */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* UonR */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* UrlEnc */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncT */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncR */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
+					/* MsgPack */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* MsgPackT */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date o) {
+						assertType(Date.class, o);
+					}
+				}
 			},
 			{	/* 1 */
-				"DateSwap.ToString/dateArray",
-				dateArray,
-				DateSwap.ToString.class,
-				/* Json */		"['Sun Mar 03 10:11:12 PST 1901']",
-				/* JsonT */		"['Sun Mar 03 10:11:12 PST 1901']",
-				/* JsonR */		"[\n\t'Sun Mar 03 10:11:12 PST 1901'\n]",
-				/* Xml */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
-				/* XmlT */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
-				/* XmlR */		"<array>\n\t<string>Sun Mar 03 10:11:12 PST 1901</string>\n</array>\n",
-				/* XmlNs */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
-				/* Html */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
-				/* HtmlT */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>Sun Mar 03 10:11:12 PST 1901</li>\n</ul>\n",
-				/* Uon */		"@('Sun Mar 03 10:11:12 PST 1901')",
-				/* UonT */		"@('Sun Mar 03 10:11:12 PST 1901')",
-				/* UonR */		"@(\n\t'Sun Mar 03 10:11:12 PST 1901'\n)",
-				/* UrlEnc */	"0='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncT */	"0='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncR */	"0='Sun+Mar+03+10:11:12+PST+1901'",
-				/* MsgPack */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* MsgPackT */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Date[]>(
+					"DateSwap.ToString/dateArray",
+					Date[].class,
+					dateArray,
+					DateSwap.ToString.class,
+					/* Json */		"['Sun Mar 03 10:11:12 PST 1901']",
+					/* JsonT */		"['Sun Mar 03 10:11:12 PST 1901']",
+					/* JsonR */		"[\n\t'Sun Mar 03 10:11:12 PST 1901'\n]",
+					/* Xml */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+					/* XmlT */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+					/* XmlR */		"<array>\n\t<string>Sun Mar 03 10:11:12 PST 1901</string>\n</array>\n",
+					/* XmlNs */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+					/* Html */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
+					/* HtmlT */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>Sun Mar 03 10:11:12 PST 1901</li>\n</ul>\n",
+					/* Uon */		"@('Sun Mar 03 10:11:12 PST 1901')",
+					/* UonT */		"@('Sun Mar 03 10:11:12 PST 1901')",
+					/* UonR */		"@(\n\t'Sun Mar 03 10:11:12 PST 1901'\n)",
+					/* UrlEnc */	"0='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncT */	"0='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncR */	"0='Sun+Mar+03+10:11:12+PST+1901'",
+					/* MsgPack */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* MsgPackT */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date[] o) {
+						assertType(Date.class, o[0]);
+					}
+				}
 			},
 			{	/* 2 */
-				"DateSwap.ToString",
-				dateMap,
-				DateSwap.ToString.class,
-				/* Json */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
-				/* JsonT */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
-				/* JsonR */		"{\n\tfoo: 'Sun Mar 03 10:11:12 PST 1901'\n}",
-				/* Xml */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
-				/* XmlT */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>Sun Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 1901</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
-				/* UonT */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
-				/* UonR */		"(\n\tfoo='Sun Mar 03 10:11:12 PST 1901'\n)",
-				/* UrlEnc */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncT */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncR */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
-				/* MsgPack */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* MsgPackT */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"DateSwap.ToString",
+					getType(Map.class,String.class,Date.class),
+					dateMap,
+					DateSwap.ToString.class,
+					/* Json */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
+					/* JsonT */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
+					/* JsonR */		"{\n\tfoo: 'Sun Mar 03 10:11:12 PST 1901'\n}",
+					/* Xml */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+					/* XmlT */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>Sun Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 1901</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
+					/* UonT */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
+					/* UonR */		"(\n\tfoo='Sun Mar 03 10:11:12 PST 1901'\n)",
+					/* UrlEnc */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncT */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncR */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
+					/* MsgPack */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* MsgPackT */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Date.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 3 */
-				"DateSwap.ISO8601DT/singleDate",
-				singleDate,
-				DateSwap.ISO8601DT.class,
-				/* Json */		"'1901-03-03T10:11:12-08:00'",
-				/* JsonT */		"'1901-03-03T10:11:12-08:00'",
-				/* JsonR */		"'1901-03-03T10:11:12-08:00'",
-				/* Xml */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* XmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* XmlR */		"<string>1901-03-03T10:11:12-08:00</string>\n",
-				/* XmlNs */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* Html */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* HtmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* HtmlR */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* Uon */		"1901-03-03T10:11:12-08:00",
-				/* UonT */		"1901-03-03T10:11:12-08:00",
-				/* UonR */		"1901-03-03T10:11:12-08:00",
-				/* UrlEnc */	"_value=1901-03-03T10:11:12-08:00",
-				/* UrlEncT */	"_value=1901-03-03T10:11:12-08:00",
-				/* UrlEncR */	"_value=1901-03-03T10:11:12-08:00",
-				/* MsgPack */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* MsgPackT */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>1901-03-03T10:11:12-08:00</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Date>(
+					"DateSwap.ISO8601DT/singleDate",
+					Date.class,
+					singleDate,
+					DateSwap.ISO8601DT.class,
+					/* Json */		"'1901-03-03T10:11:12-08:00'",
+					/* JsonT */		"'1901-03-03T10:11:12-08:00'",
+					/* JsonR */		"'1901-03-03T10:11:12-08:00'",
+					/* Xml */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* XmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* XmlR */		"<string>1901-03-03T10:11:12-08:00</string>\n",
+					/* XmlNs */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* Html */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* HtmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* HtmlR */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* Uon */		"1901-03-03T10:11:12-08:00",
+					/* UonT */		"1901-03-03T10:11:12-08:00",
+					/* UonR */		"1901-03-03T10:11:12-08:00",
+					/* UrlEnc */	"_value=1901-03-03T10:11:12-08:00",
+					/* UrlEncT */	"_value=1901-03-03T10:11:12-08:00",
+					/* UrlEncR */	"_value=1901-03-03T10:11:12-08:00",
+					/* MsgPack */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* MsgPackT */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>1901-03-03T10:11:12-08:00</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date o) {
+						assertType(Date.class, o);
+					}
+				}
 			},
 			{	/* 4 */
-				"DateSwap.ISO8601DT/dateArray",
-				dateArray,
-				DateSwap.ISO8601DT.class,
-				/* Json */		"['1901-03-03T10:11:12-08:00']",
-				/* JsonT */		"['1901-03-03T10:11:12-08:00']",
-				/* JsonR */		"[\n\t'1901-03-03T10:11:12-08:00'\n]",
-				/* Xml */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-				/* XmlT */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-				/* XmlR */		"<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
-				/* XmlNs */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-				/* Html */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
-				/* HtmlT */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
-				/* Uon */		"@(1901-03-03T10:11:12-08:00)",
-				/* UonT */		"@(1901-03-03T10:11:12-08:00)",
-				/* UonR */		"@(\n\t1901-03-03T10:11:12-08:00\n)",
-				/* UrlEnc */	"0=1901-03-03T10:11:12-08:00",
-				/* UrlEncT */	"0=1901-03-03T10:11:12-08:00",
-				/* UrlEncR */	"0=1901-03-03T10:11:12-08:00",
-				/* MsgPack */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* MsgPackT */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Date[]>(
+					"DateSwap.ISO8601DT/dateArray",
+					Date[].class,
+					dateArray,
+					DateSwap.ISO8601DT.class,
+					/* Json */		"['1901-03-03T10:11:12-08:00']",
+					/* JsonT */		"['1901-03-03T10:11:12-08:00']",
+					/* JsonR */		"[\n\t'1901-03-03T10:11:12-08:00'\n]",
+					/* Xml */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+					/* XmlT */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+					/* XmlR */		"<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
+					/* XmlNs */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+					/* Html */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+					/* HtmlT */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
+					/* Uon */		"@(1901-03-03T10:11:12-08:00)",
+					/* UonT */		"@(1901-03-03T10:11:12-08:00)",
+					/* UonR */		"@(\n\t1901-03-03T10:11:12-08:00\n)",
+					/* UrlEnc */	"0=1901-03-03T10:11:12-08:00",
+					/* UrlEncT */	"0=1901-03-03T10:11:12-08:00",
+					/* UrlEncR */	"0=1901-03-03T10:11:12-08:00",
+					/* MsgPack */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* MsgPackT */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date[] o) {
+						assertType(Date.class, o[0]);
+					}
+				}
 			},
 			{	/* 5 */
-				"DateSwap.ISO8601DT/dateMap",
-				dateMap,
-				DateSwap.ISO8601DT.class,
-				/* Json */		"{foo:'1901-03-03T10:11:12-08:00'}",
-				/* JsonT */		"{foo:'1901-03-03T10:11:12-08:00'}",
-				/* JsonR */		"{\n\tfoo: '1901-03-03T10:11:12-08:00'\n}",
-				/* Xml */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-				/* XmlT */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=1901-03-03T10:11:12-08:00)",
-				/* UonT */		"(foo=1901-03-03T10:11:12-08:00)",
-				/* UonR */		"(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
-				/* UrlEnc */	"foo=1901-03-03T10:11:12-08:00",
-				/* UrlEncT */	"foo=1901-03-03T10:11:12-08:00",
-				/* UrlEncR */	"foo=1901-03-03T10:11:12-08:00",
-				/* MsgPack */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* MsgPackT */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"DateSwap.ISO8601DT/dateMap",
+					getType(Map.class,String.class,Date.class),
+					dateMap,
+					DateSwap.ISO8601DT.class,
+					/* Json */		"{foo:'1901-03-03T10:11:12-08:00'}",
+					/* JsonT */		"{foo:'1901-03-03T10:11:12-08:00'}",
+					/* JsonR */		"{\n\tfoo: '1901-03-03T10:11:12-08:00'\n}",
+					/* Xml */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+					/* XmlT */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=1901-03-03T10:11:12-08:00)",
+					/* UonT */		"(foo=1901-03-03T10:11:12-08:00)",
+					/* UonR */		"(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
+					/* UrlEnc */	"foo=1901-03-03T10:11:12-08:00",
+					/* UrlEncT */	"foo=1901-03-03T10:11:12-08:00",
+					/* UrlEncR */	"foo=1901-03-03T10:11:12-08:00",
+					/* MsgPack */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* MsgPackT */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Date.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 6 */
-				"DateSwap.RFC2822DTZ/singleDate",
-				singleDate,
-				DateSwap.RFC2822DTZ.class,
-				/* Json */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* JsonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* JsonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* Xml */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* XmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* XmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n",
-				/* XmlNs */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* Html */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* HtmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* HtmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* Uon */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* UonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* UonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* UrlEnc */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncT */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncR */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* MsgPack */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* MsgPackT */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Date>(
+					"DateSwap.RFC2822DTZ/singleDate",
+					Date.class,
+					singleDate,
+					DateSwap.RFC2822DTZ.class,
+					/* Json */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* JsonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* JsonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* Xml */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* XmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* XmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n",
+					/* XmlNs */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* Html */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* HtmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* HtmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* Uon */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* UonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* UonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* UrlEnc */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncT */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncR */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* MsgPack */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* MsgPackT */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date o) {
+						assertType(Date.class, o);
+					}
+				}
 			},
 			{	/* 7 */
-				"DateSwap.RFC2822DTZ/dateArray",
-				dateArray,
-				DateSwap.RFC2822DTZ.class,
-				/* Json */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
-				/* JsonT */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
-				/* JsonR */		"[\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n]",
-				/* Xml */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
-				/* XmlT */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
-				/* XmlR */		"<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
-				/* XmlNs */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
-				/* Html */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
-				/* HtmlT */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>Sun, 03 Mar 1901 18:11:12 GMT</li>\n</ul>\n",
-				/* Uon */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonT */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonR */		"@(\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n)",
-				/* UrlEnc */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncT */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncR */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* MsgPack */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* MsgPackT */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Date[]>(
+					"DateSwap.RFC2822DTZ/dateArray",
+					Date[].class,
+					dateArray,
+					DateSwap.RFC2822DTZ.class,
+					/* Json */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
+					/* JsonT */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
+					/* JsonR */		"[\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n]",
+					/* Xml */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+					/* XmlT */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+					/* XmlR */		"<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
+					/* XmlNs */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+					/* Html */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
+					/* HtmlT */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>Sun, 03 Mar 1901 18:11:12 GMT</li>\n</ul>\n",
+					/* Uon */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonT */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonR */		"@(\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n)",
+					/* UrlEnc */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncT */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncR */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* MsgPack */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* MsgPackT */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date[] o) {
+						assertType(Date.class, o[0]);
+					}
+				}
 			},
 			{	/* 8 */
-				"DateSwap.RFC2822DTZ/dateMap",
-				dateMap,
-				DateSwap.RFC2822DTZ.class,
-				/* Json */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
-				/* JsonT */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
-				/* JsonR */		"{\n\tfoo: 'Sun, 03 Mar 1901 18:11:12 GMT'\n}",
-				/* Xml */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
-				/* XmlT */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>Sun, 03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 GMT</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonT */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonR */		"(\n\tfoo='Sun, 03 Mar 1901 18:11:12 GMT'\n)",
-				/* UrlEnc */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncT */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncR */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* MsgPack */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* MsgPackT */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"DateSwap.RFC2822DTZ/dateMap",
+					getType(Map.class,String.class,Date.class),
+					dateMap,
+					DateSwap.RFC2822DTZ.class,
+					/* Json */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
+					/* JsonT */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
+					/* JsonR */		"{\n\tfoo: 'Sun, 03 Mar 1901 18:11:12 GMT'\n}",
+					/* Xml */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+					/* XmlT */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>Sun, 03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 GMT</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonT */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonR */		"(\n\tfoo='Sun, 03 Mar 1901 18:11:12 GMT'\n)",
+					/* UrlEnc */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncT */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncR */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* MsgPack */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* MsgPackT */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Date.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 9 */
-				"DateLongSwap",
-				singleDate,
-				DateLongSwap.class,
-				/* Json */		"-2172116928000",
-				/* JsonT */		"-2172116928000",
-				/* JsonR */		"-2172116928000",
-				/* Xml */		"<number>-2172116928000</number>",
-				/* XmlT */		"<number>-2172116928000</number>",
-				/* XmlR */		"<number>-2172116928000</number>\n",
-				/* XmlNs */		"<number>-2172116928000</number>",
-				/* Html */		"<number>-2172116928000</number>",
-				/* HtmlT */		"<number>-2172116928000</number>",
-				/* HtmlR */		"<number>-2172116928000</number>",
-				/* Uon */		"-2172116928000",
-				/* UonT */		"-2172116928000",
-				/* UonR */		"-2172116928000",
-				/* UrlEnc */	"_value=-2172116928000",
-				/* UrlEncT */	"_value=-2172116928000",
-				/* UrlEncR */	"_value=-2172116928000",
-				/* MsgPack */	"D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>-2172116928000</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Date>(
+					"DateLongSwap",
+					Date.class,
+					singleDate,
+					DateLongSwap.class,
+					/* Json */		"-2172116928000",
+					/* JsonT */		"-2172116928000",
+					/* JsonR */		"-2172116928000",
+					/* Xml */		"<number>-2172116928000</number>",
+					/* XmlT */		"<number>-2172116928000</number>",
+					/* XmlR */		"<number>-2172116928000</number>\n",
+					/* XmlNs */		"<number>-2172116928000</number>",
+					/* Html */		"<number>-2172116928000</number>",
+					/* HtmlT */		"<number>-2172116928000</number>",
+					/* HtmlR */		"<number>-2172116928000</number>",
+					/* Uon */		"-2172116928000",
+					/* UonT */		"-2172116928000",
+					/* UonR */		"-2172116928000",
+					/* UrlEnc */	"_value=-2172116928000",
+					/* UrlEncT */	"_value=-2172116928000",
+					/* UrlEncR */	"_value=-2172116928000",
+					/* MsgPack */	"D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>-2172116928000</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date o) {
+						assertType(Date.class, o);
+					}
+				}
 			},
 			{	/* 10 */
-				"DateLongSwap/dateArray",
-				dateArray,
-				DateLongSwap.class,
-				/* Json */		"[-2172116928000]",
-				/* JsonT */		"[-2172116928000]",
-				/* JsonR */		"[\n\t-2172116928000\n]",
-				/* Xml */		"<array><number>-2172116928000</number></array>",
-				/* XmlT */		"<array><number>-2172116928000</number></array>",
-				/* XmlR */		"<array>\n\t<number>-2172116928000</number>\n</array>\n",
-				/* XmlNs */		"<array><number>-2172116928000</number></array>",
-				/* Html */		"<ul><li><number>-2172116928000</number></li></ul>",
-				/* HtmlT */		"<ul><li><number>-2172116928000</number></li></ul>",
-				/* HtmlR */		"<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
-				/* Uon */		"@(-2172116928000)",
-				/* UonT */		"@(-2172116928000)",
-				/* UonR */		"@(\n\t-2172116928000\n)",
-				/* UrlEnc */	"0=-2172116928000",
-				/* UrlEncT */	"0=-2172116928000",
-				/* UrlEncR */	"0=-2172116928000",
-				/* MsgPack */	"91D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"91D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>-2172116928000</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Date[]>(
+					"DateLongSwap/dateArray",
+					Date[].class,
+					dateArray,
+					DateLongSwap.class,
+					/* Json */		"[-2172116928000]",
+					/* JsonT */		"[-2172116928000]",
+					/* JsonR */		"[\n\t-2172116928000\n]",
+					/* Xml */		"<array><number>-2172116928000</number></array>",
+					/* XmlT */		"<array><number>-2172116928000</number></array>",
+					/* XmlR */		"<array>\n\t<number>-2172116928000</number>\n</array>\n",
+					/* XmlNs */		"<array><number>-2172116928000</number></array>",
+					/* Html */		"<ul><li><number>-2172116928000</number></li></ul>",
+					/* HtmlT */		"<ul><li><number>-2172116928000</number></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
+					/* Uon */		"@(-2172116928000)",
+					/* UonT */		"@(-2172116928000)",
+					/* UonR */		"@(\n\t-2172116928000\n)",
+					/* UrlEnc */	"0=-2172116928000",
+					/* UrlEncT */	"0=-2172116928000",
+					/* UrlEncR */	"0=-2172116928000",
+					/* MsgPack */	"91D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"91D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>-2172116928000</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date[] o) {
+						assertType(Date.class, o[0]);
+					}
+				}
 			},
 			{	/* 11 */
-				"DateLongSwap/dateMap",
-				dateMap,
-				DateLongSwap.class,
-				/* Json */		"{foo:-2172116928000}",
-				/* JsonT */		"{foo:-2172116928000}",
-				/* JsonR */		"{\n\tfoo: -2172116928000\n}",
-				/* Xml */		"<object><foo _type='number'>-2172116928000</foo></object>",
-				/* XmlT */		"<object><foo t='number'>-2172116928000</foo></object>",
-				/* XmlR */		"<object>\n\t<foo _type='number'>-2172116928000</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo _type='number'>-2172116928000</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=-2172116928000)",
-				/* UonT */		"(foo=-2172116928000)",
-				/* UonR */		"(\n\tfoo=-2172116928000\n)",
-				/* UrlEnc */	"foo=-2172116928000",
-				/* UrlEncT */	"foo=-2172116928000",
-				/* UrlEncR */	"foo=-2172116928000",
-				/* MsgPack */	"81A3666F6FD3FFFFFE0643BDFA00",
-				/* MsgPackT */	"81A3666F6FD3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>-2172116928000</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"DateLongSwap/dateMap",
+					getType(Map.class,String.class,Date.class),
+					dateMap,
+					DateLongSwap.class,
+					/* Json */		"{foo:-2172116928000}",
+					/* JsonT */		"{foo:-2172116928000}",
+					/* JsonR */		"{\n\tfoo: -2172116928000\n}",
+					/* Xml */		"<object><foo _type='number'>-2172116928000</foo></object>",
+					/* XmlT */		"<object><foo t='number'>-2172116928000</foo></object>",
+					/* XmlR */		"<object>\n\t<foo _type='number'>-2172116928000</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo _type='number'>-2172116928000</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=-2172116928000)",
+					/* UonT */		"(foo=-2172116928000)",
+					/* UonR */		"(\n\tfoo=-2172116928000\n)",
+					/* UrlEnc */	"foo=-2172116928000",
+					/* UrlEncT */	"foo=-2172116928000",
+					/* UrlEncR */	"foo=-2172116928000",
+					/* MsgPack */	"81A3666F6FD3FFFFFE0643BDFA00",
+					/* MsgPackT */	"81A3666F6FD3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>-2172116928000</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Date.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 12 */
-				"DateMapSwap/singleDate",
-				singleDate,
-				DateMapSwap.class,
-				/* Json */		"{time:-2172116928000}",
-				/* JsonT */		"{time:-2172116928000}",
-				/* JsonR */		"{\n\ttime: -2172116928000\n}",
-				/* Xml */		"<object><time _type='number'>-2172116928000</time></object>",
-				/* XmlT */		"<object><time t='number'>-2172116928000</time></object>",
-				/* XmlR */		"<object>\n\t<time _type='number'>-2172116928000</time>\n</object>\n",
-				/* XmlNs */		"<object><time _type='number'>-2172116928000</time></object>",
-				/* Html */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(time=-2172116928000)",
-				/* UonT */		"(time=-2172116928000)",
-				/* UonR */		"(\n\ttime=-2172116928000\n)",
-				/* UrlEnc */	"time=-2172116928000",
-				/* UrlEncT */	"time=-2172116928000",
-				/* UrlEncR */	"time=-2172116928000",
-				/* MsgPack */	"81A474696D65D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"81A474696D65D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Date>(
+					"DateMapSwap/singleDate",
+					Date.class,
+					singleDate,
+					DateMapSwap.class,
+					/* Json */		"{time:-2172116928000}",
+					/* JsonT */		"{time:-2172116928000}",
+					/* JsonR */		"{\n\ttime: -2172116928000\n}",
+					/* Xml */		"<object><time _type='number'>-2172116928000</time></object>",
+					/* XmlT */		"<object><time t='number'>-2172116928000</time></object>",
+					/* XmlR */		"<object>\n\t<time _type='number'>-2172116928000</time>\n</object>\n",
+					/* XmlNs */		"<object><time _type='number'>-2172116928000</time></object>",
+					/* Html */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(time=-2172116928000)",
+					/* UonT */		"(time=-2172116928000)",
+					/* UonR */		"(\n\ttime=-2172116928000\n)",
+					/* UrlEnc */	"time=-2172116928000",
+					/* UrlEncT */	"time=-2172116928000",
+					/* UrlEncR */	"time=-2172116928000",
+					/* MsgPack */	"81A474696D65D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"81A474696D65D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date o) {
+						assertType(Date.class, o);
+					}
+				}
 			},
 			{	/* 13 */
-				"DateMapSwap/dateArray",
-				dateArray,
-				DateMapSwap.class,
-				/* Json */		"[{time:-2172116928000}]",
-				/* JsonT */		"[{time:-2172116928000}]",
-				/* JsonR */		"[\n\t{\n\t\ttime: -2172116928000\n\t}\n]",
-				/* Xml */		"<array><object><time _type='number'>-2172116928000</time></object></array>",
-				/* XmlT */		"<array><object><time t='number'>-2172116928000</time></object></array>",
-				/* XmlR */		"<array>\n\t<object>\n\t\t<time _type='number'>-2172116928000</time>\n\t</object>\n</array>\n",
-				/* XmlNs */		"<array><object><time _type='number'>-2172116928000</time></object></array>",
-				/* Html */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
-				/* HtmlT */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
-				/* Uon */		"@((time=-2172116928000))",
-				/* UonT */		"@((time=-2172116928000))",
-				/* UonR */		"@(\n\t(\n\t\ttime=-2172116928000\n\t)\n)",
-				/* UrlEnc */	"0=(time=-2172116928000)",
-				/* UrlEncT */	"0=(time=-2172116928000)",
-				/* UrlEncR */	"0=(\n\ttime=-2172116928000\n)",
-				/* MsgPack */	"9181A474696D65D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"9181A474696D65D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Date[]>(
+					"DateMapSwap/dateArray",
+					Date[].class,
+					dateArray,
+					DateMapSwap.class,
+					/* Json */		"[{time:-2172116928000}]",
+					/* JsonT */		"[{time:-2172116928000}]",
+					/* JsonR */		"[\n\t{\n\t\ttime: -2172116928000\n\t}\n]",
+					/* Xml */		"<array><object><time _type='number'>-2172116928000</time></object></array>",
+					/* XmlT */		"<array><object><time t='number'>-2172116928000</time></object></array>",
+					/* XmlR */		"<array>\n\t<object>\n\t\t<time _type='number'>-2172116928000</time>\n\t</object>\n</array>\n",
+					/* XmlNs */		"<array><object><time _type='number'>-2172116928000</time></object></array>",
+					/* Html */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
+					/* HtmlT */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
+					/* Uon */		"@((time=-2172116928000))",
+					/* UonT */		"@((time=-2172116928000))",
+					/* UonR */		"@(\n\t(\n\t\ttime=-2172116928000\n\t)\n)",
+					/* UrlEnc */	"0=(time=-2172116928000)",
+					/* UrlEncT */	"0=(time=-2172116928000)",
+					/* UrlEncR */	"0=(\n\ttime=-2172116928000\n)",
+					/* MsgPack */	"9181A474696D65D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"9181A474696D65D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date[] o) {
+						assertType(Date.class, o[0]);
+					}
+				}
 			},
 			{	/* 14 */
-				"DateMapSwap/dateMap",
-				dateMap,
-				DateMapSwap.class,
-				/* Json */		"{foo:{time:-2172116928000}}",
-				/* JsonT */		"{foo:{time:-2172116928000}}",
-				/* JsonR */		"{\n\tfoo: {\n\t\ttime: -2172116928000\n\t}\n}",
-				/* Xml */		"<object><foo _type='object'><time _type='number'>-2172116928000</time></foo></object>",
-				/* XmlT */		"<object><foo t='object'><time t='number'>-2172116928000</time></foo></object>",
-				/* XmlR */		"<object>\n\t<foo _type='object'>\n\t\t<time _type='number'>-2172116928000</time>\n\t</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo _type='object'><time _type='number'>-2172116928000</time></foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=(time=-2172116928000))",
-				/* UonT */		"(foo=(time=-2172116928000))",
-				/* UonR */		"(\n\tfoo=(\n\t\ttime=-2172116928000\n\t)\n)",
-				/* UrlEnc */	"foo=(time=-2172116928000)",
-				/* UrlEncT */	"foo=(time=-2172116928000)",
-				/* UrlEncR */	"foo=(\n\ttime=-2172116928000\n)",
-				/* MsgPack */	"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n    </jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"DateMapSwap/dateMap",
+					getType(Map.class,String.class,Date.class),
+					dateMap,
+					DateMapSwap.class,
+					/* Json */		"{foo:{time:-2172116928000}}",
+					/* JsonT */		"{foo:{time:-2172116928000}}",
+					/* JsonR */		"{\n\tfoo: {\n\t\ttime: -2172116928000\n\t}\n}",
+					/* Xml */		"<object><foo _type='object'><time _type='number'>-2172116928000</time></foo></object>",
+					/* XmlT */		"<object><foo t='object'><time t='number'>-2172116928000</time></foo></object>",
+					/* XmlR */		"<object>\n\t<foo _type='object'>\n\t\t<time _type='number'>-2172116928000</time>\n\t</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo _type='object'><time _type='number'>-2172116928000</time></foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=(time=-2172116928000))",
+					/* UonT */		"(foo=(time=-2172116928000))",
+					/* UonR */		"(\n\tfoo=(\n\t\ttime=-2172116928000\n\t)\n)",
+					/* UrlEnc */	"foo=(time=-2172116928000)",
+					/* UrlEncT */	"foo=(time=-2172116928000)",
+					/* UrlEncR */	"foo=(\n\ttime=-2172116928000\n)",
+					/* MsgPack */	"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n    </jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Date.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 15 */
-				"DateSwap.DateMedium/singleDate",
-				singleDate,
-				DateSwap.DateMedium.class,
-				/* Json */		"'Mar 3, 1901'",
-				/* JsonT */		"'Mar 3, 1901'",
-				/* JsonR */		"'Mar 3, 1901'",
-				/* Xml */		"<string>Mar 3, 1901</string>",
-				/* XmlT */		"<string>Mar 3, 1901</string>",
-				/* XmlR */		"<string>Mar 3, 1901</string>\n",
-				/* XmlNs */		"<string>Mar 3, 1901</string>",
-				/* Html */		"<string>Mar 3, 1901</string>",
-				/* HtmlT */		"<string>Mar 3, 1901</string>",
-				/* HtmlR */		"<string>Mar 3, 1901</string>",
-				/* Uon */		"'Mar 3, 1901'",
-				/* UonT */		"'Mar 3, 1901'",
-				/* UonR */		"'Mar 3, 1901'",
-				/* UrlEnc */	"_value='Mar+3,+1901'",
-				/* UrlEncT */	"_value='Mar+3,+1901'",
-				/* UrlEncR */	"_value='Mar+3,+1901'",
-				/* MsgPack */	"AB4D617220332C2031393031",
-				/* MsgPackT */	"AB4D617220332C2031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Mar 3, 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Date>(
+					"DateSwap.DateMedium/singleDate",
+					Date.class,
+					singleDate,
+					DateSwap.DateMedium.class,
+					/* Json */		"'Mar 3, 1901'",
+					/* JsonT */		"'Mar 3, 1901'",
+					/* JsonR */		"'Mar 3, 1901'",
+					/* Xml */		"<string>Mar 3, 1901</string>",
+					/* XmlT */		"<string>Mar 3, 1901</string>",
+					/* XmlR */		"<string>Mar 3, 1901</string>\n",
+					/* XmlNs */		"<string>Mar 3, 1901</string>",
+					/* Html */		"<string>Mar 3, 1901</string>",
+					/* HtmlT */		"<string>Mar 3, 1901</string>",
+					/* HtmlR */		"<string>Mar 3, 1901</string>",
+					/* Uon */		"'Mar 3, 1901'",
+					/* UonT */		"'Mar 3, 1901'",
+					/* UonR */		"'Mar 3, 1901'",
+					/* UrlEnc */	"_value='Mar+3,+1901'",
+					/* UrlEncT */	"_value='Mar+3,+1901'",
+					/* UrlEncR */	"_value='Mar+3,+1901'",
+					/* MsgPack */	"AB4D617220332C2031393031",
+					/* MsgPackT */	"AB4D617220332C2031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Mar 3, 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date o) {
+						assertType(Date.class, o);
+					}
+				}
 			},
 			{	/* 16 */
-				"DateSwap.DateMedium/dateArray",
-				dateArray,
-				DateSwap.DateMedium.class,
-				/* Json */		"['Mar 3, 1901']",
-				/* JsonT */		"['Mar 3, 1901']",
-				/* JsonR */		"[\n\t'Mar 3, 1901'\n]",
-				/* Xml */		"<array><string>Mar 3, 1901</string></array>",
-				/* XmlT */		"<array><string>Mar 3, 1901</string></array>",
-				/* XmlR */		"<array>\n\t<string>Mar 3, 1901</string>\n</array>\n",
-				/* XmlNs */		"<array><string>Mar 3, 1901</string></array>",
-				/* Html */		"<ul><li>Mar 3, 1901</li></ul>",
-				/* HtmlT */		"<ul><li>Mar 3, 1901</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>Mar 3, 1901</li>\n</ul>\n",
-				/* Uon */		"@('Mar 3, 1901')",
-				/* UonT */		"@('Mar 3, 1901')",
-				/* UonR */		"@(\n\t'Mar 3, 1901'\n)",
-				/* UrlEnc */	"0='Mar+3,+1901'",
-				/* UrlEncT */	"0='Mar+3,+1901'",
-				/* UrlEncR */	"0='Mar+3,+1901'",
-				/* MsgPack */	"91AB4D617220332C2031393031",
-				/* MsgPackT */	"91AB4D617220332C2031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Mar 3, 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Date[]>(
+					"DateSwap.DateMedium/dateArray",
+					Date[].class,
+					dateArray,
+					DateSwap.DateMedium.class,
+					/* Json */		"['Mar 3, 1901']",
+					/* JsonT */		"['Mar 3, 1901']",
+					/* JsonR */		"[\n\t'Mar 3, 1901'\n]",
+					/* Xml */		"<array><string>Mar 3, 1901</string></array>",
+					/* XmlT */		"<array><string>Mar 3, 1901</string></array>",
+					/* XmlR */		"<array>\n\t<string>Mar 3, 1901</string>\n</array>\n",
+					/* XmlNs */		"<array><string>Mar 3, 1901</string></array>",
+					/* Html */		"<ul><li>Mar 3, 1901</li></ul>",
+					/* HtmlT */		"<ul><li>Mar 3, 1901</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>Mar 3, 1901</li>\n</ul>\n",
+					/* Uon */		"@('Mar 3, 1901')",
+					/* UonT */		"@('Mar 3, 1901')",
+					/* UonR */		"@(\n\t'Mar 3, 1901'\n)",
+					/* UrlEnc */	"0='Mar+3,+1901'",
+					/* UrlEncT */	"0='Mar+3,+1901'",
+					/* UrlEncR */	"0='Mar+3,+1901'",
+					/* MsgPack */	"91AB4D617220332C2031393031",
+					/* MsgPackT */	"91AB4D617220332C2031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Mar 3, 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Date[] o) {
+						assertType(Date.class, o[0]);
+					}
+				}
 			},
 			{	/* 17 */
-				"DateSwap.DateMedium/dateMap",
-				dateMap,
-				DateSwap.DateMedium.class,
-				/* Json */		"{foo:'Mar 3, 1901'}",
-				/* JsonT */		"{foo:'Mar 3, 1901'}",
-				/* JsonR */		"{\n\tfoo: 'Mar 3, 1901'\n}",
-				/* Xml */		"<object><foo>Mar 3, 1901</foo></object>",
-				/* XmlT */		"<object><foo>Mar 3, 1901</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>Mar 3, 1901</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>Mar 3, 1901</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 1901</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo='Mar 3, 1901')",
-				/* UonT */		"(foo='Mar 3, 1901')",
-				/* UonR */		"(\n\tfoo='Mar 3, 1901'\n)",
-				/* UrlEnc */	"foo='Mar+3,+1901'",
-				/* UrlEncT */	"foo='Mar+3,+1901'",
-				/* UrlEncR */	"foo='Mar+3,+1901'",
-				/* MsgPack */	"81A3666F6FAB4D617220332C2031393031",
-				/* MsgPackT */	"81A3666F6FAB4D617220332C2031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Mar 3, 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"DateSwap.DateMedium/dateMap",
+					getType(Map.class,String.class,Date.class),
+					dateMap,
+					DateSwap.DateMedium.class,
+					/* Json */		"{foo:'Mar 3, 1901'}",
+					/* JsonT */		"{foo:'Mar 3, 1901'}",
+					/* JsonR */		"{\n\tfoo: 'Mar 3, 1901'\n}",
+					/* Xml */		"<object><foo>Mar 3, 1901</foo></object>",
+					/* XmlT */		"<object><foo>Mar 3, 1901</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>Mar 3, 1901</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>Mar 3, 1901</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 1901</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo='Mar 3, 1901')",
+					/* UonT */		"(foo='Mar 3, 1901')",
+					/* UonR */		"(\n\tfoo='Mar 3, 1901'\n)",
+					/* UrlEnc */	"foo='Mar+3,+1901'",
+					/* UrlEncT */	"foo='Mar+3,+1901'",
+					/* UrlEncR */	"foo='Mar+3,+1901'",
+					/* MsgPack */	"81A3666F6FAB4D617220332C2031393031",
+					/* MsgPackT */	"81A3666F6FAB4D617220332C2031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Mar 3, 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Date.class, o.get("foo"));
+					}
+				}
 			},
 		});
 	}
 	
-	private Class<?> swapClass;
+	private final Class<?> swapClass;
 	
-	public DateSwapComboTest(
-			String label, 
-			Object in,
-			Class<?> swapClass, 
-			String oJson, String oJsonT, String oJsonR,
-			String oXml, String oXmlT, String oXmlR, String oXmlNs,
-			String oHtml, String oHtmlT, String oHtmlR,
-			String oUon, String oUonT, String oUonR,
-			String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
-			String oMsgPack, String oMsgPackT,
-			String oRdfXml, String oRdfXmlT, String oRdfXmlR
-		) {
-		super(
-			label,
-			in, 
-			oJson, oJsonT, oJsonR,
-			oXml, oXmlT, oXmlR, oXmlNs,
-			oHtml, oHtmlT, oHtmlR,
-			oUon, oUonT, oUonR,
-			oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
-			oMsgPack, oMsgPackT,
-			oRdfXml, oRdfXmlT, oRdfXmlR
-		);
-		this.swapClass = swapClass;
+	public DateSwapComboTest(ComboInput2<?> comboInput) {
+		super(comboInput);
+		this.swapClass = comboInput.swapClass;
+	}
+		
+	public static class ComboInput2<T> extends ComboInput<T> {
+		private final Class<?> swapClass;
+		
+		public ComboInput2(
+				String label,
+				Type type,
+				T in,
+				Class<?> swapClass,
+				String json,
+				String jsonT,
+				String jsonR,
+				String xml,
+				String xmlT,
+				String xmlR,
+				String xmlNs,
+				String html,
+				String htmlT,
+				String htmlR,
+				String uon,
+				String uonT,
+				String uonR,
+				String urlEncoding,
+				String urlEncodingT,
+				String urlEncodingR,
+				String msgPack,
+				String msgPackT,
+				String rdfXml,
+				String rdfXmlT,
+				String rdfXmlR
+			) {
+			super(label, type, in, json, jsonT, jsonR, xml, xmlT, xmlR, xmlNs, html, htmlT, htmlR, uon, uonT, uonR, urlEncoding, urlEncodingT, urlEncodingR, msgPack, msgPackT, rdfXml, rdfXmlT, rdfXmlR);
+			this.swapClass = swapClass;
+		}
 	}
 	
 	@BeforeClass

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
index 157c45e..caa5285 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
@@ -336,7 +336,7 @@ public class PojoQueryTest {
 		BeanSession session = BeanContext.DEFAULT.createSession();
 		List results;
 
-		List<D1> in = new AList<D1>() 
+		List<D1> in = new AList<D1>()
 			.append(new D1("foo"))
 			.append(new D1("bar"))
 			.append(new D1("baz"))

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
index 5754274..ec7bcf4 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
@@ -250,7 +250,7 @@ public class BasicXmlTest {
 						+"<k6 _type='null'/>"
 					+"</c>"
 				+"</object>",
-		   },
+			},
 			{
 				"BeanWithTypeName",
 				new BeanWithTypeName().init(),
@@ -501,16 +501,16 @@ public class BasicXmlTest {
 			{
 				"BeanWithXmlFormatAttrProperty",
 				new BeanWithXmlFormatAttrProperty().init(),
-         	"<object a='foo' b='123'/>",
-         	"<object a='foo' b='123'/>\n",
-         	"<object a='foo' b='123'/>",
+				"<object a='foo' b='123'/>",
+				"<object a='foo' b='123'/>\n",
+				"<object a='foo' b='123'/>",
 			},
 			{
 				"BeanWithXmlFormatAttrs",
 				new BeanWithXmlFormatAttrs().init(),
-         	"<object a='foo' b='123'/>",
-         	"<object a='foo' b='123'/>\n",
-         	"<object a='foo' b='123'/>",
+				"<object a='foo' b='123'/>",
+				"<object a='foo' b='123'/>\n",
+				"<object a='foo' b='123'/>",
 			},
 			{
 				"BeanWithXmlFormatElementProperty",

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
index 1926e12..c9a4fbe 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
@@ -149,7 +149,7 @@ public class XmlTest {
 	@Test
 	public void testBeanNameAnnotation() throws Exception {
 		String e =
-			  "<Person1>\n"
+			"<Person1>\n"
 			+ "	<name>John Smith</name>\n"
 			+ "	<age>123</age>\n"
 			+ "</Person1>\n";
@@ -180,7 +180,7 @@ public class XmlTest {
 	@Test
 	public void testTrimNulls() throws Exception {
 		String e =
-			  "<Person1>\n"
+			"<Person1>\n"
 			+ "	<age>123</age>\n"
 			+ "</Person1>\n";
 		String r = XmlSerializer.DEFAULT_SQ_READABLE.serialize(new Person1(null, 123));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
index 763d76e..0977ba0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
@@ -876,7 +876,7 @@ public class BeanContext extends Context {
 		notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
 
 		LinkedList<BeanFilter> lbf = new LinkedList<BeanFilter>();
- 		try {
+		try {
 			for (Class<?> c : pm.get(BEAN_beanFilters, Class[].class, new Class[0])) {
 				if (isParentClass(BeanFilter.class, c))
 					lbf.add((BeanFilter)c.newInstance());
@@ -888,10 +888,10 @@ public class BeanContext extends Context {
 		} catch (Exception e) {
 			throw new RuntimeException(e);
 		}
- 		beanFilters = lbf.toArray(new BeanFilter[0]);
+		beanFilters = lbf.toArray(new BeanFilter[0]);
 
 		LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
- 		try {
+		try {
 			for (Class<?> c : pm.get(BEAN_pojoSwaps, Class[].class, new Class[0])) {
 				if (isParentClass(PojoSwap.class, c))
 					lpf.add((PojoSwap<?,?>)c.newInstance());
@@ -901,13 +901,13 @@ public class BeanContext extends Context {
 		} catch (Exception e) {
 			throw new RuntimeException(e);
 		}
- 		pojoSwaps = lpf.toArray(new PojoSwap[0]);
+		pojoSwaps = lpf.toArray(new PojoSwap[0]);
 
- 		implClasses = new TreeMap<Class<?>,Class<?>>(new ClassComparator());
- 		Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, Class.class, null);
- 		if (m != null)
-	 		for (Map.Entry<Class,Class> e : m.entrySet())
-	 			implClasses.put(e.getKey(), e.getValue());
+		implClasses = new TreeMap<Class<?>,Class<?>>(new ClassComparator());
+		Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, Class.class, null);
+		if (m != null)
+			for (Map.Entry<Class,Class> e : m.entrySet())
+				implClasses.put(e.getKey(), e.getValue());
 		implKeyClasses = implClasses.keySet().toArray(new Class[0]);
 		implValueClasses = implClasses.values().toArray(new Class[0]);
 
@@ -1112,9 +1112,9 @@ public class BeanContext extends Context {
 			ClassMeta<?> ce = c.length == pos ? object() : getTypedClassMeta(c, pos);
 			return (ce.isObject() ? cm : new ClassMeta(cm, null, null, ce));
 		} else if (cm.isMap()) {
-			 ClassMeta<?> ck = c.length == pos ? object() : c[pos++];
-			 ClassMeta<?> cv = c.length == pos ? object() : getTypedClassMeta(c, pos);
-			 return (ck.isObject() && cv.isObject() ? cm : new ClassMeta(cm, ck, cv, null));
+			ClassMeta<?> ck = c.length == pos ? object() : c[pos++];
+			ClassMeta<?> cv = c.length == pos ? object() : getTypedClassMeta(c, pos);
+			return (ck.isObject() && cv.isObject() ? cm : new ClassMeta(cm, ck, cv, null));
 		}
 		return cm;
 	}
@@ -1123,8 +1123,19 @@ public class BeanContext extends Context {
 		if (o == null)
 			return null;
 
-		if (o instanceof ClassMeta)
-			return (ClassMeta)o;
+		if (o instanceof ClassMeta) {
+			ClassMeta<?> cm = (ClassMeta)o;
+
+			// This classmeta could have been created by a different context.
+			// Need to re-resolve it to pick up PojoSwaps and stuff on this context.
+			if (cm.getBeanContext() == this)
+				return cm;
+			if (cm.isMap())
+				return getClassMeta(cm.innerClass, cm.getKeyType(), cm.getValueType());
+			if (cm.isCollection())
+				return getClassMeta(cm.innerClass, cm.getElementType());
+			return getClassMeta(cm.innerClass);
+		}
 
 		Class c = resolve(o, typeVarImpls);
 
@@ -1161,7 +1172,7 @@ public class BeanContext extends Context {
 		return rawType;
 	}
 
-	/** 
+	/**
 	 * Convert a Type to a Class if possible.
 	 * Return null if not possible.
 	 */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
index 219211d..0715bb5 100644
--- a/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
@@ -148,6 +148,13 @@ public class CsvSerializerBuilder extends SerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public CsvSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public CsvSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
index 1b8269e..0087b29 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
@@ -60,6 +60,33 @@ public class HtmlElementContainer extends HtmlElement {
 	}
 
 	/**
+	 * Returns the child node at the specified address.
+	 * <p>
+	 * Indexes are zero-indexed.
+	 * <p>
+	 * For example, calling <code>getChild(1,2,3);</code> will return the 4th child of the 3rd child of the 2nd child.
+	 *
+	 * @param index The child indexes.
+	 * @return The child node, or <jk>null</jk> if it doesn't point to a valid child.
+	 */
+	public Object getChild(int...index) {
+		if (index.length == 0)
+			return null;
+		if (index.length == 1)
+			return getChild(index[0]);
+		Object c = this;
+		for (int i = 0; i < index.length; i++) {
+			if (c instanceof HtmlElementMixed)
+				c = ((HtmlElementMixed)c).getChild(index[i]);
+			else if (c instanceof HtmlElementContainer)
+				c = ((HtmlElementContainer)c).getChild(index[i]);
+			else
+				return null;
+		}
+		return c;
+	}
+
+	/**
 	 * Returns the child node at the specified index.
 	 *
 	 * @param type The class type of the node.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
index 0430528..869391a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
@@ -61,6 +61,33 @@ public class HtmlElementMixed extends HtmlElement {
 	}
 
 	/**
+	 * Returns the child node at the specified address.
+	 * <p>
+	 * Indexes are zero-indexed.
+	 * <p>
+	 * For example, calling <code>getChild(1,2,3);</code> will return the 4th child of the 3rd child of the 2nd child.
+	 *
+	 * @param index The child indexes.
+	 * @return The child node, or <jk>null</jk> if it doesn't point to a valid child.
+	 */
+	public Object getChild(int...index) {
+		if (index.length == 0)
+			return null;
+		if (index.length == 1)
+			return getChild(index[0]);
+		Object c = this;
+		for (int i = 0; i < index.length; i++) {
+			if (c instanceof HtmlElementMixed)
+				c = ((HtmlElementMixed)c).getChild(index[i]);
+			else if (c instanceof HtmlElementContainer)
+				c = ((HtmlElementContainer)c).getChild(index[i]);
+			else
+				return null;
+		}
+		return c;
+	}
+
+	/**
 	 * Returns the child node at the specified index.
 	 *
 	 * @param type The class type of the node.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index abb55c8..168ac5c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -202,7 +202,7 @@ public class HtmlSerializer extends XmlSerializer {
 	 * @throws IOException If a problem occurred trying to send output to the writer.
 	 */
 	private HtmlWriter doSerialize(HtmlSerializerSession session, Object o, HtmlWriter w) throws Exception {
-		serializeAnything(session, w, o, null, null, session.getInitialDepth()-1, null, true);
+		serializeAnything(session, w, o, session.getExpectedRootType(o), null, session.getInitialDepth()-1, null, true);
 		return w;
 	}
 
@@ -284,14 +284,14 @@ public class HtmlSerializer extends XmlSerializer {
 				cr = CR_SIMPLE;
 
 			} else if (sType.isNumber()) {
-				if (eType.isNumber())
+				if (eType.isNumber() && ! isRoot)
 					out.append(o);
 				else
 					out.sTag("number").append(o).eTag("number");
 				cr = CR_SIMPLE;
 
 			} else if (sType.isBoolean()) {
-				if (eType.isBoolean())
+				if (eType.isBoolean() && ! isRoot)
 					out.append(o);
 				else
 					out.sTag("boolean").append(o).eTag("boolean");
@@ -353,8 +353,8 @@ public class HtmlSerializer extends XmlSerializer {
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	private void serializeMap(HtmlSerializerSession session, HtmlWriter out, Map m, ClassMeta<?> sType, ClassMeta<?> eKeyType, ClassMeta<?> eValueType, String typeName, BeanPropertyMeta ppMeta) throws Exception {
 
-		ClassMeta<?> keyType = eKeyType == null ? sType.getKeyType() : eKeyType;
-		ClassMeta<?> valueType = eValueType == null ? sType.getValueType() : eValueType;
+		ClassMeta<?> keyType = eKeyType == null ? session.string() : eKeyType;
+		ClassMeta<?> valueType = eValueType == null ? session.object() : eValueType;
 		ClassMeta<?> aType = session.getClassMetaForObject(m);       // The actual type
 
 		int i = session.getIndent();
@@ -504,6 +504,7 @@ public class HtmlSerializer extends XmlSerializer {
 				out.oTag(i+1, "tr");
 				String typeName = (cm == null ? null : cm.getDictionaryName());
 				String typeProperty = session.getBeanTypePropertyName(cm);
+
 				if (typeName != null && eType.getElementType() != cm)
 					out.attr(typeProperty, typeName);
 				out.cTag().nl();
@@ -516,7 +517,7 @@ public class HtmlSerializer extends XmlSerializer {
 
 					for (Object k : th) {
 						out.sTag(i+2, "td");
-						ContentResult cr = serializeAnything(session, out, m2.get(k), seType, session.toString(k), 2, null, false);
+						ContentResult cr = serializeAnything(session, out, m2.get(k), eType.getElementType(), session.toString(k), 2, null, false);
 						if (cr == CR_NORMAL)
 							out.i(i+2);
 						out.eTag("td").nl();
@@ -549,7 +550,7 @@ public class HtmlSerializer extends XmlSerializer {
 			out.append('>').nl();
 			for (Object o : c) {
 				out.sTag(i+1, "li");
-				ContentResult cr = serializeAnything(session, out, o, seType, name, 1, null, false);
+				ContentResult cr = serializeAnything(session, out, o, eType.getElementType(), name, 1, null, false);
 				if (cr == CR_NORMAL)
 					out.i(i+1);
 				out.eTag("li").nl();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
index 7c9a923..fe0a7c5 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
@@ -321,6 +321,12 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder {
 	}
 
 	@Override /* SerializerBuilder */
+	public HtmlSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
+	@Override /* SerializerBuilder */
 	public HtmlSerializerBuilder sortMaps(boolean value) {
 		super.sortMaps(value);
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
index c591b91..c4d7d40 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
@@ -149,6 +149,12 @@ public class JsoSerializerBuilder extends SerializerBuilder {
 		return this;
 	}
 
+	@Override /* SerializerBuilder */
+	public JsoSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public JsoSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
index 104d838..3e28eab 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
@@ -60,7 +60,7 @@ public final class JsonSchemaSerializer extends JsonSerializer {
 	}
 
 	@Override /* CoreObject */
- 	protected ObjectMap getOverrideProperties() {
+	protected ObjectMap getOverrideProperties() {
 		return super.getOverrideProperties().append(SERIALIZER_detectRecursions, true).append(SERIALIZER_ignoreRecursions, true);
 	}
 
@@ -78,7 +78,7 @@ public final class JsonSchemaSerializer extends JsonSerializer {
 	protected void doSerialize(SerializerSession session, Object o) throws Exception {
 		JsonSerializerSession s = (JsonSerializerSession)session;
 		ObjectMap schema = getSchema(s, session.getClassMetaForObject(o), "root", null);
-		serializeAnything(s, s.getWriter(), schema, null, "root", null);
+		serializeAnything(s, s.getWriter(), schema, s.getExpectedRootType(o), "root", null);
 	}
 
 	/*

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
index aab5768..9a8616f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
@@ -165,6 +165,13 @@ public class JsonSchemaSerializerBuilder extends JsonSerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public JsonSchemaSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public JsonSchemaSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
index 7464495..91945d4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -387,6 +387,6 @@ public class JsonSerializer extends WriterSerializer {
 	@Override /* Serializer */
 	protected void doSerialize(SerializerSession session, Object o) throws Exception {
 		JsonSerializerSession s = (JsonSerializerSession)session;
-		serializeAnything(s, s.getWriter(), o, null, "root", null);
+		serializeAnything(s, s.getWriter(), o, s.getExpectedRootType(o), "root", null);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
index b226459..97323aa 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
@@ -214,6 +214,12 @@ public class JsonSerializerBuilder extends SerializerBuilder {
 		return this;
 	}
 
+	@Override /* SerializerBuilder */
+	public JsonSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public JsonSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 9834195..89e736b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -217,6 +217,6 @@ public class MsgPackSerializer extends OutputStreamSerializer {
 	@Override /* Serializer */
 	protected void doSerialize(SerializerSession session, Object o) throws Exception {
 		MsgPackSerializerSession s = (MsgPackSerializerSession)session;
-		serializeAnything(s, s.getOutputStream(), o, null, "root", null);
+		serializeAnything(s, s.getOutputStream(), o, s.getExpectedRootType(o), "root", null);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index de0fb45..f909e14 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -148,6 +148,13 @@ public class MsgPackSerializerBuilder extends SerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public MsgPackSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public MsgPackSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
index 8ab1255..d56aee6 100644
--- a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
@@ -148,6 +148,13 @@ public class PlainTextSerializerBuilder extends SerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public PlainTextSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+
 	@Override /* CoreObjectBuilder */
 	public PlainTextSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);



[08/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
index 3d43c1e..4a39c33 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5TemplateComboTest.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import static org.apache.juneau.TestUtils.*;
+
 import static org.apache.juneau.dto.html5.HtmlBuilder.*;
 
 import java.util.*;
@@ -32,29 +34,37 @@ public class Html5TemplateComboTest extends ComboTest {
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
 			{
-				"FormTemplate-1",
-				new FormTemplate("myaction", 123, true),
-				/* Json */		"{a:{action:'myaction'},c:[{_type:'input',a:{type:'text',name:'v1',value:123}},{_type:'input',a:{type:'text',name:'v2',value:true}}]}",
-				/* JsonT */		"{a:{action:'myaction'},c:[{t:'input',a:{type:'text',name:'v1',value:123}},{t:'input',a:{type:'text',name:'v2',value:true}}]}",
-				/* JsonR */		"{\n\ta: {\n\t\taction: 'myaction'\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'input',\n\t\t\ta: {\n\t\t\t\ttype: 'text',\n\t\t\t\tname: 'v1',\n\t\t\t\tvalue: 123\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'input',\n\t\t\ta: {\n\t\t\t\ttype: 'text',\n\t\t\t\tname: 'v2',\n\t\t\t\tvalue: true\n\t\t\t}\n\t\t}\n\t]\n}",
-				/* Xml */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
-				/* XmlT */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
-				/* XmlR */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>\n",
-				/* XmlNs */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
-				/* Html */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
-				/* HtmlT */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
-				/* HtmlR */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>\n",
-				/* Uon */		"(a=(action=myaction),c=@((_type=input,a=(type=text,name=v1,value=123)),(_type=input,a=(type=text,name=v2,value=true))))",
-				/* UonT */		"(a=(action=myaction),c=@((t=input,a=(type=text,name=v1,value=123)),(t=input,a=(type=text,name=v2,value=true))))",
-				/* UonR */		"(\n\ta=(\n\t\taction=myaction\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=input,\n\t\t\ta=(\n\t\t\t\ttype=text,\n\t\t\t\tname=v1,\n\t\t\t\tvalue=123\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=input,\n\t\t\ta=(\n\t\t\t\ttype=text,\n\t\t\t\tname=v2,\n\t\t\t\tvalue=true\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"a=(action=myaction)&c=@((_type=input,a=(type=text,name=v1,value=123)),(_type=input,a=(type=text,name=v2,value=true)))",
-				/* UrlEncT */	"a=(action=myaction)&c=@((t=input,a=(type=text,name=v1,value=123)),(t=input,a=(type=text,name=v2,value=true)))",
-				/* UrlEncR */	"a=(\n\taction=myaction\n)\n&c=@(\n\t(\n\t\t_type=input,\n\t\ta=(\n\t\t\ttype=text,\n\t\t\tname=v1,\n\t\t\tvalue=123\n\t\t)\n\t),\n\t(\n\t\t_type=input,\n\t\ta=(\n\t\t\ttype=text,\n\t\t\tname=v2,\n\t\t\tvalue=true\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A16181A6616374696F6EA86D79616374696F6EA1639282A55F74797065A5696E707574A16183A474797065A474657874A46E616D65A27631A576616C75657B82A55F74797065A5696E707574A16183A474797065A474657874A46E616D65A27632A576616C7565C3",
-				/* MsgPackT */	"82A16181A6616374696F6EA86D79616374696F6EA1639282A174A5696E707574A16183A474797065A474657874A46E616D65A27631A576616C75657B82A174A5696E707574A16183A474797065A474657874A46E616D65A27632A576616C7565C3",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:a rdf:parseType='Resource'>\n<jp:action>myaction</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v1</jp:name>\n<jp:value>123</jp:value>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v2</jp:name>\n<jp:value>true</jp:value>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:a rdf:parseType='Resource'>\n<jp:action>myaction</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v1</jp:name>\n<jp:value>123</jp:value>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v2</jp:name>\n<jp:value>true</jp:value>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:a rdf:parseType='Resource'>\n      <jp:action>myaction</jp:action>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>input</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:type>text</jp:type>\n            <jp:name>v1</jp:name>\n            <jp:value>123</jp:value>\n          </jp:a>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>input</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:type>text</jp:type>\n            <jp:name>v2</jp:name>\n            <jp:value>true</jp:value>\n          </jp:a>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<FormTemplate>(
+					"FormTemplate-1",
+					FormTemplate.class,
+					new FormTemplate("myaction", 123, true),
+					/* Json */		"{a:{action:'myaction'},c:[{_type:'input',a:{type:'text',name:'v1',value:123}},{_type:'input',a:{type:'text',name:'v2',value:true}}]}",
+					/* JsonT */		"{a:{action:'myaction'},c:[{t:'input',a:{type:'text',name:'v1',value:123}},{t:'input',a:{type:'text',name:'v2',value:true}}]}",
+					/* JsonR */		"{\n\ta: {\n\t\taction: 'myaction'\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'input',\n\t\t\ta: {\n\t\t\t\ttype: 'text',\n\t\t\t\tname: 'v1',\n\t\t\t\tvalue: 123\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'input',\n\t\t\ta: {\n\t\t\t\ttype: 'text',\n\t\t\t\tname: 'v2',\n\t\t\t\tvalue: true\n\t\t\t}\n\t\t}\n\t]\n}",
+					/* Xml */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
+					/* XmlT */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
+					/* XmlR */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>\n",
+					/* XmlNs */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
+					/* Html */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
+					/* HtmlT */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>",
+					/* HtmlR */		"<form action='myaction'><input type='text' name='v1' value='123'/><input type='text' name='v2' value='true'/></form>\n",
+					/* Uon */		"(a=(action=myaction),c=@((_type=input,a=(type=text,name=v1,value=123)),(_type=input,a=(type=text,name=v2,value=true))))",
+					/* UonT */		"(a=(action=myaction),c=@((t=input,a=(type=text,name=v1,value=123)),(t=input,a=(type=text,name=v2,value=true))))",
+					/* UonR */		"(\n\ta=(\n\t\taction=myaction\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=input,\n\t\t\ta=(\n\t\t\t\ttype=text,\n\t\t\t\tname=v1,\n\t\t\t\tvalue=123\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=input,\n\t\t\ta=(\n\t\t\t\ttype=text,\n\t\t\t\tname=v2,\n\t\t\t\tvalue=true\n\t\t\t)\n\t\t)\n\t)\n)",
+					/* UrlEnc */	"a=(action=myaction)&c=@((_type=input,a=(type=text,name=v1,value=123)),(_type=input,a=(type=text,name=v2,value=true)))",
+					/* UrlEncT */	"a=(action=myaction)&c=@((t=input,a=(type=text,name=v1,value=123)),(t=input,a=(type=text,name=v2,value=true)))",
+					/* UrlEncR */	"a=(\n\taction=myaction\n)\n&c=@(\n\t(\n\t\t_type=input,\n\t\ta=(\n\t\t\ttype=text,\n\t\t\tname=v1,\n\t\t\tvalue=123\n\t\t)\n\t),\n\t(\n\t\t_type=input,\n\t\ta=(\n\t\t\ttype=text,\n\t\t\tname=v2,\n\t\t\tvalue=true\n\t\t)\n\t)\n)",
+					/* MsgPack */	"82A16181A6616374696F6EA86D79616374696F6EA1639282A55F74797065A5696E707574A16183A474797065A474657874A46E616D65A27631A576616C75657B82A55F74797065A5696E707574A16183A474797065A474657874A46E616D65A27632A576616C7565C3",
+					/* MsgPackT */	"82A16181A6616374696F6EA86D79616374696F6EA1639282A174A5696E707574A16183A474797065A474657874A46E616D65A27631A576616C75657B82A174A5696E707574A16183A474797065A474657874A46E616D65A27632A576616C7565C3",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:a rdf:parseType='Resource'>\n<jp:action>myaction</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v1</jp:name>\n<jp:value>123</jp:value>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v2</jp:name>\n<jp:value>true</jp:value>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:a rdf:parseType='Resource'>\n<jp:action>myaction</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v1</jp:name>\n<jp:value>123</jp:value>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n<jp:name>v2</jp:name>\n<jp:value>true</jp:value>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:a rdf:parseType='Resource'>\n      <jp:action>myaction</jp:action>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>input</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:type>text</jp:type>\n            <jp:name>v1</jp:name>\n            <jp:value>123</jp:value>\n          </jp:a>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>input</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:type>text</jp:type>\n            <jp:name>v2</jp:name>\n            <jp:value>true</jp:value>\n          </jp:a>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(FormTemplate o) {
+						assertType(FormTemplate.class, o);
+					}
+				}
 			},
 		});
 	}
@@ -87,27 +97,7 @@ public class Html5TemplateComboTest extends ComboTest {
 		}
 	}
 	
-	public Html5TemplateComboTest(
-			String label, 
-			Object in, 
-			String oJson, String oJsonT, String oJsonR,
-			String oXml, String oXmlT, String oXmlR, String oXmlNs,
-			String oHtml, String oHtmlT, String oHtmlR,
-			String oUon, String oUonT, String oUonR,
-			String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
-			String oMsgPack, String oMsgPackT,
-			String oRdfXml, String oRdfXmlT, String oRdfXmlR
-		) {
-		super(
-			label,
-			in, 
-			oJson, oJsonT, oJsonR,
-			oXml, oXmlT, oXmlR, oXmlNs,
-			oHtml, oHtmlT, oHtmlR,
-			oUon, oUonT, oUonR,
-			oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
-			oMsgPack, oMsgPackT,
-			oRdfXml, oRdfXmlT, oRdfXmlR
-		);
+	public Html5TemplateComboTest(ComboInput<?> comboInput) {
+		super(comboInput);
 	}
 }


[06/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
index 8c77649..dc59199 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
@@ -29,11 +29,11 @@ public class CommonParserTest {
 	private String wrap(String in) {
 		return ""
 			+ "<rdf:RDF"
-		    + " xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'"
-		    + " xmlns:j='http://www.apache.org/juneau/'"
-		    + " xmlns:jp='http://www.apache.org/juneaubp/'>"
-		    + in
-		    + "</rdf:RDF>";
+			+ " xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'"
+			+ " xmlns:j='http://www.apache.org/juneau/'"
+			+ " xmlns:jp='http://www.apache.org/juneaubp/'>"
+			+ in
+			+ "</rdf:RDF>";
 	}
 
 	private String strip(String s) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
index ef4bca6..20bb71b 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
@@ -46,35 +46,35 @@ public class RdfParserTest {
 
 		// Create a new serializer with readable output.
 		RdfSerializer s = new RdfSerializerBuilder().xmlabbrev()
-		   .property(RDF_rdfxml_tab, 3)
-		   .sq()
-		   .addRootProperty(true)
-		   .build();
+			.property(RDF_rdfxml_tab, 3)
+			.sq()
+			.addRootProperty(true)
+			.build();
 
 		String expected =
-			 "<rdf:RDF a='http://ns/' a1='http://ns2/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-			 + "\n   <rdf:Description about='http://test/a'>"
-			 + "\n      <a:f1>1</a:f1>"
-			 + "\n      <a:f2>f2</a:f2>"
-			 + "\n      <a:f4a rdf:resource='http://test/a'/>"
-			 + "\n      <a:f4b rdf:resource='http://test/external'/>"
-			 + "\n      <a:f5>1999-01-01T00:00:00Z</a:f5>"
-			 + "\n      <a:f6>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>"
-			 + "\n               <rdf:Description about='http://test/a/a1'>"
-			 + "\n                  <a1:f1>1</a1:f1>"
-			 + "\n                  <a1:f2>f2</a1:f2>"
-			 + "\n                  <a1:f4a rdf:resource='http://test/a'/>"
-			 + "\n                  <a1:f4b rdf:resource='http://test/external'/>"
-			 + "\n                  <a1:f5>1999-01-01T00:00:00Z</a1:f5>"
-			 + "\n               </rdf:Description>"
-			 + "\n            </rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </a:f6>"
-			 + "\n      <j:root>true</j:root>"
-			 + "\n   </rdf:Description>"
-			 + "\n</rdf:RDF>";
+			"<rdf:RDF a='http://ns/' a1='http://ns2/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
+			+ "\n   <rdf:Description about='http://test/a'>"
+			+ "\n      <a:f1>1</a:f1>"
+			+ "\n      <a:f2>f2</a:f2>"
+			+ "\n      <a:f4a rdf:resource='http://test/a'/>"
+			+ "\n      <a:f4b rdf:resource='http://test/external'/>"
+			+ "\n      <a:f5>1999-01-01T00:00:00Z</a:f5>"
+			+ "\n      <a:f6>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>"
+			+ "\n               <rdf:Description about='http://test/a/a1'>"
+			+ "\n                  <a1:f1>1</a1:f1>"
+			+ "\n                  <a1:f2>f2</a1:f2>"
+			+ "\n                  <a1:f4a rdf:resource='http://test/a'/>"
+			+ "\n                  <a1:f4b rdf:resource='http://test/external'/>"
+			+ "\n                  <a1:f5>1999-01-01T00:00:00Z</a1:f5>"
+			+ "\n               </rdf:Description>"
+			+ "\n            </rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </a:f6>"
+			+ "\n      <j:root>true</j:root>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 
 		String rdfXml = s.serialize(a);
 		assertXmlEquals(expected, rdfXml);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java b/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
index c8bfebb..840e272 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
@@ -33,9 +33,9 @@ public class RdfTest {
 		String expected;
 
 		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev()
-		   .property(RDF_rdfxml_tab, 3)
-		   .sq()
-		   .addRootProperty(true);
+			.property(RDF_rdfxml_tab, 3)
+			.sq()
+			.addRootProperty(true);
 		RdfParser p = new RdfParserBuilder().xml().build();
 
 		//--------------------------------------------------------------------------------
@@ -126,25 +126,25 @@ public class RdfTest {
 		//--------------------------------------------------------------------------------
 		s.collectionFormat(RdfCollectionFormat.LIST);
 		expected =
-			   "<rdf:RDF a='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-			 + "\n   <rdf:Description about='http://test/a'>"
-			 + "\n      <a:f2 parseType='Resource'>"
-			 + "\n         <rdf:first>f2a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f2b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </a:f2>"
-			 + "\n      <a:f3 parseType='Resource'>"
-			 + "\n         <rdf:first>1</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>2</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </a:f3>"
-			 + "\n      <j:root>true</j:root>"
-			 + "\n   </rdf:Description>"
-			 + "\n</rdf:RDF>";
+			"<rdf:RDF a='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
+			+ "\n   <rdf:Description about='http://test/a'>"
+			+ "\n      <a:f2 parseType='Resource'>"
+			+ "\n         <rdf:first>f2a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f2b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </a:f2>"
+			+ "\n      <a:f3 parseType='Resource'>"
+			+ "\n         <rdf:first>1</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>2</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </a:f3>"
+			+ "\n      <j:root>true</j:root>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 		rdfXml = s.build().serialize(a);
 		assertXmlEquals(expected, rdfXml);
 
@@ -158,12 +158,12 @@ public class RdfTest {
 		expected =
 			"<rdf:RDF a='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
 			+ "\n   <rdf:Description about='http://test/a'>"
-			 + "\n      <a:f2>f2a</a:f2>"
-			 + "\n      <a:f2>f2b</a:f2>"
-			 + "\n      <a:f3>1</a:f3>"
-			 + "\n      <a:f3>2</a:f3>"
-			 + "\n      <j:root>true</j:root>"
-			 + "\n   </rdf:Description>"
+			+ "\n      <a:f2>f2a</a:f2>"
+			+ "\n      <a:f2>f2b</a:f2>"
+			+ "\n      <a:f3>1</a:f3>"
+			+ "\n      <a:f3>2</a:f3>"
+			+ "\n      <j:root>true</j:root>"
+			+ "\n   </rdf:Description>"
 			+ "\n</rdf:RDF>";
 		rdfXml = s.build().serialize(a);
 		assertXmlEquals(expected, rdfXml);
@@ -177,25 +177,25 @@ public class RdfTest {
 	@Rdf(prefix="a", namespace="http://ns/")
 	public static class A {
 		@Rdf(beanUri=true) public URI f1;
-      public String[] f2;
-      public List<Integer> f3;
+		public String[] f2;
+		public List<Integer> f3;
 
-      public A init() throws Exception {
-    	  f1 = new URI("http://test/a");
-    	  f2 = new String[]{"f2a","f2b"};
-    	  f3 = Arrays.asList(new Integer[]{1,2});
-    	  return this;
-      }
-   }
+		public A init() throws Exception {
+			f1 = new URI("http://test/a");
+			f2 = new String[]{"f2a","f2b"};
+			f3 = Arrays.asList(new Integer[]{1,2});
+			return this;
+		}
+	}
 
 	@Test
 	public void testCollectionFormatAnnotations() throws Exception {
 		B b = new B().init(), b2;
 		String rdfXml, expected;
 		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev()
-		   .property(RDF_rdfxml_tab, 3)
-		   .sq()
-		   .addRootProperty(true);
+			.property(RDF_rdfxml_tab, 3)
+			.sq()
+			.addRootProperty(true);
 		RdfParser p = RdfParser.DEFAULT_XML;
 
 		//--------------------------------------------------------------------------------
@@ -203,65 +203,65 @@ public class RdfTest {
 		//--------------------------------------------------------------------------------
 
 		expected =
-			 "<rdf:RDF b='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-			 + "\n   <rdf:Description about='http://test/b'>"
-			 + "\n      <b:f2>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f2a</rdf:li>"
-			 + "\n            <rdf:li>f2b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f2>"
-			 + "\n      <b:f3>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f3a</rdf:li>"
-			 + "\n            <rdf:li>f3b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f3>"
-			 + "\n      <b:f4 parseType='Resource'>"
-			 + "\n         <rdf:first>f4a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f4b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </b:f4>"
-			 + "\n      <b:f5>f5a</b:f5>"
-			 + "\n      <b:f5>f5b</b:f5>"
-			 + "\n      <b:f6>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f6a</rdf:li>"
-			 + "\n            <rdf:li>f6b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f6>"
-			 + "\n      <b:f7>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f7a</rdf:li>"
-			 + "\n            <rdf:li>f7b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f7>"
-			 + "\n      <b:f8>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f8a</rdf:li>"
-			 + "\n            <rdf:li>f8b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f8>"
-			 + "\n      <b:f9 parseType='Resource'>"
-			 + "\n         <rdf:first>f9a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f9b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </b:f9>"
-			 + "\n      <b:fa>faa</b:fa>"
-			 + "\n      <b:fa>fab</b:fa>"
-			 + "\n      <b:fb>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>fba</rdf:li>"
-			 + "\n            <rdf:li>fbb</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:fb>"
-			 + "\n      <j:root>true</j:root>"
-			 + "\n   </rdf:Description>"
-			 + "\n</rdf:RDF>";
+			"<rdf:RDF b='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
+			+ "\n   <rdf:Description about='http://test/b'>"
+			+ "\n      <b:f2>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f2a</rdf:li>"
+			+ "\n            <rdf:li>f2b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f2>"
+			+ "\n      <b:f3>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f3a</rdf:li>"
+			+ "\n            <rdf:li>f3b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f3>"
+			+ "\n      <b:f4 parseType='Resource'>"
+			+ "\n         <rdf:first>f4a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f4b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </b:f4>"
+			+ "\n      <b:f5>f5a</b:f5>"
+			+ "\n      <b:f5>f5b</b:f5>"
+			+ "\n      <b:f6>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f6a</rdf:li>"
+			+ "\n            <rdf:li>f6b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f6>"
+			+ "\n      <b:f7>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f7a</rdf:li>"
+			+ "\n            <rdf:li>f7b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f7>"
+			+ "\n      <b:f8>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f8a</rdf:li>"
+			+ "\n            <rdf:li>f8b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f8>"
+			+ "\n      <b:f9 parseType='Resource'>"
+			+ "\n         <rdf:first>f9a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f9b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </b:f9>"
+			+ "\n      <b:fa>faa</b:fa>"
+			+ "\n      <b:fa>fab</b:fa>"
+			+ "\n      <b:fb>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>fba</rdf:li>"
+			+ "\n            <rdf:li>fbb</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:fb>"
+			+ "\n      <j:root>true</j:root>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 		rdfXml = s.build().serialize(b);
 		assertXmlEquals(expected, rdfXml);
 
@@ -273,65 +273,65 @@ public class RdfTest {
 		//--------------------------------------------------------------------------------
 		s.collectionFormat(RdfCollectionFormat.BAG);
 		expected =
-			 "<rdf:RDF b='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-			 + "\n   <rdf:Description about='http://test/b'>"
-			 + "\n      <b:f2>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f2a</rdf:li>"
-			 + "\n            <rdf:li>f2b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f2>"
-			 + "\n      <b:f3>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f3a</rdf:li>"
-			 + "\n            <rdf:li>f3b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f3>"
-			 + "\n      <b:f4 parseType='Resource'>"
-			 + "\n         <rdf:first>f4a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f4b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </b:f4>"
-			 + "\n      <b:f5>f5a</b:f5>"
-			 + "\n      <b:f5>f5b</b:f5>"
-			 + "\n      <b:f6>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f6a</rdf:li>"
-			 + "\n            <rdf:li>f6b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f6>"
-			 + "\n      <b:f7>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f7a</rdf:li>"
-			 + "\n            <rdf:li>f7b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f7>"
-			 + "\n      <b:f8>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f8a</rdf:li>"
-			 + "\n            <rdf:li>f8b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f8>"
-			 + "\n      <b:f9 parseType='Resource'>"
-			 + "\n         <rdf:first>f9a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f9b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </b:f9>"
-			 + "\n      <b:fa>faa</b:fa>"
-			 + "\n      <b:fa>fab</b:fa>"
-			 + "\n      <b:fb>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>fba</rdf:li>"
-			 + "\n            <rdf:li>fbb</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:fb>"
-			 + "\n      <j:root>true</j:root>"
-			 + "\n   </rdf:Description>"
-			 + "\n</rdf:RDF>";
+			"<rdf:RDF b='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
+			+ "\n   <rdf:Description about='http://test/b'>"
+			+ "\n      <b:f2>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f2a</rdf:li>"
+			+ "\n            <rdf:li>f2b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f2>"
+			+ "\n      <b:f3>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f3a</rdf:li>"
+			+ "\n            <rdf:li>f3b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f3>"
+			+ "\n      <b:f4 parseType='Resource'>"
+			+ "\n         <rdf:first>f4a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f4b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </b:f4>"
+			+ "\n      <b:f5>f5a</b:f5>"
+			+ "\n      <b:f5>f5b</b:f5>"
+			+ "\n      <b:f6>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f6a</rdf:li>"
+			+ "\n            <rdf:li>f6b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f6>"
+			+ "\n      <b:f7>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f7a</rdf:li>"
+			+ "\n            <rdf:li>f7b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f7>"
+			+ "\n      <b:f8>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f8a</rdf:li>"
+			+ "\n            <rdf:li>f8b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f8>"
+			+ "\n      <b:f9 parseType='Resource'>"
+			+ "\n         <rdf:first>f9a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f9b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </b:f9>"
+			+ "\n      <b:fa>faa</b:fa>"
+			+ "\n      <b:fa>fab</b:fa>"
+			+ "\n      <b:fb>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>fba</rdf:li>"
+			+ "\n            <rdf:li>fbb</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:fb>"
+			+ "\n      <j:root>true</j:root>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 
 		rdfXml = s.build().serialize(b);
 		assertXmlEquals(expected, rdfXml);
@@ -366,20 +366,20 @@ public class RdfTest {
 		public BE fb;
 
 		public B init() throws Exception {
-    	  f1 = new URI("http://test/b");
-    	  f2 = new String[]{"f2a","f2b"};
-    	  f3 = new String[]{"f3a","f3b"};
-    	  f4 = new String[]{"f4a","f4b"};
-    	  f5 = new String[]{"f5a","f5b"};
-    	  f6 = new String[]{"f6a","f6b"};
-    	  f7 = new BA().append("f7a","f7b");
-    	  f8 = new BB().append("f8a","f8b");
-    	  f9 = new BC().append("f9a","f9b");
-    	  fa = new BD().append("faa","fab");
-    	  fb = new BE().append("fba","fbb");
-    	  return this;
-      }
-   }
+			f1 = new URI("http://test/b");
+			f2 = new String[]{"f2a","f2b"};
+			f3 = new String[]{"f3a","f3b"};
+			f4 = new String[]{"f4a","f4b"};
+			f5 = new String[]{"f5a","f5b"};
+			f6 = new String[]{"f6a","f6b"};
+			f7 = new BA().append("f7a","f7b");
+			f8 = new BB().append("f8a","f8b");
+			f9 = new BC().append("f9a","f9b");
+			fa = new BD().append("faa","fab");
+			fb = new BE().append("fba","fbb");
+			return this;
+		}
+	}
 
 	@Rdf(prefix="ba", namespace="http://ns/", collectionFormat=RdfCollectionFormat.SEQ)
 	public static class BA extends ArrayList<String> {
@@ -426,9 +426,9 @@ public class RdfTest {
 		C c = new C().init(), c2;
 		String rdfXml, expected;
 		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev()
-		   .property(RDF_rdfxml_tab, 3)
-		   .sq()
-		   .addRootProperty(true);
+			.property(RDF_rdfxml_tab, 3)
+			.sq()
+			.addRootProperty(true);
 		RdfParser p = RdfParser.DEFAULT_XML;
 
 		//--------------------------------------------------------------------------------
@@ -436,65 +436,65 @@ public class RdfTest {
 		//--------------------------------------------------------------------------------
 		s.collectionFormat(RdfCollectionFormat.BAG);
 		expected =
-			 "<rdf:RDF b='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-			 + "\n   <rdf:Description about='http://test/b'>"
-			 + "\n      <b:f2>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f2a</rdf:li>"
-			 + "\n            <rdf:li>f2b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f2>"
-			 + "\n      <b:f3>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f3a</rdf:li>"
-			 + "\n            <rdf:li>f3b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f3>"
-			 + "\n      <b:f4 parseType='Resource'>"
-			 + "\n         <rdf:first>f4a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f4b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </b:f4>"
-			 + "\n      <b:f5>f5a</b:f5>"
-			 + "\n      <b:f5>f5b</b:f5>"
-			 + "\n      <b:f6>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f6a</rdf:li>"
-			 + "\n            <rdf:li>f6b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f6>"
-			 + "\n      <b:f7>"
-			 + "\n         <rdf:Seq>"
-			 + "\n            <rdf:li>f7a</rdf:li>"
-			 + "\n            <rdf:li>f7b</rdf:li>"
-			 + "\n         </rdf:Seq>"
-			 + "\n      </b:f7>"
-			 + "\n      <b:f8>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>f8a</rdf:li>"
-			 + "\n            <rdf:li>f8b</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:f8>"
-			 + "\n      <b:f9 parseType='Resource'>"
-			 + "\n         <rdf:first>f9a</rdf:first>"
-			 + "\n         <rdf:rest parseType='Resource'>"
-			 + "\n            <rdf:first>f9b</rdf:first>"
-			 + "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
-			 + "\n         </rdf:rest>"
-			 + "\n      </b:f9>"
-			 + "\n      <b:fa>faa</b:fa>"
-			 + "\n      <b:fa>fab</b:fa>"
-			 + "\n      <b:fb>"
-			 + "\n         <rdf:Bag>"
-			 + "\n            <rdf:li>fba</rdf:li>"
-			 + "\n            <rdf:li>fbb</rdf:li>"
-			 + "\n         </rdf:Bag>"
-			 + "\n      </b:fb>"
-			 + "\n      <j:root>true</j:root>"
-			 + "\n   </rdf:Description>"
-			 + "\n</rdf:RDF>";
+			"<rdf:RDF b='http://ns/' j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
+			+ "\n   <rdf:Description about='http://test/b'>"
+			+ "\n      <b:f2>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f2a</rdf:li>"
+			+ "\n            <rdf:li>f2b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f2>"
+			+ "\n      <b:f3>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f3a</rdf:li>"
+			+ "\n            <rdf:li>f3b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f3>"
+			+ "\n      <b:f4 parseType='Resource'>"
+			+ "\n         <rdf:first>f4a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f4b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </b:f4>"
+			+ "\n      <b:f5>f5a</b:f5>"
+			+ "\n      <b:f5>f5b</b:f5>"
+			+ "\n      <b:f6>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f6a</rdf:li>"
+			+ "\n            <rdf:li>f6b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f6>"
+			+ "\n      <b:f7>"
+			+ "\n         <rdf:Seq>"
+			+ "\n            <rdf:li>f7a</rdf:li>"
+			+ "\n            <rdf:li>f7b</rdf:li>"
+			+ "\n         </rdf:Seq>"
+			+ "\n      </b:f7>"
+			+ "\n      <b:f8>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>f8a</rdf:li>"
+			+ "\n            <rdf:li>f8b</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:f8>"
+			+ "\n      <b:f9 parseType='Resource'>"
+			+ "\n         <rdf:first>f9a</rdf:first>"
+			+ "\n         <rdf:rest parseType='Resource'>"
+			+ "\n            <rdf:first>f9b</rdf:first>"
+			+ "\n            <rdf:rest resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>"
+			+ "\n         </rdf:rest>"
+			+ "\n      </b:f9>"
+			+ "\n      <b:fa>faa</b:fa>"
+			+ "\n      <b:fa>fab</b:fa>"
+			+ "\n      <b:fb>"
+			+ "\n         <rdf:Bag>"
+			+ "\n            <rdf:li>fba</rdf:li>"
+			+ "\n            <rdf:li>fbb</rdf:li>"
+			+ "\n         </rdf:Bag>"
+			+ "\n      </b:fb>"
+			+ "\n      <j:root>true</j:root>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 
 		rdfXml = s.build().serialize(c);
 		assertXmlEquals(expected, rdfXml);
@@ -507,19 +507,19 @@ public class RdfTest {
 	public static class C extends B {
 		@Override /* B */
 		public C init() throws Exception {
-    	  f1 = new URI("http://test/b");
-    	  f2 = new String[]{"f2a","f2b"};
-    	  f3 = new String[]{"f3a","f3b"};
-    	  f4 = new String[]{"f4a","f4b"};
-    	  f5 = new String[]{"f5a","f5b"};
-    	  f6 = new String[]{"f6a","f6b"};
-    	  f7 = new BA().append("f7a","f7b");
-    	  f8 = new BB().append("f8a","f8b");
-    	  f9 = new BC().append("f9a","f9b");
-    	  fa = new BD().append("faa","fab");
-    	  fb = new BE().append("fba","fbb");
-    	  return this;
-      }
+			f1 = new URI("http://test/b");
+			f2 = new String[]{"f2a","f2b"};
+			f3 = new String[]{"f3a","f3b"};
+			f4 = new String[]{"f4a","f4b"};
+			f5 = new String[]{"f5a","f5b"};
+			f6 = new String[]{"f6a","f6b"};
+			f7 = new BA().append("f7a","f7b");
+			f8 = new BB().append("f8a","f8b");
+			f9 = new BC().append("f9a","f9b");
+			fa = new BD().append("faa","fab");
+			fb = new BE().append("fba","fbb");
+			return this;
+		}
 	}
 
 	@Test
@@ -535,15 +535,15 @@ public class RdfTest {
 		rdfXml = s.serialize(l);
 		expected =
 			"<rdf:RDF j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-				+ "\n   <rdf:Description about='http://localhost/f1/2'>"
-				+ "\n      <jp:f2>f2</jp:f2>"
-				+ "\n      <jp:f3 resource='http://localhost/f3/2'/>"
-				+ "\n   </rdf:Description>"
-				+ "\n   <rdf:Description about='http://localhost/f1/1'>"
-				+ "\n      <jp:f2>f2</jp:f2>"
-	 			+ "\n      <jp:f3 resource='http://localhost/f3/1'/>"
-	 			+ "\n   </rdf:Description>"
-				+ "\n</rdf:RDF>";
+			+ "\n   <rdf:Description about='http://localhost/f1/2'>"
+			+ "\n      <jp:f2>f2</jp:f2>"
+			+ "\n      <jp:f3 resource='http://localhost/f3/2'/>"
+			+ "\n   </rdf:Description>"
+			+ "\n   <rdf:Description about='http://localhost/f1/1'>"
+			+ "\n      <jp:f2>f2</jp:f2>"
+			+ "\n      <jp:f3 resource='http://localhost/f3/1'/>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 		assertXmlEquals(expected, rdfXml);
 
 		l = p.parse(rdfXml, LinkedList.class, D.class);
@@ -551,30 +551,30 @@ public class RdfTest {
 		rdfXml = s.serialize(da);
 		expected =
 			"<rdf:RDF j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-				+ "\n   <rdf:Description about='http://localhost/f1/2'>"
-				+ "\n      <jp:f2>f2</jp:f2>"
-				+ "\n      <jp:f3 resource='http://localhost/f3/2'/>"
-				+ "\n   </rdf:Description>"
-				+ "\n   <rdf:Description about='http://localhost/f1/1'>"
-				+ "\n      <jp:f2>f2</jp:f2>"
-	 			+ "\n      <jp:f3 resource='http://localhost/f3/1'/>"
-	 			+ "\n   </rdf:Description>"
-				+ "\n</rdf:RDF>";
+			+ "\n   <rdf:Description about='http://localhost/f1/2'>"
+			+ "\n      <jp:f2>f2</jp:f2>"
+			+ "\n      <jp:f3 resource='http://localhost/f3/2'/>"
+			+ "\n   </rdf:Description>"
+			+ "\n   <rdf:Description about='http://localhost/f1/1'>"
+			+ "\n      <jp:f2>f2</jp:f2>"
+			+ "\n      <jp:f3 resource='http://localhost/f3/1'/>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 		assertXmlEquals(expected, rdfXml);
 
 		da = p.parse(rdfXml, D[].class);
 		rdfXml = s.serialize(da);
 		expected =
 			"<rdf:RDF j='http://www.apache.org/juneau/' jp='http://www.apache.org/juneaubp/' rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>"
-				+ "\n   <rdf:Description about='http://localhost/f1/2'>"
-				+ "\n      <jp:f2>f2</jp:f2>"
-				+ "\n      <jp:f3 resource='http://localhost/f3/2'/>"
-				+ "\n   </rdf:Description>"
-				+ "\n   <rdf:Description about='http://localhost/f1/1'>"
-				+ "\n      <jp:f2>f2</jp:f2>"
-	 			+ "\n      <jp:f3 resource='http://localhost/f3/1'/>"
-	 			+ "\n   </rdf:Description>"
-				+ "\n</rdf:RDF>";
+			+ "\n   <rdf:Description about='http://localhost/f1/2'>"
+			+ "\n      <jp:f2>f2</jp:f2>"
+			+ "\n      <jp:f3 resource='http://localhost/f3/2'/>"
+			+ "\n   </rdf:Description>"
+			+ "\n   <rdf:Description about='http://localhost/f1/1'>"
+			+ "\n      <jp:f2>f2</jp:f2>"
+			+ "\n      <jp:f3 resource='http://localhost/f3/1'/>"
+			+ "\n   </rdf:Description>"
+			+ "\n</rdf:RDF>";
 		assertXmlEquals(expected, rdfXml);
 	}
 


[04/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapComboTest.java
index 5c61b3c..8c025c8 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapComboTest.java
@@ -12,6 +12,8 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.TestUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -32,314 +34,385 @@ public class ByteArrayBase64SwapComboTest extends ComboTest {
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
 			{ 	/* 0 */
-				"ByteArray1d",
-				new byte[] {1,2,3},
-				/* Json */		"'AQID'",
-				/* JsonT */		"'AQID'",
-				/* JsonR */		"'AQID'",
-				/* Xml */		"<string>AQID</string>",
-				/* XmlT */		"<string>AQID</string>",
-				/* XmlR */		"<string>AQID</string>\n",
-				/* XmlNs */		"<string>AQID</string>",
-				/* Html */		"<string>AQID</string>",
-				/* HtmlT */		"<string>AQID</string>",
-				/* HtmlR */		"<string>AQID</string>",
-				/* Uon */		"AQID",
-				/* UonT */		"AQID",
-				/* UonR */		"AQID",
-				/* UrlEnc */	"_value=AQID",
-				/* UrlEncT */	"_value=AQID",
-				/* UrlEncR */	"_value=AQID",
-				/* MsgPack */	"A441514944",
-				/* MsgPackT */	"A441514944",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>AQID</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>AQID</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>AQID</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<byte[]>(
+					"ByteArray1d",
+					byte[].class,
+					new byte[] {1,2,3},
+					/* Json */		"'AQID'",
+					/* JsonT */		"'AQID'",
+					/* JsonR */		"'AQID'",
+					/* Xml */		"<string>AQID</string>",
+					/* XmlT */		"<string>AQID</string>",
+					/* XmlR */		"<string>AQID</string>\n",
+					/* XmlNs */		"<string>AQID</string>",
+					/* Html */		"<string>AQID</string>",
+					/* HtmlT */		"<string>AQID</string>",
+					/* HtmlR */		"<string>AQID</string>",
+					/* Uon */		"AQID",
+					/* UonT */		"AQID",
+					/* UonR */		"AQID",
+					/* UrlEnc */	"_value=AQID",
+					/* UrlEncT */	"_value=AQID",
+					/* UrlEncR */	"_value=AQID",
+					/* MsgPack */	"A441514944",
+					/* MsgPackT */	"A441514944",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>AQID</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>AQID</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>AQID</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(byte[] o) {
+						assertType(byte[].class, o);
+					}
+				}
 			},
 			{ 	/* 1 */
-				"ByteArray2d",
-				new byte[][]{{1,2,3},{4,5,6},null},
-				/* Json */		"['AQID','BAUG',null]",
-				/* JsonT */		"['AQID','BAUG',null]",
-				/* JsonR */		"[\n\t'AQID',\n\t'BAUG',\n\tnull\n]",
-				/* Xml */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
-				/* XmlT */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
-				/* XmlR */		"<array>\n\t<string>AQID</string>\n\t<string>BAUG</string>\n\t<null/>\n</array>\n",
-				/* XmlNs */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
-				/* Html */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
-				/* HtmlT */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>AQID</li>\n\t<li>BAUG</li>\n\t<li><null/></li>\n</ul>\n",
-				/* Uon */		"@(AQID,BAUG,null)",
-				/* UonT */		"@(AQID,BAUG,null)",
-				/* UonR */		"@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
-				/* UrlEnc */	"0=AQID&1=BAUG&2=null",
-				/* UrlEncT */	"0=AQID&1=BAUG&2=null",
-				/* UrlEncR */	"0=AQID\n&1=BAUG\n&2=null",
-				/* MsgPack */	"93A441514944A442415547C0",
-				/* MsgPackT */	"93A441514944A442415547C0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>AQID</rdf:li>\n    <rdf:li>BAUG</rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput<byte[][]>(
+					"ByteArray2d",
+					byte[][].class,
+					new byte[][]{{1,2,3},{4,5,6},null},
+					/* Json */		"['AQID','BAUG',null]",
+					/* JsonT */		"['AQID','BAUG',null]",
+					/* JsonR */		"[\n\t'AQID',\n\t'BAUG',\n\tnull\n]",
+					/* Xml */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
+					/* XmlT */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
+					/* XmlR */		"<array>\n\t<string>AQID</string>\n\t<string>BAUG</string>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
+					/* Html */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>AQID</li>\n\t<li>BAUG</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(AQID,BAUG,null)",
+					/* UonT */		"@(AQID,BAUG,null)",
+					/* UonR */		"@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
+					/* UrlEnc */	"0=AQID&1=BAUG&2=null",
+					/* UrlEncT */	"0=AQID&1=BAUG&2=null",
+					/* UrlEncR */	"0=AQID\n&1=BAUG\n&2=null",
+					/* MsgPack */	"93A441514944A442415547C0",
+					/* MsgPackT */	"93A441514944A442415547C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>AQID</rdf:li>\n    <rdf:li>BAUG</rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(byte[][] o) {
+						assertType(byte[][].class, o);
+					}
+				}
 			},
 			{ 	/* 2 */
-				"ListOfByteArrays",
-				new AList<byte[]>()
-					.append(new byte[]{1,2,3})
-					.append(new byte[]{4,5,6})
-					.append(null)
-				,
-				/* Json */		"['AQID','BAUG',null]",
-				/* JsonT */		"['AQID','BAUG',null]",
-				/* JsonR */		"[\n\t'AQID',\n\t'BAUG',\n\tnull\n]",
-				/* Xml */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
-				/* XmlT */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
-				/* XmlR */		"<array>\n\t<string>AQID</string>\n\t<string>BAUG</string>\n\t<null/>\n</array>\n",
-				/* XmlNs */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
-				/* Html */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
-				/* HtmlT */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>AQID</li>\n\t<li>BAUG</li>\n\t<li><null/></li>\n</ul>\n",
-				/* Uon */		"@(AQID,BAUG,null)",
-				/* UonT */		"@(AQID,BAUG,null)",
-				/* UonR */		"@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
-				/* UrlEnc */	"0=AQID&1=BAUG&2=null",
-				/* UrlEncT */	"0=AQID&1=BAUG&2=null",
-				/* UrlEncR */	"0=AQID\n&1=BAUG\n&2=null",
-				/* MsgPack */	"93A441514944A442415547C0",
-				/* MsgPackT */	"93A441514944A442415547C0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>AQID</rdf:li>\n    <rdf:li>BAUG</rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput<List<byte[]>>(
+					"ListOfByteArrays",
+					getType(List.class,byte[].class),
+					new AList<byte[]>()
+						.append(new byte[]{1,2,3})
+						.append(new byte[]{4,5,6})
+						.append(null)
+					,
+					/* Json */		"['AQID','BAUG',null]",
+					/* JsonT */		"['AQID','BAUG',null]",
+					/* JsonR */		"[\n\t'AQID',\n\t'BAUG',\n\tnull\n]",
+					/* Xml */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
+					/* XmlT */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
+					/* XmlR */		"<array>\n\t<string>AQID</string>\n\t<string>BAUG</string>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><string>AQID</string><string>BAUG</string><null/></array>",
+					/* Html */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li>AQID</li><li>BAUG</li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>AQID</li>\n\t<li>BAUG</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(AQID,BAUG,null)",
+					/* UonT */		"@(AQID,BAUG,null)",
+					/* UonR */		"@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
+					/* UrlEnc */	"0=AQID&1=BAUG&2=null",
+					/* UrlEncT */	"0=AQID&1=BAUG&2=null",
+					/* UrlEncR */	"0=AQID\n&1=BAUG\n&2=null",
+					/* MsgPack */	"93A441514944A442415547C0",
+					/* MsgPackT */	"93A441514944A442415547C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>AQID</rdf:li>\n    <rdf:li>BAUG</rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(List<byte[]> o) {
+						assertType(List.class, o);
+						assertType(byte[].class, o.get(0));
+					}
+				}
 			},
 			{ 	/* 3 */
-				"MapOfByteArrays",
-				new AMap<String,byte[]>()
-					.append("foo", new byte[]{1,2,3})
-					.append("bar", null)
-					.append(null, new byte[]{4,5,6})
-					.append("null", new byte[]{7,8,9})
-				,
-				/* Json */		"{foo:'AQID',bar:null,null:'BAUG','null':'BwgJ'}",
-				/* JsonT */		"{foo:'AQID',bar:null,null:'BAUG','null':'BwgJ'}",
-				/* JsonR */		"{\n\tfoo: 'AQID',\n\tbar: null,\n\tnull: 'BAUG',\n\t'null': 'BwgJ'\n}",
-				/* Xml */		"<object><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_><null>BwgJ</null></object>",
-				/* XmlT */		"<object><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_><null>BwgJ</null></object>",
-				/* XmlR */		"<object>\n\t<foo>AQID</foo>\n\t<bar _type='null'/>\n\t<_x0000_>BAUG</_x0000_>\n\t<null>BwgJ</null>\n</object>\n",
-				/* XmlNs */		"<object><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_><null>BwgJ</null></object>",
-				/* Html */		"<table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr><tr><td>null</td><td>BwgJ</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr><tr><td>null</td><td>BwgJ</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>AQID</td>\n\t</tr>\n\t<tr>\n\t\t<td>bar</td>\n\t\t<td><null/></td>\n\t</tr>\n\t<tr>\n\t\t<td><null/></td>\n\t\t<td>BAUG</td>\n\t</tr>\n\t<tr>\n\t\t<td>null</td>\n\t\t<td>BwgJ</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=AQID,bar=null,null=BAUG,'null'=BwgJ)",
-				/* UonT */		"(foo=AQID,bar=null,null=BAUG,'null'=BwgJ)",
-				/* UonR */		"(\n\tfoo=AQID,\n\tbar=null,\n\tnull=BAUG,\n\t'null'=BwgJ\n)",
-				/* UrlEnc */	"foo=AQID&bar=null&null=BAUG&'null'=BwgJ",
-				/* UrlEncT */	"foo=AQID&bar=null&null=BAUG&'null'=BwgJ",
-				/* UrlEncR */	"foo=AQID\n&bar=null\n&null=BAUG\n&'null'=BwgJ",
-				/* MsgPack */	"84A3666F6FA441514944A3626172C0C0A442415547A46E756C6CA44277674A",
-				/* MsgPackT */	"84A3666F6FA441514944A3626172C0C0A442415547A46E756C6CA44277674A",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n<jp:null>BwgJ</jp:null>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n<jp:null>BwgJ</jp:null>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>AQID</jp:foo>\n    <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n    <jp:_x0000_>BAUG</jp:_x0000_>\n    <jp:null>BwgJ</jp:null>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<Map<String,byte[]>>(
+					"MapOfByteArrays",
+					getType(Map.class,String.class,byte[].class),
+					new AMap<String,byte[]>()
+						.append("foo", new byte[]{1,2,3})
+						.append("bar", null)
+						.append(null, new byte[]{4,5,6})
+						.append("null", new byte[]{7,8,9})
+					,
+					/* Json */		"{foo:'AQID',bar:null,null:'BAUG','null':'BwgJ'}",
+					/* JsonT */		"{foo:'AQID',bar:null,null:'BAUG','null':'BwgJ'}",
+					/* JsonR */		"{\n\tfoo: 'AQID',\n\tbar: null,\n\tnull: 'BAUG',\n\t'null': 'BwgJ'\n}",
+					/* Xml */		"<object><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_><null>BwgJ</null></object>",
+					/* XmlT */		"<object><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_><null>BwgJ</null></object>",
+					/* XmlR */		"<object>\n\t<foo>AQID</foo>\n\t<bar _type='null'/>\n\t<_x0000_>BAUG</_x0000_>\n\t<null>BwgJ</null>\n</object>\n",
+					/* XmlNs */		"<object><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_><null>BwgJ</null></object>",
+					/* Html */		"<table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr><tr><td>null</td><td>BwgJ</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr><tr><td>null</td><td>BwgJ</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>AQID</td>\n\t</tr>\n\t<tr>\n\t\t<td>bar</td>\n\t\t<td><null/></td>\n\t</tr>\n\t<tr>\n\t\t<td><null/></td>\n\t\t<td>BAUG</td>\n\t</tr>\n\t<tr>\n\t\t<td>null</td>\n\t\t<td>BwgJ</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=AQID,bar=null,null=BAUG,'null'=BwgJ)",
+					/* UonT */		"(foo=AQID,bar=null,null=BAUG,'null'=BwgJ)",
+					/* UonR */		"(\n\tfoo=AQID,\n\tbar=null,\n\tnull=BAUG,\n\t'null'=BwgJ\n)",
+					/* UrlEnc */	"foo=AQID&bar=null&null=BAUG&'null'=BwgJ",
+					/* UrlEncT */	"foo=AQID&bar=null&null=BAUG&'null'=BwgJ",
+					/* UrlEncR */	"foo=AQID\n&bar=null\n&null=BAUG\n&'null'=BwgJ",
+					/* MsgPack */	"84A3666F6FA441514944A3626172C0C0A442415547A46E756C6CA44277674A",
+					/* MsgPackT */	"84A3666F6FA441514944A3626172C0C0A442415547A46E756C6CA44277674A",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n<jp:null>BwgJ</jp:null>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n<jp:null>BwgJ</jp:null>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>AQID</jp:foo>\n    <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n    <jp:_x0000_>BAUG</jp:_x0000_>\n    <jp:null>BwgJ</jp:null>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,byte[]> o) {
+						assertType(Map.class, o);
+						assertType(String.class, o.keySet().iterator().next());
+						assertType(byte[].class, o.values().iterator().next());
+					}
+				}
 			},
 			{ 	/* 4 */
-				"BeanWithByteArrayField",
-				new BeanWithByteArrayField().init(),
-				/* Json */		"{f:'AQID'}",
-				/* JsonT */		"{f:'AQID'}",
-				/* JsonR */		"{\n\tf: 'AQID'\n}",
-				/* Xml */		"<object><f>AQID</f></object>",
-				/* XmlT */		"<object><f>AQID</f></object>",
-				/* XmlR */		"<object>\n\t<f>AQID</f>\n</object>\n",
-				/* XmlNs */		"<object><f>AQID</f></object>",
-				/* Html */		"<table><tr><td>f</td><td>AQID</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td>AQID</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>AQID</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=AQID)",
-				/* UonT */		"(f=AQID)",
-				/* UonR */		"(\n\tf=AQID\n)",
-				/* UrlEnc */	"f=AQID",
-				/* UrlEncT */	"f=AQID",
-				/* UrlEncR */	"f=AQID",
-				/* MsgPack */	"81A166A441514944",
-				/* MsgPackT */	"81A166A441514944",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>AQID</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>AQID</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>AQID</jp:f>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArrayField>(
+					"BeanWithByteArrayField",
+					BeanWithByteArrayField.class,
+					new BeanWithByteArrayField().init(),
+					/* Json */		"{f:'AQID'}",
+					/* JsonT */		"{f:'AQID'}",
+					/* JsonR */		"{\n\tf: 'AQID'\n}",
+					/* Xml */		"<object><f>AQID</f></object>",
+					/* XmlT */		"<object><f>AQID</f></object>",
+					/* XmlR */		"<object>\n\t<f>AQID</f>\n</object>\n",
+					/* XmlNs */		"<object><f>AQID</f></object>",
+					/* Html */		"<table><tr><td>f</td><td>AQID</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td>AQID</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>AQID</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=AQID)",
+					/* UonT */		"(f=AQID)",
+					/* UonR */		"(\n\tf=AQID\n)",
+					/* UrlEnc */	"f=AQID",
+					/* UrlEncT */	"f=AQID",
+					/* UrlEncR */	"f=AQID",
+					/* MsgPack */	"81A166A441514944",
+					/* MsgPackT */	"81A166A441514944",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>AQID</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>AQID</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>AQID</jp:f>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArrayField o) {
+						assertType(BeanWithByteArrayField.class, o);
+					}
+				}
 			},
 			{	/* 5 */
-				"BeanWithByteArray2dField",
-				new BeanWithByteArray2dField().init(),
-				/* Json */		"{f:['AQID','BAUG',null]}",
-				/* JsonT */		"{f:['AQID','BAUG',null]}",
-				/* JsonR */		"{\n\tf: [\n\t\t'AQID',\n\t\t'BAUG',\n\t\tnull\n\t]\n}",
-				/* Xml */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
-				/* XmlT */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
-				/* XmlR */		"<object>\n\t<f>\n\t\t<string>AQID</string>\n\t\t<string>BAUG</string>\n\t\t<null/>\n\t</f>\n</object>\n",
-				/* XmlNs */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
-				/* Html */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>AQID</li>\n\t\t\t\t<li>BAUG</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=@(AQID,BAUG,null))",
-				/* UonT */		"(f=@(AQID,BAUG,null))",
-				/* UonR */		"(\n\tf=@(\n\t\tAQID,\n\t\tBAUG,\n\t\tnull\n\t)\n)",
-				/* UrlEnc */	"f=@(AQID,BAUG,null)",
-				/* UrlEncT */	"f=@(AQID,BAUG,null)",
-				/* UrlEncR */	"f=@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
-				/* MsgPack */	"81A16693A441514944A442415547C0",
-				/* MsgPackT */	"81A16693A441514944A442415547C0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>\n      <rdf:Seq>\n        <rdf:li>AQID</rdf:li>\n        <rdf:li>BAUG</rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArray2dField>(
+					"BeanWithByteArray2dField",
+					BeanWithByteArray2dField.class,
+					new BeanWithByteArray2dField().init(),
+					/* Json */		"{f:['AQID','BAUG',null]}",
+					/* JsonT */		"{f:['AQID','BAUG',null]}",
+					/* JsonR */		"{\n\tf: [\n\t\t'AQID',\n\t\t'BAUG',\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
+					/* XmlT */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
+					/* XmlR */		"<object>\n\t<f>\n\t\t<string>AQID</string>\n\t\t<string>BAUG</string>\n\t\t<null/>\n\t</f>\n</object>\n",
+					/* XmlNs */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
+					/* Html */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>AQID</li>\n\t\t\t\t<li>BAUG</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=@(AQID,BAUG,null))",
+					/* UonT */		"(f=@(AQID,BAUG,null))",
+					/* UonR */		"(\n\tf=@(\n\t\tAQID,\n\t\tBAUG,\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"f=@(AQID,BAUG,null)",
+					/* UrlEncT */	"f=@(AQID,BAUG,null)",
+					/* UrlEncR */	"f=@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
+					/* MsgPack */	"81A16693A441514944A442415547C0",
+					/* MsgPackT */	"81A16693A441514944A442415547C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>\n      <rdf:Seq>\n        <rdf:li>AQID</rdf:li>\n        <rdf:li>BAUG</rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArray2dField o) {
+						assertType(BeanWithByteArray2dField.class, o);
+					}
+				}
 			},
 			{	/* 6 */
-				"BeanWithByteArrayNullField",
-				new BeanWithByteArrayNullField().init(),
-				/* Json */		"{f:null}",
-				/* JsonT */		"{f:null}",
-				/* JsonR */		"{\n\tf: null\n}",
-				/* Xml */		"<object><f _type='null'/></object>",
-				/* XmlT */		"<object><f t='null'/></object>",
-				/* XmlR */		"<object>\n\t<f _type='null'/>\n</object>\n",
-				/* XmlNs */		"<object><f _type='null'/></object>",
-				/* Html */		"<table><tr><td>f</td><td><null/></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td><null/></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td><null/></td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=null)",
-				/* UonT */		"(f=null)",
-				/* UonR */		"(\n\tf=null\n)",
-				/* UrlEnc */	"f=null",
-				/* UrlEncT */	"f=null",
-				/* UrlEncR */	"f=null",
-				/* MsgPack */	"81A166C0",
-				/* MsgPackT */	"81A166C0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArrayNullField>(
+					"BeanWithByteArrayNullField",
+					BeanWithByteArrayNullField.class,
+					new BeanWithByteArrayNullField().init(),
+					/* Json */		"{f:null}",
+					/* JsonT */		"{f:null}",
+					/* JsonR */		"{\n\tf: null\n}",
+					/* Xml */		"<object><f _type='null'/></object>",
+					/* XmlT */		"<object><f t='null'/></object>",
+					/* XmlR */		"<object>\n\t<f _type='null'/>\n</object>\n",
+					/* XmlNs */		"<object><f _type='null'/></object>",
+					/* Html */		"<table><tr><td>f</td><td><null/></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td><null/></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td><null/></td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=null)",
+					/* UonT */		"(f=null)",
+					/* UonR */		"(\n\tf=null\n)",
+					/* UrlEnc */	"f=null",
+					/* UrlEncT */	"f=null",
+					/* UrlEncR */	"f=null",
+					/* MsgPack */	"81A166C0",
+					/* MsgPackT */	"81A166C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArrayNullField o) {
+						assertType(BeanWithByteArrayNullField.class, o);
+					}
+				}
 			},
 			{	/* 7 */
-				"BeanWithByteArrayListField",
-				new BeanWithByteArrayListField().init(),
-				/* Json */		"{f:['AQID','BAUG',null]}",
-				/* JsonT */		"{f:['AQID','BAUG',null]}",
-				/* JsonR */		"{\n\tf: [\n\t\t'AQID',\n\t\t'BAUG',\n\t\tnull\n\t]\n}",
-				/* Xml */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
-				/* XmlT */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
-				/* XmlR */		"<object>\n\t<f>\n\t\t<string>AQID</string>\n\t\t<string>BAUG</string>\n\t\t<null/>\n\t</f>\n</object>\n",
-				/* XmlNs */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
-				/* Html */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>AQID</li>\n\t\t\t\t<li>BAUG</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=@(AQID,BAUG,null))",
-				/* UonT */		"(f=@(AQID,BAUG,null))",
-				/* UonR */		"(\n\tf=@(\n\t\tAQID,\n\t\tBAUG,\n\t\tnull\n\t)\n)",
-				/* UrlEnc */	"f=@(AQID,BAUG,null)",
-				/* UrlEncT */	"f=@(AQID,BAUG,null)",
-				/* UrlEncR */	"f=@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
-				/* MsgPack */	"81A16693A441514944A442415547C0",
-				/* MsgPackT */	"81A16693A441514944A442415547C0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>\n      <rdf:Seq>\n        <rdf:li>AQID</rdf:li>\n        <rdf:li>BAUG</rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArrayListField>(
+					"BeanWithByteArrayListField",
+					BeanWithByteArrayListField.class,
+					new BeanWithByteArrayListField().init(),
+					/* Json */		"{f:['AQID','BAUG',null]}",
+					/* JsonT */		"{f:['AQID','BAUG',null]}",
+					/* JsonR */		"{\n\tf: [\n\t\t'AQID',\n\t\t'BAUG',\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
+					/* XmlT */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
+					/* XmlR */		"<object>\n\t<f>\n\t\t<string>AQID</string>\n\t\t<string>BAUG</string>\n\t\t<null/>\n\t</f>\n</object>\n",
+					/* XmlNs */		"<object><f><string>AQID</string><string>BAUG</string><null/></f></object>",
+					/* Html */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>AQID</li>\n\t\t\t\t<li>BAUG</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=@(AQID,BAUG,null))",
+					/* UonT */		"(f=@(AQID,BAUG,null))",
+					/* UonR */		"(\n\tf=@(\n\t\tAQID,\n\t\tBAUG,\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"f=@(AQID,BAUG,null)",
+					/* UrlEncT */	"f=@(AQID,BAUG,null)",
+					/* UrlEncR */	"f=@(\n\tAQID,\n\tBAUG,\n\tnull\n)",
+					/* MsgPack */	"81A16693A441514944A442415547C0",
+					/* MsgPackT */	"81A16693A441514944A442415547C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>\n      <rdf:Seq>\n        <rdf:li>AQID</rdf:li>\n        <rdf:li>BAUG</rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArrayListField o) {
+						assertType(BeanWithByteArrayListField.class, o);
+					}
+				}
 			},
 			{	/* 8 */
-				"BeanWithByteArrayMapField",
-				new BeanWithByteArrayMapField().init(),
-				/* Json */		"{f:{foo:'AQID',bar:null,null:'BAUG'}}",
-				/* JsonT */		"{f:{foo:'AQID',bar:null,null:'BAUG'}}",
-				/* JsonR */		"{\n\tf: {\n\t\tfoo: 'AQID',\n\t\tbar: null,\n\t\tnull: 'BAUG'\n\t}\n}",
-				/* Xml */		"<object><f><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f></object>",
-				/* XmlT */		"<object><f><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f></object>",
-				/* XmlR */		"<object>\n\t<f>\n\t\t<foo>AQID</foo>\n\t\t<bar _type='null'/>\n\t\t<_x0000_>BAUG</_x0000_>\n\t</f>\n</object>\n",
-				/* XmlNs */		"<object><f><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f></object>",
-				/* Html */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t<td>AQID</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=(foo=AQID,bar=null,null=BAUG))",
-				/* UonT */		"(f=(foo=AQID,bar=null,null=BAUG))",
-				/* UonR */		"(\n\tf=(\n\t\tfoo=AQID,\n\t\tbar=null,\n\t\tnull=BAUG\n\t)\n)",
-				/* UrlEnc */	"f=(foo=AQID,bar=null,null=BAUG)",
-				/* UrlEncT */	"f=(foo=AQID,bar=null,null=BAUG)",
-				/* UrlEncR */	"f=(\n\tfoo=AQID,\n\tbar=null,\n\tnull=BAUG\n)",
-				/* MsgPack */	"81A16683A3666F6FA441514944A3626172C0C0A442415547",
-				/* MsgPackT */	"81A16683A3666F6FA441514944A3626172C0C0A442415547",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f rdf:parseType='Resource'>\n      <jp:foo>AQID</jp:foo>\n      <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      <jp:_x0000_>BAUG</jp:_x0000_>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArrayMapField>(
+					"BeanWithByteArrayMapField",
+					BeanWithByteArrayMapField.class,
+					new BeanWithByteArrayMapField().init(),
+					/* Json */		"{f:{foo:'AQID',bar:null,null:'BAUG'}}",
+					/* JsonT */		"{f:{foo:'AQID',bar:null,null:'BAUG'}}",
+					/* JsonR */		"{\n\tf: {\n\t\tfoo: 'AQID',\n\t\tbar: null,\n\t\tnull: 'BAUG'\n\t}\n}",
+					/* Xml */		"<object><f><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f></object>",
+					/* XmlT */		"<object><f><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f></object>",
+					/* XmlR */		"<object>\n\t<f>\n\t\t<foo>AQID</foo>\n\t\t<bar _type='null'/>\n\t\t<_x0000_>BAUG</_x0000_>\n\t</f>\n</object>\n",
+					/* XmlNs */		"<object><f><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f></object>",
+					/* Html */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t<td>AQID</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=(foo=AQID,bar=null,null=BAUG))",
+					/* UonT */		"(f=(foo=AQID,bar=null,null=BAUG))",
+					/* UonR */		"(\n\tf=(\n\t\tfoo=AQID,\n\t\tbar=null,\n\t\tnull=BAUG\n\t)\n)",
+					/* UrlEnc */	"f=(foo=AQID,bar=null,null=BAUG)",
+					/* UrlEncT */	"f=(foo=AQID,bar=null,null=BAUG)",
+					/* UrlEncR */	"f=(\n\tfoo=AQID,\n\tbar=null,\n\tnull=BAUG\n)",
+					/* MsgPack */	"81A16683A3666F6FA441514944A3626172C0C0A442415547",
+					/* MsgPackT */	"81A16683A3666F6FA441514944A3626172C0C0A442415547",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f rdf:parseType='Resource'>\n      <jp:foo>AQID</jp:foo>\n      <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      <jp:_x0000_>BAUG</jp:_x0000_>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArrayMapField o) {
+						assertType(BeanWithByteArrayMapField.class, o);
+					}
+				}
 			},
 			{	/* 9 */
-				"BeanWithByteArrayBeanListField",
-				new BeanWithByteArrayBeanListField().init(),
-				/* Json */		"{f:[{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},null]}",
-				/* JsonT */		"{f:[{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},null]}",
-				/* JsonR */		"{\n\tf: [\n\t\t{\n\t\t\tf1: 'AQID',\n\t\t\tf2: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf3: null,\n\t\t\tf4: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf5: {\n\t\t\t\tfoo: 'AQID',\n\t\t\t\tbar: null,\n\t\t\t\tnull: 'BAUG'\n\t\t\t}\n\t\t},\n\t\tnull\n\t]\n}",
-				/* Xml */		"<object><f><object><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></object><null/></f></object>",
-				/* XmlT */		"<object><f><object><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 t='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f5></object><null/></f></object>",
-				/* XmlR */		"<object>\n\t<f>\n\t\t<object>\n\t\t\t<f1>AQID</f1>\n\t\t\t<f2>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f2>\n\t\t\t<f3 _type='null'/>\n\t\t\t<f4>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f4>\n\t\t\t<f5>\n\t\t\t\t<foo>AQID</foo>\n\t\t\t\t<bar _type='null'/>\n\t\t\t\t<_x0000_>BAUG</_x0000_>\n\t\t\t</f5>\n\t\t</object>\n\t\t<null/>\n\t</f>\n</object>\n",
-				/* XmlNs */		"<object><f><object><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></object><null/></f></object>",
-				/* Html */		"<table><tr><td>f</td><td><ul><li><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></li><li><null/></li></ul></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td><ul><li><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></li><li><null/></li></ul></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f1</td>\n\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f2</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f3</td>\n\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f4</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f5</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t\
 t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null))",
-				/* UonT */		"(f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null))",
-				/* UonR */		"(\n\tf=@(\n\t\t(\n\t\t\tf1=AQID,\n\t\t\tf2=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf3=null,\n\t\t\tf4=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf5=(\n\t\t\t\tfoo=AQID,\n\t\t\t\tbar=null,\n\t\t\t\tnull=BAUG\n\t\t\t)\n\t\t),\n\t\tnull\n\t)\n)",
-				/* UrlEnc */	"f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null)",
-				/* UrlEncT */	"f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null)",
-				/* UrlEncR */	"f=@(\n\t(\n\t\tf1=AQID,\n\t\tf2=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf3=null,\n\t\tf4=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf5=(\n\t\t\tfoo=AQID,\n\t\t\tbar=null,\n\t\t\tnull=BAUG\n\t\t)\n\t),\n\tnull\n)",
-				/* MsgPack */	"81A1669285A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547C0",
-				/* MsgPackT */	"81A1669285A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547C0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:f1>AQID</jp:f1>\n          <jp:f2>\n            <rdf:Seq>\n              <rdf:li>AQID</rdf:li>\n              <rdf:li>BAUG</rdf:li>\n              <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n            </rdf:Seq>\n          </jp:f2>\n          <jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          <jp:f4>\n            <rdf:Seq>\n              <rdf:li>AQID</rdf:li>\n              <rdf:li>BAUG</rdf:li>\n              <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n            </rdf:Seq>\n          </jp:f4>\n          <jp:f5 rdf:parseType='Resource'>\n            <jp:foo>AQID</jp:foo>\n            <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n            <jp:_x0000_>BAUG</jp:_x0000_>\n          </jp:f5>\n        </rdf:li>\n        <rdf:li rdf:r
 esource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArrayBeanListField>(
+					"BeanWithByteArrayBeanListField",
+					BeanWithByteArrayBeanListField.class,
+					new BeanWithByteArrayBeanListField().init(),
+					/* Json */		"{f:[{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},null]}",
+					/* JsonT */		"{f:[{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},null]}",
+					/* JsonR */		"{\n\tf: [\n\t\t{\n\t\t\tf1: 'AQID',\n\t\t\tf2: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf3: null,\n\t\t\tf4: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf5: {\n\t\t\t\tfoo: 'AQID',\n\t\t\t\tbar: null,\n\t\t\t\tnull: 'BAUG'\n\t\t\t}\n\t\t},\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><f><object><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></object><null/></f></object>",
+					/* XmlT */		"<object><f><object><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 t='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f5></object><null/></f></object>",
+					/* XmlR */		"<object>\n\t<f>\n\t\t<object>\n\t\t\t<f1>AQID</f1>\n\t\t\t<f2>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f2>\n\t\t\t<f3 _type='null'/>\n\t\t\t<f4>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f4>\n\t\t\t<f5>\n\t\t\t\t<foo>AQID</foo>\n\t\t\t\t<bar _type='null'/>\n\t\t\t\t<_x0000_>BAUG</_x0000_>\n\t\t\t</f5>\n\t\t</object>\n\t\t<null/>\n\t</f>\n</object>\n",
+					/* XmlNs */		"<object><f><object><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></object><null/></f></object>",
+					/* Html */		"<table><tr><td>f</td><td><ul><li><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td><ul><li><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f1</td>\n\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f2</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f3</td>\n\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f4</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>f5</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t
 \t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null))",
+					/* UonT */		"(f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null))",
+					/* UonR */		"(\n\tf=@(\n\t\t(\n\t\t\tf1=AQID,\n\t\t\tf2=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf3=null,\n\t\t\tf4=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf5=(\n\t\t\t\tfoo=AQID,\n\t\t\t\tbar=null,\n\t\t\t\tnull=BAUG\n\t\t\t)\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null)",
+					/* UrlEncT */	"f=@((f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),null)",
+					/* UrlEncR */	"f=@(\n\t(\n\t\tf1=AQID,\n\t\tf2=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf3=null,\n\t\tf4=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf5=(\n\t\t\tfoo=AQID,\n\t\t\tbar=null,\n\t\t\tnull=BAUG\n\t\t)\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A1669285A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547C0",
+					/* MsgPackT */	"81A1669285A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:f1>AQID</jp:f1>\n          <jp:f2>\n            <rdf:Seq>\n              <rdf:li>AQID</rdf:li>\n              <rdf:li>BAUG</rdf:li>\n              <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n            </rdf:Seq>\n          </jp:f2>\n          <jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          <jp:f4>\n            <rdf:Seq>\n              <rdf:li>AQID</rdf:li>\n              <rdf:li>BAUG</rdf:li>\n              <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n            </rdf:Seq>\n          </jp:f4>\n          <jp:f5 rdf:parseType='Resource'>\n            <jp:foo>AQID</jp:foo>\n            <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n            <jp:_x0000_>BAUG</jp:_x0000_>\n          </jp:f5>\n        </rdf:li>\n        <rdf:li rdf:
 resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArrayBeanListField o) {
+						assertType(BeanWithByteArrayBeanListField.class, o);
+					}
+				}
 			},
 			{	/* 10 */
-				"BeanWithByteArrayBeanMapField",
-				new BeanWithByteArrayBeanMapField().init(),
-				/* Json */		"{f:{foo:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},bar:null,null:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}}}}",
-				/* JsonT */		"{f:{foo:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},bar:null,null:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}}}}",
-				/* JsonR */		"{\n\tf: {\n\t\tfoo: {\n\t\t\tf1: 'AQID',\n\t\t\tf2: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf3: null,\n\t\t\tf4: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf5: {\n\t\t\t\tfoo: 'AQID',\n\t\t\t\tbar: null,\n\t\t\t\tnull: 'BAUG'\n\t\t\t}\n\t\t},\n\t\tbar: null,\n\t\tnull: {\n\t\t\tf1: 'AQID',\n\t\t\tf2: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf3: null,\n\t\t\tf4: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf5: {\n\t\t\t\tfoo: 'AQID',\n\t\t\t\tbar: null,\n\t\t\t\tnull: 'BAUG'\n\t\t\t}\n\t\t}\n\t}\n}",
-				/* Xml */		"<object><f><foo><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></foo><bar _type='null'/><_x0000_><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></_x0000_></f></object>",
-				/* XmlT */		"<object><f><foo><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 t='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f5></foo><bar t='null'/><_x0000_><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 t='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f5></_x0000_></f></object>",
-				/* XmlR */		"<object>\n\t<f>\n\t\t<foo>\n\t\t\t<f1>AQID</f1>\n\t\t\t<f2>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f2>\n\t\t\t<f3 _type='null'/>\n\t\t\t<f4>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f4>\n\t\t\t<f5>\n\t\t\t\t<foo>AQID</foo>\n\t\t\t\t<bar _type='null'/>\n\t\t\t\t<_x0000_>BAUG</_x0000_>\n\t\t\t</f5>\n\t\t</foo>\n\t\t<bar _type='null'/>\n\t\t<_x0000_>\n\t\t\t<f1>AQID</f1>\n\t\t\t<f2>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f2>\n\t\t\t<f3 _type='null'/>\n\t\t\t<f4>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f4>\n\t\t\t<f5>\n\t\t\t\t<foo>AQID</foo>\n\t\t\t\t<bar _type='null'/>\n\t\t\t\t<_x0000_>BAUG</_x0000_>\n\t\t\t</f5>\n\t\t</_x0000_>\n\t</f>\n</object>\n",
-				/* XmlNs */		"<object><f><foo><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></foo><bar _type='null'/><_x0000_><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></_x0000_></f></object>",
-				/* Html */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr></table></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr></table></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f1</td>\n\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f2</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f3</td>\n\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f4</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f5</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>\
 n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f1</td>\n\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f2</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</u
 l>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f3</td>\n\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f4</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f5</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tabl
 e>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG))))",
-				/* UonT */		"(f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG))))",
-				/* UonR */		"(\n\tf=(\n\t\tfoo=(\n\t\t\tf1=AQID,\n\t\t\tf2=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf3=null,\n\t\t\tf4=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf5=(\n\t\t\t\tfoo=AQID,\n\t\t\t\tbar=null,\n\t\t\t\tnull=BAUG\n\t\t\t)\n\t\t),\n\t\tbar=null,\n\t\tnull=(\n\t\t\tf1=AQID,\n\t\t\tf2=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf3=null,\n\t\t\tf4=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf5=(\n\t\t\t\tfoo=AQID,\n\t\t\t\tbar=null,\n\t\t\t\tnull=BAUG\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)))",
-				/* UrlEncT */	"f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)))",
-				/* UrlEncR */	"f=(\n\tfoo=(\n\t\tf1=AQID,\n\t\tf2=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf3=null,\n\t\tf4=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf5=(\n\t\t\tfoo=AQID,\n\t\t\tbar=null,\n\t\t\tnull=BAUG\n\t\t)\n\t),\n\tbar=null,\n\tnull=(\n\t\tf1=AQID,\n\t\tf2=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf3=null,\n\t\tf4=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf5=(\n\t\t\tfoo=AQID,\n\t\t\tbar=null,\n\t\t\tnull=BAUG\n\t\t)\n\t)\n)",
-				/* MsgPack */	"81A16683A3666F6F85A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547A3626172C0C085A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547",
-				/* MsgPackT */	"81A16683A3666F6F85A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547A3626172C0C085A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_ rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n
 </jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_ rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\
 n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f rdf:parseType='Resource'>\n      <jp:foo rdf:parseType='Resource'>\n        <jp:f1>AQID</jp:f1>\n        <jp:f2>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f2>\n        <jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n        <jp:f4>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f4>\n        <jp:f5 rdf:parseType='Resource'>\n          <jp:foo>AQID</jp:foo>\n          <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          <jp:_x0000_>BAUG</jp:_x0000_>\n        </jp:f5>\n      </jp:foo>\n      <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rd
 f-syntax-ns#nil'/>\n      <jp:_x0000_ rdf:parseType='Resource'>\n        <jp:f1>AQID</jp:f1>\n        <jp:f2>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f2>\n        <jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n        <jp:f4>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f4>\n        <jp:f5 rdf:parseType='Resource'>\n          <jp:foo>AQID</jp:foo>\n          <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          <jp:_x0000_>BAUG</jp:_x0000_>\n        </jp:f5>\n      </jp:_x0000_>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput<BeanWithByteArrayBeanMapField>(
+					"BeanWithByteArrayBeanMapField",
+					BeanWithByteArrayBeanMapField.class,
+					new BeanWithByteArrayBeanMapField().init(),
+					/* Json */		"{f:{foo:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},bar:null,null:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}}}}",
+					/* JsonT */		"{f:{foo:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}},bar:null,null:{f1:'AQID',f2:['AQID','BAUG',null],f3:null,f4:['AQID','BAUG',null],f5:{foo:'AQID',bar:null,null:'BAUG'}}}}",
+					/* JsonR */		"{\n\tf: {\n\t\tfoo: {\n\t\t\tf1: 'AQID',\n\t\t\tf2: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf3: null,\n\t\t\tf4: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf5: {\n\t\t\t\tfoo: 'AQID',\n\t\t\t\tbar: null,\n\t\t\t\tnull: 'BAUG'\n\t\t\t}\n\t\t},\n\t\tbar: null,\n\t\tnull: {\n\t\t\tf1: 'AQID',\n\t\t\tf2: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf3: null,\n\t\t\tf4: [\n\t\t\t\t'AQID',\n\t\t\t\t'BAUG',\n\t\t\t\tnull\n\t\t\t],\n\t\t\tf5: {\n\t\t\t\tfoo: 'AQID',\n\t\t\t\tbar: null,\n\t\t\t\tnull: 'BAUG'\n\t\t\t}\n\t\t}\n\t}\n}",
+					/* Xml */		"<object><f><foo><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></foo><bar _type='null'/><_x0000_><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></_x0000_></f></object>",
+					/* XmlT */		"<object><f><foo><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 t='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f5></foo><bar t='null'/><_x0000_><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 t='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar t='null'/><_x0000_>BAUG</_x0000_></f5></_x0000_></f></object>",
+					/* XmlR */		"<object>\n\t<f>\n\t\t<foo>\n\t\t\t<f1>AQID</f1>\n\t\t\t<f2>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f2>\n\t\t\t<f3 _type='null'/>\n\t\t\t<f4>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f4>\n\t\t\t<f5>\n\t\t\t\t<foo>AQID</foo>\n\t\t\t\t<bar _type='null'/>\n\t\t\t\t<_x0000_>BAUG</_x0000_>\n\t\t\t</f5>\n\t\t</foo>\n\t\t<bar _type='null'/>\n\t\t<_x0000_>\n\t\t\t<f1>AQID</f1>\n\t\t\t<f2>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f2>\n\t\t\t<f3 _type='null'/>\n\t\t\t<f4>\n\t\t\t\t<string>AQID</string>\n\t\t\t\t<string>BAUG</string>\n\t\t\t\t<null/>\n\t\t\t</f4>\n\t\t\t<f5>\n\t\t\t\t<foo>AQID</foo>\n\t\t\t\t<bar _type='null'/>\n\t\t\t\t<_x0000_>BAUG</_x0000_>\n\t\t\t</f5>\n\t\t</_x0000_>\n\t</f>\n</object>\n",
+					/* XmlNs */		"<object><f><foo><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></foo><bar _type='null'/><_x0000_><f1>AQID</f1><f2><string>AQID</string><string>BAUG</string><null/></f2><f3 _type='null'/><f4><string>AQID</string><string>BAUG</string><null/></f4><f5><foo>AQID</foo><bar _type='null'/><_x0000_>BAUG</_x0000_></f5></_x0000_></f></object>",
+					/* Html */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr></table></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>f</td><td><table><tr><td>foo</td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td><table><tr><td>f1</td><td>AQID</td></tr><tr><td>f2</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f3</td><td><null/></td></tr><tr><td>f4</td><td><ul><li>AQID</li><li>BAUG</li><li><null/></li></ul></td></tr><tr><td>f5</td><td><table><tr><td>foo</td><td>AQID</td></tr><tr><td>bar</td><td><null/></td></tr><tr><td><null/></td><td>BAUG</td></tr></table></td></tr></table></td></tr></table></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>f</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f1</td>\n\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f2</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f3</td>\n\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f4</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f5</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>
 \n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f1</td>\n\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f2</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</
 ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f3</td>\n\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f4</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>AQID</li>\n\t\t\t\t\t\t\t\t\t\t<li>BAUG</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>f5</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>foo</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>AQID</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>bar</td>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td><null/></td>\n\t\t\t\t\t\t\t\t\t\t\t<td>BAUG</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tab
 le>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG))))",
+					/* UonT */		"(f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG))))",
+					/* UonR */		"(\n\tf=(\n\t\tfoo=(\n\t\t\tf1=AQID,\n\t\t\tf2=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf3=null,\n\t\t\tf4=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf5=(\n\t\t\t\tfoo=AQID,\n\t\t\t\tbar=null,\n\t\t\t\tnull=BAUG\n\t\t\t)\n\t\t),\n\t\tbar=null,\n\t\tnull=(\n\t\t\tf1=AQID,\n\t\t\tf2=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf3=null,\n\t\t\tf4=@(\n\t\t\t\tAQID,\n\t\t\t\tBAUG,\n\t\t\t\tnull\n\t\t\t),\n\t\t\tf5=(\n\t\t\t\tfoo=AQID,\n\t\t\t\tbar=null,\n\t\t\t\tnull=BAUG\n\t\t\t)\n\t\t)\n\t)\n)",
+					/* UrlEnc */	"f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)))",
+					/* UrlEncT */	"f=(foo=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)),bar=null,null=(f1=AQID,f2=@(AQID,BAUG,null),f3=null,f4=@(AQID,BAUG,null),f5=(foo=AQID,bar=null,null=BAUG)))",
+					/* UrlEncR */	"f=(\n\tfoo=(\n\t\tf1=AQID,\n\t\tf2=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf3=null,\n\t\tf4=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf5=(\n\t\t\tfoo=AQID,\n\t\t\tbar=null,\n\t\t\tnull=BAUG\n\t\t)\n\t),\n\tbar=null,\n\tnull=(\n\t\tf1=AQID,\n\t\tf2=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf3=null,\n\t\tf4=@(\n\t\t\tAQID,\n\t\t\tBAUG,\n\t\t\tnull\n\t\t),\n\t\tf5=(\n\t\t\tfoo=AQID,\n\t\t\tbar=null,\n\t\t\tnull=BAUG\n\t\t)\n\t)\n)",
+					/* MsgPack */	"81A16683A3666F6F85A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547A3626172C0C085A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547",
+					/* MsgPackT */	"81A16683A3666F6F85A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547A3626172C0C085A26631A441514944A2663293A441514944A442415547C0A26633C0A2663493A441514944A442415547C0A2663583A3666F6FA441514944A3626172C0C0A442415547",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_ rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\
 n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:f rdf:parseType='Resource'>\n<jp:foo rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_ rdf:parseType='Resource'>\n<jp:f1>AQID</jp:f1>\n<jp:f2>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>
 \n</jp:f2>\n<jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:f4>\n<rdf:Seq>\n<rdf:li>AQID</rdf:li>\n<rdf:li>BAUG</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:f4>\n<jp:f5 rdf:parseType='Resource'>\n<jp:foo>AQID</jp:foo>\n<jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n<jp:_x0000_>BAUG</jp:_x0000_>\n</jp:f5>\n</jp:_x0000_>\n</jp:f>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:f rdf:parseType='Resource'>\n      <jp:foo rdf:parseType='Resource'>\n        <jp:f1>AQID</jp:f1>\n        <jp:f2>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f2>\n        <jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n        <jp:f4>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f4>\n        <jp:f5 rdf:parseType='Resource'>\n          <jp:foo>AQID</jp:foo>\n          <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          <jp:_x0000_>BAUG</jp:_x0000_>\n        </jp:f5>\n      </jp:foo>\n      <jp:bar rdf:resource='http://www.w3.org/1999/02/22-r
 df-syntax-ns#nil'/>\n      <jp:_x0000_ rdf:parseType='Resource'>\n        <jp:f1>AQID</jp:f1>\n        <jp:f2>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f2>\n        <jp:f3 rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n        <jp:f4>\n          <rdf:Seq>\n            <rdf:li>AQID</rdf:li>\n            <rdf:li>BAUG</rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </jp:f4>\n        <jp:f5 rdf:parseType='Resource'>\n          <jp:foo>AQID</jp:foo>\n          <jp:bar rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          <jp:_x0000_>BAUG</jp:_x0000_>\n        </jp:f5>\n      </jp:_x0000_>\n    </jp:f>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(BeanWithByteArrayBeanMapField o) {
+						assertType(BeanWithByteArrayBeanMapField.class, o);
+					}
+				}
 			},
 		});
 	}
 	
-	public ByteArrayBase64SwapComboTest(
-			String label, 
-			Object in,
-			String oJson, String oJsonT, String oJsonR,
-			String oXml, String oXmlT, String oXmlR, String oXmlNs,
-			String oHtml, String oHtmlT, String oHtmlR,
-			String oUon, String oUonT, String oUonR,
-			String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
-			String oMsgPack, String oMsgPackT,
-			String oRdfXml, String oRdfXmlT, String oRdfXmlR
-		) {
-		super(
-			label,
-			in, 
-			oJson, oJsonT, oJsonR,
-			oXml, oXmlT, oXmlR, oXmlNs,
-			oHtml, oHtmlT, oHtmlR,
-			oUon, oUonT, oUonR,
-			oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
-			oMsgPack, oMsgPackT,
-			oRdfXml, oRdfXmlT, oRdfXmlR
-		);
+	public ByteArrayBase64SwapComboTest(ComboInput<?> comboInput) {
+		super(comboInput);
 	}
 	
 	@Override


[10/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
More JUnits, bug fixes.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/bde9b101
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/bde9b101
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/bde9b101

Branch: refs/heads/master
Commit: bde9b10152cd9249e6f453eafe8a9aaff45839c1
Parents: 2ca845c
Author: JamesBognar <ja...@apache.org>
Authored: Fri Apr 7 14:19:20 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Fri Apr 7 14:19:35 2017 -0400

----------------------------------------------------------------------
 .../org/apache/juneau/jena/RdfSerializer.java   |    2 +-
 .../juneau/jena/RdfSerializerBuilder.java       |    7 +
 .../test/java/org/apache/juneau/ComboInput.java |   89 +
 .../test/java/org/apache/juneau/ComboTest.java  |  370 +-
 .../test/java/org/apache/juneau/TestUtils.java  |   35 +-
 .../apache/juneau/dto/html5/Html5ComboTest.java | 4681 ++++++++++--------
 .../dto/html5/Html5TemplateComboTest.java       |   80 +-
 .../org/apache/juneau/html/BasicHtmlTest.java   | 3771 +++++++++-----
 .../apache/juneau/jena/CommonParserTest.java    |   10 +-
 .../org/apache/juneau/jena/RdfParserTest.java   |   54 +-
 .../java/org/apache/juneau/jena/RdfTest.java    |  548 +-
 .../transforms/BeanDictionaryComboTest.java     |  965 +++-
 .../ByteArrayBase64SwapComboTest.java           |  641 +--
 .../transforms/CalendarSwapComboTest.java       | 1077 ++--
 .../juneau/transforms/DateSwapComboTest.java    | 1075 ++--
 .../org/apache/juneau/utils/PojoQueryTest.java  |    2 +-
 .../org/apache/juneau/xml/BasicXmlTest.java     |   14 +-
 .../java/org/apache/juneau/xml/XmlTest.java     |    4 +-
 .../java/org/apache/juneau/BeanContext.java     |   41 +-
 .../apache/juneau/csv/CsvSerializerBuilder.java |    7 +
 .../juneau/dto/html5/HtmlElementContainer.java  |   27 +
 .../juneau/dto/html5/HtmlElementMixed.java      |   27 +
 .../org/apache/juneau/html/HtmlSerializer.java  |   15 +-
 .../juneau/html/HtmlSerializerBuilder.java      |    6 +
 .../apache/juneau/jso/JsoSerializerBuilder.java |    6 +
 .../juneau/json/JsonSchemaSerializer.java       |    4 +-
 .../json/JsonSchemaSerializerBuilder.java       |    7 +
 .../org/apache/juneau/json/JsonSerializer.java  |    2 +-
 .../juneau/json/JsonSerializerBuilder.java      |    6 +
 .../juneau/msgpack/MsgPackSerializer.java       |    2 +-
 .../msgpack/MsgPackSerializerBuilder.java       |    7 +
 .../plaintext/PlainTextSerializerBuilder.java   |    7 +
 .../juneau/serializer/SerializerBuilder.java    |   26 +
 .../juneau/serializer/SerializerContext.java    |   27 +-
 .../serializer/SerializerGroupBuilder.java      |   11 +
 .../juneau/serializer/SerializerSession.java    |   19 +-
 .../juneau/soap/SoapXmlSerializerBuilder.java   |    6 +
 .../org/apache/juneau/uon/UonSerializer.java    |    2 +-
 .../apache/juneau/uon/UonSerializerBuilder.java |    7 +
 .../UrlEncodingSerializerBuilder.java           |    7 +
 .../juneau/xml/XmlSchemaSerializerBuilder.java  |    6 +
 .../org/apache/juneau/xml/XmlSerializer.java    |    2 +-
 .../apache/juneau/xml/XmlSerializerBuilder.java |    6 +
 juneau-core/src/main/javadoc/overview.html      |    6 +
 .../juneau/examples/rest/AtomFeedResource.java  |    2 +-
 .../juneau/examples/rest/SqlQueryResource.java  |    2 +-
 .../examples/rest/SystemPropertiesResource.java |   20 +-
 .../juneau/examples/rest/TempDirResource.java   |    2 +-
 .../examples/rest/AddressBookResourceTest.java  |   30 +-
 .../apache/juneau/examples/rest/TestUtils.java  |   10 +-
 .../juneau/rest/client/AllowAllRedirects.java   |    8 +-
 .../juneau/rest/client/RestClientBuilder.java   |   11 +
 52 files changed, 8523 insertions(+), 5276 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 7dcd043..9b254a9 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -191,7 +191,7 @@ public class RdfSerializer extends WriterSerializer {
 			for (Object o2 : c)
 				serializeAnything(s, o2, false, object(), "root", null, null);
 		} else {
-			RDFNode n = serializeAnything(s, o, false, object(), "root", null, null);
+			RDFNode n = serializeAnything(s, o, false, s.getExpectedRootType(o), "root", null, null);
 			if (n.isLiteral()) {
 				r = model.createResource();
 				r.addProperty(s.getValueProperty(), n);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
index 6b150ad..6b8e5bb 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
@@ -510,6 +510,13 @@ public class RdfSerializerBuilder extends SerializerBuilder {
 		super.sortMaps(value);
 		return this;
 	}
+
+	@Override /* SerializerBuilder */
+	public RdfSerializerBuilder abridged(boolean value) {
+		super.abridged(value);
+		return this;
+	}
+	
 	@Override /* CoreObjectBuilder */
 	public RdfSerializerBuilder beansRequireDefaultConstructor(boolean value) {
 		super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/ComboInput.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ComboInput.java b/juneau-core-test/src/test/java/org/apache/juneau/ComboInput.java
new file mode 100644
index 0000000..ae7f737
--- /dev/null
+++ b/juneau-core-test/src/test/java/org/apache/juneau/ComboInput.java
@@ -0,0 +1,89 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau;
+
+import java.lang.reflect.*;
+
+/** 
+ * Represents the input to a ComboTest.
+ * @param <T>
+ */
+public class ComboInput<T> {
+	
+	final String label;
+	final Object in;
+	final Type type;
+	final String json, jsonT, jsonR, xml, xmlT, xmlR, xmlNs, html, htmlT, htmlR, uon, uonT, uonR, urlEncoding,
+		urlEncodingT, urlEncodingR, msgPack, msgPackT, rdfXml, rdfXmlT, rdfXmlR;
+	
+	public ComboInput(
+			String label,
+			Type type,
+			T in,
+			String json,
+			String jsonT,
+			String jsonR,
+			String xml,
+			String xmlT,
+			String xmlR,
+			String xmlNs,
+			String html,
+			String htmlT,
+			String htmlR,
+			String uon,
+			String uonT,
+			String uonR,
+			String urlEncoding,
+			String urlEncodingT,
+			String urlEncodingR,
+			String msgPack,
+			String msgPackT,
+			String rdfXml,
+			String rdfXmlT,
+			String rdfXmlR
+		) {
+		this.label = label;
+		this.type = type;
+		this.in = in;
+		this.json = json;
+		this.jsonT = jsonT;
+		this.jsonR = jsonR;
+		this.xml = xml;
+		this.xmlT = xmlT;
+		this.xmlR = xmlR;
+		this.xmlNs = xmlNs;
+		this.html = html;
+		this.htmlT = htmlT;
+		this.htmlR = htmlR;
+		this.uon = uon;
+		this.uonT = uonT;
+		this.uonR = uonR;
+		this.urlEncoding = urlEncoding;
+		this.urlEncodingT = urlEncodingT;
+		this.urlEncodingR = urlEncodingR;
+		this.msgPack = msgPack;
+		this.msgPackT = msgPackT;
+		this.rdfXml = rdfXml;
+		this.rdfXmlT = rdfXmlT;
+		this.rdfXmlR = rdfXmlR;
+	}
+	
+	/** 
+	 * Override this method if you want to do a post-parse verification on the object.
+	 * <p>
+	 * Note that a Function would be preferred here, but it's not available in Java 6.
+	 * 
+	 * @param o The object returned by the parser.
+	 */
+	public void verify(T o) {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
index 4b89c8e..00535bf 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/ComboTest.java
@@ -30,9 +30,10 @@ import org.junit.*;
 import org.junit.runners.*;
 
 /**
- * Superclass for tests that verify results against all supported content types. 
+ * Superclass for tests that verify results against all supported content types.
  */
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
+@SuppressWarnings({"unchecked","rawtypes"})
 public abstract class ComboTest {
 
 	/* Parameter template */
@@ -62,16 +63,7 @@ public abstract class ComboTest {
 //		/* RdfXmlR */	"xxx",
 //	},
 	
-	private final String 
-		label, 
-		oJson, oJsonT, oJsonR,
-		oXml, oXmlT, oXmlR, oXmlNs,
-		oHtml, oHtmlT, oHtmlR,
-		oUon, oUonT, oUonR,
-		oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
-		oMsgPack, oMsgPackT,
-		oRdfXml, oRdfXmlT, oRdfXmlR;
-	private final Object in;
+	private final ComboInput comboInput;
 	
 	// These are the names of all the tests.
 	// You can comment out the names here to skip them.
@@ -129,26 +121,8 @@ public abstract class ComboTest {
 	private Map<Serializer,Serializer> serializerMap = new IdentityHashMap<Serializer,Serializer>();
 	private Map<Parser,Parser> parserMap = new IdentityHashMap<Parser,Parser>();
 	
-	public ComboTest(
-		String label, 
-		Object in, 
-		String oJson, String oJsonT, String oJsonR,
-		String oXml, String oXmlT, String oXmlR, String oXmlNs,
-		String oHtml, String oHtmlT, String oHtmlR,
-		String oUon, String oUonT, String oUonR,
-		String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
-		String oMsgPack, String oMsgPackT,
-		String oRdfXml, String oRdfXmlT, String oRdfXmlR
-	) {
-		this.label = label;
-		this.in = in;
-		this.oJson = oJson; this.oJsonT = oJsonT; this.oJsonR = oJsonR;
-		this.oXml = oXml; this.oXmlT = oXmlT; this.oXmlR = oXmlR; this.oXmlNs = oXmlNs;
-		this.oHtml = oHtml; this.oHtmlT = oHtmlT; this.oHtmlR = oHtmlR;
-		this.oUon = oUon; this.oUonT = oUonT; this.oUonR = oUonR;
-		this.oUrlEncoding = oUrlEncoding; this.oUrlEncodingT = oUrlEncodingT; this.oUrlEncodingR = oUrlEncodingR;
-		this.oMsgPack = oMsgPack; this.oMsgPackT = oMsgPackT; 
-		this.oRdfXml = oRdfXml; this.oRdfXmlT = oRdfXmlT; this.oRdfXmlR = oRdfXmlR;
+	public ComboTest(ComboInput<?> comboInput) {
+		this.comboInput = comboInput;
 	}
 	
 	private Serializer getSerializer(Serializer s) throws Exception {
@@ -176,34 +150,34 @@ public abstract class ComboTest {
 			boolean isRdf = s instanceof RdfSerializer;
 
 			if ((isRdf && SKIP_RDF_TESTS) || expected.isEmpty() || ! runTestsSet.contains(testName) ) {
-				System.err.println(label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
+				System.err.println(comboInput.label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
 				return;
 			}
 			
-			String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(in) : ((OutputStreamSerializer)s).serializeToHex(in);
+			String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(comboInput.in) : ((OutputStreamSerializer)s).serializeToHex(comboInput.in);
 			
 			// Can't control RdfSerializer output well, so manually remove namespace declarations
 			// double-quotes with single-quotes, and spaces with tabs.
 			// Also because RDF sucks really bad and can't be expected to produce consistent testable results,
 			// we must also do an expensive sort-then-compare operation to verify the results.
-			if (isRdf) 
+			if (isRdf)
 				r = r.replaceAll("<rdf:RDF[^>]*>", "<rdf:RDF>").replace('"', '\'');
 		
 			// Specifying "xxx" in the expected results will spit out what we should populate the field with.
 			if (expected.equals("xxx")) {
-				System.out.println(label + "/" + testName + "=\n" + r.replaceAll("\n", "\\\\n").replaceAll("\t", "\\\\t")); // NOT DEBUG
+				System.out.println(comboInput.label + "/" + testName + "=\n" + r.replaceAll("\n", "\\\\n").replaceAll("\t", "\\\\t")); // NOT DEBUG
 				System.out.println(r);
 			}
 			
 			if (isRdf)
-				TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", label, testName);
+				TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", comboInput.label, testName);
 			else
-				TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", label, testName);
+				TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", comboInput.label, testName);
 			
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new AssertionError(label + "/" + testName + " failed.  exception=" + e.getLocalizedMessage());
+			throw new AssertionError(comboInput.label + "/" + testName + " failed.  exception=" + e.getLocalizedMessage());
 		}
 	}
 	
@@ -215,43 +189,60 @@ public abstract class ComboTest {
 			boolean isRdf = s instanceof RdfSerializer;
 
 			if ((isRdf && SKIP_RDF_TESTS) || expected.isEmpty() || ! runTestsSet.contains(testName) ) {
-				System.err.println(label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
+				System.err.println(comboInput.label + "/" + testName + " for "+s.getClass().getSimpleName()+" skipped.");
 				return;
 			}
 			
-			String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(in) : ((OutputStreamSerializer)s).serializeToHex(in);
-			Object o = p.parse(r, in == null ? Object.class : in.getClass());
+			String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(comboInput.in) : ((OutputStreamSerializer)s).serializeToHex(comboInput.in);
+			Object o = p.parse(r, comboInput.type);
 			r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(o) : ((OutputStreamSerializer)s).serializeToHex(o);
 			
-			if (isRdf) 
+			if (isRdf)
 				r = r.replaceAll("<rdf:RDF[^>]*>", "<rdf:RDF>").replace('"', '\'');
 			
 			if (isRdf)
-				TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", label, testName);
+				TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", comboInput.label, testName);
 			else
-				TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", label, testName);
+				TestUtils.assertEquals(expected, r, "{0}/{1} parse-normal failed", comboInput.label, testName);
 
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new Exception(label + "/" + testName + " failed.", e);
+			throw new Exception(comboInput.label + "/" + testName + " failed.", e);
+		}
+	}
+	
+	private void testParseVerify(String testName, Serializer s, Parser p) throws Exception {
+		try {
+			s = getSerializer(s);
+			p = getParser(p);
+			
+			String r = s.isWriterSerializer() ? ((WriterSerializer)s).serialize(comboInput.in) : ((OutputStreamSerializer)s).serializeToHex(comboInput.in);
+			Object o = p.parse(r, comboInput.type);
+			
+			comboInput.verify(o);
+		} catch (AssertionError e) {
+			throw e;
+		} catch (Exception e) {
+			throw new Exception(comboInput.label + "/" + testName + " failed.", e);
 		}
 	}
 	
+	
 	private void testParseJsonEquivalency(String testName, OutputStreamSerializer s, InputStreamParser p, String expected) throws Exception {
 		try {
 			s = (OutputStreamSerializer)getSerializer(s);
 			p = (InputStreamParser)getParser(p);
 			WriterSerializer sJson = (WriterSerializer)getSerializer(this.sJson);
 
-			String r = s.serializeToHex(in);
-			Object o = p.parse(r, in == null ? Object.class : in.getClass());
+			String r = s.serializeToHex(comboInput.in);
+			Object o = p.parse(r, comboInput.type);
 			r = sJson.serialize(o);
-			assertEquals(label + "/" + testName + " parse-normal failed on JSON equivalency", expected, r);
+			assertEquals(comboInput.label + "/" + testName + " parse-normal failed on JSON equivalency", expected, r);
 		} catch (AssertionError e) {
 			throw e;
 		} catch (Exception e) {
-			throw new Exception(label + "/" + testName + " failed.", e);
+			throw new Exception(comboInput.label + "/" + testName + " failed.", e);
 		}
 	}
 	
@@ -270,15 +261,20 @@ public abstract class ComboTest {
 	ReaderParser pJson = JsonParser.DEFAULT;
 	
 	@Test
-	public void serializeJson() throws Exception {
-		testSerialize("serializeJson", sJson, oJson);
+	public void a11_serializeJson() throws Exception {
+		testSerialize("serializeJson", sJson, comboInput.json);
 	}
 	
 	@Test
-	public void parseJson() throws Exception {
-		testParse("parseJson", sJson, pJson, oJson);
+	public void a12_parseJson() throws Exception {
+		testParse("parseJson", sJson, pJson, comboInput.json);
 	}
 	
+	@Test
+	public void a13_verifyJson() throws Exception {
+		testParseVerify("verifyJson", sJson, pJson);
+	}
+
 	//--------------------------------------------------------------------------------
 	// JSON - 't' property
 	//--------------------------------------------------------------------------------
@@ -286,15 +282,20 @@ public abstract class ComboTest {
 	ReaderParser pJsonT = new JsonParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeJsonT() throws Exception {
-		testSerialize("serializeJsonT", sJsonT, oJsonT);
+	public void a21_serializeJsonT() throws Exception {
+		testSerialize("serializeJsonT", sJsonT, comboInput.jsonT);
 	}
 	
 	@Test
-	public void parseJsonT() throws Exception {
-		testParse("parseJsonT", sJsonT, pJsonT, oJsonT);
+	public void a22_parseJsonT() throws Exception {
+		testParse("parseJsonT", sJsonT, pJsonT, comboInput.jsonT);
 	}
 	
+	@Test
+	public void a23_verifyJsonT() throws Exception {
+		testParseVerify("verifyJsonT", sJsonT, pJsonT);
+	}
+
 	//--------------------------------------------------------------------------------
 	// JSON - Readable
 	//--------------------------------------------------------------------------------
@@ -302,15 +303,20 @@ public abstract class ComboTest {
 	ReaderParser pJsonR = JsonParser.DEFAULT;
 	
 	@Test
-	public void serializeJsonR() throws Exception {
-		testSerialize("serializeJsonR", sJsonR, oJsonR);
+	public void a31_serializeJsonR() throws Exception {
+		testSerialize("serializeJsonR", sJsonR, comboInput.jsonR);
 	}
 	
 	@Test
-	public void parseJsonR() throws Exception {
-		testParse("parseJsonR", sJsonR, pJsonR, oJsonR);
+	public void a32_parseJsonR() throws Exception {
+		testParse("parseJsonR", sJsonR, pJsonR, comboInput.jsonR);
 	}
 	
+	@Test
+	public void a33_verifyJsonR() throws Exception {
+		testParseVerify("verifyJsonR", sJsonR, pJsonR);
+	}
+
 	//--------------------------------------------------------------------------------
 	// XML
 	//--------------------------------------------------------------------------------
@@ -318,15 +324,20 @@ public abstract class ComboTest {
 	ReaderParser pXml = XmlParser.DEFAULT;
 	
 	@Test
-	public void serializeXml() throws Exception {
-		testSerialize("serializeXml", sXml, oXml);
+	public void b11_serializeXml() throws Exception {
+		testSerialize("serializeXml", sXml, comboInput.xml);
 	}
 	
 	@Test
-	public void parseXml() throws Exception {
-		testParse("parseXml", sXml, pXml, oXml);
+	public void b12_parseXml() throws Exception {
+		testParse("parseXml", sXml, pXml, comboInput.xml);
 	}
 	
+	@Test
+	public void b13_verifyXml() throws Exception {
+		testParseVerify("verifyXml", sXml, pXml);
+	}
+
 	//--------------------------------------------------------------------------------
 	// XML - 't' property
 	//--------------------------------------------------------------------------------
@@ -334,13 +345,18 @@ public abstract class ComboTest {
 	ReaderParser pXmlT = new XmlParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeXmlT() throws Exception {
-		testSerialize("serializeXmlT", sXmlT, oXmlT);
+	public void b21_serializeXmlT() throws Exception {
+		testSerialize("serializeXmlT", sXmlT, comboInput.xmlT);
 	}
 	
 	@Test
-	public void parseXmlT() throws Exception {
-		testParse("parseXmlT", sXmlT, pXmlT, oXmlT);
+	public void b22_parseXmlT() throws Exception {
+		testParse("parseXmlT", sXmlT, pXmlT, comboInput.xmlT);
+	}
+	
+	@Test
+	public void b23_verifyXmlT() throws Exception {
+		testParseVerify("parseXmlTVerify", sXmlT, pXmlT);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -350,15 +366,20 @@ public abstract class ComboTest {
 	ReaderParser pXmlR = XmlParser.DEFAULT;
 	
 	@Test
-	public void serializeXmlR() throws Exception {
-		testSerialize("serializeXmlR", sXmlR, oXmlR);
+	public void b31_serializeXmlR() throws Exception {
+		testSerialize("serializeXmlR", sXmlR, comboInput.xmlR);
 	}
 	
 	@Test
-	public void parseXmlR() throws Exception {
-		testParse("parseXmlR", sXmlR, pXmlR, oXmlR);
+	public void b32_parseXmlR() throws Exception {
+		testParse("parseXmlR", sXmlR, pXmlR, comboInput.xmlR);
 	}
 	
+	@Test
+	public void b33_verifyXmlR() throws Exception {
+		testParseVerify("parseXmlRVerify", sXmlR, pXmlR);
+	}
+
 	//--------------------------------------------------------------------------------
 	// XML - Namespaces
 	//--------------------------------------------------------------------------------
@@ -366,15 +387,20 @@ public abstract class ComboTest {
 	ReaderParser pXmlNs = XmlParser.DEFAULT;
 
 	@Test
-	public void serializeXmlNs() throws Exception {
-		testSerialize("serializeXmlNs", sXmlNs, oXmlNs);
+	public void b41_serializeXmlNs() throws Exception {
+		testSerialize("serializeXmlNs", sXmlNs, comboInput.xmlNs);
 	}
 	
 	@Test
-	public void parseXmlNs() throws Exception {
-		testParse("parseXmlNs", sXmlNs, pXmlNs, oXmlNs);
+	public void b42_parseXmlNs() throws Exception {
+		testParse("parseXmlNs", sXmlNs, pXmlNs, comboInput.xmlNs);
 	}
 	
+	@Test
+	public void b43_verifyXmlNs() throws Exception {
+		testParseVerify("verifyXmlNs", sXmlNs, pXmlNs);
+	}
+
 	//--------------------------------------------------------------------------------
 	// HTML
 	//--------------------------------------------------------------------------------
@@ -382,13 +408,18 @@ public abstract class ComboTest {
 	ReaderParser pHtml = HtmlParser.DEFAULT;
 	
 	@Test
-	public void serializeHtml() throws Exception {
-		testSerialize("serializeHtml", sHtml, oHtml);
+	public void c11_serializeHtml() throws Exception {
+		testSerialize("serializeHtml", sHtml, comboInput.html);
 	}
 	
 	@Test
-	public void parseHtml() throws Exception {
-		testParse("parseHtml", sHtml, pHtml, oHtml);
+	public void c12_parseHtml() throws Exception {
+		testParse("parseHtml", sHtml, pHtml, comboInput.html);
+	}
+	
+	@Test
+	public void c13_verifyHtml() throws Exception {
+		testParseVerify("verifyHtml", sHtml, pHtml);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -398,13 +429,18 @@ public abstract class ComboTest {
 	ReaderParser pHtmlT =  new HtmlParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeHtmlT() throws Exception {
-		testSerialize("serializeHtmlT", sHtmlT, oHtmlT);
+	public void c21_serializeHtmlT() throws Exception {
+		testSerialize("serializeHtmlT", sHtmlT, comboInput.htmlT);
 	}
 	
 	@Test
-	public void parseHtmlT() throws Exception {
-		testParse("parseHtmlT", sHtmlT, pHtmlT, oHtmlT);
+	public void c22_parseHtmlT() throws Exception {
+		testParse("parseHtmlT", sHtmlT, pHtmlT, comboInput.htmlT);
+	}
+	
+	@Test
+	public void c23_verifyHtmlT() throws Exception {
+		testParseVerify("verifyHtmlT", sHtmlT, pHtmlT);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -414,13 +450,18 @@ public abstract class ComboTest {
 	ReaderParser pHtmlR = HtmlParser.DEFAULT;
 	
 	@Test
-	public void serializeHtmlR() throws Exception {
-		testSerialize("serializeHtmlR", sHtmlR, oHtmlR);
+	public void c31_serializeHtmlR() throws Exception {
+		testSerialize("serializeHtmlR", sHtmlR, comboInput.htmlR);
+	}
+	
+	@Test
+	public void c32_parseHtmlR() throws Exception {
+		testParse("parseHtmlR", sHtmlR, pHtmlR, comboInput.htmlR);
 	}
 	
 	@Test
-	public void parseHtmlR() throws Exception {
-		testParse("parseHtmlR", sHtmlR, pHtmlR, oHtmlR);
+	public void c33_verifyHtmlR() throws Exception {
+		testParseVerify("verifyHtmlR", sHtmlR, pHtmlR);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -430,13 +471,18 @@ public abstract class ComboTest {
 	ReaderParser pUon = UonParser.DEFAULT;
 	
 	@Test
-	public void serializeUon() throws Exception {
-		testSerialize("serializeUon", sUon, oUon);
+	public void d11_serializeUon() throws Exception {
+		testSerialize("serializeUon", sUon, comboInput.uon);
 	}
 	
 	@Test
-	public void parseUon() throws Exception {
-		testParse("parseUon", sUon, pUon, oUon);
+	public void d12_parseUon() throws Exception {
+		testParse("parseUon", sUon, pUon, comboInput.uon);
+	}
+	
+	@Test
+	public void d13_verifyUon() throws Exception {
+		testParseVerify("verifyUon", sUon, pUon);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -446,13 +492,18 @@ public abstract class ComboTest {
 	ReaderParser pUonT = new UonParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeUonT() throws Exception {
-		testSerialize("serializeUonT", sUonT, oUonT);
+	public void d21_serializeUonT() throws Exception {
+		testSerialize("serializeUonT", sUonT, comboInput.uonT);
 	}
 	
 	@Test
-	public void parseUonT() throws Exception {
-		testParse("parseUonT", sUonT, pUonT, oUonT);
+	public void d22_parseUonT() throws Exception {
+		testParse("parseUonT", sUonT, pUonT, comboInput.uonT);
+	}
+	
+	@Test
+	public void d23_verifyUonT() throws Exception {
+		testParseVerify("verifyUonT", sUonT, pUonT);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -462,13 +513,18 @@ public abstract class ComboTest {
 	ReaderParser pUonR = UonParser.DEFAULT;
 	
 	@Test
-	public void serializeUonR() throws Exception {
-		testSerialize("serializeUonR", sUonR, oUonR);
+	public void d31_serializeUonR() throws Exception {
+		testSerialize("serializeUonR", sUonR, comboInput.uonR);
 	}
 	
 	@Test
-	public void parseUonR() throws Exception {
-		testParse("parseUonR", sUonR, pUonR, oUonR);
+	public void d32_parseUonR() throws Exception {
+		testParse("parseUonR", sUonR, pUonR, comboInput.uonR);
+	}
+	
+	@Test
+	public void d33_verifyUonR() throws Exception {
+		testParseVerify("verifyUonR", sUonR, pUonR);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -478,13 +534,18 @@ public abstract class ComboTest {
 	ReaderParser pUrlEncoding = UrlEncodingParser.DEFAULT;
 	
 	@Test
-	public void serializeUrlEncoding() throws Exception {
-		testSerialize("serializeUrlEncoding", sUrlEncoding, oUrlEncoding);
+	public void e11_serializeUrlEncoding() throws Exception {
+		testSerialize("serializeUrlEncoding", sUrlEncoding, comboInput.urlEncoding);
 	}
 	
 	@Test
-	public void parseUrlEncoding() throws Exception {
-		testParse("parseUrlEncoding", sUrlEncoding, pUrlEncoding, oUrlEncoding);
+	public void e12_parseUrlEncoding() throws Exception {
+		testParse("parseUrlEncoding", sUrlEncoding, pUrlEncoding, comboInput.urlEncoding);
+	}
+	
+	@Test
+	public void e13_verifyUrlEncoding() throws Exception {
+		testParseVerify("verifyUrlEncoding", sUrlEncoding, pUrlEncoding);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -494,13 +555,18 @@ public abstract class ComboTest {
 	ReaderParser pUrlEncodingT = new UrlEncodingParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeUrlEncodingT() throws Exception {
-		testSerialize("serializeUrlEncodingT", sUrlEncodingT, oUrlEncodingT);
+	public void e21_serializeUrlEncodingT() throws Exception {
+		testSerialize("serializeUrlEncodingT", sUrlEncodingT, comboInput.urlEncodingT);
+	}
+	
+	@Test
+	public void e22_parseUrlEncodingT() throws Exception {
+		testParse("parseUrlEncodingT", sUrlEncodingT, pUrlEncodingT, comboInput.urlEncodingT);
 	}
 	
 	@Test
-	public void parseUrlEncodingT() throws Exception {
-		testParse("parseUrlEncodingT", sUrlEncodingT, pUrlEncodingT, oUrlEncodingT);
+	public void e23_verifyUrlEncodingT() throws Exception {
+		testParseVerify("verifyUrlEncodingT", sUrlEncodingT, pUrlEncodingT);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -510,13 +576,18 @@ public abstract class ComboTest {
 	ReaderParser pUrlEncodingR = UrlEncodingParser.DEFAULT;
 	
 	@Test
-	public void serializeUrlEncodingR() throws Exception {
-		testSerialize("serializeUrlEncodingR", sUrlEncodingR, oUrlEncodingR);
+	public void e31_serializeUrlEncodingR() throws Exception {
+		testSerialize("serializeUrlEncodingR", sUrlEncodingR, comboInput.urlEncodingR);
 	}
 	
 	@Test
-	public void parseUrlEncodingR() throws Exception {
-		testParse("parseUrlEncodingR", sUrlEncodingR, pUrlEncodingR, oUrlEncodingR);
+	public void e32_parseUrlEncodingR() throws Exception {
+		testParse("parseUrlEncodingR", sUrlEncodingR, pUrlEncodingR, comboInput.urlEncodingR);
+	}
+	
+	@Test
+	public void e33_verifyUrlEncodingR() throws Exception {
+		testParseVerify("verifyUrlEncodingR", sUrlEncodingR, pUrlEncodingR);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -526,18 +597,23 @@ public abstract class ComboTest {
 	InputStreamParser pMsgPack = MsgPackParser.DEFAULT;
 	
 	@Test
-	public void serializeMsgPack() throws Exception {
-		testSerialize("serializeMsgPack", sMsgPack, oMsgPack);
+	public void f11_serializeMsgPack() throws Exception {
+		testSerialize("serializeMsgPack", sMsgPack, comboInput.msgPack);
+	}
+	
+	@Test
+	public void f12_parseMsgPack() throws Exception {
+		testParse("parseMsgPack", sMsgPack, pMsgPack, comboInput.msgPack);
 	}
 	
 	@Test
-	public void parseMsgPack() throws Exception {
-		testParse("parseMsgPack", sMsgPack, pMsgPack, oMsgPack);
+	public void f13_parseMsgPackJsonEquivalency() throws Exception {
+		testParseJsonEquivalency("parseMsgPackJsonEquivalency", sMsgPack, pMsgPack, comboInput.json);
 	}
 	
 	@Test
-	public void parseMsgPackJsonEquivalency() throws Exception {
-		testParseJsonEquivalency("parseMsgPackJsonEquivalency", sMsgPack, pMsgPack, oJson);
+	public void f14_verifyMsgPack() throws Exception {
+		testParseVerify("verifyMsgPack", sMsgPack, pMsgPack);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -547,18 +623,23 @@ public abstract class ComboTest {
 	InputStreamParser pMsgPackT = new MsgPackParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeMsgPackT() throws Exception {
-		testSerialize("serializeMsgPackT", sMsgPackT, oMsgPackT);
+	public void f21_serializeMsgPackT() throws Exception {
+		testSerialize("serializeMsgPackT", sMsgPackT, comboInput.msgPackT);
+	}
+	
+	@Test
+	public void f22_parseMsgPackT() throws Exception {
+		testParse("parseMsgPackT", sMsgPackT, pMsgPackT, comboInput.msgPackT);
 	}
 	
 	@Test
-	public void parseMsgPackT() throws Exception {
-		testParse("parseMsgPackT", sMsgPackT, pMsgPackT, oMsgPackT);
+	public void f23_parseMsgPackTJsonEquivalency() throws Exception {
+		testParseJsonEquivalency("parseMsgPackTJsonEquivalency", sMsgPackT, pMsgPackT, comboInput.json);
 	}
 	
 	@Test
-	public void parseMsgPackTJsonEquivalency() throws Exception {
-		testParseJsonEquivalency("parseMsgPackTJsonEquivalency", sMsgPackT, pMsgPackT, oJson);
+	public void f24_verifyMsgPackT() throws Exception {
+		testParseVerify("verifyMsgPackT", sMsgPackT, pMsgPackT);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -568,13 +649,18 @@ public abstract class ComboTest {
 	ReaderParser pRdfXml = RdfParser.DEFAULT_XML;
 	
 	@Test
-	public void serializeRdfXml() throws Exception {
-		testSerialize("serializeRdfXml", sRdfXml, oRdfXml);
+	public void g11_serializeRdfXml() throws Exception {
+		testSerialize("serializeRdfXml", sRdfXml, comboInput.rdfXml);
 	}
 	
 	@Test
-	public void parseRdfXml() throws Exception {
-		testParse("parseRdfXml", sRdfXml, pRdfXml, oRdfXml);
+	public void g12_parseRdfXml() throws Exception {
+		testParse("parseRdfXml", sRdfXml, pRdfXml, comboInput.rdfXml);
+	}
+	
+	@Test
+	public void g13_verifyRdfXml() throws Exception {
+		testParseVerify("verifyRdfXml", sRdfXml, pRdfXml);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -584,13 +670,18 @@ public abstract class ComboTest {
 	ReaderParser pRdfXmlT = new RdfParserBuilder().beanTypePropertyName("t").build();
 	
 	@Test
-	public void serializeRdfXmlT() throws Exception {
-		testSerialize("serializeRdfXmlT", sRdfXmlT, oRdfXmlT);
+	public void g21_serializeRdfXmlT() throws Exception {
+		testSerialize("serializeRdfXmlT", sRdfXmlT, comboInput.rdfXmlT);
 	}
 	
 	@Test
-	public void parseRdfXmlT() throws Exception {
-		testParse("parseRdfXmlT", sRdfXmlT, pRdfXmlT, oRdfXmlT);
+	public void g22_parseRdfXmlT() throws Exception {
+		testParse("parseRdfXmlT", sRdfXmlT, pRdfXmlT, comboInput.rdfXmlT);
+	}
+	
+	@Test
+	public void g23_verifyRdfXmlT() throws Exception {
+		testParseVerify("parseRdfXmlTVerify", sRdfXmlT, pRdfXmlT);
 	}
 	
 	//--------------------------------------------------------------------------------
@@ -600,12 +691,17 @@ public abstract class ComboTest {
 	ReaderParser pRdfXmlR = RdfParser.DEFAULT_XML;
 	
 	@Test
-	public void serializeRdfXmlR() throws Exception {
-		testSerialize("serializeRdfXmlR", sRdfXmlR, oRdfXmlR);
+	public void g31_serializeRdfXmlR() throws Exception {
+		testSerialize("serializeRdfXmlR", sRdfXmlR, comboInput.rdfXmlR);
+	}
+	
+	@Test
+	public void g32_parseRdfXmlR() throws Exception {
+		testParse("parseRdfXmlR", sRdfXmlR, pRdfXmlR, comboInput.rdfXmlR);
 	}
 	
 	@Test
-	public void parseRdfXmlR() throws Exception {
-		testParse("parseRdfXmlR", sRdfXmlR, pRdfXmlR, oRdfXmlR);
+	public void g33_verifyRdfXmlR() throws Exception {
+		testParseVerify("Verify", sRdfXmlR, pRdfXmlR);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
index ae075e8..eaeb4e7 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
@@ -13,6 +13,7 @@
 package org.apache.juneau;
 
 import java.io.*;
+import java.lang.reflect.*;
 import java.text.*;
 import java.util.*;
 import java.util.regex.*;
@@ -27,6 +28,7 @@ import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transforms.*;
+import org.apache.juneau.utils.*;
 import org.apache.juneau.xml.*;
 import org.junit.*;
 import org.w3c.dom.*;
@@ -61,6 +63,8 @@ public class TestUtils {
 		.sortProperties(true)
 		.build();
 
+	private static final BeanSession beanSession = BeanContext.DEFAULT.createSession();
+
 	/**
 	 * Verifies that two objects are equivalent.
 	 * Does this by doing a string comparison after converting both to JSON.
@@ -268,11 +272,11 @@ public class TestUtils {
 
 	final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
 	public static String toHex(byte b) {
-	    char[] c = new char[2];
-	    int v = b & 0xFF;
-	    c[0] = hexArray[v >>> 4];
-	    c[1] = hexArray[v & 0x0F];
-	    return new String(c);
+		char[] c = new char[2];
+		int v = b & 0xFF;
+		c[0] = hexArray[v >>> 4];
+		c[1] = hexArray[v & 0x0F];
+		return new String(c);
 	}
 
 	public static void debugOut(Object o) {
@@ -479,13 +483,13 @@ public class TestUtils {
 	public static void assertEqualsAfterSort(String expected, String actual, String msg, Object...args) {
 		String[] e = expected.trim().split("\n"), a = actual.trim().split("\n");
 		
-		if (e.length != a.length) 
+		if (e.length != a.length)
 			throw new ComparisonFailure(MessageFormat.format(msg, args), expected, actual);
 		
 		Arrays.sort(e);
 		Arrays.sort(a);
 		
-		for (int i = 0; i < e.length; i++) 
+		for (int i = 0; i < e.length; i++)
 			if (! e[i].equals(a[i]))
 				throw new ComparisonFailure(MessageFormat.format(msg, args), expected, actual);
 	}
@@ -497,4 +501,21 @@ public class TestUtils {
 		if (! StringUtils.isEquals(expected, actual))
 			throw new ComparisonFailure(MessageFormat.format(msg, args), expected, actual);			
 	}
+	
+	/**
+	 * Creates a ClassMeta for the given types.
+	 */
+	public static Type getType(Type type, Type...args) {
+		return beanSession.getClassMeta(type, args);
+	}
+	
+	/**
+	 * Throws an AssertionError if the object isn't of the specified type.
+	 */
+	public static void assertType(Class<?> type, Object o) {
+		if (type.isInstance(o))
+			return;
+		throw new AssertionError(new StringMessage("Expected type {0} but was {1}", type, (o == null ? null : o.getClass())));
+	}
+	
 }



[05/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/transforms/BeanDictionaryComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/BeanDictionaryComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/BeanDictionaryComboTest.java
index 5ff7f62..03aaab7 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/transforms/BeanDictionaryComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/BeanDictionaryComboTest.java
@@ -12,12 +12,15 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.TestUtils.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
+import org.apache.juneau.utils.*;
 import org.junit.runner.*;
 import org.junit.runners.*;
 
@@ -32,180 +35,802 @@ public class BeanDictionaryComboTest extends ComboTest {
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
 			{ 	/* 0 */
-				"A",
-				new A().init(),
-				/* Json */		"{_type:'A',a:1}",
-				/* JsonT */		"{t:'A',a:1}",
-				/* JsonR */		"{\n\t_type: 'A',\n\ta: 1\n}",
-				/* Xml */		"<A><a>1</a></A>",
-				/* XmlT */		"<A><a>1</a></A>",
-				/* XmlR */		"<A>\n\t<a>1</a>\n</A>\n",
-				/* XmlNs */		"<A><a>1</a></A>",
-				/* Html */		"<table _type='A'><tr><td>a</td><td>1</td></tr></table>",
-				/* HtmlT */		"<table t='A'><tr><td>a</td><td>1</td></tr></table>",
-				/* HtmlR */		"<table _type='A'>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(_type=A,a=1)",
-				/* UonT */		"(t=A,a=1)",
-				/* UonR */		"(\n\t_type=A,\n\ta=1\n)",
-				/* UrlEnc */	"_type=A&a=1",
-				/* UrlEncT */	"t=A&a=1",
-				/* UrlEncR */	"_type=A\n&a=1",
-				/* MsgPack */	"82A55F74797065A141A16101",
-				/* MsgPackT */	"82A174A141A16101",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>A</jp:_type>\n    <jp:a>1</jp:a>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"A[]",
-				new A[]{new A().init()},
-				/* Json */		"[{_type:'A',a:1}]",
-				/* JsonT */		"[{t:'A',a:1}]",
-				/* JsonR */		"[\n\t{\n\t\t_type: 'A',\n\t\ta: 1\n\t}\n]",
-				/* Xml */		"<array><A><a>1</a></A></array>",
-				/* XmlT */		"<array><A><a>1</a></A></array>",
-				/* XmlR */		"<array>\n\t<A>\n\t\t<a>1</a>\n\t</A>\n</array>\n",
-				/* XmlNs */		"<array><A><a>1</a></A></array>",
-				/* Html */		"<table _type='array'><tr><th>a</th></tr><tr _type='A'><td>1</td></tr></table>",
-				/* HtmlT */		"<table t='array'><tr><th>a</th></tr><tr t='A'><td>1</td></tr></table>",
-				/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>a</th>\n\t</tr>\n\t<tr _type='A'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"@((_type=A,a=1))",
-				/* UonT */		"@((t=A,a=1))",
-				/* UonR */		"@(\n\t(\n\t\t_type=A,\n\t\ta=1\n\t)\n)",
-				/* UrlEnc */	"0=(_type=A,a=1)",
-				/* UrlEncT */	"0=(t=A,a=1)",
-				/* UrlEncR */	"0=(\n\t_type=A,\n\ta=1\n)",
-				/* MsgPack */	"9182A55F74797065A141A16101",
-				/* MsgPackT */	"9182A174A141A16101",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:_type>A</jp:_type>\n      <jp:a>1</jp:a>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
-			},
-			{
-				"IA[]",
-				new IA[]{new A().init()},
-				/* Json */		"[{_type:'A',a:1}]",
-				/* JsonT */		"[{t:'A',a:1}]",
-				/* JsonR */		"[\n\t{\n\t\t_type: 'A',\n\t\ta: 1\n\t}\n]",
-				/* Xml */		"<array><A><a>1</a></A></array>",
-				/* XmlT */		"<array><A><a>1</a></A></array>",
-				/* XmlR */		"<array>\n\t<A>\n\t\t<a>1</a>\n\t</A>\n</array>\n",
-				/* XmlNs */		"<array><A><a>1</a></A></array>",
-				/* Html */		"<table _type='array'><tr><th>a</th></tr><tr _type='A'><td>1</td></tr></table>",
-				/* HtmlT */		"<table t='array'><tr><th>a</th></tr><tr t='A'><td>1</td></tr></table>",
-				/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>a</th>\n\t</tr>\n\t<tr _type='A'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"@((_type=A,a=1))",
-				/* UonT */		"@((t=A,a=1))",
-				/* UonR */		"@(\n\t(\n\t\t_type=A,\n\t\ta=1\n\t)\n)",
-				/* UrlEnc */	"0=(_type=A,a=1)",
-				/* UrlEncT */	"0=(t=A,a=1)",
-				/* UrlEncR */	"0=(\n\t_type=A,\n\ta=1\n)",
-				/* MsgPack */	"9182A55F74797065A141A16101",
-				/* MsgPackT */	"9182A174A141A16101",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:_type>A</jp:_type>\n      <jp:a>1</jp:a>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
-			},
-			{
-				"B",
-				new B().init(),
-				/* Json */		"{z:'B',b:1}",
-				/* JsonT */		"{z:'B',b:1}",
-				/* JsonR */		"{\n\tz: 'B',\n\tb: 1\n}",
-				/* Xml */		"<B><b>1</b></B>",
-				/* XmlT */		"<B><b>1</b></B>",
-				/* XmlR */		"<B>\n\t<b>1</b>\n</B>\n",
-				/* XmlNs */		"<B><b>1</b></B>",
-				/* Html */		"<table z='B'><tr><td>b</td><td>1</td></tr></table>",
-				/* HtmlT */		"<table z='B'><tr><td>b</td><td>1</td></tr></table>",
-				/* HtmlR */		"<table z='B'>\n\t<tr>\n\t\t<td>b</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(z=B,b=1)",
-				/* UonT */		"(z=B,b=1)",
-				/* UonR */		"(\n\tz=B,\n\tb=1\n)",
-				/* UrlEnc */	"z=B&b=1",
-				/* UrlEncT */	"z=B&b=1",
-				/* UrlEncR */	"z=B\n&b=1",
-				/* MsgPack */	"82A17AA142A16201",
-				/* MsgPackT */	"82A17AA142A16201",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:z>B</jp:z>\n    <jp:b>1</jp:b>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"B[]",
-				new B[]{new B().init()},
-				/* Json */		"[{z:'B',b:1}]",
-				/* JsonT */		"[{z:'B',b:1}]",
-				/* JsonR */		"[\n\t{\n\t\tz: 'B',\n\t\tb: 1\n\t}\n]",
-				/* Xml */		"<array><B><b>1</b></B></array>",
-				/* XmlT */		"<array><B><b>1</b></B></array>",
-				/* XmlR */		"<array>\n\t<B>\n\t\t<b>1</b>\n\t</B>\n</array>\n",
-				/* XmlNs */		"<array><B><b>1</b></B></array>",
-				/* Html */		"<table _type='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
-				/* HtmlT */		"<table t='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
-				/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>b</th>\n\t</tr>\n\t<tr z='B'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"@((z=B,b=1))",
-				/* UonT */		"@((z=B,b=1))",
-				/* UonR */		"@(\n\t(\n\t\tz=B,\n\t\tb=1\n\t)\n)",
-				/* UrlEnc */	"0=(z=B,b=1)",
-				/* UrlEncT */	"0=(z=B,b=1)",
-				/* UrlEncR */	"0=(\n\tz=B,\n\tb=1\n)",
-				/* MsgPack */	"9182A17AA142A16201",
-				/* MsgPackT */	"9182A17AA142A16201",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:z>B</jp:z>\n      <jp:b>1</jp:b>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
-			},
-			{
-				"IB[]",
-				new IB[]{new B().init()},
-				/* Json */		"[{z:'B',b:1}]",
-				/* JsonT */		"[{z:'B',b:1}]",
-				/* JsonR */		"[\n\t{\n\t\tz: 'B',\n\t\tb: 1\n\t}\n]",
-				/* Xml */		"<array><B><b>1</b></B></array>",
-				/* XmlT */		"<array><B><b>1</b></B></array>",
-				/* XmlR */		"<array>\n\t<B>\n\t\t<b>1</b>\n\t</B>\n</array>\n",
-				/* XmlNs */		"<array><B><b>1</b></B></array>",
-				/* Html */		"<table _type='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
-				/* HtmlT */		"<table t='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
-				/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>b</th>\n\t</tr>\n\t<tr z='B'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"@((z=B,b=1))",
-				/* UonT */		"@((z=B,b=1))",
-				/* UonR */		"@(\n\t(\n\t\tz=B,\n\t\tb=1\n\t)\n)",
-				/* UrlEnc */	"0=(z=B,b=1)",
-				/* UrlEncT */	"0=(z=B,b=1)",
-				/* UrlEncR */	"0=(\n\tz=B,\n\tb=1\n)",
-				/* MsgPack */	"9182A17AA142A16201",
-				/* MsgPackT */	"9182A17AA142A16201",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:z>B</jp:z>\n      <jp:b>1</jp:b>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput<A>(
+					"A",
+					A.class,
+					new A().init(),
+					/* Json */		"{_type:'A',a:1}",
+					/* JsonT */		"{t:'A',a:1}",
+					/* JsonR */		"{\n\t_type: 'A',\n\ta: 1\n}",
+					/* Xml */		"<A><a>1</a></A>",
+					/* XmlT */		"<A><a>1</a></A>",
+					/* XmlR */		"<A>\n\t<a>1</a>\n</A>\n",
+					/* XmlNs */		"<A><a>1</a></A>",
+					/* Html */		"<table _type='A'><tr><td>a</td><td>1</td></tr></table>",
+					/* HtmlT */		"<table t='A'><tr><td>a</td><td>1</td></tr></table>",
+					/* HtmlR */		"<table _type='A'>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(_type=A,a=1)",
+					/* UonT */		"(t=A,a=1)",
+					/* UonR */		"(\n\t_type=A,\n\ta=1\n)",
+					/* UrlEnc */	"_type=A&a=1",
+					/* UrlEncT */	"t=A&a=1",
+					/* UrlEncR */	"_type=A\n&a=1",
+					/* MsgPack */	"82A55F74797065A141A16101",
+					/* MsgPackT */	"82A174A141A16101",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>A</jp:_type>\n    <jp:a>1</jp:a>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(A o) {
+						assertType(A.class, o);
+					}
+				}
+			},
+			{	/* 1 */
+				new ComboInput<A[]>(
+					"A[]",
+					A[].class,
+					new A[]{new A().init()},
+					/* Json */		"[{_type:'A',a:1}]",
+					/* JsonT */		"[{t:'A',a:1}]",
+					/* JsonR */		"[\n\t{\n\t\t_type: 'A',\n\t\ta: 1\n\t}\n]",
+					/* Xml */		"<array><A><a>1</a></A></array>",
+					/* XmlT */		"<array><A><a>1</a></A></array>",
+					/* XmlR */		"<array>\n\t<A>\n\t\t<a>1</a>\n\t</A>\n</array>\n",
+					/* XmlNs */		"<array><A><a>1</a></A></array>",
+					/* Html */		"<table _type='array'><tr><th>a</th></tr><tr _type='A'><td>1</td></tr></table>",
+					/* HtmlT */		"<table t='array'><tr><th>a</th></tr><tr t='A'><td>1</td></tr></table>",
+					/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>a</th>\n\t</tr>\n\t<tr _type='A'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"@((_type=A,a=1))",
+					/* UonT */		"@((t=A,a=1))",
+					/* UonR */		"@(\n\t(\n\t\t_type=A,\n\t\ta=1\n\t)\n)",
+					/* UrlEnc */	"0=(_type=A,a=1)",
+					/* UrlEncT */	"0=(t=A,a=1)",
+					/* UrlEncR */	"0=(\n\t_type=A,\n\ta=1\n)",
+					/* MsgPack */	"9182A55F74797065A141A16101",
+					/* MsgPackT */	"9182A174A141A16101",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:_type>A</jp:_type>\n      <jp:a>1</jp:a>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(A[] o) {
+						assertType(A.class, o[0]);
+					}
+				}
+			},
+			{	/* 2 */
+				new ComboInput<A[][][]>(
+					"A[][][]",
+					A[][][].class,
+					new A[][][]{{{new A().init(),null},null},null},
+					/* Json */		"[[[{_type:'A',a:1},null],null],null]",
+					/* JsonT */		"[[[{t:'A',a:1},null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\t_type: 'A',\n\t\t\t\ta: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<A>\n\t\t\t\t<a>1</a>\n\t\t\t</A>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@((_type=A,a=1),null),null),null)",
+					/* UonT */		"@(@(@((t=A,a=1),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@((_type=A,a=1),null),null)&1=null",
+					/* UrlEncT */	"0=@(@((t=A,a=1),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t(\n\t\t\t_type=A,\n\t\t\ta=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"92929282A55F74797065A141A16101C0C0C0",
+					/* MsgPackT */	"92929282A174A141A16101C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li rdf:parseType='Resource'>\n              <jp:_type>A</jp:_type>\n              <jp:a>1</jp:a>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(A[][][] o) {
+						assertType(A.class, o[0][0][0]);
+					}
+				}
+			},
+			{	/* 3 */
+				new ComboInput<List<A[][][]>>(
+					"List<A[][][]>",
+					getType(List.class, A[][][].class),
+					new AList<A[][][]>().append(new A[][][]{{{new A().init(),null},null},null}).append(null),
+					/* Json */		"[[[[{_type:'A',a:1},null],null],null],null]",
+					/* JsonT */		"[[[[{t:'A',a:1},null],null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@(@((_type=A,a=1),null),null),null),null)",
+					/* UonT */		"@(@(@(@((t=A,a=1),null),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@(@((_type=A,a=1),null),null),null)&1=null",
+					/* UrlEncT */	"0=@(@(@((t=A,a=1),null),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"9292929282A55F74797065A141A16101C0C0C0C0",
+					/* MsgPackT */	"9292929282A174A141A16101C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:_type>A</jp:_type>\n                  <jp:a>1</jp:a>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(List<A[][][]> o) {
+						assertType(A.class, o.get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 4 */
+				new ComboInput<Map<String,A[][][]>>(
+					"Map<String,A[][][]>",
+					getType(Map.class,String.class,A[][][].class),
+					new AMap<String,A[][][]>().append("x", new A[][][]{{{new A().init(),null},null},null}),
+					/* Json */		"{x:[[[{_type:'A',a:1},null],null],null]}",
+					/* JsonT */		"{x:[[[{t:'A',a:1},null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(x=@(@(@((_type=A,a=1),null),null),null))",
+					/* UonT */		"(x=@(@(@((t=A,a=1),null),null),null))",
+					/* UonR */		"(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"x=@(@(@((_type=A,a=1),null),null),null)",
+					/* UrlEncT */	"x=@(@(@((t=A,a=1),null),null),null)",
+					/* UrlEncR */	"x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A17892929282A55F74797065A141A16101C0C0C0",
+					/* MsgPackT */	"81A17892929282A174A141A16101C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:x>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:_type>A</jp:_type>\n                  <jp:a>1</jp:a>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:x>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,A[][][]> o) {
+						assertType(A.class, o.get("x")[0][0][0]);
+					}
+				}
+			},
+			{	/* 5 */
+				new ComboInput<Map<String,List<A[][][]>>>(
+					"Map<String,List<A[][][]>>",
+					getType(Map.class,String.class,List.class,A[][][].class),
+					new AMap<String,List<A[][][]>>().append("x", new AList<A[][][]>().append(new A[][][]{{{new A().init(),null},null},null}).append(null)),
+					/* Json */		"{x:[[[[{_type:'A',a:1},null],null],null],null]}",
+					/* JsonT */		"{x:[[[[{t:'A',a:1},null],null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\t_type: 'A',\n\t\t\t\t\t\ta: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<A>\n\t\t\t\t\t\t<a>1</a>\n\t\t\t\t\t</A>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(x=@(@(@(@((_type=A,a=1),null),null),null),null))",
+					/* UonT */		"(x=@(@(@(@((t=A,a=1),null),null),null),null))",
+					/* UonR */		"(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\t_type=A,\n\t\t\t\t\t\ta=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"x=@(@(@(@((_type=A,a=1),null),null),null),null)",
+					/* UrlEncT */	"x=@(@(@(@((t=A,a=1),null),null),null),null)",
+					/* UrlEncR */	"x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A1789292929282A55F74797065A141A16101C0C0C0C0",
+					/* MsgPackT */	"81A1789292929282A174A141A16101C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:x>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li>\n                  <rdf:Seq>\n                    <rdf:li rdf:parseType='Resource'>\n                      <jp:_type>A</jp:_type>\n                      <jp:a>1</jp:a>\n                    </rdf:li>\n                    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n                  </rdf:Seq>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:x>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,List<A[][][]>> o) {
+						assertType(A.class, o.get("x").get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 6 */
+				new ComboInput<IA>(
+					"IA",
+					IA.class,
+					new A().init(),
+					/* Json */		"{_type:'A',a:1}",
+					/* JsonT */		"{t:'A',a:1}",
+					/* JsonR */		"{\n\t_type: 'A',\n\ta: 1\n}",
+					/* Xml */		"<A><a>1</a></A>",
+					/* XmlT */		"<A><a>1</a></A>",
+					/* XmlR */		"<A>\n\t<a>1</a>\n</A>\n",
+					/* XmlNs */		"<A><a>1</a></A>",
+					/* Html */		"<table _type='A'><tr><td>a</td><td>1</td></tr></table>",
+					/* HtmlT */		"<table t='A'><tr><td>a</td><td>1</td></tr></table>",
+					/* HtmlR */		"<table _type='A'>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(_type=A,a=1)",
+					/* UonT */		"(t=A,a=1)",
+					/* UonR */		"(\n\t_type=A,\n\ta=1\n)",
+					/* UrlEnc */	"_type=A&a=1",
+					/* UrlEncT */	"t=A&a=1",
+					/* UrlEncR */	"_type=A\n&a=1",
+					/* MsgPack */	"82A55F74797065A141A16101",
+					/* MsgPackT */	"82A174A141A16101",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>A</jp:_type>\n    <jp:a>1</jp:a>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(IA o) {
+						assertType(A.class, o);
+					}
+				}
+			},
+			{	/* 7 */
+				new ComboInput<IA[]>(
+					"IA[]",
+					IA[].class,
+					new IA[]{new A().init()},
+					/* Json */		"[{_type:'A',a:1}]",
+					/* JsonT */		"[{t:'A',a:1}]",
+					/* JsonR */		"[\n\t{\n\t\t_type: 'A',\n\t\ta: 1\n\t}\n]",
+					/* Xml */		"<array><A><a>1</a></A></array>",
+					/* XmlT */		"<array><A><a>1</a></A></array>",
+					/* XmlR */		"<array>\n\t<A>\n\t\t<a>1</a>\n\t</A>\n</array>\n",
+					/* XmlNs */		"<array><A><a>1</a></A></array>",
+					/* Html */		"<table _type='array'><tr><th>a</th></tr><tr _type='A'><td>1</td></tr></table>",
+					/* HtmlT */		"<table t='array'><tr><th>a</th></tr><tr t='A'><td>1</td></tr></table>",
+					/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>a</th>\n\t</tr>\n\t<tr _type='A'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"@((_type=A,a=1))",
+					/* UonT */		"@((t=A,a=1))",
+					/* UonR */		"@(\n\t(\n\t\t_type=A,\n\t\ta=1\n\t)\n)",
+					/* UrlEnc */	"0=(_type=A,a=1)",
+					/* UrlEncT */	"0=(t=A,a=1)",
+					/* UrlEncR */	"0=(\n\t_type=A,\n\ta=1\n)",
+					/* MsgPack */	"9182A55F74797065A141A16101",
+					/* MsgPackT */	"9182A174A141A16101",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:_type>A</jp:_type>\n      <jp:a>1</jp:a>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(IA[] o) {
+						assertType(A.class, o[0]);
+					}
+				}
+			},
+			{	/* 8 */
+				new ComboInput<IA[][][]>(
+					"IA[][][]",
+					IA[][][].class,
+					new IA[][][]{{{new A().init(),null},null},null},
+					/* Json */		"[[[{_type:'A',a:1},null],null],null]",
+					/* JsonT */		"[[[{t:'A',a:1},null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\t_type: 'A',\n\t\t\t\ta: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<A>\n\t\t\t\t<a>1</a>\n\t\t\t</A>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@((_type=A,a=1),null),null),null)",
+					/* UonT */		"@(@(@((t=A,a=1),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@((_type=A,a=1),null),null)&1=null",
+					/* UrlEncT */	"0=@(@((t=A,a=1),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t(\n\t\t\t_type=A,\n\t\t\ta=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"92929282A55F74797065A141A16101C0C0C0",
+					/* MsgPackT */	"92929282A174A141A16101C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li rdf:parseType='Resource'>\n              <jp:_type>A</jp:_type>\n              <jp:a>1</jp:a>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(IA[][][] o) {
+						assertType(A.class, o[0][0][0]);
+					}
+				}
+			},
+			{	/* 9 */
+				new ComboInput<List<IA[][][]>>(
+					"List<IA[][][]>",
+					getType(List.class,IA[][][].class),
+					new AList<IA[][][]>().append(new IA[][][]{{{new A().init(),null},null},null}).append(null),
+					/* Json */		"[[[[{_type:'A',a:1},null],null],null],null]",
+					/* JsonT */		"[[[[{t:'A',a:1},null],null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@(@((_type=A,a=1),null),null),null),null)",
+					/* UonT */		"@(@(@(@((t=A,a=1),null),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@(@((_type=A,a=1),null),null),null)&1=null",
+					/* UrlEncT */	"0=@(@(@((t=A,a=1),null),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"9292929282A55F74797065A141A16101C0C0C0C0",
+					/* MsgPackT */	"9292929282A174A141A16101C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:_type>A</jp:_type>\n                  <jp:a>1</jp:a>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(List<IA[][][]> o) {
+						assertType(A.class, o.get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 10 */
+				new ComboInput<Map<String,IA[][][]>>(
+					"Map<String,IA[][][]>",
+					getType(Map.class,String.class,IA[][][].class),
+					new AMap<String,IA[][][]>().append("x", new IA[][][]{{{new A().init(),null},null},null}),
+					/* Json */		"{x:[[[{_type:'A',a:1},null],null],null]}",
+					/* JsonT */		"{x:[[[{t:'A',a:1},null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(x=@(@(@((_type=A,a=1),null),null),null))",
+					/* UonT */		"(x=@(@(@((t=A,a=1),null),null),null))",
+					/* UonR */		"(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"x=@(@(@((_type=A,a=1),null),null),null)",
+					/* UrlEncT */	"x=@(@(@((t=A,a=1),null),null),null)",
+					/* UrlEncR */	"x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A17892929282A55F74797065A141A16101C0C0C0",
+					/* MsgPackT */	"81A17892929282A174A141A16101C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:x>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:_type>A</jp:_type>\n                  <jp:a>1</jp:a>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:x>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,IA[][][]> o) {
+						assertType(A.class, o.get("x")[0][0][0]);
+					}
+				}
+			},
+			{	/* 11 */
+				new ComboInput<Map<String,List<IA[][][]>>>(
+					"Map<String,List<IA[][][]>>",
+					getType(Map.class,String.class,List.class,IA[][][].class),
+					new AMap<String,List<IA[][][]>>().append("x", new AList<IA[][][]>().append(new IA[][][]{{{new A().init(),null},null},null}).append(null)),
+					/* Json */		"{x:[[[[{_type:'A',a:1},null],null],null],null]}",
+					/* JsonT */		"{x:[[[[{t:'A',a:1},null],null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\t_type: 'A',\n\t\t\t\t\t\ta: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<A>\n\t\t\t\t\t\t<a>1</a>\n\t\t\t\t\t</A>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(x=@(@(@(@((_type=A,a=1),null),null),null),null))",
+					/* UonT */		"(x=@(@(@(@((t=A,a=1),null),null),null),null))",
+					/* UonR */		"(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\t_type=A,\n\t\t\t\t\t\ta=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"x=@(@(@(@((_type=A,a=1),null),null),null),null)",
+					/* UrlEncT */	"x=@(@(@(@((t=A,a=1),null),null),null),null)",
+					/* UrlEncR */	"x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A1789292929282A55F74797065A141A16101C0C0C0C0",
+					/* MsgPackT */	"81A1789292929282A174A141A16101C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:x>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li>\n                  <rdf:Seq>\n                    <rdf:li rdf:parseType='Resource'>\n                      <jp:_type>A</jp:_type>\n                      <jp:a>1</jp:a>\n                    </rdf:li>\n                    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n                  </rdf:Seq>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:x>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,List<IA[][][]>> o) {
+						assertType(A.class, o.get("x").get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 12 */
+				new ComboInput<B>(
+					"B",
+					B.class,
+					new B().init(),
+					/* Json */		"{z:'B',b:1}",
+					/* JsonT */		"{z:'B',b:1}",
+					/* JsonR */		"{\n\tz: 'B',\n\tb: 1\n}",
+					/* Xml */		"<B><b>1</b></B>",
+					/* XmlT */		"<B><b>1</b></B>",
+					/* XmlR */		"<B>\n\t<b>1</b>\n</B>\n",
+					/* XmlNs */		"<B><b>1</b></B>",
+					/* Html */		"<table z='B'><tr><td>b</td><td>1</td></tr></table>",
+					/* HtmlT */		"<table z='B'><tr><td>b</td><td>1</td></tr></table>",
+					/* HtmlR */		"<table z='B'>\n\t<tr>\n\t\t<td>b</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(z=B,b=1)",
+					/* UonT */		"(z=B,b=1)",
+					/* UonR */		"(\n\tz=B,\n\tb=1\n)",
+					/* UrlEnc */	"z=B&b=1",
+					/* UrlEncT */	"z=B&b=1",
+					/* UrlEncR */	"z=B\n&b=1",
+					/* MsgPack */	"82A17AA142A16201",
+					/* MsgPackT */	"82A17AA142A16201",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:z>B</jp:z>\n    <jp:b>1</jp:b>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(B o) {
+						assertType(B.class, o);
+					}
+				}
+			},
+			{	/* 13 */
+				new ComboInput<B[]>(
+					"B[]",
+					B[].class,
+					new B[]{new B().init()},
+					/* Json */		"[{z:'B',b:1}]",
+					/* JsonT */		"[{z:'B',b:1}]",
+					/* JsonR */		"[\n\t{\n\t\tz: 'B',\n\t\tb: 1\n\t}\n]",
+					/* Xml */		"<array><B><b>1</b></B></array>",
+					/* XmlT */		"<array><B><b>1</b></B></array>",
+					/* XmlR */		"<array>\n\t<B>\n\t\t<b>1</b>\n\t</B>\n</array>\n",
+					/* XmlNs */		"<array><B><b>1</b></B></array>",
+					/* Html */		"<table _type='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
+					/* HtmlT */		"<table t='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
+					/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>b</th>\n\t</tr>\n\t<tr z='B'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"@((z=B,b=1))",
+					/* UonT */		"@((z=B,b=1))",
+					/* UonR */		"@(\n\t(\n\t\tz=B,\n\t\tb=1\n\t)\n)",
+					/* UrlEnc */	"0=(z=B,b=1)",
+					/* UrlEncT */	"0=(z=B,b=1)",
+					/* UrlEncR */	"0=(\n\tz=B,\n\tb=1\n)",
+					/* MsgPack */	"9182A17AA142A16201",
+					/* MsgPackT */	"9182A17AA142A16201",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:z>B</jp:z>\n      <jp:b>1</jp:b>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(B[] o) {
+						assertType(B.class, o[0]);
+					}
+				}
+			},
+			{	/* 14 */
+				new ComboInput<B[][][]>(
+					"B[][][]",
+					B[][][].class,
+					new B[][][]{{{new B().init(),null},null},null},
+					/* Json */		"[[[{z:'B',b:1},null],null],null]",
+					/* JsonT */		"[[[{z:'B',b:1},null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\tz: 'B',\n\t\t\t\tb: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<B>\n\t\t\t\t<b>1</b>\n\t\t\t</B>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@((z=B,b=1),null),null),null)",
+					/* UonT */		"@(@(@((z=B,b=1),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@((z=B,b=1),null),null)&1=null",
+					/* UrlEncT */	"0=@(@((z=B,b=1),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t(\n\t\t\tz=B,\n\t\t\tb=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"92929282A17AA142A16201C0C0C0",
+					/* MsgPackT */	"92929282A17AA142A16201C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li rdf:parseType='Resource'>\n              <jp:z>B</jp:z>\n              <jp:b>1</jp:b>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(B[][][] o) {
+						assertType(B.class, o[0][0][0]);
+					}
+				}
+			},
+			{	/* 15 */
+				new ComboInput<List<B[][][]>>(
+					"List<B[][][]>",
+					getType(List.class, B[][][].class),
+					new AList<B[][][]>().append(new B[][][]{{{new B().init(),null},null},null}).append(null),
+					/* Json */		"[[[[{z:'B',b:1},null],null],null],null]",
+					/* JsonT */		"[[[[{z:'B',b:1},null],null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@(@((z=B,b=1),null),null),null),null)",
+					/* UonT */		"@(@(@(@((z=B,b=1),null),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@(@((z=B,b=1),null),null),null)&1=null",
+					/* UrlEncT */	"0=@(@(@((z=B,b=1),null),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"9292929282A17AA142A16201C0C0C0C0",
+					/* MsgPackT */	"9292929282A17AA142A16201C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:z>B</jp:z>\n                  <jp:b>1</jp:b>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(List<B[][][]> o) {
+						assertType(B.class, o.get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 16 */
+				new ComboInput<Map<String,B[][][]>>(
+					"Map<String,B[][][]>",
+					getType(Map.class,String.class,B[][][].class),
+					new AMap<String,B[][][]>().append("x", new B[][][]{{{new B().init(),null},null},null}),
+					/* Json */		"{x:[[[{z:'B',b:1},null],null],null]}",
+					/* JsonT */		"{x:[[[{z:'B',b:1},null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(x=@(@(@((z=B,b=1),null),null),null))",
+					/* UonT */		"(x=@(@(@((z=B,b=1),null),null),null))",
+					/* UonR */		"(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"x=@(@(@((z=B,b=1),null),null),null)",
+					/* UrlEncT */	"x=@(@(@((z=B,b=1),null),null),null)",
+					/* UrlEncR */	"x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A17892929282A17AA142A16201C0C0C0",
+					/* MsgPackT */	"81A17892929282A17AA142A16201C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:x>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:z>B</jp:z>\n                  <jp:b>1</jp:b>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:x>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,B[][][]> o) {
+						assertType(B.class, o.get("x")[0][0][0]);
+					}
+				}
+			},
+			{	/* 17 */
+				new ComboInput<Map<String,List<B[][][]>>>(
+					"Map<String,List<B[][][]>>",
+					getType(Map.class,String.class,List.class,B[][][].class),
+					new AMap<String,List<B[][][]>>().append("x", new AList<B[][][]>().append(new B[][][]{{{new B().init(),null},null},null}).append(null)),
+					/* Json */		"{x:[[[[{z:'B',b:1},null],null],null],null]}",
+					/* JsonT */		"{x:[[[[{z:'B',b:1},null],null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tz: 'B',\n\t\t\t\t\t\tb: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<B>\n\t\t\t\t\t\t<b>1</b>\n\t\t\t\t\t</B>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(x=@(@(@(@((z=B,b=1),null),null),null),null))",
+					/* UonT */		"(x=@(@(@(@((z=B,b=1),null),null),null),null))",
+					/* UonR */		"(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\tz=B,\n\t\t\t\t\t\tb=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)",
+					/* UrlEnc */	"x=@(@(@(@((z=B,b=1),null),null),null),null)",
+					/* UrlEncT */	"x=@(@(@(@((z=B,b=1),null),null),null),null)",
+					/* UrlEncR */	"x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* MsgPack */	"81A1789292929282A17AA142A16201C0C0C0C0",
+					/* MsgPackT */	"81A1789292929282A17AA142A16201C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:x>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li>\n                  <rdf:Seq>\n                    <rdf:li rdf:parseType='Resource'>\n                      <jp:z>B</jp:z>\n                      <jp:b>1</jp:b>\n                    </rdf:li>\n                    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n                  </rdf:Seq>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </jp:x>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Map<String,List<B[][][]>> o) {
+						assertType(B.class, o.get("x").get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 18 */
+				new ComboInput<IB>(
+					"IB",
+					IB.class,
+					new B().init(),
+					/* Json */		"{z:'B',b:1}",
+					/* JsonT */		"{z:'B',b:1}",
+					/* JsonR */		"{\n\tz: 'B',\n\tb: 1\n}",
+					/* Xml */		"<B><b>1</b></B>",
+					/* XmlT */		"<B><b>1</b></B>",
+					/* XmlR */		"<B>\n\t<b>1</b>\n</B>\n",
+					/* XmlNs */		"<B><b>1</b></B>",
+					/* Html */		"<table z='B'><tr><td>b</td><td>1</td></tr></table>",
+					/* HtmlT */		"<table z='B'><tr><td>b</td><td>1</td></tr></table>",
+					/* HtmlR */		"<table z='B'>\n\t<tr>\n\t\t<td>b</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(z=B,b=1)",
+					/* UonT */		"(z=B,b=1)",
+					/* UonR */		"(\n\tz=B,\n\tb=1\n)",
+					/* UrlEnc */	"z=B&b=1",
+					/* UrlEncT */	"z=B&b=1",
+					/* UrlEncR */	"z=B\n&b=1",
+					/* MsgPack */	"82A17AA142A16201",
+					/* MsgPackT */	"82A17AA142A16201",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:z>B</jp:z>\n    <jp:b>1</jp:b>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(IB o) {
+						assertType(B.class, o);
+					}
+				}
+			},
+			{	/* 19 */
+				new ComboInput<IB[]>(
+					"IB[]",
+					IB[].class,
+					new IB[]{new B().init()},
+					/* Json */		"[{z:'B',b:1}]",
+					/* JsonT */		"[{z:'B',b:1}]",
+					/* JsonR */		"[\n\t{\n\t\tz: 'B',\n\t\tb: 1\n\t}\n]",
+					/* Xml */		"<array><B><b>1</b></B></array>",
+					/* XmlT */		"<array><B><b>1</b></B></array>",
+					/* XmlR */		"<array>\n\t<B>\n\t\t<b>1</b>\n\t</B>\n</array>\n",
+					/* XmlNs */		"<array><B><b>1</b></B></array>",
+					/* Html */		"<table _type='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
+					/* HtmlT */		"<table t='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>",
+					/* HtmlR */		"<table _type='array'>\n\t<tr>\n\t\t<th>b</th>\n\t</tr>\n\t<tr z='B'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"@((z=B,b=1))",
+					/* UonT */		"@((z=B,b=1))",
+					/* UonR */		"@(\n\t(\n\t\tz=B,\n\t\tb=1\n\t)\n)",
+					/* UrlEnc */	"0=(z=B,b=1)",
+					/* UrlEncT */	"0=(z=B,b=1)",
+					/* UrlEncR */	"0=(\n\tz=B,\n\tb=1\n)",
+					/* MsgPack */	"9182A17AA142A16201",
+					/* MsgPackT */	"9182A17AA142A16201",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:z>B</jp:z>\n      <jp:b>1</jp:b>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(IB[] o) {
+						assertType(B.class, o[0]);
+					}
+				}
+			},
+			{	/* 20 */
+				new ComboInput<IB[][][]>(
+					"IB[][][]",
+					IB[][][].class,
+					new IB[][][]{{{new B().init(),null},null},null},
+					/* Json */		"[[[{z:'B',b:1},null],null],null]",
+					/* JsonT */		"[[[{z:'B',b:1},null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\tz: 'B',\n\t\t\t\tb: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<B>\n\t\t\t\t<b>1</b>\n\t\t\t</B>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@((z=B,b=1),null),null),null)",
+					/* UonT */		"@(@(@((z=B,b=1),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@((z=B,b=1),null),null)&1=null",
+					/* UrlEncT */	"0=@(@((z=B,b=1),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t(\n\t\t\tz=B,\n\t\t\tb=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"92929282A17AA142A16201C0C0C0",
+					/* MsgPackT */	"92929282A17AA142A16201C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li rdf:parseType='Resource'>\n              <jp:z>B</jp:z>\n              <jp:b>1</jp:b>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(IB[][][] o) {
+						assertType(B.class, o[0][0][0]);
+					}
+				}
+			},
+			{	/* 21 */
+				new ComboInput<List<IB[][][]>>(
+					"List<IB[][][]>",
+					getType(List.class,IB[][][].class),
+					new AList<IB[][][]>().append(new IB[][][]{{{new B().init(),null},null},null}).append(null),
+					/* Json */		"[[[[{z:'B',b:1},null],null],null],null]",
+					/* JsonT */		"[[[[{z:'B',b:1},null],null],null],null]",
+					/* JsonR */		"[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]",
+					/* Xml */		"<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlT */		"<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>",
+					/* XmlR */		"<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n",
+					/* XmlNs */		"<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>",
+					/* Html */		"<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlT */		"<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n",
+					/* Uon */		"@(@(@(@((z=B,b=1),null),null),null),null)",
+					/* UonT */		"@(@(@(@((z=B,b=1),null),null),null),null)",
+					/* UonR */		"@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)",
+					/* UrlEnc */	"0=@(@(@((z=B,b=1),null),null),null)&1=null",
+					/* UrlEncT */	"0=@(@(@((z=B,b=1),null),null),null)&1=null",
+					/* UrlEncR */	"0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null",
+					/* MsgPack */	"9292929282A17AA142A16201C0C0C0C0",
+					/* MsgPackT */	"9292929282A17AA142A16201C0C0C0C0",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>\n      <rdf:Seq>\n        <rdf:li>\n          <rdf:Seq>\n            <rdf:li>\n              <rdf:Seq>\n                <rdf:li rdf:parseType='Resource'>\n                  <jp:z>B</jp:z>\n                  <jp:b>1</jp:b>\n                </rdf:li>\n                <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n              </rdf:Seq>\n            </rdf:li>\n            <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n          </rdf:Seq>\n        </rdf:li>\n        <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n      </rdf:Seq>\n    </rdf:li>\n    <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(List<IB[][][]> o) {
+						assertType(B.class, o.get(0)[0][0][0]);
+					}
+				}
+			},
+			{	/* 22 */
+				new ComboInput<Map<String,IB[][][]>>(
+					"Map<String,IB[][][]>",
+					getType(Map.class,String.class,IB[][][].class),
+					new AMap<String,IB[][][]>().append("x", new IB[][][]{{{new B().init(),null},null},null}),
+					/* Json */		"{x:[[[{z:'B',b:1},null],null],null]}",
+					/* JsonT */		"{x:[[[{z:'B',b:1},null],null],null]}",
+					/* JsonR */		"{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}",
+					/* Xml */		"<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>",
+					/* XmlT */		"<object><x t='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>",
+					/* XmlR */		"<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n",
+					/* XmlNs */		"<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>",
+					/* Html */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></l

<TRUNCATED>


[07/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
index 2cf1fcd..5745237 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
@@ -12,8 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.html;
 
+import static org.apache.juneau.TestUtils.*;
+
 import static org.junit.Assert.*;
 
+import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
@@ -24,584 +27,996 @@ import org.junit.runner.*;
 import org.junit.runners.*;
 
 @RunWith(Parameterized.class)
-@SuppressWarnings({"javadoc","serial"})
+@SuppressWarnings({"javadoc","serial","rawtypes","unchecked"})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class BasicHtmlTest {
 
 	private static final HtmlSerializer
 		s1 = HtmlSerializer.DEFAULT_SQ,
-		s2 = HtmlSerializer.DEFAULT_SQ_READABLE;
+		s2 = HtmlSerializer.DEFAULT_SQ_READABLE,
+		s3 = HtmlSerializer.DEFAULT_SQ.builder().abridged(true).build();
 	private static final HtmlParser parser = HtmlParser.DEFAULT;
 
 	@Parameterized.Parameters
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
 
-			{
-				"SimpleTypes-1",
-				"foo",
-				"<string>foo</string>",
-				"<string>foo</string>",
+			{	/* 0 */
+				new Input<String>(
+					"SimpleTypes-1",
+					String.class,
+					"foo",
+					"<string>foo</string>",
+					"<string>foo</string>",
+					"<string>foo</string>"
+				)
+				{
+					public void verify(String o) {
+						assertType(String.class, o);
+					}
+				}
 			},
-			{
-				"SimpleTypes-2",
-				true,
-				"<boolean>true</boolean>",
-				"<boolean>true</boolean>",
+			{	/* 1 */
+				new Input<Boolean>(
+					"SimpleTypes-2",
+					boolean.class,
+					true,
+					"<boolean>true</boolean>",
+					"<boolean>true</boolean>",
+					"<boolean>true</boolean>"
+				)
+				{
+					public void verify(Boolean o) {
+						assertType(Boolean.class, o);
+					}
+				}
 			},
-			{
-				"SimpleTypes-3",
-				123,
-				"<number>123</number>",
-				"<number>123</number>",
+			{	/* 2 */
+				new Input<Integer>(
+					"SimpleTypes-3",
+					int.class,
+					123,
+					"<number>123</number>",
+					"<number>123</number>",
+					"<number>123</number>"
+				)
+				{
+					public void verify(Integer o) {
+						assertType(Integer.class, o);
+					}
+				}
 			},
-			{
-				"SimpleTypes-4",
-				1.23f,
-				"<number>1.23</number>",
-				"<number>1.23</number>",
+			{	/* 3 */
+				new Input<Float>(
+					"SimpleTypes-4",
+					float.class,
+					1.23f,
+					"<number>1.23</number>",
+					"<number>1.23</number>",
+					"<number>1.23</number>"
+				)
+				{
+					public void verify(Float o) {
+						assertType(Float.class, o);
+					}
+				}
 			},
-			{
-				"SimpleTypes-5",
-				null,
-				"<null/>",
-				"<null/>",
+			{	/* 4 */
+				new Input<String>(
+					"SimpleTypes-5",
+					String.class,
+					null,
+					"<null/>",
+					"<null/>",
+					"<null/>"
+				)
 			},
-			{
-				"Arrays-1",
-				new String[]{"foo"},
-				"<ul><li>foo</li></ul>",
-				"<ul>\n\t<li>foo</li>\n</ul>\n",
+			{	/* 5 */
+				new Input<String[]>(
+					"Arrays-1",
+					String[].class,
+					new String[]{"foo"},
+					"<ul><li>foo</li></ul>",
+					"<ul>\n\t<li>foo</li>\n</ul>\n",
+					"<ul><li>foo</li></ul>"
+				)
+				{
+					public void verify(String[] o) {
+						assertType(String.class, o[0]);
+					}
+				}
 			},
-			{
-				"Arrays-2",
-				new String[]{null},
-				"<ul><li><null/></li></ul>",
-				"<ul>\n\t<li><null/></li>\n</ul>\n",
+			{	/* 6 */
+				new Input<String[]>(
+					"Arrays-2",
+					String[].class,
+					new String[]{null},
+					"<ul><li><null/></li></ul>",
+					"<ul>\n\t<li><null/></li>\n</ul>\n",
+					"<ul><li><null/></li></ul>"
+				)
 			},
-			{
-				"Arrays-3",
-				new Object[]{"foo",123,true},
-				"<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>",
-				"<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><boolean>true</boolean></li>\n</ul>\n",
+			{	/* 7 */
+				new Input<Object[]>(
+					"Arrays-3",
+					Object[].class,
+					new Object[]{"foo",123,true},
+					"<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>",
+					"<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><boolean>true</boolean></li>\n</ul>\n",
+					"<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>"
+				)
+				{
+					public void verify(Object[] o) {
+						assertType(String.class, o[0]);
+						assertType(Integer.class, o[1]);
+						assertType(Boolean.class, o[2]);
+					}
+				}
 			},
-			{
-				"Arrays-4",
-				new int[]{123},
-				"<ul><li>123</li></ul>",
-				"<ul>\n\t<li>123</li>\n</ul>\n",
+			{	/* 8 */
+				new Input<int[]>(
+					"Arrays-4",
+					int[].class,
+					new int[]{123},
+					"<ul><li><number>123</number></li></ul>",
+					"<ul>\n\t<li><number>123</number></li>\n</ul>\n",
+					"<ul><li>123</li></ul>"
+				)
+				{
+					public void verify(int[] o) {
+						assertType(int[].class, o);
+					}
+				}
 			},
-			{
-				"Arrays-5",
-				new boolean[]{true},
-				"<ul><li>true</li></ul>",
-				"<ul>\n\t<li>true</li>\n</ul>\n",
+			{	/* 9 */
+				new Input<boolean[]>(
+					"Arrays-5",
+					boolean[].class,
+					new boolean[]{true},
+					"<ul><li><boolean>true</boolean></li></ul>",
+					"<ul>\n\t<li><boolean>true</boolean></li>\n</ul>\n",
+					"<ul><li>true</li></ul>"
+				)
+				{
+					public void verify(boolean[] o) {
+						assertType(boolean[].class, o);
+					}
+				}
 			},
-			{
-				"Arrays-6",
-				new String[][]{{"foo"}},
-				"<ul><li><ul><li>foo</li></ul></li></ul>",
-				"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>foo</li>\n\t\t</ul>\n\t</li>\n</ul>\n",
+			{	/* 10 */
+				new Input<String[][]>(
+					"Arrays-6",
+					String[][].class,
+					new String[][]{{"foo"}},
+					"<ul><li><ul><li>foo</li></ul></li></ul>",
+					"<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>foo</li>\n\t\t</ul>\n\t</li>\n</ul>\n",
+					"<ul><li><ul><li>foo</li></ul></li></ul>"
+				)
+				{
+					public void verify(String[][] o) {
+						assertType(String[][].class, o);
+					}
+				}
 			},
-			{
-				"MapWithStrings",
-				new MapWithStrings().append("k1", "v1").append("k2", null),
-				"<table>"
-					+"<tr>"
-						+"<td>k1</td>"
-						+"<td>v1</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k2</td>"
-						+"<td><null/></td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k1</td>\n"
-						+"\t\t<td>v1</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k2</td>\n"
-						+"\t\t<td><null/></td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
+			{	/* 11 */
+				new Input<Map<String,String>>(
+					"MapWithStrings",
+					MapWithStrings.class,
+					new MapWithStrings().append("k1", "v1").append("k2", null),
+					"<table>"
+						+"<tr>"
+							+"<td>k1</td>"
+							+"<td>v1</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k2</td>"
+							+"<td><null/></td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k1</td>\n"
+							+"\t\t<td>v1</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k2</td>\n"
+							+"\t\t<td><null/></td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>k1</td>"
+							+"<td>v1</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k2</td>"
+							+"<td><null/></td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(Map<String,String> o) {
+						assertType(String.class, o.get("k1"));
+					}
+				}
 			},
-			{
-				"MapsWithNumbers",
-				new MapWithNumbers().append("k1", 123).append("k2", 1.23).append("k3", null),
-				"<table>"
-					+"<tr>"
-						+"<td>k1</td>"
-						+"<td>123</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k2</td>"
-						+"<td>1.23</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k3</td>"
-						+"<td><null/></td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k1</td>\n"
-						+"\t\t<td>123</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k2</td>\n"
-						+"\t\t<td>1.23</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k3</td>\n"
-						+"\t\t<td><null/></td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
+			{	/* 12 */
+				new Input<Map<String,Number>>(
+					"MapsWithNumbers",
+					MapWithNumbers.class,
+					new MapWithNumbers().append("k1", 123).append("k2", 1.23).append("k3", null),
+					"<table>"
+						+"<tr>"
+							+"<td>k1</td>"
+							+"<td><number>123</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k2</td>"
+							+"<td><number>1.23</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k3</td>"
+							+"<td><null/></td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k1</td>\n"
+							+"\t\t<td><number>123</number></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k2</td>\n"
+							+"\t\t<td><number>1.23</number></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k3</td>\n"
+							+"\t\t<td><null/></td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>k1</td>"
+							+"<td>123</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k2</td>"
+							+"<td>1.23</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k3</td>"
+							+"<td><null/></td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(Map<String,Number> o) {
+						assertType(Number.class, o.get("k1"));
+					}
+				}
 			},
-			{
-				"MapWithObjects",
-				new MapWithObjects().append("k1", "v1").append("k2", 123).append("k3", 1.23).append("k4", true).append("k5", null),
-				"<table>"
-					+"<tr>"
-						+"<td>k1</td>"
-						+"<td>v1</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k2</td>"
-						+"<td><number>123</number></td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k3</td>"
-						+"<td><number>1.23</number></td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k4</td>"
-						+"<td><boolean>true</boolean></td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>k5</td>"
-						+"<td><null/></td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k1</td>\n"
-						+"\t\t<td>v1</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k2</td>\n"
-						+"\t\t<td><number>123</number></td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k3</td>\n"
-						+"\t\t<td><number>1.23</number></td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k4</td>\n"
-						+"\t\t<td><boolean>true</boolean></td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>k5</td>\n"
-						+"\t\t<td><null/></td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
+			{	/* 13 */
+				new Input<Map<String,Object>>(
+					"MapWithObjects",
+					getType(Map.class,String.class,Object.class),
+					new MapWithObjects().append("k1", "v1").append("k2", 123).append("k3", 1.23).append("k4", true).append("k5", null),
+					"<table>"
+						+"<tr>"
+							+"<td>k1</td>"
+							+"<td>v1</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k2</td>"
+							+"<td><number>123</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k3</td>"
+							+"<td><number>1.23</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k4</td>"
+							+"<td><boolean>true</boolean></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k5</td>"
+							+"<td><null/></td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k1</td>\n"
+							+"\t\t<td>v1</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k2</td>\n"
+							+"\t\t<td><number>123</number></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k3</td>\n"
+							+"\t\t<td><number>1.23</number></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k4</td>\n"
+							+"\t\t<td><boolean>true</boolean></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>k5</td>\n"
+							+"\t\t<td><null/></td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>k1</td>"
+							+"<td>v1</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k2</td>"
+							+"<td><number>123</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k3</td>"
+							+"<td><number>1.23</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k4</td>"
+							+"<td><boolean>true</boolean></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>k5</td>"
+							+"<td><null/></td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(Map<String,Object> o) {
+						assertType(String.class, o.get("k1"));
+						assertType(Integer.class, o.get("k2"));
+						assertType(Float.class, o.get("k3"));
+						assertType(Boolean.class, o.get("k4"));
+					}
+				}
 			},
-			{
-				"ListWithStrings",
-				new ListWithStrings().append("foo").append(null),
-				"<ul><li>foo</li><li><null/></li></ul>",
-				"<ul>\n\t<li>foo</li>\n\t<li><null/></li>\n</ul>\n",
+			{	/* 14 */
+				new Input<List<String>>(
+					"ListWithStrings",
+					getType(List.class,String.class),
+					new ListWithStrings().append("foo").append(null),
+					"<ul><li>foo</li><li><null/></li></ul>",
+					"<ul>\n\t<li>foo</li>\n\t<li><null/></li>\n</ul>\n",
+					"<ul><li>foo</li><li><null/></li></ul>"
+				)
+				{
+					public void verify(List<String> o) {
+						assertType(String.class, o.get(0));
+					}
+				}
 			},
-			{
-				"ListWithNumbers",
-				new ListWithNumbers().append(123).append(1.23).append(null),
-				"<ul><li>123</li><li>1.23</li><li><null/></li></ul>",
-				"<ul>\n\t<li>123</li>\n\t<li>1.23</li>\n\t<li><null/></li>\n</ul>\n",
+			{	/* 15 */
+				new Input<List<Number>>(
+					"ListWithNumbers",
+					ListWithNumbers.class,
+					new ListWithNumbers().append(123).append(1.23).append(null),
+					"<ul><li><number>123</number></li><li><number>1.23</number></li><li><null/></li></ul>",
+					"<ul>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><null/></li>\n</ul>\n",
+					"<ul><li>123</li><li>1.23</li><li><null/></li></ul>"
+				)
+				{
+					public void verify(List<Number> o) {
+						assertType(Integer.class, o.get(0));
+						assertType(Float.class, o.get(1));
+					}
+				}
 			},
-			{
-				"ListWithObjects",
-				new ListWithObjects().append("foo").append(123).append(1.23).append(true).append(null),
-				"<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>",
-				"<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><boolean>true</boolean></li>\n\t<li><null/></li>\n</ul>\n",
+			{	/* 16 */
+				new Input<List<Object>>(
+					"ListWithObjects",
+					getType(List.class,Object.class),
+					new ListWithObjects().append("foo").append(123).append(1.23).append(true).append(null),
+					"<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>",
+					"<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><boolean>true</boolean></li>\n\t<li><null/></li>\n</ul>\n",
+					"<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>"
+				)
+				{
+					public void verify(List<Object> o) {
+						assertType(String.class, o.get(0));
+						assertType(Integer.class, o.get(1));
+						assertType(Float.class, o.get(2));
+						assertType(Boolean.class, o.get(3));
+					}
+				}
 			},
-			{
-				"BeanWithNormalProperties",
-				new BeanWithNormalProperties().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td>foo</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b</td>"
-						+"<td>123</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>c</td>"
-						+"<td>bar</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>d</td>"
-						+"<td><number>456</number></td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>e</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>h</td>"
-									+"<td>qux</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>f</td>"
-						+"<td>"
-							+"<ul>"
-								+"<li>baz</li>"
-							+"</ul>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>g</td>"
-						+"<td>"
-							+"<ul>"
-								+"<li>789</li>"
-							+"</ul>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td>foo</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b</td>\n"
-						+"\t\t<td>123</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>c</td>\n"
-						+"\t\t<td>bar</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>d</td>\n"
-						+"\t\t<td><number>456</number></td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>e</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>h</td>\n"
-									+"\t\t\t\t\t<td>qux</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>f</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<ul>\n"
-								+"\t\t\t\t<li>baz</li>\n"
-							+"\t\t\t</ul>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>g</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<ul>\n"
-								+"\t\t\t\t<li>789</li>\n"
-							+"\t\t\t</ul>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
+			{	/* 17 */
+				new Input<BeanWithNormalProperties>(
+					"BeanWithNormalProperties",
+					BeanWithNormalProperties.class,
+					new BeanWithNormalProperties().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>foo</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>123</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>bar</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>d</td>"
+							+"<td><number>456</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>e</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>h</td>"
+										+"<td>qux</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>f</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>baz</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>g</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>789</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td>foo</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b</td>\n"
+							+"\t\t<td>123</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>c</td>\n"
+							+"\t\t<td>bar</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>d</td>\n"
+							+"\t\t<td><number>456</number></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>e</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>h</td>\n"
+										+"\t\t\t\t\t<td>qux</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>f</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<ul>\n"
+									+"\t\t\t\t<li>baz</li>\n"
+								+"\t\t\t</ul>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>g</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<ul>\n"
+									+"\t\t\t\t<li>789</li>\n"
+								+"\t\t\t</ul>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>foo</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>123</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>bar</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>d</td>"
+							+"<td><number>456</number></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>e</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>h</td>"
+										+"<td>qux</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>f</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>baz</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>g</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>789</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithNormalProperties o) {
+						assertType(String.class, o.c);
+						assertType(Integer.class, o.d);
+						assertType(Bean1a.class, o.e);
+					}
+				}
 			},
-			{
-				"BeanWithMapProperties",
-				new BeanWithMapProperties().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k1</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k2</td>"
-									+"<td>123</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>c</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k3</td>"
-									+"<td>bar</td>"
-								+"</tr>"
-								+"<tr>"
-									+"<td>k4</td>"
-									+"<td><number>456</number></td>"
-								+"</tr>"
-								+"<tr>"
-									+"<td>k5</td>"
-									+"<td><boolean>true</boolean></td>"
-								+"</tr>"
-								+"<tr>"
-									+"<td>k6</td>"
-									+"<td><null/></td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k1</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k2</td>\n"
-									+"\t\t\t\t\t<td>123</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>c</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k3</td>\n"
-									+"\t\t\t\t\t<td>bar</td>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k4</td>\n"
-									+"\t\t\t\t\t<td><number>456</number></td>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k5</td>\n"
-									+"\t\t\t\t\t<td><boolean>true</boolean></td>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k6</td>\n"
-									+"\t\t\t\t\t<td><null/></td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n"
-		   },
-			{
-				"BeanWithTypeName",
-				new BeanWithTypeName().init(),
-				"<table _type='X'>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td>123</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b</td>"
-						+"<td>foo</td>"
-					+"</tr>"
-				+"</table>",
-				"<table _type='X'>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td>123</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b</td>\n"
-						+"\t\t<td>foo</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
+			{	/* 18 */
+				new Input<BeanWithMapProperties>(
+					"BeanWithMapProperties",
+					BeanWithMapProperties.class,
+					new BeanWithMapProperties().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k1</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k2</td>"
+										+"<td>123</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k3</td>"
+										+"<td>bar</td>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>k4</td>"
+										+"<td><number>456</number></td>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>k5</td>"
+										+"<td><boolean>true</boolean></td>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>k6</td>"
+										+"<td><null/></td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k1</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k2</td>\n"
+										+"\t\t\t\t\t<td>123</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>c</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k3</td>\n"
+										+"\t\t\t\t\t<td>bar</td>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k4</td>\n"
+										+"\t\t\t\t\t<td><number>456</number></td>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k5</td>\n"
+										+"\t\t\t\t\t<td><boolean>true</boolean></td>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k6</td>\n"
+										+"\t\t\t\t\t<td><null/></td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k1</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k2</td>"
+										+"<td>123</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k3</td>"
+										+"<td>bar</td>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>k4</td>"
+										+"<td><number>456</number></td>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>k5</td>"
+										+"<td><boolean>true</boolean></td>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>k6</td>"
+										+"<td><null/></td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithMapProperties o) {
+						assertType(String.class, o.a.get("k1"));
+						assertType(Integer.class, o.b.get("k2"));
+						assertType(String.class, o.c.get("k3"));
+						assertType(Integer.class, o.c.get("k4"));
+						assertType(Boolean.class, o.c.get("k5"));
+					}
+				}
 			},
-			{
-				"BeanWithPropertiesWithTypeNames",
-				new BeanWithPropertiesWithTypeNames().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>b1</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>b</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b2</td>"
-						+"<td>"
-							+"<table _type='B'>"
-								+"<tr>"
-									+"<td>b</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>b</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='B'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>b</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n"
+			{	/* 19 */
+				new Input<BeanWithTypeName>(
+					"BeanWithTypeName",
+					BeanWithTypeName.class,
+					new BeanWithTypeName().init(),
+					"<table _type='X'>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>123</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>foo</td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table _type='X'>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td>123</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b</td>\n"
+							+"\t\t<td>foo</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>123</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>foo</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithTypeName o) {
+						assertType(BeanWithTypeName.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithPropertiesWithArrayTypeNames",
-				new BeanWithPropertiesWithArrayTypeNames().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>b1</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>b</th>"
-								+"</tr>"
-								+"<tr>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b2</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>b</th>"
-								+"</tr>"
-								+"<tr _type='B'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b3</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>b</th>"
-								+"</tr>"
-								+"<tr _type='B'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>b</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>b</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='B'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b3</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>b</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='B'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
+			{	/* 20 */
+				new Input<BeanWithPropertiesWithTypeNames>(
+					"BeanWithPropertiesWithTypeNames",
+					BeanWithPropertiesWithTypeNames.class,
+					new BeanWithPropertiesWithTypeNames().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>b</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<table _type='B'>"
+									+"<tr>"
+										+"<td>b</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>b</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='B'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>b</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>b</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<table _type='B'>"
+									+"<tr>"
+										+"<td>b</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithPropertiesWithTypeNames o) {
+						assertType(B.class, o.b2);
+					}
+				}
+			},
+			{	/* 21 */
+				new Input<BeanWithPropertiesWithArrayTypeNames>(
+					"BeanWithPropertiesWithArrayTypeNames",
+					BeanWithPropertiesWithArrayTypeNames.class,
+					new BeanWithPropertiesWithArrayTypeNames().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>b</th>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>b</th>"
+									+"</tr>"
+									+"<tr _type='B'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b3</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>b</th>"
+									+"</tr>"
+									+"<tr _type='B'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+					
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>b</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>b</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='B'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b3</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>b</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='B'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>b</th>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>b</th>"
+									+"</tr>"
+									+"<tr _type='B'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b3</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>b</th>"
+									+"</tr>"
+									+"<tr _type='B'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithPropertiesWithArrayTypeNames o) {
+						assertType(B.class, o.b2[0]);
+						assertType(B.class, o.b3[0]);
+					}
+				}
 			},
-			{
-				"BeanWithPropertiesWith2dArrayTypeNames",
-				new BeanWithPropertiesWith2dArrayTypeNames().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>b1</td>"
-						+"<td>"
-							+"<ul>"
-								+"<li>"
-									+"<table _type='array'>"
-										+"<tr>"
-											+"<th>b</th>"
-										+"</tr>"
-										+"<tr>"
-											+"<td>foo</td>"
-										+"</tr>"
-									+"</table>"
-								+"</li>"
-							+"</ul>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b2</td>"
-						+"<td>"
+			{	/* 22 */
+				new Input<BeanWithPropertiesWith2dArrayTypeNames>(
+					"BeanWithPropertiesWith2dArrayTypeNames",
+					BeanWithPropertiesWith2dArrayTypeNames.class,
+					new BeanWithPropertiesWith2dArrayTypeNames().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
 								+"<ul>"
 									+"<li>"
 										+"<table _type='array'>"
@@ -615,855 +1030,1585 @@ public class BasicHtmlTest {
 									+"</li>"
 								+"</ul>"
 							+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b3</td>"
-						+"<td>"
-							+"<ul>"
-								+"<li>"
-									+"<table _type='array'>"
-										+"<tr>"
-											+"<th>b</th>"
-										+"</tr>"
-										+"<tr _type='B'>"
-											+"<td>foo</td>"
-										+"</tr>"
-									+"</table>"
-								+"</li>"
-							+"</ul>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<ul>\n"
-								+"\t\t\t\t<li>\n"
-									+"\t\t\t\t\t<table _type='array'>\n"
-										+"\t\t\t\t\t\t<tr>\n"
-											+"\t\t\t\t\t\t\t<th>b</th>\n"
-										+"\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t<tr>\n"
-											+"\t\t\t\t\t\t\t<td>foo</td>\n"
-										+"\t\t\t\t\t\t</tr>\n"
-									+"\t\t\t\t\t</table>\n"
-								+"\t\t\t\t</li>\n"
-							+"\t\t\t</ul>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<ul>\n"
-								+"\t\t\t\t<li>\n"
-									+"\t\t\t\t\t<table _type='array'>\n"
-										+"\t\t\t\t\t\t<tr>\n"
-											+"\t\t\t\t\t\t\t<th>b</th>\n"
-										+"\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t<tr>\n"
-											+"\t\t\t\t\t\t\t<td>foo</td>\n"
-										+"\t\t\t\t\t\t</tr>\n"
-									+"\t\t\t\t\t</table>\n"
-								+"\t\t\t\t</li>\n"
-							+"\t\t\t</ul>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b3</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<ul>\n"
-								+"\t\t\t\t<li>\n"
-									+"\t\t\t\t\t<table _type='array'>\n"
-										+"\t\t\t\t\t\t<tr>\n"
-											+"\t\t\t\t\t\t\t<th>b</th>\n"
-										+"\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t<tr _type='B'>\n"
-											+"\t\t\t\t\t\t\t<td>foo</td>\n"
-										+"\t\t\t\t\t\t</tr>\n"
-									+"\t\t\t\t\t</table>\n"
-								+"\t\t\t\t</li>\n"
-							+"\t\t\t</ul>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n"
-			},
-			{
-				"BeanWithPropertiesWithMapTypeNames",
-				new BeanWithPropertiesWithMapTypeNames().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>b1</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k1</td>"
-									+"<td>"
-										+"<table>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>"
+										+"<table _type='array'>"
 											+"<tr>"
-												+"<td>b</td>"
+												+"<th>b</th>"
+											+"</tr>"
+											+"<tr _type='B'>"
 												+"<td>foo</td>"
 											+"</tr>"
 										+"</table>"
-									+"</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b2</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k2</td>"
-									+"<td>"
-										+"<table _type='B'>"
+									+"</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b3</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>"
+										+"<table _type='array'>"
 											+"<tr>"
-												+"<td>b</td>"
+												+"<th>b</th>"
+											+"</tr>"
+											+"<tr _type='B'>"
 												+"<td>foo</td>"
 											+"</tr>"
 										+"</table>"
-									+"</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k1</td>\n"
-									+"\t\t\t\t\t<td>\n"
-										+"\t\t\t\t\t\t<table>\n"
-											+"\t\t\t\t\t\t\t<tr>\n"
-												+"\t\t\t\t\t\t\t\t<td>b</td>\n"
-												+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
-											+"\t\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t</table>\n"
-									+"\t\t\t\t\t</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k2</td>\n"
-									+"\t\t\t\t\t<td>\n"
-										+"\t\t\t\t\t\t<table _type='B'>\n"
-											+"\t\t\t\t\t\t\t<tr>\n"
-												+"\t\t\t\t\t\t\t\t<td>b</td>\n"
-												+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
-											+"\t\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t</table>\n"
-									+"\t\t\t\t\t</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
-			},
-			{
-				"LinkBean-1",
-				new LinkBean().init(),
-				"<a href='http://apache.org'>foo</a>",
-				"<a href='http://apache.org'>foo</a>"
-			},
-			{
-				"LinkBean-2",
-				new LinkBean[]{new LinkBean().init(),new LinkBean().init()},
-				"<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>",
-				"<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n"
-			},
-			{
-				"ListWithLinkBeans",
-				new ListWithLinkBeans().append(new LinkBean().init()).append(new LinkBean().init()),
-				"<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>",
-				"<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n"
-			},
-			{
-				"BeanWithLinkBeanProperties",
-				new BeanWithLinkBeanProperties().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td><a href='http://apache.org'>foo</a></td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b</td>"
-						+"<td>"
-							+"<ul>"
-								+"<li><a href='http://apache.org'>foo</a></li>"
-							+"</ul>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>c</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>c1</td>"
-									+"<td><a href='http://apache.org'>foo</a></td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td><a href='http://apache.org'>foo</a></td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<ul>\n"
-								+"\t\t\t\t<li><a href='http://apache.org'>foo</a></li>\n"
-							+"\t\t\t</ul>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>c</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>c1</td>\n"
-									+"\t\t\t\t\t<td><a href='http://apache.org'>foo</a></td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n"
-			},
-			{
-				"BeanWithSpecialCharacters",
-				new BeanWithSpecialCharacters().init(),
-				"<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td></tr></table>",
-				"<table>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td>\n\t</tr>\n</table>\n"
-			},
-			{
-				"BeanWithSpecialCharacters2",
-				new BeanWithSpecialCharacters().init(),
-				"<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td></tr></table>",
-				"<table>\n"
-				+"	<tr>\n"
-				+"		<td>a</td>\n"
-				+"		<td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td>\n"
-				+"	</tr>\n"
-				+"</table>\n"
-			},
-			{
-				"BeanWithNullProperties",
-				new BeanWithNullProperties(),
-				"<table></table>",
-				"<table>\n</table>\n"
-			},
-			{
-				"BeanWithAbstractFields",
-				new BeanWithAbstractFields().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>a</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>ia</td>"
-						+"<td>"
-							+"<table _type='A'>"
-								+"<tr>"
-									+"<td>a</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>aa</td>"
-						+"<td>"
-							+"<table _type='A'>"
-								+"<tr>"
-									+"<td>a</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>o</td>"
-						+"<td>"
-							+"<table _type='A'>"
-								+"<tr>"
-									+"<td>a</td>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>a</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>ia</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='A'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>a</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>aa</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='A'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>a</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>o</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='A'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>a</td>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n"
-			},
-			{
-				"BeanWithAbstractArrayFields",
-				new BeanWithAbstractArrayFields().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>ia1</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr _type='A'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>ia2</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr _type='A'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-							+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>aa1</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr _type='A'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>aa2</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr _type='A'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>o1</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr _type='A'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>o2</td>"
-						+"<td>"
-							+"<table _type='array'>"
-								+"<tr>"
-									+"<th>a</th>"
-								+"</tr>"
-								+"<tr _type='A'>"
-									+"<td>foo</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>ia1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='A'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>ia2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='A'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>aa1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='A'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>aa2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='A'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>o1</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='A'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>o2</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table _type='array'>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<th>a</th>\n"
-								+"\t\t\t\t</tr>\n"
-								+"\t\t\t\t<tr _type='A'>\n"
-									+"\t\t\t\t\t<td>foo</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n",
-			},
-			{
-				"BeanWithAbstractMapFields",
-				new BeanWithAbstractMapFields().init(),
-				"<table>"
-					+"<tr>"
-						+"<td>a</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k1</td>"
-									+"<td>"
-										+"<table>"
+									+"</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<ul>\n"
+									+"\t\t\t\t<li>\n"
+										+"\t\t\t\t\t<table _type='array'>\n"
+											+"\t\t\t\t\t\t<tr>\n"
+												+"\t\t\t\t\t\t\t<th>b</th>\n"
+											+"\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t<tr>\n"
+												+"\t\t\t\t\t\t\t<td>foo</td>\n"
+											+"\t\t\t\t\t\t</tr>\n"
+										+"\t\t\t\t\t</table>\n"
+									+"\t\t\t\t</li>\n"
+								+"\t\t\t</ul>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<ul>\n"
+									+"\t\t\t\t<li>\n"
+										+"\t\t\t\t\t<table _type='array'>\n"
+											+"\t\t\t\t\t\t<tr>\n"
+												+"\t\t\t\t\t\t\t<th>b</th>\n"
+											+"\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t<tr _type='B'>\n"
+												+"\t\t\t\t\t\t\t<td>foo</td>\n"
+											+"\t\t\t\t\t\t</tr>\n"
+										+"\t\t\t\t\t</table>\n"
+									+"\t\t\t\t</li>\n"
+								+"\t\t\t</ul>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b3</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<ul>\n"
+									+"\t\t\t\t<li>\n"
+										+"\t\t\t\t\t<table _type='array'>\n"
+											+"\t\t\t\t\t\t<tr>\n"
+												+"\t\t\t\t\t\t\t<th>b</th>\n"
+											+"\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t<tr _type='B'>\n"
+												+"\t\t\t\t\t\t\t<td>foo</td>\n"
+											+"\t\t\t\t\t\t</tr>\n"
+										+"\t\t\t\t\t</table>\n"
+									+"\t\t\t\t</li>\n"
+								+"\t\t\t</ul>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>"
+										+"<table _type='array'>"
+											+"<tr>"
+												+"<th>b</th>"
+											+"</tr>"
 											+"<tr>"
-												+"<td>a</td>"
 												+"<td>foo</td>"
 											+"</tr>"
 										+"</table>"
-									+"</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>b</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k2</td>"
-									+"<td>"
-										+"<table _type='A'>"
+									+"</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>"
+										+"<table _type='array'>"
 											+"<tr>"
-												+"<td>a</td>"
+												+"<th>b</th>"
+											+"</tr>"
+											+"<tr _type='B'>"
 												+"<td>foo</td>"
 											+"</tr>"
 										+"</table>"
-									+"</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-					+"<tr>"
-						+"<td>c</td>"
-						+"<td>"
-							+"<table>"
-								+"<tr>"
-									+"<td>k3</td>"
-									+"<td>"
-										+"<table _type='A'>"
+									+"</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b3</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li>"
+										+"<table _type='array'>"
 											+"<tr>"
-												+"<td>a</td>"
+												+"<th>b</th>"
+											+"</tr>"
+											+"<tr _type='B'>"
 												+"<td>foo</td>"
 											+"</tr>"
 										+"</table>"
-									+"</td>"
-								+"</tr>"
-							+"</table>"
-						+"</td>"
-					+"</tr>"
-				+"</table>",
-				"<table>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>a</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k1</td>\n"
-									+"\t\t\t\t\t<td>\n"
-										+"\t\t\t\t\t\t<table>\n"
-											+"\t\t\t\t\t\t\t<tr>\n"
-												+"\t\t\t\t\t\t\t\t<td>a</td>\n"
-												+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
-											+"\t\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t</table>\n"
-									+"\t\t\t\t\t</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>b</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k2</td>\n"
-									+"\t\t\t\t\t<td>\n"
-										+"\t\t\t\t\t\t<table _type='A'>\n"
-											+"\t\t\t\t\t\t\t<tr>\n"
-												+"\t\t\t\t\t\t\t\t<td>a</td>\n"
-												+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
-											+"\t\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t</table>\n"
-									+"\t\t\t\t\t</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-					+"\t<tr>\n"
-						+"\t\t<td>c</td>\n"
-						+"\t\t<td>\n"
-							+"\t\t\t<table>\n"
-								+"\t\t\t\t<tr>\n"
-									+"\t\t\t\t\t<td>k3</td>\n"
-									+"\t\t\t\t\t<td>\n"
-										+"\t\t\t\t\t\t<table _type='A'>\n"
-											+"\t\t\t\t\t\t\t<tr>\n"
-												+"\t\t\t\t\t\t\t\t<td>a</td>\n"
-												+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
-											+"\t\t\t\t\t\t\t</tr>\n"
-										+"\t\t\t\t\t\t</table>\n"
-									+"\t\t\t\t\t</td>\n"
-								+"\t\t\t\t</tr>\n"
-							+"\t\t\t</table>\n"
-						+"\t\t</td>\n"
-					+"\t</tr>\n"
-				+"</table>\n"
+									+"</li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithPropertiesWith2dArrayTypeNames o) {
+						assertType(B.class, o.b2[0][0]);
+						assertType(B.class, o.b3[0][0]);
+					}
+				}
+			},
+			{	/* 23 */
+				new Input<BeanWithPropertiesWithMapTypeNames>(
+					"BeanWithPropertiesWithMapTypeNames",
+					BeanWithPropertiesWithMapTypeNames.class,
+					new BeanWithPropertiesWithMapTypeNames().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k1</td>"
+										+"<td>"
+											+"<table>"
+												+"<tr>"
+													+"<td>b</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k2</td>"
+										+"<td>"
+											+"<table _type='B'>"
+												+"<tr>"
+													+"<td>b</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k1</td>\n"
+										+"\t\t\t\t\t<td>\n"
+											+"\t\t\t\t\t\t<table>\n"
+												+"\t\t\t\t\t\t\t<tr>\n"
+													+"\t\t\t\t\t\t\t\t<td>b</td>\n"
+													+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
+												+"\t\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t</table>\n"
+										+"\t\t\t\t\t</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k2</td>\n"
+										+"\t\t\t\t\t<td>\n"
+											+"\t\t\t\t\t\t<table _type='B'>\n"
+												+"\t\t\t\t\t\t\t<tr>\n"
+													+"\t\t\t\t\t\t\t\t<td>b</td>\n"
+													+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
+												+"\t\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t</table>\n"
+										+"\t\t\t\t\t</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>b1</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k1</td>"
+										+"<td>"
+											+"<table>"
+												+"<tr>"
+													+"<td>b</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b2</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k2</td>"
+										+"<td>"
+											+"<table _type='B'>"
+												+"<tr>"
+													+"<td>b</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithPropertiesWithMapTypeNames o) {
+						assertType(B.class, o.b1.get("k1"));
+						assertType(B.class, o.b2.get("k2"));
+					}
+				}
+			},
+			{	/* 24 */
+				new Input<LinkBean>(
+					"LinkBean-1",
+					LinkBean.class,
+					new LinkBean().init(),
+					"<a href='http://apache.org'>foo</a>",
+					"<a href='http://apache.org'>foo</a>",
+					"<a href='http://apache.org'>foo</a>"
+				)
+				{
+					public void verify(LinkBean o) {
+						assertType(LinkBean.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextFields-1",
-				new BeanWithWhitespaceTextFields().init(null),
-				"<object></object>",
-				"<object></object>\n",
+			{	/* 25 */
+				new Input<LinkBean[]>(
+					"LinkBean-2",
+					LinkBean[].class,
+					new LinkBean[]{new LinkBean().init(),new LinkBean().init()},
+					"<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>",
+					"<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n",
+					"<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>"
+				)
+				{
+					public void verify(LinkBean[] o) {
+						assertType(LinkBean.class, o[0]);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextFields-2",
-				new BeanWithWhitespaceTextFields().init(""),
-				"<object><sp/></object>",
-				"<object><sp/></object>\n",
+			{	/* 26 */
+				new Input<List<LinkBean>>(
+					"ListWithLinkBeans",
+					ListWithLinkBeans.class,
+					new ListWithLinkBeans().append(new LinkBean().init()).append(new LinkBean().init()),
+					"<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>",
+					"<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n",
+					"<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>"
+				)
+				{
+					public void verify(List<LinkBean> o) {
+						assertType(LinkBean.class, o.get(0));
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextFields-3",
-				new BeanWithWhitespaceTextFields().init(" "),
-				"<object><sp> </sp></object>",
-				"<object><sp> </sp></object>\n",
+			{	/* 27 */
+				new Input<BeanWithLinkBeanProperties>(
+					"BeanWithLinkBeanProperties",
+					BeanWithLinkBeanProperties.class,
+					new BeanWithLinkBeanProperties().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td><a href='http://apache.org'>foo</a></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li><a href='http://apache.org'>foo</a></li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>c1</td>"
+										+"<td><a href='http://apache.org'>foo</a></td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td><a href='http://apache.org'>foo</a></td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<ul>\n"
+									+"\t\t\t\t<li><a href='http://apache.org'>foo</a></li>\n"
+								+"\t\t\t</ul>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>c</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>c1</td>\n"
+										+"\t\t\t\t\t<td><a href='http://apache.org'>foo</a></td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+						
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td><a href='http://apache.org'>foo</a></td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>"
+								+"<ul>"
+									+"<li><a href='http://apache.org'>foo</a></li>"
+								+"</ul>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>c1</td>"
+										+"<td><a href='http://apache.org'>foo</a></td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithLinkBeanProperties o) {
+						assertType(LinkBean.class, o.a);
+						assertType(LinkBean.class, o.b.get(0));
+						assertType(LinkBean.class, o.c.get("c1"));
+					}
+				}
+			},
+			{	/* 28 */
+				new Input<BeanWithSpecialCharacters>(
+					"BeanWithSpecialCharacters",
+					BeanWithSpecialCharacters.class,
+					new BeanWithSpecialCharacters().init(),
+					"<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td></tr></table>",
+					"<table>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td>\n\t</tr>\n</table>\n",
+					"<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td></tr></table>"
+				)
+				{
+					public void verify(BeanWithSpecialCharacters o) {
+						assertType(BeanWithSpecialCharacters.class, o);
+					}
+				}
+			},
+			{	/* 29 */
+				new Input<BeanWithSpecialCharacters>(
+					"BeanWithSpecialCharacters-2",
+					BeanWithSpecialCharacters.class,
+					new BeanWithSpecialCharacters().init(),
+					"<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td></tr></table>",
+
+					"<table>\n"
+					+"	<tr>\n"
+					+"		<td>a</td>\n"
+					+"		<td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td>\n"
+					+"	</tr>\n"
+					+"</table>\n",
+				
+					"<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp>&#x2003;</sp>&#13; <sp> </sp></td></tr></table>"
+				)
+				{
+					public void verify(BeanWithSpecialCharacters o) {
+						assertType(BeanWithSpecialCharacters.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextFields-4",
-				new BeanWithWhitespaceTextFields().init("  "),
-				"<object><sp> </sp><sp> </sp></object>",
-				"<object><sp> </sp><sp> </sp></object>\n",
+			{	/* 30 */
+				new Input<BeanWithNullProperties>(
+					"BeanWithNullProperties",
+					BeanWithNullProperties.class,
+					new BeanWithNullProperties(),
+					"<table></table>",
+					"<table>\n</table>\n",
+					"<table></table>"
+				)
+				{
+					public void verify(BeanWithNullProperties o) {
+						assertType(BeanWithNullProperties.class, o);
+					}
+				}
+			},
+			{	/* 31 */
+				new Input<BeanWithAbstractFields>(
+					"BeanWithAbstractFields",
+					BeanWithAbstractFields.class,
+					new BeanWithAbstractFields().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>ia</td>"
+							+"<td>"
+								+"<table _type='A'>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>aa</td>"
+							+"<td>"
+								+"<table _type='A'>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>o</td>"
+							+"<td>"
+								+"<table _type='A'>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>a</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>ia</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='A'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>a</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>aa</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='A'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>a</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>o</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='A'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>a</td>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>ia</td>"
+							+"<td>"
+								+"<table _type='A'>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>aa</td>"
+							+"<td>"
+								+"<table _type='A'>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>o</td>"
+							+"<td>"
+								+"<table _type='A'>"
+									+"<tr>"
+										+"<td>a</td>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithAbstractFields o) {
+						assertType(A.class, o.a);
+						assertType(A.class, o.ia);
+						assertType(A.class, o.aa);
+						assertType(A.class, o.o);
+					}
+				}
+			},
+			{	/* 32 */
+				new Input<BeanWithAbstractArrayFields>(
+					"BeanWithAbstractArrayFields",
+					BeanWithAbstractArrayFields.class,
+					new BeanWithAbstractArrayFields().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>ia1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>ia2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>aa1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>aa2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>o1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>o2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>ia1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='A'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>ia2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='A'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>aa1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='A'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>aa2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='A'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>o1</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='A'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>o2</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table _type='array'>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<th>a</th>\n"
+									+"\t\t\t\t</tr>\n"
+									+"\t\t\t\t<tr _type='A'>\n"
+										+"\t\t\t\t\t<td>foo</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>ia1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>ia2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>aa1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>aa2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>o1</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>o2</td>"
+							+"<td>"
+								+"<table _type='array'>"
+									+"<tr>"
+										+"<th>a</th>"
+									+"</tr>"
+									+"<tr _type='A'>"
+										+"<td>foo</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithAbstractArrayFields o) {
+						assertType(A.class, o.a[0]);
+						assertType(A.class, o.ia1[0]);
+						assertType(A.class, o.ia2[0]);
+						assertType(A.class, o.aa1[0]);
+						assertType(A.class, o.aa2[0]);
+						assertType(A.class, o.o1[0]);
+						assertType(A.class, o.o2[0]);
+					}
+				}
+			},
+			{	/* 33 */
+				new Input<BeanWithAbstractMapFields>(
+					"BeanWithAbstractMapFields",
+					BeanWithAbstractMapFields.class,
+					new BeanWithAbstractMapFields().init(),
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k1</td>"
+										+"<td>"
+											+"<table>"
+												+"<tr>"
+													+"<td>a</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k2</td>"
+										+"<td>"
+											+"<table _type='A'>"
+												+"<tr>"
+													+"<td>a</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k3</td>"
+										+"<td>"
+											+"<table _type='A'>"
+												+"<tr>"
+													+"<td>a</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>",
+
+					"<table>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>a</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k1</td>\n"
+										+"\t\t\t\t\t<td>\n"
+											+"\t\t\t\t\t\t<table>\n"
+												+"\t\t\t\t\t\t\t<tr>\n"
+													+"\t\t\t\t\t\t\t\t<td>a</td>\n"
+													+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
+												+"\t\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t</table>\n"
+										+"\t\t\t\t\t</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>b</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k2</td>\n"
+										+"\t\t\t\t\t<td>\n"
+											+"\t\t\t\t\t\t<table _type='A'>\n"
+												+"\t\t\t\t\t\t\t<tr>\n"
+													+"\t\t\t\t\t\t\t\t<td>a</td>\n"
+													+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
+												+"\t\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t</table>\n"
+										+"\t\t\t\t\t</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+						+"\t<tr>\n"
+							+"\t\t<td>c</td>\n"
+							+"\t\t<td>\n"
+								+"\t\t\t<table>\n"
+									+"\t\t\t\t<tr>\n"
+										+"\t\t\t\t\t<td>k3</td>\n"
+										+"\t\t\t\t\t<td>\n"
+											+"\t\t\t\t\t\t<table _type='A'>\n"
+												+"\t\t\t\t\t\t\t<tr>\n"
+													+"\t\t\t\t\t\t\t\t<td>a</td>\n"
+													+"\t\t\t\t\t\t\t\t<td>foo</td>\n"
+												+"\t\t\t\t\t\t\t</tr>\n"
+											+"\t\t\t\t\t\t</table>\n"
+										+"\t\t\t\t\t</td>\n"
+									+"\t\t\t\t</tr>\n"
+								+"\t\t\t</table>\n"
+							+"\t\t</td>\n"
+						+"\t</tr>\n"
+					+"</table>\n",
+					
+					"<table>"
+						+"<tr>"
+							+"<td>a</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k1</td>"
+										+"<td>"
+											+"<table>"
+												+"<tr>"
+													+"<td>a</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>b</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k2</td>"
+										+"<td>"
+											+"<table _type='A'>"
+												+"<tr>"
+													+"<td>a</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+						+"<tr>"
+							+"<td>c</td>"
+							+"<td>"
+								+"<table>"
+									+"<tr>"
+										+"<td>k3</td>"
+										+"<td>"
+											+"<table _type='A'>"
+												+"<tr>"
+													+"<td>a</td>"
+													+"<td>foo</td>"
+												+"</tr>"
+											+"</table>"
+										+"</td>"
+									+"</tr>"
+								+"</table>"
+							+"</td>"
+						+"</tr>"
+					+"</table>"
+				)
+				{
+					public void verify(BeanWithAbstractMapFields o) {
+						assertType(A.class, o.a.get("k1"));
+						assertType(A.class, o.b.get("k2"));
+						assertType(A.class, o.c.get("k3"));
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextFields-5",
-				new BeanWithWhitespaceTextFields().init("  foobar  "),
-				"<object><sp> </sp> foobar <sp> </sp></object>",
-				"<object><sp> </sp> foobar <sp> </sp></object>\n",
+			{	/* 34 */
+				new Input<BeanWithWhitespaceTextFields>(
+					"BeanWithWhitespaceTextFields-1",
+					BeanWithWhitespaceTextFields.class,
+					new BeanWithWhitespaceTextFields().init(null),
+					"<object></object>",
+					"<object></object>\n",
+					"<object></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextFields o) {
+						assertType(BeanWithWhitespaceTextFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextPwsFields-1",
-				new BeanWithWhitespaceTextPwsFields().init(null),
-				"<object></object>",
-				"<object></object>\n",
+			{	/* 35 */
+				new Input<BeanWithWhitespaceTextFields>(
+					"BeanWithWhitespaceTextFields-2",
+					BeanWithWhitespaceTextFields.class,
+					new BeanWithWhitespaceTextFields().init(""),
+					"<object><sp/></object>",
+					"<object><sp/></object>\n",
+					"<object><sp/></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextFields o) {
+						assertType(BeanWithWhitespaceTextFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextPwsFields-2",
-				new BeanWithWhitespaceTextPwsFields().init(""),
-				"<object><sp/></object>",
-				"<object><sp/></object>\n",
+			{	/* 36 */
+				new Input<BeanWithWhitespaceTextFields>(
+					"BeanWithWhitespaceTextFields-3",
+					BeanWithWhitespaceTextFields.class,
+					new BeanWithWhitespaceTextFields().init(" "),
+					"<object><sp> </sp></object>",
+					"<object><sp> </sp></object>\n",
+					"<object><sp> </sp></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextFields o) {
+						assertType(BeanWithWhitespaceTextFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextPwsFields-3",
-				new BeanWithWhitespaceTextPwsFields().init(" "),
-				"<object> </object>",
-				"<object> </object>\n",
+			{	/* 37 */
+				new Input<BeanWithWhitespaceTextFields>(
+					"BeanWithWhitespaceTextFields-4",
+					BeanWithWhitespaceTextFields.class,
+					new BeanWithWhitespaceTextFields().init("  "),
+					"<object><sp> </sp><sp> </sp></object>",
+					"<object><sp> </sp><sp> </sp></object>\n",
+					"<object><sp> </sp><sp> </sp></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextFields o) {
+						assertType(BeanWithWhitespaceTextFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextPwsFields-4",
-				new BeanWithWhitespaceTextPwsFields().init("  "),
-				"<object>  </object>",
-				"<object>  </object>\n",
+			{	/* 38 */
+				new Input<BeanWithWhitespaceTextFields>(
+					"BeanWithWhitespaceTextFields-5",
+					BeanWithWhitespaceTextFields.class,
+					new BeanWithWhitespaceTextFields().init("  foobar  "),
+					"<object><sp> </sp> foobar <sp> </sp></object>",
+					"<object><sp> </sp> foobar <sp> </sp></object>\n",
+					"<object><sp> </sp> foobar <sp> </sp></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextFields o) {
+						assertType(BeanWithWhitespaceTextFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceTextPwsFields-5",
-				new BeanWithWhitespaceTextPwsFields().init("  foobar  "),
-				"<object>  foobar  </object>",
-				"<object>  foobar  </object>\n",
+			{	/* 39 */
+				new Input<BeanWithWhitespaceTextPwsFields>(
+					"BeanWithWhitespaceTextPwsFields-1",
+					BeanWithWhitespaceTextPwsFields.class,
+					new BeanWithWhitespaceTextPwsFields().init(null),
+					"<object></object>",
+					"<object></object>\n",
+					"<object></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextPwsFields o) {
+						assertType(BeanWithWhitespaceTextPwsFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceMixedFields-1",
-				new BeanWithWhitespaceMixedFields().init(null),
-				"<object></object>",
-				"<object></object>\n",
+			{	/* 40 */
+				new Input<BeanWithWhitespaceTextPwsFields>(
+					"BeanWithWhitespaceTextPwsFields-2",
+					BeanWithWhitespaceTextPwsFields.class,
+					new BeanWithWhitespaceTextPwsFields().init(""),
+					"<object><sp/></object>",
+					"<object><sp/></object>\n",
+					"<object><sp/></object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextPwsFields o) {
+						assertType(BeanWithWhitespaceTextPwsFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceMixedFields-2",
-				new BeanWithWhitespaceMixedFields().init(new String[0]),
-				"<object></object>",
-				"<object></object>\n",
+			{	/* 41 */
+				new Input<BeanWithWhitespaceTextPwsFields>(
+					"BeanWithWhitespaceTextPwsFields-3",
+					BeanWithWhitespaceTextPwsFields.class,
+					new BeanWithWhitespaceTextPwsFields().init(" "),
+					"<object> </object>",
+					"<object> </object>\n",
+					"<object> </object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextPwsFields o) {
+						assertType(BeanWithWhitespaceTextPwsFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceMixedFields-3",
-				new BeanWithWhitespaceMixedFields().init(new String[]{""}),
-				"<object><sp/></object>",
-				"<object><sp/></object>\n",
+			{	/* 42 */
+				new Input<BeanWithWhitespaceTextPwsFields>(
+					"BeanWithWhitespaceTextPwsFields-4",
+					BeanWithWhitespaceTextPwsFields.class,
+					new BeanWithWhitespaceTextPwsFields().init("  "),
+					"<object>  </object>",
+					"<object>  </object>\n",
+					"<object>  </object>"
+				)
+				{
+					public void verify(BeanWithWhitespaceTextPwsFields o) {
+						assertType(BeanWithWhitespaceTextPwsFields.class, o);
+					}
+				}
 			},
-			{
-				"BeanWithWhitespaceMixedFields-4",
-				new BeanWithWhitespaceMixedFields().init(new String[]{" "}),
-				"<object><sp> </sp></object>",
-				"<object><sp> </sp></object>\n",
+			{	/* 43 */
+				new Input<BeanWithWhitespaceTextPwsFields>(
+					"BeanWithWhitespaceTextPwsFields-5",
+					BeanWithWhitespaceTextPwsFields.class,


<TRUNCATED>


[09/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
index de68b7a..37fa197 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java
@@ -12,6 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import static org.apache.juneau.TestUtils.*;
 import static org.apache.juneau.dto.html5.HtmlBuilder.*;
 
 import java.util.*;
@@ -32,2031 +33,2671 @@ public class Html5ComboTest extends ComboTest {
 	@Parameterized.Parameters
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
-			{
-				"A-1",
-				a("http://foo", "bar"),
-				/* Json */		"{_type:'a',a:{href:'http://foo'},c:['bar']}",
-				/* JsonT */		"{t:'a',a:{href:'http://foo'},c:['bar']}",
-				/* JsonR */		"{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t'bar'\n\t]\n}",
-				/* Xml */		"<a href='http://foo'>bar</a>",
-				/* XmlT */		"<a href='http://foo'>bar</a>",
-				/* XmlR */		"<a href='http://foo'>bar</a>\n",
-				/* XmlNs */		"<a href='http://foo'>bar</a>",
-				/* Html */		"<a href='http://foo'>bar</a>",
-				/* HtmlT */		"<a href='http://foo'>bar</a>",
-				/* HtmlR */		"<a href='http://foo'>bar</a>\n",
-				/* Uon */		"(_type=a,a=(href=http://foo),c=@(bar))",
-				/* UonT */		"(t=a,a=(href=http://foo),c=@(bar))",
-				/* UonR */		"(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\tbar\n\t)\n)",
-				/* UrlEnc */	"_type=a&a=(href=http://foo)&c=@(bar)",
-				/* UrlEncT */	"t=a&a=(href=http://foo)&c=@(bar)",
-				/* UrlEncR */	"_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\tbar\n)",
-				/* MsgPack */	"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A3626172",
-				/* MsgPackT */	"83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A3626172",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>a</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:href>http://foo</jp:href>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>bar</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"A-2",
-				a("http://foo", "bar", btag, "baz"),
-				/* Json */		"{_type:'a',a:{href:'http://foo'},c:['bar',{_type:'b',c:['bbb']},'baz']}",
-				/* JsonT */		"{t:'a',a:{href:'http://foo'},c:['bar',{t:'b',c:['bbb']},'baz']}",
-				/* JsonR */		"{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t'bar',\n\t\t{\n\t\t\t_type: 'b',\n\t\t\tc: [\n\t\t\t\t'bbb'\n\t\t\t]\n\t\t},\n\t\t'baz'\n\t]\n}",
-				/* Xml */		"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				/* XmlT */		"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				/* XmlR */		"<a href='http://foo'>bar<b>bbb</b>baz</a>\n",
-				/* XmlNs */		"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				/* Html */		"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				/* HtmlT */		"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				/* HtmlR */		"<a href='http://foo'>bar<b>bbb</b>baz</a>\n",
-				/* Uon */		"(_type=a,a=(href=http://foo),c=@(bar,(_type=b,c=@(bbb)),baz))",
-				/* UonT */		"(t=a,a=(href=http://foo),c=@(bar,(t=b,c=@(bbb)),baz))",
-				/* UonR */		"(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\tbar,\n\t\t(\n\t\t\t_type=b,\n\t\t\tc=@(\n\t\t\t\tbbb\n\t\t\t)\n\t\t),\n\t\tbaz\n\t)\n)",
-				/* UrlEnc */	"_type=a&a=(href=http://foo)&c=@(bar,(_type=b,c=@(bbb)),baz)",
-				/* UrlEncT */	"t=a&a=(href=http://foo)&c=@(bar,(t=b,c=@(bbb)),baz)",
-				/* UrlEncR */	"_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\tbar,\n\t(\n\t\t_type=b,\n\t\tc=@(\n\t\t\tbbb\n\t\t)\n\t),\n\tbaz\n)",
-				/* MsgPack */	"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16393A362617282A55F74797065A162A16391A3626262A362617A",
-				/* MsgPackT */	"83A174A161A16181A468726566AA687474703A2F2F666F6FA16393A362617282A174A162A16391A3626262A362617A",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>a</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:href>http://foo</jp:href>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>bar</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>b</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>bbb</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li>baz</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"A-3",
-				a("http://foo", ""),
-				/* Json */		"{_type:'a',a:{href:'http://foo'},c:['']}",
-				/* JsonT */		"{t:'a',a:{href:'http://foo'},c:['']}",
-				/* JsonR */		"{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t''\n\t]\n}",
-				/* Xml */		"<a href='http://foo'>_xE000_</a>",
-				/* XmlT */		"<a href='http://foo'>_xE000_</a>",
-				/* XmlR */		"<a href='http://foo'>_xE000_</a>\n",
-				/* XmlNs */		"<a href='http://foo'>_xE000_</a>",
-				/* Html */		"<a href='http://foo'><sp/></a>",
-				/* HtmlT */		"<a href='http://foo'><sp/></a>",
-				/* HtmlR */		"<a href='http://foo'><sp/></a>\n",
-				/* Uon */		"(_type=a,a=(href=http://foo),c=@(''))",
-				/* UonT */		"(t=a,a=(href=http://foo),c=@(''))",
-				/* UonR */		"(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\t''\n\t)\n)",
-				/* UrlEnc */	"_type=a&a=(href=http://foo)&c=@('')",
-				/* UrlEncT */	"t=a&a=(href=http://foo)&c=@('')",
-				/* UrlEncR */	"_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\t''\n)",
-				/* MsgPack */	"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A0",
-				/* MsgPackT */	"83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>a</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:href>http://foo</jp:href>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li></rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"A-4",
-				a("http://foo", " "),
-				/* Json */		"{_type:'a',a:{href:'http://foo'},c:[' ']}",
-				/* JsonT */		"{t:'a',a:{href:'http://foo'},c:[' ']}",
-				/* JsonR */		"{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t' '\n\t]\n}",
-				/* Xml */		"<a href='http://foo'>_x0020_</a>",
-				/* XmlT */		"<a href='http://foo'>_x0020_</a>",
-				/* XmlR */		"<a href='http://foo'>_x0020_</a>\n",
-				/* XmlNs */		"<a href='http://foo'>_x0020_</a>",
-				/* Html */		"<a href='http://foo'><sp> </sp></a>",
-				/* HtmlT */		"<a href='http://foo'><sp> </sp></a>",
-				/* HtmlR */		"<a href='http://foo'><sp> </sp></a>\n",
-				/* Uon */		"(_type=a,a=(href=http://foo),c=@(' '))",
-				/* UonT */		"(t=a,a=(href=http://foo),c=@(' '))",
-				/* UonR */		"(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\t' '\n\t)\n)",
-				/* UrlEnc */	"_type=a&a=(href=http://foo)&c=@('+')",
-				/* UrlEncT */	"t=a&a=(href=http://foo)&c=@('+')",
-				/* UrlEncR */	"_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\t'+'\n)",
-				/* MsgPack */	"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A120",
-				/* MsgPackT */	"83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A120",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>_x0020_</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>_x0020_</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>a</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:href>http://foo</jp:href>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>_x0020_</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"A-5",
-				a("http://foo"),
-				/* Json */		"{_type:'a',a:{href:'http://foo'}}",
-				/* JsonT */		"{t:'a',a:{href:'http://foo'}}",
-				/* JsonR */		"{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t}\n}",
-				/* Xml */		"<a href='http://foo'/>",
-				/* XmlT */		"<a href='http://foo'/>",
-				/* XmlR */		"<a href='http://foo'/>\n",
-				/* XmlNs */		"<a href='http://foo'/>",
-				/* Html */		"<a href='http://foo'></a>",
-				/* HtmlT */		"<a href='http://foo'></a>",
-				/* HtmlR */		"<a href='http://foo'></a>\n",
-				/* Uon */		"(_type=a,a=(href=http://foo))",
-				/* UonT */		"(t=a,a=(href=http://foo))",
-				/* UonR */		"(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t)\n)",
-				/* UrlEnc */	"_type=a&a=(href=http://foo)",
-				/* UrlEncT */	"t=a&a=(href=http://foo)",
-				/* UrlEncR */	"_type=a\n&a=(\n\thref=http://foo\n)",
-				/* MsgPack */	"82A55F74797065A161A16181A468726566AA687474703A2F2F666F6F",
-				/* MsgPackT */	"82A174A161A16181A468726566AA687474703A2F2F666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>http://foo</jp:href>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>a</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:href>http://foo</jp:href>\n    </jp:a>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Abbr-1",
-				abbr().children("foo"),
-				/* Json */		"{_type:'abbr',c:['foo']}",
-				/* JsonT */		"{t:'abbr',c:['foo']}",
-				/* JsonR */		"{\n\t_type: 'abbr',\n\tc: [\n\t\t'foo'\n\t]\n}",
-				/* Xml */		"<abbr>foo</abbr>",
-				/* XmlT */		"<abbr>foo</abbr>",
-				/* XmlR */		"<abbr>foo</abbr>\n",
-				/* XmlNs */		"<abbr>foo</abbr>",
-				/* Html */		"<abbr>foo</abbr>",
-				/* HtmlT */		"<abbr>foo</abbr>",
-				/* HtmlR */		"<abbr>foo</abbr>\n",
-				/* Uon */		"(_type=abbr,c=@(foo))",
-				/* UonT */		"(t=abbr,c=@(foo))",
-				/* UonR */		"(\n\t_type=abbr,\n\tc=@(\n\t\tfoo\n\t)\n)",
-				/* UrlEnc */	"_type=abbr&c=@(foo)",
-				/* UrlEncT */	"t=abbr&c=@(foo)",
-				/* UrlEncR */	"_type=abbr\n&c=@(\n\tfoo\n)",
-				/* MsgPack */	"82A55F74797065A461626272A16391A3666F6F",
-				/* MsgPackT */	"82A174A461626272A16391A3666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>abbr</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>abbr</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>abbr</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Abbr-2",
-				abbr("foo", "bar", btag, "baz"),
-				/* Json */		"{_type:'abbr',a:{title:'foo'},c:['bar',{_type:'b',c:['bbb']},'baz']}",
-				/* JsonT */		"{t:'abbr',a:{title:'foo'},c:['bar',{t:'b',c:['bbb']},'baz']}",
-				/* JsonR */		"{\n\t_type: 'abbr',\n\ta: {\n\t\ttitle: 'foo'\n\t},\n\tc: [\n\t\t'bar',\n\t\t{\n\t\t\t_type: 'b',\n\t\t\tc: [\n\t\t\t\t'bbb'\n\t\t\t]\n\t\t},\n\t\t'baz'\n\t]\n}",
-				/* Xml */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				/* XmlT */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				/* XmlR */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>\n",
-				/* XmlNs */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				/* Html */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				/* HtmlT */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				/* HtmlR */		"<abbr title='foo'>bar<b>bbb</b>baz</abbr>\n",
-				/* Uon */		"(_type=abbr,a=(title=foo),c=@(bar,(_type=b,c=@(bbb)),baz))",
-				/* UonT */		"(t=abbr,a=(title=foo),c=@(bar,(t=b,c=@(bbb)),baz))",
-				/* UonR */		"(\n\t_type=abbr,\n\ta=(\n\t\ttitle=foo\n\t),\n\tc=@(\n\t\tbar,\n\t\t(\n\t\t\t_type=b,\n\t\t\tc=@(\n\t\t\t\tbbb\n\t\t\t)\n\t\t),\n\t\tbaz\n\t)\n)",
-				/* UrlEnc */	"_type=abbr&a=(title=foo)&c=@(bar,(_type=b,c=@(bbb)),baz)",
-				/* UrlEncT */	"t=abbr&a=(title=foo)&c=@(bar,(t=b,c=@(bbb)),baz)",
-				/* UrlEncR */	"_type=abbr\n&a=(\n\ttitle=foo\n)\n&c=@(\n\tbar,\n\t(\n\t\t_type=b,\n\t\tc=@(\n\t\t\tbbb\n\t\t)\n\t),\n\tbaz\n)",
-				/* MsgPack */	"83A55F74797065A461626272A16181A57469746C65A3666F6FA16393A362617282A55F74797065A162A16391A3626262A362617A",
-				/* MsgPackT */	"83A174A461626272A16181A57469746C65A3666F6FA16393A362617282A174A162A16391A3626262A362617A",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>abbr</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:title>foo</jp:title>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>abbr</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:title>foo</jp:title>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>abbr</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:title>foo</jp:title>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>bar</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>b</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>bbb</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li>baz</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Address-1",
-				address(),
-				/* Json */		"{_type:'address'}",
-				/* JsonT */		"{t:'address'}",
-				/* JsonR */		"{\n\t_type: 'address'\n}",
-				/* Xml */		"<address/>",
-				/* XmlT */		"<address/>",
-				/* XmlR */		"<address/>\n",
-				/* XmlNs */		"<address/>",
-				/* Html */		"<address></address>",
-				/* HtmlT */		"<address></address>",
-				/* HtmlR */		"<address></address>\n",
-				/* Uon */		"(_type=address)",
-				/* UonT */		"(t=address)",
-				/* UonR */		"(\n\t_type=address\n)",
-				/* UrlEnc */	"_type=address",
-				/* UrlEncT */	"t=address",
-				/* UrlEncR */	"_type=address",
-				/* MsgPack */	"81A55F74797065A761646472657373",
-				/* MsgPackT */	"81A174A761646472657373",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>address</jp:_type>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>address</jp:t>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>address</jp:_type>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Address-2",
-				address(""),
-				/* Json */		"{_type:'address',c:['']}",
-				/* JsonT */		"{t:'address',c:['']}",
-				/* JsonR */		"{\n\t_type: 'address',\n\tc: [\n\t\t''\n\t]\n}",
-				/* Xml */		"<address>_xE000_</address>",
-				/* XmlT */		"<address>_xE000_</address>",
-				/* XmlR */		"<address>_xE000_</address>\n",
-				/* XmlNs */		"<address>_xE000_</address>",
-				/* Html */		"<address><sp/></address>",
-				/* HtmlT */		"<address><sp/></address>",
-				/* HtmlR */		"<address><sp/></address>\n",
-				/* Uon */		"(_type=address,c=@(''))",
-				/* UonT */		"(t=address,c=@(''))",
-				/* UonR */		"(\n\t_type=address,\n\tc=@(\n\t\t''\n\t)\n)",
-				/* UrlEnc */	"_type=address&c=@('')",
-				/* UrlEncT */	"t=address&c=@('')",
-				/* UrlEncR */	"_type=address\n&c=@(\n\t''\n)",
-				/* MsgPack */	"82A55F74797065A761646472657373A16391A0",
-				/* MsgPackT */	"82A174A761646472657373A16391A0",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>address</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>address</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>address</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li></rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Address-3",
-				address("foo", a("bar", "baz"), a("qux", "quux")),
-				/* Json */		"{_type:'address',c:['foo',{_type:'a',a:{href:'bar'},c:['baz']},{_type:'a',a:{href:'qux'},c:['quux']}]}",
-				/* JsonT */		"{t:'address',c:['foo',{t:'a',a:{href:'bar'},c:['baz']},{t:'a',a:{href:'qux'},c:['quux']}]}",
-				/* JsonR */		"{\n\t_type: 'address',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'a',\n\t\t\ta: {\n\t\t\t\thref: 'bar'\n\t\t\t},\n\t\t\tc: [\n\t\t\t\t'baz'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'a',\n\t\t\ta: {\n\t\t\t\thref: 'qux'\n\t\t\t},\n\t\t\tc: [\n\t\t\t\t'quux'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				/* XmlT */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				/* XmlR */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>\n",
-				/* XmlNs */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				/* Html */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				/* HtmlT */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				/* HtmlR */		"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>\n",
-				/* Uon */		"(_type=address,c=@(foo,(_type=a,a=(href=bar),c=@(baz)),(_type=a,a=(href=qux),c=@(quux))))",
-				/* UonT */		"(t=address,c=@(foo,(t=a,a=(href=bar),c=@(baz)),(t=a,a=(href=qux),c=@(quux))))",
-				/* UonR */		"(\n\t_type=address,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=a,\n\t\t\ta=(\n\t\t\t\thref=bar\n\t\t\t),\n\t\t\tc=@(\n\t\t\t\tbaz\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=a,\n\t\t\ta=(\n\t\t\t\thref=qux\n\t\t\t),\n\t\t\tc=@(\n\t\t\t\tquux\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=address&c=@(foo,(_type=a,a=(href=bar),c=@(baz)),(_type=a,a=(href=qux),c=@(quux)))",
-				/* UrlEncT */	"t=address&c=@(foo,(t=a,a=(href=bar),c=@(baz)),(t=a,a=(href=qux),c=@(quux)))",
-				/* UrlEncR */	"_type=address\n&c=@(\n\tfoo,\n\t(\n\t\t_type=a,\n\t\ta=(\n\t\t\thref=bar\n\t\t),\n\t\tc=@(\n\t\t\tbaz\n\t\t)\n\t),\n\t(\n\t\t_type=a,\n\t\ta=(\n\t\t\thref=qux\n\t\t),\n\t\tc=@(\n\t\t\tquux\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A761646472657373A16393A3666F6F83A55F74797065A161A16181A468726566A3626172A16391A362617A83A55F74797065A161A16181A468726566A3717578A16391A471757578",
-				/* MsgPackT */	"82A174A761646472657373A16393A3666F6F83A174A161A16181A468726566A3626172A16391A362617A83A174A161A16181A468726566A3717578A16391A471757578",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>address</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>bar</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>qux</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>quux</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>address</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>bar</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>qux</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>quux</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>address</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>a</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:href>bar</jp:href>\n          </jp:a>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>baz</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>a</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:href>qux</jp:href>\n          </jp:a>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>quux</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Aside-1",
-				aside(
-					h1("header1"),p("foo")
-				),
-				/* Json */		"{_type:'aside',c:[{_type:'h1',c:['header1']},{_type:'p',c:['foo']}]}",
-				/* JsonT */		"{t:'aside',c:[{t:'h1',c:['header1']},{t:'p',c:['foo']}]}",
-				/* JsonR */		"{\n\t_type: 'aside',\n\tc: [\n\t\t{\n\t\t\t_type: 'h1',\n\t\t\tc: [\n\t\t\t\t'header1'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'p',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<aside><h1>header1</h1><p>foo</p></aside>",
-				/* XmlT */		"<aside><h1>header1</h1><p>foo</p></aside>",
-				/* XmlR */		"<aside><h1>header1</h1><p>foo</p></aside>\n",
-				/* XmlNs */		"<aside><h1>header1</h1><p>foo</p></aside>",
-				/* Html */		"<aside><h1>header1</h1><p>foo</p></aside>",
-				/* HtmlT */		"<aside><h1>header1</h1><p>foo</p></aside>",
-				/* HtmlR */		"<aside><h1>header1</h1><p>foo</p></aside>\n",
-				/* Uon */		"(_type=aside,c=@((_type=h1,c=@(header1)),(_type=p,c=@(foo))))",
-				/* UonT */		"(t=aside,c=@((t=h1,c=@(header1)),(t=p,c=@(foo))))",
-				/* UonR */		"(\n\t_type=aside,\n\tc=@(\n\t\t(\n\t\t\t_type=h1,\n\t\t\tc=@(\n\t\t\t\theader1\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=p,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=aside&c=@((_type=h1,c=@(header1)),(_type=p,c=@(foo)))",
-				/* UrlEncT */	"t=aside&c=@((t=h1,c=@(header1)),(t=p,c=@(foo)))",
-				/* UrlEncR */	"_type=aside\n&c=@(\n\t(\n\t\t_type=h1,\n\t\tc=@(\n\t\t\theader1\n\t\t)\n\t),\n\t(\n\t\t_type=p,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A56173696465A1639282A55F74797065A26831A16391A76865616465723182A55F74797065A170A16391A3666F6F",
-				/* MsgPackT */	"82A174A56173696465A1639282A174A26831A16391A76865616465723182A174A170A16391A3666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>aside</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>h1</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>header1</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>aside</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>h1</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>header1</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>aside</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>h1</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>header1</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>p</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>foo</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Audio/Source-1",
-				audio().controls(true).children(
-					source("foo.ogg", "audio/ogg"),
-					source("foo.mp3", "audio/mpeg")
-				),
-				/* Json */		"{_type:'audio',a:{controls:true},c:[{_type:'source',a:{src:'foo.ogg',type:'audio/ogg'}},{_type:'source',a:{src:'foo.mp3',type:'audio/mpeg'}}]}",
-				/* JsonT */		"{t:'audio',a:{controls:true},c:[{t:'source',a:{src:'foo.ogg',type:'audio/ogg'}},{t:'source',a:{src:'foo.mp3',type:'audio/mpeg'}}]}",
-				/* JsonR */		"{\n\t_type: 'audio',\n\ta: {\n\t\tcontrols: true\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'source',\n\t\t\ta: {\n\t\t\t\tsrc: 'foo.ogg',\n\t\t\t\ttype: 'audio/ogg'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'source',\n\t\t\ta: {\n\t\t\t\tsrc: 'foo.mp3',\n\t\t\t\ttype: 'audio/mpeg'\n\t\t\t}\n\t\t}\n\t]\n}",
-				/* Xml */		"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				/* XmlT */		"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				/* XmlR */		"<audio controls='true'>\n\t<source src='foo.ogg' type='audio/ogg'/>\n\t<source src='foo.mp3' type='audio/mpeg'/>\n</audio>\n",
-				/* XmlNs */		"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				/* Html */		"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				/* HtmlT */		"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				/* HtmlR */		"<audio controls='true'>\n\t<source src='foo.ogg' type='audio/ogg'/>\n\t<source src='foo.mp3' type='audio/mpeg'/>\n</audio>\n",
-				/* Uon */		"(_type=audio,a=(controls=true),c=@((_type=source,a=(src=foo.ogg,type=audio/ogg)),(_type=source,a=(src=foo.mp3,type=audio/mpeg))))",
-				/* UonT */		"(t=audio,a=(controls=true),c=@((t=source,a=(src=foo.ogg,type=audio/ogg)),(t=source,a=(src=foo.mp3,type=audio/mpeg))))",
-				/* UonR */		"(\n\t_type=audio,\n\ta=(\n\t\tcontrols=true\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=source,\n\t\t\ta=(\n\t\t\t\tsrc=foo.ogg,\n\t\t\t\ttype=audio/ogg\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=source,\n\t\t\ta=(\n\t\t\t\tsrc=foo.mp3,\n\t\t\t\ttype=audio/mpeg\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=audio&a=(controls=true)&c=@((_type=source,a=(src=foo.ogg,type=audio/ogg)),(_type=source,a=(src=foo.mp3,type=audio/mpeg)))",
-				/* UrlEncT */	"t=audio&a=(controls=true)&c=@((t=source,a=(src=foo.ogg,type=audio/ogg)),(t=source,a=(src=foo.mp3,type=audio/mpeg)))",
-				/* UrlEncR */	"_type=audio\n&a=(\n\tcontrols=true\n)\n&c=@(\n\t(\n\t\t_type=source,\n\t\ta=(\n\t\t\tsrc=foo.ogg,\n\t\t\ttype=audio/ogg\n\t\t)\n\t),\n\t(\n\t\t_type=source,\n\t\ta=(\n\t\t\tsrc=foo.mp3,\n\t\t\ttype=audio/mpeg\n\t\t)\n\t)\n)",
-				/* MsgPack */	"83A55F74797065A5617564696FA16181A8636F6E74726F6C73C3A1639282A55F74797065A6736F75726365A16182A3737263A7666F6F2E6F6767A474797065A9617564696F2F6F676782A55F74797065A6736F75726365A16182A3737263A7666F6F2E6D7033A474797065AA617564696F2F6D706567",
-				/* MsgPackT */	"83A174A5617564696FA16181A8636F6E74726F6C73C3A1639282A174A6736F75726365A16182A3737263A7666F6F2E6F6767A474797065A9617564696F2F6F676782A174A6736F75726365A16182A3737263A7666F6F2E6D7033A474797065AA617564696F2F6D706567",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>audio</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:controls>true</jp:controls>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>source</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.ogg</jp:src>\n<jp:type>audio/ogg</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>source</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.mp3</jp:src>\n<jp:type>audio/mpeg</jp:type>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>audio</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:controls>true</jp:controls>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>source</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.ogg</jp:src>\n<jp:type>audio/ogg</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>source</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.mp3</jp:src>\n<jp:type>audio/mpeg</jp:type>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>audio</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:controls>true</jp:controls>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>source</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:src>foo.ogg</jp:src>\n            <jp:type>audio/ogg</jp:type>\n          </jp:a>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>source</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:src>foo.mp3</jp:src>\n            <jp:type>audio/mpeg</jp:type>\n          </jp:a>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Bdi-1",
-				p("foo", bdi("\u0625\u064a\u0627\u0646"), "bar"),
-				/* Json */		"{_type:'p',c:['foo',{_type:'bdi',c:'\u0625\u064a\u0627\u0646'},'bar']}",
-				/* JsonT */		"{t:'p',c:['foo',{t:'bdi',c:'\u0625\u064a\u0627\u0646'},'bar']}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'bdi',\n\t\t\tc: '\u0625\u064a\u0627\u0646'\n\t\t},\n\t\t'bar'\n\t]\n}",
-				/* Xml */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				/* XmlT */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				/* XmlR */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>\n",
-				/* XmlNs */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				/* Html */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				/* HtmlT */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				/* HtmlR */		"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>\n",
-				/* Uon */		"(_type=p,c=@(foo,(_type=bdi,c=\u0625\u064a\u0627\u0646),bar))",
-				/* UonT */		"(t=p,c=@(foo,(t=bdi,c=\u0625\u064a\u0627\u0646),bar))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=bdi,\n\t\t\tc=\u0625\u064a\u0627\u0646\n\t\t),\n\t\tbar\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@(foo,(_type=bdi,c=%D8%A5%D9%8A%D8%A7%D9%86),bar)",
-				/* UrlEncT */	"t=p&c=@(foo,(t=bdi,c=%D8%A5%D9%8A%D8%A7%D9%86),bar)",
-				/* UrlEncR */	"_type=p\n&c=@(\n\tfoo,\n\t(\n\t\t_type=bdi,\n\t\tc=%D8%A5%D9%8A%D8%A7%D9%86\n\t),\n\tbar\n)",
-				/* MsgPack */	"82A55F74797065A170A16393A3666F6F82A55F74797065A3626469A163A8D8A5D98AD8A7D986A3626172",
-				/* MsgPackT */	"82A174A170A16393A3666F6F82A174A3626469A163A8D8A5D98AD8A7D986A3626172",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>bdi</jp:_type>\n<jp:c>\u0625\u064a\u0627\u0646</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>bdi</jp:t>\n<jp:c>\u0625\u064a\u0627\u0646</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>bdi</jp:_type>\n          <jp:c>\u0625\u064a\u0627\u0646</jp:c>\n        </rdf:li>\n        <rdf:li>bar</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Bdo-1",
-				p("foo", bdo("rtl", "baz"), "bar"),
-				/* Json */		"{_type:'p',c:['foo',{_type:'bdo',a:{dir:'rtl'},c:['baz']},'bar']}",
-				/* JsonT */		"{t:'p',c:['foo',{t:'bdo',a:{dir:'rtl'},c:['baz']},'bar']}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'bdo',\n\t\t\ta: {\n\t\t\t\tdir: 'rtl'\n\t\t\t},\n\t\t\tc: [\n\t\t\t\t'baz'\n\t\t\t]\n\t\t},\n\t\t'bar'\n\t]\n}",
-				/* Xml */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				/* XmlT */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				/* XmlR */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>\n",
-				/* XmlNs */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				/* Html */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				/* HtmlT */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				/* HtmlR */		"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>\n",
-				/* Uon */		"(_type=p,c=@(foo,(_type=bdo,a=(dir=rtl),c=@(baz)),bar))",
-				/* UonT */		"(t=p,c=@(foo,(t=bdo,a=(dir=rtl),c=@(baz)),bar))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=bdo,\n\t\t\ta=(\n\t\t\t\tdir=rtl\n\t\t\t),\n\t\t\tc=@(\n\t\t\t\tbaz\n\t\t\t)\n\t\t),\n\t\tbar\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@(foo,(_type=bdo,a=(dir=rtl),c=@(baz)),bar)",
-				/* UrlEncT */	"t=p&c=@(foo,(t=bdo,a=(dir=rtl),c=@(baz)),bar)",
-				/* UrlEncR */	"_type=p\n&c=@(\n\tfoo,\n\t(\n\t\t_type=bdo,\n\t\ta=(\n\t\t\tdir=rtl\n\t\t),\n\t\tc=@(\n\t\t\tbaz\n\t\t)\n\t),\n\tbar\n)",
-				/* MsgPack */	"82A55F74797065A170A16393A3666F6F83A55F74797065A362646FA16181A3646972A372746CA16391A362617AA3626172",
-				/* MsgPackT */	"82A174A170A16393A3666F6F83A174A362646FA16181A3646972A372746CA16391A362617AA3626172",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>bdo</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:dir>rtl</jp:dir>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>bdo</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:dir>rtl</jp:dir>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>bdo</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:dir>rtl</jp:dir>\n          </jp:a>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>baz</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li>bar</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Blockquote-1",
-				blockquote("foo"),
-				/* Json */		"{_type:'blockquote',c:['foo']}",
-				/* JsonT */		"{t:'blockquote',c:['foo']}",
-				/* JsonR */		"{\n\t_type: 'blockquote',\n\tc: [\n\t\t'foo'\n\t]\n}",
-				/* Xml */		"<blockquote>foo</blockquote>",
-				/* XmlT */		"<blockquote>foo</blockquote>",
-				/* XmlR */		"<blockquote>foo</blockquote>\n",
-				/* XmlNs */		"<blockquote>foo</blockquote>",
-				/* Html */		"<blockquote>foo</blockquote>",
-				/* HtmlT */		"<blockquote>foo</blockquote>",
-				/* HtmlR */		"<blockquote>foo</blockquote>\n",
-				/* Uon */		"(_type=blockquote,c=@(foo))",
-				/* UonT */		"(t=blockquote,c=@(foo))",
-				/* UonR */		"(\n\t_type=blockquote,\n\tc=@(\n\t\tfoo\n\t)\n)",
-				/* UrlEnc */	"_type=blockquote&c=@(foo)",
-				/* UrlEncT */	"t=blockquote&c=@(foo)",
-				/* UrlEncR */	"_type=blockquote\n&c=@(\n\tfoo\n)",
-				/* MsgPack */	"82A55F74797065AA626C6F636B71756F7465A16391A3666F6F",
-				/* MsgPackT */	"82A174AA626C6F636B71756F7465A16391A3666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>blockquote</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>blockquote</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>blockquote</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Br-1",
-				br(),
-				/* Json */		"{_type:'br'}",
-				/* JsonT */		"{t:'br'}",
-				/* JsonR */		"{\n\t_type: 'br'\n}",
-				/* Xml */		"<br/>",
-				/* XmlT */		"<br/>",
-				/* XmlR */		"<br/>\n",
-				/* XmlNs */		"<br/>",
-				/* Html */		"<br/>",
-				/* HtmlT */		"<br/>",
-				/* HtmlR */		"<br/>\n",
-				/* Uon */		"(_type=br)",
-				/* UonT */		"(t=br)",
-				/* UonR */		"(\n\t_type=br\n)",
-				/* UrlEnc */	"_type=br",
-				/* UrlEncT */	"t=br",
-				/* UrlEncR */	"_type=br",
-				/* MsgPack */	"81A55F74797065A26272",
-				/* MsgPackT */	"81A174A26272",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>br</jp:_type>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>br</jp:t>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>br</jp:_type>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Br-2",
-				p(br()),
-				/* Json */		"{_type:'p',c:[{_type:'br'}]}",
-				/* JsonT */		"{t:'p',c:[{t:'br'}]}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'br'\n\t\t}\n\t]\n}",
-				/* Xml */		"<p><br/></p>",
-				/* XmlT */		"<p><br/></p>",
-				/* XmlR */		"<p><br/></p>\n",
-				/* XmlNs */		"<p><br/></p>",
-				/* Html */		"<p><br/></p>",
-				/* HtmlT */		"<p><br/></p>",
-				/* HtmlR */		"<p><br/></p>\n",
-				/* Uon */		"(_type=p,c=@((_type=br)))",
-				/* UonT */		"(t=p,c=@((t=br)))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=br\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@((_type=br))",
-				/* UrlEncT */	"t=p&c=@((t=br))",
-				/* UrlEncR */	"_type=p\n&c=@(\n\t(\n\t\t_type=br\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A170A1639181A55F74797065A26272",
-				/* MsgPackT */	"82A174A170A1639181A174A26272",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>br</jp:_type>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>br</jp:t>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>br</jp:_type>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Button-1",
-				button("button", "foo"),
-				/* Json */		"{_type:'button',a:{type:'button'},c:['foo']}",
-				/* JsonT */		"{t:'button',a:{type:'button'},c:['foo']}",
-				/* JsonR */		"{\n\t_type: 'button',\n\ta: {\n\t\ttype: 'button'\n\t},\n\tc: [\n\t\t'foo'\n\t]\n}",
-				/* Xml */		"<button type='button'>foo</button>",
-				/* XmlT */		"<button type='button'>foo</button>",
-				/* XmlR */		"<button type='button'>foo</button>\n",
-				/* XmlNs */		"<button type='button'>foo</button>",
-				/* Html */		"<button type='button'>foo</button>",
-				/* HtmlT */		"<button type='button'>foo</button>",
-				/* HtmlR */		"<button type='button'>foo</button>\n",
-				/* Uon */		"(_type=button,a=(type=button),c=@(foo))",
-				/* UonT */		"(t=button,a=(type=button),c=@(foo))",
-				/* UonR */		"(\n\t_type=button,\n\ta=(\n\t\ttype=button\n\t),\n\tc=@(\n\t\tfoo\n\t)\n)",
-				/* UrlEnc */	"_type=button&a=(type=button)&c=@(foo)",
-				/* UrlEncT */	"t=button&a=(type=button)&c=@(foo)",
-				/* UrlEncR */	"_type=button\n&a=(\n\ttype=button\n)\n&c=@(\n\tfoo\n)",
-				/* MsgPack */	"83A55F74797065A6627574746F6EA16181A474797065A6627574746F6EA16391A3666F6F",
-				/* MsgPackT */	"83A174A6627574746F6EA16181A474797065A6627574746F6EA16391A3666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>button</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>button</jp:type>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>button</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>button</jp:type>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>button</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:type>button</jp:type>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Canvas-1",
-				canvas(100, 200),
-				/* Json */		"{_type:'canvas',a:{width:100,height:200}}",
-				/* JsonT */		"{t:'canvas',a:{width:100,height:200}}",
-				/* JsonR */		"{\n\t_type: 'canvas',\n\ta: {\n\t\twidth: 100,\n\t\theight: 200\n\t}\n}",
-				/* Xml */		"<canvas width='100' height='200'/>",
-				/* XmlT */		"<canvas width='100' height='200'/>",
-				/* XmlR */		"<canvas width='100' height='200'/>\n",
-				/* XmlNs */		"<canvas width='100' height='200'/>",
-				/* Html */		"<canvas width='100' height='200'></canvas>",
-				/* HtmlT */		"<canvas width='100' height='200'></canvas>",
-				/* HtmlR */		"<canvas width='100' height='200'></canvas>\n",
-				/* Uon */		"(_type=canvas,a=(width=100,height=200))",
-				/* UonT */		"(t=canvas,a=(width=100,height=200))",
-				/* UonR */		"(\n\t_type=canvas,\n\ta=(\n\t\twidth=100,\n\t\theight=200\n\t)\n)",
-				/* UrlEnc */	"_type=canvas&a=(width=100,height=200)",
-				/* UrlEncT */	"t=canvas&a=(width=100,height=200)",
-				/* UrlEncR */	"_type=canvas\n&a=(\n\twidth=100,\n\theight=200\n)",
-				/* MsgPack */	"82A55F74797065A663616E766173A16182A5776964746864A6686569676874D100C8",
-				/* MsgPackT */	"82A174A663616E766173A16182A5776964746864A6686569676874D100C8",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>canvas</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:width>100</jp:width>\n<jp:height>200</jp:height>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>canvas</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:width>100</jp:width>\n<jp:height>200</jp:height>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>canvas</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:width>100</jp:width>\n      <jp:height>200</jp:height>\n    </jp:a>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Cite-1",
-				p(cite("foo")),
-				/* Json */		"{_type:'p',c:[{_type:'cite',c:['foo']}]}",
-				/* JsonT */		"{t:'p',c:[{t:'cite',c:['foo']}]}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'cite',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<p><cite>foo</cite></p>",
-				/* XmlT */		"<p><cite>foo</cite></p>",
-				/* XmlR */		"<p><cite>foo</cite></p>\n",
-				/* XmlNs */		"<p><cite>foo</cite></p>",
-				/* Html */		"<p><cite>foo</cite></p>",
-				/* HtmlT */		"<p><cite>foo</cite></p>",
-				/* HtmlR */		"<p><cite>foo</cite></p>\n",
-				/* Uon */		"(_type=p,c=@((_type=cite,c=@(foo))))",
-				/* UonT */		"(t=p,c=@((t=cite,c=@(foo))))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=cite,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@((_type=cite,c=@(foo)))",
-				/* UrlEncT */	"t=p&c=@((t=cite,c=@(foo)))",
-				/* UrlEncR */	"_type=p\n&c=@(\n\t(\n\t\t_type=cite,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A170A1639182A55F74797065A463697465A16391A3666F6F",
-				/* MsgPackT */	"82A174A170A1639182A174A463697465A16391A3666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>cite</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>cite</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>cite</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>foo</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Code-1",
-				code("foo\n\tbar"),
-				/* Json */		"{_type:'code',c:['foo\\n\\tbar']}",
-				/* JsonT */		"{t:'code',c:['foo\\n\\tbar']}",
-				/* JsonR */		"{\n\t_type: 'code',\n\tc: [\n\t\t'foo\\n\\tbar'\n\t]\n}",
-				/* Xml */		"<code>foo&#x000a;&#x0009;bar</code>",
-				/* XmlT */		"<code>foo&#x000a;&#x0009;bar</code>",
-				/* XmlR */		"<code>foo&#x000a;&#x0009;bar</code>\n",
-				/* XmlNs */		"<code>foo&#x000a;&#x0009;bar</code>",
-				/* Html */		"<code>foo<br/><sp>&#x2003;</sp>bar</code>",
-				/* HtmlT */		"<code>foo<br/><sp>&#x2003;</sp>bar</code>",
-				/* HtmlR */		"<code>foo<br/><sp>&#x2003;</sp>bar</code>\n",
-				/* Uon */		"(_type=code,c=@('foo\n\tbar'))",
-				/* UonT */		"(t=code,c=@('foo\n\tbar'))",
-				/* UonR */		"(\n\t_type=code,\n\tc=@(\n\t\t'foo\n\tbar'\n\t)\n)",
-				/* UrlEnc */	"_type=code&c=@('foo%0A%09bar')",
-				/* UrlEncT */	"t=code&c=@('foo%0A%09bar')",
-				/* UrlEncR */	"_type=code\n&c=@(\n\t'foo%0A%09bar'\n)",
-				/* MsgPack */	"82A55F74797065A4636F6465A16391A8666F6F0A09626172",
-				/* MsgPackT */	"82A174A4636F6465A16391A8666F6F0A09626172",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>code</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo_x000A__x0009_bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>code</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo_x000A__x0009_bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>code</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo_x000A__x0009_bar</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Datalist-1",
-				datalist("foo",
-					option("One"),
-					option("Two")
-				),
-				/* Json */		"{_type:'datalist',a:{id:'foo'},c:[{_type:'option',a:{value:'One'}},{_type:'option',a:{value:'Two'}}]}",
-				/* JsonT */		"{t:'datalist',a:{id:'foo'},c:[{t:'option',a:{value:'One'}},{t:'option',a:{value:'Two'}}]}",
-				/* JsonR */		"{\n\t_type: 'datalist',\n\ta: {\n\t\tid: 'foo'\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'option',\n\t\t\ta: {\n\t\t\t\tvalue: 'One'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'option',\n\t\t\ta: {\n\t\t\t\tvalue: 'Two'\n\t\t\t}\n\t\t}\n\t]\n}",
-				/* Xml */		"<datalist id='foo'><option value='One'/><option value='Two'/></datalist>",
-				/* XmlT */		"<datalist id='foo'><option value='One'/><option value='Two'/></datalist>",
-				/* XmlR */		"<datalist id='foo'>\n\t<option value='One'/>\n\t<option value='Two'/>\n</datalist>\n",
-				/* XmlNs */		"<datalist id='foo'><option value='One'/><option value='Two'/></datalist>",
-				/* Html */		"<datalist id='foo'><option value='One'></option><option value='Two'></option></datalist>",
-				/* HtmlT */		"<datalist id='foo'><option value='One'></option><option value='Two'></option></datalist>",
-				/* HtmlR */		"<datalist id='foo'>\n\t<option value='One'></option>\n\t<option value='Two'></option>\n</datalist>\n",
-				/* Uon */		"(_type=datalist,a=(id=foo),c=@((_type=option,a=(value=One)),(_type=option,a=(value=Two))))",
-				/* UonT */		"(t=datalist,a=(id=foo),c=@((t=option,a=(value=One)),(t=option,a=(value=Two))))",
-				/* UonR */		"(\n\t_type=datalist,\n\ta=(\n\t\tid=foo\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=option,\n\t\t\ta=(\n\t\t\t\tvalue=One\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=option,\n\t\t\ta=(\n\t\t\t\tvalue=Two\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=datalist&a=(id=foo)&c=@((_type=option,a=(value=One)),(_type=option,a=(value=Two)))",
-				/* UrlEncT */	"t=datalist&a=(id=foo)&c=@((t=option,a=(value=One)),(t=option,a=(value=Two)))",
-				/* UrlEncR */	"_type=datalist\n&a=(\n\tid=foo\n)\n&c=@(\n\t(\n\t\t_type=option,\n\t\ta=(\n\t\t\tvalue=One\n\t\t)\n\t),\n\t(\n\t\t_type=option,\n\t\ta=(\n\t\t\tvalue=Two\n\t\t)\n\t)\n)",
-				/* MsgPack */	"83A55F74797065A8646174616C697374A16181A26964A3666F6FA1639282A55F74797065A66F7074696F6EA16181A576616C7565A34F6E6582A55F74797065A66F7074696F6EA16181A576616C7565A354776F",
-				/* MsgPackT */	"83A174A8646174616C697374A16181A26964A3666F6FA1639282A174A66F7074696F6EA16181A576616C7565A34F6E6582A174A66F7074696F6EA16181A576616C7565A354776F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>datalist</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:id>foo</jp:id>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>option</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:value>One</jp:value>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>option</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:value>Two</jp:value>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>datalist</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:id>foo</jp:id>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>option</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:value>One</jp:value>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>option</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:value>Two</jp:value>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>datalist</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:id>foo</jp:id>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>option</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:value>One</jp:value>\n          </jp:a>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>option</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:value>Two</jp:value>\n          </jp:a>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Dl/Dt/Dd",
-				dl(
-					dt("foo"),
-					dd("bar")
-				),
-				/* Json */		"{_type:'dl',c:[{_type:'dt',c:['foo']},{_type:'dd',c:['bar']}]}",
-				/* JsonT */		"{t:'dl',c:[{t:'dt',c:['foo']},{t:'dd',c:['bar']}]}",
-				/* JsonR */		"{\n\t_type: 'dl',\n\tc: [\n\t\t{\n\t\t\t_type: 'dt',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'dd',\n\t\t\tc: [\n\t\t\t\t'bar'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				/* XmlT */		"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				/* XmlR */		"<dl>\n\t<dt>foo</dt>\n\t<dd>bar</dd>\n</dl>\n",
-				/* XmlNs */		"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				/* Html */		"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				/* HtmlT */		"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				/* HtmlR */		"<dl>\n\t<dt>foo</dt>\n\t<dd>bar</dd>\n</dl>\n",
-				/* Uon */		"(_type=dl,c=@((_type=dt,c=@(foo)),(_type=dd,c=@(bar))))",
-				/* UonT */		"(t=dl,c=@((t=dt,c=@(foo)),(t=dd,c=@(bar))))",
-				/* UonR */		"(\n\t_type=dl,\n\tc=@(\n\t\t(\n\t\t\t_type=dt,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=dd,\n\t\t\tc=@(\n\t\t\t\tbar\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=dl&c=@((_type=dt,c=@(foo)),(_type=dd,c=@(bar)))",
-				/* UrlEncT */	"t=dl&c=@((t=dt,c=@(foo)),(t=dd,c=@(bar)))",
-				/* UrlEncR */	"_type=dl\n&c=@(\n\t(\n\t\t_type=dt,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t),\n\t(\n\t\t_type=dd,\n\t\tc=@(\n\t\t\tbar\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A2646CA1639282A55F74797065A26474A16391A3666F6F82A55F74797065A26464A16391A3626172",
-				/* MsgPackT */	"82A174A2646CA1639282A174A26474A16391A3666F6F82A174A26464A16391A3626172",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>dl</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>dt</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>dd</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>dl</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>dt</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>dd</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>dl</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>dt</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>foo</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>dd</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>bar</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Del/Ins",
-				p(del("foo",btag,"bar"),ins("baz")),
-				/* Json */		"{_type:'p',c:[{_type:'del',c:['foo',{_type:'b',c:['bbb']},'bar']},{_type:'ins',c:['baz']}]}",
-				/* JsonT */		"{t:'p',c:[{t:'del',c:['foo',{t:'b',c:['bbb']},'bar']},{t:'ins',c:['baz']}]}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'del',\n\t\t\tc: [\n\t\t\t\t'foo',\n\t\t\t\t{\n\t\t\t\t\t_type: 'b',\n\t\t\t\t\tc: [\n\t\t\t\t\t\t'bbb'\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t'bar'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'ins',\n\t\t\tc: [\n\t\t\t\t'baz'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				/* XmlT */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				/* XmlR */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>\n",
-				/* XmlNs */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				/* Html */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				/* HtmlT */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				/* HtmlR */		"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>\n",
-				/* Uon */		"(_type=p,c=@((_type=del,c=@(foo,(_type=b,c=@(bbb)),bar)),(_type=ins,c=@(baz))))",
-				/* UonT */		"(t=p,c=@((t=del,c=@(foo,(t=b,c=@(bbb)),bar)),(t=ins,c=@(baz))))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=del,\n\t\t\tc=@(\n\t\t\t\tfoo,\n\t\t\t\t(\n\t\t\t\t\t_type=b,\n\t\t\t\t\tc=@(\n\t\t\t\t\t\tbbb\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tbar\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=ins,\n\t\t\tc=@(\n\t\t\t\tbaz\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@((_type=del,c=@(foo,(_type=b,c=@(bbb)),bar)),(_type=ins,c=@(baz)))",
-				/* UrlEncT */	"t=p&c=@((t=del,c=@(foo,(t=b,c=@(bbb)),bar)),(t=ins,c=@(baz)))",
-				/* UrlEncR */	"_type=p\n&c=@(\n\t(\n\t\t_type=del,\n\t\tc=@(\n\t\t\tfoo,\n\t\t\t(\n\t\t\t\t_type=b,\n\t\t\t\tc=@(\n\t\t\t\t\tbbb\n\t\t\t\t)\n\t\t\t),\n\t\t\tbar\n\t\t)\n\t),\n\t(\n\t\t_type=ins,\n\t\tc=@(\n\t\t\tbaz\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A170A1639282A55F74797065A364656CA16393A3666F6F82A55F74797065A162A16391A3626262A362617282A55F74797065A3696E73A16391A362617A",
-				/* MsgPackT */	"82A174A170A1639282A174A364656CA16393A3666F6F82A174A162A16391A3626262A362617282A174A3696E73A16391A362617A",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>del</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>ins</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>del</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>ins</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>del</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>foo</rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>b</jp:_type>\n                <jp:c>\n                  <rdf:Seq>\n                    <rdf:li>bbb</rdf:li>\n                  </rdf:Seq>\n                </jp:c>\n              </rdf:li>\n              <rdf:li>bar</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>ins</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>baz</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Dfn",
-				p(dfn("foo")),
-				/* Json */		"{_type:'p',c:[{_type:'dfn',c:['foo']}]}",
-				/* JsonT */		"{t:'p',c:[{t:'dfn',c:['foo']}]}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'dfn',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<p><dfn>foo</dfn></p>",
-				/* XmlT */		"<p><dfn>foo</dfn></p>",
-				/* XmlR */		"<p><dfn>foo</dfn></p>\n",
-				/* XmlNs */		"<p><dfn>foo</dfn></p>",
-				/* Html */		"<p><dfn>foo</dfn></p>",
-				/* HtmlT */		"<p><dfn>foo</dfn></p>",
-				/* HtmlR */		"<p><dfn>foo</dfn></p>\n",
-				/* Uon */		"(_type=p,c=@((_type=dfn,c=@(foo))))",
-				/* UonT */		"(t=p,c=@((t=dfn,c=@(foo))))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=dfn,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@((_type=dfn,c=@(foo)))",
-				/* UrlEncT */	"t=p&c=@((t=dfn,c=@(foo)))",
-				/* UrlEncR */	"_type=p\n&c=@(\n\t(\n\t\t_type=dfn,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A170A1639182A55F74797065A364666EA16391A3666F6F",
-				/* MsgPackT */	"82A174A170A1639182A174A364666EA16391A3666F6F",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>dfn</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>dfn</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>dfn</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>foo</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Div",
-				div("foo",btag,"bar"),
-				/* Json */		"{_type:'div',c:['foo',{_type:'b',c:['bbb']},'bar']}",
-				/* JsonT */		"{t:'div',c:['foo',{t:'b',c:['bbb']},'bar']}",
-				/* JsonR */		"{\n\t_type: 'div',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'b',\n\t\t\tc: [\n\t\t\t\t'bbb'\n\t\t\t]\n\t\t},\n\t\t'bar'\n\t]\n}",
-				/* Xml */		"<div>foo<b>bbb</b>bar</div>",
-				/* XmlT */		"<div>foo<b>bbb</b>bar</div>",
-				/* XmlR */		"<div>foo<b>bbb</b>bar</div>\n",
-				/* XmlNs */		"<div>foo<b>bbb</b>bar</div>",
-				/* Html */		"<div>foo<b>bbb</b>bar</div>",
-				/* HtmlT */		"<div>foo<b>bbb</b>bar</div>",
-				/* HtmlR */		"<div>foo<b>bbb</b>bar</div>\n",
-				/* Uon */		"(_type=div,c=@(foo,(_type=b,c=@(bbb)),bar))",
-				/* UonT */		"(t=div,c=@(foo,(t=b,c=@(bbb)),bar))",
-				/* UonR */		"(\n\t_type=div,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=b,\n\t\t\tc=@(\n\t\t\t\tbbb\n\t\t\t)\n\t\t),\n\t\tbar\n\t)\n)",
-				/* UrlEnc */	"_type=div&c=@(foo,(_type=b,c=@(bbb)),bar)",
-				/* UrlEncT */	"t=div&c=@(foo,(t=b,c=@(bbb)),bar)",
-				/* UrlEncR */	"_type=div\n&c=@(\n\tfoo,\n\t(\n\t\t_type=b,\n\t\tc=@(\n\t\t\tbbb\n\t\t)\n\t),\n\tbar\n)",
-				/* MsgPack */	"82A55F74797065A3646976A16393A3666F6F82A55F74797065A162A16391A3626262A3626172",
-				/* MsgPackT */	"82A174A3646976A16393A3666F6F82A174A162A16391A3626262A3626172",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>div</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>div</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>div</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>b</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>bbb</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li>bar</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Em",
-				p("foo",em("bar"),"baz"),
-				/* Json */		"{_type:'p',c:['foo',{_type:'em',c:['bar']},'baz']}",
-				/* JsonT */		"{t:'p',c:['foo',{t:'em',c:['bar']},'baz']}",
-				/* JsonR */		"{\n\t_type: 'p',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'em',\n\t\t\tc: [\n\t\t\t\t'bar'\n\t\t\t]\n\t\t},\n\t\t'baz'\n\t]\n}",
-				/* Xml */		"<p>foo<em>bar</em>baz</p>",
-				/* XmlT */		"<p>foo<em>bar</em>baz</p>",
-				/* XmlR */		"<p>foo<em>bar</em>baz</p>\n",
-				/* XmlNs */		"<p>foo<em>bar</em>baz</p>",
-				/* Html */		"<p>foo<em>bar</em>baz</p>",
-				/* HtmlT */		"<p>foo<em>bar</em>baz</p>",
-				/* HtmlR */		"<p>foo<em>bar</em>baz</p>\n",
-				/* Uon */		"(_type=p,c=@(foo,(_type=em,c=@(bar)),baz))",
-				/* UonT */		"(t=p,c=@(foo,(t=em,c=@(bar)),baz))",
-				/* UonR */		"(\n\t_type=p,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=em,\n\t\t\tc=@(\n\t\t\t\tbar\n\t\t\t)\n\t\t),\n\t\tbaz\n\t)\n)",
-				/* UrlEnc */	"_type=p&c=@(foo,(_type=em,c=@(bar)),baz)",
-				/* UrlEncT */	"t=p&c=@(foo,(t=em,c=@(bar)),baz)",
-				/* UrlEncR */	"_type=p\n&c=@(\n\tfoo,\n\t(\n\t\t_type=em,\n\t\tc=@(\n\t\t\tbar\n\t\t)\n\t),\n\tbaz\n)",
-				/* MsgPack */	"82A55F74797065A170A16393A3666F6F82A55F74797065A2656DA16391A3626172A362617A",
-				/* MsgPackT */	"82A174A170A16393A3666F6F82A174A2656DA16391A3626172A362617A",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>em</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>em</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>p</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li>foo</rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>em</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>bar</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n        <rdf:li>baz</rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Embed",
-				embed("foo.swf"),
-				/* Json */		"{_type:'embed',a:{src:'foo.swf'}}",
-				/* JsonT */		"{t:'embed',a:{src:'foo.swf'}}",
-				/* JsonR */		"{\n\t_type: 'embed',\n\ta: {\n\t\tsrc: 'foo.swf'\n\t}\n}",
-				/* Xml */		"<embed src='foo.swf'/>",
-				/* XmlT */		"<embed src='foo.swf'/>",
-				/* XmlR */		"<embed src='foo.swf'/>\n",
-				/* XmlNs */		"<embed src='foo.swf'/>",
-				/* Html */		"<embed src='foo.swf'/>",
-				/* HtmlT */		"<embed src='foo.swf'/>",
-				/* HtmlR */		"<embed src='foo.swf'/>\n",
-				/* Uon */		"(_type=embed,a=(src=foo.swf))",
-				/* UonT */		"(t=embed,a=(src=foo.swf))",
-				/* UonR */		"(\n\t_type=embed,\n\ta=(\n\t\tsrc=foo.swf\n\t)\n)",
-				/* UrlEnc */	"_type=embed&a=(src=foo.swf)",
-				/* UrlEncT */	"t=embed&a=(src=foo.swf)",
-				/* UrlEncR */	"_type=embed\n&a=(\n\tsrc=foo.swf\n)",
-				/* MsgPack */	"82A55F74797065A5656D626564A16181A3737263A7666F6F2E737766",
-				/* MsgPackT */	"82A174A5656D626564A16181A3737263A7666F6F2E737766",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>embed</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.swf</jp:src>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>embed</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.swf</jp:src>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>embed</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:src>foo.swf</jp:src>\n    </jp:a>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Form/Fieldset/Legend/Input/Keygen/Label",
-				form("bar",
-					fieldset(
-						legend("foo:"),
-						"Name:", input("text"), br(),
-						"Email:", input("text"), br(),
-						"X:", keygen().name("X"),
-						label("label")._for("Name")
-					)
-				),
-				/* Json */		"{_type:'form',a:{action:'bar'},c:[{_type:'fieldset',c:[{_type:'legend',c:['foo:']},'Name:',{_type:'input',a:{type:'text'}},{_type:'br'},'Email:',{_type:'input',a:{type:'text'}},{_type:'br'},'X:',{_type:'keygen',a:{name:'X'}},{_type:'label',a:{'for':'Name'},c:['label']}]}]}",
-				/* JsonT */		"{t:'form',a:{action:'bar'},c:[{t:'fieldset',c:[{t:'legend',c:['foo:']},'Name:',{t:'input',a:{type:'text'}},{t:'br'},'Email:',{t:'input',a:{type:'text'}},{t:'br'},'X:',{t:'keygen',a:{name:'X'}},{t:'label',a:{'for':'Name'},c:['label']}]}]}",
-				/* JsonR */		"{\n\t_type: 'form',\n\ta: {\n\t\taction: 'bar'\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'fieldset',\n\t\t\tc: [\n\t\t\t\t{\n\t\t\t\t\t_type: 'legend',\n\t\t\t\t\tc: [\n\t\t\t\t\t\t'foo:'\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t'Name:',\n\t\t\t\t{\n\t\t\t\t\t_type: 'input',\n\t\t\t\t\ta: {\n\t\t\t\t\t\ttype: 'text'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t_type: 'br'\n\t\t\t\t},\n\t\t\t\t'Email:',\n\t\t\t\t{\n\t\t\t\t\t_type: 'input',\n\t\t\t\t\ta: {\n\t\t\t\t\t\ttype: 'text'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t_type: 'br'\n\t\t\t\t},\n\t\t\t\t'X:',\n\t\t\t\t{\n\t\t\t\t\t_type: 'keygen',\n\t\t\t\t\ta: {\n\t\t\t\t\t\tname: 'X'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t_type: 'label',\n\t\t\t\t\ta: {\n\t\t\t\t\t\t'for': 'Name'\n\t\t\t\t\t},\n\t\t\t\t\tc: [\n\t\t\t\t\t\t'label'\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>",
-				/* XmlT */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>",
-				/* XmlR */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>\n",
-				/* XmlNs */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>",
-				/* Html */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>",
-				/* HtmlT */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>",
-				/* HtmlR */		"<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>\n",
-				/* Uon */		"(_type=form,a=(action=bar),c=@((_type=fieldset,c=@((_type=legend,c=@(foo:)),Name:,(_type=input,a=(type=text)),(_type=br),Email:,(_type=input,a=(type=text)),(_type=br),X:,(_type=keygen,a=(name=X)),(_type=label,a=(for=Name),c=@(label))))))",
-				/* UonT */		"(t=form,a=(action=bar),c=@((t=fieldset,c=@((t=legend,c=@(foo:)),Name:,(t=input,a=(type=text)),(t=br),Email:,(t=input,a=(type=text)),(t=br),X:,(t=keygen,a=(name=X)),(t=label,a=(for=Name),c=@(label))))))",
-				/* UonR */		"(\n\t_type=form,\n\ta=(\n\t\taction=bar\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=fieldset,\n\t\t\tc=@(\n\t\t\t\t(\n\t\t\t\t\t_type=legend,\n\t\t\t\t\tc=@(\n\t\t\t\t\t\tfoo:\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tName:,\n\t\t\t\t(\n\t\t\t\t\t_type=input,\n\t\t\t\t\ta=(\n\t\t\t\t\t\ttype=text\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t(\n\t\t\t\t\t_type=br\n\t\t\t\t),\n\t\t\t\tEmail:,\n\t\t\t\t(\n\t\t\t\t\t_type=input,\n\t\t\t\t\ta=(\n\t\t\t\t\t\ttype=text\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t(\n\t\t\t\t\t_type=br\n\t\t\t\t),\n\t\t\t\tX:,\n\t\t\t\t(\n\t\t\t\t\t_type=keygen,\n\t\t\t\t\ta=(\n\t\t\t\t\t\tname=X\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t(\n\t\t\t\t\t_type=label,\n\t\t\t\t\ta=(\n\t\t\t\t\t\tfor=Name\n\t\t\t\t\t),\n\t\t\t\t\tc=@(\n\t\t\t\t\t\tlabel\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=form&a=(action=bar)&c=@((_type=fieldset,c=@((_type=legend,c=@(foo:)),Name:,(_type=input,a=(type=text)),(_type=br),Email:,(_type=input,a=(type=text)),(_type=br),X:,(_type=keygen,a=(name=X)),(_type=label,a=(for=Name),c=@(label)))))",
-				/* UrlEncT */	"t=form&a=(action=bar)&c=@((t=fieldset,c=@((t=legend,c=@(foo:)),Name:,(t=input,a=(type=text)),(t=br),Email:,(t=input,a=(type=text)),(t=br),X:,(t=keygen,a=(name=X)),(t=label,a=(for=Name),c=@(label)))))",
-				/* UrlEncR */	"_type=form\n&a=(\n\taction=bar\n)\n&c=@(\n\t(\n\t\t_type=fieldset,\n\t\tc=@(\n\t\t\t(\n\t\t\t\t_type=legend,\n\t\t\t\tc=@(\n\t\t\t\t\tfoo:\n\t\t\t\t)\n\t\t\t),\n\t\t\tName:,\n\t\t\t(\n\t\t\t\t_type=input,\n\t\t\t\ta=(\n\t\t\t\t\ttype=text\n\t\t\t\t)\n\t\t\t),\n\t\t\t(\n\t\t\t\t_type=br\n\t\t\t),\n\t\t\tEmail:,\n\t\t\t(\n\t\t\t\t_type=input,\n\t\t\t\ta=(\n\t\t\t\t\ttype=text\n\t\t\t\t)\n\t\t\t),\n\t\t\t(\n\t\t\t\t_type=br\n\t\t\t),\n\t\t\tX:,\n\t\t\t(\n\t\t\t\t_type=keygen,\n\t\t\t\ta=(\n\t\t\t\t\tname=X\n\t\t\t\t)\n\t\t\t),\n\t\t\t(\n\t\t\t\t_type=label,\n\t\t\t\ta=(\n\t\t\t\t\tfor=Name\n\t\t\t\t),\n\t\t\t\tc=@(\n\t\t\t\t\tlabel\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* MsgPack */	"83A55F74797065A4666F726DA16181A6616374696F6EA3626172A1639182A55F74797065A86669656C64736574A1639A82A55F74797065A66C6567656E64A16391A4666F6F3AA54E616D653A82A55F74797065A5696E707574A16181A474797065A47465787481A55F74797065A26272A6456D61696C3A82A55F74797065A5696E707574A16181A474797065A47465787481A55F74797065A26272A2583A82A55F74797065A66B657967656EA16181A46E616D65A15883A55F74797065A56C6162656CA16181A3666F72A44E616D65A16391A56C6162656C",
-				/* MsgPackT */	"83A174A4666F726DA16181A6616374696F6EA3626172A1639182A174A86669656C64736574A1639A82A174A66C6567656E64A16391A4666F6F3AA54E616D653A82A174A5696E707574A16181A474797065A47465787481A174A26272A6456D61696C3A82A174A5696E707574A16181A474797065A47465787481A174A26272A2583A82A174A66B657967656EA16181A46E616D65A15883A174A56C6162656CA16181A3666F72A44E616D65A16391A56C6162656C",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>form</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:action>bar</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>fieldset</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>legend</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo:</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>Name:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>br</jp:_type>\n</rdf:li>\n<rdf:li>Email:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>br</jp:_type>\n</rdf:li>\n<rdf:li>X:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>keygen</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:name>X</jp:name
 >\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>label</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:for>Name</jp:for>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>label</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>form</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:action>bar</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>fieldset</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>legend</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo:</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>Name:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>br</jp:t>\n</rdf:li>\n<rdf:li>Email:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>br</jp:t>\n</rdf:li>\n<rdf:li>X:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>keygen</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:name>X</jp:name>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t
 >label</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:for>Name</jp:for>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>label</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>form</jp:_type>\n    <jp:a rdf:parseType='Resource'>\n      <jp:action>bar</jp:action>\n    </jp:a>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>fieldset</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>legend</jp:_type>\n                <jp:c>\n                  <rdf:Seq>\n                    <rdf:li>foo:</rdf:li>\n                  </rdf:Seq>\n                </jp:c>\n              </rdf:li>\n              <rdf:li>Name:</rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>input</jp:_type>\n                <jp:a rdf:parseType='Resource'>\n                  <jp:type>text</jp:type>\n                </jp:a>\n              </rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>br</jp:_type>\n              </rdf:li>\n              <rdf:
 li>Email:</rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>input</jp:_type>\n                <jp:a rdf:parseType='Resource'>\n                  <jp:type>text</jp:type>\n                </jp:a>\n              </rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>br</jp:_type>\n              </rdf:li>\n              <rdf:li>X:</rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>keygen</jp:_type>\n                <jp:a rdf:parseType='Resource'>\n                  <jp:name>X</jp:name>\n                </jp:a>\n              </rdf:li>\n              <rdf:li rdf:parseType='Resource'>\n                <jp:_type>label</jp:_type>\n                <jp:a rdf:parseType='Resource'>\n                  <jp:for>Name</jp:for>\n                </jp:a>\n                <jp:c>\n                  <rdf:Seq>\n                    <rdf:li>label</rdf:li>\n                  </rdf:Seq>\n                </jp:c>\
 n              </rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"Figure/Figcaption/Img",
-				figure(
-					img("foo.png").alt("foo").width(100).height(200),
-					figcaption("The caption")
-				),
-				/* Json */		"{_type:'figure',c:[{_type:'img',a:{src:'foo.png',alt:'foo',width:100,height:200}},{_type:'figcaption',c:['The caption']}]}",
-				/* JsonT */		"{t:'figure',c:[{t:'img',a:{src:'foo.png',alt:'foo',width:100,height:200}},{t:'figcaption',c:['The caption']}]}",
-				/* JsonR */		"{\n\t_type: 'figure',\n\tc: [\n\t\t{\n\t\t\t_type: 'img',\n\t\t\ta: {\n\t\t\t\tsrc: 'foo.png',\n\t\t\t\talt: 'foo',\n\t\t\t\twidth: 100,\n\t\t\t\theight: 200\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'figcaption',\n\t\t\tc: [\n\t\t\t\t'The caption'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<figure><img src='foo.png' alt='foo' width='100' height='200'/><figcaption>The caption</figcaption></figure>",
-				/* XmlT */		"<figure><img src='foo.png' alt='foo' width='100' height='200'/><figcaption>The caption</figcaption></figure>",
-				/* XmlR */		"<figure>\n\t<img src='foo.png' alt='foo' width='100' height='200'/>\n\t<figcaption>The caption</figcaption>\n</figure>\n",
-				/* XmlNs */		"<figure><img src='foo.png' alt='foo' width='100' height='200'/><figcaption>The caption</figcaption></figure>",
-				/* Html */		"<figure><img src='foo.png' alt='foo' width='100' height='200'/><figcaption>The caption</figcaption></figure>",
-				/* HtmlT */		"<figure><img src='foo.png' alt='foo' width='100' height='200'/><figcaption>The caption</figcaption></figure>",
-				/* HtmlR */		"<figure>\n\t<img src='foo.png' alt='foo' width='100' height='200'/>\n\t<figcaption>The caption</figcaption>\n</figure>\n",
-				/* Uon */		"(_type=figure,c=@((_type=img,a=(src=foo.png,alt=foo,width=100,height=200)),(_type=figcaption,c=@('The caption'))))",
-				/* UonT */		"(t=figure,c=@((t=img,a=(src=foo.png,alt=foo,width=100,height=200)),(t=figcaption,c=@('The caption'))))",
-				/* UonR */		"(\n\t_type=figure,\n\tc=@(\n\t\t(\n\t\t\t_type=img,\n\t\t\ta=(\n\t\t\t\tsrc=foo.png,\n\t\t\t\talt=foo,\n\t\t\t\twidth=100,\n\t\t\t\theight=200\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=figcaption,\n\t\t\tc=@(\n\t\t\t\t'The caption'\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=figure&c=@((_type=img,a=(src=foo.png,alt=foo,width=100,height=200)),(_type=figcaption,c=@('The+caption')))",
-				/* UrlEncT */	"t=figure&c=@((t=img,a=(src=foo.png,alt=foo,width=100,height=200)),(t=figcaption,c=@('The+caption')))",
-				/* UrlEncR */	"_type=figure\n&c=@(\n\t(\n\t\t_type=img,\n\t\ta=(\n\t\t\tsrc=foo.png,\n\t\t\talt=foo,\n\t\t\twidth=100,\n\t\t\theight=200\n\t\t)\n\t),\n\t(\n\t\t_type=figcaption,\n\t\tc=@(\n\t\t\t'The+caption'\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A6666967757265A1639282A55F74797065A3696D67A16184A3737263A7666F6F2E706E67A3616C74A3666F6FA5776964746864A6686569676874D100C882A55F74797065AA66696763617074696F6EA16391AB5468652063617074696F6E",
-				/* MsgPackT */	"82A174A6666967757265A1639282A174A3696D67A16184A3737263A7666F6F2E706E67A3616C74A3666F6FA5776964746864A6686569676874D100C882A174AA66696763617074696F6EA16391AB5468652063617074696F6E",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>figure</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>img</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.png</jp:src>\n<jp:alt>foo</jp:alt>\n<jp:width>100</jp:width>\n<jp:height>200</jp:height>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>figcaption</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>The caption</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:t>figure</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>img</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.png</jp:src>\n<jp:alt>foo</jp:alt>\n<jp:width>100</jp:width>\n<jp:height>200</jp:height>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>figcaption</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>The caption</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:_type>figure</jp:_type>\n    <jp:c>\n      <rdf:Seq>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>img</jp:_type>\n          <jp:a rdf:parseType='Resource'>\n            <jp:src>foo.png</jp:src>\n            <jp:alt>foo</jp:alt>\n            <jp:width>100</jp:width>\n            <jp:height>200</jp:height>\n          </jp:a>\n        </rdf:li>\n        <rdf:li rdf:parseType='Resource'>\n          <jp:_type>figcaption</jp:_type>\n          <jp:c>\n            <rdf:Seq>\n              <rdf:li>The caption</rdf:li>\n            </rdf:Seq>\n          </jp:c>\n        </rdf:li>\n      </rdf:Seq>\n    </jp:c>\n  </rdf:Description>\n</rdf:RDF>\n",
-			},
-			{
-				"H1/H2/H3/H4/H5/H6",
-				div(
-					h1("One"),h2("Two"),h3("Three"),h4("Four"),h5("Five"),h6("Six")
-				),
-				/* Json */		"{_type:'div',c:[{_type:'h1',c:['One']},{_type:'h2',c:['Two']},{_type:'h3',c:['Three']},{_type:'h4',c:['Four']},{_type:'h5',c:['Five']},{_type:'h6',c:['Six']}]}",
-				/* JsonT */		"{t:'div',c:[{t:'h1',c:['One']},{t:'h2',c:['Two']},{t:'h3',c:['Three']},{t:'h4',c:['Four']},{t:'h5',c:['Five']},{t:'h6',c:['Six']}]}",
-				/* JsonR */		"{\n\t_type: 'div',\n\tc: [\n\t\t{\n\t\t\t_type: 'h1',\n\t\t\tc: [\n\t\t\t\t'One'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'h2',\n\t\t\tc: [\n\t\t\t\t'Two'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'h3',\n\t\t\tc: [\n\t\t\t\t'Three'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'h4',\n\t\t\tc: [\n\t\t\t\t'Four'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'h5',\n\t\t\tc: [\n\t\t\t\t'Five'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'h6',\n\t\t\tc: [\n\t\t\t\t'Six'\n\t\t\t]\n\t\t}\n\t]\n}",
-				/* Xml */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>",
-				/* XmlT */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>",
-				/* XmlR */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>\n",
-				/* XmlNs */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>",
-				/* Html */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>",
-				/* HtmlT */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>",
-				/* HtmlR */		"<div><h1>One</h1><h2>Two</h2><h3>Three</h3><h4>Four</h4><h5>Five</h5><h6>Six</h6></div>\n",
-				/* Uon */		"(_type=div,c=@((_type=h1,c=@(One)),(_type=h2,c=@(Two)),(_type=h3,c=@(Three)),(_type=h4,c=@(Four)),(_type=h5,c=@(Five)),(_type=h6,c=@(Six))))",
-				/* UonT */		"(t=div,c=@((t=h1,c=@(One)),(t=h2,c=@(Two)),(t=h3,c=@(Three)),(t=h4,c=@(Four)),(t=h5,c=@(Five)),(t=h6,c=@(Six))))",
-				/* UonR */		"(\n\t_type=div,\n\tc=@(\n\t\t(\n\t\t\t_type=h1,\n\t\t\tc=@(\n\t\t\t\tOne\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=h2,\n\t\t\tc=@(\n\t\t\t\tTwo\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=h3,\n\t\t\tc=@(\n\t\t\t\tThree\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=h4,\n\t\t\tc=@(\n\t\t\t\tFour\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=h5,\n\t\t\tc=@(\n\t\t\t\tFive\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=h6,\n\t\t\tc=@(\n\t\t\t\tSix\n\t\t\t)\n\t\t)\n\t)\n)",
-				/* UrlEnc */	"_type=div&c=@((_type=h1,c=@(One)),(_type=h2,c=@(Two)),(_type=h3,c=@(Three)),(_type=h4,c=@(Four)),(_type=h5,c=@(Five)),(_type=h6,c=@(Six)))",
-				/* UrlEncT */	"t=div&c=@((t=h1,c=@(One)),(t=h2,c=@(Two)),(t=h3,c=@(Three)),(t=h4,c=@(Four)),(t=h5,c=@(Five)),(t=h6,c=@(Six)))",
-				/* UrlEncR */	"_type=div\n&c=@(\n\t(\n\t\t_type=h1,\n\t\tc=@(\n\t\t\tOne\n\t\t)\n\t),\n\t(\n\t\t_type=h2,\n\t\tc=@(\n\t\t\tTwo\n\t\t)\n\t),\n\t(\n\t\t_type=h3,\n\t\tc=@(\n\t\t\tThree\n\t\t)\n\t),\n\t(\n\t\t_type=h4,\n\t\tc=@(\n\t\t\tFour\n\t\t)\n\t),\n\t(\n\t\t_type=h5,\n\t\tc=@(\n\t\t\tFive\n\t\t)\n\t),\n\t(\n\t\t_type=h6,\n\t\tc=@(\n\t\t\tSix\n\t\t)\n\t)\n)",
-				/* MsgPack */	"82A55F74797065A3646976A1639682A55F74797065A26831A16391A34F6E6582A55F74797065A26832A16391A354776F82A55F74797065A26833A16391A5546872656582A55F74797065A26834A16391A4466F757282A55F74797065A26835A16391A44669766582A55F74797065A26836A16391A3536978",
-				/* MsgPackT */	"82A174A3646976A1639682A174A26831A16391A34F6E6582A174A26832A16391A354776F82A174A26833A16391A5546872656582A174A26834A16391A4466F757282A174A26835A16391A44669766582A174A26836A16391A3536978",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:_type>div</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>h1</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>One</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>h2</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>Two</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>h3</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>Three</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\

<TRUNCATED>

[03/10] incubator-juneau git commit: More JUnits, bug fixes.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java b/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
index b804241..180ed34 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapComboTest.java
@@ -12,6 +12,9 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.TestUtils.*;
+
+import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -43,502 +46,660 @@ public class CalendarSwapComboTest extends ComboTest {
 	public static Collection<Object[]> getParameters() {
 		return Arrays.asList(new Object[][] {
 			{	/* 0 */
-				"CalendarSwap.ToString/singleDate",
-				singleDate,
-				CalendarSwap.ToString.class,
-				/* Json */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* JsonT */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* JsonR */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* Xml */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* XmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* XmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>\n",
-				/* XmlNs */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* Html */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* HtmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* HtmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
-				/* Uon */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* UonT */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* UonR */		"'Sun Mar 03 10:11:12 PST 1901'",
-				/* UrlEnc */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncT */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncR */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
-				/* MsgPack */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* MsgPackT */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar>(
+					"CalendarSwap.ToString/singleDate",
+					Calendar.class,
+					singleDate,
+					CalendarSwap.ToString.class,
+					/* Json */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* JsonT */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* JsonR */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* Xml */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* XmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* XmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>\n",
+					/* XmlNs */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* Html */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* HtmlT */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* HtmlR */		"<string>Sun Mar 03 10:11:12 PST 1901</string>",
+					/* Uon */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* UonT */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* UonR */		"'Sun Mar 03 10:11:12 PST 1901'",
+					/* UrlEnc */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncT */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncR */	"_value='Sun+Mar+03+10:11:12+PST+1901'",
+					/* MsgPack */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* MsgPackT */	"BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar o) {
+						assertType(Calendar.class, o);
+					}
+				}
 			},
 			{	/* 1 */
-				"CalendarSwap.ToString/dateArray",
-				dateArray,
-				CalendarSwap.ToString.class,
-				/* Json */		"['Sun Mar 03 10:11:12 PST 1901']",
-				/* JsonT */		"['Sun Mar 03 10:11:12 PST 1901']",
-				/* JsonR */		"[\n\t'Sun Mar 03 10:11:12 PST 1901'\n]",
-				/* Xml */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
-				/* XmlT */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
-				/* XmlR */		"<array>\n\t<string>Sun Mar 03 10:11:12 PST 1901</string>\n</array>\n",
-				/* XmlNs */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
-				/* Html */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
-				/* HtmlT */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>Sun Mar 03 10:11:12 PST 1901</li>\n</ul>\n",
-				/* Uon */		"@('Sun Mar 03 10:11:12 PST 1901')",
-				/* UonT */		"@('Sun Mar 03 10:11:12 PST 1901')",
-				/* UonR */		"@(\n\t'Sun Mar 03 10:11:12 PST 1901'\n)",
-				/* UrlEnc */	"0='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncT */	"0='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncR */	"0='Sun+Mar+03+10:11:12+PST+1901'",
-				/* MsgPack */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* MsgPackT */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar[]>(
+					"CalendarSwap.ToString/dateArray",
+					Calendar[].class,
+					dateArray,
+					CalendarSwap.ToString.class,
+					/* Json */		"['Sun Mar 03 10:11:12 PST 1901']",
+					/* JsonT */		"['Sun Mar 03 10:11:12 PST 1901']",
+					/* JsonR */		"[\n\t'Sun Mar 03 10:11:12 PST 1901'\n]",
+					/* Xml */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+					/* XmlT */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+					/* XmlR */		"<array>\n\t<string>Sun Mar 03 10:11:12 PST 1901</string>\n</array>\n",
+					/* XmlNs */		"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+					/* Html */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
+					/* HtmlT */		"<ul><li>Sun Mar 03 10:11:12 PST 1901</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>Sun Mar 03 10:11:12 PST 1901</li>\n</ul>\n",
+					/* Uon */		"@('Sun Mar 03 10:11:12 PST 1901')",
+					/* UonT */		"@('Sun Mar 03 10:11:12 PST 1901')",
+					/* UonR */		"@(\n\t'Sun Mar 03 10:11:12 PST 1901'\n)",
+					/* UrlEnc */	"0='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncT */	"0='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncR */	"0='Sun+Mar+03+10:11:12+PST+1901'",
+					/* MsgPack */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* MsgPackT */	"91BC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar[] o) {
+						assertType(Calendar.class, o[0]);
+					}
+				}
 			},
 			{	/* 2 */
-				"CalendarSwap.ToString",
-				dateMap,
-				CalendarSwap.ToString.class,
-				/* Json */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
-				/* JsonT */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
-				/* JsonR */		"{\n\tfoo: 'Sun Mar 03 10:11:12 PST 1901'\n}",
-				/* Xml */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
-				/* XmlT */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>Sun Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 1901</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
-				/* UonT */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
-				/* UonR */		"(\n\tfoo='Sun Mar 03 10:11:12 PST 1901'\n)",
-				/* UrlEnc */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncT */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
-				/* UrlEncR */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
-				/* MsgPack */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* MsgPackT */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"CalendarSwap.ToString",
+					getType(Map.class,String.class,Calendar.class),
+					dateMap,
+					CalendarSwap.ToString.class,
+					/* Json */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
+					/* JsonT */		"{foo:'Sun Mar 03 10:11:12 PST 1901'}",
+					/* JsonR */		"{\n\tfoo: 'Sun Mar 03 10:11:12 PST 1901'\n}",
+					/* Xml */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+					/* XmlT */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>Sun Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 1901</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
+					/* UonT */		"(foo='Sun Mar 03 10:11:12 PST 1901')",
+					/* UonR */		"(\n\tfoo='Sun Mar 03 10:11:12 PST 1901'\n)",
+					/* UrlEnc */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncT */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
+					/* UrlEncR */	"foo='Sun+Mar+03+10:11:12+PST+1901'",
+					/* MsgPack */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* MsgPackT */	"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Calendar.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 3 */
-				"CalendarSwap.ISO8601DT/singleDate",
-				singleDate,
-				CalendarSwap.ISO8601DT.class,
-				/* Json */		"'1901-03-03T10:11:12-08:00'",
-				/* JsonT */		"'1901-03-03T10:11:12-08:00'",
-				/* JsonR */		"'1901-03-03T10:11:12-08:00'",
-				/* Xml */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* XmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* XmlR */		"<string>1901-03-03T10:11:12-08:00</string>\n",
-				/* XmlNs */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* Html */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* HtmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* HtmlR */		"<string>1901-03-03T10:11:12-08:00</string>",
-				/* Uon */		"1901-03-03T10:11:12-08:00",
-				/* UonT */		"1901-03-03T10:11:12-08:00",
-				/* UonR */		"1901-03-03T10:11:12-08:00",
-				/* UrlEnc */	"_value=1901-03-03T10:11:12-08:00",
-				/* UrlEncT */	"_value=1901-03-03T10:11:12-08:00",
-				/* UrlEncR */	"_value=1901-03-03T10:11:12-08:00",
-				/* MsgPack */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* MsgPackT */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>1901-03-03T10:11:12-08:00</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar>(
+					"CalendarSwap.ISO8601DT/singleDate",
+					Calendar.class,
+					singleDate,
+					CalendarSwap.ISO8601DT.class,
+					/* Json */		"'1901-03-03T10:11:12-08:00'",
+					/* JsonT */		"'1901-03-03T10:11:12-08:00'",
+					/* JsonR */		"'1901-03-03T10:11:12-08:00'",
+					/* Xml */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* XmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* XmlR */		"<string>1901-03-03T10:11:12-08:00</string>\n",
+					/* XmlNs */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* Html */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* HtmlT */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* HtmlR */		"<string>1901-03-03T10:11:12-08:00</string>",
+					/* Uon */		"1901-03-03T10:11:12-08:00",
+					/* UonT */		"1901-03-03T10:11:12-08:00",
+					/* UonR */		"1901-03-03T10:11:12-08:00",
+					/* UrlEnc */	"_value=1901-03-03T10:11:12-08:00",
+					/* UrlEncT */	"_value=1901-03-03T10:11:12-08:00",
+					/* UrlEncR */	"_value=1901-03-03T10:11:12-08:00",
+					/* MsgPack */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* MsgPackT */	"B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>1901-03-03T10:11:12-08:00</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar o) {
+						assertType(Calendar.class, o);
+					}
+				}
 			},
 			{	/* 4 */
-				"CalendarSwap.ISO8601DT/dateArray",
-				dateArray,
-				CalendarSwap.ISO8601DT.class,
-				/* Json */		"['1901-03-03T10:11:12-08:00']",
-				/* JsonT */		"['1901-03-03T10:11:12-08:00']",
-				/* JsonR */		"[\n\t'1901-03-03T10:11:12-08:00'\n]",
-				/* Xml */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-				/* XmlT */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-				/* XmlR */		"<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
-				/* XmlNs */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-				/* Html */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
-				/* HtmlT */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
-				/* Uon */		"@(1901-03-03T10:11:12-08:00)",
-				/* UonT */		"@(1901-03-03T10:11:12-08:00)",
-				/* UonR */		"@(\n\t1901-03-03T10:11:12-08:00\n)",
-				/* UrlEnc */	"0=1901-03-03T10:11:12-08:00",
-				/* UrlEncT */	"0=1901-03-03T10:11:12-08:00",
-				/* UrlEncR */	"0=1901-03-03T10:11:12-08:00",
-				/* MsgPack */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* MsgPackT */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar[]>(
+					"CalendarSwap.ISO8601DT/dateArray",
+					Calendar[].class,
+					dateArray,
+					CalendarSwap.ISO8601DT.class,
+					/* Json */		"['1901-03-03T10:11:12-08:00']",
+					/* JsonT */		"['1901-03-03T10:11:12-08:00']",
+					/* JsonR */		"[\n\t'1901-03-03T10:11:12-08:00'\n]",
+					/* Xml */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+					/* XmlT */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+					/* XmlR */		"<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
+					/* XmlNs */		"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+					/* Html */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+					/* HtmlT */		"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
+					/* Uon */		"@(1901-03-03T10:11:12-08:00)",
+					/* UonT */		"@(1901-03-03T10:11:12-08:00)",
+					/* UonR */		"@(\n\t1901-03-03T10:11:12-08:00\n)",
+					/* UrlEnc */	"0=1901-03-03T10:11:12-08:00",
+					/* UrlEncT */	"0=1901-03-03T10:11:12-08:00",
+					/* UrlEncR */	"0=1901-03-03T10:11:12-08:00",
+					/* MsgPack */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* MsgPackT */	"91B9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar[] o) {
+						assertType(Calendar.class, o[0]);
+					}
+				}
 			},
 			{	/* 5 */
-				"CalendarSwap.ISO8601DT/dateMap",
-				dateMap,
-				CalendarSwap.ISO8601DT.class,
-				/* Json */		"{foo:'1901-03-03T10:11:12-08:00'}",
-				/* JsonT */		"{foo:'1901-03-03T10:11:12-08:00'}",
-				/* JsonR */		"{\n\tfoo: '1901-03-03T10:11:12-08:00'\n}",
-				/* Xml */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-				/* XmlT */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=1901-03-03T10:11:12-08:00)",
-				/* UonT */		"(foo=1901-03-03T10:11:12-08:00)",
-				/* UonR */		"(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
-				/* UrlEnc */	"foo=1901-03-03T10:11:12-08:00",
-				/* UrlEncT */	"foo=1901-03-03T10:11:12-08:00",
-				/* UrlEncR */	"foo=1901-03-03T10:11:12-08:00",
-				/* MsgPack */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* MsgPackT */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"CalendarSwap.ISO8601DT/dateMap",
+					getType(Map.class,String.class,Calendar.class),
+					dateMap,
+					CalendarSwap.ISO8601DT.class,
+					/* Json */		"{foo:'1901-03-03T10:11:12-08:00'}",
+					/* JsonT */		"{foo:'1901-03-03T10:11:12-08:00'}",
+					/* JsonR */		"{\n\tfoo: '1901-03-03T10:11:12-08:00'\n}",
+					/* Xml */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+					/* XmlT */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=1901-03-03T10:11:12-08:00)",
+					/* UonT */		"(foo=1901-03-03T10:11:12-08:00)",
+					/* UonR */		"(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
+					/* UrlEnc */	"foo=1901-03-03T10:11:12-08:00",
+					/* UrlEncT */	"foo=1901-03-03T10:11:12-08:00",
+					/* UrlEncR */	"foo=1901-03-03T10:11:12-08:00",
+					/* MsgPack */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* MsgPackT */	"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Calendar.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 6 */
-				"CalendarSwap.RFC2822DTZ/singleDate",
-				singleDate,
-				CalendarSwap.RFC2822DTZ.class,
-				/* Json */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* JsonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* JsonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* Xml */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* XmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* XmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n",
-				/* XmlNs */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* Html */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* HtmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* HtmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
-				/* Uon */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* UonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* UonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
-				/* UrlEnc */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncT */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncR */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* MsgPack */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* MsgPackT */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar>(
+					"CalendarSwap.RFC2822DTZ/singleDate",
+					Calendar.class,
+					singleDate,
+					CalendarSwap.RFC2822DTZ.class,
+					/* Json */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* JsonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* JsonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* Xml */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* XmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* XmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n",
+					/* XmlNs */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* Html */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* HtmlT */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* HtmlR */		"<string>Sun, 03 Mar 1901 18:11:12 GMT</string>",
+					/* Uon */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* UonT */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* UonR */		"'Sun, 03 Mar 1901 18:11:12 GMT'",
+					/* UrlEnc */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncT */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncR */	"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* MsgPack */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* MsgPackT */	"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar o) {
+						assertType(Calendar.class, o);
+					}
+				}
 			},
 			{	/* 7 */
-				"CalendarSwap.RFC2822DTZ/dateArray",
-				dateArray,
-				CalendarSwap.RFC2822DTZ.class,
-				/* Json */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
-				/* JsonT */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
-				/* JsonR */		"[\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n]",
-				/* Xml */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
-				/* XmlT */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
-				/* XmlR */		"<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
-				/* XmlNs */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
-				/* Html */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
-				/* HtmlT */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>Sun, 03 Mar 1901 18:11:12 GMT</li>\n</ul>\n",
-				/* Uon */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonT */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonR */		"@(\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n)",
-				/* UrlEnc */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncT */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncR */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* MsgPack */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* MsgPackT */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar[]>(
+					"CalendarSwap.RFC2822DTZ/dateArray",
+					Calendar[].class,
+					dateArray,
+					CalendarSwap.RFC2822DTZ.class,
+					/* Json */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
+					/* JsonT */		"['Sun, 03 Mar 1901 18:11:12 GMT']",
+					/* JsonR */		"[\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n]",
+					/* Xml */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+					/* XmlT */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+					/* XmlR */		"<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
+					/* XmlNs */		"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+					/* Html */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
+					/* HtmlT */		"<ul><li>Sun, 03 Mar 1901 18:11:12 GMT</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>Sun, 03 Mar 1901 18:11:12 GMT</li>\n</ul>\n",
+					/* Uon */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonT */		"@('Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonR */		"@(\n\t'Sun, 03 Mar 1901 18:11:12 GMT'\n)",
+					/* UrlEnc */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncT */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncR */	"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* MsgPack */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* MsgPackT */	"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar[] o) {
+						assertType(Calendar.class, o[0]);
+					}
+				}
 			},
 			{	/* 8 */
-				"CalendarSwap.RFC2822DTZ/dateMap",
-				dateMap,
-				CalendarSwap.RFC2822DTZ.class,
-				/* Json */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
-				/* JsonT */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
-				/* JsonR */		"{\n\tfoo: 'Sun, 03 Mar 1901 18:11:12 GMT'\n}",
-				/* Xml */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
-				/* XmlT */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>Sun, 03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 GMT</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonT */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
-				/* UonR */		"(\n\tfoo='Sun, 03 Mar 1901 18:11:12 GMT'\n)",
-				/* UrlEnc */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncT */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* UrlEncR */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-				/* MsgPack */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* MsgPackT */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"CalendarSwap.RFC2822DTZ/dateMap",
+					getType(Map.class,String.class,Calendar.class),
+					dateMap,
+					CalendarSwap.RFC2822DTZ.class,
+					/* Json */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
+					/* JsonT */		"{foo:'Sun, 03 Mar 1901 18:11:12 GMT'}",
+					/* JsonR */		"{\n\tfoo: 'Sun, 03 Mar 1901 18:11:12 GMT'\n}",
+					/* Xml */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+					/* XmlT */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>Sun, 03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 GMT</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonT */		"(foo='Sun, 03 Mar 1901 18:11:12 GMT')",
+					/* UonR */		"(\n\tfoo='Sun, 03 Mar 1901 18:11:12 GMT'\n)",
+					/* UrlEnc */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncT */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* UrlEncR */	"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+					/* MsgPack */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* MsgPackT */	"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Calendar.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 9 */
-				"CalendarLongSwap",
-				singleDate,
-				CalendarLongSwap.class,
-				/* Json */		"-2172116928000",
-				/* JsonT */		"-2172116928000",
-				/* JsonR */		"-2172116928000",
-				/* Xml */		"<number>-2172116928000</number>",
-				/* XmlT */		"<number>-2172116928000</number>",
-				/* XmlR */		"<number>-2172116928000</number>\n",
-				/* XmlNs */		"<number>-2172116928000</number>",
-				/* Html */		"<number>-2172116928000</number>",
-				/* HtmlT */		"<number>-2172116928000</number>",
-				/* HtmlR */		"<number>-2172116928000</number>",
-				/* Uon */		"-2172116928000",
-				/* UonT */		"-2172116928000",
-				/* UonR */		"-2172116928000",
-				/* UrlEnc */	"_value=-2172116928000",
-				/* UrlEncT */	"_value=-2172116928000",
-				/* UrlEncR */	"_value=-2172116928000",
-				/* MsgPack */	"D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>-2172116928000</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar>(
+					"CalendarLongSwap",
+					Calendar.class,
+					singleDate,
+					CalendarLongSwap.class,
+					/* Json */		"-2172116928000",
+					/* JsonT */		"-2172116928000",
+					/* JsonR */		"-2172116928000",
+					/* Xml */		"<number>-2172116928000</number>",
+					/* XmlT */		"<number>-2172116928000</number>",
+					/* XmlR */		"<number>-2172116928000</number>\n",
+					/* XmlNs */		"<number>-2172116928000</number>",
+					/* Html */		"<number>-2172116928000</number>",
+					/* HtmlT */		"<number>-2172116928000</number>",
+					/* HtmlR */		"<number>-2172116928000</number>",
+					/* Uon */		"-2172116928000",
+					/* UonT */		"-2172116928000",
+					/* UonR */		"-2172116928000",
+					/* UrlEnc */	"_value=-2172116928000",
+					/* UrlEncT */	"_value=-2172116928000",
+					/* UrlEncR */	"_value=-2172116928000",
+					/* MsgPack */	"D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>-2172116928000</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar o) {
+						assertType(Calendar.class, o);
+					}
+				}
 			},
 			{	/* 10 */
-				"CalendarLongSwap/dateArray",
-				dateArray,
-				CalendarLongSwap.class,
-				/* Json */		"[-2172116928000]",
-				/* JsonT */		"[-2172116928000]",
-				/* JsonR */		"[\n\t-2172116928000\n]",
-				/* Xml */		"<array><number>-2172116928000</number></array>",
-				/* XmlT */		"<array><number>-2172116928000</number></array>",
-				/* XmlR */		"<array>\n\t<number>-2172116928000</number>\n</array>\n",
-				/* XmlNs */		"<array><number>-2172116928000</number></array>",
-				/* Html */		"<ul><li><number>-2172116928000</number></li></ul>",
-				/* HtmlT */		"<ul><li><number>-2172116928000</number></li></ul>",
-				/* HtmlR */		"<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
-				/* Uon */		"@(-2172116928000)",
-				/* UonT */		"@(-2172116928000)",
-				/* UonR */		"@(\n\t-2172116928000\n)",
-				/* UrlEnc */	"0=-2172116928000",
-				/* UrlEncT */	"0=-2172116928000",
-				/* UrlEncR */	"0=-2172116928000",
-				/* MsgPack */	"91D3FFFFFE0643BDFA00",
-				/* MsgPackT */	"91D3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>-2172116928000</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar[]>(
+					"CalendarLongSwap/dateArray",
+					Calendar[].class,
+					dateArray,
+					CalendarLongSwap.class,
+					/* Json */		"[-2172116928000]",
+					/* JsonT */		"[-2172116928000]",
+					/* JsonR */		"[\n\t-2172116928000\n]",
+					/* Xml */		"<array><number>-2172116928000</number></array>",
+					/* XmlT */		"<array><number>-2172116928000</number></array>",
+					/* XmlR */		"<array>\n\t<number>-2172116928000</number>\n</array>\n",
+					/* XmlNs */		"<array><number>-2172116928000</number></array>",
+					/* Html */		"<ul><li><number>-2172116928000</number></li></ul>",
+					/* HtmlT */		"<ul><li><number>-2172116928000</number></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
+					/* Uon */		"@(-2172116928000)",
+					/* UonT */		"@(-2172116928000)",
+					/* UonR */		"@(\n\t-2172116928000\n)",
+					/* UrlEnc */	"0=-2172116928000",
+					/* UrlEncT */	"0=-2172116928000",
+					/* UrlEncR */	"0=-2172116928000",
+					/* MsgPack */	"91D3FFFFFE0643BDFA00",
+					/* MsgPackT */	"91D3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>-2172116928000</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar[] o) {
+						assertType(Calendar.class, o[0]);
+					}
+				}
 			},
 			{	/* 11 */
-				"CalendarLongSwap/dateMap",
-				dateMap,
-				CalendarLongSwap.class,
-				/* Json */		"{foo:-2172116928000}",
-				/* JsonT */		"{foo:-2172116928000}",
-				/* JsonR */		"{\n\tfoo: -2172116928000\n}",
-				/* Xml */		"<object><foo _type='number'>-2172116928000</foo></object>",
-				/* XmlT */		"<object><foo t='number'>-2172116928000</foo></object>",
-				/* XmlR */		"<object>\n\t<foo _type='number'>-2172116928000</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo _type='number'>-2172116928000</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=-2172116928000)",
-				/* UonT */		"(foo=-2172116928000)",
-				/* UonR */		"(\n\tfoo=-2172116928000\n)",
-				/* UrlEnc */	"foo=-2172116928000",
-				/* UrlEncT */	"foo=-2172116928000",
-				/* UrlEncR */	"foo=-2172116928000",
-				/* MsgPack */	"81A3666F6FD3FFFFFE0643BDFA00",
-				/* MsgPackT */	"81A3666F6FD3FFFFFE0643BDFA00",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>-2172116928000</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"CalendarLongSwap/dateMap",
+					getType(Map.class,String.class,Calendar.class),
+					dateMap,
+					CalendarLongSwap.class,
+					/* Json */		"{foo:-2172116928000}",
+					/* JsonT */		"{foo:-2172116928000}",
+					/* JsonR */		"{\n\tfoo: -2172116928000\n}",
+					/* Xml */		"<object><foo _type='number'>-2172116928000</foo></object>",
+					/* XmlT */		"<object><foo t='number'>-2172116928000</foo></object>",
+					/* XmlR */		"<object>\n\t<foo _type='number'>-2172116928000</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo _type='number'>-2172116928000</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=-2172116928000)",
+					/* UonT */		"(foo=-2172116928000)",
+					/* UonR */		"(\n\tfoo=-2172116928000\n)",
+					/* UrlEnc */	"foo=-2172116928000",
+					/* UrlEncT */	"foo=-2172116928000",
+					/* UrlEncR */	"foo=-2172116928000",
+					/* MsgPack */	"81A3666F6FD3FFFFFE0643BDFA00",
+					/* MsgPackT */	"81A3666F6FD3FFFFFE0643BDFA00",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>-2172116928000</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Calendar.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 12 */
-				"CalendarMapSwap/singleDate",
-				singleDate,
-				CalendarMapSwap.class,
-				/* Json */		"{time:-2172116928000,timeZone:'PST'}",
-				/* JsonT */		"{time:-2172116928000,timeZone:'PST'}",
-				/* JsonR */		"{\n\ttime: -2172116928000,\n\ttimeZone: 'PST'\n}",
-				/* Xml */		"<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
-				/* XmlT */		"<object><time t='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
-				/* XmlR */		"<object>\n\t<time _type='number'>-2172116928000</time>\n\t<timeZone>PST</timeZone>\n</object>\n",
-				/* XmlNs */		"<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
-				/* Html */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n\t<tr>\n\t\t<td>timeZone</td>\n\t\t<td>PST</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(time=-2172116928000,timeZone=PST)",
-				/* UonT */		"(time=-2172116928000,timeZone=PST)",
-				/* UonR */		"(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
-				/* UrlEnc */	"time=-2172116928000&timeZone=PST",
-				/* UrlEncT */	"time=-2172116928000&timeZone=PST",
-				/* UrlEncR */	"time=-2172116928000\n&timeZone=PST",
-				/* MsgPack */	"82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
-				/* MsgPackT */	"82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n    <jp:timeZone>PST</jp:timeZone>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar>(
+					"CalendarMapSwap/singleDate",
+					Calendar.class,
+					singleDate,
+					CalendarMapSwap.class,
+					/* Json */		"{time:-2172116928000,timeZone:'PST'}",
+					/* JsonT */		"{time:-2172116928000,timeZone:'PST'}",
+					/* JsonR */		"{\n\ttime: -2172116928000,\n\ttimeZone: 'PST'\n}",
+					/* Xml */		"<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
+					/* XmlT */		"<object><time t='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
+					/* XmlR */		"<object>\n\t<time _type='number'>-2172116928000</time>\n\t<timeZone>PST</timeZone>\n</object>\n",
+					/* XmlNs */		"<object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object>",
+					/* Html */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n\t<tr>\n\t\t<td>timeZone</td>\n\t\t<td>PST</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(time=-2172116928000,timeZone=PST)",
+					/* UonT */		"(time=-2172116928000,timeZone=PST)",
+					/* UonR */		"(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
+					/* UrlEnc */	"time=-2172116928000&timeZone=PST",
+					/* UrlEncT */	"time=-2172116928000&timeZone=PST",
+					/* UrlEncR */	"time=-2172116928000\n&timeZone=PST",
+					/* MsgPack */	"82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+					/* MsgPackT */	"82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n    <jp:timeZone>PST</jp:timeZone>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar o) {
+						assertType(Calendar.class, o);
+					}
+				}
 			},
 			{	/* 13 */
-				"CalendarMapSwap/dateArray",
-				dateArray,
-				CalendarMapSwap.class,
-				/* Json */		"[{time:-2172116928000,timeZone:'PST'}]",
-				/* JsonT */		"[{time:-2172116928000,timeZone:'PST'}]",
-				/* JsonR */		"[\n\t{\n\t\ttime: -2172116928000,\n\t\ttimeZone: 'PST'\n\t}\n]",
-				/* Xml */		"<array><object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
-				/* XmlT */		"<array><object><time t='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
-				/* XmlR */		"<array>\n\t<object>\n\t\t<time _type='number'>-2172116928000</time>\n\t\t<timeZone>PST</timeZone>\n\t</object>\n</array>\n",
-				/* XmlNs */		"<array><object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
-				/* Html */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></li></ul>",
-				/* HtmlT */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>timeZone</td>\n\t\t\t\t<td>PST</td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
-				/* Uon */		"@((time=-2172116928000,timeZone=PST))",
-				/* UonT */		"@((time=-2172116928000,timeZone=PST))",
-				/* UonR */		"@(\n\t(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
-				/* UrlEnc */	"0=(time=-2172116928000,timeZone=PST)",
-				/* UrlEncT */	"0=(time=-2172116928000,timeZone=PST)",
-				/* UrlEncR */	"0=(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
-				/* MsgPack */	"9182A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
-				/* MsgPackT */	"9182A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n      <jp:timeZone>PST</jp:timeZone>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar[]>(
+					"CalendarMapSwap/dateArray",
+					Calendar[].class,
+					dateArray,
+					CalendarMapSwap.class,
+					/* Json */		"[{time:-2172116928000,timeZone:'PST'}]",
+					/* JsonT */		"[{time:-2172116928000,timeZone:'PST'}]",
+					/* JsonR */		"[\n\t{\n\t\ttime: -2172116928000,\n\t\ttimeZone: 'PST'\n\t}\n]",
+					/* Xml */		"<array><object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
+					/* XmlT */		"<array><object><time t='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
+					/* XmlR */		"<array>\n\t<object>\n\t\t<time _type='number'>-2172116928000</time>\n\t\t<timeZone>PST</timeZone>\n\t</object>\n</array>\n",
+					/* XmlNs */		"<array><object><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></object></array>",
+					/* Html */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></li></ul>",
+					/* HtmlT */		"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>timeZone</td>\n\t\t\t\t<td>PST</td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
+					/* Uon */		"@((time=-2172116928000,timeZone=PST))",
+					/* UonT */		"@((time=-2172116928000,timeZone=PST))",
+					/* UonR */		"@(\n\t(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
+					/* UrlEnc */	"0=(time=-2172116928000,timeZone=PST)",
+					/* UrlEncT */	"0=(time=-2172116928000,timeZone=PST)",
+					/* UrlEncR */	"0=(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
+					/* MsgPack */	"9182A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+					/* MsgPackT */	"9182A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n      <jp:timeZone>PST</jp:timeZone>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar[] o) {
+						assertType(Calendar.class, o[0]);
+					}
+				}
 			},
 			{	/* 14 */
-				"CalendarMapSwap/dateMap",
-				dateMap,
-				CalendarMapSwap.class,
-				/* Json */		"{foo:{time:-2172116928000,timeZone:'PST'}}",
-				/* JsonT */		"{foo:{time:-2172116928000,timeZone:'PST'}}",
-				/* JsonR */		"{\n\tfoo: {\n\t\ttime: -2172116928000,\n\t\ttimeZone: 'PST'\n\t}\n}",
-				/* Xml */		"<object><foo _type='object'><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
-				/* XmlT */		"<object><foo t='object'><time t='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
-				/* XmlR */		"<object>\n\t<foo _type='object'>\n\t\t<time _type='number'>-2172116928000</time>\n\t\t<timeZone>PST</timeZone>\n\t</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo _type='object'><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>timeZone</td>\n\t\t\t\t\t<td>PST</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo=(time=-2172116928000,timeZone=PST))",
-				/* UonT */		"(foo=(time=-2172116928000,timeZone=PST))",
-				/* UonR */		"(\n\tfoo=(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
-				/* UrlEnc */	"foo=(time=-2172116928000,timeZone=PST)",
-				/* UrlEncT */	"foo=(time=-2172116928000,timeZone=PST)",
-				/* UrlEncR */	"foo=(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
-				/* MsgPack */	"81A3666F6F82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
-				/* MsgPackT */	"81A3666F6F82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n      <jp:timeZone>PST</jp:timeZone>\n    </jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"CalendarMapSwap/dateMap",
+					getType(Map.class,String.class,Calendar.class),
+					dateMap,
+					CalendarMapSwap.class,
+					/* Json */		"{foo:{time:-2172116928000,timeZone:'PST'}}",
+					/* JsonT */		"{foo:{time:-2172116928000,timeZone:'PST'}}",
+					/* JsonR */		"{\n\tfoo: {\n\t\ttime: -2172116928000,\n\t\ttimeZone: 'PST'\n\t}\n}",
+					/* Xml */		"<object><foo _type='object'><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
+					/* XmlT */		"<object><foo t='object'><time t='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
+					/* XmlR */		"<object>\n\t<foo _type='object'>\n\t\t<time _type='number'>-2172116928000</time>\n\t\t<timeZone>PST</timeZone>\n\t</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo _type='object'><time _type='number'>-2172116928000</time><timeZone>PST</timeZone></foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr><tr><td>timeZone</td><td>PST</td></tr></table></td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>timeZone</td>\n\t\t\t\t\t<td>PST</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo=(time=-2172116928000,timeZone=PST))",
+					/* UonT */		"(foo=(time=-2172116928000,timeZone=PST))",
+					/* UonR */		"(\n\tfoo=(\n\t\ttime=-2172116928000,\n\t\ttimeZone=PST\n\t)\n)",
+					/* UrlEnc */	"foo=(time=-2172116928000,timeZone=PST)",
+					/* UrlEncT */	"foo=(time=-2172116928000,timeZone=PST)",
+					/* UrlEncR */	"foo=(\n\ttime=-2172116928000,\n\ttimeZone=PST\n)",
+					/* MsgPack */	"81A3666F6F82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+					/* MsgPackT */	"81A3666F6F82A474696D65D3FFFFFE0643BDFA00A874696D655A6F6E65A3505354",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n<jp:timeZone>PST</jp:timeZone>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n      <jp:timeZone>PST</jp:timeZone>\n    </jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Calendar.class, o.get("foo"));
+					}
+				}
 			},
 			{	/* 15 */
-				"CalendarSwap.DateMedium/singleDate",
-				singleDate,
-				CalendarSwap.DateMedium.class,
-				/* Json */		"'Mar 3, 1901'",
-				/* JsonT */		"'Mar 3, 1901'",
-				/* JsonR */		"'Mar 3, 1901'",
-				/* Xml */		"<string>Mar 3, 1901</string>",
-				/* XmlT */		"<string>Mar 3, 1901</string>",
-				/* XmlR */		"<string>Mar 3, 1901</string>\n",
-				/* XmlNs */		"<string>Mar 3, 1901</string>",
-				/* Html */		"<string>Mar 3, 1901</string>",
-				/* HtmlT */		"<string>Mar 3, 1901</string>",
-				/* HtmlR */		"<string>Mar 3, 1901</string>",
-				/* Uon */		"'Mar 3, 1901'",
-				/* UonT */		"'Mar 3, 1901'",
-				/* UonR */		"'Mar 3, 1901'",
-				/* UrlEnc */	"_value='Mar+3,+1901'",
-				/* UrlEncT */	"_value='Mar+3,+1901'",
-				/* UrlEncR */	"_value='Mar+3,+1901'",
-				/* MsgPack */	"AB4D617220332C2031393031",
-				/* MsgPackT */	"AB4D617220332C2031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Mar 3, 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar>(
+					"CalendarSwap.DateMedium/singleDate",
+					Calendar.class,
+					singleDate,
+					CalendarSwap.DateMedium.class,
+					/* Json */		"'Mar 3, 1901'",
+					/* JsonT */		"'Mar 3, 1901'",
+					/* JsonR */		"'Mar 3, 1901'",
+					/* Xml */		"<string>Mar 3, 1901</string>",
+					/* XmlT */		"<string>Mar 3, 1901</string>",
+					/* XmlR */		"<string>Mar 3, 1901</string>\n",
+					/* XmlNs */		"<string>Mar 3, 1901</string>",
+					/* Html */		"<string>Mar 3, 1901</string>",
+					/* HtmlT */		"<string>Mar 3, 1901</string>",
+					/* HtmlR */		"<string>Mar 3, 1901</string>",
+					/* Uon */		"'Mar 3, 1901'",
+					/* UonT */		"'Mar 3, 1901'",
+					/* UonR */		"'Mar 3, 1901'",
+					/* UrlEnc */	"_value='Mar+3,+1901'",
+					/* UrlEncT */	"_value='Mar+3,+1901'",
+					/* UrlEncR */	"_value='Mar+3,+1901'",
+					/* MsgPack */	"AB4D617220332C2031393031",
+					/* MsgPackT */	"AB4D617220332C2031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <j:value>Mar 3, 1901</j:value>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar o) {
+						assertType(Calendar.class, o);
+					}
+				}
 			},
 			{	/* 16 */
-				"CalendarSwap.DateMedium/dateArray",
-				dateArray,
-				CalendarSwap.DateMedium.class,
-				/* Json */		"['Mar 3, 1901']",
-				/* JsonT */		"['Mar 3, 1901']",
-				/* JsonR */		"[\n\t'Mar 3, 1901'\n]",
-				/* Xml */		"<array><string>Mar 3, 1901</string></array>",
-				/* XmlT */		"<array><string>Mar 3, 1901</string></array>",
-				/* XmlR */		"<array>\n\t<string>Mar 3, 1901</string>\n</array>\n",
-				/* XmlNs */		"<array><string>Mar 3, 1901</string></array>",
-				/* Html */		"<ul><li>Mar 3, 1901</li></ul>",
-				/* HtmlT */		"<ul><li>Mar 3, 1901</li></ul>",
-				/* HtmlR */		"<ul>\n\t<li>Mar 3, 1901</li>\n</ul>\n",
-				/* Uon */		"@('Mar 3, 1901')",
-				/* UonT */		"@('Mar 3, 1901')",
-				/* UonR */		"@(\n\t'Mar 3, 1901'\n)",
-				/* UrlEnc */	"0='Mar+3,+1901'",
-				/* UrlEncT */	"0='Mar+3,+1901'",
-				/* UrlEncR */	"0='Mar+3,+1901'",
-				/* MsgPack */	"91AB4D617220332C2031393031",
-				/* MsgPackT */	"91AB4D617220332C2031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Mar 3, 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+				new ComboInput2<Calendar[]>(
+					"CalendarSwap.DateMedium/dateArray",
+					Calendar[].class,
+					dateArray,
+					CalendarSwap.DateMedium.class,
+					/* Json */		"['Mar 3, 1901']",
+					/* JsonT */		"['Mar 3, 1901']",
+					/* JsonR */		"[\n\t'Mar 3, 1901'\n]",
+					/* Xml */		"<array><string>Mar 3, 1901</string></array>",
+					/* XmlT */		"<array><string>Mar 3, 1901</string></array>",
+					/* XmlR */		"<array>\n\t<string>Mar 3, 1901</string>\n</array>\n",
+					/* XmlNs */		"<array><string>Mar 3, 1901</string></array>",
+					/* Html */		"<ul><li>Mar 3, 1901</li></ul>",
+					/* HtmlT */		"<ul><li>Mar 3, 1901</li></ul>",
+					/* HtmlR */		"<ul>\n\t<li>Mar 3, 1901</li>\n</ul>\n",
+					/* Uon */		"@('Mar 3, 1901')",
+					/* UonT */		"@('Mar 3, 1901')",
+					/* UonR */		"@(\n\t'Mar 3, 1901'\n)",
+					/* UrlEnc */	"0='Mar+3,+1901'",
+					/* UrlEncT */	"0='Mar+3,+1901'",
+					/* UrlEncR */	"0='Mar+3,+1901'",
+					/* MsgPack */	"91AB4D617220332C2031393031",
+					/* MsgPackT */	"91AB4D617220332C2031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Seq>\n    <rdf:li>Mar 3, 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(Calendar[] o) {
+						assertType(Calendar.class, o[0]);
+					}
+				}
 			},
 			{	/* 17 */
-				"CalendarSwap.DateMedium/dateMap",
-				dateMap,
-				CalendarSwap.DateMedium.class,
-				/* Json */		"{foo:'Mar 3, 1901'}",
-				/* JsonT */		"{foo:'Mar 3, 1901'}",
-				/* JsonR */		"{\n\tfoo: 'Mar 3, 1901'\n}",
-				/* Xml */		"<object><foo>Mar 3, 1901</foo></object>",
-				/* XmlT */		"<object><foo>Mar 3, 1901</foo></object>",
-				/* XmlR */		"<object>\n\t<foo>Mar 3, 1901</foo>\n</object>\n",
-				/* XmlNs */		"<object><foo>Mar 3, 1901</foo></object>",
-				/* Html */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
-				/* HtmlT */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
-				/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 1901</td>\n\t</tr>\n</table>\n",
-				/* Uon */		"(foo='Mar 3, 1901')",
-				/* UonT */		"(foo='Mar 3, 1901')",
-				/* UonR */		"(\n\tfoo='Mar 3, 1901'\n)",
-				/* UrlEnc */	"foo='Mar+3,+1901'",
-				/* UrlEncT */	"foo='Mar+3,+1901'",
-				/* UrlEncR */	"foo='Mar+3,+1901'",
-				/* MsgPack */	"81A3666F6FAB4D617220332C2031393031",
-				/* MsgPackT */	"81A3666F6FAB4D617220332C2031393031",
-				/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-				/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Mar 3, 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n",
+				new ComboInput2<ObjectMap>(
+					"CalendarSwap.DateMedium/dateMap",
+					getType(Map.class,String.class,Calendar.class),
+					dateMap,
+					CalendarSwap.DateMedium.class,
+					/* Json */		"{foo:'Mar 3, 1901'}",
+					/* JsonT */		"{foo:'Mar 3, 1901'}",
+					/* JsonR */		"{\n\tfoo: 'Mar 3, 1901'\n}",
+					/* Xml */		"<object><foo>Mar 3, 1901</foo></object>",
+					/* XmlT */		"<object><foo>Mar 3, 1901</foo></object>",
+					/* XmlR */		"<object>\n\t<foo>Mar 3, 1901</foo>\n</object>\n",
+					/* XmlNs */		"<object><foo>Mar 3, 1901</foo></object>",
+					/* Html */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+					/* HtmlT */		"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+					/* HtmlR */		"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 1901</td>\n\t</tr>\n</table>\n",
+					/* Uon */		"(foo='Mar 3, 1901')",
+					/* UonT */		"(foo='Mar 3, 1901')",
+					/* UonR */		"(\n\tfoo='Mar 3, 1901'\n)",
+					/* UrlEnc */	"foo='Mar+3,+1901'",
+					/* UrlEncT */	"foo='Mar+3,+1901'",
+					/* UrlEncR */	"foo='Mar+3,+1901'",
+					/* MsgPack */	"81A3666F6FAB4D617220332C2031393031",
+					/* MsgPackT */	"81A3666F6FAB4D617220332C2031393031",
+					/* RdfXml */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlT */	"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+					/* RdfXmlR */	"<rdf:RDF>\n  <rdf:Description>\n    <jp:foo>Mar 3, 1901</jp:foo>\n  </rdf:Description>\n</rdf:RDF>\n"
+				)
+				{
+					public void verify(ObjectMap o) {
+						assertType(Calendar.class, o.get("foo"));
+					}
+				}
 			},
 		});
 	}
+
+	private final Class<?> swapClass;
 	
-	private Class<?> swapClass;
-	
-	public CalendarSwapComboTest(
-			String label, 
-			Object in,
-			Class<?> swapClass, 
-			String oJson, String oJsonT, String oJsonR,
-			String oXml, String oXmlT, String oXmlR, String oXmlNs,
-			String oHtml, String oHtmlT, String oHtmlR,
-			String oUon, String oUonT, String oUonR,
-			String oUrlEncoding, String oUrlEncodingT, String oUrlEncodingR,
-			String oMsgPack, String oMsgPackT,
-			String oRdfXml, String oRdfXmlT, String oRdfXmlR
-		) {
-		super(
-			label,
-			in, 
-			oJson, oJsonT, oJsonR,
-			oXml, oXmlT, oXmlR, oXmlNs,
-			oHtml, oHtmlT, oHtmlR,
-			oUon, oUonT, oUonR,
-			oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
-			oMsgPack, oMsgPackT,
-			oRdfXml, oRdfXmlT, oRdfXmlR
-		);
-		this.swapClass = swapClass;
+	public CalendarSwapComboTest(ComboInput2<?> comboInput) {
+		super(comboInput);
+		this.swapClass = comboInput.swapClass;
+	}
+		
+	public static class ComboInput2<T> extends ComboInput<T> {
+		private final Class<?> swapClass;
+		
+		public ComboInput2(
+				String label,
+				Type type,
+				T in,
+				Class<?> swapClass,
+				String json,
+				String jsonT,
+				String jsonR,
+				String xml,
+				String xmlT,
+				String xmlR,
+				String xmlNs,
+				String html,
+				String htmlT,
+				String htmlR,
+				String uon,
+				String uonT,
+				String uonR,
+				String urlEncoding,
+				String urlEncodingT,
+				String urlEncodingR,
+				String msgPack,
+				String msgPackT,
+				String rdfXml,
+				String rdfXmlT,
+				String rdfXmlR
+			) {
+			super(label, type, in, json, jsonT, jsonR, xml, xmlT, xmlR, xmlNs, html, htmlT, htmlR, uon, uonT, uonR, urlEncoding, urlEncodingT, urlEncodingR, msgPack, msgPackT, rdfXml, rdfXmlT, rdfXmlR);
+			this.swapClass = swapClass;
+		}
 	}
 	
 	@BeforeClass