juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject [17/51] [partial] incubator-juneau git commit: Add project hierarchies, part 1
Date Sat, 02 Sep 2017 14:10:39 GMT
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
new file mode 100644
index 0000000..6be8583
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
@@ -0,0 +1,208 @@
+// ***************************************************************************************************************************
+// * 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.dto.cognos;
+
+import java.util.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.xml.annotation.*;
+
+/**
+ * Represents a Cognos dataset.
+ *
+ * <p>
+ * When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>):
+ * <p class='bcode'>
+ * 	<xt>&lt;?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?&gt;</xt>
+ * 	<xt>&lt;c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>&gt;</xt>
+ * 		<xt>&lt;c:metadata&gt;</xt>
+ * 			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs>
+ * 				<xa>length</xa>=<xs>'255'</xs><xt>/&gt;</xt>
+ * 			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
+ * 			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
+ * 		<xt>&lt;/c:metadata&gt;</xt>
+ * 		<xt>&lt;c:data&gt;</xt>
+ * 			<xt>&lt;c:row&gt;</xt>
+ * 				<xt>&lt;c:value&gt;</xt>Barack Obama<xt>&lt;/c:value&gt;</xt>
+ * 				<xt>&lt;c:value&gt;</xt>52<xt>&lt;/c:value&gt;</xt>
+ * 				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
+ * 			<xt>&lt;/c:row&gt;</xt>
+ * 			<xt>&lt;c:row&gt;</xt>
+ * 				<xt>&lt;c:value&gt;</xt>George Walker Bush<xt>&lt;/c:value&gt;</xt>
+ * 				<xt>&lt;c:value&gt;</xt>67<xt>&lt;/c:value&gt;</xt>
+ * 				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
+ * 			<xt>&lt;/c:row&gt;</xt>
+ * 		<xt>&lt;/c:data&gt;</xt>
+ * 	<xt>&lt;/c:dataset&gt;</xt>
+ * </p>
+ *
+ * <p>
+ * Only 2-dimensional POJOs (arrays or collections of maps or beans) can be serialized to Cognos.
+ *
+ * <h5 class='section'>Example:</h5>
+ *
+ * The construct shown above is a serialized <code>AddressBook</code> object which is a subclass of
+ * <code>LinkedList&lt;Person&gt;</code>.
+ * The code for generating the XML is as follows...
+ * </p>
+ * <p class='bcode'>
+ * 	Column[] items = {
+ * 		<jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255),
+ * 		<jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
+ * 		<jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
+ * 			.addPojoSwap(
+ * 				<jk>new</jk> PojoSwap&lt;Person,Integer&gt;() {
+ * 					<ja>@Override</ja>
+ * 					<jk>public</jk> Integer swap(Person p) {
+ * 						<jk>return</jk> p.<jf>addresses</jf>.size();
+ * 					}
+ * 				}
+ * 			)
+ * 	};
+ *
+ * 	DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>);
+ *
+ * 	String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds);
+ * </p>
+ */
+@SuppressWarnings("unchecked")
+@Bean(typeName="dataset", properties="metadata,data")
+public class DataSet {
+
+	private Column[] metaData;
+	private List<Row> data;
+
+	/** Bean constructor. */
+	public DataSet() {}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param columns The meta-data that represents the columns in the dataset.
+	 * @param o
+	 * 	The POJO being serialized to Cognos.
+	 * 	Must be an array/collection of beans/maps.
+	 * @param session The bean session used to convert POJOs to strings.
+	 * @throws Exception An error occurred trying to serialize the POJO.
+	 */
+	public DataSet(Column[] columns, Object o, BeanSession session) throws Exception {
+		metaData = columns;
+		data = new LinkedList<Row>();
+		if (o != null) {
+			if (o.getClass().isArray())
+				o = Arrays.asList((Object[])o);
+			if (o instanceof Collection) {
+				Collection<?> c = (Collection<?>)o;
+				for (Object o2 : c) {
+					Row r = new Row();
+					Map<?,?> m = null;
+					if (o2 instanceof Map)
+						m = (Map<?,?>)o2;
+					else
+						m = session.toBeanMap(o2);
+					for (Column col : columns) {
+						Object v;
+						if (col.pojoSwap != null)
+							v = col.pojoSwap.swap(session, o2);
+						else
+							v = m.get(col.getName());
+						r.add(v == null ? null : v.toString());
+					}
+					data.add(r);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Represents a row of data.
+	 *
+	 * <p>
+	 * When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>):
+	 * <p class='bcode'>
+	 * 	<xt>&lt;row&gt;</xt>
+	 * 		<xt>&lt;value&gt;</xt>Barack Obama<xt>&lt;/value&gt;</xt>
+	 * 		<xt>&lt;value&gt;</xt>52<xt>&lt;/value&gt;</xt>
+	 * 		<xt>&lt;value&gt;</xt>2<xt>&lt;/value&gt;</xt>
+	 * 	<xt>&lt;/row&gt;</xt>
+	 * </p>
+	 */
+	@Bean(typeName="row")
+	public static class Row {
+		private List<String> values = new LinkedList<String>();
+
+		private void add(String value) {
+			values.add(value);
+		}
+
+		/**
+		 * Returns the values in this row.
+		 *
+		 * @return The values in this row.
+		 */
+		@Xml(format=XmlFormat.COLLAPSED, childName="value")
+		public List<String> getValues() {
+			return values;
+		}
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Bean properties
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * Bean property getter:  <property>metadata</property>.
+	 *
+	 * @return The value of the <property>metadata</property> property on this bean, or <jk>null</jk> if it is not set.
+	 */
+	@BeanProperty("metadata")
+	public Column[] getMetaData() {
+		return metaData;
+	}
+
+	/**
+	 * Bean property setter:  <property>metadata</property>.
+	 *
+	 * @param metaData The new value for the <property>metadata</property> property on this bean.
+	 * @return This object (for method chaining).
+	 */
+	@BeanProperty("metadata")
+	public DataSet setMetaData(Column[] metaData) {
+		this.metaData = metaData;
+		return this;
+	}
+
+	/**
+	 * Bean property getter:  <property>data</property>.
+	 *
+	 * @return The value of the <property>data</property> property on this bean, or <jk>null</jk> if it is not set.
+	 */
+	@BeanProperty("data")
+	public List<Row> getData() {
+		return data;
+	}
+
+	/**
+	 * Bean property setter:  <property>data</property>.
+	 *
+	 * @param data The new value for the <property>data</property> property on this bean.
+	 * @return This object (for method chaining).
+	 */
+	@BeanProperty("data")
+	public DataSet setData(List<Row> data) {
+		this.data = data;
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png
new file mode 100644
index 0000000..fd63c23
Binary files /dev/null and b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png
new file mode 100644
index 0000000..44785ad
Binary files /dev/null and b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png
new file mode 100644
index 0000000..081e949
Binary files /dev/null and b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java
new file mode 100644
index 0000000..484563d
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java
@@ -0,0 +1,17 @@
+// ***************************************************************************************************************************
+// * 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.                                              *
+// ***************************************************************************************************************************
+// XML namespaces used in this package
+@XmlSchema(prefix="cognos", namespace="http://developer.cognos.com/schemas/xmldata/1/")
+package org.apache.juneau.dto.cognos;
+import org.apache.juneau.xml.annotation.*;
+

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html
new file mode 100644
index 0000000..b19a781
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML>
+<!--
+/***************************************************************************************************************************
+ * 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.
+ *
+ ***************************************************************************************************************************/
+ -->
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<style type="text/css">
+		/* For viewing in Page Designer */
+		@IMPORT url("../../../../../../javadoc.css");
+
+		/* For viewing in REST interface */
+		@IMPORT url("../htdocs/javadoc.css");
+		body { 
+			margin: 20px; 
+		}	
+	</style>
+	<script>
+		/* Replace all @code and @link tags. */	
+		window.onload = function() {
+			document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1</code>');
+			document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3</code>');
+		}
+	</script>
+</head>
+<body>
+<p>Cognos Data Transfer Objects</p>
+<script>
+	function toggle(x) {
+		var div = x.nextSibling;
+		while (div != null && div.nodeType != 1)
+			div = div.nextSibling;
+		if (div != null) {
+			var d = div.style.display;
+			if (d == 'block' || d == '') {
+				div.style.display = 'none';
+				x.className += " closed";
+			} else {
+				div.style.display = 'block';
+				x.className = x.className.replace(/(?:^|\s)closed(?!\S)/g , '' );
+			}
+		}
+	}
+</script>
+<a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
+<ol class='toc'>
+	<li><p><a class='doclink' href='#CognosSerializer'>Cognos serialization support</a></p>
+	<li><p><a class='doclink' href='#CognosParser'>Cognos parsing support</a></p>
+</ol>
+
+<!-- ======================================================================================================== -->
+<a id="CognosSerializer"></a>
+<h2 class='topic' onclick='toggle(this)'>1 - Cognos serialization support</h2>
+<div class='topic'>
+	<p>
+		The {@link org.apache.juneau.dto.cognos.DataSet} class is a DTO used to convert POJO models directly to Cognos-XML.
+	</p>
+	<p>
+		Because of the nature of the Cognos XML syntax, only <i>2-dimensional</i> POJO data structures can be serialized to Cognos-XML.
+	</p>
+	<p>
+		For example...
+	</p>
+	<ul class='normal'>
+		<li><code>Collection&lt;Bean&gt;</code>
+		<li><code>Collection&lt;Map&gt;</code>
+		<li>{@code MyBean[]}
+		<li>{@code HashMap[]}
+	</ul>
+	
+	<h6 class='topic'>Example:</h6>
+	<p>
+		The following example shows how to generate Cognos-XML from a POJO.  
+		The example uses the <a class='doclink' href='../../doc-files/AddressBook.html'>AddressBook</a> sample POJO.
+		It should be noted that since the {@code AddressBook} class is a subclass of {@code LinkedList}, it fulfills
+			the requirement of being a tabular data structure.  
+	</p>
+	<p class='bcode'>
+	<jc>// Create our POJO with some entries.</jc>
+	AddressBook addressBook = <jk>new</jk> AddressBook();
+	addressBook.add(
+		<jk>new</jk> Person(<js>"Barack Obama"</js>, <js>"Aug 4, 1961"</js>,
+			<jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>),
+			<jk>new</jk> Address(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>)
+		)
+	);
+	addressBook.add(
+		<jk>new</jk> Person(<js>"George Walker Bush"</js>, <js>"Jul 6, 1946"</js>,
+			<jk>new</jk> Address(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>),
+			<jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>)
+		)
+	);
+
+	<jc>// Define the Cognos metadata</jc>
+	Column[] items = {
+		<jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255),
+		<jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
+		<jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
+			.addPojoSwap(
+				<jk>new</jk> PojoSwap&lt;Person,Integer&gt;() {
+					<ja>@Override</ja>
+					<jk>public</jk> Integer swap(BeanSession session, Person p) {
+						<jk>return</jk> p.<jf>addresses</jf>.size();
+					}
+				}
+			)
+	};
+	
+	<jc>// Create the Cognos DataSet object</jc>
+	DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>);
+	
+	<jc>// Serialize it to XML</jc>
+	String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds);
+	</p>
+	<p>
+		When run, this code produces the following XML...
+	</p>
+	<p class='bcode'>
+	<xt>&lt;?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?&gt;</xt>
+	<xt>&lt;c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>&gt;</xt>
+		<xt>&lt;c:metadata&gt;</xt>
+			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs><xt>/&gt;</xt>
+			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
+			<xt>&lt;c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/&gt;</xt>
+		<xt>&lt;/c:metadata&gt;</xt>
+		<xt>&lt;c:data&gt;</xt>
+			<xt>&lt;c:row&gt;</xt>
+				<xt>&lt;c:value&gt;</xt>Barack Obama<xt>&lt;/c:value&gt;</xt>
+				<xt>&lt;c:value&gt;</xt>52<xt>&lt;/c:value&gt;</xt>
+				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
+			<xt>&lt;/c:row&gt;</xt>
+			<xt>&lt;c:row&gt;</xt>
+				<xt>&lt;c:value&gt;</xt>George Walker Bush<xt>&lt;/c:value&gt;</xt>
+				<xt>&lt;c:value&gt;</xt>67<xt>&lt;/c:value&gt;</xt>
+				<xt>&lt;c:value&gt;</xt>2<xt>&lt;/c:value&gt;</xt>
+			<xt>&lt;/c:row&gt;</xt>
+		<xt>&lt;/c:data&gt;</xt>
+	<xt>&lt;/c:dataset&gt;</xt>
+	</p>
+	
+	<h6 class='topic'>Other data formats</h6>
+	<p>
+		The following shows examples of what this data structure looks like when serialized to other formats:
+	</p>
+	
+	<h6 class='figure'>HTML</h6>
+	<img class='bordered' src='doc-files/HTML.png'>
+	
+	<h6 class='figure'>JSON</h6>
+	<img class='bordered' src='doc-files/JSON.png'>
+	
+	<h6 class='figure'>RDF/XML</h6>
+	<img class='bordered' src='doc-files/RDFXML.png'>
+</div>
+
+<!-- ======================================================================================================== -->
+<a id="CognosParser"></a>
+<h2 class='topic' onclick='toggle(this)'>2 - Cognos parsing support</h2>
+<div class='topic'>
+	<p>
+		The {@link org.apache.juneau.dto.cognos.DataSet} class can be reconstructed from Cognos/XML using one of the standard XML parsers.
+	</p>
+	
+	<h6 class='topic'>Example:</h6>
+	<p class='bcode'>
+	<jc>// Parse XML back into original DataSet</jc> 
+	DataSet ds = XmlParser.<jsf>DEFAULT</jsf>.parse(xml, DataSet.<jk>class</jk>);
+	</p>
+</div>
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java
new file mode 100644
index 0000000..5138fcc
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java
@@ -0,0 +1,169 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import java.net.*;
+import java.net.URI;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element">&lt;a&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="a")
+public class A extends HtmlElementMixed {
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-download">download</a> attribute.
+	 *
+	 * <p>
+	 * Whether to download the resource instead of navigating to it, and its file name if so.
+	 *
+	 * @param download
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link Boolean} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final A download(Object download) {
+		attr("download", download);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-href">href</a> attribute.
+	 *
+	 * <p>
+	 * Address of the hyperlink.
+	 *
+	 * <p>
+	 * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}.
+	 * Strings must be valid URIs.
+	 *
+	 * <p>
+	 * URIs defined by {@link UriResolver} can be used for values.
+	 *
+	 * @param href
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link URL} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final A href(Object href) {
+		attrUri("href", href);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-hreflang">hreflang</a> attribute.
+	 *
+	 * <p>
+	 * Language of the linked resource.
+	 *
+	 * @param hreflang The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final A hreflang(String hreflang) {
+		attr("hreflang", hreflang);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-rel">rel</a> attribute.
+	 *
+	 * <p>
+	 * Relationship between the document containing the hyperlink and the destination resource.
+	 *
+	 * @param rel The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final A rel(String rel) {
+		attr("rel", rel);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-target">target</a> attribute.
+	 *
+	 * <p>
+	 * Default browsing context for hyperlink navigation and form submission.
+	 *
+	 * @param target The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final A target(String target) {
+		attr("target", target);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-type">type</a> attribute.
+	 *
+	 * <p>
+	 * Hint for the type of the referenced resource.
+	 *
+	 * @param type The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final A type(String type) {
+		attr("type", type);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final A _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final A id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final A style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public A children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public A child(Object child) {
+		super.child(child);
+		return this;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java
new file mode 100644
index 0000000..0e2c075
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java
@@ -0,0 +1,75 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-abbr-element">&lt;abbr&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="abbr")
+public class Abbr extends HtmlElementMixed {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Abbr _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Abbr id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Abbr style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Abbr title(String title) {
+		super.title(title);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Abbr children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Abbr child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java
new file mode 100644
index 0000000..cd60484
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java
@@ -0,0 +1,69 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-address-element">&lt;address&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="address")
+public class Address extends HtmlElementMixed {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Address _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Address id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Address style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Address children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Address child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java
new file mode 100644
index 0000000..97a4463
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java
@@ -0,0 +1,200 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import java.net.*;
+import java.net.URI;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#the-area-element">&lt;area&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="area")
+public class Area extends HtmlElementVoid {
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-area-alt">alt</a> attribute.
+	 *
+	 * <p>
+	 * Replacement text for use when images are not available.
+	 *
+	 * @param alt The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area alt(String alt) {
+		attr("alt", alt);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-area-coords">coords</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Coordinates for the shape to be created in an image map.
+	 *
+	 * @param coords The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area coords(String coords) {
+		attr("coords", coords);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-download">download</a> attribute.
+	 *
+	 * <p>
+	 * Whether to download the resource instead of navigating to it, and its file name if so.
+	 *
+	 * @param download
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link Boolean} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Area download(Object download) {
+		attr("download", download);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-href">href</a> attribute.
+	 *
+	 * <p>
+	 * Address of the hyperlink.
+	 *
+	 * <p>
+	 * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}.
+	 * Strings must be valid URIs.
+	 *
+	 * <p>
+	 * URIs defined by {@link UriResolver} can be used for values.
+	 *
+	 * @param href
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link URL} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Area href(Object href) {
+		attrUri("href", href);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-hreflang">hreflang</a> attribute.
+	 *
+	 * <p>
+	 * Language of the linked resource.
+	 *
+	 * @param hreflang The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area hreflang(String hreflang) {
+		attr("hreflang", hreflang);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-rel">rel</a> attribute.
+	 *
+	 * <p>
+	 * Relationship between the document containing the hyperlink and the destination resource.
+	 *
+	 * @param rel The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area rel(String rel) {
+		attr("rel", rel);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-area-shape">shape</a> attribute.
+	 *
+	 * <p>
+	 * The kind of shape to be created in an image map.
+	 *
+	 * @param shape The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area shape(String shape) {
+		attr("shape", shape);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-target">target</a> attribute.
+	 *
+	 * <p>
+	 * Browsing context for hyperlink navigation.
+	 *
+	 * @param target The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area target(String target) {
+		attr("target", target);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-type">type</a> attribute.
+	 *
+	 * <p>
+	 * Hint for the type of the referenced resource.
+	 *
+	 * @param type The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Area type(String type) {
+		attr("type", type);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Area _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Area id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Area style(String style) {
+		super.style(style);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java
new file mode 100644
index 0000000..519e4b0
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java
@@ -0,0 +1,114 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-article-element">&lt;article&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="article")
+public class Article extends HtmlElementMixed {
+
+	/**
+	 * Adds a header node to this element.
+	 *
+	 * @param children The children inside the header node.
+	 * @return This object (for method chaining).
+	 */
+	public Article header(Object...children) {
+		super.child(HtmlBuilder.header(children));
+		return this;
+	}
+
+	/**
+	 * Adds a footer node to this element.
+	 *
+	 * @param children The children inside the footer node.
+	 * @return This object (for method chaining).
+	 */
+	public Article footer(Object...children) {
+		super.child(HtmlBuilder.footer(children));
+		return this;
+	}
+
+	/**
+	 * Adds a link node to this element.
+	 *
+	 * @param link The link node to add to this article.
+	 * @return This object (for method chaining).
+	 */
+	public Article link(Link link) {
+		super.child(link);
+		return this;
+	}
+
+	/**
+	 * Adds a section node to this element.
+	 *
+	 * @param section The section node to add to this article.
+	 * @return This object (for method chaining).
+	 */
+	public Article section(Section section) {
+		super.child(section);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Article _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Article id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Article style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Article children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Article child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java
new file mode 100644
index 0000000..ca5cf08
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java
@@ -0,0 +1,69 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-aside-element">&lt;aside&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="aside")
+public class Aside extends HtmlElementMixed {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Aside _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Aside id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Aside style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Aside children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Aside child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java
new file mode 100644
index 0000000..1acd391
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java
@@ -0,0 +1,209 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import java.net.*;
+import java.net.URI;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#the-audio-element">&lt;audio&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="audio")
+public class Audio extends HtmlElementContainer {
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-autoplay">autoplay</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Hint that the media resource can be started automatically when the page is loaded.
+	 *
+	 * @param autoplay
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link Boolean} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio autoplay(Object autoplay) {
+		attr("autoplay", autoplay);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-controls">controls</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Show user agent controls.
+	 *
+	 * @param controls
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link Boolean} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio controls(Object controls) {
+		attr("controls", controls);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-crossorigin">crossorigin</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * How the element handles cross-origin requests.
+	 *
+	 * @param crossorigin The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio crossorigin(String crossorigin) {
+		attr("crossorigin", crossorigin);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-loop">loop</a> attribute.
+	 *
+	 * <p>
+	 * Whether to loop the media resource.
+	 *
+	 * @param loop
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link Boolean} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio loop(Object loop) {
+		attr("loop", loop);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-mediagroup">mediagroup</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Groups media elements together with an implicit MediaController.
+	 *
+	 * @param mediagroup The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio mediagroup(String mediagroup) {
+		attr("mediagroup", mediagroup);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-muted">muted</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Whether to mute the media resource by default.
+	 *
+	 * @param muted
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link Boolean} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio muted(Object muted) {
+		attr("muted", muted);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-preload">preload</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Hints how much buffering the media resource will likely need.
+	 *
+	 * @param preload The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio preload(Object preload) {
+		attr("preload", preload);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-src">src</a> attribute.
+	 *
+	 * <p>
+	 * Address of the resource.
+	 *
+	 * <p>
+	 * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}.
+	 * Strings must be valid URIs.
+	 *
+	 * <p>
+	 * URIs defined by {@link UriResolver} can be used for values.
+	 *
+	 * @param src
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link URL} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Audio src(Object src) {
+		attrUri("src", src);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Audio _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Audio id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Audio style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementContainer */
+	public final Audio children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementContainer */
+	public final Audio child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java
new file mode 100644
index 0000000..d4beaba
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java
@@ -0,0 +1,69 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-b-element">&lt;b&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="b")
+public class B extends HtmlElementMixed {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final B _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final B id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final B style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public B children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public B child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java
new file mode 100644
index 0000000..253be94
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java
@@ -0,0 +1,100 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import java.net.*;
+import java.net.URI;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/document-metadata.html#the-base-element">&lt;base&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="base")
+public class Base extends HtmlElementVoid {
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/document-metadata.html#attr-base-href">href</a> attribute.
+	 *
+	 * <p>
+	 * Document base URL.
+	 *
+	 * <p>
+	 * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}.
+	 * Strings must be valid URIs.
+	 *
+	 * <p>
+	 * URIs defined by {@link UriResolver} can be used for values.
+	 *
+	 * @param href
+	 * 	The new value for this attribute.
+	 * 	Typically a {@link URL} or {@link String}.
+	 * @return This object (for method chaining).
+	 */
+	public final Base href(Object href) {
+		attrUri("href", href);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/document-metadata.html#attr-base-target">target</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Default browsing context for hyperlink navigation and form submission.
+	 *
+	 * @param target The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Base target(String target) {
+		attr("target", target);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Base _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Base id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Base style(String style) {
+		super.style(style);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java
new file mode 100644
index 0000000..bba51e5
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java
@@ -0,0 +1,63 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-bdi-element">&lt;bdi&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="bdi")
+public class Bdi extends HtmlElementText {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Bdi _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Bdi id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Bdi style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementText */
+	public Bdi text(Object text) {
+		super.text(text);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java
new file mode 100644
index 0000000..b8c6acf
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java
@@ -0,0 +1,75 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-bdo-element">&lt;bdo&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="bdo")
+public class Bdo extends HtmlElementMixed {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Bdo _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public Bdo dir(String dir) {
+		super.dir(dir);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Bdo id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Bdo style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Bdo children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Bdo child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java
new file mode 100644
index 0000000..bcaa2db
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java
@@ -0,0 +1,85 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#the-blockquote-element">&lt;blockquote&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="blockquote")
+public class Blockquote extends HtmlElementMixed {
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#attr-blockquote-cite">cite</a>
+	 * attribute.
+	 *
+	 * <p>
+	 * Link to the source of the quotation.
+	 *
+	 * @param cite The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Blockquote cite(String cite) {
+		attr("cite", cite);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Blockquote _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Blockquote id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Blockquote style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Blockquote children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Blockquote child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java
new file mode 100644
index 0000000..8bd8b3f
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java
@@ -0,0 +1,142 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-body-element">&lt;body&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="body")
+public class Body extends HtmlElementMixed {
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onafterprint">onafterprint</a>
+	 * attribute.
+	 *
+	 * @param onafterprint The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Body onafterprint(String onafterprint) {
+		attr("onafterprint", onafterprint);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onbeforeunload">onbeforeunload</a>
+	 * attribute.
+	 *
+	 * @param onbeforeunload The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Body onbeforeunload(String onbeforeunload) {
+		attr("onbeforeunload", onbeforeunload);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onmessage">onmessage</a>
+	 * attribute.
+	 *
+	 * @param onmessage The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Body onmessage(String onmessage) {
+		attr("onmessage", onmessage);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-ononline">ononline</a>
+	 * attribute.
+	 *
+	 * @param ononline The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Body ononline(String ononline) {
+		attr("ononline", ononline);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onpageshow">onpageshow</a>
+	 * attribute.
+	 *
+	 * @param onpageshow The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Body onpageshow(String onpageshow) {
+		attr("onpageshow", onpageshow);
+		return this;
+	}
+
+	/**
+	 * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onstorage">onstorage</a>
+	 * attribute.
+	 *
+	 * @param onstorage The new value for this attribute.
+	 * @return This object (for method chaining).
+	 */
+	public final Body onstorage(String onstorage) {
+		attr("onstorage", onstorage);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Body _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Body id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Body style(String style) {
+		super.style(style);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Body children(Object...children) {
+		super.children(children);
+		return this;
+	}
+
+	@Override /* HtmlElementMixed */
+	public Body child(Object child) {
+		super.child(child);
+		return this;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java
new file mode 100644
index 0000000..e7eba5e
--- /dev/null
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java
@@ -0,0 +1,57 @@
+// ***************************************************************************************************************************
+// * 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.dto.html5;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-br-element">&lt;br&gt;</a>
+ * element.
+ *
+ * <h6 class='topic'>Additional Information</h6>
+ * <ul class='doctree'>
+ * 	<li class='link'>
+ * 		<a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects
+ * 		(org.apache.juneau.dto)</a>
+ * 		<ul>
+ * 			<li class='sublink'>
+ * 				<a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a>
+ * 		</ul>
+ *		</li>
+ * </ul>
+ */
+@Bean(typeName="br")
+public class Br extends HtmlElementVoid {
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* HtmlElement */
+	public final Br _class(String _class) {
+		super._class(_class);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Br id(String id) {
+		super.id(id);
+		return this;
+	}
+
+	@Override /* HtmlElement */
+	public final Br style(String style) {
+		super.style(style);
+		return this;
+	}
+}


Mime
View raw message