001// ***************************************************************************************************************************
002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
003// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
005// * with the License.  You may obtain a copy of the License at                                                              *
006// *                                                                                                                         *
007// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
008// *                                                                                                                         *
009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
011// * specific language governing permissions and limitations under the License.                                              *
012// ***************************************************************************************************************************
013package org.apache.juneau.dto.html5;
014
015import static org.apache.juneau.internal.StringUtils.*;
016
017/**
018 * Various useful static methods for creating HTML elements.
019 *
020 * <h5 class='section'>See Also:</h5>
021 * <ul class='doctree'>
022 *    <li class='link'>{@doc juneau-dto.HTML5}
023 * </ul>
024 */
025public class HtmlBuilder {
026
027   /**
028    * Creates an empty {@link A} element.
029    *
030    * @return The new element.
031    */
032   public static final A a() {
033      return new A();
034   }
035
036   /**
037    * Creates an {@link A} element with the specified {@link A#href(Object)} attribute and {@link A#children(Object[])}
038    * nodes.
039    *
040    * @param href The {@link A#href(Object)} attribute.
041    * @param children The {@link A#children(Object[])} nodes.
042    * @return The new element.
043    */
044   public static final A a(Object href, Object...children) {
045      return a().href(href).children(children);
046   }
047
048   /**
049    * Creates an empty {@link Abbr} element.
050    *
051    * @return The new element.
052    */
053   public static final Abbr abbr() {
054      return new Abbr();
055   }
056
057   /**
058    * Creates an {@link Abbr} element with the specified {@link Abbr#title(String)} attribute and
059    * {@link Abbr#children(Object[])} nodes.
060    *
061    * @param title The {@link Abbr#title(String)} attribute.
062    * @param children The {@link Abbr#children(Object[])} nodes.
063    * @return The new element.
064    */
065   public static final Abbr abbr(String title, Object...children) {
066      return abbr().title(title).children(children);
067   }
068
069   /**
070    * Creates an empty {@link Address} element.
071    *
072    * @return The new element.
073    */
074   public static final Address address() {
075      return new Address();
076   }
077
078   /**
079    * Creates an {@link Address} element with the specified child nodes.
080    *
081    * @param children The child nodes.
082    * @return The new element.
083    */
084   public static final Address address(Object...children) {
085      return address().children(children);
086   }
087
088   /**
089    * Creates an empty {@link Area} element.
090    *
091    * @return The new element.
092    */
093   public static final Area area() {
094      return new Area();
095   }
096
097   /**
098    * Creates an {@link Area} element with the specified {@link Area#shape(String)}, {@link Area#coords(String)},
099    * and {@link Area#href(Object)} attributes.
100    *
101    * @param shape The {@link Area#shape(String)} attribute.
102    * @param coords The {@link Area#coords(String)} attribute.
103    * @param href The {@link Area#href(Object)} attribute.
104    * @return The new element.
105    */
106   public static final Area area(String shape, String coords, Object href) {
107      return area().shape(shape).coords(coords).href(href);
108   }
109
110   /**
111    * Creates an empty {@link Article} element.
112    *
113    * @return The new element.
114    */
115   public static final Article article() {
116      return new Article();
117   }
118
119   /**
120    * Creates an {@link Article} element with the specified child nodes.
121    *
122    * @param children The child nodes.
123    * @return The new element.
124    */
125   public static final Article article(Object...children) {
126      return article().children(children);
127   }
128
129   /**
130    * Creates an empty {@link Aside} element.
131    *
132    * @return The new element.
133    */
134   public static final Aside aside() {
135      return new Aside();
136   }
137
138   /**
139    * Creates an {@link Aside} element with the specified child nodes.
140    *
141    * @param children The child nodes.
142    * @return The new element.
143    */
144   public static final Aside aside(Object...children) {
145      return aside().children(children);
146   }
147
148   /**
149    * Creates an empty {@link Audio} element.
150    *
151    * @return The new element.
152    */
153   public static final Audio audio() {
154      return new Audio();
155   }
156
157   /**
158    * Creates an {@link Audio} element with the specified {@link Audio#src(Object)} attribute.
159    *
160    * @param src The {@link Audio#src(Object)} attribute.
161    * @return The new element.
162    */
163   public static final Audio audio(String src) {
164      return audio().src(src);
165   }
166
167   /**
168    * Creates an empty {@link B} element.
169    *
170    * @return The new element.
171    */
172   public static final B b() {
173      return new B();
174   }
175
176   /**
177    * Creates a {@link B} element with the specified child nodes.
178    *
179    * @param children The child nodes.
180    * @return The new element.
181    */
182   public static final B b(Object...children) {
183      return b().children(children);
184   }
185
186   /**
187    * Creates an empty {@link Base} element.
188    *
189    * @return The new element.
190    */
191   public static final Base base() {
192      return new Base();
193   }
194
195   /**
196    * Creates a {@link Base} element with the specified {@link Base#href(Object)} attribute.
197    *
198    * @param href The {@link Base#href(Object)} attribute.
199    * @return The new element.
200    */
201   public static final Base base(Object href) {
202      return base().href(href);
203   }
204
205   /**
206    * Creates an empty {@link Bdi} element.
207    *
208    * @return The new element.
209    */
210   public static final Bdi bdi() {
211      return new Bdi();
212   }
213
214   /**
215    * Creates a {@link Bdi} element with the specified {@link Bdi#text(Object)} node.
216    *
217    * @param text The {@link Bdi#text(Object)} node.
218    * @return The new element.
219    */
220   public static final Bdi bdi(Object text) {
221      return bdi().text(text);
222   }
223
224   /**
225    * Creates an empty {@link Bdo} element.
226    *
227    * @return The new element.
228    */
229   public static final Bdo bdo() {
230      return new Bdo();
231   }
232
233   /**
234    * Creates a {@link Bdo} element with the specified {@link Bdo#dir(String)} attribute and child nodes.
235    *
236    * @param dir The {@link Bdo#dir(String)} attribute.
237    * @param children The child nodes.
238    * @return The new element.
239    */
240   public static final Bdo bdo(String dir, Object...children) {
241      return bdo().dir(dir).children(children);
242   }
243
244   /**
245    * Creates an empty {@link Blockquote} element.
246    *
247    * @return The new element.
248    */
249   public static final Blockquote blockquote() {
250      return new Blockquote();
251   }
252
253   /**
254    * Creates a {@link Blockquote} element with the specified child nodes.
255    *
256    * @param children The child nodes.
257    * @return The new element.
258    */
259   public static final Blockquote blockquote(Object...children) {
260      return blockquote().children(children);
261   }
262
263   /**
264    * Creates an empty {@link Body} element.
265    *
266    * @return The new element.
267    */
268   public static final Body body() {
269      return new Body();
270   }
271
272   /**
273    * Creates a {@link Body} element with the specified child nodes.
274    *
275    * @param children The child nodes.
276    * @return The new element.
277    */
278   public static final Body body(Object...children) {
279      return body().children(children);
280   }
281
282   /**
283    * Creates an empty {@link Br} element.
284    *
285    * @return The new element.
286    */
287   public static final Br br() {
288      return new Br();
289   }
290
291   /**
292    * Creates an empty {@link Button} element.
293    *
294    * @return The new element.
295    */
296   public static final Button button() {
297      return new Button();
298   }
299
300   /**
301    * Creates a {@link Button} element with the specified {@link Button#type(String)} attribute.
302    *
303    * @param type The {@link Button#type(String)} attribute.
304    * @return The new element.
305    */
306   public static final Button button(String type) {
307      return button().type(type);
308   }
309
310   /**
311    * Creates a {@link Button} element with the specified {@link Button#type(String)} attribute and
312    * {@link Button#children(Object[])} nodes.
313    *
314    * @param type The {@link Button#type(String)} attribute.
315    * @param children The {@link Button#children(Object[])} nodes.
316    * @return The new element.
317    */
318   public static final Button button(String type, Object...children) {
319      return button().type(type).children(children);
320   }
321
322   /**
323    * Creates an empty {@link Canvas} element.
324    * @return The new element.
325    */
326   public static final Canvas canvas() {
327      return new Canvas();
328   }
329
330   /**
331    * Creates a {@link Canvas} element with the specified {@link Canvas#width(Object)} and
332    * {@link Canvas#height(Object)} attributes.
333    *
334    * @param width The {@link Canvas#width(Object)} attribute.
335    * @param height The {@link Canvas#height(Object)} attribute.
336    * @return The new element.
337    */
338   public static final Canvas canvas(Number width, Number height) {
339      return canvas().width(width).height(height);
340   }
341
342   /**
343    * Creates an empty {@link Caption} element.
344    *
345    * @return The new element.
346    */
347   public static final Caption caption() {
348      return new Caption();
349   }
350
351   /**
352    * Creates a {@link Caption} element with the specified child nodes.
353    *
354    * @param children The child nodes.
355    * @return The new element.
356    */
357   public static final Caption caption(Object...children) {
358      return caption().children(children);
359   }
360
361   /**
362    * Creates an empty {@link Cite} element.
363    *
364    * @return The new element.
365    */
366   public static final Cite cite() {
367      return new Cite();
368   }
369
370   /**
371    * Creates a {@link Cite} element with the specified child nodes.
372    *
373    * @param children The child nodes.
374    * @return The new element.
375    */
376   public static final Cite cite(Object...children) {
377      return cite().children(children);
378   }
379
380   /**
381    * Creates an empty {@link Code} element.
382    *
383    * @return The new element.
384    */
385   public static final Code code() {
386      return new Code();
387   }
388
389   /**
390    * Creates a {@link Code} element with the specified child nodes.
391    *
392    * @param children The child nodes.
393    * @return The new element.
394    */
395   public static final Code code(Object...children) {
396      return code().children(children);
397   }
398
399   /**
400    * Creates an empty {@link Col} element.
401    *
402    * @return The new element.
403    *
404    */
405   public static final Col col() {
406      return new Col();
407   }
408
409   /**
410    * Creates a {@link Col} element with the specified {@link Col#span(Object)} attribute.
411    *
412    * @param span The {@link Col#span(Object)} attribute.
413    * @return The new element.
414    */
415   public static final Col col(Number span) {
416      return col().span(span);
417   }
418
419   /**
420    * Creates an empty {@link Colgroup} element.
421    *
422    * @return The new element.
423    */
424   public static final Colgroup colgroup() {
425      return new Colgroup();
426   }
427
428   /**
429    * Creates a {@link Colgroup} element with the specified child nodes.
430    *
431    * @param children The child nodes.
432    * @return The new element.
433    */
434   public static final Colgroup colgroup(Object...children) {
435      return colgroup().children(children);
436   }
437
438   /**
439    * Creates an empty {@link Data} element.
440    *
441    * @return The new element.
442    */
443   public static final Data data() {
444      return new Data();
445   }
446
447   /**
448    * Creates a {@link Data} element with the specified {@link Data#value(Object)} attribute and child node.
449    *
450    * @param value The {@link Data#value(Object)} attribute.
451    * @param child The child node.
452    * @return The new element.
453    */
454   public static final Data data(String value, Object child) {
455      return data().value(value).child(child);
456   }
457
458   /**
459    * Creates an empty {@link Datalist} element.
460    *
461    * @return The new element.
462    */
463   public static final Datalist datalist() {
464      return new Datalist();
465   }
466
467   /**
468    * Creates a {@link Datalist} element with the specified {@link Datalist#id(String)} attribute and child nodes.
469    *
470    * @param id The {@link Datalist#id(String)} attribute.
471    * @param children The child nodes.
472    * @return The new element.
473    */
474   public static final Datalist datalist(String id, Option...children) {
475      return datalist().id(id).children((Object[])children);
476   }
477
478   /**
479    * Creates an empty {@link Dd} element.
480    *
481    * @return The new element.
482    */
483   public static final Dd dd() {
484      return new Dd();
485   }
486
487   /**
488    * Creates a {@link Dd} element with the specified child nodes.
489    *
490    * @param children The child nodes.
491    * @return The new element.
492    */
493   public static final Dd dd(Object...children) {
494      return dd().children(children);
495   }
496
497   /**
498    * Creates an empty {@link Del} element.
499    *
500    * @return The new element.
501    */
502   public static final Del del() {
503      return new Del();
504   }
505
506   /**
507    * Creates a {@link Del} element with the specified {@link Del#children(Object[])} node.
508    *
509    * @param children The {@link Del#children(Object[])} node.
510    * @return The new element.
511    */
512   public static final Del del(Object...children) {
513      return del().children(children);
514   }
515
516   /**
517    * Creates an empty {@link Dfn} element.
518    *
519    * @return The new element.
520    */
521   public static final Dfn dfn() {
522      return new Dfn();
523   }
524
525   /**
526    * Creates a {@link Dfn} element with the specified child nodes.
527    *
528    * @param children The child nodes.
529    * @return The new element.
530    */
531   public static final Dfn dfn(Object...children) {
532      return dfn().children(children);
533   }
534
535   /**
536    * Creates an empty {@link Div} element.
537    *
538    * @return The new element.
539    */
540   public static final Div div() {
541      return new Div();
542   }
543
544   /**
545    * Creates a {@link Div} element with the specified child nodes.
546    *
547    * @param children The child nodes.
548    * @return The new element.
549    */
550   public static final Div div(Object...children) {
551      return div().children(children);
552   }
553
554   /**
555    * Creates an empty {@link Dl} element.
556    *
557    * @return The new element.
558    */
559   public static final Dl dl() {
560      return new Dl();
561   }
562
563   /**
564    * Creates a {@link Dl} element with the specified child nodes.
565    *
566    * @param children The child nodes.
567    * @return The new element.
568    */
569   public static final Dl dl(Object...children) {
570      return dl().children(children);
571   }
572
573   /**
574    * Creates an empty {@link Dt} element.
575    *
576    * @return The new element.
577    */
578   public static final Dt dt() {
579      return new Dt();
580   }
581
582   /**
583    * Creates a {@link Dt} element with the specified child nodes.
584    *
585    * @param children The child nodes.
586    * @return The new element.
587    */
588   public static final Dt dt(Object...children) {
589      return dt().children(children);
590   }
591
592   /**
593    * Creates an empty {@link Em} element.
594    *
595    * @return The new element.
596    */
597   public static final Em em() {
598      return new Em();
599   }
600
601   /**
602    * Creates an {@link Em} element with the specified {@link Em#children(Object[])} nodes.
603    *
604    * @param children The {@link Em#children(Object[])} nodes.
605    * @return The new element.
606    */
607   public static final Em em(Object...children) {
608      return em().children(children);
609   }
610
611   /**
612    * Creates an empty {@link Embed} element.
613    *
614    * @return The new element.
615    */
616   public static final Embed embed() {
617      return new Embed();
618   }
619
620   /**
621    * Creates an {@link Embed} element with the specified {@link Embed#src(Object)} attribute.
622    *
623    * @param src The {@link Embed#src(Object)} attribute.
624    * @return The new element.
625    */
626   public static final Embed embed(Object src) {
627      return embed().src(src);
628   }
629
630   /**
631    * Creates an empty {@link Fieldset} element.
632    *
633    * @return The new element.
634    */
635   public static final Fieldset fieldset() {
636      return new Fieldset();
637   }
638
639   /**
640    * Creates a {@link Fieldset} element with the specified child nodes.
641    *
642    * @param children The child nodes.
643    * @return The new element.
644    */
645   public static final Fieldset fieldset(Object...children) {
646      return fieldset().children(children);
647   }
648
649   /**
650    * Creates an empty {@link Figcaption} element.
651    *
652    * @return The new element.
653    */
654   public static final Figcaption figcaption() {
655      return new Figcaption();
656   }
657
658   /**
659    * Creates a {@link Figcaption} element with the specified child nodes.
660    *
661    * @param children The child nodes.
662    * @return The new element.
663    */
664   public static final Figcaption figcaption(Object...children) {
665      return figcaption().children(children);
666   }
667
668   /**
669    * Creates an empty {@link Figure} element.
670    *
671    * @return The new element.
672    */
673   public static final Figure figure() {
674      return new Figure();
675   }
676
677   /**
678    * Creates a {@link Figure} element with the specified child nodes.
679    *
680    * @param children The child nodes.
681    * @return The new element.
682    */
683   public static final Figure figure(Object...children) {
684      return figure().children(children);
685   }
686
687   /**
688    * Creates an empty {@link Footer} element.
689    *
690    * @return The new element.
691    */
692   public static final Footer footer() {
693      return new Footer();
694   }
695
696   /**
697    * Creates a {@link Footer} element with the specified child nodes.
698    *
699    * @param children The child nodes.
700    * @return The new element.
701    */
702   public static final Footer footer(Object...children) {
703      return footer().children(children);
704   }
705
706   /**
707    * Creates an empty {@link Form} element.
708    *
709    * @return The new element.
710    */
711   public static final Form form() {
712      return new Form();
713   }
714
715   /**
716    * Creates a {@link Form} element with the specified {@link Form#action(String)} attribute.
717    *
718    * @param action The {@link Form#action(String)} attribute.
719    * @return The new element.
720    */
721   public static final Form form(String action) {
722      return form().action(action);
723   }
724
725   /**
726    * Creates an {@link Form} element with the specified {@link Form#action(String)} attribute and child nodes.
727    *
728    * @param action The {@link Form#action(String)} attribute.
729    * @param children The child nodes.
730    * @return The new element.
731    */
732   public static final Form form(String action, Object...children) {
733      return form().action(action).children(children);
734   }
735
736   /**
737    * Creates an empty {@link H1} element.
738    *
739    * @return The new element.
740    */
741   public static final H1 h1() {
742      return new H1();
743   }
744
745   /**
746    * Creates an {@link H1} element with the specified child nodes.
747    *
748    * @param children The child nodes.
749    * @return The new element.
750    */
751   public static final H1 h1(Object...children) {
752      return h1().children(children);
753   }
754
755   /**
756    * Creates an empty {@link H2} element.
757    *
758    * @return The new element.
759    */
760   public static final H2 h2() {
761      return new H2();
762   }
763
764   /**
765    * Creates an {@link H2} element with the specified child nodes.
766    *
767    * @param children The child nodes.
768    * @return The new element.
769    */
770   public static final H2 h2(Object...children) {
771      return h2().children(children);
772   }
773
774   /**
775    * Creates an empty {@link H3} element.
776    *
777    * @return The new element.
778    */
779   public static final H3 h3() {
780      return new H3();
781   }
782
783   /**
784    * Creates an {@link H3} element with the specified child nodes.
785    *
786    * @param children The child nodes.
787    * @return The new element.
788    */
789   public static final H3 h3(Object...children) {
790      return h3().children(children);
791   }
792
793   /**
794    * Creates an empty {@link H4} element.
795    *
796    * @return The new element.
797    */
798   public static final H4 h4() {
799      return new H4();
800   }
801
802   /**
803    * Creates an {@link H4} element with the specified child nodes.
804    *
805    * @param children The child nodes.
806    * @return The new element.
807    */
808   public static final H4 h4(Object...children) {
809      return h4().children(children);
810   }
811
812   /**
813    * Creates an empty {@link H5} element.
814    *
815    * @return The new element.
816    */
817   public static final H5 h5() {
818      return new H5();
819   }
820
821   /**
822    * Creates an {@link H5} element with the specified child nodes.
823    *
824    * @param children The child nodes.
825    * @return The new element.
826    */
827   public static final H5 h5(Object...children) {
828      return h5().children(children);
829   }
830
831   /**
832    * Creates an empty {@link H6} element.
833    * @return The new element.
834    */
835   public static final H6 h6() {
836      return new H6();
837   }
838
839   /**
840    * Creates an {@link H6} element with the specified child nodes.
841    *
842    * @param children The child nodes.
843    * @return The new element.
844    */
845   public static final H6 h6(Object...children) {
846      return h6().children(children);
847   }
848
849   /**
850    * Creates an empty {@link Head} element.
851    *
852    * @return The new element.
853    */
854   public static final Head head() {
855      return new Head();
856   }
857
858   /**
859    * Creates a {@link Head} element with the specified child nodes.
860    *
861    * @param children The child nodes.
862    * @return The new element.
863    */
864   public static final Head head(Object...children) {
865      return head().children(children);
866   }
867
868   /**
869    * Creates an empty {@link Header} element.
870    *
871    * @return The new element.
872    */
873   public static final Header header() {
874      return new Header();
875   }
876
877   /**
878    * Creates a {@link Header} element with the specified child nodes.
879    *
880    * @param children The child nodes.
881    * @return The new element.
882    */
883   public static final Header header(Object...children) {
884      return header().children(children);
885   }
886
887   /**
888    * Creates an empty {@link Hr} element.
889    *
890    * @return The new element.
891    */
892   public static final Hr hr() {
893      return new Hr();
894   }
895
896   /**
897    * Creates an empty {@link Html} element.
898    *
899    * @return The new element.
900    */
901   public static final Html html() {
902      return new Html();
903   }
904
905   /**
906    * Creates an {@link Html} element with the specified child nodes.
907    *
908    * @param children The child nodes.
909    * @return The new element.
910    */
911   public static final Html html(Object...children) {
912      return html().children(children);
913   }
914
915   /**
916    * Creates an empty {@link I} element.
917    *
918    * @return The new element.
919    */
920   public static final I i() {
921      return new I();
922   }
923
924   /**
925    * Creates an {@link I} element with the specified child nodes.
926    *
927    * @param children The child nodes.
928    * @return The new element.
929    */
930   public static final I i(Object...children) {
931      return i().children(children);
932   }
933
934   /**
935    * Creates an empty {@link Iframe} element.
936    *
937    * @return The new element.
938    */
939   public static final Iframe iframe() {
940      return new Iframe();
941   }
942
943   /**
944    * Creates an {@link Iframe} element with the specified child nodes.
945    *
946    * @param children The child nodes.
947    * @return The new element.
948    */
949   public static final Iframe iframe(Object...children) {
950      return iframe().children(children);
951   }
952
953   /**
954    * Creates an empty {@link Img} element.
955    *
956    * @return The new element.
957    */
958   public static final Img img() {
959      return new Img();
960   }
961
962   /**
963    * Creates an {@link Img} element with the specified {@link Img#src(Object)} attribute.
964    *
965    * @param src The {@link Img#src(Object)} attribute.
966    * @return The new element.
967    */
968   public static final Img img(Object src) {
969      return img().src(src);
970   }
971
972   /**
973    * Creates an empty {@link Input} element.
974    *
975    * @return The new element.
976    */
977   public static final Input input() {
978      return new Input();
979   }
980
981   /**
982    * Creates an {@link Input} element with the specified {@link Input#type(String)} attribute.
983    *
984    * @param type The {@link Input#type(String)} attribute.
985    * @return The new element.
986    */
987   public static final Input input(String type) {
988      return input().type(type);
989   }
990
991   /**
992    * Creates an empty {@link Ins} element.
993    *
994    * @return The new element.
995    */
996   public static final Ins ins() {
997      return new Ins();
998   }
999
1000   /**
1001    * Creates an {@link Ins} element with the specified child nodes.
1002    *
1003    * @param children The child nodes.
1004    * @return The new element.
1005    */
1006   public static final Ins ins(Object...children) {
1007      return ins().children(children);
1008   }
1009
1010   /**
1011    * Creates an empty {@link Kbd} element.
1012    *
1013    * @return The new element.
1014    */
1015   public static final Kbd kbd() {
1016      return new Kbd();
1017   }
1018
1019   /**
1020    * Creates a {@link Kbd} element with the specified child nodes.
1021    *
1022    * @param children The child nodes.
1023    * @return The new element.
1024    */
1025   public static final Kbd kbd(Object...children) {
1026      return kbd().children(children);
1027   }
1028
1029   /**
1030    * Creates an empty {@link Keygen} element.
1031    *
1032    * @return The new element.
1033    */
1034   public static final Keygen keygen() {
1035      return new Keygen();
1036   }
1037
1038   /**
1039    * Creates an empty {@link Label} element.
1040    *
1041    * @return The new element.
1042    */
1043   public static final Label label() {
1044      return new Label();
1045   }
1046
1047   /**
1048    * Creates a {@link Label} element with the specified child nodes.
1049    *
1050    * @param children The child nodes.
1051    * @return The new element.
1052    */
1053   public static final Label label(Object...children) {
1054      return label().children(children);
1055   }
1056
1057   /**
1058    * Creates an empty {@link Legend} element.
1059    *
1060    * @return The new element.
1061    */
1062   public static final Legend legend() {
1063      return new Legend();
1064   }
1065
1066   /**
1067    * Creates a {@link Legend} element with the specified child nodes.
1068    *
1069    * @param children The child nodes.
1070    * @return The new element.
1071    */
1072   public static final Legend legend(Object...children) {
1073      return legend().children(children);
1074   }
1075
1076   /**
1077    * Creates an empty {@link Li} element.
1078    *
1079    * @return The new element.
1080    */
1081   public static final Li li() {
1082      return new Li();
1083   }
1084
1085   /**
1086    * Creates an {@link Li} element with the specified child nodes.
1087    *
1088    * @param children The child nodes.
1089    * @return The new element.
1090    */
1091   public static final Li li(Object...children) {
1092      return li().children(children);
1093   }
1094
1095   /**
1096    * Creates an empty {@link Link} element.
1097    *
1098    * @return The new element.
1099    */
1100   public static final Link link() {
1101      return new Link();
1102   }
1103
1104   /**
1105    * Creates a {@link Link} element with the specified {@link Link#href(Object)} attribute.
1106    *
1107    * @param href The {@link Link#href(Object)} attribute.
1108    * @return The new element.
1109    */
1110   public static final Link link(Object href) {
1111      return link().href(href);
1112   }
1113
1114   /**
1115    * Creates an empty {@link Main} element.
1116    *
1117    * @return The new element.
1118    */
1119   public static final Main main() {
1120      return new Main();
1121   }
1122
1123   /**
1124    * Creates a {@link Main} element with the specified child nodes.
1125    *
1126    * @param children The child nodes.
1127    * @return The new element.
1128    */
1129   public static final Main main(Object...children) {
1130      return main().children(children);
1131   }
1132
1133   /**
1134    * Creates an empty {@link Map} element.
1135    *
1136    * @return The new element.
1137    */
1138   public static final Map map() {
1139      return new Map();
1140   }
1141
1142   /**
1143    * Creates a {@link Map} element with the specified child nodes.
1144    *
1145    * @param children The child nodes.
1146    * @return The new element.
1147    */
1148   public static final Map map(Object...children) {
1149      return map().children(children);
1150   }
1151
1152   /**
1153    * Creates an empty {@link Mark} element.
1154    *
1155    * @return The new element.
1156    */
1157   public static final Mark mark() {
1158      return new Mark();
1159   }
1160
1161   /**
1162    * Creates a {@link Mark} element with the specified child nodes.
1163    *
1164    * @param children The child nodes.
1165    * @return The new element.
1166    */
1167   public static final Mark mark(Object...children) {
1168      return mark().children(children);
1169   }
1170
1171   /**
1172    * Creates an empty {@link Meta} element.
1173    *
1174    * @return The new element.
1175    */
1176   public static final Meta meta() {
1177      return new Meta();
1178   }
1179
1180   /**
1181    * Creates an empty {@link Meter} element.
1182    *
1183    * @return The new element.
1184    */
1185   public static final Meter meter() {
1186      return new Meter();
1187   }
1188
1189   /**
1190    * Creates a {@link Meter} element with the specified child nodes.
1191    *
1192    * @param children The child nodes.
1193    * @return The new element.
1194    */
1195   public static final Meter meter(Object...children) {
1196      return meter().children(children);
1197   }
1198
1199   /**
1200    * Creates an empty {@link Nav} element.
1201    *
1202    * @return The new element.
1203    */
1204   public static final Nav nav() {
1205      return new Nav();
1206   }
1207
1208   /**
1209    * Creates a {@link Nav} element with the specified child nodes.
1210    *
1211    * @param children The child nodes.
1212    * @return The new element.
1213    */
1214   public static final Nav nav(Object...children) {
1215      return nav().children(children);
1216   }
1217
1218   /**
1219    * Creates an empty {@link Noscript} element.
1220    *
1221    * @return The new element.
1222    */
1223   public static final Noscript noscript() {
1224      return new Noscript();
1225   }
1226
1227   /**
1228    * Creates a {@link Noscript} element with the specified child nodes.
1229    *
1230    * @param children The child nodes.
1231    * @return The new element.
1232    */
1233   public static final Noscript noscript(Object...children) {
1234      return noscript().children(children);
1235   }
1236
1237   /**
1238    * Creates an empty {@link Object2} element.
1239    *
1240    * @return The new element.
1241    */
1242   public static final Object2 object() {
1243      return new Object2();
1244   }
1245
1246   /**
1247    * Creates an {@link Object2} element with the specified child nodes.
1248    *
1249    * @param children The child nodes.
1250    * @return The new element.
1251    */
1252   public static final Object2 object(Object...children) {
1253      return object().children(children);
1254   }
1255
1256   /**
1257    * Creates an empty {@link Ol} element.
1258    *
1259    * @return The new element.
1260    */
1261   public static final Ol ol() {
1262      return new Ol();
1263   }
1264
1265   /**
1266    * Creates an {@link Ol} element with the specified child nodes.
1267    *
1268    * @param children The child nodes.
1269    * @return The new element.
1270    */
1271   public static final Ol ol(Object...children) {
1272      return ol().children(children);
1273   }
1274
1275   /**
1276    * Creates an empty {@link Optgroup} element.
1277    *
1278    * @return The new element.
1279    */
1280   public static final Optgroup optgroup() {
1281      return new Optgroup();
1282   }
1283
1284   /**
1285    * Creates an {@link Optgroup} element with the specified child nodes.
1286    *
1287    * @param children The child nodes.
1288    * @return The new element.
1289    */
1290   public static final Optgroup optgroup(Object...children) {
1291      return optgroup().children(children);
1292   }
1293
1294   /**
1295    * Creates an empty {@link Option} element.
1296    *
1297    * @return The new element.
1298    */
1299   public static final Option option() {
1300      return new Option();
1301   }
1302
1303   /**
1304    * Creates an {@link Option} element with the specified {@link Option#text(Object)} attribute.
1305    *
1306    * @param text The {@link Option#text(Object)} attribute.
1307    * @return The new element.
1308    */
1309   public static final Option option(Object text) {
1310      return option().text(text);
1311   }
1312
1313   /**
1314    * Creates an {@link Option} element with the specified {@link Option#value(Object)} attribute and
1315    * {@link Option#text(Object)} node.
1316    *
1317    * @param value The {@link Option#value(Object)} attribute.
1318    * @param text The {@link Option#text(Object)} node.
1319    * @return The new element.
1320    */
1321   public static final Option option(Object value, Object text) {
1322      return option().value(value).text(text);
1323   }
1324
1325   /**
1326    * Creates an empty {@link Output} element.
1327    *
1328    * @return The new element.
1329    */
1330   public static final Output output() {
1331      return new Output();
1332   }
1333
1334   /**
1335    * Creates an {@link Output} element with the specified {@link Output#name(String)} attribute.
1336    *
1337    * @param name The {@link Output#name(String)} attribute.
1338    * @return The new element.
1339    */
1340   public static final Output output(String name) {
1341      return output().name(name);
1342   }
1343
1344   /**
1345    * Creates an empty {@link P} element.
1346    *
1347    * @return The new element.
1348    */
1349   public static final P p() {
1350      return new P();
1351   }
1352
1353   /**
1354    * Creates a {@link P} element with the specified child nodes.
1355    *
1356    * @param children The child nodes.
1357    * @return The new element.
1358    */
1359   public static final P p(Object...children) {
1360      return p().children(children);
1361   }
1362
1363   /**
1364    * Creates an empty {@link Param} element.
1365    *
1366    * @return The new element.
1367    */
1368   public static final Param param() {
1369      return new Param();
1370   }
1371
1372   /**
1373    * Creates a {@link Param} element with the specified {@link Param#name(String)} and {@link Param#value(Object)}
1374    * attributes.
1375    *
1376    * @param name The {@link Param#name(String)} attribute.
1377    * @param value The {@link Param#value(Object)} attribute.
1378    * @return The new element.
1379    */
1380   public static final Param param(String name, Object value) {
1381      return param().name(name).value(value);
1382   }
1383
1384   /**
1385    * Creates an empty {@link Pre} element.
1386    *
1387    * @return The new element.
1388    */
1389   public static final Pre pre() {
1390      return new Pre();
1391   }
1392
1393   /**
1394    * Creates a {@link Pre} element with the specified child nodes.
1395    *
1396    * @param children The child nodes.
1397    * @return The new element.
1398    */
1399   public static final Pre pre(Object...children) {
1400      return pre().children(children);
1401   }
1402
1403   /**
1404    * Creates an empty {@link Progress} element.
1405    *
1406    * @return The new element.
1407    */
1408   public static final Progress progress() {
1409      return new Progress();
1410   }
1411
1412   /**
1413    * Creates a {@link Progress} element with the specified child nodes.
1414    *
1415    * @param children The child nodes.
1416    * @return The new element.
1417    */
1418   public static final Progress progress(Object...children) {
1419      return progress().children(children);
1420   }
1421
1422   /**
1423    * Creates an empty {@link Q} element.
1424    *
1425    * @return The new element.
1426    */
1427   public static final Q q() {
1428      return new Q();
1429   }
1430
1431   /**
1432    * Creates a {@link Q} element with the specified child nodes.
1433    *
1434    * @param children The child nodes.
1435    * @return The new element.
1436    */
1437   public static final Q q(Object...children) {
1438      return q().children(children);
1439   }
1440
1441   /**
1442    * Creates an empty {@link Rb} element.
1443    *
1444    * @return The new element.
1445    */
1446   public static final Rb rb() {
1447      return new Rb();
1448   }
1449
1450   /**
1451    * Creates a {@link Rb} element with the specified {@link Rb#children(Object[])} nodes.
1452    *
1453    * @param children The {@link Rb#children(Object[])} nodes.
1454    * @return The new element.
1455    */
1456   public static final Rb rb(Object...children) {
1457      return rb().children(children);
1458   }
1459
1460   /**
1461    * Creates an empty {@link Rp} element.
1462    *
1463    * @return The new element.
1464    */
1465   public static final Rp rp() {
1466      return new Rp();
1467   }
1468
1469   /**
1470    * Creates a {@link Rp} element with the specified {@link Rp#children(Object[])} nodes.
1471    *
1472    * @param children The {@link Rp#children(Object[])} nodes.
1473    * @return The new element.
1474    */
1475   public static final Rp rp(Object...children) {
1476      return rp().children(children);
1477   }
1478
1479   /**
1480    * Creates an empty {@link Rt} element.
1481    *
1482    * @return The new element.
1483    */
1484   public static final Rt rt() {
1485      return new Rt();
1486   }
1487
1488   /**
1489    * Creates a {@link Rt} element with the specified {@link Rt#children(Object[])} nodes.
1490    *
1491    * @param children The {@link Rt#children(Object[])} nodes.
1492    * @return The new element.
1493    */
1494   public static final Rt rt(Object...children) {
1495      return rt().children(children);
1496   }
1497
1498   /**
1499    * Creates an empty {@link Rtc} element.
1500    *
1501    * @return The new element.
1502    */
1503   public static final Rtc rtc() {
1504      return new Rtc();
1505   }
1506
1507   /**
1508    * Creates an {@link Rtc} element with the specified child nodes.
1509    *
1510    * @param children The child nodes.
1511    * @return The new element.
1512    */
1513   public static final Rtc rtc(Object...children) {
1514      return rtc().children(children);
1515   }
1516
1517   /**
1518    * Creates an empty {@link Ruby} element.
1519    *
1520    * @return The new element.
1521    */
1522   public static final Ruby ruby() {
1523      return new Ruby();
1524   }
1525
1526   /**
1527    * Creates a {@link Ruby} element with the specified child nodes.
1528    *
1529    * @param children The child nodes.
1530    * @return The new element.
1531    */
1532   public static final Ruby ruby(Object...children) {
1533      return ruby().children(children);
1534   }
1535
1536   /**
1537    * Creates an empty {@link S} element.
1538    *
1539    * @return The new element.
1540    */
1541   public static final S s() {
1542      return new S();
1543   }
1544
1545   /**
1546    * Creates an {@link S} element with the specified child nodes.
1547    *
1548    * @param children The child nodes.
1549    * @return The new element.
1550    */
1551   public static final S s(Object...children) {
1552      return s().children(children);
1553   }
1554
1555   /**
1556    * Creates an empty {@link Samp} element.
1557    *
1558    * @return The new element.
1559    */
1560   public static final Samp samp() {
1561      return new Samp();
1562   }
1563
1564   /**
1565    * Creates a {@link Samp} element with the specified child nodes.
1566    *
1567    * @param children The child nodes.
1568    * @return The new element.
1569    */
1570   public static final Samp samp(Object...children) {
1571      return samp().children(children);
1572   }
1573
1574   /**
1575    * Creates an empty {@link Script} element.
1576    *
1577    * @return The new element.
1578    */
1579   public static final Script script() {
1580      return new Script();
1581   }
1582
1583   /**
1584    * Creates a {@link Script} element with the specified {@link Script#type(String)} attribute and
1585    * {@link Script#text(Object)} node.
1586    *
1587    * @param type The {@link Script#type(String)} attribute.
1588    * @param text The child text node.
1589    * @return The new element.
1590    */
1591   public static final Script script(String type, String...text) {
1592      return script().type(type).text(joinnl(text));
1593   }
1594
1595   /**
1596    * Creates an empty {@link Section} element.
1597    *
1598    * @return The new element.
1599    */
1600   public static final Section section() {
1601      return new Section();
1602   }
1603
1604   /**
1605    * Creates a {@link Section} element with the specified child nodes.
1606    *
1607    * @param children The child nodes.
1608    * @return The new element.
1609    */
1610   public static final Section section(Object...children) {
1611      return section().children(children);
1612   }
1613
1614   /**
1615    * Creates an empty {@link Select} element.
1616    *
1617    * @return The new element.
1618    */
1619   public static final Select select() {
1620      return new Select();
1621   }
1622
1623   /**
1624    * Creates a {@link Select} element with the specified {@link Select#name(String)} attribute and child nodes.
1625    *
1626    * @param name The {@link Select#name(String)} attribute.
1627    * @param children The child nodes.
1628    * @return The new element.
1629    */
1630   public static final Select select(String name, Object...children) {
1631      return select().name(name).children(children);
1632   }
1633
1634   /**
1635    * Creates an empty {@link Small} element.
1636    *
1637    * @return The new element.
1638    */
1639   public static final Small small() {
1640      return new Small();
1641   }
1642
1643   /**
1644    * Creates a {@link Small} element with the specified child nodes.
1645    *
1646    * @param children The child nodes.
1647    * @return The new element.
1648    */
1649   public static final Small small(Object...children) {
1650      return small().children(children);
1651   }
1652
1653   /**
1654    * Creates an empty {@link Source} element.
1655    *
1656    * @return The new element.
1657    */
1658   public static final Source source() {
1659      return new Source();
1660   }
1661
1662   /**
1663    * Creates a {@link Source} element with the specified {@link Source#src(Object)} and {@link Source#type(String)}
1664    * attributes.
1665    *
1666    * @param src The {@link Source#src(Object)} attribute.
1667    * @param type The {@link Source#type(String)} attribute.
1668    * @return The new element.
1669    */
1670   public static final Source source(Object src, String type) {
1671      return source().src(src).type(type);
1672   }
1673
1674   /**
1675    * Creates an empty {@link Span} element.
1676    *
1677    * @return The new element.
1678    */
1679   public static final Span span() {
1680      return new Span();
1681   }
1682
1683   /**
1684    * Creates a {@link Span} element with the specified child nodes.
1685    *
1686    * @param children The child nodes.
1687    * @return The new element.
1688    */
1689   public static final Span span(Object...children) {
1690      return span().children(children);
1691   }
1692
1693   /**
1694    * Creates an empty {@link Strong} element.
1695    *
1696    * @return The new element.
1697    */
1698   public static final Strong strong() {
1699      return new Strong();
1700   }
1701
1702   /**
1703    * Creates a {@link Strong} element with the specified child nodes.
1704    *
1705    * @param children The child nodes.
1706    * @return The new element.
1707    */
1708   public static final Strong strong(Object...children) {
1709      return strong().children(children);
1710   }
1711
1712   /**
1713    * Creates an empty {@link Style} element.
1714    *
1715    * @return The new element.
1716    */
1717   public static final Style style() {
1718      return new Style();
1719   }
1720
1721   /**
1722    * Creates a {@link Style} element with the specified {@link Style#text(Object)} node.
1723    *
1724    * @param text The {@link Style#text(Object)} node.
1725    * @return The new element.
1726    */
1727   public static final Style style(Object text) {
1728      return style().text(text);
1729   }
1730
1731   /**
1732    * Creates a {@link Style} element with the specified inner text.
1733    *
1734    * @param text
1735    *    The contents of the style element.
1736    *    <br>Values will be concatenated with newlines.
1737    * @return The new element.
1738    */
1739   public static final Style style(String...text) {
1740      return style().text(joinnl(text));
1741   }
1742
1743   /**
1744    * Creates an empty {@link Sub} element.
1745    *
1746    * @return The new element.
1747    */
1748   public static final Sub sub() {
1749      return new Sub();
1750   }
1751
1752   /**
1753    * Creates a {@link Sub} element with the specified child nodes.
1754    *
1755    * @param children The child nodes.
1756    * @return The new element.
1757    */
1758   public static final Sub sub(Object...children) {
1759      return sub().children(children);
1760   }
1761
1762   /**
1763    * Creates an empty {@link Sup} element.
1764    *
1765    * @return The new element.
1766    */
1767   public static final Sup sup() {
1768      return new Sup();
1769   }
1770
1771   /**
1772    * Creates a {@link Sup} element with the specified child nodes.
1773    *
1774    * @param children The child nodes.
1775    * @return The new element.
1776    */
1777   public static final Sup sup(Object...children) {
1778      return sup().children(children);
1779   }
1780
1781   /**
1782    * Creates an empty {@link Table} element.
1783    *
1784    * @return The new element.
1785    */
1786   public static final Table table() {
1787      return new Table();
1788   }
1789
1790   /**
1791    * Creates a {@link Table} element with the specified child nodes.
1792    *
1793    * @param children The child nodes.
1794    * @return The new element.
1795    */
1796   public static final Table table(Object...children) {
1797      return table().children(children);
1798   }
1799
1800   /**
1801    * Creates an empty {@link Tbody} element.
1802    *
1803    * @return The new element.
1804    */
1805   public static final Tbody tbody() {
1806      return new Tbody();
1807   }
1808
1809   /**
1810    * Creates a {@link Tbody} element with the specified child nodes.
1811    *
1812    * @param children The child nodes.
1813    * @return The new element.
1814    */
1815   public static final Tbody tbody(Object...children) {
1816      return tbody().children(children);
1817   }
1818
1819   /**
1820    * Creates an empty {@link Td} element.
1821    *
1822    * @return The new element.
1823    */
1824   public static final Td td() {
1825      return new Td();
1826   }
1827
1828   /**
1829    * Creates a {@link Td} element with the specified child nodes.
1830    *
1831    * @param children The child nodes.
1832    * @return The new element.
1833    */
1834   public static final Td td(Object...children) {
1835      return td().children(children);
1836   }
1837
1838   /**
1839    * Creates an empty {@link Template} element.
1840    *
1841    * @return The new element.
1842    */
1843   public static final Template template() {
1844      return new Template();
1845   }
1846
1847   /**
1848    * Creates a {@link Template} element with the specified {@link Template#id(String)} attribute and child nodes.
1849    *
1850    * @param id The {@link Template#id(String)} attribute.
1851    * @param children The child nodes.
1852    * @return The new element.
1853    */
1854   public static final Template template(String id, Object...children) {
1855      return template().id(id).children(children);
1856   }
1857
1858   /**
1859    * Creates an empty {@link Textarea} element.
1860    *
1861    * @return The new element.
1862    */
1863   public static final Textarea textarea() {
1864      return new Textarea();
1865   }
1866
1867   /**
1868    * Creates a {@link Textarea} element with the specified {@link Textarea#name(String)} attribute and
1869    * {@link Textarea#text(Object)} node.
1870    *
1871    * @param name The {@link Textarea#name(String)} attribute.
1872    * @param text The {@link Textarea#text(Object)} node.
1873    * @return The new element.
1874    */
1875   public static final Textarea textarea(String name, String text) {
1876      return textarea().name(name).text(text);
1877   }
1878
1879   /**
1880    * Creates an empty {@link Tfoot} element.
1881    *
1882    * @return The new element.
1883    */
1884   public static final Tfoot tfoot() {
1885      return new Tfoot();
1886   }
1887
1888   /**
1889    * Creates a {@link Tfoot} element with the specified child nodes.
1890    *
1891    * @param children The child nodes.
1892    * @return The new element.
1893    */
1894   public static final Tfoot tfoot(Object...children) {
1895      return tfoot().children(children);
1896   }
1897
1898   /**
1899    * Creates an empty {@link Th} element.
1900    *
1901    * @return The new element.
1902    */
1903   public static final Th th() {
1904      return new Th();
1905   }
1906
1907   /**
1908    * Creates a {@link Th} element with the specified child nodes.
1909    *
1910    * @param children The child nodes.
1911    * @return The new element.
1912    */
1913   public static final Th th(Object...children) {
1914      return th().children(children);
1915   }
1916
1917   /**
1918    * Creates an empty {@link Thead} element.
1919    *
1920    * @return The new element.
1921    */
1922   public static final Thead thead() {
1923      return new Thead();
1924   }
1925
1926   /**
1927    * Creates a {@link Thead} element with the specified child nodes.
1928    *
1929    * @param children The child nodes.
1930    * @return The new element.
1931    */
1932   public static final Thead thead(Object...children) {
1933      return thead().children(children);
1934   }
1935
1936   /**
1937    * Creates an empty {@link Time} element.
1938    *
1939    * @return The new element.
1940    */
1941   public static final Time time() {
1942      return new Time();
1943   }
1944
1945   /**
1946    * Creates a {@link Time} element with the specified {@link Time#children(Object[])} nodes.
1947    *
1948    * @param children The {@link Time#children(Object[])} nodes.
1949    * @return The new element.
1950    */
1951   public static final Time time(Object...children) {
1952      return time().children(children);
1953   }
1954
1955   /**
1956    * Creates an empty {@link Title} element.
1957    *
1958    * @return The new element.
1959    */
1960   public static final Title title() {
1961      return new Title();
1962   }
1963
1964   /**
1965    * Creates a {@link Title} element with the specified {@link Title#text(Object)} node.
1966    *
1967    * @param text The {@link Title#text(Object)} node.
1968    * @return The new element.
1969    */
1970   public static final Title title(String text) {
1971      return title().text(text);
1972   }
1973
1974   /**
1975    * Creates an empty {@link Tr} element.
1976    *
1977    * @return The new element.
1978    */
1979   public static final Tr tr() {
1980      return new Tr();
1981   }
1982
1983   /**
1984    * Creates a {@link Tr} element with the specified child nodes.
1985    *
1986    * @param children The child nodes.
1987    * @return The new element.
1988    */
1989   public static final Tr tr(Object...children) {
1990      return tr().children(children);
1991   }
1992
1993   /**
1994    * Creates an empty {@link Track} element.
1995    *
1996    * @return The new element.
1997    */
1998   public static final Track track() {
1999      return new Track();
2000   }
2001
2002   /**
2003    * Creates a {@link Track} element with the specified {@link Track#src(Object)} and {@link Track#kind(String)}
2004    * attributes.
2005    *
2006    * @param src The {@link Track#src(Object)} attribute.
2007    * @param kind The {@link Track#kind(String)} attribute.
2008    * @return The new element.
2009    */
2010   public static final Track track(Object src, String kind) {
2011      return track().src(src).kind(kind);
2012   }
2013
2014   /**
2015    * Creates an empty {@link U} element.
2016    *
2017    * @return The new element.
2018    */
2019   public static final U u() {
2020      return new U();
2021   }
2022
2023   /**
2024    * Creates a {@link U} element with the specified child nodes.
2025    *
2026    * @param children The child nodes.
2027    * @return The new element.
2028    */
2029   public static final U u(Object...children) {
2030      return u().children(children);
2031   }
2032
2033   /**
2034    * Creates an empty {@link Ul} element.
2035    *
2036    * @return The new element.
2037    */
2038   public static final Ul ul() {
2039      return new Ul();
2040   }
2041
2042   /**
2043    * Creates a {@link Ul} element with the specified child nodes.
2044    *
2045    * @param children The child nodes.
2046    * @return The new element.
2047    */
2048   public static final Ul ul(Object...children) {
2049      return ul().children(children);
2050   }
2051
2052   /**
2053    * Creates an empty {@link Var} element.
2054    *
2055    * @return The new element.
2056    */
2057   public static final Var var() {
2058      return new Var();
2059   }
2060
2061   /**
2062    * Creates a {@link Var} element with the specified child nodes.
2063    *
2064    * @param children The child nodes.
2065    * @return The new element.
2066    */
2067   public static final Var var(Object...children) {
2068      return var().children(children);
2069   }
2070
2071   /**
2072    * Creates an empty {@link Video} element.
2073    *
2074    * @return The new element.
2075    */
2076   public static final Video video() {
2077      return new Video();
2078   }
2079
2080   /**
2081    * Creates a {@link Video} element with the specified {@link Video#src(Object)} attribute.
2082    *
2083    * @param src The {@link Video#src(Object)} attribute.
2084    * @return The new element.
2085    */
2086   public static final Video video(Object src) {
2087      return video().src(src);
2088   }
2089
2090   /**
2091    * Creates an empty {@link Wbr} element.
2092    *
2093    * @return The new element.
2094    */
2095   public static final Wbr wbr() {
2096      return new Wbr();
2097   }
2098
2099   /**
2100    * @deprecated Use {@link #script(String, String...)}
2101    */
2102   @SuppressWarnings("javadoc")
2103   @Deprecated
2104   public static final Script script(String type, String text) {
2105      return script(type, new String[]{text});
2106   }
2107}