http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Iframe.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Iframe.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Iframe.java
index 5afcaee..da3f860 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Iframe.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Iframe.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import java.net.*;
+
 import org.apache.juneau.annotation.*;
 
 /**
@@ -19,17 +21,17 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="iframe")
-@SuppressWarnings("hiding")
 public class Iframe extends HtmlElementMixed {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-height'>height</a>
 attribute.
         * Vertical dimension.
         * @param height - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Iframe height(String height) {
-               attrs.put("height", height);
+       public final Iframe height(Object height) {
+               attr("height", height);
                return this;
        }
 
@@ -40,7 +42,7 @@ public class Iframe extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Iframe name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -51,7 +53,7 @@ public class Iframe extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Iframe sandbox(String sandbox) {
-               attrs.put("sandbox", sandbox);
+               attr("sandbox", sandbox);
                return this;
        }
 
@@ -59,10 +61,11 @@ public class Iframe extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-iframe-src'>src</a>
 attribute.
         * Address of the resource.
         * @param src - The new value for this attribute.
+        *      Typically a {@link URL} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Iframe src(String src) {
-               attrs.put("src", src);
+       public final Iframe src(Object src) {
+               attr("src", src);
                return this;
        }
 
@@ -73,7 +76,7 @@ public class Iframe extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Iframe srcdoc(String srcdoc) {
-               attrs.put("srcdoc", srcdoc);
+               attr("srcdoc", srcdoc);
                return this;
        }
 
@@ -81,10 +84,11 @@ public class Iframe extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-width'>width</a>
 attribute.
         * Horizontal dimension.
         * @param width - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Iframe width(String width) {
-               attrs.put("width", width);
+       public final Iframe width(Object width) {
+               attr("width", width);
                return this;
        }
 
@@ -112,7 +116,7 @@ public class Iframe extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Iframe child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Img.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Img.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Img.java
index a0e05a4..28be530 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Img.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Img.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import java.net.*;
+
 import org.apache.juneau.annotation.*;
 
 /**
@@ -27,7 +29,7 @@ public class Img extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Img alt(String alt) {
-               attrs.put("alt", alt);
+               attr("alt", alt);
                return this;
        }
 
@@ -38,7 +40,7 @@ public class Img extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Img crossorigin(String crossorigin) {
-               attrs.put("crossorigin", crossorigin);
+               attr("crossorigin", crossorigin);
                return this;
        }
 
@@ -46,10 +48,11 @@ public class Img extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-height'>height</a>
 attribute.
         * Vertical dimension.
         * @param height - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Img height(String height) {
-               attrs.put("height", height);
+       public final Img height(Object height) {
+               attr("height", height);
                return this;
        }
 
@@ -57,10 +60,11 @@ public class Img extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-img-ismap'>ismap</a>
 attribute.
         * Whether the image is a server-side image map.
         * @param ismap - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Img ismap(String ismap) {
-               attrs.put("ismap", ismap);
+       public final Img ismap(Object ismap) {
+               attr("ismap", ismap);
                return this;
        }
 
@@ -68,10 +72,11 @@ public class Img extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-img-src'>src</a> 
attribute.
         * Address of the resource.
         * @param src - The new value for this attribute.
+        *      Typically a {@link URL} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Img src(String src) {
-               attrs.put("src", src);
+       public final Img src(Object src) {
+               attr("src", src);
                return this;
        }
 
@@ -82,7 +87,7 @@ public class Img extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Img usemap(String usemap) {
-               attrs.put("usemap", usemap);
+               attr("usemap", usemap);
                return this;
        }
 
@@ -90,10 +95,11 @@ public class Img extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-width'>width</a>
 attribute.
         * Horizontal dimension.
         * @param width - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Img width(String width) {
-               attrs.put("width", width);
+       public final Img width(Object width) {
+               attr("width", width);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Input.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Input.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Input.java
index 3f8831d..fce1b01 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Input.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Input.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import java.net.*;
+
 import org.apache.juneau.annotation.*;
 
 /**
@@ -28,7 +30,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input accept(String accept) {
-               attrs.put("accept", accept);
+               attr("accept", accept);
                return this;
        }
 
@@ -39,7 +41,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input alt(String alt) {
-               attrs.put("alt", alt);
+               attr("alt", alt);
                return this;
        }
 
@@ -50,7 +52,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input autocomplete(String autocomplete) {
-               attrs.put("autocomplete", autocomplete);
+               attr("autocomplete", autocomplete);
                return this;
        }
 
@@ -61,7 +63,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input autofocus(String autofocus) {
-               attrs.put("autofocus", autofocus);
+               attr("autofocus", autofocus);
                return this;
        }
 
@@ -69,10 +71,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-checked'>checked</a> 
attribute.
         * Whether the command or control is checked.
         * @param checked - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input checked(String checked) {
-               attrs.put("checked", checked);
+       public final Input checked(Object checked) {
+               attr("checked", checked);
                return this;
        }
 
@@ -83,7 +86,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input dirname(String dirname) {
-               attrs.put("dirname", dirname);
+               attr("dirname", dirname);
                return this;
        }
 
@@ -91,10 +94,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-fe-disabled'>disabled</a> 
attribute.
         * Whether the form control is disabled.
         * @param disabled - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input disabled(String disabled) {
-               attrs.put("disabled", disabled);
+       public final Input disabled(Object disabled) {
+               attr("disabled", disabled);
                return this;
        }
 
@@ -105,7 +109,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input form(String form) {
-               attrs.put("form", form);
+               attr("form", form);
                return this;
        }
 
@@ -116,7 +120,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input formaction(String formaction) {
-               attrs.put("formaction", formaction);
+               attr("formaction", formaction);
                return this;
        }
 
@@ -127,7 +131,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input formenctype(String formenctype) {
-               attrs.put("formenctype", formenctype);
+               attr("formenctype", formenctype);
                return this;
        }
 
@@ -138,7 +142,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input formmethod(String formmethod) {
-               attrs.put("formmethod", formmethod);
+               attr("formmethod", formmethod);
                return this;
        }
 
@@ -149,7 +153,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input formnovalidate(String formnovalidate) {
-               attrs.put("formnovalidate", formnovalidate);
+               attr("formnovalidate", formnovalidate);
                return this;
        }
 
@@ -160,7 +164,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input formtarget(String formtarget) {
-               attrs.put("formtarget", formtarget);
+               attr("formtarget", formtarget);
                return this;
        }
 
@@ -168,10 +172,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-height'>height</a>
 attribute.
         * Vertical dimension.
         * @param height - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input height(String height) {
-               attrs.put("height", height);
+       public final Input height(Object height) {
+               attr("height", height);
                return this;
        }
 
@@ -182,7 +187,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input inputmode(String inputmode) {
-               attrs.put("inputmode", inputmode);
+               attr("inputmode", inputmode);
                return this;
        }
 
@@ -193,7 +198,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input list(String list) {
-               attrs.put("list", list);
+               attr("list", list);
                return this;
        }
 
@@ -201,10 +206,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-max'>max</a> attribute.
         * Maximum value.
         * @param max - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input max(String max) {
-               attrs.put("max", max);
+       public final Input max(Object max) {
+               attr("max", max);
                return this;
        }
 
@@ -212,10 +218,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-maxlength'>maxlength</a>
 attribute.
         * Maximum length of value.
         * @param maxlength - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input maxlength(String maxlength) {
-               attrs.put("maxlength", maxlength);
+       public final Input maxlength(Object maxlength) {
+               attr("maxlength", maxlength);
                return this;
        }
 
@@ -223,10 +230,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-min'>min</a> attribute.
         * Minimum value.
         * @param min - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input min(String min) {
-               attrs.put("min", min);
+       public final Input min(Object min) {
+               attr("min", min);
                return this;
        }
 
@@ -234,10 +242,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-minlength'>minlength</a>
 attribute.
         * Minimum length of value.
         * @param minlength - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input minlength(String minlength) {
-               attrs.put("minlength", minlength);
+       public final Input minlength(Object minlength) {
+               attr("minlength", minlength);
                return this;
        }
 
@@ -245,10 +254,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-multiple'>multiple</a> 
attribute.
         * Whether to allow multiple values.
         * @param multiple - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input multiple(String multiple) {
-               attrs.put("multiple", multiple);
+       public final Input multiple(Object multiple) {
+               attr("multiple", multiple);
                return this;
        }
 
@@ -259,7 +269,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -270,7 +280,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input pattern(String pattern) {
-               attrs.put("pattern", pattern);
+               attr("pattern", pattern);
                return this;
        }
 
@@ -281,7 +291,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input placeholder(String placeholder) {
-               attrs.put("placeholder", placeholder);
+               attr("placeholder", placeholder);
                return this;
        }
 
@@ -289,10 +299,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-readonly'>readonly</a> 
attribute.
         * Whether to allow the value to be edited by the user.
         * @param readonly - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input readonly(String readonly) {
-               attrs.put("readonly", readonly);
+       public final Input readonly(Object readonly) {
+               attr("readonly", readonly);
                return this;
        }
 
@@ -300,10 +311,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-readonly'>required</a> 
attribute.
         * Whether the control is required for form submission.
         * @param required - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input required(String required) {
-               attrs.put("required", required);
+       public final Input required(Object required) {
+               attr("required", required);
                return this;
        }
 
@@ -311,10 +323,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-size'>size</a> 
attribute.
         * Size of the control.
         * @param size - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input size(String size) {
-               attrs.put("size", size);
+       public final Input size(Object size) {
+               attr("size", size);
                return this;
        }
 
@@ -322,10 +335,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-src'>src</a> attribute.
         * Address of the resource.
         * @param src - The new value for this attribute.
+        *      Typically a {@link URL} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input src(String src) {
-               attrs.put("src", src);
+       public final Input src(Object src) {
+               attr("src", src);
                return this;
        }
 
@@ -336,7 +350,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input step(String step) {
-               attrs.put("step", step);
+               attr("step", step);
                return this;
        }
 
@@ -347,7 +361,7 @@ public class Input extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Input type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 
@@ -355,10 +369,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-input-value'>value</a> 
attribute.
         * Value of the form control.
         * @param value - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input value(String value) {
-               attrs.put("value", value);
+       public final Input value(Object value) {
+               attr("value", value);
                return this;
        }
 
@@ -366,10 +381,11 @@ public class Input extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-width'>width</a>
 attribute.
         * Horizontal dimension.
         * @param width - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Input width(String width) {
-               attrs.put("width", width);
+       public final Input width(Object width) {
+               attr("width", width);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ins.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ins.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ins.java
index a2bc4a3..e948e26 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ins.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ins.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="ins")
-@SuppressWarnings("hiding")
 public class Ins extends HtmlElementMixed {
 
        /**
@@ -29,7 +28,7 @@ public class Ins extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Ins cite(String cite) {
-               attrs.put("cite", cite);
+               attr("cite", cite);
                return this;
        }
 
@@ -40,7 +39,7 @@ public class Ins extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Ins datetime(String datetime) {
-               attrs.put("datetime", datetime);
+               attr("datetime", datetime);
                return this;
        }
 
@@ -68,7 +67,7 @@ public class Ins extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Ins child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Kbd.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Kbd.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Kbd.java
index 07f34b1..c6a61de 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Kbd.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Kbd.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="kbd")
-@SuppressWarnings("hiding")
 public class Kbd extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Kbd extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Kbd child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Keygen.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Keygen.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Keygen.java
index 57e0129..dbcc4f4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Keygen.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Keygen.java
@@ -25,10 +25,11 @@ public class Keygen extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-fe-autofocus'>autofocus</a> 
attribute.
         * Automatically focus the form control when the page is loaded.
         * @param autofocus - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Keygen autofocus(String autofocus) {
-               attrs.put("autofocus", autofocus);
+       public final Keygen autofocus(Object autofocus) {
+               attr("autofocus", autofocus);
                return this;
        }
 
@@ -39,7 +40,7 @@ public class Keygen extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Keygen challenge(String challenge) {
-               attrs.put("challenge", challenge);
+               attr("challenge", challenge);
                return this;
        }
 
@@ -47,10 +48,11 @@ public class Keygen extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-fe-disabled'>disabled</a> 
attribute.
         * Whether the form control is disabled.
         * @param disabled - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Keygen disabled(String disabled) {
-               attrs.put("disabled", disabled);
+       public final Keygen disabled(Object disabled) {
+               attr("disabled", disabled);
                return this;
        }
 
@@ -61,7 +63,7 @@ public class Keygen extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Keygen form(String form) {
-               attrs.put("form", form);
+               attr("form", form);
                return this;
        }
 
@@ -72,7 +74,7 @@ public class Keygen extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Keygen keytype(String keytype) {
-               attrs.put("keytype", keytype);
+               attr("keytype", keytype);
                return this;
        }
 
@@ -83,7 +85,7 @@ public class Keygen extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Keygen name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Label.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Label.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Label.java
index 16d0bc6..ea13dac 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Label.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Label.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="label")
-@SuppressWarnings("hiding")
 public class Label extends HtmlElementMixed {
 
        /**
@@ -29,7 +28,7 @@ public class Label extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Label _for(String _for) {
-               attrs.put("for", _for);
+               attr("for", _for);
                return this;
        }
 
@@ -40,7 +39,7 @@ public class Label extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Label form(String form) {
-               attrs.put("form", form);
+               attr("form", form);
                return this;
        }
 
@@ -68,7 +67,7 @@ public class Label extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Label child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Legend.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Legend.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Legend.java
index 92b29d4..16756a0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Legend.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Legend.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="legend")
-@SuppressWarnings("hiding")
 public class Legend extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Legend extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Legend child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Li.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Li.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Li.java
index 8a5b387..94bae01 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Li.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Li.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="li")
-@SuppressWarnings("hiding")
 public class Li extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Li extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Li child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Link.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Link.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Link.java
index d28f40b..9513e1c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Link.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Link.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import java.net.*;
+
 import org.apache.juneau.annotation.*;
 
 /**
@@ -28,7 +30,7 @@ public class Link extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Link crossorigin(String crossorigin) {
-               attrs.put("crossorigin", crossorigin);
+               attr("crossorigin", crossorigin);
                return this;
        }
 
@@ -36,10 +38,11 @@ public class Link extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/document-metadata.html#attr-link-href'>href</a>
 attribute.
         * Address of the hyperlink.
         * @param href - The new value for this attribute.
+        *      Typically a {@link URL} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Link href(String href) {
-               attrs.put("href", href);
+       public final Link href(Object href) {
+               attr("href", href);
                return this;
        }
 
@@ -50,7 +53,7 @@ public class Link extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Link hreflang(String hreflang) {
-               attrs.put("hreflang", hreflang);
+               attr("hreflang", hreflang);
                return this;
        }
 
@@ -61,7 +64,7 @@ public class Link extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Link media(String media) {
-               attrs.put("media", media);
+               attr("media", media);
                return this;
        }
 
@@ -72,7 +75,7 @@ public class Link extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Link rel(String rel) {
-               attrs.put("rel", rel);
+               attr("rel", rel);
                return this;
        }
 
@@ -83,7 +86,7 @@ public class Link extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Link sizes(String sizes) {
-               attrs.put("sizes", sizes);
+               attr("sizes", sizes);
                return this;
        }
 
@@ -94,7 +97,7 @@ public class Link extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Link type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Main.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Main.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Main.java
index 7605126..94b410d 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Main.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Main.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="main")
-@SuppressWarnings("hiding")
 public class Main extends HtmlElementContainer {
 
        
//--------------------------------------------------------------------------------
@@ -27,12 +26,6 @@ public class Main extends HtmlElementContainer {
        
//--------------------------------------------------------------------------------
 
        @Override /* HtmlElement */
