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/02/19 15:37:51 UTC

[2/3] incubator-juneau git commit: Add tests.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/33240600/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
index a64ed6f..d7c409e 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/BasicHtmlSchemaTest.java
@@ -12,62 +12,18 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
-import static org.junit.Assert.*;
 import static org.apache.juneau.dto.html5.HtmlBuilder.*;
 
 import java.util.*;
 
-import org.apache.juneau.html.*;
-import org.apache.juneau.json.JsonParser;
-import org.apache.juneau.json.JsonSerializer;
-import org.apache.juneau.msgpack.MsgPackParser;
-import org.apache.juneau.msgpack.MsgPackSerializer;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.urlencoding.UonParser;
-import org.apache.juneau.urlencoding.UonSerializer;
-import org.apache.juneau.urlencoding.UrlEncodingParser;
-import org.apache.juneau.urlencoding.UrlEncodingSerializer;
-import org.apache.juneau.xml.*;
-import org.junit.*;
+import org.apache.juneau.dto.ComboTestcase;
 import org.junit.runner.*;
 import org.junit.runners.*;
 
 
 @RunWith(Parameterized.class)
 @SuppressWarnings({"javadoc"})
-public class BasicHtmlSchemaTest {
-
-	private static final WriterSerializer
-		sXmlSq = XmlSerializer.DEFAULT_SQ,
-		sXmlNsSq = XmlSerializer.DEFAULT_NS_SQ,
-		sXmlSqReadable = XmlSerializer.DEFAULT_SQ_READABLE,
-		sHtmlSq = HtmlSerializer.DEFAULT_SQ,
-		sHtmlSqReadable = HtmlSerializer.DEFAULT_SQ_READABLE,
-		sJson = JsonSerializer.DEFAULT_LAX,
-		sJsonT = JsonSerializer.DEFAULT_LAX.clone().setBeanTypePropertyName("t"),
-		sUon = UonSerializer.DEFAULT,
-		sUonT = UonSerializer.DEFAULT.clone().setBeanTypePropertyName("t"),
-		sUrlEncoding = UrlEncodingSerializer.DEFAULT,
-		sUrlEncodingT = UrlEncodingSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
-	
-	private static final OutputStreamSerializer 
-		sMsgPack = MsgPackSerializer.DEFAULT,
-		sMsgPackT = MsgPackSerializer.DEFAULT.clone().setBeanTypePropertyName("t");
-	
-	private static final ReaderParser
-		pXml = XmlParser.DEFAULT,
-		pHtml = HtmlParser.DEFAULT,
-		pJson = JsonParser.DEFAULT,
-		pJsonT = JsonParser.DEFAULT.clone().setBeanTypePropertyName("t"),
-		pUon = UonParser.DEFAULT,
-		pUonT = UonParser.DEFAULT.clone().setBeanTypePropertyName("t"),
-		pUrlEncoding = UrlEncodingParser.DEFAULT,
-		pUrlEncodingT = UrlEncodingParser.DEFAULT.clone().setBeanTypePropertyName("t");
-
-	private static final InputStreamParser 
-		pMsgPack = MsgPackParser.DEFAULT,
-		pMsgPackT = MsgPackParser.DEFAULT.clone().setBeanTypePropertyName("t");
+public class BasicHtmlSchemaTest extends ComboTestcase {
 	
 	private static final B btag = b("bbb");
 
@@ -77,180 +33,279 @@ public class BasicHtmlSchemaTest {
 			{
 				"A-1",
 				a("http://foo", "bar"),
-				"<a href='http://foo'>bar</a>",
-				"<a href='http://foo'>bar</a>\n",
-				"<a href='http://foo'>bar</a>",
-				"<a href='http://foo'>bar</a>\n",
-				"{_type:'a',a:{href:'http://foo'},c:['bar']}",
-				"{t:'a',a:{href:'http://foo'},c:['bar']}",
-				"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A3626172",
-				"83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A3626172",
-				"(_type=a,a=(href=http://foo),c=@(bar))",
-				"(t=a,a=(href=http://foo),c=@(bar))",
-				"_type=a&a=(href=http://foo)&c=@(bar)",
-				"t=a&a=(href=http://foo)&c=@(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"),
-				"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				"<a href='http://foo'>bar<b>bbb</b>baz</a>\n",
-				"<a href='http://foo'>bar<b>bbb</b>baz</a>",
-				"<a href='http://foo'>bar<b>bbb</b>baz</a>\n",
-				"{_type:'a',a:{href:'http://foo'},c:['bar',{_type:'b',c:['bbb']},'baz']}",
-				"{t:'a',a:{href:'http://foo'},c:['bar',{t:'b',c:['bbb']},'baz']}",
-				"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16393A362617282A55F74797065A162A16391A3626262A362617A",
-				"83A174A161A16181A468726566AA687474703A2F2F666F6FA16393A362617282A174A162A16391A3626262A362617A",
-				"(_type=a,a=(href=http://foo),c=@(bar,(_type=b,c=@(bbb)),baz))",
-				"(t=a,a=(href=http://foo),c=@(bar,(t=b,c=@(bbb)),baz))",
-				"_type=a&a=(href=http://foo)&c=@(bar,(_type=b,c=@(bbb)),baz)",
-				"t=a&a=(href=http://foo)&c=@(bar,(t=b,c=@(bbb)),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", ""),
-				"<a href='http://foo'>_xE000_</a>",
-				"<a href='http://foo'>_xE000_</a>\n",
-				"<a href='http://foo'><sp/></a>",
-				"<a href='http://foo'><sp/></a>\n",
-				"{_type:'a',a:{href:'http://foo'},c:['']}",
-				"{t:'a',a:{href:'http://foo'},c:['']}",
-				"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A0",
-				"83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A0",
-				"(_type=a,a=(href=http://foo),c=@(''))",
-				"(t=a,a=(href=http://foo),c=@(''))",
-				"_type=a&a=(href=http://foo)&c=@('')",
-				"t=a&a=(href=http://foo)&c=@('')",
+				/* 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", " "),
-				"<a href='http://foo'>_x0020_</a>",
-				"<a href='http://foo'>_x0020_</a>\n",
-				"<a href='http://foo'><sp> </sp></a>",
-				"<a href='http://foo'><sp> </sp></a>\n",
-				"{_type:'a',a:{href:'http://foo'},c:[' ']}",
-				"{t:'a',a:{href:'http://foo'},c:[' ']}",
-				"83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A120",
-				"83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A120",
-				"(_type=a,a=(href=http://foo),c=@(' '))",
-				"(t=a,a=(href=http://foo),c=@(' '))",
-				"_type=a&a=(href=http://foo)&c=@('+')",
-				"t=a&a=(href=http://foo)&c=@('+')",
+				/* 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"),
-				"<a href='http://foo'/>",
-				"<a href='http://foo'/>\n",
-				"<a href='http://foo'/>",
-				"<a href='http://foo'/>\n",
-				"{_type:'a',a:{href:'http://foo'}}",
-				"{t:'a',a:{href:'http://foo'}}",
-				"82A55F74797065A161A16181A468726566AA687474703A2F2F666F6F",
-				"82A174A161A16181A468726566AA687474703A2F2F666F6F",
-				"(_type=a,a=(href=http://foo))",
-				"(t=a,a=(href=http://foo))",
-				"_type=a&a=(href=http://foo)",
-				"t=a&a=(href=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'/>",
+				/* HtmlT */		"<a href='http://foo'/>",
+				/* HtmlR */		"<a href='http://foo'/>\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"),
-				"<abbr>foo</abbr>",
-				"<abbr>foo</abbr>\n",
-				"<abbr>foo</abbr>",
-				"<abbr>foo</abbr>\n",
-				"{_type:'abbr',c:['foo']}",
-				"{t:'abbr',c:['foo']}",
-				"82A55F74797065A461626272A16391A3666F6F",
-				"82A174A461626272A16391A3666F6F",
-				"(_type=abbr,c=@(foo))",
-				"(t=abbr,c=@(foo))",
-				"_type=abbr&c=@(foo)",
-				"t=abbr&c=@(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"),
-				"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				"<abbr title='foo'>bar<b>bbb</b>baz</abbr>\n",
-				"<abbr title='foo'>bar<b>bbb</b>baz</abbr>",
-				"<abbr title='foo'>bar<b>bbb</b>baz</abbr>\n",
-				"{_type:'abbr',a:{title:'foo'},c:['bar',{_type:'b',c:['bbb']},'baz']}",
-				"{t:'abbr',a:{title:'foo'},c:['bar',{t:'b',c:['bbb']},'baz']}",
-				"83A55F74797065A461626272A16181A57469746C65A3666F6FA16393A362617282A55F74797065A162A16391A3626262A362617A",
-				"83A174A461626272A16181A57469746C65A3666F6FA16393A362617282A174A162A16391A3626262A362617A",
-				"(_type=abbr,a=(title=foo),c=@(bar,(_type=b,c=@(bbb)),baz))",
-				"(t=abbr,a=(title=foo),c=@(bar,(t=b,c=@(bbb)),baz))",
-				"_type=abbr&a=(title=foo)&c=@(bar,(_type=b,c=@(bbb)),baz)",
-				"t=abbr&a=(title=foo)&c=@(bar,(t=b,c=@(bbb)),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(),
-				"<address/>",
-				"<address/>\n",
-				"<address/>",
-				"<address/>\n",
-				"{_type:'address'}",
-				"{t:'address'}",
-				"81A55F74797065A761646472657373",
-				"81A174A761646472657373",
-				"(_type=address)",
-				"(t=address)",
-				"_type=address",
-				"t=address",
+				/* Json */		"{_type:'address'}",
+				/* JsonT */		"{t:'address'}",
+				/* JsonR */		"{\n\t_type: 'address'\n}",
+				/* Xml */		"<address/>",
+				/* XmlT */		"<address/>",
+				/* XmlR */		"<address/>\n",
+				/* XmlNs */		"<address/>",
+				/* Html */		"<address/>",
+				/* HtmlT */		"<address/>",
+				/* HtmlR */		"<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(""),
-				"<address>_xE000_</address>",
-				"<address>_xE000_</address>\n",
-				"<address><sp/></address>",
-				"<address><sp/></address>\n",
-				"{_type:'address',c:['']}",
-				"{t:'address',c:['']}",
-				"82A55F74797065A761646472657373A16391A0",
-				"82A174A761646472657373A16391A0",
-				"(_type=address,c=@(''))",
-				"(t=address,c=@(''))",
-				"_type=address&c=@('')",
-				"t=address&c=@('')",
+				/* 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")),
-				"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>\n",
-				"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>",
-				"<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>\n",
-				"{_type:'address',c:['foo',{_type:'a',a:{href:'bar'},c:['baz']},{_type:'a',a:{href:'qux'},c:['quux']}]}",
-				"{t:'address',c:['foo',{t:'a',a:{href:'bar'},c:['baz']},{t:'a',a:{href:'qux'},c:['quux']}]}",
-				"82A55F74797065A761646472657373A16393A3666F6F83A55F74797065A161A16181A468726566A3626172A16391A362617A83A55F74797065A161A16181A468726566A3717578A16391A471757578",
-				"82A174A761646472657373A16393A3666F6F83A174A161A16181A468726566A3626172A16391A362617A83A174A161A16181A468726566A3717578A16391A471757578",
-				"(_type=address,c=@(foo,(_type=a,a=(href=bar),c=@(baz)),(_type=a,a=(href=qux),c=@(quux))))",
-				"(t=address,c=@(foo,(t=a,a=(href=bar),c=@(baz)),(t=a,a=(href=qux),c=@(quux))))",
-				"_type=address&c=@(foo,(_type=a,a=(href=bar),c=@(baz)),(_type=a,a=(href=qux),c=@(quux)))",
-				"t=address&c=@(foo,(t=a,a=(href=bar),c=@(baz)),(t=a,a=(href=qux),c=@(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")
 				),
-				"<aside><h1>header1</h1><p>foo</p></aside>",
-				"<aside><h1>header1</h1><p>foo</p></aside>\n",
-				"<aside><h1>header1</h1><p>foo</p></aside>",
-				"<aside><h1>header1</h1><p>foo</p></aside>\n",
-				"{_type:'aside',c:[{_type:'h1',c:['header1']},{_type:'p',c:['foo']}]}",
-				"{t:'aside',c:[{t:'h1',c:['header1']},{t:'p',c:['foo']}]}",
-				"82A55F74797065A56173696465A1639282A55F74797065A26831A16391A76865616465723182A55F74797065A170A16391A3666F6F",
-				"82A174A56173696465A1639282A174A26831A16391A76865616465723182A174A170A16391A3666F6F",
-				"(_type=aside,c=@((_type=h1,c=@(header1)),(_type=p,c=@(foo))))",
-				"(t=aside,c=@((t=h1,c=@(header1)),(t=p,c=@(foo))))",
-				"_type=aside&c=@((_type=h1,c=@(header1)),(_type=p,c=@(foo)))",
-				"t=aside&c=@((t=h1,c=@(header1)),(t=p,c=@(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",
@@ -258,162 +313,252 @@ public class BasicHtmlSchemaTest {
 					source("foo.ogg", "audio/ogg"),
 					source("foo.mp3", "audio/mpeg")
 				),
-				"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				"<audio controls='true'>\n\t<source src='foo.ogg' type='audio/ogg'/>\n\t<source src='foo.mp3' type='audio/mpeg'/>\n</audio>\n",
-				"<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>",
-				"<audio controls='true'>\n\t<source src='foo.ogg' type='audio/ogg'/>\n\t<source src='foo.mp3' type='audio/mpeg'/>\n</audio>\n",
-				"{_type:'audio',a:{controls:true},c:[{_type:'source',a:{src:'foo.ogg',type:'audio/ogg'}},{_type:'source',a:{src:'foo.mp3',type:'audio/mpeg'}}]}",
-				"{t:'audio',a:{controls:true},c:[{t:'source',a:{src:'foo.ogg',type:'audio/ogg'}},{t:'source',a:{src:'foo.mp3',type:'audio/mpeg'}}]}",
-				"83A55F74797065A5617564696FA16181A8636F6E74726F6C73C3A1639282A55F74797065A6736F75726365A16182A3737263A7666F6F2E6F6767A474797065A9617564696F2F6F676782A55F74797065A6736F75726365A16182A3737263A7666F6F2E6D7033A474797065AA617564696F2F6D706567",
-				"83A174A5617564696FA16181A8636F6E74726F6C73C3A1639282A174A6736F75726365A16182A3737263A7666F6F2E6F6767A474797065A9617564696F2F6F676782A174A6736F75726365A16182A3737263A7666F6F2E6D7033A474797065AA617564696F2F6D706567",
-				"(_type=audio,a=(controls=true),c=@((_type=source,a=(src=foo.ogg,type=audio/ogg)),(_type=source,a=(src=foo.mp3,type=audio/mpeg))))",
-				"(t=audio,a=(controls=true),c=@((t=source,a=(src=foo.ogg,type=audio/ogg)),(t=source,a=(src=foo.mp3,type=audio/mpeg))))",
-				"_type=audio&a=(controls=true)&c=@((_type=source,a=(src=foo.ogg,type=audio/ogg)),(_type=source,a=(src=foo.mp3,type=audio/mpeg)))",
-				"t=audio&a=(controls=true)&c=@((t=source,a=(src=foo.ogg,type=audio/ogg)),(t=source,a=(src=foo.mp3,type=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"),
-				"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>\n",
-				"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>",
-				"<p>foo<bdi>\u0625\u064a\u0627\u0646</bdi>bar</p>\n",
-				"{_type:'p',c:['foo',{_type:'bdi',c:'\u0625\u064a\u0627\u0646'},'bar']}",
-				"{t:'p',c:['foo',{t:'bdi',c:'\u0625\u064a\u0627\u0646'},'bar']}",
-				"82A55F74797065A170A16393A3666F6F82A55F74797065A3626469A163A8D8A5D98AD8A7D986A3626172",
-				"82A174A170A16393A3666F6F82A174A3626469A163A8D8A5D98AD8A7D986A3626172",
-				"(_type=p,c=@(foo,(_type=bdi,c=\u0625\u064a\u0627\u0646),bar))",
-				"(t=p,c=@(foo,(t=bdi,c=\u0625\u064a\u0627\u0646),bar))",
-				"_type=p&c=@(foo,(_type=bdi,c=%D8%A5%D9%8A%D8%A7%D9%86),bar)",
-				"t=p&c=@(foo,(t=bdi,c=%D8%A5%D9%8A%D8%A7%D9%86),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"),
-				"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>\n",
-				"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>",
-				"<p>foo<bdo dir='rtl'>baz</bdo>bar</p>\n",
-				"{_type:'p',c:['foo',{_type:'bdo',a:{dir:'rtl'},c:['baz']},'bar']}",
-				"{t:'p',c:['foo',{t:'bdo',a:{dir:'rtl'},c:['baz']},'bar']}",
-				"82A55F74797065A170A16393A3666F6F83A55F74797065A362646FA16181A3646972A372746CA16391A362617AA3626172",
-				"82A174A170A16393A3666F6F83A174A362646FA16181A3646972A372746CA16391A362617AA3626172",
-				"(_type=p,c=@(foo,(_type=bdo,a=(dir=rtl),c=@(baz)),bar))",
-				"(t=p,c=@(foo,(t=bdo,a=(dir=rtl),c=@(baz)),bar))",
-				"_type=p&c=@(foo,(_type=bdo,a=(dir=rtl),c=@(baz)),bar)",
-				"t=p&c=@(foo,(t=bdo,a=(dir=rtl),c=@(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"),
-				"<blockquote>foo</blockquote>",
-				"<blockquote>foo</blockquote>\n",
-				"<blockquote>foo</blockquote>",
-				"<blockquote>foo</blockquote>\n",
-				"{_type:'blockquote',c:['foo']}",
-				"{t:'blockquote',c:['foo']}",
-				"82A55F74797065AA626C6F636B71756F7465A16391A3666F6F",
-				"82A174AA626C6F636B71756F7465A16391A3666F6F",
-				"(_type=blockquote,c=@(foo))",
-				"(t=blockquote,c=@(foo))",
-				"_type=blockquote&c=@(foo)",
-				"t=blockquote&c=@(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(),
-				"<br/>",
-				"<br/>\n",
-				"<br/>",
-				"<br/>\n",
-				"{_type:'br'}",
-				"{t:'br'}",
-				"81A55F74797065A26272",
-				"81A174A26272",
-				"(_type=br)",
-				"(t=br)",
-				"_type=br",
-				"t=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()),
-				"<p><br/></p>",
-				"<p><br/></p>\n",
-				"<p><br/></p>",
-				"<p><br/></p>\n",
-				"{_type:'p',c:[{_type:'br'}]}",
-				"{t:'p',c:[{t:'br'}]}",
-				"82A55F74797065A170A1639181A55F74797065A26272",
-				"82A174A170A1639181A174A26272",
-				"(_type=p,c=@((_type=br)))",
-				"(t=p,c=@((t=br)))",
-				"_type=p&c=@((_type=br))",
-				"t=p&c=@((t=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"),
-				"<button type='button'>foo</button>",
-				"<button type='button'>foo</button>\n",
-				"<button type='button'>foo</button>",
-				"<button type='button'>foo</button>\n",
-				"{_type:'button',a:{type:'button'},c:['foo']}",
-				"{t:'button',a:{type:'button'},c:['foo']}",
-				"83A55F74797065A6627574746F6EA16181A474797065A6627574746F6EA16391A3666F6F",
-				"83A174A6627574746F6EA16181A474797065A6627574746F6EA16391A3666F6F",
-				"(_type=button,a=(type=button),c=@(foo))",
-				"(t=button,a=(type=button),c=@(foo))",
-				"_type=button&a=(type=button)&c=@(foo)",
-				"t=button&a=(type=button)&c=@(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),
-				"<canvas width='100' height='200'/>",
-				"<canvas width='100' height='200'/>\n",
-				"<canvas width='100' height='200'/>",
-				"<canvas width='100' height='200'/>\n",
-				"{_type:'canvas',a:{width:100,height:200}}",
-				"{t:'canvas',a:{width:100,height:200}}",
-				"82A55F74797065A663616E766173A16182A5776964746864A6686569676874D100C8",
-				"82A174A663616E766173A16182A5776964746864A6686569676874D100C8",
-				"(_type=canvas,a=(width=100,height=200))",
-				"(t=canvas,a=(width=100,height=200))",
-				"_type=canvas&a=(width=100,height=200)",
-				"t=canvas&a=(width=100,height=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'/>",
+				/* HtmlT */		"<canvas width='100' height='200'/>",
+				/* HtmlR */		"<canvas width='100' height='200'/>\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")),
-				"<p><cite>foo</cite></p>",
-				"<p><cite>foo</cite></p>\n",
-				"<p><cite>foo</cite></p>",
-				"<p><cite>foo</cite></p>\n",
-				"{_type:'p',c:[{_type:'cite',c:['foo']}]}",
-				"{t:'p',c:[{t:'cite',c:['foo']}]}",
-				"82A55F74797065A170A1639182A55F74797065A463697465A16391A3666F6F",
-				"82A174A170A1639182A174A463697465A16391A3666F6F",
-				"(_type=p,c=@((_type=cite,c=@(foo))))",
-				"(t=p,c=@((t=cite,c=@(foo))))",
-				"_type=p&c=@((_type=cite,c=@(foo)))",
-				"t=p&c=@((t=cite,c=@(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"),
-				"<code>foo&#x000a;&#x0009;bar</code>",
-				"<code>foo&#x000a;&#x0009;bar</code>\n",
-				"<code>foo<br/><sp>&#x2003;</sp>bar</code>",
-				"<code>foo<br/><sp>&#x2003;</sp>bar</code>\n",
-				"{_type:'code',c:['foo\\n\\tbar']}",
-				"{t:'code',c:['foo\\n\\tbar']}",
-				"82A55F74797065A4636F6465A16391A8666F6F0A09626172",
-				"82A174A4636F6465A16391A8666F6F0A09626172",
-				"(_type=code,c=@('foo\n\tbar'))",
-				"(t=code,c=@('foo\n\tbar'))",
-				"_type=code&c=@('foo%0A%09bar')",
-				"t=code&c=@('foo%0A%09bar')",
+				/* 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",
@@ -421,18 +566,27 @@ public class BasicHtmlSchemaTest {
 					option("One"),
 					option("Two")
 				),
-				"<datalist id='foo'><option value='One'/><option value='Two'/></datalist>",
-				"<datalist id='foo'>\n\t<option value='One'/>\n\t<option value='Two'/>\n</datalist>\n",
-				"<datalist id='foo'><option value='One'/><option value='Two'/></datalist>",
-				"<datalist id='foo'>\n\t<option value='One'/>\n\t<option value='Two'/>\n</datalist>\n",
-				"{_type:'datalist',a:{id:'foo'},c:[{_type:'option',a:{value:'One'}},{_type:'option',a:{value:'Two'}}]}",
-				"{t:'datalist',a:{id:'foo'},c:[{t:'option',a:{value:'One'}},{t:'option',a:{value:'Two'}}]}",
-				"83A55F74797065A8646174616C697374A16181A26964A3666F6FA1639282A55F74797065A66F7074696F6EA16181A576616C7565A34F6E6582A55F74797065A66F7074696F6EA16181A576616C7565A354776F",
-				"83A174A8646174616C697374A16181A26964A3666F6FA1639282A174A66F7074696F6EA16181A576616C7565A34F6E6582A174A66F7074696F6EA16181A576616C7565A354776F",
-				"(_type=datalist,a=(id=foo),c=@((_type=option,a=(value=One)),(_type=option,a=(value=Two))))",
-				"(t=datalist,a=(id=foo),c=@((t=option,a=(value=One)),(t=option,a=(value=Two))))",
-				"_type=datalist&a=(id=foo)&c=@((_type=option,a=(value=One)),(_type=option,a=(value=Two)))",
-				"t=datalist&a=(id=foo)&c=@((t=option,a=(value=One)),(t=option,a=(value=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 value='Two'/></datalist>",
+				/* HtmlT */		"<datalist id='foo'><option value='One'/><option value='Two'/></datalist>",
+				/* HtmlR */		"<datalist id='foo'>\n\t<option value='One'/>\n\t<option value='Two'/>\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",
@@ -440,98 +594,152 @@ public class BasicHtmlSchemaTest {
 					dt("foo"),
 					dd("bar")
 				),
