1 /* $LynxId: src1_HTMLDTD.h,v 1.45 2011/10/07 00:54:36 Kihara.Hideto Exp $ */ 2 #ifndef src_HTMLDTD_H1 3 #define src_HTMLDTD_H1 1 4 5 #ifndef once_HTMLDTD 6 #define once_HTMLDTD 1 7 8 #define T_A 0x00008,0x0B007,0x0FF17,0x37787,0x77BA7,0x8604F,0x00014 9 #define T_ABBR 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 10 #define T_ACRONYM 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 11 #define T_ADDRESS 0x00200,0x0F14F,0x8FFFF,0x36680,0xB6FAF,0x80317,0x00000 12 #define T_APPLET 0x02000,0x0B0CF,0x8FFFF,0x37F9F,0xB7FBF,0x8300F,0x00000 13 #define T_AREA 0x08000,0x00000,0x00000,0x08000,0x3FFFF,0x00F1F,0x00001 14 #define T_AU 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 15 #define T_AUTHOR 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000 16 #define T_B 0x00001,0x8B04F,0xAFFFF,0xA778F,0xF7FBF,0x00001,0x00014 17 #define T_BANNER 0x00200,0x0FB8F,0x0FFFF,0x30000,0x30000,0x8031F,0x00000 18 #define T_BASE 0x40000,0x00000,0x00000,0x50000,0x50000,0x8000F,0x00001 19 #define T_BASEFONT 0x01000,0x00000,0x00000,0x377AF,0x37FAF,0x8F000,0x00001 20 #define T_BDO 0x00100,0x0B04F,0x8FFFF,0x36680,0xB6FAF,0x0033F,0x00000 21 #define T_BGSOUND 0x01000,0x00000,0x00000,0x777AF,0x77FAF,0x8730F,0x00001 22 #define T_BIG 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00014 23 #define T_BLINK 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00001,0x00014 24 #define T_BLOCKQUOTE 0x00200,0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000 25 #define T_BODY 0x20000,0x2FB8F,0x2FFFF,0x30000,0x30000,0xDFF7F,0x00003 26 #define T_BODYTEXT 0x20000,0x0FB8F,0xAFFFF,0x30200,0xB7FAF,0x8F17F,0x00003 27 #define T_BQ 0x00200,0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000 28 #define T_BR 0x01000,0x00000,0x00000,0x377BF,0x77FBF,0x8101F,0x00001 29 #define T_BUTTON 0x02000,0x0BB07,0x0FF37,0x0378F,0x37FBF,0x8115F,0x00000 30 #define T_CAPTION 0x00100,0x0B04F,0x8FFFF,0x06A00,0xB6FA7,0x8035F,0x00000 31 #define T_CENTER 0x00200,0x8FBCF,0x8FFFF,0xB6680,0xB6FA7,0x8071F,0x00000 32 #define T_CITE 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00010 33 #define T_CODE 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00000 34 #define T_COL 0x04000,0x00000,0x00000,0x00820,0x36FA7,0x88F5F,0x00001 35 #define T_COLGROUP 0x00020,0x04000,0x04000,0x00800,0x36FA7,0x8875F,0x00001 36 #define T_COMMENT 0x00004,0x00000,0x00000,0xA77AF,0x7FFFF,0x00003,0x00000 37 #define T_CREDIT 0x00100,0x0B04F,0x8FFFF,0x06A00,0xB7FBF,0x8030F,0x00000 38 #define T_DD 0x00400,0x0FBCF,0x8FFFF,0x00800,0xB6FFF,0x8071F,0x00001 39 #define T_DEL 0x00002,0x8BBCF,0x8FFFF,0xA7F8F,0xF7FBF,0x00003,0x00000 40 #define T_DFN 0x00002,0x8B0CF,0x8FFFF,0x8778F,0xF7FBF,0x00003,0x00000 41 #define T_DIR 0x00800,0x0B400,0x0F75F,0x37680,0x36FB7,0x84F7F,0x00000 42 #define T_DIV 0x00200,0x8FBCF,0x8FFFF,0xB66A0,0xB7FFF,0x8031F,0x00004 43 #define T_DL 0x00800,0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000 44 #define T_DLC 0x00800,0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000 45 #define T_DT 0x00400,0x0B04F,0x0B1FF,0x00800,0x17FFF,0x8071F,0x00001 46 #define T_EM 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00010 47 #define T_EMBED 0x02000,0x8F107,0x8FFF7,0xB6FBF,0xB7FBF,0x1FF7F,0x00001 48 #define T_FIELDSET 0x00200,0x8FB4F,0x8FF7F,0x86787,0xB7FF7,0x8805F,0x00000 49 #define T_FIG 0x00200,0x0FB00,0x8FFFF,0x36680,0xB6FBF,0x8834F,0x00000 50 #define T_FN 0x00200,0x8FBCF,0x8FFFF,0xB6680,0xB7EBF,0x8114F,0x00000 51 #define T_FONT 0x00001,0x8B04F,0x8FFFF,0xB778F,0xF7FBF,0x00001,0x00014 52 #define T_FORM 0x00080,0x0FF6F,0x0FF7F,0x36E07,0x32F07,0x88DFF,0x00000 53 #define T_FRAME 0x10000,0x00000,0x00000,0x10000,0x10000,0x9FFFF,0x00001 54 #define T_FRAMESET 0x10000,0x90000,0x90000,0x90000,0x93000,0x9FFFF,0x00000 55 #define T_H1 0x00100,0x0B04F,0x0B05F,0x36680,0x37FAF,0x80117,0x00000 56 #define T_H2 0x00100,0x0B04F,0x0B05F,0x36680,0x37FAF,0x80117,0x00000 57 #define T_H3 0x00100,0x0B04F,0x0B05F,0x36680,0x37FAF,0x80117,0x00000 58 #define T_H4 0x00100,0x0B04F,0x0B05F,0x36680,0x37FAF,0x80117,0x00000 59 #define T_H5 0x00100,0x0B04F,0x0B05F,0x36680,0x37FAF,0x80117,0x00000 60 #define T_H6 0x00100,0x0B04F,0x0B05F,0x36680,0x37FAF,0x80117,0x00000 61 #define T_HEAD 0x40000,0x4F000,0x47000,0x10000,0x10000,0x9FF7F,0x00007 62 #define T_HR 0x04000,0x00000,0x00000,0x3FE80,0x3FFBF,0x87F37,0x00001 63 #define T_HTML 0x10000,0x7FB8F,0x7FFFF,0x00000,0x00000,0x1FFFF,0x00003 64 #define T_HY 0x01000,0x00000,0x00000,0x3779F,0x77FBF,0x8101F,0x00001 65 #define T_I 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00014 66 #define T_IFRAME 0x02000,0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0xD315F,0x00000 67 #define T_IMG 0x01000,0x00000,0x00000,0x3779F,0x37FBF,0x80000,0x00001 68 #define T_INPUT 0x00040,0x00000,0x00000,0x03F87,0x37F87,0x8904F,0x00001 69 #define T_INS 0x00002,0x8BBCF,0x8FFFF,0xA7F8F,0xF7FBF,0x00003,0x00000 70 #define T_ISINDEX 0x08000,0x00000,0x00000,0x7778F,0x7FFAF,0x80007,0x00001 71 #define T_KBD 0x00002,0x00000,0x00000,0x2778F,0x77FBF,0x00003,0x00000 72 #define T_KEYGEN 0x00040,0x00000,0x00000,0x07FB7,0x37FB7,0x80070,0x00001 73 #define T_LABEL 0x00002,0x0304F,0x0FFFF,0x0679F,0x36FBF,0x00007,0x00000 74 #define T_LEGEND 0x00002,0x0B04F,0x8FF7F,0x00200,0xB7FA7,0x00003,0x00000 75 #define T_LH 0x00400,0x0BB7F,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001 76 #define T_LI 0x00400,0x0BBFF,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001 77 #define T_LINK 0x08000,0x00000,0x00000,0x50000,0x50000,0x0FF7F,0x00001 78 #define T_LISTING 0x00800,0x00000,0x00000,0x36600,0x36F00,0x80F1F,0x00000 79 #define T_MAP 0x08000,0x08000,0x08000,0x37FCF,0x37FBF,0x0051F,0x00000 80 #define T_MARQUEE 0x04000,0x0000F,0x8F01F,0x37787,0xB7FA7,0x8301C,0x00000 81 #define T_MATH 0x00004,0x0B05F,0x8FFFF,0x2778F,0xF7FBF,0x0001F,0x00000 82 #define T_MENU 0x00800,0x0B400,0x0F75F,0x17680,0x36FB7,0x88F7F,0x00000 83 #define T_META 0x08000,0x00000,0x00000,0x50000,0x50000,0x0FF7F,0x00001 84 #define T_NEXTID 0x01000,0x00000,0x00000,0x50000,0x1FFF7,0x00001,0x00001 85 #define T_NOFRAMES 0x20000,0x2FB8F,0x0FFFF,0x17000,0x17000,0x0CF5F,0x00000 86 #define T_NOTE 0x00200,0x0BBAF,0x8FFFF,0x376B0,0xB7FFF,0x8031F,0x00000 87 #define T_OBJECT 0x02000,0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0x83D5F,0x00020 88 #define T_OL 0x00800,0x0C400,0x8FFFF,0x37680,0xB7FB7,0x88F7F,0x00000 89 #define T_OPTION 0x08000,0x00000,0x00000,0x00040,0x37FFF,0x8031F,0x00001 90 #define T_OVERLAY 0x04000,0x00000,0x00000,0x00200,0x37FBF,0x83F7F,0x00001 91 #define T_P 0x00100,0x0B04F,0x8FFFF,0x36680,0xB6FA7,0x80117,0x00001 92 #define T_PARAM 0x01000,0x00000,0x00000,0x33500,0x37FFF,0x81560,0x00001 93 #define T_PLAINTEXT 0x10000,0xFFFFF,0xFFFFF,0x90000,0x90000,0x3FFFF,0x00001 94 #define T_PRE 0x00200,0x0F04F,0x0F05E,0x36680,0x36FF0,0x8071E,0x00000 95 #define T_Q 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000 96 #define T_S 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 97 #define T_SAMP 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00010 98 #define T_SCRIPT 0x02000,0x00000,0x00000,0x77F9F,0x77FFF,0x87D5F,0x00000 99 #define T_SELECT 0x00040,0x08000,0x08000,0x03FAF,0x33FBF,0x80D5F,0x00008 100 #define T_SHY 0x01000,0x00000,0x00000,0x3779F,0x77FBF,0x8101F,0x00001 101 #define T_SMALL 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00014 102 #define T_SPAN 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x80003,0x00000 103 #define T_SPOT 0x00008,0x00000,0x00000,0x3FFF7,0x3FFF7,0x00008,0x00001 104 #define T_STRIKE 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 105 #define T_STRONG 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00010 106 #define T_STYLE 0x40000,0x00000,0x00000,0x7638F,0x76FAF,0x8001F,0x00000 107 #define T_SUB 0x00004,0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000 108 #define T_SUP 0x00004,0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000 109 #define T_TAB 0x01000,0x00000,0x00000,0x3778F,0x57FAF,0x00001,0x00001 110 #define T_TABLE 0x00800,0x0F1E0,0x8FFFF,0x36680,0xB6FA7,0x8C57F,0x00000 111 #define T_TBODY 0x00020,0x00020,0x8FFFF,0x00880,0xB7FB7,0x8C75F,0x00003 112 #define T_TD 0x00400,0x0FBCF,0x8FFFF,0x00020,0xB7FB7,0x8C75F,0x00001 113 #define T_TEXTAREA 0x00040,0x00000,0x00000,0x07F8F,0x33FBF,0x80D5F,0x00040 114 #define T_TEXTFLOW 0x20000,0x8FBFF,0x9FFFF,0x977B0,0xB7FB7,0x9B00F,0x00003 115 #define T_TFOOT 0x00020,0x00020,0x8FFFF,0x00800,0xB7FB7,0x8CF5F,0x00001 116 #define T_TH 0x00400,0x0FBCF,0x0FFFF,0x00020,0xB7FB7,0x8CF5F,0x00001 117 #define T_THEAD 0x00020,0x00020,0x8FFFF,0x00800,0xB7FB7,0x8CF5F,0x00001 118 #define T_TITLE 0x40000,0x00000,0x00000,0x50000,0x50000,0x0031F,0x0000C 119 #define T_TR 0x00020,0x00400,0x8FFFF,0x00820,0xB7FB7,0x8C75F,0x00001 120 #define T_TT 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00010 121 #define T_U 0x00001,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00014 122 #define T_UL 0x00800,0x0C480,0x8FFFF,0x36680,0xB7FFF,0x8075F,0x00000 123 #define T_VAR 0x00002,0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000 124 #define T_WBR 0x00001,0x00000,0x00000,0x3778F,0x77FBF,0x8101F,0x00001 125 #define T_XMP 0x00800,0x00000,0x00000,0x367E0,0x36FFF,0x0875F,0x00001 126 #define T_OBJECT_PCDATA 0x02000,0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0x83D5F,0x00008 127 #define T__UNREC_ 0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000 128 #ifdef USE_PRETTYSRC 129 # define N HTMLA_NORMAL 130 # define i HTMLA_ANAME 131 # define h HTMLA_HREF 132 # define c HTMLA_CLASS 133 # define x HTMLA_AUXCLASS 134 # define T(t) , t 135 #else 136 # define T(t) /*nothing */ 137 #endif 138 /* *INDENT-OFF* */ 139 140 #define ATTR_TYPE(name) #name, name##_attr_list 141 142 /* generic attributes, used in different tags */ 143 static const attr core_attr_list[] = { 144 { "CLASS" T(c) }, 145 { "ID" T(i) }, 146 { "STYLE" T(N) }, 147 { "TITLE" T(N) }, 148 { 0 T(N) } /* Terminate list */ 149 }; 150 151 static const AttrType core_attr_type[] = { 152 { ATTR_TYPE(core) }, 153 { 0, 0 }, 154 }; 155 156 static const attr i18n_attr_list[] = { 157 { "DIR" T(N) }, 158 { "LANG" T(N) }, 159 { 0 T(N) } /* Terminate list */ 160 }; 161 162 static const AttrType i18n_attr_type[] = { 163 { ATTR_TYPE(i18n) }, 164 { 0, 0 }, 165 }; 166 167 static const attr events_attr_list[] = { 168 { "ONCLICK" T(N) }, 169 { "ONDBLCLICK" T(N) }, 170 { "ONKEYDOWN" T(N) }, 171 { "ONKEYPRESS" T(N) }, 172 { "ONKEYUP" T(N) }, 173 { "ONMOUSEDOWN" T(N) }, 174 { "ONMOUSEMOVE" T(N) }, 175 { "ONMOUSEOUT" T(N) }, 176 { "ONMOUSEOVER" T(N) }, 177 { "ONMOUSEUP" T(N) }, 178 { 0 T(N) } /* Terminate list */ 179 }; 180 181 static const AttrType events_attr_type[] = { 182 { ATTR_TYPE(events) }, 183 { 0, 0 }, 184 }; 185 186 static const attr align_attr_list[] = { 187 { "ALIGN" T(N) }, 188 { 0 T(N) } /* Terminate list */ 189 }; 190 191 static const AttrType align_attr_type[] = { 192 { ATTR_TYPE(align) }, 193 { 0, 0 }, 194 }; 195 196 static const attr cellalign_attr_list[] = { 197 { "ALIGN" T(N) }, 198 { "CHAR" T(N) }, 199 { "CHAROFF" T(N) }, 200 { "VALIGN" T(N) }, 201 { 0 T(N) } /* Terminate list */ 202 }; 203 204 static const AttrType cellalign_attr_type[] = { 205 { ATTR_TYPE(cellalign) }, 206 { 0, 0 }, 207 }; 208 209 static const attr bgcolor_attr_list[] = { 210 { "BGCOLOR" T(N) }, 211 { 0 T(N) } /* Terminate list */ 212 }; 213 214 static const AttrType bgcolor_attr_type[] = { 215 { ATTR_TYPE(bgcolor) }, 216 { 0, 0 }, 217 }; 218 219 220 /* tables defining attributes per-tag in terms of generic attributes (editable) */ 221 static const attr A_attr_list[] = { 222 { "ACCESSKEY" T(N) }, 223 { "CHARSET" T(N) }, 224 { "CLEAR" T(N) }, 225 { "COORDS" T(N) }, 226 { "HREF" T(h) }, 227 { "HREFLANG" T(N) }, 228 { "ISMAP" T(N) }, 229 { "MD" T(N) }, 230 { "NAME" T(i) }, 231 { "NOTAB" T(N) }, 232 { "ONBLUR" T(N) }, 233 { "ONFOCUS" T(N) }, 234 { "REL" T(N) }, 235 { "REV" T(N) }, 236 { "SHAPE" T(N) }, 237 { "TABINDEX" T(N) }, 238 { "TARGET" T(N) }, 239 { "TYPE" T(N) }, 240 { "URN" T(N) }, 241 { 0 T(N) } /* Terminate list */ 242 }; 243 244 static const AttrType A_attr_type[] = { 245 { ATTR_TYPE(core) }, 246 { ATTR_TYPE(events) }, 247 { ATTR_TYPE(i18n) }, 248 { ATTR_TYPE(A) }, 249 { 0, 0 }, 250 }; 251 252 static const attr ADDRESS_attr_list[] = { 253 { "CLEAR" T(N) }, 254 { "NOWRAP" T(N) }, 255 { 0 T(N) } /* Terminate list */ 256 }; 257 258 static const AttrType ADDRESS_attr_type[] = { 259 { ATTR_TYPE(core) }, 260 { ATTR_TYPE(i18n) }, 261 { ATTR_TYPE(ADDRESS) }, 262 { 0, 0 }, 263 }; 264 265 static const attr APPLET_attr_list[] = { 266 { "ALT" T(N) }, 267 { "CLEAR" T(N) }, 268 { "CODE" T(N) }, 269 { "CODEBASE" T(h) }, 270 { "DOWNLOAD" T(N) }, 271 { "HEIGHT" T(N) }, 272 { "HSPACE" T(N) }, 273 { "NAME" T(i) }, 274 { "VSPACE" T(N) }, 275 { "WIDTH" T(N) }, 276 { 0 T(N) } /* Terminate list */ 277 }; 278 279 static const AttrType APPLET_attr_type[] = { 280 { ATTR_TYPE(align) }, 281 { ATTR_TYPE(core) }, 282 { ATTR_TYPE(i18n) }, 283 { ATTR_TYPE(APPLET) }, 284 { 0, 0 }, 285 }; 286 287 static const attr AREA_attr_list[] = { 288 { "ACCESSKEY" T(N) }, 289 { "ALT" T(N) }, 290 { "CLEAR" T(N) }, 291 { "COORDS" T(N) }, 292 { "HREF" T(h) }, 293 { "NOHREF" T(N) }, 294 { "NOTAB" T(N) }, 295 { "ONBLUR" T(N) }, 296 { "ONFOCUS" T(N) }, 297 { "SHAPE" T(N) }, 298 { "TABINDEX" T(N) }, 299 { "TARGET" T(N) }, 300 { 0 T(N) } /* Terminate list */ 301 }; 302 303 static const AttrType AREA_attr_type[] = { 304 { ATTR_TYPE(core) }, 305 { ATTR_TYPE(events) }, 306 { ATTR_TYPE(i18n) }, 307 { ATTR_TYPE(AREA) }, 308 { 0, 0 }, 309 }; 310 311 static const attr BASE_attr_list[] = { 312 { "HREF" T(h) }, 313 { "TARGET" T(N) }, 314 { 0 T(N) } /* Terminate list */ 315 }; 316 317 static const AttrType BASE_attr_type[] = { 318 { ATTR_TYPE(core) }, 319 { ATTR_TYPE(BASE) }, 320 { 0, 0 }, 321 }; 322 323 static const attr BGSOUND_attr_list[] = { 324 { "CLEAR" T(N) }, 325 { "LOOP" T(N) }, 326 { "SRC" T(h) }, 327 { 0 T(N) } /* Terminate list */ 328 }; 329 330 static const AttrType BGSOUND_attr_type[] = { 331 { ATTR_TYPE(core) }, 332 { ATTR_TYPE(i18n) }, 333 { ATTR_TYPE(BGSOUND) }, 334 { 0, 0 }, 335 }; 336 337 static const attr BODY_attr_list[] = { 338 { "ALINK" T(N) }, 339 { "BACKGROUND" T(h) }, 340 { "CLEAR" T(N) }, 341 { "LINK" T(N) }, 342 { "ONLOAD" T(N) }, 343 { "ONUNLOAD" T(N) }, 344 { "TEXT" T(N) }, 345 { "VLINK" T(N) }, 346 { 0 T(N) } /* Terminate list */ 347 }; 348 349 static const AttrType BODY_attr_type[] = { 350 { ATTR_TYPE(bgcolor) }, 351 { ATTR_TYPE(core) }, 352 { ATTR_TYPE(i18n) }, 353 { ATTR_TYPE(BODY) }, 354 { 0, 0 }, 355 }; 356 357 static const attr BODYTEXT_attr_list[] = { 358 { "CLEAR" T(N) }, 359 { "DATA" T(N) }, 360 { "NAME" T(N) }, 361 { "OBJECT" T(N) }, 362 { "REF" T(N) }, 363 { "TYPE" T(N) }, 364 { "VALUE" T(N) }, 365 { "VALUETYPE" T(N) }, 366 { 0 T(N) } /* Terminate list */ 367 }; 368 369 static const AttrType BODYTEXT_attr_type[] = { 370 { ATTR_TYPE(core) }, 371 { ATTR_TYPE(i18n) }, 372 { ATTR_TYPE(BODYTEXT) }, 373 { 0, 0 }, 374 }; 375 376 static const attr BQ_attr_list[] = { 377 { "CITE" T(h) }, 378 { "CLEAR" T(N) }, 379 { "NOWRAP" T(N) }, 380 { 0 T(N) } /* Terminate list */ 381 }; 382 383 static const AttrType BQ_attr_type[] = { 384 { ATTR_TYPE(core) }, 385 { ATTR_TYPE(i18n) }, 386 { ATTR_TYPE(BQ) }, 387 { 0, 0 }, 388 }; 389 390 static const attr BUTTON_attr_list[] = { 391 { "ACCESSKEY" T(N) }, 392 { "CLEAR" T(N) }, 393 { "DISABLED" T(N) }, 394 { "NAME" T(N) }, 395 { "ONBLUR" T(N) }, 396 { "ONFOCUS" T(N) }, 397 { "READONLY" T(N) }, 398 { "TABINDEX" T(N) }, 399 { "TYPE" T(N) }, 400 { "VALUE" T(N) }, 401 { 0 T(N) } /* Terminate list */ 402 }; 403 404 static const AttrType BUTTON_attr_type[] = { 405 { ATTR_TYPE(core) }, 406 { ATTR_TYPE(events) }, 407 { ATTR_TYPE(i18n) }, 408 { ATTR_TYPE(BUTTON) }, 409 { 0, 0 }, 410 }; 411 412 static const attr CAPTION_attr_list[] = { 413 { "ACCESSKEY" T(N) }, 414 { "CLEAR" T(N) }, 415 { 0 T(N) } /* Terminate list */ 416 }; 417 418 static const AttrType CAPTION_attr_type[] = { 419 { ATTR_TYPE(align) }, 420 { ATTR_TYPE(core) }, 421 { ATTR_TYPE(events) }, 422 { ATTR_TYPE(i18n) }, 423 { ATTR_TYPE(CAPTION) }, 424 { 0, 0 }, 425 }; 426 427 static const attr COL_attr_list[] = { 428 { "CLEAR" T(N) }, 429 { "SPAN" T(N) }, 430 { "WIDTH" T(N) }, 431 { 0 T(N) } /* Terminate list */ 432 }; 433 434 static const AttrType COL_attr_type[] = { 435 { ATTR_TYPE(cellalign) }, 436 { ATTR_TYPE(core) }, 437 { ATTR_TYPE(events) }, 438 { ATTR_TYPE(i18n) }, 439 { ATTR_TYPE(COL) }, 440 { 0, 0 }, 441 }; 442 443 static const attr DEL_attr_list[] = { 444 { "CITE" T(N) }, 445 { "DATETIME" T(N) }, 446 { 0 T(N) } /* Terminate list */ 447 }; 448 449 static const AttrType DEL_attr_type[] = { 450 { ATTR_TYPE(core) }, 451 { ATTR_TYPE(events) }, 452 { ATTR_TYPE(i18n) }, 453 { ATTR_TYPE(DEL) }, 454 { 0, 0 }, 455 }; 456 457 static const attr DIV_attr_list[] = { 458 { "CLEAR" T(N) }, 459 { 0 T(N) } /* Terminate list */ 460 }; 461 462 static const AttrType DIV_attr_type[] = { 463 { ATTR_TYPE(align) }, 464 { ATTR_TYPE(core) }, 465 { ATTR_TYPE(i18n) }, 466 { ATTR_TYPE(DIV) }, 467 { 0, 0 }, 468 }; 469 470 static const attr DL_attr_list[] = { 471 { "CLEAR" T(N) }, 472 { "COMPACT" T(N) }, 473 { 0 T(N) } /* Terminate list */ 474 }; 475 476 static const AttrType DL_attr_type[] = { 477 { ATTR_TYPE(core) }, 478 { ATTR_TYPE(i18n) }, 479 { ATTR_TYPE(DL) }, 480 { 0, 0 }, 481 }; 482 483 static const attr EMBED_attr_list[] = { 484 { "ALT" T(N) }, 485 { "BORDER" T(N) }, 486 { "CLEAR" T(N) }, 487 { "HEIGHT" T(N) }, 488 { "IMAGEMAP" T(N) }, 489 { "ISMAP" T(N) }, 490 { "MD" T(N) }, 491 { "NAME" T(i) }, 492 { "NOFLOW" T(N) }, 493 { "PARAMS" T(N) }, 494 { "SRC" T(h) }, 495 { "UNITS" T(N) }, 496 { "USEMAP" T(N) }, 497 { "WIDTH" T(N) }, 498 { 0 T(N) } /* Terminate list */ 499 }; 500 501 static const AttrType EMBED_attr_type[] = { 502 { ATTR_TYPE(align) }, 503 { ATTR_TYPE(core) }, 504 { ATTR_TYPE(i18n) }, 505 { ATTR_TYPE(EMBED) }, 506 { 0, 0 }, 507 }; 508 509 static const attr FIG_attr_list[] = { 510 { "BORDER" T(N) }, 511 { "CLEAR" T(N) }, 512 { "HEIGHT" T(N) }, 513 { "IMAGEMAP" T(N) }, 514 { "ISOBJECT" T(N) }, 515 { "MD" T(N) }, 516 { "NOFLOW" T(N) }, 517 { "SRC" T(h) }, 518 { "UNITS" T(N) }, 519 { "WIDTH" T(N) }, 520 { 0 T(N) } /* Terminate list */ 521 }; 522 523 static const AttrType FIG_attr_type[] = { 524 { ATTR_TYPE(align) }, 525 { ATTR_TYPE(core) }, 526 { ATTR_TYPE(i18n) }, 527 { ATTR_TYPE(FIG) }, 528 { 0, 0 }, 529 }; 530 531 static const attr FONT_attr_list[] = { 532 { "CLEAR" T(N) }, 533 { "COLOR" T(N) }, 534 { "END" T(N) }, 535 { "FACE" T(N) }, 536 { "SIZE" T(N) }, 537 { 0 T(N) } /* Terminate list */ 538 }; 539 540 static const AttrType FONT_attr_type[] = { 541 { ATTR_TYPE(core) }, 542 { ATTR_TYPE(i18n) }, 543 { ATTR_TYPE(FONT) }, 544 { 0, 0 }, 545 }; 546 547 static const attr FORM_attr_list[] = { 548 { "ACCEPT" T(N) }, 549 { "ACCEPT-CHARSET" T(N) }, 550 { "ACTION" T(h) }, 551 { "CLEAR" T(N) }, 552 { "ENCTYPE" T(N) }, 553 { "METHOD" T(N) }, 554 { "ONRESET" T(N) }, 555 { "ONSUBMIT" T(N) }, 556 { "SCRIPT" T(N) }, 557 { "SUBJECT" T(N) }, 558 { "TARGET" T(N) }, 559 { 0 T(N) } /* Terminate list */ 560 }; 561 562 static const AttrType FORM_attr_type[] = { 563 { ATTR_TYPE(core) }, 564 { ATTR_TYPE(i18n) }, 565 { ATTR_TYPE(FORM) }, 566 { 0, 0 }, 567 }; 568 569 static const attr FRAME_attr_list[] = { 570 { "FRAMEBORDER" T(N) }, 571 { "LONGDESC" T(h) }, 572 { "MARGINHEIGHT" T(N) }, 573 { "MARGINWIDTH" T(N) }, 574 { "NAME" T(N) }, 575 { "NORESIZE" T(N) }, 576 { "SCROLLING" T(N) }, 577 { "SRC" T(h) }, 578 { 0 T(N) } /* Terminate list */ 579 }; 580 581 static const AttrType FRAME_attr_type[] = { 582 { ATTR_TYPE(core) }, 583 { ATTR_TYPE(FRAME) }, 584 { 0, 0 }, 585 }; 586 587 static const attr FRAMESET_attr_list[] = { 588 { "COLS" T(N) }, 589 { "ONLOAD" T(N) }, 590 { "ONUNLOAD" T(N) }, 591 { "ROWS" T(N) }, 592 { 0 T(N) } /* Terminate list */ 593 }; 594 595 static const AttrType FRAMESET_attr_type[] = { 596 { ATTR_TYPE(FRAMESET) }, 597 { 0, 0 }, 598 }; 599 600 static const attr GEN_attr_list[] = { 601 { "CLEAR" T(N) }, 602 { 0 T(N) } /* Terminate list */ 603 }; 604 605 static const AttrType GEN_attr_type[] = { 606 { ATTR_TYPE(core) }, 607 { ATTR_TYPE(events) }, 608 { ATTR_TYPE(i18n) }, 609 { ATTR_TYPE(GEN) }, 610 { 0, 0 }, 611 }; 612 613 static const attr H_attr_list[] = { 614 { "CLEAR" T(N) }, 615 { "DINGBAT" T(N) }, 616 { "MD" T(N) }, 617 { "NOWRAP" T(N) }, 618 { "SEQNUM" T(N) }, 619 { "SKIP" T(N) }, 620 { "SRC" T(h) }, 621 { 0 T(N) } /* Terminate list */ 622 }; 623 624 static const AttrType H_attr_type[] = { 625 { ATTR_TYPE(align) }, 626 { ATTR_TYPE(core) }, 627 { ATTR_TYPE(events) }, 628 { ATTR_TYPE(i18n) }, 629 { ATTR_TYPE(H) }, 630 { 0, 0 }, 631 }; 632 633 static const attr HR_attr_list[] = { 634 { "CLEAR" T(N) }, 635 { "MD" T(N) }, 636 { "NOSHADE" T(N) }, 637 { "SIZE" T(N) }, 638 { "SRC" T(h) }, 639 { "WIDTH" T(N) }, 640 { 0 T(N) } /* Terminate list */ 641 }; 642 643 static const AttrType HR_attr_type[] = { 644 { ATTR_TYPE(align) }, 645 { ATTR_TYPE(core) }, 646 { ATTR_TYPE(i18n) }, 647 { ATTR_TYPE(HR) }, 648 { 0, 0 }, 649 }; 650 651 static const attr IFRAME_attr_list[] = { 652 { "FRAMEBORDER" T(N) }, 653 { "HEIGHT" T(N) }, 654 { "LONGDESC" T(h) }, 655 { "MARGINHEIGHT" T(N) }, 656 { "MARGINWIDTH" T(N) }, 657 { "NAME" T(N) }, 658 { "SCROLLING" T(N) }, 659 { "SRC" T(h) }, 660 { "WIDTH" T(N) }, 661 { 0 T(N) } /* Terminate list */ 662 }; 663 664 static const AttrType IFRAME_attr_type[] = { 665 { ATTR_TYPE(align) }, 666 { ATTR_TYPE(core) }, 667 { ATTR_TYPE(IFRAME) }, 668 { 0, 0 }, 669 }; 670 671 static const attr IMG_attr_list[] = { 672 { "ALT" T(N) }, 673 { "BORDER" T(N) }, 674 { "CLEAR" T(N) }, 675 { "HEIGHT" T(N) }, 676 { "HSPACE" T(N) }, 677 { "ISMAP" T(N) }, 678 { "ISOBJECT" T(N) }, 679 { "LONGDESC" T(h) }, 680 { "MD" T(N) }, 681 { "NAME" T(N) }, 682 { "SRC" T(h) }, 683 { "UNITS" T(N) }, 684 { "USEMAP" T(h) }, 685 { "VSPACE" T(N) }, 686 { "WIDTH" T(N) }, 687 { 0 T(N) } /* Terminate list */ 688 }; 689 690 static const AttrType IMG_attr_type[] = { 691 { ATTR_TYPE(align) }, 692 { ATTR_TYPE(core) }, 693 { ATTR_TYPE(events) }, 694 { ATTR_TYPE(i18n) }, 695 { ATTR_TYPE(IMG) }, 696 { 0, 0 }, 697 }; 698 699 static const attr INPUT_attr_list[] = { 700 { "ACCEPT" T(N) }, 701 { "ACCEPT-CHARSET" T(N) }, 702 { "ACCESSKEY" T(N) }, 703 { "ALT" T(N) }, 704 { "CHECKED" T(N) }, 705 { "CLEAR" T(N) }, 706 { "DISABLED" T(N) }, 707 { "ERROR" T(N) }, 708 { "HEIGHT" T(N) }, 709 { "ISMAP" T(N) }, 710 { "MAX" T(N) }, 711 { "MAXLENGTH" T(N) }, 712 { "MD" T(N) }, 713 { "MIN" T(N) }, 714 { "NAME" T(N) }, 715 { "NOTAB" T(N) }, 716 { "ONBLUR" T(N) }, 717 { "ONCHANGE" T(N) }, 718 { "ONFOCUS" T(N) }, 719 { "ONSELECT" T(N) }, 720 { "READONLY" T(N) }, 721 { "SIZE" T(N) }, 722 { "SRC" T(h) }, 723 { "TABINDEX" T(N) }, 724 { "TYPE" T(N) }, 725 { "USEMAP" T(N) }, 726 { "VALUE" T(N) }, 727 { "WIDTH" T(N) }, 728 { 0 T(N) } /* Terminate list */ 729 }; 730 731 static const AttrType INPUT_attr_type[] = { 732 { ATTR_TYPE(align) }, 733 { ATTR_TYPE(core) }, 734 { ATTR_TYPE(events) }, 735 { ATTR_TYPE(i18n) }, 736 { ATTR_TYPE(INPUT) }, 737 { 0, 0 }, 738 }; 739 740 static const attr ISINDEX_attr_list[] = { 741 { "ACTION" T(h) }, 742 { "HREF" T(h) }, 743 { "PROMPT" T(N) }, 744 { 0 T(N) } /* Terminate list */ 745 }; 746 747 static const AttrType ISINDEX_attr_type[] = { 748 { ATTR_TYPE(core) }, 749 { ATTR_TYPE(i18n) }, 750 { ATTR_TYPE(ISINDEX) }, 751 { 0, 0 }, 752 }; 753 754 static const attr KEYGEN_attr_list[] = { 755 { "CHALLENGE" T(N) }, 756 { "NAME" T(N) }, 757 { 0 T(N) } /* Terminate list */ 758 }; 759 760 static const AttrType KEYGEN_attr_type[] = { 761 { ATTR_TYPE(core) }, 762 { ATTR_TYPE(i18n) }, 763 { ATTR_TYPE(KEYGEN) }, 764 { 0, 0 }, 765 }; 766 767 static const attr LABEL_attr_list[] = { 768 { "ACCESSKEY" T(N) }, 769 { "CLEAR" T(N) }, 770 { "FOR" T(N) }, 771 { "ONBLUR" T(N) }, 772 { "ONFOCUS" T(N) }, 773 { 0 T(N) } /* Terminate list */ 774 }; 775 776 static const AttrType LABEL_attr_type[] = { 777 { ATTR_TYPE(core) }, 778 { ATTR_TYPE(events) }, 779 { ATTR_TYPE(i18n) }, 780 { ATTR_TYPE(LABEL) }, 781 { 0, 0 }, 782 }; 783 784 static const attr LI_attr_list[] = { 785 { "CLEAR" T(N) }, 786 { "DINGBAT" T(N) }, 787 { "MD" T(N) }, 788 { "SKIP" T(N) }, 789 { "SRC" T(h) }, 790 { "TYPE" T(N) }, 791 { "VALUE" T(N) }, 792 { 0 T(N) } /* Terminate list */ 793 }; 794 795 static const AttrType LI_attr_type[] = { 796 { ATTR_TYPE(core) }, 797 { ATTR_TYPE(events) }, 798 { ATTR_TYPE(i18n) }, 799 { ATTR_TYPE(LI) }, 800 { 0, 0 }, 801 }; 802 803 static const attr LINK_attr_list[] = { 804 { "CHARSET" T(N) }, 805 { "HREF" T(h) }, 806 { "HREFLANG" T(N) }, 807 { "MEDIA" T(N) }, 808 { "REL" T(N) }, 809 { "REV" T(N) }, 810 { "TARGET" T(N) }, 811 { "TYPE" T(N) }, 812 { 0 T(N) } /* Terminate list */ 813 }; 814 815 static const AttrType LINK_attr_type[] = { 816 { ATTR_TYPE(core) }, 817 { ATTR_TYPE(events) }, 818 { ATTR_TYPE(i18n) }, 819 { ATTR_TYPE(LINK) }, 820 { 0, 0 }, 821 }; 822 823 static const attr MAP_attr_list[] = { 824 { "CLEAR" T(N) }, 825 { "NAME" T(i) }, 826 { 0 T(N) } /* Terminate list */ 827 }; 828 829 static const AttrType MAP_attr_type[] = { 830 { ATTR_TYPE(core) }, 831 { ATTR_TYPE(i18n) }, 832 { ATTR_TYPE(MAP) }, 833 { 0, 0 }, 834 }; 835 836 static const attr MATH_attr_list[] = { 837 { "BOX" T(N) }, 838 { "CLEAR" T(N) }, 839 { 0 T(N) } /* Terminate list */ 840 }; 841 842 static const AttrType MATH_attr_type[] = { 843 { ATTR_TYPE(core) }, 844 { ATTR_TYPE(i18n) }, 845 { ATTR_TYPE(MATH) }, 846 { 0, 0 }, 847 }; 848 849 static const attr META_attr_list[] = { 850 { "CHARSET" T(N) }, 851 { "CONTENT" T(N) }, 852 { "HTTP-EQUIV" T(N) }, 853 { "NAME" T(N) }, 854 { "SCHEME" T(N) }, 855 { 0 T(N) } /* Terminate list */ 856 }; 857 858 static const AttrType META_attr_type[] = { 859 { ATTR_TYPE(META) }, 860 { 0, 0 }, 861 }; 862 863 static const attr NEXTID_attr_list[] = { 864 { "N" T(N) }, 865 { 0 T(N) } /* Terminate list */ 866 }; 867 868 static const AttrType NEXTID_attr_type[] = { 869 { ATTR_TYPE(NEXTID) }, 870 { 0, 0 }, 871 }; 872 873 static const attr NOTE_attr_list[] = { 874 { "CLEAR" T(N) }, 875 { "MD" T(N) }, 876 { "ROLE" T(x) }, 877 { "SRC" T(h) }, 878 { 0 T(N) } /* Terminate list */ 879 }; 880 881 static const AttrType NOTE_attr_type[] = { 882 { ATTR_TYPE(core) }, 883 { ATTR_TYPE(i18n) }, 884 { ATTR_TYPE(NOTE) }, 885 { 0, 0 }, 886 }; 887 888 static const attr OBJECT_attr_list[] = { 889 { "ARCHIVE" T(N) }, 890 { "BORDER" T(N) }, 891 { "CLASSID" T(h) }, 892 { "CODEBASE" T(h) }, 893 { "CODETYPE" T(N) }, 894 { "DATA" T(h) }, 895 { "DECLARE" T(N) }, 896 { "HEIGHT" T(N) }, 897 { "HSPACE" T(N) }, 898 { "ISMAP" T(N) }, 899 { "NAME" T(N) }, 900 { "NOTAB" T(N) }, 901 { "SHAPES" T(N) }, 902 { "STANDBY" T(N) }, 903 { "TABINDEX" T(N) }, 904 { "TYPE" T(N) }, 905 { "USEMAP" T(h) }, 906 { "VSPACE" T(N) }, 907 { "WIDTH" T(N) }, 908 { 0 T(N) } /* Terminate list */ 909 }; 910 911 static const AttrType OBJECT_attr_type[] = { 912 { ATTR_TYPE(align) }, 913 { ATTR_TYPE(core) }, 914 { ATTR_TYPE(events) }, 915 { ATTR_TYPE(i18n) }, 916 { ATTR_TYPE(OBJECT) }, 917 { 0, 0 }, 918 }; 919 920 static const attr OL_attr_list[] = { 921 { "CLEAR" T(N) }, 922 { "COMPACT" T(N) }, 923 { "CONTINUE" T(N) }, 924 { "SEQNUM" T(N) }, 925 { "START" T(N) }, 926 { "TYPE" T(N) }, 927 { 0 T(N) } /* Terminate list */ 928 }; 929 930 static const AttrType OL_attr_type[] = { 931 { ATTR_TYPE(core) }, 932 { ATTR_TYPE(i18n) }, 933 { ATTR_TYPE(OL) }, 934 { 0, 0 }, 935 }; 936 937 static const attr OPTION_attr_list[] = { 938 { "CLEAR" T(N) }, 939 { "DISABLED" T(N) }, 940 { "ERROR" T(N) }, 941 { "LABEL" T(N) }, 942 { "SELECTED" T(N) }, 943 { "SHAPE" T(N) }, 944 { "VALUE" T(N) }, 945 { 0 T(N) } /* Terminate list */ 946 }; 947 948 static const AttrType OPTION_attr_type[] = { 949 { ATTR_TYPE(core) }, 950 { ATTR_TYPE(events) }, 951 { ATTR_TYPE(i18n) }, 952 { ATTR_TYPE(OPTION) }, 953 { 0, 0 }, 954 }; 955 956 static const attr OVERLAY_attr_list[] = { 957 { "HEIGHT" T(N) }, 958 { "IMAGEMAP" T(N) }, 959 { "MD" T(N) }, 960 { "SRC" T(h) }, 961 { "UNITS" T(N) }, 962 { "WIDTH" T(N) }, 963 { "X" T(N) }, 964 { "Y" T(N) }, 965 { 0 T(N) } /* Terminate list */ 966 }; 967 968 static const AttrType OVERLAY_attr_type[] = { 969 { ATTR_TYPE(core) }, 970 { ATTR_TYPE(OVERLAY) }, 971 { 0, 0 }, 972 }; 973 974 static const attr P_attr_list[] = { 975 { "CLEAR" T(N) }, 976 { "NOWRAP" T(N) }, 977 { 0 T(N) } /* Terminate list */ 978 }; 979 980 static const AttrType P_attr_type[] = { 981 { ATTR_TYPE(align) }, 982 { ATTR_TYPE(core) }, 983 { ATTR_TYPE(i18n) }, 984 { ATTR_TYPE(P) }, 985 { 0, 0 }, 986 }; 987 988 static const attr PARAM_attr_list[] = { 989 { "ACCEPT" T(N) }, 990 { "ACCEPT-CHARSET" T(N) }, 991 { "ACCEPT-ENCODING" T(N) }, 992 { "CLEAR" T(N) }, 993 { "DATA" T(N) }, 994 { "NAME" T(N) }, 995 { "OBJECT" T(N) }, 996 { "REF" T(N) }, 997 { "TYPE" T(N) }, 998 { "VALUE" T(N) }, 999 { "VALUEREF" T(N) }, 1000 { "VALUETYPE" T(N) }, 1001 { 0 T(N) } /* Terminate list */ 1002 }; 1003 1004 static const AttrType PARAM_attr_type[] = { 1005 { ATTR_TYPE(core) }, 1006 { ATTR_TYPE(i18n) }, 1007 { ATTR_TYPE(PARAM) }, 1008 { 0, 0 }, 1009 }; 1010 1011 static const attr Q_attr_list[] = { 1012 { "CITE" T(h) }, 1013 { "CLEAR" T(N) }, 1014 { 0 T(N) } /* Terminate list */ 1015 }; 1016 1017 static const AttrType Q_attr_type[] = { 1018 { ATTR_TYPE(core) }, 1019 { ATTR_TYPE(i18n) }, 1020 { ATTR_TYPE(Q) }, 1021 { 0, 0 }, 1022 }; 1023 1024 static const attr SCRIPT_attr_list[] = { 1025 { "CHARSET" T(N) }, 1026 { "CLEAR" T(N) }, 1027 { "DEFER" T(N) }, 1028 { "EVENT" T(N) }, 1029 { "FOR" T(N) }, 1030 { "LANGUAGE" T(N) }, 1031 { "NAME" T(N) }, 1032 { "SCRIPTENGINE" T(N) }, 1033 { "SRC" T(h) }, 1034 { "TYPE" T(N) }, 1035 { 0 T(N) } /* Terminate list */ 1036 }; 1037 1038 static const AttrType SCRIPT_attr_type[] = { 1039 { ATTR_TYPE(core) }, 1040 { ATTR_TYPE(i18n) }, 1041 { ATTR_TYPE(SCRIPT) }, 1042 { 0, 0 }, 1043 }; 1044 1045 static const attr SELECT_attr_list[] = { 1046 { "CLEAR" T(N) }, 1047 { "DISABLED" T(N) }, 1048 { "ERROR" T(N) }, 1049 { "HEIGHT" T(N) }, 1050 { "MD" T(N) }, 1051 { "MULTIPLE" T(N) }, 1052 { "NAME" T(N) }, 1053 { "NOTAB" T(N) }, 1054 { "ONBLUR" T(N) }, 1055 { "ONCHANGE" T(N) }, 1056 { "ONFOCUS" T(N) }, 1057 { "SIZE" T(N) }, 1058 { "TABINDEX" T(N) }, 1059 { "UNITS" T(N) }, 1060 { "WIDTH" T(N) }, 1061 { 0 T(N) } /* Terminate list */ 1062 }; 1063 1064 static const AttrType SELECT_attr_type[] = { 1065 { ATTR_TYPE(align) }, 1066 { ATTR_TYPE(core) }, 1067 { ATTR_TYPE(i18n) }, 1068 { ATTR_TYPE(SELECT) }, 1069 { 0, 0 }, 1070 }; 1071 1072 static const attr STYLE_attr_list[] = { 1073 { "MEDIA" T(N) }, 1074 { "NOTATION" T(N) }, 1075 { "TYPE" T(N) }, 1076 { 0 T(N) } /* Terminate list */ 1077 }; 1078 1079 static const AttrType STYLE_attr_type[] = { 1080 { ATTR_TYPE(core) }, 1081 { ATTR_TYPE(i18n) }, 1082 { ATTR_TYPE(STYLE) }, 1083 { 0, 0 }, 1084 }; 1085 1086 static const attr TAB_attr_list[] = { 1087 { "CLEAR" T(N) }, 1088 { "DP" T(N) }, 1089 { "INDENT" T(N) }, 1090 { "TO" T(N) }, 1091 { 0 T(N) } /* Terminate list */ 1092 }; 1093 1094 static const AttrType TAB_attr_type[] = { 1095 { ATTR_TYPE(align) }, 1096 { ATTR_TYPE(core) }, 1097 { ATTR_TYPE(i18n) }, 1098 { ATTR_TYPE(TAB) }, 1099 { 0, 0 }, 1100 }; 1101 1102 static const attr TABLE_attr_list[] = { 1103 { "BACKGROUND" T(h) }, 1104 { "BORDER" T(N) }, 1105 { "CELLPADDING" T(N) }, 1106 { "CELLSPACING" T(N) }, 1107 { "CLEAR" T(N) }, 1108 { "COLS" T(N) }, 1109 { "COLSPEC" T(N) }, 1110 { "DP" T(N) }, 1111 { "FRAME" T(N) }, 1112 { "NOFLOW" T(N) }, 1113 { "NOWRAP" T(N) }, 1114 { "RULES" T(N) }, 1115 { "SUMMARY" T(N) }, 1116 { "UNITS" T(N) }, 1117 { "WIDTH" T(N) }, 1118 { 0 T(N) } /* Terminate list */ 1119 }; 1120 1121 static const AttrType TABLE_attr_type[] = { 1122 { ATTR_TYPE(align) }, 1123 { ATTR_TYPE(core) }, 1124 { ATTR_TYPE(events) }, 1125 { ATTR_TYPE(i18n) }, 1126 { ATTR_TYPE(TABLE) }, 1127 { 0, 0 }, 1128 }; 1129 1130 static const attr TD_attr_list[] = { 1131 { "ABBR" T(N) }, 1132 { "AXES" T(N) }, 1133 { "AXIS" T(N) }, 1134 { "BACKGROUND" T(h) }, 1135 { "CLEAR" T(N) }, 1136 { "COLSPAN" T(N) }, 1137 { "DP" T(N) }, 1138 { "HEADERS" T(N) }, 1139 { "HEIGHT" T(N) }, 1140 { "NOWRAP" T(N) }, 1141 { "ROWSPAN" T(N) }, 1142 { "SCOPE" T(N) }, 1143 { "WIDTH" T(N) }, 1144 { 0 T(N) } /* Terminate list */ 1145 }; 1146 1147 static const AttrType TD_attr_type[] = { 1148 { ATTR_TYPE(cellalign) }, 1149 { ATTR_TYPE(core) }, 1150 { ATTR_TYPE(i18n) }, 1151 { ATTR_TYPE(TD) }, 1152 { 0, 0 }, 1153 }; 1154 1155 static const attr TEXTAREA_attr_list[] = { 1156 { "ACCEPT-CHARSET" T(N) }, 1157 { "ACCESSKEY" T(N) }, 1158 { "CLEAR" T(N) }, 1159 { "COLS" T(N) }, 1160 { "DISABLED" T(N) }, 1161 { "ERROR" T(N) }, 1162 { "NAME" T(N) }, 1163 { "NOTAB" T(N) }, 1164 { "ONBLUR" T(N) }, 1165 { "ONCHANGE" T(N) }, 1166 { "ONFOCUS" T(N) }, 1167 { "ONSELECT" T(N) }, 1168 { "READONLY" T(N) }, 1169 { "ROWS" T(N) }, 1170 { "TABINDEX" T(N) }, 1171 { 0 T(N) } /* Terminate list */ 1172 }; 1173 1174 static const AttrType TEXTAREA_attr_type[] = { 1175 { ATTR_TYPE(align) }, 1176 { ATTR_TYPE(core) }, 1177 { ATTR_TYPE(events) }, 1178 { ATTR_TYPE(i18n) }, 1179 { ATTR_TYPE(TEXTAREA) }, 1180 { 0, 0 }, 1181 }; 1182 1183 static const attr TR_attr_list[] = { 1184 { "CLEAR" T(N) }, 1185 { "DP" T(N) }, 1186 { "NOWRAP" T(N) }, 1187 { 0 T(N) } /* Terminate list */ 1188 }; 1189 1190 static const AttrType TR_attr_type[] = { 1191 { ATTR_TYPE(cellalign) }, 1192 { ATTR_TYPE(core) }, 1193 { ATTR_TYPE(events) }, 1194 { ATTR_TYPE(i18n) }, 1195 { ATTR_TYPE(TR) }, 1196 { 0, 0 }, 1197 }; 1198 1199 static const attr UL_attr_list[] = { 1200 { "CLEAR" T(N) }, 1201 { "COMPACT" T(N) }, 1202 { "DINGBAT" T(N) }, 1203 { "MD" T(N) }, 1204 { "PLAIN" T(N) }, 1205 { "SRC" T(h) }, 1206 { "TYPE" T(N) }, 1207 { "WRAP" T(N) }, 1208 { 0 T(N) } /* Terminate list */ 1209 }; 1210 1211 static const AttrType UL_attr_type[] = { 1212 { ATTR_TYPE(core) }, 1213 { ATTR_TYPE(i18n) }, 1214 { ATTR_TYPE(UL) }, 1215 { 0, 0 }, 1216 }; 1217 1218 1219 /* attribute lists for the runtime (generated by dtd_util) */ 1220 static const attr A_attr[] = { /* A attributes */ 1221 { "ACCESSKEY" T(N) }, 1222 { "CHARSET" T(N) }, 1223 { "CLASS" T(c) }, 1224 { "CLEAR" T(N) }, 1225 { "COORDS" T(N) }, 1226 { "DIR" T(N) }, 1227 { "HREF" T(h) }, 1228 { "HREFLANG" T(N) }, 1229 { "ID" T(i) }, 1230 { "ISMAP" T(N) }, 1231 { "LANG" T(N) }, 1232 { "MD" T(N) }, 1233 { "NAME" T(i) }, 1234 { "NOTAB" T(N) }, 1235 { "ONBLUR" T(N) }, 1236 { "ONFOCUS" T(N) }, 1237 { "REL" T(N) }, 1238 { "REV" T(N) }, 1239 { "SHAPE" T(N) }, 1240 { "STYLE" T(N) }, 1241 { "TABINDEX" T(N) }, 1242 { "TARGET" T(N) }, 1243 { "TITLE" T(N) }, 1244 { "TYPE" T(N) }, 1245 { "URN" T(N) }, 1246 { 0 T(N) } /* Terminate list */ 1247 }; 1248 1249 static const attr ADDRESS_attr[] = { /* ADDRESS attributes */ 1250 { "CLASS" T(c) }, 1251 { "CLEAR" T(N) }, 1252 { "DIR" T(N) }, 1253 { "ID" T(i) }, 1254 { "LANG" T(N) }, 1255 { "NOWRAP" T(N) }, 1256 { "STYLE" T(N) }, 1257 { "TITLE" T(N) }, 1258 { 0 T(N) } /* Terminate list */ 1259 }; 1260 1261 static const attr APPLET_attr[] = { /* APPLET attributes */ 1262 { "ALIGN" T(N) }, 1263 { "ALT" T(N) }, 1264 { "CLASS" T(c) }, 1265 { "CLEAR" T(N) }, 1266 { "CODE" T(N) }, 1267 { "CODEBASE" T(h) }, 1268 { "DIR" T(N) }, 1269 { "DOWNLOAD" T(N) }, 1270 { "HEIGHT" T(N) }, 1271 { "HSPACE" T(N) }, 1272 { "ID" T(i) }, 1273 { "LANG" T(N) }, 1274 { "NAME" T(i) }, 1275 { "STYLE" T(N) }, 1276 { "TITLE" T(N) }, 1277 { "VSPACE" T(N) }, 1278 { "WIDTH" T(N) }, 1279 { 0 T(N) } /* Terminate list */ 1280 }; 1281 1282 static const attr AREA_attr[] = { /* AREA attributes */ 1283 { "ACCESSKEY" T(N) }, 1284 { "ALT" T(N) }, 1285 { "CLASS" T(c) }, 1286 { "CLEAR" T(N) }, 1287 { "COORDS" T(N) }, 1288 { "DIR" T(N) }, 1289 { "HREF" T(h) }, 1290 { "ID" T(i) }, 1291 { "LANG" T(N) }, 1292 { "NOHREF" T(N) }, 1293 { "NOTAB" T(N) }, 1294 { "ONBLUR" T(N) }, 1295 { "ONFOCUS" T(N) }, 1296 { "SHAPE" T(N) }, 1297 { "STYLE" T(N) }, 1298 { "TABINDEX" T(N) }, 1299 { "TARGET" T(N) }, 1300 { "TITLE" T(N) }, 1301 { 0 T(N) } /* Terminate list */ 1302 }; 1303 1304 static const attr BASE_attr[] = { /* BASE attributes */ 1305 { "CLASS" T(c) }, 1306 { "HREF" T(h) }, 1307 { "ID" T(i) }, 1308 { "STYLE" T(N) }, 1309 { "TARGET" T(N) }, 1310 { "TITLE" T(N) }, 1311 { 0 T(N) } /* Terminate list */ 1312 }; 1313 1314 static const attr BGSOUND_attr[] = { /* BGSOUND attributes */ 1315 { "CLASS" T(c) }, 1316 { "CLEAR" T(N) }, 1317 { "DIR" T(N) }, 1318 { "ID" T(i) }, 1319 { "LANG" T(N) }, 1320 { "LOOP" T(N) }, 1321 { "SRC" T(h) }, 1322 { "STYLE" T(N) }, 1323 { "TITLE" T(N) }, 1324 { 0 T(N) } /* Terminate list */ 1325 }; 1326 1327 static const attr BODY_attr[] = { /* BODY attributes */ 1328 { "ALINK" T(N) }, 1329 { "BACKGROUND" T(h) }, 1330 { "BGCOLOR" T(N) }, 1331 { "CLASS" T(c) }, 1332 { "CLEAR" T(N) }, 1333 { "DIR" T(N) }, 1334 { "ID" T(i) }, 1335 { "LANG" T(N) }, 1336 { "LINK" T(N) }, 1337 { "ONLOAD" T(N) }, 1338 { "ONUNLOAD" T(N) }, 1339 { "STYLE" T(N) }, 1340 { "TEXT" T(N) }, 1341 { "TITLE" T(N) }, 1342 { "VLINK" T(N) }, 1343 { 0 T(N) } /* Terminate list */ 1344 }; 1345 1346 static const attr BODYTEXT_attr[] = { /* BODYTEXT attributes */ 1347 { "CLASS" T(c) }, 1348 { "CLEAR" T(N) }, 1349 { "DATA" T(N) }, 1350 { "DIR" T(N) }, 1351 { "ID" T(i) }, 1352 { "LANG" T(N) }, 1353 { "NAME" T(N) }, 1354 { "OBJECT" T(N) }, 1355 { "REF" T(N) }, 1356 { "STYLE" T(N) }, 1357 { "TITLE" T(N) }, 1358 { "TYPE" T(N) }, 1359 { "VALUE" T(N) }, 1360 { "VALUETYPE" T(N) }, 1361 { 0 T(N) } /* Terminate list */ 1362 }; 1363 1364 static const attr BQ_attr[] = { /* BLOCKQUOTE attributes */ 1365 { "CITE" T(h) }, 1366 { "CLASS" T(c) }, 1367 { "CLEAR" T(N) }, 1368 { "DIR" T(N) }, 1369 { "ID" T(i) }, 1370 { "LANG" T(N) }, 1371 { "NOWRAP" T(N) }, 1372 { "STYLE" T(N) }, 1373 { "TITLE" T(N) }, 1374 { 0 T(N) } /* Terminate list */ 1375 }; 1376 1377 static const attr BUTTON_attr[] = { /* BUTTON attributes */ 1378 { "ACCESSKEY" T(N) }, 1379 { "CLASS" T(c) }, 1380 { "CLEAR" T(N) }, 1381 { "DIR" T(N) }, 1382 { "DISABLED" T(N) }, 1383 { "ID" T(i) }, 1384 { "LANG" T(N) }, 1385 { "NAME" T(N) }, 1386 { "ONBLUR" T(N) }, 1387 { "ONFOCUS" T(N) }, 1388 { "READONLY" T(N) }, 1389 { "STYLE" T(N) }, 1390 { "TABINDEX" T(N) }, 1391 { "TITLE" T(N) }, 1392 { "TYPE" T(N) }, 1393 { "VALUE" T(N) }, 1394 { 0 T(N) } /* Terminate list */ 1395 }; 1396 1397 static const attr CAPTION_attr[] = { /* CAPTION attributes */ 1398 { "ACCESSKEY" T(N) }, 1399 { "ALIGN" T(N) }, 1400 { "CLASS" T(c) }, 1401 { "CLEAR" T(N) }, 1402 { "DIR" T(N) }, 1403 { "ID" T(i) }, 1404 { "LANG" T(N) }, 1405 { "STYLE" T(N) }, 1406 { "TITLE" T(N) }, 1407 { 0 T(N) } /* Terminate list */ 1408 }; 1409 1410 static const attr COL_attr[] = { /* COL attributes */ 1411 { "ALIGN" T(N) }, 1412 { "CHAR" T(N) }, 1413 { "CHAROFF" T(N) }, 1414 { "CLASS" T(c) }, 1415 { "CLEAR" T(N) }, 1416 { "DIR" T(N) }, 1417 { "ID" T(i) }, 1418 { "LANG" T(N) }, 1419 { "SPAN" T(N) }, 1420 { "STYLE" T(N) }, 1421 { "TITLE" T(N) }, 1422 { "VALIGN" T(N) }, 1423 { "WIDTH" T(N) }, 1424 { 0 T(N) } /* Terminate list */ 1425 }; 1426 1427 static const attr DEL_attr[] = { /* DEL attributes */ 1428 { "CITE" T(N) }, 1429 { "CLASS" T(c) }, 1430 { "DATETIME" T(N) }, 1431 { "DIR" T(N) }, 1432 { "ID" T(i) }, 1433 { "LANG" T(N) }, 1434 { "STYLE" T(N) }, 1435 { "TITLE" T(N) }, 1436 { 0 T(N) } /* Terminate list */ 1437 }; 1438 1439 static const attr DIV_attr[] = { /* CENTER attributes */ 1440 { "ALIGN" T(N) }, 1441 { "CLASS" T(c) }, 1442 { "CLEAR" T(N) }, 1443 { "DIR" T(N) }, 1444 { "ID" T(i) }, 1445 { "LANG" T(N) }, 1446 { "STYLE" T(N) }, 1447 { "TITLE" T(N) }, 1448 { 0 T(N) } /* Terminate list */ 1449 }; 1450 1451 static const attr DL_attr[] = { /* DL attributes */ 1452 { "CLASS" T(c) }, 1453 { "CLEAR" T(N) }, 1454 { "COMPACT" T(N) }, 1455 { "DIR" T(N) }, 1456 { "ID" T(i) }, 1457 { "LANG" T(N) }, 1458 { "STYLE" T(N) }, 1459 { "TITLE" T(N) }, 1460 { 0 T(N) } /* Terminate list */ 1461 }; 1462 1463 static const attr EMBED_attr[] = { /* EMBED attributes */ 1464 { "ALIGN" T(N) }, 1465 { "ALT" T(N) }, 1466 { "BORDER" T(N) }, 1467 { "CLASS" T(c) }, 1468 { "CLEAR" T(N) }, 1469 { "DIR" T(N) }, 1470 { "HEIGHT" T(N) }, 1471 { "ID" T(i) }, 1472 { "IMAGEMAP" T(N) }, 1473 { "ISMAP" T(N) }, 1474 { "LANG" T(N) }, 1475 { "MD" T(N) }, 1476 { "NAME" T(i) }, 1477 { "NOFLOW" T(N) }, 1478 { "PARAMS" T(N) }, 1479 { "SRC" T(h) }, 1480 { "STYLE" T(N) }, 1481 { "TITLE" T(N) }, 1482 { "UNITS" T(N) }, 1483 { "USEMAP" T(N) }, 1484 { "WIDTH" T(N) }, 1485 { 0 T(N) } /* Terminate list */ 1486 }; 1487 1488 static const attr FIG_attr[] = { /* FIG attributes */ 1489 { "ALIGN" T(N) }, 1490 { "BORDER" T(N) }, 1491 { "CLASS" T(c) }, 1492 { "CLEAR" T(N) }, 1493 { "DIR" T(N) }, 1494 { "HEIGHT" T(N) }, 1495 { "ID" T(i) }, 1496 { "IMAGEMAP" T(N) }, 1497 { "ISOBJECT" T(N) }, 1498 { "LANG" T(N) }, 1499 { "MD" T(N) }, 1500 { "NOFLOW" T(N) }, 1501 { "SRC" T(h) }, 1502 { "STYLE" T(N) }, 1503 { "TITLE" T(N) }, 1504 { "UNITS" T(N) }, 1505 { "WIDTH" T(N) }, 1506 { 0 T(N) } /* Terminate list */ 1507 }; 1508 1509 static const attr FONT_attr[] = { /* BASEFONT attributes */ 1510 { "CLASS" T(c) }, 1511 { "CLEAR" T(N) }, 1512 { "COLOR" T(N) }, 1513 { "DIR" T(N) }, 1514 { "END" T(N) }, 1515 { "FACE" T(N) }, 1516 { "ID" T(i) }, 1517 { "LANG" T(N) }, 1518 { "SIZE" T(N) }, 1519 { "STYLE" T(N) }, 1520 { "TITLE" T(N) }, 1521 { 0 T(N) } /* Terminate list */ 1522 }; 1523 1524 static const attr FORM_attr[] = { /* FORM attributes */ 1525 { "ACCEPT" T(N) }, 1526 { "ACCEPT-CHARSET" T(N) }, 1527 { "ACTION" T(h) }, 1528 { "CLASS" T(c) }, 1529 { "CLEAR" T(N) }, 1530 { "DIR" T(N) }, 1531 { "ENCTYPE" T(N) }, 1532 { "ID" T(i) }, 1533 { "LANG" T(N) }, 1534 { "METHOD" T(N) }, 1535 { "ONRESET" T(N) }, 1536 { "ONSUBMIT" T(N) }, 1537 { "SCRIPT" T(N) }, 1538 { "STYLE" T(N) }, 1539 { "SUBJECT" T(N) }, 1540 { "TARGET" T(N) }, 1541 { "TITLE" T(N) }, 1542 { 0 T(N) } /* Terminate list */ 1543 }; 1544 1545 static const attr FRAME_attr[] = { /* FRAME attributes */ 1546 { "CLASS" T(c) }, 1547 { "FRAMEBORDER" T(N) }, 1548 { "ID" T(i) }, 1549 { "LONGDESC" T(h) }, 1550 { "MARGINHEIGHT" T(N) }, 1551 { "MARGINWIDTH" T(N) }, 1552 { "NAME" T(N) }, 1553 { "NORESIZE" T(N) }, 1554 { "SCROLLING" T(N) }, 1555 { "SRC" T(h) }, 1556 { "STYLE" T(N) }, 1557 { "TITLE" T(N) }, 1558 { 0 T(N) } /* Terminate list */ 1559 }; 1560 1561 static const attr FRAMESET_attr[] = { /* FRAMESET attributes */ 1562 { "COLS" T(N) }, 1563 { "ONLOAD" T(N) }, 1564 { "ONUNLOAD" T(N) }, 1565 { "ROWS" T(N) }, 1566 { 0 T(N) } /* Terminate list */ 1567 }; 1568 1569 static const attr GEN_attr[] = { /* ABBR attributes */ 1570 { "CLASS" T(c) }, 1571 { "CLEAR" T(N) }, 1572 { "DIR" T(N) }, 1573 { "ID" T(i) }, 1574 { "LANG" T(N) }, 1575 { "STYLE" T(N) }, 1576 { "TITLE" T(N) }, 1577 { 0 T(N) } /* Terminate list */ 1578 }; 1579 1580 static const attr H_attr[] = { /* H1 attributes */ 1581 { "ALIGN" T(N) }, 1582 { "CLASS" T(c) }, 1583 { "CLEAR" T(N) }, 1584 { "DINGBAT" T(N) }, 1585 { "DIR" T(N) }, 1586 { "ID" T(i) }, 1587 { "LANG" T(N) }, 1588 { "MD" T(N) }, 1589 { "NOWRAP" T(N) }, 1590 { "SEQNUM" T(N) }, 1591 { "SKIP" T(N) }, 1592 { "SRC" T(h) }, 1593 { "STYLE" T(N) }, 1594 { "TITLE" T(N) }, 1595 { 0 T(N) } /* Terminate list */ 1596 }; 1597 1598 static const attr HR_attr[] = { /* HR attributes */ 1599 { "ALIGN" T(N) }, 1600 { "CLASS" T(c) }, 1601 { "CLEAR" T(N) }, 1602 { "DIR" T(N) }, 1603 { "ID" T(i) }, 1604 { "LANG" T(N) }, 1605 { "MD" T(N) }, 1606 { "NOSHADE" T(N) }, 1607 { "SIZE" T(N) }, 1608 { "SRC" T(h) }, 1609 { "STYLE" T(N) }, 1610 { "TITLE" T(N) }, 1611 { "WIDTH" T(N) }, 1612 { 0 T(N) } /* Terminate list */ 1613 }; 1614 1615 static const attr IFRAME_attr[] = { /* IFRAME attributes */ 1616 { "ALIGN" T(N) }, 1617 { "CLASS" T(c) }, 1618 { "FRAMEBORDER" T(N) }, 1619 { "HEIGHT" T(N) }, 1620 { "ID" T(i) }, 1621 { "LONGDESC" T(h) }, 1622 { "MARGINHEIGHT" T(N) }, 1623 { "MARGINWIDTH" T(N) }, 1624 { "NAME" T(N) }, 1625 { "SCROLLING" T(N) }, 1626 { "SRC" T(h) }, 1627 { "STYLE" T(N) }, 1628 { "TITLE" T(N) }, 1629 { "WIDTH" T(N) }, 1630 { 0 T(N) } /* Terminate list */ 1631 }; 1632 1633 static const attr IMG_attr[] = { /* IMG attributes */ 1634 { "ALIGN" T(N) }, 1635 { "ALT" T(N) }, 1636 { "BORDER" T(N) }, 1637 { "CLASS" T(c) }, 1638 { "CLEAR" T(N) }, 1639 { "DIR" T(N) }, 1640 { "HEIGHT" T(N) }, 1641 { "HSPACE" T(N) }, 1642 { "ID" T(i) }, 1643 { "ISMAP" T(N) }, 1644 { "ISOBJECT" T(N) }, 1645 { "LANG" T(N) }, 1646 { "LONGDESC" T(h) }, 1647 { "MD" T(N) }, 1648 { "NAME" T(N) }, 1649 { "SRC" T(h) }, 1650 { "STYLE" T(N) }, 1651 { "TITLE" T(N) }, 1652 { "UNITS" T(N) }, 1653 { "USEMAP" T(h) }, 1654 { "VSPACE" T(N) }, 1655 { "WIDTH" T(N) }, 1656 { 0 T(N) } /* Terminate list */ 1657 }; 1658 1659 static const attr INPUT_attr[] = { /* INPUT attributes */ 1660 { "ACCEPT" T(N) }, 1661 { "ACCEPT-CHARSET" T(N) }, 1662 { "ACCESSKEY" T(N) }, 1663 { "ALIGN" T(N) }, 1664 { "ALT" T(N) }, 1665 { "CHECKED" T(N) }, 1666 { "CLASS" T(c) }, 1667 { "CLEAR" T(N) }, 1668 { "DIR" T(N) }, 1669 { "DISABLED" T(N) }, 1670 { "ERROR" T(N) }, 1671 { "HEIGHT" T(N) }, 1672 { "ID" T(i) }, 1673 { "ISMAP" T(N) }, 1674 { "LANG" T(N) }, 1675 { "MAX" T(N) }, 1676 { "MAXLENGTH" T(N) }, 1677 { "MD" T(N) }, 1678 { "MIN" T(N) }, 1679 { "NAME" T(N) }, 1680 { "NOTAB" T(N) }, 1681 { "ONBLUR" T(N) }, 1682 { "ONCHANGE" T(N) }, 1683 { "ONFOCUS" T(N) }, 1684 { "ONSELECT" T(N) }, 1685 { "READONLY" T(N) }, 1686 { "SIZE" T(N) }, 1687 { "SRC" T(h) }, 1688 { "STYLE" T(N) }, 1689 { "TABINDEX" T(N) }, 1690 { "TITLE" T(N) }, 1691 { "TYPE" T(N) }, 1692 { "USEMAP" T(N) }, 1693 { "VALUE" T(N) }, 1694 { "WIDTH" T(N) }, 1695 { 0 T(N) } /* Terminate list */ 1696 }; 1697 1698 static const attr ISINDEX_attr[] = { /* ISINDEX attributes */ 1699 { "ACTION" T(h) }, 1700 { "CLASS" T(c) }, 1701 { "DIR" T(N) }, 1702 { "HREF" T(h) }, 1703 { "ID" T(i) }, 1704 { "LANG" T(N) }, 1705 { "PROMPT" T(N) }, 1706 { "STYLE" T(N) }, 1707 { "TITLE" T(N) }, 1708 { 0 T(N) } /* Terminate list */ 1709 }; 1710 1711 static const attr KEYGEN_attr[] = { /* KEYGEN attributes */ 1712 { "CHALLENGE" T(N) }, 1713 { "CLASS" T(c) }, 1714 { "DIR" T(N) }, 1715 { "ID" T(i) }, 1716 { "LANG" T(N) }, 1717 { "NAME" T(N) }, 1718 { "STYLE" T(N) }, 1719 { "TITLE" T(N) }, 1720 { 0 T(N) } /* Terminate list */ 1721 }; 1722 1723 static const attr LABEL_attr[] = { /* LABEL attributes */ 1724 { "ACCESSKEY" T(N) }, 1725 { "CLASS" T(c) }, 1726 { "CLEAR" T(N) }, 1727 { "DIR" T(N) }, 1728 { "FOR" T(N) }, 1729 { "ID" T(i) }, 1730 { "LANG" T(N) }, 1731 { "ONBLUR" T(N) }, 1732 { "ONFOCUS" T(N) }, 1733 { "STYLE" T(N) }, 1734 { "TITLE" T(N) }, 1735 { 0 T(N) } /* Terminate list */ 1736 }; 1737 1738 static const attr LI_attr[] = { /* LI attributes */ 1739 { "CLASS" T(c) }, 1740 { "CLEAR" T(N) }, 1741 { "DINGBAT" T(N) }, 1742 { "DIR" T(N) }, 1743 { "ID" T(i) }, 1744 { "LANG" T(N) }, 1745 { "MD" T(N) }, 1746 { "SKIP" T(N) }, 1747 { "SRC" T(h) }, 1748 { "STYLE" T(N) }, 1749 { "TITLE" T(N) }, 1750 { "TYPE" T(N) }, 1751 { "VALUE" T(N) }, 1752 { 0 T(N) } /* Terminate list */ 1753 }; 1754 1755 static const attr LINK_attr[] = { /* LINK attributes */ 1756 { "CHARSET" T(N) }, 1757 { "CLASS" T(c) }, 1758 { "DIR" T(N) }, 1759 { "HREF" T(h) }, 1760 { "HREFLANG" T(N) }, 1761 { "ID" T(i) }, 1762 { "LANG" T(N) }, 1763 { "MEDIA" T(N) }, 1764 { "REL" T(N) }, 1765 { "REV" T(N) }, 1766 { "STYLE" T(N) }, 1767 { "TARGET" T(N) }, 1768 { "TITLE" T(N) }, 1769 { "TYPE" T(N) }, 1770 { 0 T(N) } /* Terminate list */ 1771 }; 1772 1773 static const attr MAP_attr[] = { /* MAP attributes */ 1774 { "CLASS" T(c) }, 1775 { "CLEAR" T(N) }, 1776 { "DIR" T(N) }, 1777 { "ID" T(i) }, 1778 { "LANG" T(N) }, 1779 { "NAME" T(i) }, 1780 { "STYLE" T(N) }, 1781 { "TITLE" T(N) }, 1782 { 0 T(N) } /* Terminate list */ 1783 }; 1784 1785 static const attr MATH_attr[] = { /* MATH attributes */ 1786 { "BOX" T(N) }, 1787 { "CLASS" T(c) }, 1788 { "CLEAR" T(N) }, 1789 { "DIR" T(N) }, 1790 { "ID" T(i) }, 1791 { "LANG" T(N) }, 1792 { "STYLE" T(N) }, 1793 { "TITLE" T(N) }, 1794 { 0 T(N) } /* Terminate list */ 1795 }; 1796 1797 static const attr META_attr[] = { /* META attributes */ 1798 { "CHARSET" T(N) }, 1799 { "CONTENT" T(N) }, 1800 { "HTTP-EQUIV" T(N) }, 1801 { "NAME" T(N) }, 1802 { "SCHEME" T(N) }, 1803 { 0 T(N) } /* Terminate list */ 1804 }; 1805 1806 static const attr NEXTID_attr[] = { /* NEXTID attributes */ 1807 { "N" T(N) }, 1808 { 0 T(N) } /* Terminate list */ 1809 }; 1810 1811 static const attr NOTE_attr[] = { /* NOTE attributes */ 1812 { "CLASS" T(c) }, 1813 { "CLEAR" T(N) }, 1814 { "DIR" T(N) }, 1815 { "ID" T(i) }, 1816 { "LANG" T(N) }, 1817 { "MD" T(N) }, 1818 { "ROLE" T(x) }, 1819 { "SRC" T(h) }, 1820 { "STYLE" T(N) }, 1821 { "TITLE" T(N) }, 1822 { 0 T(N) } /* Terminate list */ 1823 }; 1824 1825 static const attr OBJECT_attr[] = { /* OBJECT attributes */ 1826 { "ALIGN" T(N) }, 1827 { "ARCHIVE" T(N) }, 1828 { "BORDER" T(N) }, 1829 { "CLASS" T(c) }, 1830 { "CLASSID" T(h) }, 1831 { "CODEBASE" T(h) }, 1832 { "CODETYPE" T(N) }, 1833 { "DATA" T(h) }, 1834 { "DECLARE" T(N) }, 1835 { "DIR" T(N) }, 1836 { "HEIGHT" T(N) }, 1837 { "HSPACE" T(N) }, 1838 { "ID" T(i) }, 1839 { "ISMAP" T(N) }, 1840 { "LANG" T(N) }, 1841 { "NAME" T(N) }, 1842 { "NOTAB" T(N) }, 1843 { "SHAPES" T(N) }, 1844 { "STANDBY" T(N) }, 1845 { "STYLE" T(N) }, 1846 { "TABINDEX" T(N) }, 1847 { "TITLE" T(N) }, 1848 { "TYPE" T(N) }, 1849 { "USEMAP" T(h) }, 1850 { "VSPACE" T(N) }, 1851 { "WIDTH" T(N) }, 1852 { 0 T(N) } /* Terminate list */ 1853 }; 1854 1855 static const attr OL_attr[] = { /* OL attributes */ 1856 { "CLASS" T(c) }, 1857 { "CLEAR" T(N) }, 1858 { "COMPACT" T(N) }, 1859 { "CONTINUE" T(N) }, 1860 { "DIR" T(N) }, 1861 { "ID" T(i) }, 1862 { "LANG" T(N) }, 1863 { "SEQNUM" T(N) }, 1864 { "START" T(N) }, 1865 { "STYLE" T(N) }, 1866 { "TITLE" T(N) }, 1867 { "TYPE" T(N) }, 1868 { 0 T(N) } /* Terminate list */ 1869 }; 1870 1871 static const attr OPTION_attr[] = { /* OPTION attributes */ 1872 { "CLASS" T(c) }, 1873 { "CLEAR" T(N) }, 1874 { "DIR" T(N) }, 1875 { "DISABLED" T(N) }, 1876 { "ERROR" T(N) }, 1877 { "ID" T(i) }, 1878 { "LABEL" T(N) }, 1879 { "LANG" T(N) }, 1880 { "SELECTED" T(N) }, 1881 { "SHAPE" T(N) }, 1882 { "STYLE" T(N) }, 1883 { "TITLE" T(N) }, 1884 { "VALUE" T(N) }, 1885 { 0 T(N) } /* Terminate list */ 1886 }; 1887 1888 static const attr OVERLAY_attr[] = { /* OVERLAY attributes */ 1889 { "CLASS" T(c) }, 1890 { "HEIGHT" T(N) }, 1891 { "ID" T(i) }, 1892 { "IMAGEMAP" T(N) }, 1893 { "MD" T(N) }, 1894 { "SRC" T(h) }, 1895 { "STYLE" T(N) }, 1896 { "TITLE" T(N) }, 1897 { "UNITS" T(N) }, 1898 { "WIDTH" T(N) }, 1899 { "X" T(N) }, 1900 { "Y" T(N) }, 1901 { 0 T(N) } /* Terminate list */ 1902 }; 1903 1904 static const attr P_attr[] = { /* P attributes */ 1905 { "ALIGN" T(N) }, 1906 { "CLASS" T(c) }, 1907 { "CLEAR" T(N) }, 1908 { "DIR" T(N) }, 1909 { "ID" T(i) }, 1910 { "LANG" T(N) }, 1911 { "NOWRAP" T(N) }, 1912 { "STYLE" T(N) }, 1913 { "TITLE" T(N) }, 1914 { 0 T(N) } /* Terminate list */ 1915 }; 1916 1917 static const attr PARAM_attr[] = { /* PARAM attributes */ 1918 { "ACCEPT" T(N) }, 1919 { "ACCEPT-CHARSET" T(N) }, 1920 { "ACCEPT-ENCODING" T(N) }, 1921 { "CLASS" T(c) }, 1922 { "CLEAR" T(N) }, 1923 { "DATA" T(N) }, 1924 { "DIR" T(N) }, 1925 { "ID" T(i) }, 1926 { "LANG" T(N) }, 1927 { "NAME" T(N) }, 1928 { "OBJECT" T(N) }, 1929 { "REF" T(N) }, 1930 { "STYLE" T(N) }, 1931 { "TITLE" T(N) }, 1932 { "TYPE" T(N) }, 1933 { "VALUE" T(N) }, 1934 { "VALUEREF" T(N) }, 1935 { "VALUETYPE" T(N) }, 1936 { 0 T(N) } /* Terminate list */ 1937 }; 1938 1939 static const attr Q_attr[] = { /* Q attributes */ 1940 { "CITE" T(h) }, 1941 { "CLASS" T(c) }, 1942 { "CLEAR" T(N) }, 1943 { "DIR" T(N) }, 1944 { "ID" T(i) }, 1945 { "LANG" T(N) }, 1946 { "STYLE" T(N) }, 1947 { "TITLE" T(N) }, 1948 { 0 T(N) } /* Terminate list */ 1949 }; 1950 1951 static const attr SCRIPT_attr[] = { /* SCRIPT attributes */ 1952 { "CHARSET" T(N) }, 1953 { "CLASS" T(c) }, 1954 { "CLEAR" T(N) }, 1955 { "DEFER" T(N) }, 1956 { "DIR" T(N) }, 1957 { "EVENT" T(N) }, 1958 { "FOR" T(N) }, 1959 { "ID" T(i) }, 1960 { "LANG" T(N) }, 1961 { "LANGUAGE" T(N) }, 1962 { "NAME" T(N) }, 1963 { "SCRIPTENGINE" T(N) }, 1964 { "SRC" T(h) }, 1965 { "STYLE" T(N) }, 1966 { "TITLE" T(N) }, 1967 { "TYPE" T(N) }, 1968 { 0 T(N) } /* Terminate list */ 1969 }; 1970 1971 static const attr SELECT_attr[] = { /* SELECT attributes */ 1972 { "ALIGN" T(N) }, 1973 { "CLASS" T(c) }, 1974 { "CLEAR" T(N) }, 1975 { "DIR" T(N) }, 1976 { "DISABLED" T(N) }, 1977 { "ERROR" T(N) }, 1978 { "HEIGHT" T(N) }, 1979 { "ID" T(i) }, 1980 { "LANG" T(N) }, 1981 { "MD" T(N) }, 1982 { "MULTIPLE" T(N) }, 1983 { "NAME" T(N) }, 1984 { "NOTAB" T(N) }, 1985 { "ONBLUR" T(N) }, 1986 { "ONCHANGE" T(N) }, 1987 { "ONFOCUS" T(N) }, 1988 { "SIZE" T(N) }, 1989 { "STYLE" T(N) }, 1990 { "TABINDEX" T(N) }, 1991 { "TITLE" T(N) }, 1992 { "UNITS" T(N) }, 1993 { "WIDTH" T(N) }, 1994 { 0 T(N) } /* Terminate list */ 1995 }; 1996 1997 static const attr STYLE_attr[] = { /* STYLE attributes */ 1998 { "CLASS" T(c) }, 1999 { "DIR" T(N) }, 2000 { "ID" T(i) }, 2001 { "LANG" T(N) }, 2002 { "MEDIA" T(N) }, 2003 { "NOTATION" T(N) }, 2004 { "STYLE" T(N) }, 2005 { "TITLE" T(N) }, 2006 { "TYPE" T(N) }, 2007 { 0 T(N) } /* Terminate list */ 2008 }; 2009 2010 static const attr TAB_attr[] = { /* TAB attributes */ 2011 { "ALIGN" T(N) }, 2012 { "CLASS" T(c) }, 2013 { "CLEAR" T(N) }, 2014 { "DIR" T(N) }, 2015 { "DP" T(N) }, 2016 { "ID" T(i) }, 2017 { "INDENT" T(N) }, 2018 { "LANG" T(N) }, 2019 { "STYLE" T(N) }, 2020 { "TITLE" T(N) }, 2021 { "TO" T(N) }, 2022 { 0 T(N) } /* Terminate list */ 2023 }; 2024 2025 static const attr TABLE_attr[] = { /* TABLE attributes */ 2026 { "ALIGN" T(N) }, 2027 { "BACKGROUND" T(h) }, 2028 { "BORDER" T(N) }, 2029 { "CELLPADDING" T(N) }, 2030 { "CELLSPACING" T(N) }, 2031 { "CLASS" T(c) }, 2032 { "CLEAR" T(N) }, 2033 { "COLS" T(N) }, 2034 { "COLSPEC" T(N) }, 2035 { "DIR" T(N) }, 2036 { "DP" T(N) }, 2037 { "FRAME" T(N) }, 2038 { "ID" T(i) }, 2039 { "LANG" T(N) }, 2040 { "NOFLOW" T(N) }, 2041 { "NOWRAP" T(N) }, 2042 { "RULES" T(N) }, 2043 { "STYLE" T(N) }, 2044 { "SUMMARY" T(N) }, 2045 { "TITLE" T(N) }, 2046 { "UNITS" T(N) }, 2047 { "WIDTH" T(N) }, 2048 { 0 T(N) } /* Terminate list */ 2049 }; 2050 2051 static const attr TD_attr[] = { /* TD attributes */ 2052 { "ABBR" T(N) }, 2053 { "ALIGN" T(N) }, 2054 { "AXES" T(N) }, 2055 { "AXIS" T(N) }, 2056 { "BACKGROUND" T(h) }, 2057 { "CHAR" T(N) }, 2058 { "CHAROFF" T(N) }, 2059 { "CLASS" T(c) }, 2060 { "CLEAR" T(N) }, 2061 { "COLSPAN" T(N) }, 2062 { "DIR" T(N) }, 2063 { "DP" T(N) }, 2064 { "HEADERS" T(N) }, 2065 { "HEIGHT" T(N) }, 2066 { "ID" T(i) }, 2067 { "LANG" T(N) }, 2068 { "NOWRAP" T(N) }, 2069 { "ROWSPAN" T(N) }, 2070 { "SCOPE" T(N) }, 2071 { "STYLE" T(N) }, 2072 { "TITLE" T(N) }, 2073 { "VALIGN" T(N) }, 2074 { "WIDTH" T(N) }, 2075 { 0 T(N) } /* Terminate list */ 2076 }; 2077 2078 static const attr TEXTAREA_attr[] = { /* TEXTAREA attributes */ 2079 { "ACCEPT-CHARSET" T(N) }, 2080 { "ACCESSKEY" T(N) }, 2081 { "ALIGN" T(N) }, 2082 { "CLASS" T(c) }, 2083 { "CLEAR" T(N) }, 2084 { "COLS" T(N) }, 2085 { "DIR" T(N) }, 2086 { "DISABLED" T(N) }, 2087 { "ERROR" T(N) }, 2088 { "ID" T(i) }, 2089 { "LANG" T(N) }, 2090 { "NAME" T(N) }, 2091 { "NOTAB" T(N) }, 2092 { "ONBLUR" T(N) }, 2093 { "ONCHANGE" T(N) }, 2094 { "ONFOCUS" T(N) }, 2095 { "ONSELECT" T(N) }, 2096 { "READONLY" T(N) }, 2097 { "ROWS" T(N) }, 2098 { "STYLE" T(N) }, 2099 { "TABINDEX" T(N) }, 2100 { "TITLE" T(N) }, 2101 { 0 T(N) } /* Terminate list */ 2102 }; 2103 2104 static const attr TR_attr[] = { /* TBODY attributes */ 2105 { "ALIGN" T(N) }, 2106 { "CHAR" T(N) }, 2107 { "CHAROFF" T(N) }, 2108 { "CLASS" T(c) }, 2109 { "CLEAR" T(N) }, 2110 { "DIR" T(N) }, 2111 { "DP" T(N) }, 2112 { "ID" T(i) }, 2113 { "LANG" T(N) }, 2114 { "NOWRAP" T(N) }, 2115 { "STYLE" T(N) }, 2116 { "TITLE" T(N) }, 2117 { "VALIGN" T(N) }, 2118 { 0 T(N) } /* Terminate list */ 2119 }; 2120 2121 static const attr UL_attr[] = { /* DIR attributes */ 2122 { "CLASS" T(c) }, 2123 { "CLEAR" T(N) }, 2124 { "COMPACT" T(N) }, 2125 { "DINGBAT" T(N) }, 2126 { "DIR" T(N) }, 2127 { "ID" T(i) }, 2128 { "LANG" T(N) }, 2129 { "MD" T(N) }, 2130 { "PLAIN" T(N) }, 2131 { "SRC" T(h) }, 2132 { "STYLE" T(N) }, 2133 { "TITLE" T(N) }, 2134 { "TYPE" T(N) }, 2135 { "WRAP" T(N) }, 2136 { 0 T(N) } /* Terminate list */ 2137 }; 2138 2139 /* *INDENT-ON* */ 2140 2141 /* justification-flags */ 2142 #undef N 2143 #undef i 2144 #undef h 2145 #undef c 2146 #undef x 2147 2148 #undef T 2149 2150 /* tag-names */ 2151 #undef A 2152 #undef ABBR 2153 #undef ACRONYM 2154 #undef ADDRESS 2155 #undef APPLET 2156 #undef AREA 2157 #undef AU 2158 #undef AUTHOR 2159 #undef B 2160 #undef BANNER 2161 #undef BASE 2162 #undef BASEFONT 2163 #undef BDO 2164 #undef BGSOUND 2165 #undef BIG 2166 #undef BLINK 2167 #undef BLOCKQUOTE 2168 #undef BODY 2169 #undef BODYTEXT 2170 #undef BQ 2171 #undef BR 2172 #undef BUTTON 2173 #undef CAPTION 2174 #undef CENTER 2175 #undef CITE 2176 #undef CODE 2177 #undef COL 2178 #undef COLGROUP 2179 #undef COMMENT 2180 #undef CREDIT 2181 #undef DD 2182 #undef DEL 2183 #undef DFN 2184 #undef DIR 2185 #undef DIV 2186 #undef DL 2187 #undef DLC 2188 #undef DT 2189 #undef EM 2190 #undef EMBED 2191 #undef FIELDSET 2192 #undef FIG 2193 #undef FN 2194 #undef FONT 2195 #undef FORM 2196 #undef FRAME 2197 #undef FRAMESET 2198 #undef H1 2199 #undef H2 2200 #undef H3 2201 #undef H4 2202 #undef H5 2203 #undef H6 2204 #undef HEAD 2205 #undef HR 2206 #undef HTML 2207 #undef HY 2208 #undef I 2209 #undef IFRAME 2210 #undef IMG 2211 #undef INPUT 2212 #undef INS 2213 #undef ISINDEX 2214 #undef KBD 2215 #undef KEYGEN 2216 #undef LABEL 2217 #undef LEGEND 2218 #undef LH 2219 #undef LI 2220 #undef LINK 2221 #undef LISTING 2222 #undef MAP 2223 #undef MARQUEE 2224 #undef MATH 2225 #undef MENU 2226 #undef META 2227 #undef NEXTID 2228 #undef NOFRAMES 2229 #undef NOTE 2230 #undef OBJECT 2231 #undef OL 2232 #undef OPTION 2233 #undef OVERLAY 2234 #undef P 2235 #undef PARAM 2236 #undef PLAINTEXT 2237 #undef PRE 2238 #undef Q 2239 #undef S 2240 #undef SAMP 2241 #undef SCRIPT 2242 #undef SELECT 2243 #undef SHY 2244 #undef SMALL 2245 #undef SPAN 2246 #undef SPOT 2247 #undef STRIKE 2248 #undef STRONG 2249 #undef STYLE 2250 #undef SUB 2251 #undef SUP 2252 #undef TAB 2253 #undef TABLE 2254 #undef TBODY 2255 #undef TD 2256 #undef TEXTAREA 2257 #undef TEXTFLOW 2258 #undef TFOOT 2259 #undef TH 2260 #undef THEAD 2261 #undef TITLE 2262 #undef TR 2263 #undef TT 2264 #undef U 2265 #undef UL 2266 #undef VAR 2267 #undef WBR 2268 #undef XMP 2269 #undef OBJECT_PCDATA 2270 2271 /* these definitions are used in the tags-tables */ 2272 #undef P 2273 #undef P_ 2274 #ifdef USE_COLOR_STYLE 2275 #define P_(x) #x, (sizeof #x) -1 2276 #define NULL_HTTag_ NULL, 0 2277 #else 2278 #define P_(x) #x 2279 #define NULL_HTTag_ NULL 2280 #endif 2281 2282 #ifdef USE_JUSTIFY_ELTS 2283 #define P(x) P_(x), 1 2284 #define P0(x) P_(x), 0 2285 #define NULL_HTTag NULL_HTTag_,0 2286 #else 2287 #define P(x) P_(x) 2288 #define P0(x) P_(x) 2289 #define NULL_HTTag NULL_HTTag_ 2290 #endif 2291 2292 #define ATTR_DATA(name) name##_attr, HTML_##name##_ATTRIBUTES, name##_attr_type 2293 2294 #endif /* once_HTMLDTD */ 2295 /* *INDENT-OFF* */ 2296 static const HTTag tags_table1[HTML_ALL_ELEMENTS] = { 2297 { P(A), ATTR_DATA(A), SGML_MIXED, T_A}, 2298 { P(ABBR), ATTR_DATA(GEN), SGML_MIXED, T_ABBR}, 2299 { P(ACRONYM), ATTR_DATA(GEN), SGML_MIXED, T_ACRONYM}, 2300 { P(ADDRESS), ATTR_DATA(ADDRESS), SGML_MIXED, T_ADDRESS}, 2301 { P(APPLET), ATTR_DATA(APPLET), SGML_MIXED, T_APPLET}, 2302 { P(AREA), ATTR_DATA(AREA), SGML_EMPTY, T_AREA}, 2303 { P(AU), ATTR_DATA(GEN), SGML_MIXED, T_AU}, 2304 { P(AUTHOR), ATTR_DATA(GEN), SGML_MIXED, T_AUTHOR}, 2305 { P(B), ATTR_DATA(GEN), SGML_MIXED, T_B}, 2306 { P0(BANNER), ATTR_DATA(GEN), SGML_MIXED, T_BANNER}, 2307 { P(BASE), ATTR_DATA(BASE), SGML_EMPTY, T_BASE}, 2308 { P(BASEFONT), ATTR_DATA(FONT), SGML_EMPTY, T_BASEFONT}, 2309 { P(BDO), ATTR_DATA(GEN), SGML_MIXED, T_BDO}, 2310 { P(BGSOUND), ATTR_DATA(BGSOUND), SGML_EMPTY, T_BGSOUND}, 2311 { P(BIG), ATTR_DATA(GEN), SGML_MIXED, T_BIG}, 2312 { P(BLINK), ATTR_DATA(GEN), SGML_MIXED, T_BLINK}, 2313 { P(BLOCKQUOTE), ATTR_DATA(BQ), SGML_MIXED, T_BLOCKQUOTE}, 2314 { P(BODY), ATTR_DATA(BODY), SGML_MIXED, T_BODY}, 2315 { P(BODYTEXT), ATTR_DATA(BODYTEXT), SGML_MIXED, T_BODYTEXT}, 2316 { P(BQ), ATTR_DATA(BQ), SGML_MIXED, T_BQ}, 2317 { P(BR), ATTR_DATA(GEN), SGML_EMPTY, T_BR}, 2318 { P(BUTTON), ATTR_DATA(BUTTON), SGML_MIXED, T_BUTTON}, 2319 { P(CAPTION), ATTR_DATA(CAPTION), SGML_MIXED, T_CAPTION}, 2320 { P(CENTER), ATTR_DATA(DIV), SGML_MIXED, T_CENTER}, 2321 { P(CITE), ATTR_DATA(GEN), SGML_MIXED, T_CITE}, 2322 { P(CODE), ATTR_DATA(GEN), SGML_MIXED, T_CODE}, 2323 { P(COL), ATTR_DATA(COL), SGML_EMPTY, T_COL}, 2324 { P(COLGROUP), ATTR_DATA(COL), SGML_ELEMENT, T_COLGROUP}, 2325 { P(COMMENT), ATTR_DATA(GEN), SGML_PCDATA, T_COMMENT}, 2326 { P(CREDIT), ATTR_DATA(GEN), SGML_MIXED, T_CREDIT}, 2327 { P(DD), ATTR_DATA(GEN), SGML_MIXED, T_DD}, 2328 { P(DEL), ATTR_DATA(DEL), SGML_MIXED, T_DEL}, 2329 { P(DFN), ATTR_DATA(GEN), SGML_MIXED, T_DFN}, 2330 { P(DIR), ATTR_DATA(UL), SGML_MIXED, T_DIR}, 2331 { P(DIV), ATTR_DATA(DIV), SGML_MIXED, T_DIV}, 2332 { P(DL), ATTR_DATA(DL), SGML_MIXED, T_DL}, 2333 { P(DLC), ATTR_DATA(DL), SGML_MIXED, T_DLC}, 2334 { P(DT), ATTR_DATA(GEN), SGML_MIXED, T_DT}, 2335 { P(EM), ATTR_DATA(GEN), SGML_MIXED, T_EM}, 2336 { P(EMBED), ATTR_DATA(EMBED), SGML_EMPTY, T_EMBED}, 2337 { P(FIELDSET), ATTR_DATA(GEN), SGML_MIXED, T_FIELDSET}, 2338 { P(FIG), ATTR_DATA(FIG), SGML_MIXED, T_FIG}, 2339 { P(FN), ATTR_DATA(GEN), SGML_MIXED, T_FN}, 2340 { P(FONT), ATTR_DATA(FONT), SGML_MIXED, T_FONT}, 2341 { P(FORM), ATTR_DATA(FORM), SGML_MIXED, T_FORM}, 2342 { P(FRAME), ATTR_DATA(FRAME), SGML_EMPTY, T_FRAME}, 2343 { P(FRAMESET), ATTR_DATA(FRAMESET), SGML_ELEMENT, T_FRAMESET}, 2344 { P0(H1), ATTR_DATA(H), SGML_MIXED, T_H1}, 2345 { P0(H2), ATTR_DATA(H), SGML_MIXED, T_H2}, 2346 { P0(H3), ATTR_DATA(H), SGML_MIXED, T_H3}, 2347 { P0(H4), ATTR_DATA(H), SGML_MIXED, T_H4}, 2348 { P0(H5), ATTR_DATA(H), SGML_MIXED, T_H5}, 2349 { P0(H6), ATTR_DATA(H), SGML_MIXED, T_H6}, 2350 { P(HEAD), ATTR_DATA(GEN), SGML_ELEMENT, T_HEAD}, 2351 { P(HR), ATTR_DATA(HR), SGML_EMPTY, T_HR}, 2352 { P(HTML), ATTR_DATA(GEN), SGML_MIXED, T_HTML}, 2353 { P(HY), ATTR_DATA(GEN), SGML_EMPTY, T_HY}, 2354 { P(I), ATTR_DATA(GEN), SGML_MIXED, T_I}, 2355 { P(IFRAME), ATTR_DATA(IFRAME), SGML_MIXED, T_IFRAME}, 2356 { P(IMG), ATTR_DATA(IMG), SGML_EMPTY, T_IMG}, 2357 { P(INPUT), ATTR_DATA(INPUT), SGML_EMPTY, T_INPUT}, 2358 { P(INS), ATTR_DATA(DEL), SGML_MIXED, T_INS}, 2359 { P(ISINDEX), ATTR_DATA(ISINDEX), SGML_EMPTY, T_ISINDEX}, 2360 { P(KBD), ATTR_DATA(GEN), SGML_MIXED, T_KBD}, 2361 { P(KEYGEN), ATTR_DATA(KEYGEN), SGML_EMPTY, T_KEYGEN}, 2362 { P(LABEL), ATTR_DATA(LABEL), SGML_MIXED, T_LABEL}, 2363 { P(LEGEND), ATTR_DATA(CAPTION), SGML_MIXED, T_LEGEND}, 2364 { P(LH), ATTR_DATA(GEN), SGML_MIXED, T_LH}, 2365 { P(LI), ATTR_DATA(LI), SGML_MIXED, T_LI}, 2366 { P(LINK), ATTR_DATA(LINK), SGML_EMPTY, T_LINK}, 2367 { P(LISTING), ATTR_DATA(GEN), SGML_LITTERAL,T_LISTING}, 2368 { P(MAP), ATTR_DATA(MAP), SGML_ELEMENT, T_MAP}, 2369 { P(MARQUEE), ATTR_DATA(GEN), SGML_MIXED, T_MARQUEE}, 2370 { P(MATH), ATTR_DATA(MATH), SGML_PCDATA, T_MATH}, 2371 { P(MENU), ATTR_DATA(UL), SGML_MIXED, T_MENU}, 2372 { P(META), ATTR_DATA(META), SGML_EMPTY, T_META}, 2373 { P(NEXTID), ATTR_DATA(NEXTID), SGML_EMPTY, T_NEXTID}, 2374 { P(NOFRAMES), ATTR_DATA(GEN), SGML_MIXED, T_NOFRAMES}, 2375 { P(NOTE), ATTR_DATA(NOTE), SGML_MIXED, T_NOTE}, 2376 { P(OBJECT), ATTR_DATA(OBJECT), SGML_LITTERAL,T_OBJECT}, 2377 { P(OL), ATTR_DATA(OL), SGML_MIXED, T_OL}, 2378 { P(OPTION), ATTR_DATA(OPTION), SGML_PCDATA, T_OPTION}, 2379 { P(OVERLAY), ATTR_DATA(OVERLAY), SGML_PCDATA, T_OVERLAY}, 2380 { P(P), ATTR_DATA(P), SGML_MIXED, T_P}, 2381 { P(PARAM), ATTR_DATA(PARAM), SGML_EMPTY, T_PARAM}, 2382 { P(PLAINTEXT), ATTR_DATA(GEN), SGML_LITTERAL,T_PLAINTEXT}, 2383 { P0(PRE), ATTR_DATA(GEN), SGML_MIXED, T_PRE}, 2384 { P(Q), ATTR_DATA(Q), SGML_MIXED, T_Q}, 2385 { P(S), ATTR_DATA(GEN), SGML_MIXED, T_S}, 2386 { P(SAMP), ATTR_DATA(GEN), SGML_MIXED, T_SAMP}, 2387 { P(SCRIPT), ATTR_DATA(SCRIPT), SGML_SCRIPT, T_SCRIPT}, 2388 { P(SELECT), ATTR_DATA(SELECT), SGML_ELEMENT, T_SELECT}, 2389 { P(SHY), ATTR_DATA(GEN), SGML_EMPTY, T_SHY}, 2390 { P(SMALL), ATTR_DATA(GEN), SGML_MIXED, T_SMALL}, 2391 { P(SPAN), ATTR_DATA(GEN), SGML_MIXED, T_SPAN}, 2392 { P(SPOT), ATTR_DATA(GEN), SGML_EMPTY, T_SPOT}, 2393 { P(STRIKE), ATTR_DATA(GEN), SGML_MIXED, T_STRIKE}, 2394 { P(STRONG), ATTR_DATA(GEN), SGML_MIXED, T_STRONG}, 2395 { P(STYLE), ATTR_DATA(STYLE), SGML_CDATA, T_STYLE}, 2396 { P(SUB), ATTR_DATA(GEN), SGML_MIXED, T_SUB}, 2397 { P(SUP), ATTR_DATA(GEN), SGML_MIXED, T_SUP}, 2398 { P(TAB), ATTR_DATA(TAB), SGML_EMPTY, T_TAB}, 2399 { P(TABLE), ATTR_DATA(TABLE), SGML_ELEMENT, T_TABLE}, 2400 { P(TBODY), ATTR_DATA(TR), SGML_ELEMENT, T_TBODY}, 2401 { P(TD), ATTR_DATA(TD), SGML_MIXED, T_TD}, 2402 { P(TEXTAREA), ATTR_DATA(TEXTAREA), SGML_PCDATA, T_TEXTAREA}, 2403 { P(TEXTFLOW), ATTR_DATA(BODYTEXT), SGML_MIXED, T_TEXTFLOW}, 2404 { P(TFOOT), ATTR_DATA(TR), SGML_ELEMENT, T_TFOOT}, 2405 { P(TH), ATTR_DATA(TD), SGML_MIXED, T_TH}, 2406 { P(THEAD), ATTR_DATA(TR), SGML_ELEMENT, T_THEAD}, 2407 { P(TITLE), ATTR_DATA(GEN), SGML_PCDATA, T_TITLE}, 2408 { P(TR), ATTR_DATA(TR), SGML_MIXED, T_TR}, 2409 { P(TT), ATTR_DATA(GEN), SGML_MIXED, T_TT}, 2410 { P(U), ATTR_DATA(GEN), SGML_MIXED, T_U}, 2411 { P(UL), ATTR_DATA(UL), SGML_MIXED, T_UL}, 2412 { P(VAR), ATTR_DATA(GEN), SGML_MIXED, T_VAR}, 2413 { P(WBR), ATTR_DATA(GEN), SGML_EMPTY, T_WBR}, 2414 { P0(XMP), ATTR_DATA(GEN), SGML_LITTERAL,T_XMP}, 2415 /* additional (alternative variants), not counted in HTML_ELEMENTS: */ 2416 /* This one will be used as a temporary substitute within the parser when 2417 it has been signalled to parse OBJECT content as MIXED. - kw */ 2418 { P(OBJECT), ATTR_DATA(OBJECT), SGML_MIXED, T_OBJECT_PCDATA}, 2419 }; 2420 /* *INDENT-ON* */ 2421 2422 #endif /* src_HTMLDTD_H1 */ 2423