-       public Main children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElement */
        public final Main _class(String _class) {
                super._class(_class);
                return this;
@@ -43,4 +36,16 @@ public class Main extends HtmlElementContainer {
                super.id(id);
                return this;
        }
+
+       @Override /* HtmlElementContainer */
+       public final Main children(Object...children) {
+               super.children(children);
+               return this;
+       }
+
+       @Override /* HtmlElementContainer */
+       public final Main child(Object child) {
+               super.child(child);
+               return this;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Map.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Map.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Map.java
index 10e4261..281f272 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Map.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Map.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="map")
-@SuppressWarnings("hiding")
 public class Map extends HtmlElementContainer {
 
        /**
@@ -29,7 +28,7 @@ public class Map extends HtmlElementContainer {
         * @return This object (for method chaining).
         */
        public final Map name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -38,12 +37,6 @@ public class Map extends HtmlElementContainer {
        
//--------------------------------------------------------------------------------
 
        @Override /* HtmlElement */
-       public Map children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElement */
        public final Map _class(String _class) {
                super._class(_class);
                return this;
@@ -54,4 +47,16 @@ public class Map extends HtmlElementContainer {
                super.id(id);
                return this;
        }
+
+       @Override /* HtmlElementContainer */
+       public final Map children(Object...children) {
+               super.children(children);
+               return this;
+       }
+
+       @Override /* HtmlElementContainer */
+       public final Map child(Object child) {
+               super.child(child);
+               return this;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Mark.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Mark.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Mark.java
index 5d6407e..3c37c51 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Mark.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Mark.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="mark")
-@SuppressWarnings("hiding")
 public class Mark extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Mark extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Mark child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meta.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meta.java
index 0f4975a..7611dca 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meta.java
@@ -28,7 +28,7 @@ public class Meta extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Meta charset(String charset) {
-               attrs.put("charset", charset);
+               attr("charset", charset);
                return this;
        }
 
@@ -39,7 +39,7 @@ public class Meta extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Meta content(String content) {
-               attrs.put("content", content);
+               attr("content", content);
                return this;
        }
 
@@ -50,7 +50,7 @@ public class Meta extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Meta httpequiv(String httpequiv) {
-               attrs.put("http-equiv", httpequiv);
+               attr("http-equiv", httpequiv);
                return this;
        }
 
@@ -61,7 +61,7 @@ public class Meta extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Meta name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meter.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meter.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meter.java
index d42186c..3674019 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meter.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Meter.java
@@ -19,17 +19,17 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="meter")
-@SuppressWarnings("hiding")
 public class Meter extends HtmlElementMixed {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-meter-high'>high</a> 
attribute.
         * Low limit of high range.
         * @param high - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Meter high(String high) {
-               attrs.put("high", high);
+       public final Meter high(Object high) {
+               attr("high", high);
                return this;
        }
 
@@ -37,10 +37,11 @@ public class Meter extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-meter-low'>low</a> attribute.
         * High limit of low range.
         * @param low - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Meter low(String low) {
-               attrs.put("low", low);
+       public final Meter low(Object low) {
+               attr("low", low);
                return this;
        }
 
@@ -48,10 +49,11 @@ public class Meter extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-meter-max'>max</a> attribute.
         * Upper bound of range.
         * @param max - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Meter max(String max) {
-               attrs.put("max", max);
+       public final Meter max(Object max) {
+               attr("max", max);
                return this;
        }
 
@@ -59,10 +61,11 @@ public class Meter extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-meter-min'>min</a> attribute.
         * Lower bound of range.
         * @param min - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Meter min(String min) {
-               attrs.put("min", min);
+       public final Meter min(Object min) {
+               attr("min", min);
                return this;
        }
 
@@ -70,10 +73,11 @@ public class Meter extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-meter-optimum'>optimum</a> 
attribute.
         * Optimum value in gauge.
         * @param optimum - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Meter optimum(String optimum) {
-               attrs.put("optimum", optimum);
+       public final Meter optimum(Object optimum) {
+               attr("optimum", optimum);
                return this;
        }
 
@@ -81,10 +85,11 @@ public class Meter extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-meter-value'>value</a> 
attribute.
         * Current value of the element.
         * @param value - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Meter value(String value) {
-               attrs.put("value", value);
+       public final Meter value(Object value) {
+               attr("value", value);
                return this;
        }
 
@@ -112,7 +117,7 @@ public class Meter extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Meter child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Nav.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Nav.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Nav.java
index dffebd1..16586bb 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Nav.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Nav.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="nav")
-@SuppressWarnings("hiding")
 public class Nav extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Nav extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Nav child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Noscript.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Noscript.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Noscript.java
index 3d83738..526800d 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Noscript.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Noscript.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="noscript")
-@SuppressWarnings("hiding")
 public class Noscript extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -47,7 +46,7 @@ public class Noscript extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Noscript child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Object2.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Object2.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Object2.java
index b4c2094..fd43cb1 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Object2.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Object2.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="object")
-@SuppressWarnings("hiding")
 public class Object2 extends HtmlElementMixed {
 
        /**
@@ -29,7 +28,7 @@ public class Object2 extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Object2 data(String data) {
-               attrs.put("data", data);
+               attr("data", data);
                return this;
        }
 
@@ -40,7 +39,7 @@ public class Object2 extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Object2 form(String form) {
-               attrs.put("form", form);
+               attr("form", form);
                return this;
        }
 
@@ -48,10 +47,11 @@ public class Object2 extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-height'>height</a>
 attribute.
         * Vertical dimension.
         * @param height - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Object2 height(String height) {
-               attrs.put("height", height);
+       public final Object2 height(Object height) {
+               attr("height", height);
                return this;
        }
 
@@ -62,7 +62,7 @@ public class Object2 extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Object2 name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -73,7 +73,7 @@ public class Object2 extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Object2 type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 
@@ -81,10 +81,11 @@ public class Object2 extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-object-typemustmatch'>typemustmatch</a>
 attribute.
         * Whether the type attribute and the Content-Type value need to match 
for the resource to be used.
         * @param typemustmatch - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Object2 typemustmatch(String typemustmatch) {
-               attrs.put("typemustmatch", typemustmatch);
+       public final Object2 typemustmatch(Object typemustmatch) {
+               attr("typemustmatch", typemustmatch);
                return this;
        }
 
@@ -95,7 +96,7 @@ public class Object2 extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Object2 usemap(String usemap) {
-               attrs.put("usemap", usemap);
+               attr("usemap", usemap);
                return this;
        }
 
@@ -103,10 +104,11 @@ public class Object2 extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-width'>width</a>
 attribute.
         * Horizontal dimension.
         * @param width - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Object2 width(String width) {
-               attrs.put("width", width);
+       public final Object2 width(Object width) {
+               attr("width", width);
                return this;
        }
 
@@ -134,7 +136,7 @@ public class Object2 extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Object2 child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ol.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ol.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ol.java
index 626e3a9..1ad64e3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ol.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ol.java
@@ -19,17 +19,17 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="ol")
-@SuppressWarnings("hiding")
 public class Ol extends HtmlElementContainer {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/grouping-content.html#attr-ol-reversed'>reversed</a>
 attribute.
         * Number the list backwards..
         * @param reversed - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Ol reversed(String reversed) {
-               attrs.put("reversed", reversed);
+       public final Ol reversed(Object reversed) {
+               attr("reversed", reversed);
                return this;
        }
 
@@ -37,10 +37,11 @@ public class Ol extends HtmlElementContainer {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/grouping-content.html#attr-ol-start'>start</a>
 attribute.
         * Ordinal value of the first item.
         * @param start - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Ol start(String start) {
-               attrs.put("start", start);
+       public final Ol start(Object start) {
+               attr("start", start);
                return this;
        }
 
@@ -51,7 +52,7 @@ public class Ol extends HtmlElementContainer {
         * @return This object (for method chaining).
         */
        public final Ol type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 
@@ -60,12 +61,6 @@ public class Ol extends HtmlElementContainer {
        
//--------------------------------------------------------------------------------
 
        @Override /* HtmlElement */
-       public Ol children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElement */
        public final Ol _class(String _class) {
                super._class(_class);
                return this;
@@ -76,4 +71,16 @@ public class Ol extends HtmlElementContainer {
                super.id(id);
                return this;
        }
+
+       @Override /* HtmlElementContainer */
+       public final Ol children(Object...children) {
+               super.children(children);
+               return this;
+       }
+
+       @Override /* HtmlElementContainer */
+       public final Ol child(Object child) {
+               super.child(child);
+               return this;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Optgroup.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Optgroup.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Optgroup.java
index e8a8680..59bad44 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Optgroup.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Optgroup.java
@@ -19,17 +19,17 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="optgroup")
-@SuppressWarnings("hiding")
 public class Optgroup extends HtmlElementContainer {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-optgroup-disabled'>disabled</a>
 attribute.
         * Whether the form control is disabled.
         * @param disabled - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Optgroup disabled(String disabled) {
-               attrs.put("disabled", disabled);
+       public final Optgroup disabled(Object disabled) {
+               attr("disabled", disabled);
                return this;
        }
 
@@ -40,7 +40,7 @@ public class Optgroup extends HtmlElementContainer {
         * @return This object (for method chaining).
         */
        public final Optgroup label(String label) {
-               attrs.put("label", label);
+               attr("label", label);
                return this;
        }
 
@@ -49,12 +49,6 @@ public class Optgroup extends HtmlElementContainer {
        
//--------------------------------------------------------------------------------
 
        @Override /* HtmlElement */
-       public Optgroup children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElement */
        public final Optgroup _class(String _class) {
                super._class(_class);
                return this;
@@ -65,4 +59,16 @@ public class Optgroup extends HtmlElementContainer {
                super.id(id);
                return this;
        }
+
+       @Override /* HtmlElementContainer */
+       public final Optgroup children(Object...children) {
+               super.children(children);
+               return this;
+       }
+
+       @Override /* HtmlElementContainer */
+       public final Optgroup child(Object child) {
+               super.child(child);
+               return this;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Option.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Option.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Option.java
index b946c72..ee9069e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Option.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Option.java
@@ -25,10 +25,11 @@ public class Option extends HtmlElementText {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-option-disabled'>disabled</a> 
attribute.
         * Whether the form control is disabled.
         * @param disabled - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Option disabled(String disabled) {
-               attrs.put("disabled", disabled);
+       public final Option disabled(Object disabled) {
+               attr("disabled", disabled);
                return this;
        }
 
@@ -39,7 +40,7 @@ public class Option extends HtmlElementText {
         * @return This object (for method chaining).
         */
        public final Option label(String label) {
-               attrs.put("label", label);
+               attr("label", label);
                return this;
        }
 
@@ -47,10 +48,11 @@ public class Option extends HtmlElementText {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-option-selected'>selected</a> 
attribute.
         * Whether the option is selected by default.
         * @param selected - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Option selected(String selected) {
-               attrs.put("selected", selected);
+       public final Option selected(Object selected) {
+               attr("selected", selected);
                return this;
        }
 
@@ -58,10 +60,11 @@ public class Option extends HtmlElementText {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-option-value'>value</a> 
attribute.
         * Value to be used for form submission.
         * @param value - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Option value(String value) {
-               attrs.put("value", value);
+       public final Option value(Object value) {
+               attr("value", value);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Output.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Output.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Output.java
index 5eb61ab..8510f38 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Output.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Output.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="output")
-@SuppressWarnings("hiding")
 public class Output extends HtmlElementMixed {
 
        /**
@@ -29,7 +28,7 @@ public class Output extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Output _for(String _for) {
-               attrs.put("for", _for);
+               attr("for", _for);
                return this;
        }
 
@@ -40,7 +39,7 @@ public class Output extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Output form(String form) {
-               attrs.put("form", form);
+               attr("form", form);
                return this;
        }
 
@@ -51,7 +50,7 @@ public class Output extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Output name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -79,7 +78,7 @@ public class Output extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Output child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/P.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/P.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/P.java
index 7ee4ecb..d017450 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/P.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/P.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="p")
-@SuppressWarnings("hiding")
 public class P extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class P extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public P child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Param.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Param.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Param.java
index bac2a05..a7699ce 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Param.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Param.java
@@ -28,7 +28,7 @@ public class Param extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Param name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -36,10 +36,11 @@ public class Param extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-param-value'>value</a>
 attribute.
         * Value of parameter.
         * @param value - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Param value(String value) {
-               attrs.put("value", value);
+       public final Param value(Object value) {
+               attr("value", value);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Pre.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Pre.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Pre.java
index 5bc28b4..51f72a3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Pre.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Pre.java
@@ -12,20 +12,31 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import static org.apache.juneau.xml.annotation.XmlFormat.*;
+
+import java.util.*;
+
 import org.apache.juneau.annotation.*;
+import org.apache.juneau.xml.annotation.*;
 
 /**
  * DTO for an HTML <a 
href='https://www.w3.org/TR/html5/grouping-content.html#the-pre-element'>&lt;pre&gt;</a>
 element.
  * <p>
  */
 @Bean(typeName="pre")
-@SuppressWarnings("hiding")
 public class Pre extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
        // Overridden methods
        
//--------------------------------------------------------------------------------
 
+       @Xml(format=MIXED_PWS)
+       @BeanProperty(beanDictionary=HtmlBeanDictionary.class)
+       @Override
+       public LinkedList<Object> getChildren() {
+               return super.getChildren();
+       }
+
        @Override /* HtmlElement */
        public final Pre _class(String _class) {
                super._class(_class);
@@ -46,7 +57,7 @@ public class Pre extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Pre child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Progress.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Progress.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Progress.java
index dd30811..847c328 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Progress.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Progress.java
@@ -19,17 +19,17 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="progress")
-@SuppressWarnings("hiding")
 public class Progress extends HtmlElementMixed {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-progress-max'>max</a> 
attribute.
         * Upper bound of range.
         * @param max - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Progress max(String max) {
-               attrs.put("max", max);
+       public final Progress max(Object max) {
+               attr("max", max);
                return this;
        }
 
@@ -37,10 +37,11 @@ public class Progress extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-progress-value'>value</a> 
attribute.
         * Current value of the element.
         * @param value - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Progress value(String value) {
-               attrs.put("value", value);
+       public final Progress value(Object value) {
+               attr("value", value);
                return this;
        }
 
@@ -68,7 +69,7 @@ public class Progress extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Progress child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Q.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Q.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Q.java
index b61aa6e..29ec5d3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Q.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Q.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="q")
-@SuppressWarnings("hiding")
 public class Q extends HtmlElementMixed {
 
        /**
@@ -29,7 +28,7 @@ public class Q extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Q cite(String cite) {
-               attrs.put("cite", cite);
+               attr("cite", cite);
                return this;
        }
 
@@ -57,7 +56,7 @@ public class Q extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Q child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rb.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rb.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rb.java
index 6b9a571..f8314b3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rb.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rb.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="rb")
-@SuppressWarnings("hiding")
 public class Rb extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Rb extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Rb child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rp.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rp.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rp.java
index e02d50f..fb6b41e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rp.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rp.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="rp")
-@SuppressWarnings("hiding")
 public class Rp extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Rp extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Rp child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rt.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rt.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rt.java
index 9eb0852..cc1a3d0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rt.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rt.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="rt")
-@SuppressWarnings("hiding")
 public class Rt extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Rt extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Rt child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rtc.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rtc.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rtc.java
index 6eee0aa..fd39c4f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rtc.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Rtc.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="rtc")
-@SuppressWarnings("hiding")
 public class Rtc extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Rtc extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Rtc child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ruby.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ruby.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ruby.java
index 9f122df..19a18f9 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ruby.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Ruby.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="ruby")
-@SuppressWarnings("hiding")
 public class Ruby extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Ruby extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Ruby child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/S.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/S.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/S.java
index 4d84780..e285970 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/S.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/S.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="s")
-@SuppressWarnings("hiding")
 public class S extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class S extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public S child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Samp.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Samp.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Samp.java
index e643498..d419bda 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Samp.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Samp.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="samp")
-@SuppressWarnings("hiding")
 public class Samp extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Samp extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Samp child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Script.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Script.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Script.java
index 743d371..3d6c1ae 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Script.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Script.java
@@ -12,24 +12,27 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import java.net.*;
+
 import org.apache.juneau.annotation.*;
+import org.apache.juneau.xml.annotation.*;
 
 /**
  * DTO for an HTML <a 
href='https://www.w3.org/TR/html5/scripting-1.html#the-script-element'>&lt;script&gt;</a>
 element.
  * <p>
  */
 @Bean(typeName="script")
-@SuppressWarnings("hiding")
-public class Script extends HtmlElementMixed {
+public class Script extends HtmlElementText {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/scripting-1.html#attr-script-async'>async</a> 
attribute.
         * Execute script asynchronously.
         * @param async - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Script async(String async) {
-               attrs.put("async", async);
+       public final Script async(Object async) {
+               attr("async", async);
                return this;
        }
 
@@ -40,7 +43,7 @@ public class Script extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Script charset(String charset) {
-               attrs.put("charset", charset);
+               attr("charset", charset);
                return this;
        }
 
@@ -51,7 +54,7 @@ public class Script extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Script crossorigin(String crossorigin) {
-               attrs.put("crossorigin", crossorigin);
+               attr("crossorigin", crossorigin);
                return this;
        }
 
@@ -59,10 +62,11 @@ public class Script extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/scripting-1.html#attr-script-defer'>defer</a> 
attribute.
         * Defer script execution.
         * @param defer - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Script defer(String defer) {
-               attrs.put("defer", defer);
+       public final Script defer(Object defer) {
+               attr("defer", defer);
                return this;
        }
 
@@ -70,10 +74,11 @@ public class Script extends HtmlElementMixed {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/scripting-1.html#attr-script-src'>src</a> 
attribute.
         * Address of the resource.
         * @param src - The new value for this attribute.
+        *      Typically a {@link URL} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Script src(String src) {
-               attrs.put("src", src);
+       public final Script src(Object src) {
+               attr("src", src);
                return this;
        }
 
@@ -84,7 +89,7 @@ public class Script extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Script type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 
@@ -92,6 +97,12 @@ public class Script extends HtmlElementMixed {
        // Overridden methods
        
//--------------------------------------------------------------------------------
 
+       @Xml(format=XmlFormat.TEXT_PWS)
+       @Override
+       public Object getText() {
+               return super.getText();
+       }
+
        @Override /* HtmlElement */
        public final Script _class(String _class) {
                super._class(_class);
@@ -104,15 +115,9 @@ public class Script extends HtmlElementMixed {
                return this;
        }
 
-       @Override /* HtmlElementMixed */
-       public Script children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElementMixed */
-       public Script child(Object child) {
-               this.children.add(child);
+       @Override /* HtmlElementText */
+       public Script text(Object text) {
+               super.text(text);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Section.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Section.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Section.java
index b545eee..1ea0688 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Section.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Section.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="section")
-@SuppressWarnings("hiding")
 public class Section extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Section extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Section child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Select.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Select.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Select.java
index 63641d0..bf7965f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Select.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Select.java
@@ -19,17 +19,17 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="select")
-@SuppressWarnings("hiding")
 public class Select extends HtmlElementContainer {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-fe-autofocus'>autofocus</a> 
attribute.
         * Automatically focus the form control when the page is loaded.
         * @param autofocus - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Select autofocus(String autofocus) {
-               attrs.put("autofocus", autofocus);
+       public final Select autofocus(Object autofocus) {
+               attr("autofocus", autofocus);
                return this;
        }
 
@@ -37,10 +37,11 @@ public class Select extends HtmlElementContainer {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-fe-disabled'>disabled</a> 
attribute.
         * Whether the form control is disabled.
         * @param disabled - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Select disabled(String disabled) {
-               attrs.put("disabled", disabled);
+       public final Select disabled(Object disabled) {
+               attr("disabled", disabled);
                return this;
        }
 
@@ -51,7 +52,7 @@ public class Select extends HtmlElementContainer {
         * @return This object (for method chaining).
         */
        public final Select form(String form) {
-               attrs.put("form", form);
+               attr("form", form);
                return this;
        }
 
@@ -59,10 +60,11 @@ public class Select extends HtmlElementContainer {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-select-multiple'>multiple</a> 
attribute.
         * Whether to allow multiple values.
         * @param multiple - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Select multiple(String multiple) {
-               attrs.put("multiple", multiple);
+       public final Select multiple(Object multiple) {
+               attr("multiple", multiple);
                return this;
        }
 
@@ -73,7 +75,7 @@ public class Select extends HtmlElementContainer {
         * @return This object (for method chaining).
         */
        public final Select name(String name) {
-               attrs.put("name", name);
+               attr("name", name);
                return this;
        }
 
@@ -81,10 +83,11 @@ public class Select extends HtmlElementContainer {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-select-required'>required</a> 
attribute.
         * Whether the control is required for form submission.
         * @param required - The new value for this attribute.
+        *      Typically a {@link Boolean} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Select required(String required) {
-               attrs.put("required", required);
+       public final Select required(Object required) {
+               attr("required", required);
                return this;
        }
 
@@ -92,10 +95,11 @@ public class Select extends HtmlElementContainer {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/forms.html#attr-select-size'>size</a> 
attribute.
         * Size of the control.
         * @param size - The new value for this attribute.
+        *      Typically a {@link Number} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Select size(String size) {
-               attrs.put("size", size);
+       public final Select size(Object size) {
+               attr("size", size);
                return this;
        }
 
@@ -104,12 +108,6 @@ public class Select extends HtmlElementContainer {
        
//--------------------------------------------------------------------------------
 
        @Override /* HtmlElement */
-       public Select children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElement */
        public final Select _class(String _class) {
                super._class(_class);
                return this;
@@ -120,4 +118,16 @@ public class Select extends HtmlElementContainer {
                super.id(id);
                return this;
        }
+
+       @Override /* HtmlElementContainer */
+       public final Select children(Object...children) {
+               super.children(children);
+               return this;
+       }
+
+       @Override /* HtmlElementContainer */
+       public final Select child(Object child) {
+               super.child(child);
+               return this;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Small.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Small.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Small.java
index b0be6fc..560fb0c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Small.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Small.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="small")
-@SuppressWarnings("hiding")
 public class Small extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Small extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Small child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Source.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Source.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Source.java
index f9bf26c..2eb98a9 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Source.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Source.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.html5;
 
+import java.net.*;
+
 import org.apache.juneau.annotation.*;
 
 /**
@@ -25,10 +27,11 @@ public class Source extends HtmlElementEmpty {
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/embedded-content-0.html#attr-source-src'>src</a>
 attribute.
         * Address of the resource.
         * @param src - The new value for this attribute.
+        *      Typically a {@link URL} or {@link String}.
         * @return This object (for method chaining).
         */
-       public final Source src(String src) {
-               attrs.put("src", src);
+       public final Source src(Object src) {
+               attr("src", src);
                return this;
        }
 
@@ -39,7 +42,7 @@ public class Source extends HtmlElementEmpty {
         * @return This object (for method chaining).
         */
        public final Source type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Span.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Span.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Span.java
index 51fac15..246e3b6 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Span.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Span.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="span")
-@SuppressWarnings("hiding")
 public class Span extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -38,6 +37,12 @@ public class Span extends HtmlElementMixed {
                return this;
        }
 
+       @Override /* HtmlElement */
+       public final Span style(String style) {
+               attr("style", style);
+               return this;
+       }
+
        @Override /* HtmlElementMixed */
        public Span children(Object...children) {
                super.children(children);
@@ -46,7 +51,7 @@ public class Span extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Span child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Strong.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Strong.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Strong.java
index c6ca3e7..224dff4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Strong.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Strong.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="strong")
-@SuppressWarnings("hiding")
 public class Strong extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Strong extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Strong child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Style.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Style.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Style.java
index 3f3e1d3..e9948a8 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Style.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Style.java
@@ -13,14 +13,14 @@
 package org.apache.juneau.dto.html5;
 
 import org.apache.juneau.annotation.*;
+import org.apache.juneau.xml.annotation.*;
 
 /**
  * DTO for an HTML <a 
href='https://www.w3.org/TR/html5/document-metadata.html#the-style-element'>&lt;style&gt;</a>
 element.
  * <p>
  */
 @Bean(typeName="style")
-@SuppressWarnings("hiding")
-public class Style extends HtmlElementMixed {
+public class Style extends HtmlElementText {
 
        /**
         * <a class='doclink' 
href='https://www.w3.org/TR/html5/document-metadata.html#attr-style-media'>media</a>
 attribute.
@@ -29,7 +29,7 @@ public class Style extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Style media(String media) {
-               attrs.put("media", media);
+               attr("media", media);
                return this;
        }
 
@@ -40,7 +40,7 @@ public class Style extends HtmlElementMixed {
         * @return This object (for method chaining).
         */
        public final Style type(String type) {
-               attrs.put("type", type);
+               attr("type", type);
                return this;
        }
 
@@ -48,6 +48,12 @@ public class Style extends HtmlElementMixed {
        // Overridden methods
        
//--------------------------------------------------------------------------------
 
+       @Xml(format=XmlFormat.TEXT_PWS)
+       @Override /* HtmlElementText */
+       public Object getText() {
+               return super.getText();
+       }
+
        @Override /* HtmlElement */
        public final Style _class(String _class) {
                super._class(_class);
@@ -60,15 +66,9 @@ public class Style extends HtmlElementMixed {
                return this;
        }
 
-       @Override /* HtmlElementMixed */
-       public Style children(Object...children) {
-               super.children(children);
-               return this;
-       }
-
-       @Override /* HtmlElementMixed */
-       public Style child(Object child) {
-               this.children.add(child);
+       @Override /* HtmlElementText */
+       public final Style text(Object text) {
+               super.text(text);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sub.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sub.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sub.java
index cabe28a..f32b893 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sub.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sub.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="sub")
-@SuppressWarnings("hiding")
 public class Sub extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Sub extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Sub child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/21c0e1ea/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sup.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sup.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sup.java
index 96eb6dc..60934a1 100644
--- a/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sup.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/html5/Sup.java
@@ -19,7 +19,6 @@ import org.apache.juneau.annotation.*;
  * <p>
  */
 @Bean(typeName="sup")
-@SuppressWarnings("hiding")
 public class Sup extends HtmlElementMixed {
 
        
//--------------------------------------------------------------------------------
@@ -46,7 +45,7 @@ public class Sup extends HtmlElementMixed {
 
        @Override /* HtmlElementMixed */
        public Sup child(Object child) {
-               this.children.add(child);
+               super.child(child);
                return this;
        }
 }


Reply via email to