OSDN Git Service

Initial commit
[wordring-tm/wordring-tm.git] / html / htmltagbase.h
1 #ifndef HTMLTAGBASE_H
2 #define HTMLTAGBASE_H
3
4 #include "htmltag.h"
5
6 class HtmlElementABase : public HtmlElement
7 {
8 public:
9         int tclass() const { return Html::A; }
10         string_type tname() const { return string_cast<string_type>("a"); }
11         int tcategory() const { return 0 | Flow | Interactive | Inline; }
12         int tinfo() const { return Unknown; }
13 protected:
14         HtmlElementABase(weak_pointer const &parent_) : HtmlElement(parent_) { }
15 };
16
17 class HtmlElementAbbrBase : public HtmlElement
18 {
19 public:
20         int tclass() const { return Html::Abbr; }
21         string_type tname() const { return string_cast<string_type>("abbr"); }
22         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
23         int tinfo() const { return Unknown; }
24 protected:
25         HtmlElementAbbrBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
26 };
27
28 class HtmlElementAcronymBase : public HtmlElement
29 {
30 public:
31         int tclass() const { return Html::Acronym; }
32         string_type tname() const { return string_cast<string_type>("acronym"); }
33         int tcategory() const { return 0 | Inline; }
34         int tinfo() const { return Unknown; }
35 protected:
36         HtmlElementAcronymBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
37 };
38
39 class HtmlElementAddressBase : public HtmlElement
40 {
41 public:
42         int tclass() const { return Html::Address; }
43         string_type tname() const { return string_cast<string_type>("address"); }
44         int tcategory() const { return 0 | Flow | Block | Splitter; }
45         int tinfo() const { return Unknown; }
46 protected:
47         HtmlElementAddressBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
48 };
49
50 class HtmlElementAppletBase : public HtmlElement
51 {
52 public:
53         int tclass() const { return Html::Applet; }
54         string_type tname() const { return string_cast<string_type>("applet"); }
55         int tcategory() const { return 0; }
56         int tinfo() const { return Unknown; }
57 protected:
58         HtmlElementAppletBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
59 };
60
61 class HtmlElementAreaBase : public HtmlElement
62 {
63 public:
64         int tclass() const { return Html::Area; }
65         string_type tname() const { return string_cast<string_type>("area"); }
66         int tcategory() const { return 0 | Empty; }
67         int tinfo() const { return Unknown; }
68 protected:
69         HtmlElementAreaBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
70 };
71
72 class HtmlElementArticleBase : public HtmlElement
73 {
74 public:
75         int tclass() const { return Html::Article; }
76         string_type tname() const { return string_cast<string_type>("article"); }
77         int tcategory() const { return 0 | Flow | Sectioning | Block | Splitter; }
78         int tinfo() const { return Unknown; }
79 protected:
80         HtmlElementArticleBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
81 };
82
83 class HtmlElementAsideBase : public HtmlElement
84 {
85 public:
86         int tclass() const { return Html::Aside; }
87         string_type tname() const { return string_cast<string_type>("aside"); }
88         int tcategory() const { return 0 | Flow | Sectioning | Block | Splitter; }
89         int tinfo() const { return Unknown; }
90 protected:
91         HtmlElementAsideBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
92 };
93
94 class HtmlElementAudioBase : public HtmlElement
95 {
96 public:
97         int tclass() const { return Html::Audio; }
98         string_type tname() const { return string_cast<string_type>("audio"); }
99         int tcategory() const { return 0 | Flow | Phrasing | Embeded | Block | Splitter; }
100         int tinfo() const { return Unknown; }
101 protected:
102         HtmlElementAudioBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
103 };
104
105 class HtmlElementBBase : public HtmlElement
106 {
107 public:
108         int tclass() const { return Html::B; }
109         string_type tname() const { return string_cast<string_type>("b"); }
110         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
111         int tinfo() const { return Unknown; }
112 protected:
113         HtmlElementBBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
114 };
115
116 class HtmlElementBaseBase : public HtmlElement
117 {
118 public:
119         int tclass() const { return Html::Base; }
120         string_type tname() const { return string_cast<string_type>("base"); }
121         int tcategory() const { return 0 | Metadata | Empty; }
122         int tinfo() const { return Unknown; }
123 protected:
124         HtmlElementBaseBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
125 };
126
127 class HtmlElementBasefontBase : public HtmlElement
128 {
129 public:
130         int tclass() const { return Html::Basefont; }
131         string_type tname() const { return string_cast<string_type>("basefont"); }
132         int tcategory() const { return 0 | Empty; }
133         int tinfo() const { return Unknown; }
134 protected:
135         HtmlElementBasefontBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
136 };
137
138 class HtmlElementBdiBase : public HtmlElement
139 {
140 public:
141         int tclass() const { return Html::Bdi; }
142         string_type tname() const { return string_cast<string_type>("bdi"); }
143         int tcategory() const { return 0 | Flow; }
144         int tinfo() const { return Unknown; }
145 protected:
146         HtmlElementBdiBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
147 };
148
149 class HtmlElementBdoBase : public HtmlElement
150 {
151 public:
152         int tclass() const { return Html::Bdo; }
153         string_type tname() const { return string_cast<string_type>("bdo"); }
154         int tcategory() const { return 0 | Flow | Phrasing | Inline | Splitter; }
155         int tinfo() const { return Unknown; }
156 protected:
157         HtmlElementBdoBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
158 };
159
160 class HtmlElementBgsoundBase : public HtmlElement
161 {
162 public:
163         int tclass() const { return Html::Bgsound; }
164         string_type tname() const { return string_cast<string_type>("bgsound"); }
165         int tcategory() const { return 0; }
166         int tinfo() const { return Unknown; }
167 protected:
168         HtmlElementBgsoundBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
169 };
170
171 class HtmlElementBigBase : public HtmlElement
172 {
173 public:
174         int tclass() const { return Html::Big; }
175         string_type tname() const { return string_cast<string_type>("big"); }
176         int tcategory() const { return 0 | Inline; }
177         int tinfo() const { return Unknown; }
178 protected:
179         HtmlElementBigBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
180 };
181
182 class HtmlElementBlinkBase : public HtmlElement
183 {
184 public:
185         int tclass() const { return Html::Blink; }
186         string_type tname() const { return string_cast<string_type>("blink"); }
187         int tcategory() const { return 0; }
188         int tinfo() const { return Unknown; }
189 protected:
190         HtmlElementBlinkBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
191 };
192
193 class HtmlElementBlockquoteBase : public HtmlElement
194 {
195 public:
196         int tclass() const { return Html::Blockquote; }
197         string_type tname() const { return string_cast<string_type>("blockquote"); }
198         int tcategory() const { return 0 | Flow | Block | Splitter; }
199         int tinfo() const { return Unknown; }
200 protected:
201         HtmlElementBlockquoteBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
202 };
203
204 class HtmlElementBodyBase : public HtmlElement
205 {
206 public:
207         int tclass() const { return Html::Body; }
208         string_type tname() const { return string_cast<string_type>("body"); }
209         int tcategory() const { return 0; }
210         int tinfo() const { return Unknown; }
211 protected:
212         HtmlElementBodyBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
213 };
214
215 class HtmlElementBrBase : public HtmlElement
216 {
217 public:
218         int tclass() const { return Html::Br; }
219         string_type tname() const { return string_cast<string_type>("br"); }
220         int tcategory() const { return 0 | Flow | Phrasing | Inline | Empty | Splitter; }
221         int tinfo() const { return Unknown; }
222 protected:
223         HtmlElementBrBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
224 };
225
226 class HtmlElementButtonBase : public HtmlElement
227 {
228 public:
229         int tclass() const { return Html::Button; }
230         string_type tname() const { return string_cast<string_type>("button"); }
231         int tcategory() const { return 0 | Flow | Phrasing | Interactive | FormAssociated | Inline | Splitter | Ignore; }
232         int tinfo() const { return Unknown; }
233 protected:
234         HtmlElementButtonBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
235 };
236
237 class HtmlElementCanvasBase : public HtmlElement
238 {
239 public:
240         int tclass() const { return Html::Canvas; }
241         string_type tname() const { return string_cast<string_type>("canvas"); }
242         int tcategory() const { return 0 | Flow | Phrasing | Embeded | Block | Splitter; }
243         int tinfo() const { return Unknown; }
244 protected:
245         HtmlElementCanvasBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
246 };
247
248 class HtmlElementCaptionBase : public HtmlElement
249 {
250 public:
251         int tclass() const { return Html::Caption; }
252         string_type tname() const { return string_cast<string_type>("caption"); }
253         int tcategory() const { return 0 | Splitter; }
254         int tinfo() const { return Unknown; }
255 protected:
256         HtmlElementCaptionBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
257 };
258
259 class HtmlElementCenterBase : public HtmlElement
260 {
261 public:
262         int tclass() const { return Html::Center; }
263         string_type tname() const { return string_cast<string_type>("center"); }
264         int tcategory() const { return 0; }
265         int tinfo() const { return Unknown; }
266 protected:
267         HtmlElementCenterBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
268 };
269
270 class HtmlElementCiteBase : public HtmlElement
271 {
272 public:
273         int tclass() const { return Html::Cite; }
274         string_type tname() const { return string_cast<string_type>("cite"); }
275         int tcategory() const { return 0 | Flow | Phrasing | Inline | Splitter; }
276         int tinfo() const { return Unknown; }
277 protected:
278         HtmlElementCiteBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
279 };
280
281 class HtmlElementCodeBase : public HtmlElement
282 {
283 public:
284         int tclass() const { return Html::Code; }
285         string_type tname() const { return string_cast<string_type>("code"); }
286         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
287         int tinfo() const { return Unknown; }
288 protected:
289         HtmlElementCodeBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
290 };
291
292 class HtmlElementColBase : public HtmlElement
293 {
294 public:
295         int tclass() const { return Html::Col; }
296         string_type tname() const { return string_cast<string_type>("col"); }
297         int tcategory() const { return 0 | Empty | Splitter; }
298         int tinfo() const { return Unknown; }
299 protected:
300         HtmlElementColBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
301 };
302
303 class HtmlElementColgroupBase : public HtmlElement
304 {
305 public:
306         int tclass() const { return Html::Colgroup; }
307         string_type tname() const { return string_cast<string_type>("colgroup"); }
308         int tcategory() const { return 0 | Splitter; }
309         int tinfo() const { return Unknown; }
310 protected:
311         HtmlElementColgroupBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
312 };
313
314 class HtmlElementCommandBase : public HtmlElement
315 {
316 public:
317         int tclass() const { return Html::Command; }
318         string_type tname() const { return string_cast<string_type>("command"); }
319         int tcategory() const { return 0 | Metadata | Flow | Phrasing | Splitter; }
320         int tinfo() const { return Unknown; }
321 protected:
322         HtmlElementCommandBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
323 };
324
325 class HtmlElementDatalistBase : public HtmlElement
326 {
327 public:
328         int tclass() const { return Html::Datalist; }
329         string_type tname() const { return string_cast<string_type>("datalist"); }
330         int tcategory() const { return 0 | Flow | Phrasing | Splitter; }
331         int tinfo() const { return Unknown; }
332 protected:
333         HtmlElementDatalistBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
334 };
335
336 class HtmlElementDdBase : public HtmlElement
337 {
338 public:
339         int tclass() const { return Html::Dd; }
340         string_type tname() const { return string_cast<string_type>("dd"); }
341         int tcategory() const { return 0 | Block | Splitter; }
342         int tinfo() const { return Unknown; }
343 protected:
344         HtmlElementDdBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
345 };
346
347 class HtmlElementDelBase : public HtmlElement
348 {
349 public:
350         int tclass() const { return Html::Del; }
351         string_type tname() const { return string_cast<string_type>("del"); }
352         int tcategory() const { return 0 | Flow | Transparent; }
353         int tinfo() const { return Unknown; }
354 protected:
355         HtmlElementDelBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
356 };
357
358 class HtmlElementDetailsBase : public HtmlElement
359 {
360 public:
361         int tclass() const { return Html::Details; }
362         string_type tname() const { return string_cast<string_type>("details"); }
363         int tcategory() const { return 0 | Flow | Interactive | Splitter; }
364         int tinfo() const { return Unknown; }
365 protected:
366         HtmlElementDetailsBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
367 };
368
369 class HtmlElementDfnBase : public HtmlElement
370 {
371 public:
372         int tclass() const { return Html::Dfn; }
373         string_type tname() const { return string_cast<string_type>("dfn"); }
374         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
375         int tinfo() const { return Unknown; }
376 protected:
377         HtmlElementDfnBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
378 };
379
380 class HtmlElementDirBase : public HtmlElement
381 {
382 public:
383         int tclass() const { return Html::Dir; }
384         string_type tname() const { return string_cast<string_type>("dir"); }
385         int tcategory() const { return 0; }
386         int tinfo() const { return Unknown; }
387 protected:
388         HtmlElementDirBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
389 };
390
391 class HtmlElementDivBase : public HtmlElement
392 {
393 public:
394         int tclass() const { return Html::Div; }
395         string_type tname() const { return string_cast<string_type>("div"); }
396         int tcategory() const { return 0 | Flow | Block | Splitter; }
397         int tinfo() const { return Unknown; }
398 protected:
399         HtmlElementDivBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
400 };
401
402 class HtmlElementDlBase : public HtmlElement
403 {
404 public:
405         int tclass() const { return Html::Dl; }
406         string_type tname() const { return string_cast<string_type>("dl"); }
407         int tcategory() const { return 0 | Flow | Block | Splitter; }
408         int tinfo() const { return Unknown; }
409 protected:
410         HtmlElementDlBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
411 };
412
413 class HtmlElementDtBase : public HtmlElement
414 {
415 public:
416         int tclass() const { return Html::Dt; }
417         string_type tname() const { return string_cast<string_type>("dt"); }
418         int tcategory() const { return 0 | Splitter; }
419         int tinfo() const { return Unknown; }
420 protected:
421         HtmlElementDtBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
422 };
423
424 class HtmlElementEmBase : public HtmlElement
425 {
426 public:
427         int tclass() const { return Html::Em; }
428         string_type tname() const { return string_cast<string_type>("em"); }
429         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
430         int tinfo() const { return Unknown; }
431 protected:
432         HtmlElementEmBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
433 };
434
435 class HtmlElementEmbedBase : public HtmlElement
436 {
437 public:
438         int tclass() const { return Html::Embed; }
439         string_type tname() const { return string_cast<string_type>("embed"); }
440         int tcategory() const { return 0 | Flow | Phrasing | Embeded | Interactive | Splitter; }
441         int tinfo() const { return Unknown; }
442 protected:
443         HtmlElementEmbedBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
444 };
445
446 class HtmlElementFieldsetBase : public HtmlElement
447 {
448 public:
449         int tclass() const { return Html::Fieldset; }
450         string_type tname() const { return string_cast<string_type>("fieldset"); }
451         int tcategory() const { return 0 | Flow | FormAssociated | Block | Splitter | Ignore; }
452         int tinfo() const { return Unknown; }
453 protected:
454         HtmlElementFieldsetBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
455 };
456
457 class HtmlElementFigcaptionBase : public HtmlElement
458 {
459 public:
460         int tclass() const { return Html::Figcaption; }
461         string_type tname() const { return string_cast<string_type>("figcaption"); }
462         int tcategory() const { return 0 | Block | Splitter; }
463         int tinfo() const { return Unknown; }
464 protected:
465         HtmlElementFigcaptionBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
466 };
467
468 class HtmlElementFigureBase : public HtmlElement
469 {
470 public:
471         int tclass() const { return Html::Figure; }
472         string_type tname() const { return string_cast<string_type>("figure"); }
473         int tcategory() const { return 0 | Flow | Block | Splitter; }
474         int tinfo() const { return Unknown; }
475 protected:
476         HtmlElementFigureBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
477 };
478
479 class HtmlElementFontBase : public HtmlElement
480 {
481 public:
482         int tclass() const { return Html::Font; }
483         string_type tname() const { return string_cast<string_type>("font"); }
484         int tcategory() const { return 0; }
485         int tinfo() const { return Unknown; }
486 protected:
487         HtmlElementFontBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
488 };
489
490 class HtmlElementFooterBase : public HtmlElement
491 {
492 public:
493         int tclass() const { return Html::Footer; }
494         string_type tname() const { return string_cast<string_type>("footer"); }
495         int tcategory() const { return 0 | Flow | Block | Splitter; }
496         int tinfo() const { return Unknown; }
497 protected:
498         HtmlElementFooterBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
499 };
500
501 class HtmlElementFormBase : public HtmlElement
502 {
503 public:
504         int tclass() const { return Html::Form; }
505         string_type tname() const { return string_cast<string_type>("form"); }
506         int tcategory() const { return 0 | Flow | Block | Splitter; }
507         int tinfo() const { return Unknown; }
508 protected:
509         HtmlElementFormBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
510 };
511
512 class HtmlElementFrameBase : public HtmlElement
513 {
514 public:
515         int tclass() const { return Html::Frame; }
516         string_type tname() const { return string_cast<string_type>("frame"); }
517         int tcategory() const { return 0 | Empty; }
518         int tinfo() const { return Unknown; }
519 protected:
520         HtmlElementFrameBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
521 };
522
523 class HtmlElementFramesetBase : public HtmlElement
524 {
525 public:
526         int tclass() const { return Html::Frameset; }
527         string_type tname() const { return string_cast<string_type>("frameset"); }
528         int tcategory() const { return 0; }
529         int tinfo() const { return Unknown; }
530 protected:
531         HtmlElementFramesetBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
532 };
533
534 class HtmlElementH1Base : public HtmlElement
535 {
536 public:
537         int tclass() const { return Html::H1; }
538         string_type tname() const { return string_cast<string_type>("h1"); }
539         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
540         int tinfo() const { return Unknown; }
541 protected:
542         HtmlElementH1Base(weak_pointer const &parent_) : HtmlElement(parent_) { }
543 };
544
545 class HtmlElementH2Base : public HtmlElement
546 {
547 public:
548         int tclass() const { return Html::H2; }
549         string_type tname() const { return string_cast<string_type>("h2"); }
550         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
551         int tinfo() const { return Unknown; }
552 protected:
553         HtmlElementH2Base(weak_pointer const &parent_) : HtmlElement(parent_) { }
554 };
555
556 class HtmlElementH3Base : public HtmlElement
557 {
558 public:
559         int tclass() const { return Html::H3; }
560         string_type tname() const { return string_cast<string_type>("h3"); }
561         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
562         int tinfo() const { return Unknown; }
563 protected:
564         HtmlElementH3Base(weak_pointer const &parent_) : HtmlElement(parent_) { }
565 };
566
567 class HtmlElementH4Base : public HtmlElement
568 {
569 public:
570         int tclass() const { return Html::H4; }
571         string_type tname() const { return string_cast<string_type>("h4"); }
572         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
573         int tinfo() const { return Unknown; }
574 protected:
575         HtmlElementH4Base(weak_pointer const &parent_) : HtmlElement(parent_) { }
576 };
577
578 class HtmlElementH5Base : public HtmlElement
579 {
580 public:
581         int tclass() const { return Html::H5; }
582         string_type tname() const { return string_cast<string_type>("h5"); }
583         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
584         int tinfo() const { return Unknown; }
585 protected:
586         HtmlElementH5Base(weak_pointer const &parent_) : HtmlElement(parent_) { }
587 };
588
589 class HtmlElementH6Base : public HtmlElement
590 {
591 public:
592         int tclass() const { return Html::H6; }
593         string_type tname() const { return string_cast<string_type>("h6"); }
594         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
595         int tinfo() const { return Unknown; }
596 protected:
597         HtmlElementH6Base(weak_pointer const &parent_) : HtmlElement(parent_) { }
598 };
599
600 class HtmlElementHeadBase : public HtmlElement
601 {
602 public:
603         int tclass() const { return Html::Head; }
604         string_type tname() const { return string_cast<string_type>("head"); }
605         int tcategory() const { return 0; }
606         int tinfo() const { return Unknown; }
607 protected:
608         HtmlElementHeadBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
609 };
610
611 class HtmlElementHeaderBase : public HtmlElement
612 {
613 public:
614         int tclass() const { return Html::Header; }
615         string_type tname() const { return string_cast<string_type>("header"); }
616         int tcategory() const { return 0 | Flow | Block | Splitter; }
617         int tinfo() const { return Unknown; }
618 protected:
619         HtmlElementHeaderBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
620 };
621
622 class HtmlElementHgroupBase : public HtmlElement
623 {
624 public:
625         int tclass() const { return Html::Hgroup; }
626         string_type tname() const { return string_cast<string_type>("hgroup"); }
627         int tcategory() const { return 0 | Flow | Heading | Block | Splitter; }
628         int tinfo() const { return Unknown; }
629 protected:
630         HtmlElementHgroupBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
631 };
632
633 class HtmlElementHrBase : public HtmlElement
634 {
635 public:
636         int tclass() const { return Html::Hr; }
637         string_type tname() const { return string_cast<string_type>("hr"); }
638         int tcategory() const { return 0 | Flow | Block | Empty | Splitter; }
639         int tinfo() const { return Unknown; }
640 protected:
641         HtmlElementHrBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
642 };
643
644 class HtmlElementHtmBase : public HtmlElement
645 {
646 public:
647         int tclass() const { return Html::Htm; }
648         string_type tname() const { return string_cast<string_type>("htm"); }
649         int tcategory() const { return 0; }
650         int tinfo() const { return Unknown; }
651 protected:
652         HtmlElementHtmBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
653 };
654
655 class HtmlElementIBase : public HtmlElement
656 {
657 public:
658         int tclass() const { return Html::I; }
659         string_type tname() const { return string_cast<string_type>("i"); }
660         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
661         int tinfo() const { return Unknown; }
662 protected:
663         HtmlElementIBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
664 };
665
666 class HtmlElementIframeBase : public HtmlElement
667 {
668 public:
669         int tclass() const { return Html::Iframe; }
670         string_type tname() const { return string_cast<string_type>("iframe"); }
671         int tcategory() const { return 0 | Flow | Phrasing | Embeded | Interactive | Splitter; }
672         int tinfo() const { return Unknown; }
673 protected:
674         HtmlElementIframeBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
675 };
676
677 class HtmlElementImgBase : public HtmlElement
678 {
679 public:
680         int tclass() const { return Html::Img; }
681         string_type tname() const { return string_cast<string_type>("img"); }
682         int tcategory() const { return 0 | Flow | Phrasing | Embeded | Inline | Empty | Splitter; }
683         int tinfo() const { return Unknown; }
684 protected:
685         HtmlElementImgBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
686 };
687
688 class HtmlElementInputBase : public HtmlElement
689 {
690 public:
691         int tclass() const { return Html::Input; }
692         string_type tname() const { return string_cast<string_type>("input"); }
693         int tcategory() const { return 0 | Flow | Phrasing | FormAssociated | Inline | Empty | Splitter | Ignore; }
694         int tinfo() const { return Unknown; }
695 protected:
696         HtmlElementInputBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
697 };
698
699 class HtmlElementInsBase : public HtmlElement
700 {
701 public:
702         int tclass() const { return Html::Ins; }
703         string_type tname() const { return string_cast<string_type>("ins"); }
704         int tcategory() const { return 0 | Flow | Transparent; }
705         int tinfo() const { return Unknown; }
706 protected:
707         HtmlElementInsBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
708 };
709
710 class HtmlElementIsindexBase : public HtmlElement
711 {
712 public:
713         int tclass() const { return Html::Isindex; }
714         string_type tname() const { return string_cast<string_type>("isindex"); }
715         int tcategory() const { return 0 | Empty; }
716         int tinfo() const { return Unknown; }
717 protected:
718         HtmlElementIsindexBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
719 };
720
721 class HtmlElementKbdBase : public HtmlElement
722 {
723 public:
724         int tclass() const { return Html::Kbd; }
725         string_type tname() const { return string_cast<string_type>("kbd"); }
726         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
727         int tinfo() const { return Unknown; }
728 protected:
729         HtmlElementKbdBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
730 };
731
732 class HtmlElementKeygenBase : public HtmlElement
733 {
734 public:
735         int tclass() const { return Html::Keygen; }
736         string_type tname() const { return string_cast<string_type>("keygen"); }
737         int tcategory() const { return 0 | Flow | Phrasing | Interactive | FormAssociated | Splitter | Ignore; }
738         int tinfo() const { return Unknown; }
739 protected:
740         HtmlElementKeygenBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
741 };
742
743 class HtmlElementLabelBase : public HtmlElement
744 {
745 public:
746         int tclass() const { return Html::Label; }
747         string_type tname() const { return string_cast<string_type>("label"); }
748         int tcategory() const { return 0 | Flow | Phrasing | Interactive | Inline | Splitter | Ignore; }
749         int tinfo() const { return Unknown; }
750 protected:
751         HtmlElementLabelBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
752 };
753
754 class HtmlElementLegendBase : public HtmlElement
755 {
756 public:
757         int tclass() const { return Html::Legend; }
758         string_type tname() const { return string_cast<string_type>("legend"); }
759         int tcategory() const { return 0; }
760         int tinfo() const { return Unknown; }
761 protected:
762         HtmlElementLegendBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
763 };
764
765 class HtmlElementLiBase : public HtmlElement
766 {
767 public:
768         int tclass() const { return Html::Li; }
769         string_type tname() const { return string_cast<string_type>("li"); }
770         int tcategory() const { return 0 | Splitter; }
771         int tinfo() const { return Unknown; }
772 protected:
773         HtmlElementLiBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
774 };
775
776 class HtmlElementLinkBase : public HtmlElement
777 {
778 public:
779         int tclass() const { return Html::Link; }
780         string_type tname() const { return string_cast<string_type>("link"); }
781         int tcategory() const { return 0 | Metadata | Empty; }
782         int tinfo() const { return Unknown; }
783 protected:
784         HtmlElementLinkBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
785 };
786
787 class HtmlElementListingBase : public HtmlElement
788 {
789 public:
790         int tclass() const { return Html::Listing; }
791         string_type tname() const { return string_cast<string_type>("listing"); }
792         int tcategory() const { return 0; }
793         int tinfo() const { return Unknown; }
794 protected:
795         HtmlElementListingBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
796 };
797
798 class HtmlElementMapBase : public HtmlElement
799 {
800 public:
801         int tclass() const { return Html::Map; }
802         string_type tname() const { return string_cast<string_type>("map"); }
803         int tcategory() const { return 0 | Flow | Inline | Splitter; }
804         int tinfo() const { return Unknown; }
805 protected:
806         HtmlElementMapBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
807 };
808
809 class HtmlElementMarkBase : public HtmlElement
810 {
811 public:
812         int tclass() const { return Html::Mark; }
813         string_type tname() const { return string_cast<string_type>("mark"); }
814         int tcategory() const { return 0 | Flow | Phrasing; }
815         int tinfo() const { return Unknown; }
816 protected:
817         HtmlElementMarkBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
818 };
819
820 class HtmlElementMarqueeBase : public HtmlElement
821 {
822 public:
823         int tclass() const { return Html::Marquee; }
824         string_type tname() const { return string_cast<string_type>("marquee"); }
825         int tcategory() const { return 0; }
826         int tinfo() const { return Unknown; }
827 protected:
828         HtmlElementMarqueeBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
829 };
830
831 class HtmlElementMenuBase : public HtmlElement
832 {
833 public:
834         int tclass() const { return Html::Menu; }
835         string_type tname() const { return string_cast<string_type>("menu"); }
836         int tcategory() const { return 0 | Flow | Splitter; }
837         int tinfo() const { return Unknown; }
838 protected:
839         HtmlElementMenuBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
840 };
841
842 class HtmlElementMetaBase : public HtmlElement
843 {
844 public:
845         int tclass() const { return Html::Meta; }
846         string_type tname() const { return string_cast<string_type>("meta"); }
847         int tcategory() const { return 0 | Metadata | Empty; }
848         int tinfo() const { return Unknown; }
849 protected:
850         HtmlElementMetaBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
851 };
852
853 class HtmlElementMeterBase : public HtmlElement
854 {
855 public:
856         int tclass() const { return Html::Meter; }
857         string_type tname() const { return string_cast<string_type>("meter"); }
858         int tcategory() const { return 0 | Flow | Phrasing | Ignore; }
859         int tinfo() const { return Unknown; }
860 protected:
861         HtmlElementMeterBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
862 };
863
864 class HtmlElementNavBase : public HtmlElement
865 {
866 public:
867         int tclass() const { return Html::Nav; }
868         string_type tname() const { return string_cast<string_type>("nav"); }
869         int tcategory() const { return 0 | Flow | Sectioning | Block | Splitter; }
870         int tinfo() const { return Unknown; }
871 protected:
872         HtmlElementNavBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
873 };
874
875 class HtmlElementNobrBase : public HtmlElement
876 {
877 public:
878         int tclass() const { return Html::Nobr; }
879         string_type tname() const { return string_cast<string_type>("nobr"); }
880         int tcategory() const { return 0; }
881         int tinfo() const { return Unknown; }
882 protected:
883         HtmlElementNobrBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
884 };
885
886 class HtmlElementNoframesBase : public HtmlElement
887 {
888 public:
889         int tclass() const { return Html::Noframes; }
890         string_type tname() const { return string_cast<string_type>("noframes"); }
891         int tcategory() const { return 0; }
892         int tinfo() const { return Unknown; }
893 protected:
894         HtmlElementNoframesBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
895 };
896
897 class HtmlElementNoscriptBase : public HtmlElement
898 {
899 public:
900         int tclass() const { return Html::Noscript; }
901         string_type tname() const { return string_cast<string_type>("noscript"); }
902         int tcategory() const { return 0 | Metadata | Flow | Phrasing | Block | Splitter; }
903         int tinfo() const { return Unknown; }
904 protected:
905         HtmlElementNoscriptBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
906 };
907
908 class HtmlElementObjectBase : public HtmlElement
909 {
910 public:
911         int tclass() const { return Html::Object; }
912         string_type tname() const { return string_cast<string_type>("object"); }
913         int tcategory() const { return 0 | Flow | Phrasing | Embeded | FormAssociated | Inline | Splitter | Ignore; }
914         int tinfo() const { return Unknown; }
915 protected:
916         HtmlElementObjectBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
917 };
918
919 class HtmlElementOlBase : public HtmlElement
920 {
921 public:
922         int tclass() const { return Html::Ol; }
923         string_type tname() const { return string_cast<string_type>("ol"); }
924         int tcategory() const { return 0 | Flow | Block | Splitter; }
925         int tinfo() const { return Unknown; }
926 protected:
927         HtmlElementOlBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
928 };
929
930 class HtmlElementOptgroupBase : public HtmlElement
931 {
932 public:
933         int tclass() const { return Html::Optgroup; }
934         string_type tname() const { return string_cast<string_type>("optgroup"); }
935         int tcategory() const { return 0; }
936         int tinfo() const { return Unknown; }
937 protected:
938         HtmlElementOptgroupBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
939 };
940
941 class HtmlElementOptionBase : public HtmlElement
942 {
943 public:
944         int tclass() const { return Html::Option; }
945         string_type tname() const { return string_cast<string_type>("option"); }
946         int tcategory() const { return 0; }
947         int tinfo() const { return Unknown; }
948 protected:
949         HtmlElementOptionBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
950 };
951
952 class HtmlElementOutputBase : public HtmlElement
953 {
954 public:
955         int tclass() const { return Html::Output; }
956         string_type tname() const { return string_cast<string_type>("output"); }
957         int tcategory() const { return 0 | Flow | Phrasing | FormAssociated | Block | Splitter | Ignore; }
958         int tinfo() const { return Unknown; }
959 protected:
960         HtmlElementOutputBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
961 };
962
963 class HtmlElementPBase : public HtmlElement
964 {
965 public:
966         int tclass() const { return Html::P; }
967         string_type tname() const { return string_cast<string_type>("p"); }
968         int tcategory() const { return 0 | Flow | Block | Splitter; }
969         int tinfo() const { return Unknown; }
970 protected:
971         HtmlElementPBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
972 };
973
974 class HtmlElementParamBase : public HtmlElement
975 {
976 public:
977         int tclass() const { return Html::Param; }
978         string_type tname() const { return string_cast<string_type>("param"); }
979         int tcategory() const { return 0 | Empty; }
980         int tinfo() const { return Unknown; }
981 protected:
982         HtmlElementParamBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
983 };
984
985 class HtmlElementPlaintextBase : public HtmlElement
986 {
987 public:
988         int tclass() const { return Html::Plaintext; }
989         string_type tname() const { return string_cast<string_type>("plaintext"); }
990         int tcategory() const { return 0; }
991         int tinfo() const { return Unknown; }
992 protected:
993         HtmlElementPlaintextBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
994 };
995
996 class HtmlElementPreBase : public HtmlElement
997 {
998 public:
999         int tclass() const { return Html::Pre; }
1000         string_type tname() const { return string_cast<string_type>("pre"); }
1001         int tcategory() const { return 0 | Flow | Block | Splitter | Ignore; }
1002         int tinfo() const { return Unknown; }
1003 protected:
1004         HtmlElementPreBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1005 };
1006
1007 class HtmlElementProgressBase : public HtmlElement
1008 {
1009 public:
1010         int tclass() const { return Html::Progress; }
1011         string_type tname() const { return string_cast<string_type>("progress"); }
1012         int tcategory() const { return 0 | Flow | Phrasing | Splitter | Ignore; }
1013         int tinfo() const { return Unknown; }
1014 protected:
1015         HtmlElementProgressBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1016 };
1017
1018 class HtmlElementQBase : public HtmlElement
1019 {
1020 public:
1021         int tclass() const { return Html::Q; }
1022         string_type tname() const { return string_cast<string_type>("q"); }
1023         int tcategory() const { return 0 | Flow | Phrasing | Inline | Splitter; }
1024         int tinfo() const { return Unknown; }
1025 protected:
1026         HtmlElementQBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1027 };
1028
1029 class HtmlElementRpBase : public HtmlElement
1030 {
1031 public:
1032         int tclass() const { return Html::Rp; }
1033         string_type tname() const { return string_cast<string_type>("rp"); }
1034         int tcategory() const { return 0; }
1035         int tinfo() const { return Unknown; }
1036 protected:
1037         HtmlElementRpBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1038 };
1039
1040 class HtmlElementRtBase : public HtmlElement
1041 {
1042 public:
1043         int tclass() const { return Html::Rt; }
1044         string_type tname() const { return string_cast<string_type>("rt"); }
1045         int tcategory() const { return 0; }
1046         int tinfo() const { return Unknown; }
1047 protected:
1048         HtmlElementRtBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1049 };
1050
1051 class HtmlElementRubyBase : public HtmlElement
1052 {
1053 public:
1054         int tclass() const { return Html::Ruby; }
1055         string_type tname() const { return string_cast<string_type>("ruby"); }
1056         int tcategory() const { return 0 | Flow | Phrasing; }
1057         int tinfo() const { return Unknown; }
1058 protected:
1059         HtmlElementRubyBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1060 };
1061
1062 class HtmlElementSBase : public HtmlElement
1063 {
1064 public:
1065         int tclass() const { return Html::S; }
1066         string_type tname() const { return string_cast<string_type>("s"); }
1067         int tcategory() const { return 0 | Flow; }
1068         int tinfo() const { return Unknown; }
1069 protected:
1070         HtmlElementSBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1071 };
1072
1073 class HtmlElementSampBase : public HtmlElement
1074 {
1075 public:
1076         int tclass() const { return Html::Samp; }
1077         string_type tname() const { return string_cast<string_type>("samp"); }
1078         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1079         int tinfo() const { return Unknown; }
1080 protected:
1081         HtmlElementSampBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1082 };
1083
1084 class HtmlElementScriptBase : public HtmlElement
1085 {
1086 public:
1087         int tclass() const { return Html::Script; }
1088         string_type tname() const { return string_cast<string_type>("script"); }
1089         int tcategory() const { return 0 | Metadata | Flow | Phrasing | Inline | Splitter | Ignore; }
1090         int tinfo() const { return Unknown; }
1091 protected:
1092         HtmlElementScriptBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1093 };
1094
1095 class HtmlElementSectionBase : public HtmlElement
1096 {
1097 public:
1098         int tclass() const { return Html::Section; }
1099         string_type tname() const { return string_cast<string_type>("section"); }
1100         int tcategory() const { return 0 | Flow | Sectioning | Block | Splitter; }
1101         int tinfo() const { return Unknown; }
1102 protected:
1103         HtmlElementSectionBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1104 };
1105
1106 class HtmlElementSelectBase : public HtmlElement
1107 {
1108 public:
1109         int tclass() const { return Html::Select; }
1110         string_type tname() const { return string_cast<string_type>("select"); }
1111         int tcategory() const { return 0 | Flow | Phrasing | Interactive | FormAssociated | Inline | Splitter | Ignore; }
1112         int tinfo() const { return Unknown; }
1113 protected:
1114         HtmlElementSelectBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1115 };
1116
1117 class HtmlElementSmallBase : public HtmlElement
1118 {
1119 public:
1120         int tclass() const { return Html::Small; }
1121         string_type tname() const { return string_cast<string_type>("small"); }
1122         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1123         int tinfo() const { return Unknown; }
1124 protected:
1125         HtmlElementSmallBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1126 };
1127
1128 class HtmlElementSourceBase : public HtmlElement
1129 {
1130 public:
1131         int tclass() const { return Html::Source; }
1132         string_type tname() const { return string_cast<string_type>("source"); }
1133         int tcategory() const { return 0; }
1134         int tinfo() const { return Unknown; }
1135 protected:
1136         HtmlElementSourceBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1137 };
1138
1139 class HtmlElementSpacerBase : public HtmlElement
1140 {
1141 public:
1142         int tclass() const { return Html::Spacer; }
1143         string_type tname() const { return string_cast<string_type>("spacer"); }
1144         int tcategory() const { return 0; }
1145         int tinfo() const { return Unknown; }
1146 protected:
1147         HtmlElementSpacerBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1148 };
1149
1150 class HtmlElementSpanBase : public HtmlElement
1151 {
1152 public:
1153         int tclass() const { return Html::Span; }
1154         string_type tname() const { return string_cast<string_type>("span"); }
1155         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1156         int tinfo() const { return Unknown; }
1157 protected:
1158         HtmlElementSpanBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1159 };
1160
1161 class HtmlElementStrikeBase : public HtmlElement
1162 {
1163 public:
1164         int tclass() const { return Html::Strike; }
1165         string_type tname() const { return string_cast<string_type>("strike"); }
1166         int tcategory() const { return 0; }
1167         int tinfo() const { return Unknown; }
1168 protected:
1169         HtmlElementStrikeBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1170 };
1171
1172 class HtmlElementStrongBase : public HtmlElement
1173 {
1174 public:
1175         int tclass() const { return Html::Strong; }
1176         string_type tname() const { return string_cast<string_type>("strong"); }
1177         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1178         int tinfo() const { return Unknown; }
1179 protected:
1180         HtmlElementStrongBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1181 };
1182
1183 class HtmlElementStyleBase : public HtmlElement
1184 {
1185 public:
1186         int tclass() const { return Html::Style; }
1187         string_type tname() const { return string_cast<string_type>("style"); }
1188         int tcategory() const { return 0 | Metadata | Ignore; }
1189         int tinfo() const { return Unknown; }
1190 protected:
1191         HtmlElementStyleBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1192 };
1193
1194 class HtmlElementSubBase : public HtmlElement
1195 {
1196 public:
1197         int tclass() const { return Html::Sub; }
1198         string_type tname() const { return string_cast<string_type>("sub"); }
1199         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1200         int tinfo() const { return Unknown; }
1201 protected:
1202         HtmlElementSubBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1203 };
1204
1205 class HtmlElementSummaryBase : public HtmlElement
1206 {
1207 public:
1208         int tclass() const { return Html::Summary; }
1209         string_type tname() const { return string_cast<string_type>("summary"); }
1210         int tcategory() const { return 0; }
1211         int tinfo() const { return Unknown; }
1212 protected:
1213         HtmlElementSummaryBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1214 };
1215
1216 class HtmlElementSupBase : public HtmlElement
1217 {
1218 public:
1219         int tclass() const { return Html::Sup; }
1220         string_type tname() const { return string_cast<string_type>("sup"); }
1221         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1222         int tinfo() const { return Unknown; }
1223 protected:
1224         HtmlElementSupBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1225 };
1226
1227 class HtmlElementTableBase : public HtmlElement
1228 {
1229 public:
1230         int tclass() const { return Html::Table; }
1231         string_type tname() const { return string_cast<string_type>("table"); }
1232         int tcategory() const { return 0 | Flow | Block | Splitter; }
1233         int tinfo() const { return Unknown; }
1234 protected:
1235         HtmlElementTableBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1236 };
1237
1238 class HtmlElementTbodyBase : public HtmlElement
1239 {
1240 public:
1241         int tclass() const { return Html::Tbody; }
1242         string_type tname() const { return string_cast<string_type>("tbody"); }
1243         int tcategory() const { return 0 | Splitter; }
1244         int tinfo() const { return Unknown; }
1245 protected:
1246         HtmlElementTbodyBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1247 };
1248
1249 class HtmlElementTdBase : public HtmlElement
1250 {
1251 public:
1252         int tclass() const { return Html::Td; }
1253         string_type tname() const { return string_cast<string_type>("td"); }
1254         int tcategory() const { return 0 | Splitter; }
1255         int tinfo() const { return Unknown; }
1256 protected:
1257         HtmlElementTdBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1258 };
1259
1260 class HtmlElementTextareaBase : public HtmlElement
1261 {
1262 public:
1263         int tclass() const { return Html::Textarea; }
1264         string_type tname() const { return string_cast<string_type>("textarea"); }
1265         int tcategory() const { return 0 | Flow | Phrasing | Interactive | FormAssociated | Inline | Splitter | Ignore; }
1266         int tinfo() const { return Unknown; }
1267 protected:
1268         HtmlElementTextareaBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1269 };
1270
1271 class HtmlElementTfootBase : public HtmlElement
1272 {
1273 public:
1274         int tclass() const { return Html::Tfoot; }
1275         string_type tname() const { return string_cast<string_type>("tfoot"); }
1276         int tcategory() const { return 0 | Block | Splitter; }
1277         int tinfo() const { return Unknown; }
1278 protected:
1279         HtmlElementTfootBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1280 };
1281
1282 class HtmlElementThBase : public HtmlElement
1283 {
1284 public:
1285         int tclass() const { return Html::Th; }
1286         string_type tname() const { return string_cast<string_type>("th"); }
1287         int tcategory() const { return 0 | Splitter; }
1288         int tinfo() const { return Unknown; }
1289 protected:
1290         HtmlElementThBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1291 };
1292
1293 class HtmlElementTheadBase : public HtmlElement
1294 {
1295 public:
1296         int tclass() const { return Html::Thead; }
1297         string_type tname() const { return string_cast<string_type>("thead"); }
1298         int tcategory() const { return 0 | Splitter; }
1299         int tinfo() const { return Unknown; }
1300 protected:
1301         HtmlElementTheadBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1302 };
1303
1304 class HtmlElementTimeBase : public HtmlElement
1305 {
1306 public:
1307         int tclass() const { return Html::Time; }
1308         string_type tname() const { return string_cast<string_type>("time"); }
1309         int tcategory() const { return 0 | Flow | Phrasing; }
1310         int tinfo() const { return Unknown; }
1311 protected:
1312         HtmlElementTimeBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1313 };
1314
1315 class HtmlElementTitleBase : public HtmlElement
1316 {
1317 public:
1318         int tclass() const { return Html::Title; }
1319         string_type tname() const { return string_cast<string_type>("title"); }
1320         int tcategory() const { return 0 | Metadata; }
1321         int tinfo() const { return Unknown; }
1322 protected:
1323         HtmlElementTitleBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1324 };
1325
1326 class HtmlElementTrBase : public HtmlElement
1327 {
1328 public:
1329         int tclass() const { return Html::Tr; }
1330         string_type tname() const { return string_cast<string_type>("tr"); }
1331         int tcategory() const { return 0 | Splitter; }
1332         int tinfo() const { return Unknown; }
1333 protected:
1334         HtmlElementTrBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1335 };
1336
1337 class HtmlElementTrackBase : public HtmlElement
1338 {
1339 public:
1340         int tclass() const { return Html::Track; }
1341         string_type tname() const { return string_cast<string_type>("track"); }
1342         int tcategory() const { return 0; }
1343         int tinfo() const { return Unknown; }
1344 protected:
1345         HtmlElementTrackBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1346 };
1347
1348 class HtmlElementTtBase : public HtmlElement
1349 {
1350 public:
1351         int tclass() const { return Html::Tt; }
1352         string_type tname() const { return string_cast<string_type>("tt"); }
1353         int tcategory() const { return 0 | Inline; }
1354         int tinfo() const { return Unknown; }
1355 protected:
1356         HtmlElementTtBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1357 };
1358
1359 class HtmlElementUBase : public HtmlElement
1360 {
1361 public:
1362         int tclass() const { return Html::U; }
1363         string_type tname() const { return string_cast<string_type>("u"); }
1364         int tcategory() const { return 0; }
1365         int tinfo() const { return Unknown; }
1366 protected:
1367         HtmlElementUBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1368 };
1369
1370 class HtmlElementUlBase : public HtmlElement
1371 {
1372 public:
1373         int tclass() const { return Html::Ul; }
1374         string_type tname() const { return string_cast<string_type>("ul"); }
1375         int tcategory() const { return 0 | Flow | Block | Splitter; }
1376         int tinfo() const { return Unknown; }
1377 protected:
1378         HtmlElementUlBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1379 };
1380
1381 class HtmlElementVarBase : public HtmlElement
1382 {
1383 public:
1384         int tclass() const { return Html::Var; }
1385         string_type tname() const { return string_cast<string_type>("var"); }
1386         int tcategory() const { return 0 | Flow | Phrasing | Inline; }
1387         int tinfo() const { return Unknown; }
1388 protected:
1389         HtmlElementVarBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1390 };
1391
1392 class HtmlElementVideoBase : public HtmlElement
1393 {
1394 public:
1395         int tclass() const { return Html::Video; }
1396         string_type tname() const { return string_cast<string_type>("video"); }
1397         int tcategory() const { return 0 | Flow | Phrasing | Embeded | Block | Splitter; }
1398         int tinfo() const { return Unknown; }
1399 protected:
1400         HtmlElementVideoBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1401 };
1402
1403 class HtmlElementWbrBase : public HtmlElement
1404 {
1405 public:
1406         int tclass() const { return Html::Wbr; }
1407         string_type tname() const { return string_cast<string_type>("wbr"); }
1408         int tcategory() const { return 0 | Flow | Phrasing; }
1409         int tinfo() const { return Unknown; }
1410 protected:
1411         HtmlElementWbrBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1412 };
1413
1414 class HtmlElementXmpBase : public HtmlElement
1415 {
1416 public:
1417         int tclass() const { return Html::Xmp; }
1418         string_type tname() const { return string_cast<string_type>("xmp"); }
1419         int tcategory() const { return 0; }
1420         int tinfo() const { return Unknown; }
1421 protected:
1422         HtmlElementXmpBase(weak_pointer const &parent_) : HtmlElement(parent_) { }
1423 };
1424
1425 #endif // HTMLTAGBASE_H