-				"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				"<dl>\n\t<dt>foo</dt>\n\t<dd>bar</dd>\n</dl>\n",
-				"<dl><dt>foo</dt><dd>bar</dd></dl>",
-				"<dl>\n\t<dt>foo</dt>\n\t<dd>bar</dd>\n</dl>\n",
-				"{_type:'dl',c:[{_type:'dt',c:['foo']},{_type:'dd',c:['bar']}]}",
-				"{t:'dl',c:[{t:'dt',c:['foo']},{t:'dd',c:['bar']}]}",
-				"82A55F74797065A2646CA1639282A55F74797065A26474A16391A3666F6F82A55F74797065A26464A16391A3626172",
-				"82A174A2646CA1639282A174A26474A16391A3666F6F82A174A26464A16391A3626172",
-				"(_type=dl,c=@((_type=dt,c=@(foo)),(_type=dd,c=@(bar))))",
-				"(t=dl,c=@((t=dt,c=@(foo)),(t=dd,c=@(bar))))",
-				"_type=dl&c=@((_type=dt,c=@(foo)),(_type=dd,c=@(bar)))",
-				"t=dl&c=@((t=dt,c=@(foo)),(t=dd,c=@(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")),
-				"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>\n",
-				"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>",
-				"<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>\n",
-				"{_type:'p',c:[{_type:'del',c:['foo',{_type:'b',c:['bbb']},'bar']},{_type:'ins',c:['baz']}]}",
-				"{t:'p',c:[{t:'del',c:['foo',{t:'b',c:['bbb']},'bar']},{t:'ins',c:['baz']}]}",
-				"82A55F74797065A170A1639282A55F74797065A364656CA16393A3666F6F82A55F74797065A162A16391A3626262A362617282A55F74797065A3696E73A16391A362617A",
-				"82A174A170A1639282A174A364656CA16393A3666F6F82A174A162A16391A3626262A362617282A174A3696E73A16391A362617A",
-				"(_type=p,c=@((_type=del,c=@(foo,(_type=b,c=@(bbb)),bar)),(_type=ins,c=@(baz))))",
-				"(t=p,c=@((t=del,c=@(foo,(t=b,c=@(bbb)),bar)),(t=ins,c=@(baz))))",
-				"_type=p&c=@((_type=del,c=@(foo,(_type=b,c=@(bbb)),bar)),(_type=ins,c=@(baz)))",
-				"t=p&c=@((t=del,c=@(foo,(t=b,c=@(bbb)),bar)),(t=ins,c=@(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")),
-				"<p><dfn>foo</dfn></p>",
-				"<p><dfn>foo</dfn></p>\n",
-				"<p><dfn>foo</dfn></p>",
-				"<p><dfn>foo</dfn></p>\n",
-				"{_type:'p',c:[{_type:'dfn',c:['foo']}]}",
-				"{t:'p',c:[{t:'dfn',c:['foo']}]}",
-				"82A55F74797065A170A1639182A55F74797065A364666EA16391A3666F6F",
-				"82A174A170A1639182A174A364666EA16391A3666F6F",
-				"(_type=p,c=@((_type=dfn,c=@(foo))))",
-				"(t=p,c=@((t=dfn,c=@(foo))))",
-				"_type=p&c=@((_type=dfn,c=@(foo)))",
-				"t=p&c=@((t=dfn,c=@(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"),
-				"<div>foo<b>bbb</b>bar</div>",
-				"<div>foo<b>bbb</b>bar</div>\n",
-				"<div>foo<b>bbb</b>bar</div>",
-				"<div>foo<b>bbb</b>bar</div>\n",
-				"{_type:'div',c:['foo',{_type:'b',c:['bbb']},'bar']}",
-				"{t:'div',c:['foo',{t:'b',c:['bbb']},'bar']}",
-				"82A55F74797065A3646976A16393A3666F6F82A55F74797065A162A16391A3626262A3626172",
-				"82A174A3646976A16393A3666F6F82A174A162A16391A3626262A3626172",
-				"(_type=div,c=@(foo,(_type=b,c=@(bbb)),bar))",
-				"(t=div,c=@(foo,(t=b,c=@(bbb)),bar))",
-				"_type=div&c=@(foo,(_type=b,c=@(bbb)),bar)",
-				"t=div&c=@(foo,(t=b,c=@(bbb)),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"),
-				"<p>foo<em>bar</em>baz</p>",
-				"<p>foo<em>bar</em>baz</p>\n",
-				"<p>foo<em>bar</em>baz</p>",
-				"<p>foo<em>bar</em>baz</p>\n",
-				"{_type:'p',c:['foo',{_type:'em',c:['bar']},'baz']}",
-				"{t:'p',c:['foo',{t:'em',c:['bar']},'baz']}",
-				"82A55F74797065A170A16393A3666F6F82A55F74797065A2656DA16391A3626172A362617A",
-				"82A174A170A16393A3666F6F82A174A2656DA16391A3626172A362617A",
-				"(_type=p,c=@(foo,(_type=em,c=@(bar)),baz))",
-				"(t=p,c=@(foo,(t=em,c=@(bar)),baz))",
-				"_type=p&c=@(foo,(_type=em,c=@(bar)),baz)",
-				"t=p&c=@(foo,(t=em,c=@(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"),
-				"<embed src='foo.swf'/>",
-				"<embed src='foo.swf'/>\n",
-				"<embed src='foo.swf'/>",
-				"<embed src='foo.swf'/>\n",
-				"{_type:'embed',a:{src:'foo.swf'}}",
-				"{t:'embed',a:{src:'foo.swf'}}",
-				"82A55F74797065A5656D626564A16181A3737263A7666F6F2E737766",
-				"82A174A5656D626564A16181A3737263A7666F6F2E737766",
-				"(_type=embed,a=(src=foo.swf))",
-				"(t=embed,a=(src=foo.swf))",
-				"_type=embed&a=(src=foo.swf)",
-				"t=embed&a=(src=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 */	

<TRUNCATED>