1 /* $Id: html.c,v 1.30 2007/04/19 12:00:38 inu Exp $ */
4 /* Define HTML Tag Infomation Table */
6 #define ATTR_CORE ATTR_ID
8 unsigned char ALST_A[] = {
9 ATTR_NAME, ATTR_HREF, ATTR_REL, ATTR_CHARSET, ATTR_TARGET, ATTR_HSEQ,
11 ATTR_FRAMENAME, ATTR_TITLE, ATTR_ACCESSKEY, ATTR_CORE
13 #define MAXA_A MAXA_CORE + 10
14 unsigned char ALST_P[] = { ATTR_ALIGN, ATTR_CORE };
15 #define MAXA_P MAXA_CORE + 1
16 unsigned char ALST_UL[] = { ATTR_START, ATTR_TYPE, ATTR_CORE };
17 #define MAXA_UL MAXA_CORE + 2
18 unsigned char ALST_LI[] = { ATTR_TYPE, ATTR_VALUE, ATTR_CORE };
19 #define MAXA_LI MAXA_CORE + 2
20 unsigned char ALST_HR[] = { ATTR_WIDTH, ATTR_ALIGN, ATTR_CORE };
21 #define MAXA_HR MAXA_CORE + 2
22 unsigned char ALST_LINK[] = { ATTR_HREF, ATTR_HSEQ, ATTR_REL, ATTR_REV,
23 ATTR_TITLE, ATTR_TYPE, ATTR_CORE
25 #define MAXA_LINK MAXA_CORE + sizeof ALST_LINK/sizeof ALST_LINK[0] - 1
26 unsigned char ALST_DL[] = { ATTR_COMPACT, ATTR_CORE };
27 #define MAXA_DL MAXA_CORE + 1
28 unsigned char ALST_PRE[] = { ATTR_FOR_TABLE, ATTR_CORE };
29 #define MAXA_PRE MAXA_CORE + 1
30 unsigned char ALST_IMG[] =
31 { ATTR_SRC, ATTR_ALT, ATTR_WIDTH, ATTR_HEIGHT, ATTR_ALIGN, ATTR_USEMAP,
32 ATTR_ISMAP, ATTR_TITLE, ATTR_PRE_INT, ATTR_CORE
34 #define MAXA_IMG MAXA_CORE + 9
35 unsigned char ALST_TABLE[] =
36 { ATTR_BORDER, ATTR_WIDTH, ATTR_HBORDER, ATTR_CELLSPACING,
37 ATTR_CELLPADDING, ATTR_VSPACE, ATTR_CORE
39 #define MAXA_TABLE MAXA_CORE + 6
40 unsigned char ALST_META[] = { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CORE };
41 #define MAXA_META MAXA_CORE + 2
42 unsigned char ALST_FRAME[] = { ATTR_SRC, ATTR_NAME, ATTR_CORE };
43 #define MAXA_FRAME MAXA_CORE + 2
44 unsigned char ALST_FRAMESET[] = { ATTR_COLS, ATTR_ROWS, ATTR_CORE };
45 #define MAXA_FRAMESET MAXA_CORE + 2
46 unsigned char ALST_NOFRAMES[] = { ATTR_CORE };
47 #define MAXA_NOFRAMES MAXA_CORE
48 unsigned char ALST_FORM[] =
49 { ATTR_METHOD, ATTR_ACTION, ATTR_CHARSET, ATTR_ACCEPT_CHARSET,
50 ATTR_ENCTYPE, ATTR_TARGET, ATTR_NAME, ATTR_CORE
52 #define MAXA_FORM MAXA_CORE + 7
53 unsigned char ALST_INPUT[] =
54 { ATTR_TYPE, ATTR_VALUE, ATTR_NAME, ATTR_CHECKED, ATTR_ACCEPT, ATTR_SIZE,
55 ATTR_MAXLENGTH, ATTR_ALT, ATTR_READONLY, ATTR_SRC, ATTR_WIDTH, ATTR_HEIGHT,
58 #define MAXA_INPUT MAXA_CORE + 12
59 unsigned char ALST_TEXTAREA[] =
60 { ATTR_COLS, ATTR_ROWS, ATTR_NAME, ATTR_READONLY, ATTR_CORE };
61 #define MAXA_TEXTAREA MAXA_CORE + 4
62 unsigned char ALST_SELECT[] = { ATTR_NAME, ATTR_MULTIPLE, ATTR_CORE };
63 #define MAXA_SELECT MAXA_CORE + 2
64 unsigned char ALST_OPTION[] =
65 { ATTR_VALUE, ATTR_LABEL, ATTR_SELECTED, ATTR_CORE };
66 #define MAXA_OPTION MAXA_CORE + 3
67 unsigned char ALST_ISINDEX[] = { ATTR_ACTION, ATTR_PROMPT, ATTR_CORE };
68 #define MAXA_ISINDEX MAXA_CORE + 2
69 unsigned char ALST_MAP[] = { ATTR_NAME, ATTR_CORE };
70 #define MAXA_MAP MAXA_CORE + 1
71 unsigned char ALST_AREA[] =
72 { ATTR_HREF, ATTR_TARGET, ATTR_ALT, ATTR_SHAPE, ATTR_COORDS, ATTR_CORE };
73 #define MAXA_AREA MAXA_CORE + 5
74 unsigned char ALST_BASE[] = { ATTR_HREF, ATTR_TARGET, ATTR_CORE };
75 #define MAXA_BASE MAXA_CORE + 2
76 unsigned char ALST_BODY[] = { ATTR_BACKGROUND, ATTR_CORE };
77 #define MAXA_BODY MAXA_CORE + 1
78 unsigned char ALST_TR[] = { ATTR_ALIGN, ATTR_VALIGN, ATTR_CORE };
79 #define MAXA_TR MAXA_CORE + 2
80 unsigned char ALST_TD[] =
81 { ATTR_COLSPAN, ATTR_ROWSPAN, ATTR_ALIGN, ATTR_VALIGN, ATTR_WIDTH,
82 ATTR_NOWRAP, ATTR_CORE
84 #define MAXA_TD MAXA_CORE + 6
85 unsigned char ALST_BGSOUND[] = { ATTR_SRC, ATTR_CORE };
86 #define MAX_BGSOUND MAXA_CORE + 1
87 unsigned char ALST_APPLET[] = { ATTR_ARCHIVE, ATTR_CORE };
88 #define MAX_APPLET MAXA_CORE + 1
89 unsigned char ALST_EMBED[] = { ATTR_SRC, ATTR_CORE };
90 #define MAX_EMBED MAXA_CORE + 1
92 unsigned char ALST_TEXTAREA_INT[] = { ATTR_TEXTAREANUMBER };
93 #define MAXA_TEXTAREA_INT 1
94 unsigned char ALST_SELECT_INT[] = { ATTR_SELECTNUMBER };
95 #define MAXA_SELECT_INT 1
96 unsigned char ALST_TABLE_ALT[] = { ATTR_TID };
97 #define MAXA_TABLE_ALT 1
98 unsigned char ALST_SYMBOL[] = { ATTR_TYPE };
100 unsigned char ALST_TITLE_ALT[] = { ATTR_TITLE };
101 #define MAXA_TITLE_ALT 1
102 unsigned char ALST_FORM_INT[] =
103 { ATTR_METHOD, ATTR_ACTION, ATTR_CHARSET, ATTR_ACCEPT_CHARSET,
104 ATTR_ENCTYPE, ATTR_TARGET, ATTR_NAME, ATTR_FID
106 #define MAXA_FORM_INT 8
107 unsigned char ALST_INPUT_ALT[] =
108 { ATTR_HSEQ, ATTR_FID, ATTR_NO_EFFECT, ATTR_TYPE, ATTR_NAME, ATTR_VALUE,
109 ATTR_CHECKED, ATTR_ACCEPT, ATTR_SIZE, ATTR_MAXLENGTH, ATTR_READONLY,
111 ATTR_SELECTNUMBER, ATTR_ROWS, ATTR_TOP_MARGIN, ATTR_BOTTOM_MARGIN
113 #define MAXA_INPUT_ALT 16
114 unsigned char ALST_IMG_ALT[] =
115 { ATTR_SRC, ATTR_WIDTH, ATTR_HEIGHT, ATTR_USEMAP, ATTR_ISMAP, ATTR_HSEQ,
116 ATTR_XOFFSET, ATTR_YOFFSET, ATTR_TOP_MARGIN, ATTR_BOTTOM_MARGIN,
119 #define MAXA_IMG_ALT 11
120 unsigned char ALST_NOP[] = { ATTR_CORE };
121 #define MAXA_NOP MAXA_CORE
123 TagInfo TagMAP[MAX_HTMLTAG] = {
124 {NULL, NULL, 0, 0}, /* 0 HTML_UNKNOWN */
125 {"a", ALST_A, MAXA_A, 0}, /* 1 HTML_A */
126 {"/a", NULL, 0, TFLG_END}, /* 2 HTML_N_A */
127 {"h", ALST_P, MAXA_P, 0}, /* 3 HTML_H */
128 {"/h", NULL, 0, TFLG_END}, /* 4 HTML_N_H */
129 {"p", ALST_P, MAXA_P, 0}, /* 5 HTML_P */
130 {"br", NULL, 0, 0}, /* 6 HTML_BR */
131 {"b", NULL, 0, 0}, /* 7 HTML_B */
132 {"/b", NULL, 0, TFLG_END}, /* 8 HTML_N_B */
133 {"ul", ALST_UL, MAXA_UL, 0}, /* 9 HTML_UL */
134 {"/ul", NULL, 0, TFLG_END}, /* 10 HTML_N_UL */
135 {"li", ALST_LI, MAXA_LI, 0}, /* 11 HTML_LI */
136 {"ol", ALST_UL, MAXA_UL, 0}, /* 12 HTML_OL */
137 {"/ol", NULL, 0, TFLG_END}, /* 13 HTML_N_OL */
138 {"title", NULL, 0, 0}, /* 14 HTML_TITLE */
139 {"/title", NULL, 0, TFLG_END}, /* 15 HTML_N_TITLE */
140 {"hr", ALST_HR, MAXA_HR, 0}, /* 16 HTML_HR */
141 {"dl", ALST_DL, MAXA_DL, 0}, /* 17 HTML_DL */
142 {"/dl", NULL, 0, TFLG_END}, /* 18 HTML_N_DL */
143 {"dt", ALST_NOP, MAXA_NOP, 0}, /* 19 HTML_DT */
144 {"dd", ALST_NOP, MAXA_NOP, 0}, /* 20 HTML_DD */
145 {"pre", ALST_PRE, MAXA_PRE, 0}, /* 21 HTML_PRE */
146 {"/pre", NULL, 0, TFLG_END}, /* 22 HTML_N_PRE */
147 {"blockquote", ALST_NOP, MAXA_NOP, 0}, /* 23 HTML_BLQ */
148 {"/blockquote", NULL, 0, TFLG_END}, /* 24 HTML_N_BLQ */
149 {"img", ALST_IMG, MAXA_IMG, 0}, /* 25 HTML_IMG */
150 {"listing", NULL, 0, 0}, /* 26 HTML_LISTING */
151 {"/listing", NULL, 0, TFLG_END}, /* 27 HTML_N_LISTING */
152 {"xmp", NULL, 0, 0}, /* 28 HTML_XMP */
153 {"/xmp", NULL, 0, TFLG_END}, /* 29 HTML_N_XMP */
154 {"plaintext", NULL, 0, 0}, /* 30 HTML_PLAINTEXT */
155 {"table", ALST_TABLE, MAXA_TABLE, 0}, /* 31 HTML_TABLE */
156 {"/table", NULL, 0, TFLG_END}, /* 32 HTML_N_TABLE */
157 {"meta", ALST_META, MAXA_META, 0}, /* 33 HTML_META */
158 {"/p", NULL, 0, TFLG_END}, /* 34 HTML_N_P */
159 {"frame", ALST_FRAME, MAXA_FRAME, 0}, /* 35 HTML_FRAME */
160 {"frameset", ALST_FRAMESET, MAXA_FRAMESET, 0}, /* 36 HTML_FRAMESET */
161 {"/frameset", NULL, 0, TFLG_END}, /* 37 HTML_N_FRAMESET */
162 {"center", NULL, 0, 0}, /* 38 HTML_CENTER */
163 {"/center", NULL, 0, TFLG_END}, /* 39 HTML_N_CENTER */
164 {"font", NULL, 0, 0}, /* 40 HTML_FONT */
165 {"/font", NULL, 0, TFLG_END}, /* 41 HTML_N_FONT */
166 {"form", ALST_FORM, MAXA_FORM, 0}, /* 42 HTML_FORM */
167 {"/form", NULL, 0, TFLG_END}, /* 43 HTML_N_FORM */
168 {"input", ALST_INPUT, MAXA_INPUT, 0}, /* 44 HTML_INPUT */
169 {"textarea", ALST_TEXTAREA, MAXA_TEXTAREA, 0}, /* 45 HTML_TEXTAREA */
170 {"/textarea", NULL, 0, TFLG_END}, /* 46 HTML_N_TEXTAREA */
171 {"select", ALST_SELECT, MAXA_SELECT, 0}, /* 47 HTML_SELECT */
172 {"/select", NULL, 0, TFLG_END}, /* 48 HTML_N_SELECT */
173 {"option", ALST_OPTION, MAXA_OPTION, 0}, /* 49 HTML_OPTION */
174 {"nobr", NULL, 0, 0}, /* 50 HTML_NOBR */
175 {"/nobr", NULL, 0, TFLG_END}, /* 51 HTML_N_NOBR */
176 {"div", ALST_P, MAXA_P, 0}, /* 52 HTML_DIV */
177 {"/div", NULL, 0, TFLG_END}, /* 53 HTML_N_DIV */
178 {"isindex", ALST_ISINDEX, MAXA_ISINDEX, 0}, /* 54 HTML_ISINDEX */
179 {"map", ALST_MAP, MAXA_MAP, 0}, /* 55 HTML_MAP */
180 {"/map", NULL, 0, TFLG_END}, /* 56 HTML_N_MAP */
181 {"area", ALST_AREA, MAXA_AREA, 0}, /* 57 HTML_AREA */
182 {"script", NULL, 0, 0}, /* 58 HTML_SCRIPT */
183 {"/script", NULL, 0, TFLG_END}, /* 59 HTML_N_SCRIPT */
184 {"base", ALST_BASE, MAXA_BASE, 0}, /* 60 HTML_BASE */
185 {"del", NULL, 0, 0}, /* 61 HTML_DEL */
186 {"/del", NULL, 0, TFLG_END}, /* 62 HTML_N_DEL */
187 {"ins", NULL, 0, 0}, /* 63 HTML_INS */
188 {"/ins", NULL, 0, TFLG_END}, /* 64 HTML_N_INS */
189 {"u", NULL, 0, 0}, /* 65 HTML_U */
190 {"/u", NULL, 0, TFLG_END}, /* 66 HTML_N_U */
191 {"style", NULL, 0, 0}, /* 67 HTML_STYLE */
192 {"/style", NULL, 0, TFLG_END}, /* 68 HTML_N_STYLE */
193 {"wbr", NULL, 0, 0}, /* 69 HTML_WBR */
194 {"em", NULL, 0, 0}, /* 70 HTML_EM */
195 {"/em", NULL, 0, TFLG_END}, /* 71 HTML_N_EM */
196 {"body", ALST_BODY, MAXA_BODY, 0}, /* 72 HTML_BODY */
197 {"/body", NULL, 0, TFLG_END}, /* 73 HTML_N_BODY */
198 {"tr", ALST_TR, MAXA_TR, 0}, /* 74 HTML_TR */
199 {"/tr", NULL, 0, TFLG_END}, /* 75 HTML_N_TR */
200 {"td", ALST_TD, MAXA_TD, 0}, /* 76 HTML_TD */
201 {"/td", NULL, 0, TFLG_END}, /* 77 HTML_N_TD */
202 {"caption", ALST_NOP, MAXA_NOP, 0}, /* 78 HTML_CAPTION */
203 {"/caption", NULL, 0, TFLG_END}, /* 79 HTML_N_CAPTION */
204 {"th", ALST_TD, MAXA_TD, 0}, /* 80 HTML_TH */
205 {"/th", NULL, 0, TFLG_END}, /* 81 HTML_N_TH */
206 {"thead", NULL, 0, 0}, /* 82 HTML_THEAD */
207 {"/thead", NULL, 0, TFLG_END}, /* 83 HTML_N_THEAD */
208 {"tbody", NULL, 0, 0}, /* 84 HTML_TBODY */
209 {"/tbody", NULL, 0, TFLG_END}, /* 85 HTML_N_TBODY */
210 {"tfoot", NULL, 0, 0}, /* 86 HTML_TFOOT */
211 {"/tfoot", NULL, 0, TFLG_END}, /* 87 HTML_N_TFOOT */
212 {"colgroup", NULL, 0, 0}, /* 88 HTML_COLGROUP */
213 {"/colgroup", NULL, 0, TFLG_END}, /* 89 HTML_N_COLGROUP */
214 {"col", NULL, 0, 0}, /* 90 HTML_COL */
215 {"bgsound", ALST_BGSOUND, MAX_BGSOUND, 0}, /* 91 HTML_BGSOUND */
216 {"applet", ALST_APPLET, MAX_APPLET, 0}, /* 92 HTML_APPLET */
217 {"embed", ALST_EMBED, MAX_EMBED, 0}, /* 93 HTML_EMBED */
218 {"/option", NULL, 0, TFLG_END}, /* 94 HTML_N_OPTION */
219 {"head", NULL, 0, 0}, /* 95 HTML_HEAD */
220 {"/head", NULL, 0, TFLG_END}, /* 96 HTML_N_HEAD */
221 {"doctype", NULL, 0, 0}, /* 97 HTML_DOCTYPE */
222 {"noframes", ALST_NOFRAMES, MAXA_NOFRAMES, 0}, /* 98 HTML_NOFRAMES */
223 {"/noframes", NULL, 0, TFLG_END}, /* 99 HTML_N_NOFRAMES */
225 {"sup", NULL, 0, 0}, /* 100 HTML_SUP */
226 {"/sup", NULL, 0, 0}, /* 101 HTML_N_SUP */
227 {"sub", NULL, 0, 0}, /* 102 HTML_SUB */
228 {"/sub", NULL, 0, 0}, /* 103 HTML_N_SUB */
229 {"link", ALST_LINK, MAXA_LINK, 0}, /* 104 HTML_LINK */
230 {"s", NULL, 0, 0}, /* 105 HTML_S */
231 {"/s", NULL, 0, TFLG_END}, /* 106 HTML_N_S */
232 {"q", NULL, 0, 0}, /* 107 HTML_Q */
233 {"/q", NULL, 0, TFLG_END}, /* 108 HTML_N_Q */
234 {"i", NULL, 0, 0}, /* 109 HTML_I */
235 {"/i", NULL, 0, TFLG_END}, /* 110 HTML_N_I */
236 {"strong", NULL, 0, 0}, /* 111 HTML_STRONG */
237 {"/strong", NULL, 0, TFLG_END}, /* 112 HTML_N_STRONG */
238 {NULL, NULL, 0, 0}, /* 113 Undefined */
239 {NULL, NULL, 0, 0}, /* 114 Undefined */
240 {NULL, NULL, 0, 0}, /* 115 Undefined */
241 {NULL, NULL, 0, 0}, /* 116 Undefined */
242 {NULL, NULL, 0, 0}, /* 117 Undefined */
243 {NULL, NULL, 0, 0}, /* 118 Undefined */
244 {NULL, NULL, 0, 0}, /* 119 Undefined */
247 {"select_int", ALST_SELECT_INT, MAXA_SELECT_INT, TFLG_INT}, /* 120 HTML_SELECT_INT */
248 {"/select_int", NULL, 0, TFLG_INT | TFLG_END}, /* 121 HTML_N_SELECT_INT */
249 {"option_int", ALST_OPTION, MAXA_OPTION, TFLG_INT}, /* 122 HTML_OPTION_INT */
250 {"textarea_int", ALST_TEXTAREA_INT, MAXA_TEXTAREA_INT, TFLG_INT}, /* 123 HTML_TEXTAREA_INT */
251 {"/textarea_int", NULL, 0, TFLG_INT | TFLG_END}, /* 124 HTML_N_TEXTAREA_INT */
252 {"table_alt", ALST_TABLE_ALT, MAXA_TABLE_ALT, TFLG_INT}, /* 125 HTML_TABLE_ALT */
253 {"symbol", ALST_SYMBOL, MAXA_SYMBOL, TFLG_INT}, /* 126 HTML_SYMBOL */
254 {"/symbol", NULL, 0, TFLG_INT | TFLG_END}, /* 127 HTML_N_SYMBOL */
255 {"pre_int", NULL, 0, TFLG_INT}, /* 128 HTML_PRE_INT */
256 {"/pre_int", NULL, 0, TFLG_INT | TFLG_END}, /* 129 HTML_N_PRE_INT */
257 {"title_alt", ALST_TITLE_ALT, MAXA_TITLE_ALT, TFLG_INT}, /* 130 HTML_TITLE_ALT */
258 {"form_int", ALST_FORM_INT, MAXA_FORM_INT, TFLG_INT}, /* 131 HTML_FORM_INT */
259 {"/form_int", NULL, 0, TFLG_INT | TFLG_END}, /* 132 HTML_N_FORM_INT */
260 {"dl_compact", NULL, 0, TFLG_INT}, /* 133 HTML_DL_COMPACT */
261 {"input_alt", ALST_INPUT_ALT, MAXA_INPUT_ALT, TFLG_INT}, /* 134 HTML_INPUT_ALT */
262 {"/input_alt", NULL, 0, TFLG_INT | TFLG_END}, /* 135 HTML_N_INPUT_ALT */
263 {"img_alt", ALST_IMG_ALT, MAXA_IMG_ALT, TFLG_INT}, /* 136 HTML_IMG_ALT */
264 {"/img_alt", NULL, 0, TFLG_INT | TFLG_END}, /* 137 HTML_N_IMG_ALT */
265 {" ", ALST_NOP, MAXA_NOP, TFLG_INT}, /* 138 HTML_NOP */
266 {"pre_plain", NULL, 0, TFLG_INT}, /* 139 HTML_PRE_PLAIN */
267 {"/pre_plain", NULL, 0, TFLG_INT | TFLG_END}, /* 140 HTML_N_PRE_PLAIN */
268 {"internal", NULL, 0, TFLG_INT}, /* 141 HTML_INTERNAL */
269 {"/internal", NULL, 0, TFLG_INT | TFLG_END}, /* 142 HTML_N_INTERNAL */
270 {"div_int", ALST_P, MAXA_P, TFLG_INT}, /* 143 HTML_DIV_INT */
271 {"/div_int", NULL, 0, TFLG_INT | TFLG_END}, /* 144 HTML_N_DIV_INT */
274 TagAttrInfo AttrMAP[MAX_TAGATTR] = {
275 {NULL, VTYPE_NONE, 0}, /* 0 ATTR_UNKNOWN */
276 {"accept", VTYPE_NONE, 0}, /* 1 ATTR_ACCEPT */
277 {"accept-charset", VTYPE_STR, 0}, /* 2 ATTR_ACCEPT_CHARSET */
278 {"action", VTYPE_ACTION, 0}, /* 3 ATTR_ACTION */
279 {"align", VTYPE_ALIGN, 0}, /* 4 ATTR_ALIGN */
280 {"alt", VTYPE_STR, 0}, /* 5 ATTR_ALT */
281 {"archive", VTYPE_STR, 0}, /* 6 ATTR_ARCHIVE */
282 {"background", VTYPE_STR, 0}, /* 7 ATTR_BACKGROUND */
283 {"border", VTYPE_NUMBER, 0}, /* 8 ATTR_BORDER */
284 {"cellpadding", VTYPE_NUMBER, 0}, /* 9 ATTR_CELLPADDING */
285 {"cellspacing", VTYPE_NUMBER, 0}, /* 10 ATTR_CELLSPACING */
286 {"charset", VTYPE_STR, 0}, /* 11 ATTR_CHARSET */
287 {"checked", VTYPE_NONE, 0}, /* 12 ATTR_CHECKED */
288 {"cols", VTYPE_MLENGTH, 0}, /* 13 ATTR_COLS */
289 {"colspan", VTYPE_NUMBER, 0}, /* 14 ATTR_COLSPAN */
290 {"content", VTYPE_STR, 0}, /* 15 ATTR_CONTENT */
291 {"enctype", VTYPE_ENCTYPE, 0}, /* 16 ATTR_ENCTYPE */
292 {"height", VTYPE_LENGTH, 0}, /* 17 ATTR_HEIGHT */
293 {"href", VTYPE_STR, 0}, /* 18 ATTR_HREF */
294 {"http-equiv", VTYPE_STR, 0}, /* 19 ATTR_HTTP_EQUIV */
295 {"id", VTYPE_STR, 0}, /* 20 ATTR_ID */
296 {"link", VTYPE_STR, 0}, /* 21 ATTR_LINK */
297 {"maxlength", VTYPE_NUMBER, 0}, /* 22 ATTR_MAXLENGTH */
298 {"method", VTYPE_METHOD, 0}, /* 23 ATTR_METHOD */
299 {"multiple", VTYPE_NONE, 0}, /* 24 ATTR_MULTIPLE */
300 {"name", VTYPE_STR, 0}, /* 25 ATTR_NAME */
301 {"nowrap", VTYPE_NONE, 0}, /* 26 ATTR_NOWRAP */
302 {"prompt", VTYPE_STR, 0}, /* 27 ATTR_PROMPT */
303 {"rows", VTYPE_MLENGTH, 0}, /* 28 ATTR_ROWS */
304 {"rowspan", VTYPE_NUMBER, 0}, /* 29 ATTR_ROWSPAN */
305 {"size", VTYPE_NUMBER, 0}, /* 30 ATTR_SIZE */
306 {"src", VTYPE_STR, 0}, /* 31 ATTR_SRC */
307 {"target", VTYPE_STR, 0}, /* 32 ATTR_TARGET */
308 {"type", VTYPE_TYPE, 0}, /* 33 ATTR_TYPE */
309 {"usemap", VTYPE_STR, 0}, /* 34 ATTR_USEMAP */
310 {"valign", VTYPE_VALIGN, 0}, /* 35 ATTR_VALIGN */
311 {"value", VTYPE_STR, 0}, /* 36 ATTR_VALUE */
312 {"vspace", VTYPE_NUMBER, 0}, /* 37 ATTR_VSPACE */
313 {"width", VTYPE_LENGTH, 0}, /* 38 ATTR_WIDTH */
314 {"compact", VTYPE_NONE, 0}, /* 39 ATTR_COMPACT */
315 {"start", VTYPE_NUMBER, 0}, /* 40 ATTR_START */
316 {"selected", VTYPE_NONE, 0}, /* 41 ATTR_SELECTED */
317 {"label", VTYPE_STR, 0}, /* 42 ATTR_LABEL */
318 {"readonly", VTYPE_NONE, 0}, /* 43 ATTR_READONLY */
319 {"shape", VTYPE_STR, 0}, /* 44 ATTR_SHAPE */
320 {"coords", VTYPE_STR, 0}, /* 45 ATTR_COORDS */
321 {"ismap", VTYPE_NONE, 0}, /* 46 ATTR_ISMAP */
322 {"rel", VTYPE_STR, 0}, /* 47 ATTR_REL */
323 {"rev", VTYPE_STR, 0}, /* 48 ATTR_REV */
324 {"title", VTYPE_STR, 0}, /* 49 ATTR_TITLE */
325 {"accesskey", VTYPE_STR, 0}, /* 50 ATTR_ACCESSKEY */
326 {NULL, VTYPE_NONE, 0}, /* 51 Undefined */
327 {NULL, VTYPE_NONE, 0}, /* 52 Undefined */
328 {NULL, VTYPE_NONE, 0}, /* 53 Undefined */
329 {NULL, VTYPE_NONE, 0}, /* 54 Undefined */
330 {NULL, VTYPE_NONE, 0}, /* 55 Undefined */
331 {NULL, VTYPE_NONE, 0}, /* 56 Undefined */
332 {NULL, VTYPE_NONE, 0}, /* 57 Undefined */
333 {NULL, VTYPE_NONE, 0}, /* 58 Undefined */
334 {NULL, VTYPE_NONE, 0}, /* 59 Undefined */
336 /* Internal attribute */
337 {"xoffset", VTYPE_NUMBER, AFLG_INT}, /* 60 ATTR_XOFFSET */
338 {"yoffset", VTYPE_NUMBER, AFLG_INT}, /* 61 ATTR_YOFFSET */
339 {"top_margin", VTYPE_NUMBER, AFLG_INT}, /* 62 ATTR_TOP_MARGIN, */
340 {"bottom_margin", VTYPE_NUMBER, AFLG_INT}, /* 63 ATTR_BOTTOM_MARGIN, */
341 {"tid", VTYPE_NUMBER, AFLG_INT}, /* 64 ATTR_TID */
342 {"fid", VTYPE_NUMBER, AFLG_INT}, /* 65 ATTR_FID */
343 {"for_table", VTYPE_NONE, AFLG_INT}, /* 66 ATTR_FOR_TABLE */
344 {"framename", VTYPE_STR, AFLG_INT}, /* 67 ATTR_FRAMENAME */
345 {"hborder", VTYPE_NONE, 0}, /* 68 ATTR_HBORDER */
346 {"hseq", VTYPE_NUMBER, AFLG_INT}, /* 69 ATTR_HSEQ */
347 {"no_effect", VTYPE_NONE, AFLG_INT}, /* 70 ATTR_NO_EFFECT */
348 {"referer", VTYPE_STR, AFLG_INT}, /* 71 ATTR_REFERER */
349 {"selectnumber", VTYPE_NUMBER, AFLG_INT}, /* 72 ATTR_SELECTNUMBER */
350 {"textareanumber", VTYPE_NUMBER, AFLG_INT}, /* 73 ATTR_TEXTAREANUMBER */
351 {"pre_int", VTYPE_NONE, AFLG_INT}, /* 74 ATTR_PRE_INT */