blob: 759d1267cd880407f754e889aa51402c274b05b2 [file] [log] [blame]
Bram Moolenaarf75a9632005-09-13 21:20:47 +00001" Vim completion script
2" Language: XHTML 1.0 Strict
3" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
Bram Moolenaare0fa5602006-03-19 22:08:37 +00004" Last Change: 2006 Mar 19
Bram Moolenaarf75a9632005-09-13 21:20:47 +00005
6function! htmlcomplete#CompleteTags(findstart, base)
7 if a:findstart
8 " locate the start of the word
9 let line = getline('.')
10 let start = col('.') - 1
Bram Moolenaar28c258f2006-01-25 22:02:51 +000011 let curline = line('.')
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000012 let compl_begin = col('.') - 2
13 while start >= 0 && line[start - 1] =~ '\(\k\|[:.-]\)'
14 let start -= 1
Bram Moolenaarf75a9632005-09-13 21:20:47 +000015 endwhile
Bram Moolenaar8b6144b2006-02-08 09:20:24 +000016 " Handling of entities {{{
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000017 if start >= 0 && line[start - 1] =~ '&'
18 let b:entitiescompl = 1
19 let b:compl_context = ''
20 return start
21 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +000022 " }}}
23 " Handling of <style> tag {{{
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000024 let stylestart = searchpair('<style\>', '', '<\/style\>', "bnW")
25 let styleend = searchpair('<style\>', '', '<\/style\>', "nW")
26 if stylestart != 0 && styleend != 0
Bram Moolenaar28c258f2006-01-25 22:02:51 +000027 if stylestart <= curline && styleend >= curline
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000028 let start = col('.') - 1
29 let b:csscompl = 1
30 while start >= 0 && line[start - 1] =~ '\(\k\|-\)'
31 let start -= 1
32 endwhile
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000033 endif
34 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +000035 " }}}
36 " Handling of <script> tag {{{
Bram Moolenaarb8a7b562006-02-01 21:47:16 +000037 let scriptstart = searchpair('<script\>', '', '<\/script\>', "bnW")
38 let scriptend = searchpair('<script\>', '', '<\/script\>', "nW")
39 if scriptstart != 0 && scriptend != 0
40 if scriptstart <= curline && scriptend >= curline
41 let start = col('.') - 1
42 let b:jscompl = 1
43 let b:jsrange = [scriptstart, scriptend]
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +000044 while start >= 0 && line[start - 1] =~ '\k'
Bram Moolenaarb8a7b562006-02-01 21:47:16 +000045 let start -= 1
46 endwhile
Bram Moolenaar8b6144b2006-02-08 09:20:24 +000047 " We are inside of <script> tag. But we should also get contents
48 " of all linked external files and (secondary, less probably) other <script> tags
49 " This logic could possible be done in separate function - may be
50 " reused in events scripting (also with option could be reused for
51 " CSS
52 let b:js_extfiles = []
53 let l = line('.')
54 let c = col('.')
55 call cursor(1,1)
56 while search('<\@<=script\>', 'W') && line('.') <= l
57 if synIDattr(synID(line('.'),col('.')-1,0),"name") !~? 'comment'
58 let sname = matchstr(getline('.'), '<script[^>]*src\s*=\s*\([''"]\)\zs.\{-}\ze\1')
59 if filereadable(sname)
60 let b:js_extfiles += readfile(sname)
61 endif
62 endif
63 endwhile
64 call cursor(1,1)
65 let js_scripttags = []
66 while search('<script\>', 'W') && line('.') < l
67 if matchstr(getline('.'), '<script[^>]*src') == ''
68 let js_scripttag = getline(line('.'), search('</script>', 'W'))
69 let js_scripttags += js_scripttag
70 endif
71 endwhile
72 let b:js_extfiles += js_scripttags
73 call cursor(l,c)
74 unlet! l c
Bram Moolenaarb8a7b562006-02-01 21:47:16 +000075 endif
76 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +000077 " }}}
Bram Moolenaarb8a7b562006-02-01 21:47:16 +000078 if !exists("b:csscompl") && !exists("b:jscompl")
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000079 let b:compl_context = getline('.')[0:(compl_begin)]
Bram Moolenaar28c258f2006-01-25 22:02:51 +000080 if b:compl_context !~ '<[^>]*$'
Bram Moolenaar8b6144b2006-02-08 09:20:24 +000081 " Look like we may have broken tag. Check previous lines.
Bram Moolenaar28c258f2006-01-25 22:02:51 +000082 let i = 1
83 while 1
84 let context_line = getline(curline-i)
85 if context_line =~ '<[^>]*$'
86 " Yep, this is this line
87 let context_lines = getline(curline-i, curline)
88 let b:compl_context = join(context_lines, ' ')
89 break
Bram Moolenaare0fa5602006-03-19 22:08:37 +000090 elseif context_line =~ '>[^<]*$' || i == curline
91 " We are in normal tag line, no need for completion at all
92 " OR reached first line without tag at all
Bram Moolenaar28c258f2006-01-25 22:02:51 +000093 let b:compl_context = ''
94 break
95 endif
96 let i += 1
Bram Moolenaare0fa5602006-03-19 22:08:37 +000097 " We reached first line and no tag approached
98 " Prevents endless loop
99 "if i > curline
100 "let b:compl_context = ''
101 "break
102 "endif
Bram Moolenaar28c258f2006-01-25 22:02:51 +0000103 endwhile
104 " Make sure we don't have counter
105 unlet! i
106 endif
Bram Moolenaar09df3122006-01-23 22:23:09 +0000107 let b:compl_context = matchstr(b:compl_context, '.*\zs<.*')
Bram Moolenaare0fa5602006-03-19 22:08:37 +0000108
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000109 " Return proper start for on-events. Without that beginning of
110 " completion will be badly reported
111 if b:compl_context =~? 'on[a-z]*\s*=\s*\(''[^'']*\|"[^"]*\)$'
112 let start = col('.') - 1
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000113 while start >= 0 && line[start - 1] =~ '\k'
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000114 let start -= 1
115 endwhile
116 endif
Bram Moolenaare0fa5602006-03-19 22:08:37 +0000117 " If b:compl_context begins with <? we are inside of PHP code. It
118 " wasn't closed so PHP completion passed it to HTML
119 if &filetype =~? 'php' && b:compl_context =~ '^<?'
120 let b:phpcompl = 1
121 let start = col('.') - 1
122 while start >= 0 && line[start - 1] =~ '[a-zA-Z_0-9\x7f-\xff$]'
123 let start -= 1
124 endwhile
125 endif
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000126 else
127 let b:compl_context = getline('.')[0:compl_begin]
128 endif
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000129 return start
130 else
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000131 " Initialize base return lists
132 let res = []
133 let res2 = []
134 " a:base is very short - we need context
135 let context = b:compl_context
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000136 " Check if we should do CSS completion inside of <style> tag
Bram Moolenaare0fa5602006-03-19 22:08:37 +0000137 " or JS completion inside of <script> tag or PHP completion in case of <?
138 " tag AND &ft==php
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000139 if exists("b:csscompl")
140 unlet! b:csscompl
Bram Moolenaar09df3122006-01-23 22:23:09 +0000141 let context = b:compl_context
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000142 unlet! b:compl_context
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000143 return csscomplete#CompleteCSS(0, context)
Bram Moolenaarb8a7b562006-02-01 21:47:16 +0000144 elseif exists("b:jscompl")
145 unlet! b:jscompl
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000146 return javascriptcomplete#CompleteJS(0, a:base)
Bram Moolenaare0fa5602006-03-19 22:08:37 +0000147 elseif exists("b:phpcompl")
148 unlet! b:phpcompl
149 let context = b:compl_context
150 return phpcomplete#CompletePHP(0, a:base)
Bram Moolenaar09df3122006-01-23 22:23:09 +0000151 else
152 if len(b:compl_context) == 0 && !exists("b:entitiescompl")
153 return []
154 endif
155 let context = matchstr(b:compl_context, '.\zs.*')
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000156 endif
Bram Moolenaar09df3122006-01-23 22:23:09 +0000157 unlet! b:compl_context
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000158 " Entities completion {{{
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000159 if exists("b:entitiescompl")
160 unlet! b:entitiescompl
161
Bram Moolenaara5792f52005-11-23 21:25:05 +0000162 if !exists("g:xmldata_xhtml10s")
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000163 "runtime! autoload/xml/xhtml10s.vim
164 call htmlcomplete#LoadData()
Bram Moolenaara5792f52005-11-23 21:25:05 +0000165 endif
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000166
Bram Moolenaara5792f52005-11-23 21:25:05 +0000167 let entities = g:xmldata_xhtml10s['vimxmlentities']
168
Bram Moolenaar09df3122006-01-23 22:23:09 +0000169 if len(a:base) == 1
170 for m in entities
171 if m =~ '^'.a:base
172 call add(res, m.';')
173 endif
174 endfor
175 return res
176 else
177 for m in entities
178 if m =~? '^'.a:base
179 call add(res, m.';')
180 elseif m =~? a:base
181 call add(res2, m.';')
182 endif
183 endfor
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000184
Bram Moolenaar09df3122006-01-23 22:23:09 +0000185 return res + res2
186 endif
187
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000188
189 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000190 " }}}
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000191 if context =~ '>'
192 " Generally if context contains > it means we are outside of tag and
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000193 " should abandon action - with one exception: <style> span { bo
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000194 if context =~ 'style[^>]\{-}>[^<]\{-}$'
195 return csscomplete#CompleteCSS(0, context)
Bram Moolenaarb8a7b562006-02-01 21:47:16 +0000196 elseif context =~ 'script[^>]\{-}>[^<]\{-}$'
197 let b:jsrange = [line('.'), search('<\/script\>', 'nW')]
198 return javascriptcomplete#CompleteJS(0, context)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000199 else
200 return []
201 endif
202 endif
203
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000204 " If context contains > it means we are already outside of tag and we
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000205 " should abandon action
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000206 " If context contains white space it is attribute.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000207 " It can be also value of attribute.
208 " We have to get first word to offer proper completions
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000209 if context == ''
210 let tag = ''
211 else
212 let tag = split(context)[0]
213 endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000214 " Get last word, it should be attr name
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000215 let attr = matchstr(context, '.*\s\zs.*')
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000216 " Possible situations where any prediction would be difficult:
217 " 1. Events attributes
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000218 if context =~ '\s'
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000219 " Sort out style, class, and on* cases
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000220 if context =~? "\\(on[a-z]*\\|id\\|style\\|class\\)\\s*=\\s*[\"']"
221 " Id, class completion {{{
222 if context =~? "\\(id\\|class\\)\\s*=\\s*[\"'][a-zA-Z0-9_ -]*$"
223 if context =~? "class\\s*=\\s*[\"'][a-zA-Z0-9_ -]*$"
Bram Moolenaar1e015462005-09-25 22:16:38 +0000224 let search_for = "class"
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000225 elseif context =~? "id\\s*=\\s*[\"'][a-zA-Z0-9_ -]*$"
Bram Moolenaar1e015462005-09-25 22:16:38 +0000226 let search_for = "id"
227 endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000228 " Handle class name completion
229 " 1. Find lines of <link stylesheet>
230 " 1a. Check file for @import
231 " 2. Extract filename(s?) of stylesheet,
232 call cursor(1,1)
233 let head = getline(search('<head\>'), search('<\/head>'))
234 let headjoined = join(copy(head), ' ')
235 if headjoined =~ '<style'
Bram Moolenaara5792f52005-11-23 21:25:05 +0000236 " Remove possibly confusing CSS operators
Bram Moolenaar1e015462005-09-25 22:16:38 +0000237 let stylehead = substitute(headjoined, '+>\*[,', ' ', 'g')
238 if search_for == 'class'
239 let styleheadlines = split(stylehead)
240 let headclasslines = filter(copy(styleheadlines), "v:val =~ '\\([a-zA-Z0-9:]\\+\\)\\?\\.[a-zA-Z0-9_-]\\+'")
241 else
242 let stylesheet = split(headjoined, '[{}]')
243 " Get all lines which fit id syntax
244 let classlines = filter(copy(stylesheet), "v:val =~ '#[a-zA-Z0-9_-]\\+'")
245 " Filter out possible color definitions
246 call filter(classlines, "v:val !~ ':\\s*#[a-zA-Z0-9_-]\\+'")
247 " Filter out complex border definitions
248 call filter(classlines, "v:val !~ '\\(none\\|hidden\\|dotted\\|dashed\\|solid\\|double\\|groove\\|ridge\\|inset\\|outset\\)\\s*#[a-zA-Z0-9_-]\\+'")
249 let templines = join(classlines, ' ')
250 let headclasslines = split(templines)
251 call filter(headclasslines, "v:val =~ '#[a-zA-Z0-9_-]\\+'")
252 endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000253 let internal = 1
254 else
255 let internal = 0
256 endif
257 let styletable = []
258 let secimportfiles = []
259 let filestable = filter(copy(head), "v:val =~ '\\(@import\\|link.*stylesheet\\)'")
260 for line in filestable
261 if line =~ "@import"
262 let styletable += [matchstr(line, "import\\s\\+\\(url(\\)\\?[\"']\\?\\zs\\f\\+\\ze")]
263 elseif line =~ "<link"
264 let styletable += [matchstr(line, "href\\s*=\\s*[\"']\\zs\\f\\+\\ze")]
265 endif
266 endfor
Bram Moolenaar1e015462005-09-25 22:16:38 +0000267 for file in styletable
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000268 if filereadable(file)
269 let stylesheet = readfile(file)
270 let secimport = filter(copy(stylesheet), "v:val =~ '@import'")
271 if len(secimport) > 0
272 for line in secimport
Bram Moolenaar1e015462005-09-25 22:16:38 +0000273 let secfile = matchstr(line, "import\\s\\+\\(url(\\)\\?[\"']\\?\\zs\\f\\+\\ze")
274 let secfile = fnamemodify(file, ":p:h").'/'.secfile
275 let secimportfiles += [secfile]
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000276 endfor
277 endif
278 endif
279 endfor
280 let cssfiles = styletable + secimportfiles
281 let classes = []
282 for file in cssfiles
283 if filereadable(file)
284 let stylesheet = readfile(file)
Bram Moolenaar1e015462005-09-25 22:16:38 +0000285 let stylefile = join(stylesheet, ' ')
286 let stylefile = substitute(stylefile, '+>\*[,', ' ', 'g')
287 if search_for == 'class'
288 let stylesheet = split(stylefile)
289 let classlines = filter(copy(stylesheet), "v:val =~ '\\([a-zA-Z0-9:]\\+\\)\\?\\.[a-zA-Z0-9_-]\\+'")
290 else
291 let stylesheet = split(stylefile, '[{}]')
292 " Get all lines which fit id syntax
293 let classlines = filter(copy(stylesheet), "v:val =~ '#[a-zA-Z0-9_-]\\+'")
294 " Filter out possible color definitions
295 call filter(classlines, "v:val !~ ':\\s*#[a-zA-Z0-9_-]\\+'")
296 " Filter out complex border definitions
297 call filter(classlines, "v:val !~ '\\(none\\|hidden\\|dotted\\|dashed\\|solid\\|double\\|groove\\|ridge\\|inset\\|outset\\)\\s*#[a-zA-Z0-9_-]\\+'")
298 let templines = join(classlines, ' ')
299 let stylelines = split(templines)
300 let classlines = filter(stylelines, "v:val =~ '#[a-zA-Z0-9_-]\\+'")
301
302 endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000303 endif
304 " We gathered classes definitions from all external files
305 let classes += classlines
306 endfor
307 if internal == 1
308 let classes += headclasslines
309 endif
Bram Moolenaar1e015462005-09-25 22:16:38 +0000310
311 if search_for == 'class'
312 let elements = {}
313 for element in classes
314 if element =~ '^\.'
315 let class = matchstr(element, '^\.\zs[a-zA-Z][a-zA-Z0-9_-]*\ze')
316 let class = substitute(class, ':.*', '', '')
317 if has_key(elements, 'common')
318 let elements['common'] .= ' '.class
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000319 else
Bram Moolenaar1e015462005-09-25 22:16:38 +0000320 let elements['common'] = class
321 endif
322 else
323 let class = matchstr(element, '[a-zA-Z1-6]*\.\zs[a-zA-Z][a-zA-Z0-9_-]*\ze')
324 let tagname = tolower(matchstr(element, '[a-zA-Z1-6]*\ze.'))
325 if tagname != ''
326 if has_key(elements, tagname)
327 let elements[tagname] .= ' '.class
328 else
329 let elements[tagname] = class
330 endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000331 endif
332 endif
Bram Moolenaar1e015462005-09-25 22:16:38 +0000333 endfor
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000334
Bram Moolenaar1e015462005-09-25 22:16:38 +0000335 if has_key(elements, tag) && has_key(elements, 'common')
336 let values = split(elements[tag]." ".elements['common'])
337 elseif has_key(elements, tag) && !has_key(elements, 'common')
338 let values = split(elements[tag])
339 elseif !has_key(elements, tag) && has_key(elements, 'common')
340 let values = split(elements['common'])
341 else
342 return []
343 endif
344
345 elseif search_for == 'id'
346 " Find used IDs
347 " 1. Catch whole file
348 let filelines = getline(1, line('$'))
349 " 2. Find lines with possible id
350 let used_id_lines = filter(filelines, 'v:val =~ "id\\s*=\\s*[\"''][a-zA-Z0-9_-]\\+"')
351 " 3a. Join all filtered lines
352 let id_string = join(used_id_lines, ' ')
353 " 3b. And split them to be sure each id is in separate item
354 let id_list = split(id_string, 'id\s*=\s*')
355 " 4. Extract id values
356 let used_id = map(id_list, 'matchstr(v:val, "[\"'']\\zs[a-zA-Z0-9_-]\\+\\ze")')
357 let joined_used_id = ','.join(used_id, ',').','
358
359 let allvalues = map(classes, 'matchstr(v:val, ".*#\\zs[a-zA-Z0-9_-]\\+")')
360
361 let values = []
362
363 for element in classes
364 if joined_used_id !~ ','.element.','
365 let values += [element]
366 endif
367
368 endfor
369
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000370 endif
371
372 " We need special version of sbase
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000373 let classbase = matchstr(context, ".*[\"']")
Bram Moolenaar1e015462005-09-25 22:16:38 +0000374 let classquote = matchstr(classbase, '.$')
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000375
376 let entered_class = matchstr(attr, ".*=\\s*[\"']\\zs.*")
377
378 for m in sort(values)
379 if m =~? '^'.entered_class
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000380 call add(res, m . classquote)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000381 elseif m =~? entered_class
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000382 call add(res2, m . classquote)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000383 endif
384 endfor
385
386 return res + res2
387
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000388 elseif context =~? "style\\s*=\\s*[\"'][^\"']*$"
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000389 return csscomplete#CompleteCSS(0, context)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000390
391 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000392 " }}}
393 " Complete on-events {{{
394 if context =~? 'on[a-z]*\s*=\s*\(''[^'']*\|"[^"]*\)$'
395 " We have to:
396 " 1. Find external files
397 let b:js_extfiles = []
398 let l = line('.')
399 let c = col('.')
400 call cursor(1,1)
401 while search('<\@<=script\>', 'W') && line('.') <= l
402 if synIDattr(synID(line('.'),col('.')-1,0),"name") !~? 'comment'
403 let sname = matchstr(getline('.'), '<script[^>]*src\s*=\s*\([''"]\)\zs.\{-}\ze\1')
404 if filereadable(sname)
405 let b:js_extfiles += readfile(sname)
406 endif
407 endif
408 endwhile
409 " 2. Find at least one <script> tag
410 call cursor(1,1)
411 let js_scripttags = []
412 while search('<script\>', 'W') && line('.') < l
413 if matchstr(getline('.'), '<script[^>]*src') == ''
414 let js_scripttag = getline(line('.'), search('</script>', 'W'))
415 let js_scripttags += js_scripttag
416 endif
417 endwhile
418 let b:js_extfiles += js_scripttags
419
420 " 3. Proper call for javascriptcomplete#CompleteJS
421 call cursor(l,c)
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000422 let js_context = matchstr(a:base, '\k\+$')
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000423 let js_shortcontext = substitute(a:base, js_context.'$', '', '')
424 let b:compl_context = context
425 let b:jsrange = [l, l]
426 unlet! l c
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000427 return javascriptcomplete#CompleteJS(0, js_context)
428
429 endif
430
431 " }}}
432 let stripbase = matchstr(context, ".*\\(on[a-zA-Z]*\\|style\\|class\\)\\s*=\\s*[\"']\\zs.*")
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000433 " Now we have context stripped from all chars up to style/class.
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000434 " It may fail with some strange style value combinations.
435 if stripbase !~ "[\"']"
436 return []
437 endif
438 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000439 " Value of attribute completion {{{
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000440 " If attr contains =\s*[\"'] we catched value of attribute
441 if attr =~ "=\s*[\"']"
442 " Let do attribute specific completion
443 let attrname = matchstr(attr, '.*\ze\s*=')
444 let entered_value = matchstr(attr, ".*=\\s*[\"']\\zs.*")
445 let values = []
446 if attrname == 'media'
447 let values = ["screen", "tty", "tv", "projection", "handheld", "print", "braille", "aural", "all"]
448 elseif attrname == 'xml:space'
449 let values = ["preserve"]
450 elseif attrname == 'shape'
Bram Moolenaar8349fd72005-10-12 20:52:20 +0000451 let values = ["rect", "circle", "poly", "default"]
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000452 elseif attrname == 'valuetype'
453 let values = ["data", "ref", "object"]
454 elseif attrname == 'method'
455 let values = ["get", "post"]
Bram Moolenaar4c903f92005-09-14 21:32:32 +0000456 elseif attrname == 'dir'
457 let values = ["ltr", "rtl"]
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000458 elseif attrname == 'frame'
459 let values = ["void", "above", "below", "hsides", "lhs", "rhs", "vsides", "box", "border"]
460 elseif attrname == 'rules'
461 let values = ["none", "groups", "rows", "all"]
462 elseif attrname == 'align'
463 let values = ["left", "center", "right", "justify", "char"]
464 elseif attrname == 'valign'
465 let values = ["top", "middle", "bottom", "baseline"]
466 elseif attrname == 'scope'
467 let values = ["row", "col", "rowgroup", "colgroup"]
468 elseif attrname == 'href'
469 " Now we are looking for local anchors defined by name or id
470 if entered_value =~ '^#'
471 let file = join(getline(1, line('$')), ' ')
472 " Split it be sure there will be one id/name element in
473 " item, it will be also first word [a-zA-Z0-9_-] in element
474 let oneelement = split(file, "\\(meta \\)\\@<!\\(name\\|id\\)\\s*=\\s*[\"']")
475 for i in oneelement
476 let values += ['#'.matchstr(i, "^[a-zA-Z][a-zA-Z0-9%_-]*")]
477 endfor
478 endif
479 elseif attrname == 'type'
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000480 if context =~ '^input'
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000481 let values = ["text", "password", "checkbox", "radio", "submit", "reset", "file", "hidden", "image", "button"]
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000482 elseif context =~ '^button'
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000483 let values = ["button", "submit", "reset"]
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000484 elseif context =~ '^style'
Bram Moolenaar1e015462005-09-25 22:16:38 +0000485 let values = ["text/css"]
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000486 elseif context =~ '^script'
Bram Moolenaar1e015462005-09-25 22:16:38 +0000487 let values = ["text/javascript"]
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000488 endif
489 else
490 return []
491 endif
492
493 if len(values) == 0
494 return []
495 endif
496
497 " We need special version of sbase
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000498 let attrbase = matchstr(context, ".*[\"']")
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000499 let attrquote = matchstr(attrbase, '.$')
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000500
501 for m in values
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000502 " This if is needed to not offer all completions as-is
503 " alphabetically but sort them. Those beginning with entered
504 " part will be as first choices
505 if m =~ '^'.entered_value
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000506 call add(res, m . attrquote.' ')
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000507 elseif m =~ entered_value
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000508 call add(res2, m . attrquote.' ')
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000509 endif
510 endfor
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000511
512 return res + res2
513
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000514 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000515 " }}}
516 " Attribute completion {{{
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000517 " Shorten context to not include last word
518 let sbase = matchstr(context, '.*\ze\s.*')
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000519
520 " Load data {{{
521 if !exists("g:xmldata_xhtml10s")
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000522 "runtime! autoload/xml/xhtml10s.vim
523 call htmlcomplete#LoadData()
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000524 endif
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000525 " }}}
526 "
527 let attrs = keys(g:xmldata_xhtml10s[tag][1])
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000528
529 for m in sort(attrs)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000530 if m =~ '^'.attr
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000531 call add(res, m)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000532 elseif m =~ attr
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000533 call add(res2, m)
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000534 endif
535 endfor
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000536 let menu = res + res2
537 if has_key(g:xmldata_xhtml10s, 'vimxmlattrinfo')
538 let final_menu = []
539 for i in range(len(menu))
540 let item = menu[i]
541 if has_key(g:xmldata_xhtml10s['vimxmlattrinfo'], item)
542 let m_menu = g:xmldata_xhtml10s['vimxmlattrinfo'][item][0]
543 let m_info = g:xmldata_xhtml10s['vimxmlattrinfo'][item][1]
544 if m_menu !~ 'Bool'
545 let item .= '="'
546 endif
547 else
548 let m_menu = ''
549 let m_info = ''
550 let item .= '="'
551 endif
552 let final_menu += [{'word':item, 'menu':m_menu, 'info':m_info}]
553 endfor
554 else
555 let final_menu = map(menu, 'v:val."=\""')
556 endif
557 return final_menu
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000558
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000559 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000560 " }}}
561 " Close tag {{{
Bram Moolenaar6b730e12005-09-16 21:47:57 +0000562 let b:unaryTagsStack = "base meta link hr br param img area input col"
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000563 if context =~ '^\/'
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000564 if context =~ '^\/.'
565 return []
566 else
567 let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
568 return [opentag.">"]
569 endif
Bram Moolenaar4c903f92005-09-14 21:32:32 +0000570 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000571 " Load data {{{
Bram Moolenaara5792f52005-11-23 21:25:05 +0000572 if !exists("g:xmldata_xhtml10s")
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000573 "runtime! autoload/xml/xhtml10s.vim
574 call htmlcomplete#LoadData()
Bram Moolenaar4c903f92005-09-14 21:32:32 +0000575 endif
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000576 " }}}
577 " Tag completion {{{
Bram Moolenaar7e8fd632006-02-18 22:14:51 +0000578 " Deal with tag completion.
579 let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000580 " MM: TODO: GLOT works always the same but with some weird situation it
581 " behaves as intended in HTML but screws in PHP
582 let g:ot = opentag
583 if opentag == '' || &ft == 'php' && !has_key(g:xmldata_xhtml10s, opentag)
Bram Moolenaar7e8fd632006-02-18 22:14:51 +0000584 " Hack for sometimes failing GetLastOpenTag.
585 " As far as I tested fail isn't GLOT fault but problem
586 " of invalid document - not properly closed tags and other mish-mash.
587 " Also when document is empty. Return list of *all* tags.
588 let tags = keys(g:xmldata_xhtml10s)
589 call filter(tags, 'v:val !~ "^vimxml"')
590 else
591 let tags = g:xmldata_xhtml10s[opentag][0]
592 endif
593 " }}}
Bram Moolenaar4c903f92005-09-14 21:32:32 +0000594
Bram Moolenaarcef9dcc2005-12-06 19:50:41 +0000595 for m in sort(tags)
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000596 if m =~ '^'.context
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000597 call add(res, m)
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +0000598 elseif m =~ context
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000599 call add(res2, m)
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000600 endif
Bram Moolenaar6b730e12005-09-16 21:47:57 +0000601 endfor
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000602 let menu = res + res2
603 if has_key(g:xmldata_xhtml10s, 'vimxmltaginfo')
604 let final_menu = []
605 for i in range(len(menu))
606 let item = menu[i]
607 if has_key(g:xmldata_xhtml10s['vimxmltaginfo'], item)
608 let m_menu = g:xmldata_xhtml10s['vimxmltaginfo'][item][0]
609 let m_info = g:xmldata_xhtml10s['vimxmltaginfo'][item][1]
610 else
611 let m_menu = ''
612 let m_info = ''
613 endif
614 let final_menu += [{'word':item, 'menu':m_menu, 'info':m_info}]
615 endfor
616 else
617 let final_menu = menu
618 endif
619 return final_menu
Bram Moolenaar6b730e12005-09-16 21:47:57 +0000620
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000621 " }}}
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000622 endif
623endfunction
Bram Moolenaare0fa5602006-03-19 22:08:37 +0000624" HTML context data
625function! htmlcomplete#LoadData() " {{{
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000626let g:xmldata_xhtml10s = {
627\ 'vimxmlentities' : ["AElig", "Aacute", "Acirc", "Agrave", "Alpha", "Aring", "Atilde", "Auml", "Beta", "Ccedil", "Chi", "Dagger", "Delta", "ETH", "Eacute", "Ecirc", "Egrave", "Epsilon", "Eta", "Euml", "Gamma", "Iacute", "Icirc", "Igrave", "Iota", "Iuml", "Kappa", "Lambda", "Mu", "Ntilde", "Nu", "OElig", "Oacute", "Ocirc", "Ograve", "Omega", "Omicron", "Oslash", "Otilde", "Ouml", "Phi", "Pi", "Prime", "Psi", "Rho", "Scaron", "Sigma", "THORN", "TITY", "Tau", "Theta", "Uacute", "Ucirc", "Ugrave", "Upsilon", "Uuml", "Xi", "Yacute", "Yuml", "Zeta", "amp", "aacute", "acirc", "acute", "aelig", "agrave", "alefsym", "alpha", "and", "ang", "apos", "aring", "asymp", "atilde", "auml", "bdquo", "beta", "brvbar", "bull", "cap", "ccedil", "cedil", "cent", "chi", "circ", "clubs", "copy", "cong", "crarr", "cup", "curren", "dArr", "dagger", "darr", "deg", "delta", "diams", "divide", "eacute", "ecirc", "egrave", "empty", "ensp", "emsp", "epsilon", "equiv", "eta", "eth", "euro", "euml", "exist", "fnof", "forall", "frac12", "frac14", "frac34", "frasl", "gt", "gamma", "ge", "hArr", "harr", "hearts", "hellip", "iacute", "icirc", "iexcl", "igrave", "image", "infin", "int", "iota", "iquest", "isin", "iuml", "kappa", "lt", "laquo", "lArr", "lambda", "lang", "larr", "lceil", "ldquo", "le", "lfloor", "lowast", "loz", "lrm", "lsaquo", "lsquo", "macr", "mdash", "micro", "middot", "minus", "mu", "nbsp", "nabla", "ndash", "ne", "ni", "not", "notin", "nsub", "ntilde", "nu", "oacute", "ocirc", "oelig", "ograve", "oline", "omega", "omicron", "oplus", "or", "ordf", "ordm", "oslash", "otilde", "otimes", "ouml", "para", "part", "permil", "perp", "phi", "pi", "piv", "plusmn", "pound", "prime", "prod", "prop", "psi", "quot", "rArr", "raquo", "radic", "rang", "rarr", "rceil", "rdquo", "real", "reg", "rfloor", "rho", "rlm", "rsaquo", "rsquo", "sbquo", "scaron", "sdot", "sect", "shy", "sigma", "sigmaf", "sim", "spades", "sub", "sube", "sum", "sup", "sup1", "sup2", "sup3", "supe", "szlig", "tau", "there4", "theta", "thetasym", "thinsp", "thorn", "tilde", "times", "trade", "uArr", "uacute", "uarr", "ucirc", "ugrave", "uml", "upsih", "upsilon", "uuml", "weierp", "xi", "yacute", "yen", "yuml", "zeta", "zwj", "zwnj"],
628\ 'vimxmlattrinfo' : {
629\ 'accept' : ['ContentType', ''],
630\ 'accesskey' : ['Character', ''],
631\ 'action' : ['*URI', ''],
632\ 'align' : ['String', ''],
633\ 'alt' : ['*Text', ''],
634\ 'archive' : ['UriList', ''],
635\ 'axis' : ['CDATA', ''],
636\ 'border' : ['Pixels', ''],
637\ 'cellpadding' : ['Length', ''],
638\ 'cellspacing' : ['Length', ''],
639\ 'char' : ['Character', ''],
640\ 'charoff' : ['Length', ''],
641\ 'charset' : ['LangCode', ''],
642\ 'checked' : ['Bool', ''],
643\ 'class' : ['CDATA', 'Name of class, used for connecting element with style'],
644\ 'codetype' : ['ContentType', ''],
645\ 'cols' : ['*Number', ''],
646\ 'colspan' : ['Number', ''],
647\ 'content' : ['*CDATA', ''],
648\ 'coords' : ['Coords', ''],
649\ 'data' : ['URI', ''],
650\ 'datetime' : ['DateTime', ''],
651\ 'declare' : ['Bool', ''],
652\ 'defer' : ['Bool', ''],
653\ 'dir' : ['String', ''],
654\ 'disabled' : ['Bool', ''],
655\ 'enctype' : ['ContentType', ''],
656\ 'for' : ['ID', ''],
657\ 'headers' : ['IDREFS', ''],
658\ 'height' : ['Number', ''],
659\ 'href' : ['*URI', ''],
660\ 'hreflang' : ['LangCode', ''],
661\ 'id' : ['ID', 'Unique string'],
662\ 'ismap' : ['Bool', ''],
663\ 'label' : ['*Text', ''],
664\ 'lang' : ['LangCode', ''],
665\ 'longdesc' : ['URI', ''],
666\ 'maxlength' : ['Number', ''],
667\ 'media' : ['MediaDesc', ''],
668\ 'method' : ['String', ''],
669\ 'multiple' : ['Bool', ''],
670\ 'name' : ['CDATA', ''],
671\ 'nohref' : ['Bool', ''],
672\ 'onblur' : ['Script', ''],
673\ 'onchange' : ['Script', ''],
674\ 'onclick' : ['Script', ''],
675\ 'ondblclick' : ['Script', ''],
676\ 'onfocus' : ['Script', ''],
677\ 'onkeydown' : ['Script', ''],
678\ 'onkeypress' : ['Script', ''],
679\ 'onkeyup' : ['Script', ''],
680\ 'onload' : ['Script', ''],
681\ 'onmousedown' : ['Script', ''],
682\ 'onmousemove' : ['Script', ''],
683\ 'onmouseout' : ['Script', ''],
684\ 'onmouseover' : ['Script', ''],
685\ 'onmouseup' : ['Script', ''],
686\ 'onreset' : ['Script', ''],
687\ 'onselect' : ['Script', ''],
688\ 'onsubmit' : ['Script', ''],
689\ 'onunload' : ['Script', ''],
690\ 'profile' : ['URI', ''],
691\ 'readonly' : ['Bool', ''],
692\ 'rel' : ['LinkTypes', ''],
693\ 'rev' : ['LinkTypes', ''],
694\ 'rows' : ['*Number', ''],
695\ 'rules' : ['String', ''],
696\ 'scheme' : ['CDATA', ''],
697\ 'selected' : ['Bool', ''],
698\ 'shape' : ['Shape', ''],
699\ 'size' : ['CDATA', ''],
700\ 'span' : ['Number', ''],
701\ 'src' : ['*URI', ''],
702\ 'standby' : ['Text', ''],
703\ 'style' : ['StyleSheet', ''],
704\ 'summary' : ['*Text', ''],
705\ 'tabindex' : ['Number', ''],
706\ 'title' : ['Text', ''],
707\ 'type' : ['*ContentType', ''],
708\ 'usemap' : ['URI', ''],
709\ 'valign' : ['String', ''],
710\ 'valuetype' : ['String', ''],
711\ 'width' : ['Number', ''],
712\ 'xmlns' : ['URI', '']
713\ },
714\ 'vimxmltaginfo' : {
715\ 'base' : ['/>', ''],
716\ 'meta' : ['/>', ''],
717\ 'link' : ['/>', ''],
718\ 'img' : ['/>', ''],
719\ 'hr' : ['/>', ''],
720\ 'br' : ['/>', ''],
721\ 'param' : ['/>', ''],
722\ 'area' : ['/>', ''],
723\ 'input' : ['/>', ''],
724\ 'col' : ['/>', '']
725\ },
726\ 'tr' : [
727\ [
728\ 'th',
729\ 'td'
730\ ],
731\ {
732\ 'ondblclick' : [],
733\ 'dir' : [
734\ 'ltr',
735\ 'rtl'
736\ ],
737\ 'onkeydown' : [],
738\ 'onkeyup' : [],
739\ 'onmouseup' : [],
740\ 'id' : [],
741\ 'charoff' : [],
742\ 'onmouseover' : [],
743\ 'lang' : [],
744\ 'align' : [
745\ 'left',
746\ 'center',
747\ 'right',
748\ 'justify',
749\ 'char'
750\ ],
751\ 'valign' : [
752\ 'top',
753\ 'middle',
754\ 'bottom',
755\ 'baseline'
756\ ],
757\ 'style' : [],
758\ 'onmousemove' : [],
759\ 'onmouseout' : [],
760\ 'xml:lang' : [],
761\ 'char' : [],
762\ 'onmousedown' : [],
763\ 'onkeypress' : [],
764\ 'onclick' : [],
765\ 'title' : [],
766\ 'class' : []
767\ }
768\ ],
769\ 'input' : [[],
770\ {
771\ 'ondblclick' : [],
772\ 'onchange' : [],
773\ 'readonly' : [
774\ 'BOOL'
775\ ],
776\ 'onkeydown' : [],
777\ 'onkeyup' : [],
778\ 'onmouseup' : [],
779\ 'id' : [],
780\ 'onmouseover' : [],
781\ 'lang' : [],
782\ 'src' : [],
783\ 'value' : [],
784\ 'name' : [],
785\ 'checked' : [
786\ 'BOOL'
787\ ],
788\ 'onmousedown' : [],
789\ 'onkeypress' : [],
790\ 'onclick' : [],
791\ 'title' : [],
792\ 'class' : [],
793\ 'type' : [
794\ 'text',
795\ 'password',
796\ 'checkbox',
797\ 'radio',
798\ 'submit',
799\ 'reset',
800\ 'file',
801\ 'hidden',
802\ 'image',
803\ 'button'
804\ ],
805\ 'accesskey' : [],
806\ 'disabled' : [
807\ 'BOOL'
808\ ],
809\ 'usemap' : [],
810\ 'dir' : [
811\ 'ltr',
812\ 'rtl'
813\ ],
814\ 'size' : [],
815\ 'onblur' : [],
816\ 'onfocus' : [],
817\ 'maxlength' : [],
818\ 'onselect' : [],
819\ 'accept' : [],
820\ 'alt' : [],
821\ 'tabindex' : [],
822\ 'onmouseout' : [],
823\ 'onmousemove' : [],
824\ 'style' : [],
825\ 'xml:lang' : []
826\ }
827\ ],
828\ 'table' : [
829\ [
830\ 'caption',
831\ 'col',
832\ 'colgroup',
833\ 'thead',
834\ 'tfoot',
835\ 'tbody',
836\ 'tr'
837\ ],
838\ {
839\ 'width' : [],
840\ 'frame' : [
841\ 'void',
842\ 'above',
843\ 'below',
844\ 'hsides',
845\ 'lhs',
846\ 'rhs',
847\ 'vsides',
848\ 'box',
849\ 'border'
850\ ],
851\ 'ondblclick' : [],
852\ 'rules' : [
853\ 'none',
854\ 'groups',
855\ 'rows',
856\ 'cols',
857\ 'all'
858\ ],
859\ 'dir' : [
860\ 'ltr',
861\ 'rtl'
862\ ],
863\ 'onkeydown' : [],
864\ 'summary' : [],
865\ 'onkeyup' : [],
866\ 'cellspacing' : [],
867\ 'onmouseup' : [],
868\ 'id' : [],
869\ 'onmouseover' : [],
870\ 'lang' : [],
871\ 'style' : [],
872\ 'onmousemove' : [],
873\ 'onmouseout' : [],
874\ 'xml:lang' : [],
875\ 'border' : [],
876\ 'onmousedown' : [],
877\ 'onkeypress' : [],
878\ 'cellpadding' : [],
879\ 'onclick' : [],
880\ 'title' : [],
881\ 'class' : []
882\ }
883\ ],
884\ 'form' : [
885\ [
886\ 'p',
887\ 'h1',
888\ 'h2',
889\ 'h3',
890\ 'h4',
891\ 'h5',
892\ 'h6',
893\ 'div',
894\ 'ul',
895\ 'ol',
896\ 'dl',
897\ 'pre',
898\ 'hr',
899\ 'blockquote',
900\ 'address',
901\ 'fieldset',
902\ 'table',
903\ 'ins',
904\ 'del',
905\ 'script',
906\ 'noscript'
907\ ],
908\ {
909\ 'onsubmit' : [],
910\ 'enctype' : [
911\ '',
912\ 'application/x-www-form-urlencoded',
913\ ],
914\ 'ondblclick' : [],
915\ 'dir' : [
916\ 'ltr',
917\ 'rtl'
918\ ],
919\ 'onkeydown' : [],
920\ 'onkeyup' : [],
921\ 'onreset' : [],
922\ 'onmouseup' : [],
923\ 'method' : [
924\ 'get',
925\ 'post'
926\ ],
927\ 'id' : [],
928\ 'onmouseover' : [],
929\ 'accept' : [],
930\ 'lang' : [],
931\ 'style' : [],
932\ 'onmousemove' : [],
933\ 'onmouseout' : [],
934\ 'xml:lang' : [],
935\ 'accept-charset' : [],
936\ 'onmousedown' : [],
937\ 'onkeypress' : [],
938\ 'action' : [],
939\ 'onclick' : [],
940\ 'title' : [],
941\ 'class' : []
942\ }
943\ ],
944\ 'h5' : [
945\ [
946\ 'a',
947\ 'br',
948\ 'span',
949\ 'bdo',
950\ 'object',
951\ 'img',
952\ 'map',
953\ 'tt',
954\ 'i',
955\ 'b',
956\ 'big',
957\ 'small',
958\ 'em',
959\ 'strong',
960\ 'dfn',
961\ 'code',
962\ 'q',
963\ 'sub',
964\ 'sup',
965\ 'samp',
966\ 'kbd',
967\ 'var',
968\ 'cite',
969\ 'abbr',
970\ 'acronym',
971\ 'input',
972\ 'select',
973\ 'textarea',
974\ 'label',
975\ 'button',
976\ 'ins',
977\ 'del',
978\ 'script',
979\ 'noscript'
980\ ],
981\ {
982\ 'onmouseover' : [],
983\ 'lang' : [],
984\ 'onmouseout' : [],
985\ 'onmousemove' : [],
986\ 'style' : [],
987\ 'ondblclick' : [],
988\ 'xml:lang' : [],
989\ 'dir' : [
990\ 'ltr',
991\ 'rtl'
992\ ],
993\ 'onkeydown' : [],
994\ 'onkeyup' : [],
995\ 'onkeypress' : [],
996\ 'onmousedown' : [],
997\ 'onmouseup' : [],
998\ 'id' : [],
999\ 'class' : [],
1000\ 'title' : [],
1001\ 'onclick' : []
1002\ }
1003\ ],
1004\ 'meta' : [[],
1005\ {
1006\ 'http-equiv' : [],
1007\ 'lang' : [],
1008\ 'name' : [],
1009\ 'scheme' : [],
1010\ 'xml:lang' : [],
1011\ 'dir' : [
1012\ 'ltr',
1013\ 'rtl'
1014\ ]
1015\ }
1016\ ],
1017\ 'map' : [
1018\ [
1019\ 'p',
1020\ 'h1',
1021\ 'h2',
1022\ 'h3',
1023\ 'h4',
1024\ 'h5',
1025\ 'h6',
1026\ 'div',
1027\ 'ul',
1028\ 'ol',
1029\ 'dl',
1030\ 'pre',
1031\ 'hr',
1032\ 'blockquote',
1033\ 'address',
1034\ 'fieldset',
1035\ 'table',
1036\ 'form',
1037\ 'ins',
1038\ 'del',
1039\ 'script',
1040\ 'noscript',
1041\ 'area'
1042\ ],
1043\ {
1044\ 'ondblclick' : [],
1045\ 'dir' : [
1046\ 'ltr',
1047\ 'rtl'
1048\ ],
1049\ 'onkeydown' : [],
1050\ 'onkeyup' : [],
1051\ 'onmouseup' : [],
1052\ 'id' : [],
1053\ 'onmouseover' : [],
1054\ 'lang' : [],
1055\ 'name' : [],
1056\ 'onmousemove' : [],
1057\ 'onmouseout' : [],
1058\ 'style' : [],
1059\ 'xml:lang' : [],
1060\ 'onmousedown' : [],
1061\ 'onkeypress' : [],
1062\ 'title' : [],
1063\ 'onclick' : [],
1064\ 'class' : []
1065\ }
1066\ ],
1067\ 'tfoot' : [
1068\ [
1069\ 'tr'
1070\ ],
1071\ {
1072\ 'ondblclick' : [],
1073\ 'dir' : [
1074\ 'ltr',
1075\ 'rtl'
1076\ ],
1077\ 'onkeydown' : [],
1078\ 'onkeyup' : [],
1079\ 'onmouseup' : [],
1080\ 'id' : [],
1081\ 'charoff' : [],
1082\ 'onmouseover' : [],
1083\ 'lang' : [],
1084\ 'align' : [
1085\ 'left',
1086\ 'center',
1087\ 'right',
1088\ 'justify',
1089\ 'char'
1090\ ],
1091\ 'valign' : [
1092\ 'top',
1093\ 'middle',
1094\ 'bottom',
1095\ 'baseline'
1096\ ],
1097\ 'style' : [],
1098\ 'onmousemove' : [],
1099\ 'onmouseout' : [],
1100\ 'xml:lang' : [],
1101\ 'char' : [],
1102\ 'onmousedown' : [],
1103\ 'onkeypress' : [],
1104\ 'onclick' : [],
1105\ 'title' : [],
1106\ 'class' : []
1107\ }
1108\ ],
1109\ 'caption' : [
1110\ [
1111\ 'a',
1112\ 'br',
1113\ 'span',
1114\ 'bdo',
1115\ 'object',
1116\ 'img',
1117\ 'map',
1118\ 'tt',
1119\ 'i',
1120\ 'b',
1121\ 'big',
1122\ 'small',
1123\ 'em',
1124\ 'strong',
1125\ 'dfn',
1126\ 'code',
1127\ 'q',
1128\ 'sub',
1129\ 'sup',
1130\ 'samp',
1131\ 'kbd',
1132\ 'var',
1133\ 'cite',
1134\ 'abbr',
1135\ 'acronym',
1136\ 'input',
1137\ 'select',
1138\ 'textarea',
1139\ 'label',
1140\ 'button',
1141\ 'ins',
1142\ 'del',
1143\ 'script',
1144\ 'noscript'
1145\ ],
1146\ {
1147\ 'onmouseover' : [],
1148\ 'lang' : [],
1149\ 'onmouseout' : [],
1150\ 'onmousemove' : [],
1151\ 'style' : [],
1152\ 'ondblclick' : [],
1153\ 'xml:lang' : [],
1154\ 'dir' : [
1155\ 'ltr',
1156\ 'rtl'
1157\ ],
1158\ 'onkeydown' : [],
1159\ 'onkeyup' : [],
1160\ 'onkeypress' : [],
1161\ 'onmousedown' : [],
1162\ 'onmouseup' : [],
1163\ 'id' : [],
1164\ 'class' : [],
1165\ 'title' : [],
1166\ 'onclick' : []
1167\ }
1168\ ],
1169\ 'code' : [
1170\ [
1171\ 'a',
1172\ 'br',
1173\ 'span',
1174\ 'bdo',
1175\ 'object',
1176\ 'img',
1177\ 'map',
1178\ 'tt',
1179\ 'i',
1180\ 'b',
1181\ 'big',
1182\ 'small',
1183\ 'em',
1184\ 'strong',
1185\ 'dfn',
1186\ 'code',
1187\ 'q',
1188\ 'sub',
1189\ 'sup',
1190\ 'samp',
1191\ 'kbd',
1192\ 'var',
1193\ 'cite',
1194\ 'abbr',
1195\ 'acronym',
1196\ 'input',
1197\ 'select',
1198\ 'textarea',
1199\ 'label',
1200\ 'button',
1201\ 'ins',
1202\ 'del',
1203\ 'script',
1204\ 'noscript'
1205\ ],
1206\ {
1207\ 'onmouseover' : [],
1208\ 'lang' : [],
1209\ 'onmouseout' : [],
1210\ 'onmousemove' : [],
1211\ 'style' : [],
1212\ 'ondblclick' : [],
1213\ 'xml:lang' : [],
1214\ 'dir' : [
1215\ 'ltr',
1216\ 'rtl'
1217\ ],
1218\ 'onkeydown' : [],
1219\ 'onkeyup' : [],
1220\ 'onkeypress' : [],
1221\ 'onmousedown' : [],
1222\ 'onmouseup' : [],
1223\ 'id' : [],
1224\ 'class' : [],
1225\ 'title' : [],
1226\ 'onclick' : []
1227\ }
1228\ ],
1229\ 'base' : [[],
1230\ {
1231\ 'href' : []
1232\ }
1233\ ],
1234\ 'br' : [[],
1235\ {
1236\ 'style' : [],
1237\ 'title' : [],
1238\ 'class' : [],
1239\ 'id' : []
1240\ }
1241\ ],
1242\ 'acronym' : [
1243\ [
1244\ 'a',
1245\ 'br',
1246\ 'span',
1247\ 'bdo',
1248\ 'object',
1249\ 'img',
1250\ 'map',
1251\ 'tt',
1252\ 'i',
1253\ 'b',
1254\ 'big',
1255\ 'small',
1256\ 'em',
1257\ 'strong',
1258\ 'dfn',
1259\ 'code',
1260\ 'q',
1261\ 'sub',
1262\ 'sup',
1263\ 'samp',
1264\ 'kbd',
1265\ 'var',
1266\ 'cite',
1267\ 'abbr',
1268\ 'acronym',
1269\ 'input',
1270\ 'select',
1271\ 'textarea',
1272\ 'label',
1273\ 'button',
1274\ 'ins',
1275\ 'del',
1276\ 'script',
1277\ 'noscript'
1278\ ],
1279\ {
1280\ 'onmouseover' : [],
1281\ 'lang' : [],
1282\ 'onmouseout' : [],
1283\ 'onmousemove' : [],
1284\ 'style' : [],
1285\ 'ondblclick' : [],
1286\ 'xml:lang' : [],
1287\ 'dir' : [
1288\ 'ltr',
1289\ 'rtl'
1290\ ],
1291\ 'onkeydown' : [],
1292\ 'onkeyup' : [],
1293\ 'onkeypress' : [],
1294\ 'onmousedown' : [],
1295\ 'onmouseup' : [],
1296\ 'id' : [],
1297\ 'class' : [],
1298\ 'title' : [],
1299\ 'onclick' : []
1300\ }
1301\ ],
1302\ 'strong' : [
1303\ [
1304\ 'a',
1305\ 'br',
1306\ 'span',
1307\ 'bdo',
1308\ 'object',
1309\ 'img',
1310\ 'map',
1311\ 'tt',
1312\ 'i',
1313\ 'b',
1314\ 'big',
1315\ 'small',
1316\ 'em',
1317\ 'strong',
1318\ 'dfn',
1319\ 'code',
1320\ 'q',
1321\ 'sub',
1322\ 'sup',
1323\ 'samp',
1324\ 'kbd',
1325\ 'var',
1326\ 'cite',
1327\ 'abbr',
1328\ 'acronym',
1329\ 'input',
1330\ 'select',
1331\ 'textarea',
1332\ 'label',
1333\ 'button',
1334\ 'ins',
1335\ 'del',
1336\ 'script',
1337\ 'noscript'
1338\ ],
1339\ {
1340\ 'onmouseover' : [],
1341\ 'lang' : [],
1342\ 'onmouseout' : [],
1343\ 'onmousemove' : [],
1344\ 'style' : [],
1345\ 'ondblclick' : [],
1346\ 'xml:lang' : [],
1347\ 'dir' : [
1348\ 'ltr',
1349\ 'rtl'
1350\ ],
1351\ 'onkeydown' : [],
1352\ 'onkeyup' : [],
1353\ 'onkeypress' : [],
1354\ 'onmousedown' : [],
1355\ 'onmouseup' : [],
1356\ 'id' : [],
1357\ 'class' : [],
1358\ 'title' : [],
1359\ 'onclick' : []
1360\ }
1361\ ],
1362\ 'h4' : [
1363\ [
1364\ 'a',
1365\ 'br',
1366\ 'span',
1367\ 'bdo',
1368\ 'object',
1369\ 'img',
1370\ 'map',
1371\ 'tt',
1372\ 'i',
1373\ 'b',
1374\ 'big',
1375\ 'small',
1376\ 'em',
1377\ 'strong',
1378\ 'dfn',
1379\ 'code',
1380\ 'q',
1381\ 'sub',
1382\ 'sup',
1383\ 'samp',
1384\ 'kbd',
1385\ 'var',
1386\ 'cite',
1387\ 'abbr',
1388\ 'acronym',
1389\ 'input',
1390\ 'select',
1391\ 'textarea',
1392\ 'label',
1393\ 'button',
1394\ 'ins',
1395\ 'del',
1396\ 'script',
1397\ 'noscript'
1398\ ],
1399\ {
1400\ 'onmouseover' : [],
1401\ 'lang' : [],
1402\ 'onmouseout' : [],
1403\ 'onmousemove' : [],
1404\ 'style' : [],
1405\ 'ondblclick' : [],
1406\ 'xml:lang' : [],
1407\ 'dir' : [
1408\ 'ltr',
1409\ 'rtl'
1410\ ],
1411\ 'onkeydown' : [],
1412\ 'onkeyup' : [],
1413\ 'onkeypress' : [],
1414\ 'onmousedown' : [],
1415\ 'onmouseup' : [],
1416\ 'id' : [],
1417\ 'class' : [],
1418\ 'title' : [],
1419\ 'onclick' : []
1420\ }
1421\ ],
1422\ 'em' : [
1423\ [
1424\ 'a',
1425\ 'br',
1426\ 'span',
1427\ 'bdo',
1428\ 'object',
1429\ 'img',
1430\ 'map',
1431\ 'tt',
1432\ 'i',
1433\ 'b',
1434\ 'big',
1435\ 'small',
1436\ 'em',
1437\ 'strong',
1438\ 'dfn',
1439\ 'code',
1440\ 'q',
1441\ 'sub',
1442\ 'sup',
1443\ 'samp',
1444\ 'kbd',
1445\ 'var',
1446\ 'cite',
1447\ 'abbr',
1448\ 'acronym',
1449\ 'input',
1450\ 'select',
1451\ 'textarea',
1452\ 'label',
1453\ 'button',
1454\ 'ins',
1455\ 'del',
1456\ 'script',
1457\ 'noscript'
1458\ ],
1459\ {
1460\ 'onmouseover' : [],
1461\ 'lang' : [],
1462\ 'onmouseout' : [],
1463\ 'onmousemove' : [],
1464\ 'style' : [],
1465\ 'ondblclick' : [],
1466\ 'xml:lang' : [],
1467\ 'dir' : [
1468\ 'ltr',
1469\ 'rtl'
1470\ ],
1471\ 'onkeydown' : [],
1472\ 'onkeyup' : [],
1473\ 'onkeypress' : [],
1474\ 'onmousedown' : [],
1475\ 'onmouseup' : [],
1476\ 'id' : [],
1477\ 'class' : [],
1478\ 'title' : [],
1479\ 'onclick' : []
1480\ }
1481\ ],
1482\ 'b' : [
1483\ [
1484\ 'a',
1485\ 'br',
1486\ 'span',
1487\ 'bdo',
1488\ 'object',
1489\ 'img',
1490\ 'map',
1491\ 'tt',
1492\ 'i',
1493\ 'b',
1494\ 'big',
1495\ 'small',
1496\ 'em',
1497\ 'strong',
1498\ 'dfn',
1499\ 'code',
1500\ 'q',
1501\ 'sub',
1502\ 'sup',
1503\ 'samp',
1504\ 'kbd',
1505\ 'var',
1506\ 'cite',
1507\ 'abbr',
1508\ 'acronym',
1509\ 'input',
1510\ 'select',
1511\ 'textarea',
1512\ 'label',
1513\ 'button',
1514\ 'ins',
1515\ 'del',
1516\ 'script',
1517\ 'noscript'
1518\ ],
1519\ {
1520\ 'onmouseover' : [],
1521\ 'lang' : [],
1522\ 'onmouseout' : [],
1523\ 'onmousemove' : [],
1524\ 'style' : [],
1525\ 'ondblclick' : [],
1526\ 'xml:lang' : [],
1527\ 'dir' : [
1528\ 'ltr',
1529\ 'rtl'
1530\ ],
1531\ 'onkeydown' : [],
1532\ 'onkeyup' : [],
1533\ 'onkeypress' : [],
1534\ 'onmousedown' : [],
1535\ 'onmouseup' : [],
1536\ 'id' : [],
1537\ 'class' : [],
1538\ 'title' : [],
1539\ 'onclick' : []
1540\ }
1541\ ],
1542\ 'q' : [
1543\ [
1544\ 'a',
1545\ 'br',
1546\ 'span',
1547\ 'bdo',
1548\ 'object',
1549\ 'img',
1550\ 'map',
1551\ 'tt',
1552\ 'i',
1553\ 'b',
1554\ 'big',
1555\ 'small',
1556\ 'em',
1557\ 'strong',
1558\ 'dfn',
1559\ 'code',
1560\ 'q',
1561\ 'sub',
1562\ 'sup',
1563\ 'samp',
1564\ 'kbd',
1565\ 'var',
1566\ 'cite',
1567\ 'abbr',
1568\ 'acronym',
1569\ 'input',
1570\ 'select',
1571\ 'textarea',
1572\ 'label',
1573\ 'button',
1574\ 'ins',
1575\ 'del',
1576\ 'script',
1577\ 'noscript'
1578\ ],
1579\ {
1580\ 'onmouseover' : [],
1581\ 'lang' : [],
1582\ 'onmouseout' : [],
1583\ 'onmousemove' : [],
1584\ 'style' : [],
1585\ 'ondblclick' : [],
1586\ 'xml:lang' : [],
1587\ 'dir' : [
1588\ 'ltr',
1589\ 'rtl'
1590\ ],
1591\ 'onkeydown' : [],
1592\ 'onkeyup' : [],
1593\ 'onkeypress' : [],
1594\ 'onmousedown' : [],
1595\ 'onmouseup' : [],
1596\ 'id' : [],
1597\ 'class' : [],
1598\ 'title' : [],
1599\ 'onclick' : [],
1600\ 'cite' : []
1601\ }
1602\ ],
1603\ 'span' : [
1604\ [
1605\ 'a',
1606\ 'br',
1607\ 'span',
1608\ 'bdo',
1609\ 'object',
1610\ 'img',
1611\ 'map',
1612\ 'tt',
1613\ 'i',
1614\ 'b',
1615\ 'big',
1616\ 'small',
1617\ 'em',
1618\ 'strong',
1619\ 'dfn',
1620\ 'code',
1621\ 'q',
1622\ 'sub',
1623\ 'sup',
1624\ 'samp',
1625\ 'kbd',
1626\ 'var',
1627\ 'cite',
1628\ 'abbr',
1629\ 'acronym',
1630\ 'input',
1631\ 'select',
1632\ 'textarea',
1633\ 'label',
1634\ 'button',
1635\ 'ins',
1636\ 'del',
1637\ 'script',
1638\ 'noscript'
1639\ ],
1640\ {
1641\ 'onmouseover' : [],
1642\ 'lang' : [],
1643\ 'onmouseout' : [],
1644\ 'onmousemove' : [],
1645\ 'style' : [],
1646\ 'ondblclick' : [],
1647\ 'xml:lang' : [],
1648\ 'dir' : [
1649\ 'ltr',
1650\ 'rtl'
1651\ ],
1652\ 'onkeydown' : [],
1653\ 'onkeyup' : [],
1654\ 'onkeypress' : [],
1655\ 'onmousedown' : [],
1656\ 'onmouseup' : [],
1657\ 'id' : [],
1658\ 'class' : [],
1659\ 'title' : [],
1660\ 'onclick' : []
1661\ }
1662\ ],
1663\ 'title' : [
1664\ {
1665\ 'lang' : [],
1666\ 'xml:lang' : [],
1667\ 'dir' : [
1668\ 'ltr',
1669\ 'rtl'
1670\ ]
1671\ }
1672\ ],
1673\ 'small' : [
1674\ [
1675\ 'a',
1676\ 'br',
1677\ 'span',
1678\ 'bdo',
1679\ 'object',
1680\ 'img',
1681\ 'map',
1682\ 'tt',
1683\ 'i',
1684\ 'b',
1685\ 'big',
1686\ 'small',
1687\ 'em',
1688\ 'strong',
1689\ 'dfn',
1690\ 'code',
1691\ 'q',
1692\ 'sub',
1693\ 'sup',
1694\ 'samp',
1695\ 'kbd',
1696\ 'var',
1697\ 'cite',
1698\ 'abbr',
1699\ 'acronym',
1700\ 'input',
1701\ 'select',
1702\ 'textarea',
1703\ 'label',
1704\ 'button',
1705\ 'ins',
1706\ 'del',
1707\ 'script',
1708\ 'noscript'
1709\ ],
1710\ {
1711\ 'onmouseover' : [],
1712\ 'lang' : [],
1713\ 'onmouseout' : [],
1714\ 'onmousemove' : [],
1715\ 'style' : [],
1716\ 'ondblclick' : [],
1717\ 'xml:lang' : [],
1718\ 'dir' : [
1719\ 'ltr',
1720\ 'rtl'
1721\ ],
1722\ 'onkeydown' : [],
1723\ 'onkeyup' : [],
1724\ 'onkeypress' : [],
1725\ 'onmousedown' : [],
1726\ 'onmouseup' : [],
1727\ 'id' : [],
1728\ 'class' : [],
1729\ 'title' : [],
1730\ 'onclick' : []
1731\ }
1732\ ],
1733\ 'area' : [[],
1734\ {
1735\ 'accesskey' : [],
1736\ 'coords' : [],
1737\ 'ondblclick' : [],
1738\ 'onblur' : [],
1739\ 'dir' : [
1740\ 'ltr',
1741\ 'rtl'
1742\ ],
1743\ 'onfocus' : [],
1744\ 'nohref' : [
1745\ 'BOOL'
1746\ ],
1747\ 'onkeydown' : [],
1748\ 'onkeyup' : [],
1749\ 'href' : [],
1750\ 'onmouseup' : [],
1751\ 'id' : [],
1752\ 'onmouseover' : [],
1753\ 'tabindex' : [],
1754\ 'alt' : [],
1755\ 'lang' : [],
1756\ 'style' : [],
1757\ 'onmousemove' : [],
1758\ 'onmouseout' : [],
1759\ 'xml:lang' : [],
1760\ 'onmousedown' : [],
1761\ 'onkeypress' : [],
1762\ 'onclick' : [],
1763\ 'title' : [],
1764\ 'class' : [],
1765\ 'shape' : [
1766\ 'rect',
1767\ 'circle',
1768\ 'poly',
1769\ 'default'
1770\ ]
1771\ }
1772\ ],
1773\ 'body' : [
1774\ [
1775\ 'p',
1776\ 'h1',
1777\ 'h2',
1778\ 'h3',
1779\ 'h4',
1780\ 'h5',
1781\ 'h6',
1782\ 'div',
1783\ 'ul',
1784\ 'ol',
1785\ 'dl',
1786\ 'pre',
1787\ 'hr',
1788\ 'blockquote',
1789\ 'address',
1790\ 'fieldset',
1791\ 'table',
1792\ 'form',
1793\ 'ins',
1794\ 'del',
1795\ 'script',
1796\ 'noscript'
1797\ ],
1798\ {
1799\ 'ondblclick' : [],
1800\ 'dir' : [
1801\ 'ltr',
1802\ 'rtl'
1803\ ],
1804\ 'onkeydown' : [],
1805\ 'onkeyup' : [],
1806\ 'onmouseup' : [],
1807\ 'id' : [],
1808\ 'onmouseover' : [],
1809\ 'lang' : [],
1810\ 'style' : [],
1811\ 'onmousemove' : [],
1812\ 'onmouseout' : [],
1813\ 'xml:lang' : [],
1814\ 'onunload' : [],
1815\ 'onmousedown' : [],
1816\ 'onkeypress' : [],
1817\ 'onload' : [],
1818\ 'onclick' : [],
1819\ 'title' : [],
1820\ 'class' : []
1821\ }
1822\ ],
1823\ 'ol' : [
1824\ [
1825\ 'li'
1826\ ],
1827\ {
1828\ 'onmouseover' : [],
1829\ 'lang' : [],
1830\ 'onmouseout' : [],
1831\ 'onmousemove' : [],
1832\ 'style' : [],
1833\ 'ondblclick' : [],
1834\ 'xml:lang' : [],
1835\ 'dir' : [
1836\ 'ltr',
1837\ 'rtl'
1838\ ],
1839\ 'onkeydown' : [],
1840\ 'onkeyup' : [],
1841\ 'onkeypress' : [],
1842\ 'onmousedown' : [],
1843\ 'onmouseup' : [],
1844\ 'id' : [],
1845\ 'class' : [],
1846\ 'title' : [],
1847\ 'onclick' : []
1848\ }
1849\ ],
1850\ 'html' : [
1851\ [
1852\ 'head',
1853\ 'body'
1854\ ],
1855\ {
1856\ 'xmlns' : [
1857\ 'http://www.w3.org/1999/xhtml',
1858\ ],
1859\ 'lang' : [],
1860\ 'xml:lang' : [],
1861\ 'dir' : [
1862\ 'ltr',
1863\ 'rtl'
1864\ ]
1865\ }
1866\ ],
1867\ 'var' : [
1868\ [
1869\ 'a',
1870\ 'br',
1871\ 'span',
1872\ 'bdo',
1873\ 'object',
1874\ 'img',
1875\ 'map',
1876\ 'tt',
1877\ 'i',
1878\ 'b',
1879\ 'big',
1880\ 'small',
1881\ 'em',
1882\ 'strong',
1883\ 'dfn',
1884\ 'code',
1885\ 'q',
1886\ 'sub',
1887\ 'sup',
1888\ 'samp',
1889\ 'kbd',
1890\ 'var',
1891\ 'cite',
1892\ 'abbr',
1893\ 'acronym',
1894\ 'input',
1895\ 'select',
1896\ 'textarea',
1897\ 'label',
1898\ 'button',
1899\ 'ins',
1900\ 'del',
1901\ 'script',
1902\ 'noscript'
1903\ ],
1904\ {
1905\ 'onmouseover' : [],
1906\ 'lang' : [],
1907\ 'onmouseout' : [],
1908\ 'onmousemove' : [],
1909\ 'style' : [],
1910\ 'ondblclick' : [],
1911\ 'xml:lang' : [],
1912\ 'dir' : [
1913\ 'ltr',
1914\ 'rtl'
1915\ ],
1916\ 'onkeydown' : [],
1917\ 'onkeyup' : [],
1918\ 'onkeypress' : [],
1919\ 'onmousedown' : [],
1920\ 'onmouseup' : [],
1921\ 'id' : [],
1922\ 'class' : [],
1923\ 'title' : [],
1924\ 'onclick' : []
1925\ }
1926\ ],
1927\ 'ul' : [
1928\ [
1929\ 'li'
1930\ ],
1931\ {
1932\ 'onmouseover' : [],
1933\ 'lang' : [],
1934\ 'onmouseout' : [],
1935\ 'onmousemove' : [],
1936\ 'style' : [],
1937\ 'ondblclick' : [],
1938\ 'xml:lang' : [],
1939\ 'dir' : [
1940\ 'ltr',
1941\ 'rtl'
1942\ ],
1943\ 'onkeydown' : [],
1944\ 'onkeyup' : [],
1945\ 'onkeypress' : [],
1946\ 'onmousedown' : [],
1947\ 'onmouseup' : [],
1948\ 'id' : [],
1949\ 'class' : [],
1950\ 'title' : [],
1951\ 'onclick' : []
1952\ }
1953\ ],
1954\ 'del' : [
1955\ [
1956\ 'p',
1957\ 'h1',
1958\ 'h2',
1959\ 'h3',
1960\ 'h4',
1961\ 'h5',
1962\ 'h6',
1963\ 'div',
1964\ 'ul',
1965\ 'ol',
1966\ 'dl',
1967\ 'pre',
1968\ 'hr',
1969\ 'blockquote',
1970\ 'address',
1971\ 'fieldset',
1972\ 'table',
1973\ 'form',
1974\ 'a',
1975\ 'br',
1976\ 'span',
1977\ 'bdo',
1978\ 'object',
1979\ 'img',
1980\ 'map',
1981\ 'tt',
1982\ 'i',
1983\ 'b',
1984\ 'big',
1985\ 'small',
1986\ 'em',
1987\ 'strong',
1988\ 'dfn',
1989\ 'code',
1990\ 'q',
1991\ 'sub',
1992\ 'sup',
1993\ 'samp',
1994\ 'kbd',
1995\ 'var',
1996\ 'cite',
1997\ 'abbr',
1998\ 'acronym',
1999\ 'input',
2000\ 'select',
2001\ 'textarea',
2002\ 'label',
2003\ 'button',
2004\ 'ins',
2005\ 'del',
2006\ 'script',
2007\ 'noscript'
2008\ ],
2009\ {
2010\ 'ondblclick' : [],
2011\ 'datetime' : [],
2012\ 'dir' : [
2013\ 'ltr',
2014\ 'rtl'
2015\ ],
2016\ 'onkeydown' : [],
2017\ 'onkeyup' : [],
2018\ 'onmouseup' : [],
2019\ 'id' : [],
2020\ 'cite' : [],
2021\ 'onmouseover' : [],
2022\ 'lang' : [],
2023\ 'style' : [],
2024\ 'onmousemove' : [],
2025\ 'onmouseout' : [],
2026\ 'xml:lang' : [],
2027\ 'onmousedown' : [],
2028\ 'onkeypress' : [],
2029\ 'onclick' : [],
2030\ 'title' : [],
2031\ 'class' : []
2032\ }
2033\ ],
2034\ 'blockquote' : [
2035\ [
2036\ 'p',
2037\ 'h1',
2038\ 'h2',
2039\ 'h3',
2040\ 'h4',
2041\ 'h5',
2042\ 'h6',
2043\ 'div',
2044\ 'ul',
2045\ 'ol',
2046\ 'dl',
2047\ 'pre',
2048\ 'hr',
2049\ 'blockquote',
2050\ 'address',
2051\ 'fieldset',
2052\ 'table',
2053\ 'form',
2054\ 'ins',
2055\ 'del',
2056\ 'script',
2057\ 'noscript'
2058\ ],
2059\ {
2060\ 'onmouseover' : [],
2061\ 'lang' : [],
2062\ 'onmouseout' : [],
2063\ 'onmousemove' : [],
2064\ 'style' : [],
2065\ 'ondblclick' : [],
2066\ 'xml:lang' : [],
2067\ 'dir' : [
2068\ 'ltr',
2069\ 'rtl'
2070\ ],
2071\ 'onkeydown' : [],
2072\ 'onkeyup' : [],
2073\ 'onkeypress' : [],
2074\ 'onmousedown' : [],
2075\ 'onmouseup' : [],
2076\ 'id' : [],
2077\ 'class' : [],
2078\ 'title' : [],
2079\ 'onclick' : [],
2080\ 'cite' : []
2081\ }
2082\ ],
2083\ 'style' : [[],
2084\ {
2085\ 'lang' : [],
2086\ 'media' : [],
2087\ 'title' : [],
2088\ 'type' : [],
2089\ 'xml:space' : [
2090\ 'preserve'
2091\ ],
2092\ 'xml:lang' : [],
2093\ 'dir' : [
2094\ 'ltr',
2095\ 'rtl'
2096\ ]
2097\ }
2098\ ],
2099\ 'dfn' : [
2100\ [
2101\ 'a',
2102\ 'br',
2103\ 'span',
2104\ 'bdo',
2105\ 'object',
2106\ 'img',
2107\ 'map',
2108\ 'tt',
2109\ 'i',
2110\ 'b',
2111\ 'big',
2112\ 'small',
2113\ 'em',
2114\ 'strong',
2115\ 'dfn',
2116\ 'code',
2117\ 'q',
2118\ 'sub',
2119\ 'sup',
2120\ 'samp',
2121\ 'kbd',
2122\ 'var',
2123\ 'cite',
2124\ 'abbr',
2125\ 'acronym',
2126\ 'input',
2127\ 'select',
2128\ 'textarea',
2129\ 'label',
2130\ 'button',
2131\ 'ins',
2132\ 'del',
2133\ 'script',
2134\ 'noscript'
2135\ ],
2136\ {
2137\ 'onmouseover' : [],
2138\ 'lang' : [],
2139\ 'onmouseout' : [],
2140\ 'onmousemove' : [],
2141\ 'style' : [],
2142\ 'ondblclick' : [],
2143\ 'xml:lang' : [],
2144\ 'dir' : [
2145\ 'ltr',
2146\ 'rtl'
2147\ ],
2148\ 'onkeydown' : [],
2149\ 'onkeyup' : [],
2150\ 'onkeypress' : [],
2151\ 'onmousedown' : [],
2152\ 'onmouseup' : [],
2153\ 'id' : [],
2154\ 'class' : [],
2155\ 'title' : [],
2156\ 'onclick' : []
2157\ }
2158\ ],
2159\ 'h3' : [
2160\ [
2161\ 'a',
2162\ 'br',
2163\ 'span',
2164\ 'bdo',
2165\ 'object',
2166\ 'img',
2167\ 'map',
2168\ 'tt',
2169\ 'i',
2170\ 'b',
2171\ 'big',
2172\ 'small',
2173\ 'em',
2174\ 'strong',
2175\ 'dfn',
2176\ 'code',
2177\ 'q',
2178\ 'sub',
2179\ 'sup',
2180\ 'samp',
2181\ 'kbd',
2182\ 'var',
2183\ 'cite',
2184\ 'abbr',
2185\ 'acronym',
2186\ 'input',
2187\ 'select',
2188\ 'textarea',
2189\ 'label',
2190\ 'button',
2191\ 'ins',
2192\ 'del',
2193\ 'script',
2194\ 'noscript'
2195\ ],
2196\ {
2197\ 'onmouseover' : [],
2198\ 'lang' : [],
2199\ 'onmouseout' : [],
2200\ 'onmousemove' : [],
2201\ 'style' : [],
2202\ 'ondblclick' : [],
2203\ 'xml:lang' : [],
2204\ 'dir' : [
2205\ 'ltr',
2206\ 'rtl'
2207\ ],
2208\ 'onkeydown' : [],
2209\ 'onkeyup' : [],
2210\ 'onkeypress' : [],
2211\ 'onmousedown' : [],
2212\ 'onmouseup' : [],
2213\ 'id' : [],
2214\ 'class' : [],
2215\ 'title' : [],
2216\ 'onclick' : []
2217\ }
2218\ ],
2219\ 'textarea' : [[],
2220\ {
2221\ 'accesskey' : [],
2222\ 'disabled' : [
2223\ 'disabled'
2224\ ],
2225\ 'ondblclick' : [],
2226\ 'rows' : [],
2227\ 'onblur' : [],
2228\ 'cols' : [],
2229\ 'dir' : [
2230\ 'ltr',
2231\ 'rtl'
2232\ ],
2233\ 'onchange' : [],
2234\ 'onfocus' : [],
2235\ 'readonly' : [
2236\ 'BOOL'
2237\ ],
2238\ 'onkeydown' : [],
2239\ 'onkeyup' : [],
2240\ 'onmouseup' : [],
2241\ 'id' : [],
2242\ 'onselect' : [],
2243\ 'onmouseover' : [],
2244\ 'tabindex' : [],
2245\ 'lang' : [],
2246\ 'style' : [],
2247\ 'onmousemove' : [],
2248\ 'onmouseout' : [],
2249\ 'name' : [],
2250\ 'xml:lang' : [],
2251\ 'onmousedown' : [],
2252\ 'onkeypress' : [],
2253\ 'onclick' : [],
2254\ 'title' : [],
2255\ 'class' : []
2256\ }
2257\ ],
2258\ 'a' : [
2259\ [
2260\ 'br',
2261\ 'span',
2262\ 'bdo',
2263\ 'object',
2264\ 'img',
2265\ 'map',
2266\ 'tt',
2267\ 'i',
2268\ 'b',
2269\ 'big',
2270\ 'small',
2271\ 'em',
2272\ 'strong',
2273\ 'dfn',
2274\ 'code',
2275\ 'q',
2276\ 'sub',
2277\ 'sup',
2278\ 'samp',
2279\ 'kbd',
2280\ 'var',
2281\ 'cite',
2282\ 'abbr',
2283\ 'acronym',
2284\ 'input',
2285\ 'select',
2286\ 'textarea',
2287\ 'label',
2288\ 'button',
2289\ 'ins',
2290\ 'del',
2291\ 'script',
2292\ 'noscript'
2293\ ],
2294\ {
2295\ 'accesskey' : [],
2296\ 'rel' : [],
2297\ 'coords' : [],
2298\ 'ondblclick' : [],
2299\ 'onblur' : [],
2300\ 'dir' : [
2301\ 'ltr',
2302\ 'rtl'
2303\ ],
2304\ 'onfocus' : [],
2305\ 'onkeydown' : [],
2306\ 'onkeyup' : [],
2307\ 'href' : [],
2308\ 'onmouseup' : [],
2309\ 'id' : [],
2310\ 'onmouseover' : [],
2311\ 'tabindex' : [],
2312\ 'lang' : [],
2313\ 'name' : [],
2314\ 'style' : [],
2315\ 'onmousemove' : [],
2316\ 'onmouseout' : [],
2317\ 'charset' : [],
2318\ 'hreflang' : [],
2319\ 'xml:lang' : [],
2320\ 'onmousedown' : [],
2321\ 'onkeypress' : [],
2322\ 'rev' : [],
2323\ 'shape' : [
2324\ 'rect',
2325\ 'circle',
2326\ 'poly',
2327\ 'default'
2328\ ],
2329\ 'type' : [],
2330\ 'onclick' : [],
2331\ 'title' : [],
2332\ 'class' : []
2333\ }
2334\ ],
2335\ 'img' : [[],
2336\ {
2337\ 'width' : [],
2338\ 'ismap' : [
2339\ 'BOOL'
2340\ ],
2341\ 'usemap' : [],
2342\ 'ondblclick' : [],
2343\ 'dir' : [
2344\ 'ltr',
2345\ 'rtl'
2346\ ],
2347\ 'onkeydown' : [],
2348\ 'onkeyup' : [],
2349\ 'onmouseup' : [],
2350\ 'id' : [],
2351\ 'onmouseover' : [],
2352\ 'lang' : [],
2353\ 'alt' : [],
2354\ 'longdesc' : [],
2355\ 'src' : [],
2356\ 'style' : [],
2357\ 'onmousemove' : [],
2358\ 'onmouseout' : [],
2359\ 'height' : [],
2360\ 'xml:lang' : [],
2361\ 'onmousedown' : [],
2362\ 'onkeypress' : [],
2363\ 'onclick' : [],
2364\ 'title' : [],
2365\ 'class' : []
2366\ }
2367\ ],
2368\ 'tt' : [
2369\ [
2370\ 'a',
2371\ 'br',
2372\ 'span',
2373\ 'bdo',
2374\ 'object',
2375\ 'img',
2376\ 'map',
2377\ 'tt',
2378\ 'i',
2379\ 'b',
2380\ 'big',
2381\ 'small',
2382\ 'em',
2383\ 'strong',
2384\ 'dfn',
2385\ 'code',
2386\ 'q',
2387\ 'sub',
2388\ 'sup',
2389\ 'samp',
2390\ 'kbd',
2391\ 'var',
2392\ 'cite',
2393\ 'abbr',
2394\ 'acronym',
2395\ 'input',
2396\ 'select',
2397\ 'textarea',
2398\ 'label',
2399\ 'button',
2400\ 'ins',
2401\ 'del',
2402\ 'script',
2403\ 'noscript'
2404\ ],
2405\ {
2406\ 'onmouseover' : [],
2407\ 'lang' : [],
2408\ 'onmouseout' : [],
2409\ 'onmousemove' : [],
2410\ 'style' : [],
2411\ 'ondblclick' : [],
2412\ 'xml:lang' : [],
2413\ 'dir' : [
2414\ 'ltr',
2415\ 'rtl'
2416\ ],
2417\ 'onkeydown' : [],
2418\ 'onkeyup' : [],
2419\ 'onkeypress' : [],
2420\ 'onmousedown' : [],
2421\ 'onmouseup' : [],
2422\ 'id' : [],
2423\ 'class' : [],
2424\ 'title' : [],
2425\ 'onclick' : []
2426\ }
2427\ ],
2428\ 'thead' : [
2429\ [
2430\ 'tr'
2431\ ],
2432\ {
2433\ 'ondblclick' : [],
2434\ 'dir' : [
2435\ 'ltr',
2436\ 'rtl'
2437\ ],
2438\ 'onkeydown' : [],
2439\ 'onkeyup' : [],
2440\ 'onmouseup' : [],
2441\ 'id' : [],
2442\ 'charoff' : [],
2443\ 'onmouseover' : [],
2444\ 'lang' : [],
2445\ 'align' : [
2446\ 'left',
2447\ 'center',
2448\ 'right',
2449\ 'justify',
2450\ 'char'
2451\ ],
2452\ 'valign' : [
2453\ 'top',
2454\ 'middle',
2455\ 'bottom',
2456\ 'baseline'
2457\ ],
2458\ 'style' : [],
2459\ 'onmousemove' : [],
2460\ 'onmouseout' : [],
2461\ 'xml:lang' : [],
2462\ 'char' : [],
2463\ 'onmousedown' : [],
2464\ 'onkeypress' : [],
2465\ 'onclick' : [],
2466\ 'title' : [],
2467\ 'class' : []
2468\ }
2469\ ],
2470\ 'abbr' : [
2471\ [
2472\ 'a',
2473\ 'br',
2474\ 'span',
2475\ 'bdo',
2476\ 'object',
2477\ 'img',
2478\ 'map',
2479\ 'tt',
2480\ 'i',
2481\ 'b',
2482\ 'big',
2483\ 'small',
2484\ 'em',
2485\ 'strong',
2486\ 'dfn',
2487\ 'code',
2488\ 'q',
2489\ 'sub',
2490\ 'sup',
2491\ 'samp',
2492\ 'kbd',
2493\ 'var',
2494\ 'cite',
2495\ 'abbr',
2496\ 'acronym',
2497\ 'input',
2498\ 'select',
2499\ 'textarea',
2500\ 'label',
2501\ 'button',
2502\ 'ins',
2503\ 'del',
2504\ 'script',
2505\ 'noscript'
2506\ ],
2507\ {
2508\ 'onmouseover' : [],
2509\ 'lang' : [],
2510\ 'onmouseout' : [],
2511\ 'onmousemove' : [],
2512\ 'style' : [],
2513\ 'ondblclick' : [],
2514\ 'xml:lang' : [],
2515\ 'dir' : [
2516\ 'ltr',
2517\ 'rtl'
2518\ ],
2519\ 'onkeydown' : [],
2520\ 'onkeyup' : [],
2521\ 'onkeypress' : [],
2522\ 'onmousedown' : [],
2523\ 'onmouseup' : [],
2524\ 'id' : [],
2525\ 'class' : [],
2526\ 'title' : [],
2527\ 'onclick' : []
2528\ }
2529\ ],
2530\ 'h6' : [
2531\ [
2532\ 'a',
2533\ 'br',
2534\ 'span',
2535\ 'bdo',
2536\ 'object',
2537\ 'img',
2538\ 'map',
2539\ 'tt',
2540\ 'i',
2541\ 'b',
2542\ 'big',
2543\ 'small',
2544\ 'em',
2545\ 'strong',
2546\ 'dfn',
2547\ 'code',
2548\ 'q',
2549\ 'sub',
2550\ 'sup',
2551\ 'samp',
2552\ 'kbd',
2553\ 'var',
2554\ 'cite',
2555\ 'abbr',
2556\ 'acronym',
2557\ 'input',
2558\ 'select',
2559\ 'textarea',
2560\ 'label',
2561\ 'button',
2562\ 'ins',
2563\ 'del',
2564\ 'script',
2565\ 'noscript'
2566\ ],
2567\ {
2568\ 'onmouseover' : [],
2569\ 'lang' : [],
2570\ 'onmouseout' : [],
2571\ 'onmousemove' : [],
2572\ 'style' : [],
2573\ 'ondblclick' : [],
2574\ 'xml:lang' : [],
2575\ 'dir' : [
2576\ 'ltr',
2577\ 'rtl'
2578\ ],
2579\ 'onkeydown' : [],
2580\ 'onkeyup' : [],
2581\ 'onkeypress' : [],
2582\ 'onmousedown' : [],
2583\ 'onmouseup' : [],
2584\ 'id' : [],
2585\ 'class' : [],
2586\ 'title' : [],
2587\ 'onclick' : []
2588\ }
2589\ ],
2590\ 'sup' : [
2591\ [
2592\ 'a',
2593\ 'br',
2594\ 'span',
2595\ 'bdo',
2596\ 'object',
2597\ 'img',
2598\ 'map',
2599\ 'tt',
2600\ 'i',
2601\ 'b',
2602\ 'big',
2603\ 'small',
2604\ 'em',
2605\ 'strong',
2606\ 'dfn',
2607\ 'code',
2608\ 'q',
2609\ 'sub',
2610\ 'sup',
2611\ 'samp',
2612\ 'kbd',
2613\ 'var',
2614\ 'cite',
2615\ 'abbr',
2616\ 'acronym',
2617\ 'input',
2618\ 'select',
2619\ 'textarea',
2620\ 'label',
2621\ 'button',
2622\ 'ins',
2623\ 'del',
2624\ 'script',
2625\ 'noscript'
2626\ ],
2627\ {
2628\ 'onmouseover' : [],
2629\ 'lang' : [],
2630\ 'onmouseout' : [],
2631\ 'onmousemove' : [],
2632\ 'style' : [],
2633\ 'ondblclick' : [],
2634\ 'xml:lang' : [],
2635\ 'dir' : [
2636\ 'ltr',
2637\ 'rtl'
2638\ ],
2639\ 'onkeydown' : [],
2640\ 'onkeyup' : [],
2641\ 'onkeypress' : [],
2642\ 'onmousedown' : [],
2643\ 'onmouseup' : [],
2644\ 'id' : [],
2645\ 'class' : [],
2646\ 'title' : [],
2647\ 'onclick' : []
2648\ }
2649\ ],
2650\ 'address' : [
2651\ [
2652\ 'a',
2653\ 'br',
2654\ 'span',
2655\ 'bdo',
2656\ 'object',
2657\ 'img',
2658\ 'map',
2659\ 'tt',
2660\ 'i',
2661\ 'b',
2662\ 'big',
2663\ 'small',
2664\ 'em',
2665\ 'strong',
2666\ 'dfn',
2667\ 'code',
2668\ 'q',
2669\ 'sub',
2670\ 'sup',
2671\ 'samp',
2672\ 'kbd',
2673\ 'var',
2674\ 'cite',
2675\ 'abbr',
2676\ 'acronym',
2677\ 'input',
2678\ 'select',
2679\ 'textarea',
2680\ 'label',
2681\ 'button',
2682\ 'ins',
2683\ 'del',
2684\ 'script',
2685\ 'noscript'
2686\ ],
2687\ {
2688\ 'onmouseover' : [],
2689\ 'lang' : [],
2690\ 'onmouseout' : [],
2691\ 'onmousemove' : [],
2692\ 'style' : [],
2693\ 'ondblclick' : [],
2694\ 'xml:lang' : [],
2695\ 'dir' : [
2696\ 'ltr',
2697\ 'rtl'
2698\ ],
2699\ 'onkeydown' : [],
2700\ 'onkeyup' : [],
2701\ 'onkeypress' : [],
2702\ 'onmousedown' : [],
2703\ 'onmouseup' : [],
2704\ 'id' : [],
2705\ 'class' : [],
2706\ 'title' : [],
2707\ 'onclick' : []
2708\ }
2709\ ],
2710\ 'param' : [[],
2711\ {
2712\ 'value' : [],
2713\ 'name' : [],
2714\ 'type' : [],
2715\ 'valuetype' : [
2716\ 'data',
2717\ 'ref',
2718\ 'object'
2719\ ],
2720\ 'id' : []
2721\ }
2722\ ],
2723\ 'th' : [
2724\ [
2725\ 'p',
2726\ 'h1',
2727\ 'h2',
2728\ 'h3',
2729\ 'h4',
2730\ 'h5',
2731\ 'h6',
2732\ 'div',
2733\ 'ul',
2734\ 'ol',
2735\ 'dl',
2736\ 'pre',
2737\ 'hr',
2738\ 'blockquote',
2739\ 'address',
2740\ 'fieldset',
2741\ 'table',
2742\ 'form',
2743\ 'a',
2744\ 'br',
2745\ 'span',
2746\ 'bdo',
2747\ 'object',
2748\ 'img',
2749\ 'map',
2750\ 'tt',
2751\ 'i',
2752\ 'b',
2753\ 'big',
2754\ 'small',
2755\ 'em',
2756\ 'strong',
2757\ 'dfn',
2758\ 'code',
2759\ 'q',
2760\ 'sub',
2761\ 'sup',
2762\ 'samp',
2763\ 'kbd',
2764\ 'var',
2765\ 'cite',
2766\ 'abbr',
2767\ 'acronym',
2768\ 'input',
2769\ 'select',
2770\ 'textarea',
2771\ 'label',
2772\ 'button',
2773\ 'ins',
2774\ 'del',
2775\ 'script',
2776\ 'noscript'
2777\ ],
2778\ {
2779\ 'headers' : [],
2780\ 'ondblclick' : [],
2781\ 'axis' : [],
2782\ 'dir' : [
2783\ 'ltr',
2784\ 'rtl'
2785\ ],
2786\ 'abbr' : [],
2787\ 'onkeydown' : [],
2788\ 'onkeyup' : [],
2789\ 'onmouseup' : [],
2790\ 'id' : [],
2791\ 'onmouseover' : [],
2792\ 'lang' : [],
2793\ 'style' : [],
2794\ 'onmousemove' : [],
2795\ 'onmouseout' : [],
2796\ 'xml:lang' : [],
2797\ 'onmousedown' : [],
2798\ 'onkeypress' : [],
2799\ 'onclick' : [],
2800\ 'title' : [],
2801\ 'class' : []
2802\ }
2803\ ],
2804\ 'h1' : [
2805\ [
2806\ 'a',
2807\ 'br',
2808\ 'span',
2809\ 'bdo',
2810\ 'object',
2811\ 'img',
2812\ 'map',
2813\ 'tt',
2814\ 'i',
2815\ 'b',
2816\ 'big',
2817\ 'small',
2818\ 'em',
2819\ 'strong',
2820\ 'dfn',
2821\ 'code',
2822\ 'q',
2823\ 'sub',
2824\ 'sup',
2825\ 'samp',
2826\ 'kbd',
2827\ 'var',
2828\ 'cite',
2829\ 'abbr',
2830\ 'acronym',
2831\ 'input',
2832\ 'select',
2833\ 'textarea',
2834\ 'label',
2835\ 'button',
2836\ 'ins',
2837\ 'del',
2838\ 'script',
2839\ 'noscript'
2840\ ],
2841\ {
2842\ 'onmouseover' : [],
2843\ 'lang' : [],
2844\ 'onmouseout' : [],
2845\ 'onmousemove' : [],
2846\ 'style' : [],
2847\ 'ondblclick' : [],
2848\ 'xml:lang' : [],
2849\ 'dir' : [
2850\ 'ltr',
2851\ 'rtl'
2852\ ],
2853\ 'onkeydown' : [],
2854\ 'onkeyup' : [],
2855\ 'onkeypress' : [],
2856\ 'onmousedown' : [],
2857\ 'onmouseup' : [],
2858\ 'id' : [],
2859\ 'class' : [],
2860\ 'title' : [],
2861\ 'onclick' : []
2862\ }
2863\ ],
2864\ 'head' : [
2865\ [
2866\ 'script',
2867\ 'style',
2868\ 'meta',
2869\ 'link',
2870\ 'object',
2871\ 'title',
2872\ 'script',
2873\ 'style',
2874\ 'meta',
2875\ 'link',
2876\ 'object',
2877\ 'base',
2878\ 'script',
2879\ 'style',
2880\ 'meta',
2881\ 'link',
2882\ 'object',
2883\ 'base',
2884\ 'script',
2885\ 'style',
2886\ 'meta',
2887\ 'link',
2888\ 'object',
2889\ 'title',
2890\ 'script',
2891\ 'style',
2892\ 'meta',
2893\ 'link',
2894\ 'object'
2895\ ],
2896\ {
2897\ 'profile' : [],
2898\ 'lang' : [],
2899\ 'xml:lang' : [],
2900\ 'dir' : [
2901\ 'ltr',
2902\ 'rtl'
2903\ ]
2904\ }
2905\ ],
2906\ 'tbody' : [
2907\ [
2908\ 'tr'
2909\ ],
2910\ {
2911\ 'ondblclick' : [],
2912\ 'dir' : [
2913\ 'ltr',
2914\ 'rtl'
2915\ ],
2916\ 'onkeydown' : [],
2917\ 'onkeyup' : [],
2918\ 'onmouseup' : [],
2919\ 'id' : [],
2920\ 'charoff' : [],
2921\ 'onmouseover' : [],
2922\ 'lang' : [],
2923\ 'align' : [
2924\ 'left',
2925\ 'center',
2926\ 'right',
2927\ 'justify',
2928\ 'char'
2929\ ],
2930\ 'valign' : [
2931\ 'top',
2932\ 'middle',
2933\ 'bottom',
2934\ 'baseline'
2935\ ],
2936\ 'style' : [],
2937\ 'onmousemove' : [],
2938\ 'onmouseout' : [],
2939\ 'xml:lang' : [],
2940\ 'char' : [],
2941\ 'onmousedown' : [],
2942\ 'onkeypress' : [],
2943\ 'onclick' : [],
2944\ 'title' : [],
2945\ 'class' : []
2946\ }
2947\ ],
2948\ 'legend' : [
2949\ [
2950\ 'a',
2951\ 'br',
2952\ 'span',
2953\ 'bdo',
2954\ 'object',
2955\ 'img',
2956\ 'map',
2957\ 'tt',
2958\ 'i',
2959\ 'b',
2960\ 'big',
2961\ 'small',
2962\ 'em',
2963\ 'strong',
2964\ 'dfn',
2965\ 'code',
2966\ 'q',
2967\ 'sub',
2968\ 'sup',
2969\ 'samp',
2970\ 'kbd',
2971\ 'var',
2972\ 'cite',
2973\ 'abbr',
2974\ 'acronym',
2975\ 'input',
2976\ 'select',
2977\ 'textarea',
2978\ 'label',
2979\ 'button',
2980\ 'ins',
2981\ 'del',
2982\ 'script',
2983\ 'noscript'
2984\ ],
2985\ {
2986\ 'accesskey' : [],
2987\ 'onmouseover' : [],
2988\ 'lang' : [],
2989\ 'onmouseout' : [],
2990\ 'onmousemove' : [],
2991\ 'style' : [],
2992\ 'ondblclick' : [],
2993\ 'xml:lang' : [],
2994\ 'dir' : [
2995\ 'ltr',
2996\ 'rtl'
2997\ ],
2998\ 'onkeydown' : [],
2999\ 'onkeyup' : [],
3000\ 'onkeypress' : [],
3001\ 'onmousedown' : [],
3002\ 'onmouseup' : [],
3003\ 'id' : [],
3004\ 'class' : [],
3005\ 'title' : [],
3006\ 'onclick' : []
3007\ }
3008\ ],
3009\ 'dd' : [
3010\ [
3011\ 'p',
3012\ 'h1',
3013\ 'h2',
3014\ 'h3',
3015\ 'h4',
3016\ 'h5',
3017\ 'h6',
3018\ 'div',
3019\ 'ul',
3020\ 'ol',
3021\ 'dl',
3022\ 'pre',
3023\ 'hr',
3024\ 'blockquote',
3025\ 'address',
3026\ 'fieldset',
3027\ 'table',
3028\ 'form',
3029\ 'a',
3030\ 'br',
3031\ 'span',
3032\ 'bdo',
3033\ 'object',
3034\ 'img',
3035\ 'map',
3036\ 'tt',
3037\ 'i',
3038\ 'b',
3039\ 'big',
3040\ 'small',
3041\ 'em',
3042\ 'strong',
3043\ 'dfn',
3044\ 'code',
3045\ 'q',
3046\ 'sub',
3047\ 'sup',
3048\ 'samp',
3049\ 'kbd',
3050\ 'var',
3051\ 'cite',
3052\ 'abbr',
3053\ 'acronym',
3054\ 'input',
3055\ 'select',
3056\ 'textarea',
3057\ 'label',
3058\ 'button',
3059\ 'ins',
3060\ 'del',
3061\ 'script',
3062\ 'noscript'
3063\ ],
3064\ {
3065\ 'onmouseover' : [],
3066\ 'lang' : [],
3067\ 'onmouseout' : [],
3068\ 'onmousemove' : [],
3069\ 'style' : [],
3070\ 'ondblclick' : [],
3071\ 'xml:lang' : [],
3072\ 'dir' : [
3073\ 'ltr',
3074\ 'rtl'
3075\ ],
3076\ 'onkeydown' : [],
3077\ 'onkeyup' : [],
3078\ 'onkeypress' : [],
3079\ 'onmousedown' : [],
3080\ 'onmouseup' : [],
3081\ 'id' : [],
3082\ 'class' : [],
3083\ 'title' : [],
3084\ 'onclick' : []
3085\ }
3086\ ],
3087\ 'hr' : [[],
3088\ {
3089\ 'onmouseover' : [],
3090\ 'lang' : [],
3091\ 'onmouseout' : [],
3092\ 'onmousemove' : [],
3093\ 'style' : [],
3094\ 'ondblclick' : [],
3095\ 'xml:lang' : [],
3096\ 'dir' : [
3097\ 'ltr',
3098\ 'rtl'
3099\ ],
3100\ 'onkeydown' : [],
3101\ 'onkeyup' : [],
3102\ 'onkeypress' : [],
3103\ 'onmousedown' : [],
3104\ 'onmouseup' : [],
3105\ 'id' : [],
3106\ 'class' : [],
3107\ 'title' : [],
3108\ 'onclick' : []
3109\ }
3110\ ],
3111\ 'li' : [
3112\ [
3113\ 'p',
3114\ 'h1',
3115\ 'h2',
3116\ 'h3',
3117\ 'h4',
3118\ 'h5',
3119\ 'h6',
3120\ 'div',
3121\ 'ul',
3122\ 'ol',
3123\ 'dl',
3124\ 'pre',
3125\ 'hr',
3126\ 'blockquote',
3127\ 'address',
3128\ 'fieldset',
3129\ 'table',
3130\ 'form',
3131\ 'a',
3132\ 'br',
3133\ 'span',
3134\ 'bdo',
3135\ 'object',
3136\ 'img',
3137\ 'map',
3138\ 'tt',
3139\ 'i',
3140\ 'b',
3141\ 'big',
3142\ 'small',
3143\ 'em',
3144\ 'strong',
3145\ 'dfn',
3146\ 'code',
3147\ 'q',
3148\ 'sub',
3149\ 'sup',
3150\ 'samp',
3151\ 'kbd',
3152\ 'var',
3153\ 'cite',
3154\ 'abbr',
3155\ 'acronym',
3156\ 'input',
3157\ 'select',
3158\ 'textarea',
3159\ 'label',
3160\ 'button',
3161\ 'ins',
3162\ 'del',
3163\ 'script',
3164\ 'noscript'
3165\ ],
3166\ {
3167\ 'onmouseover' : [],
3168\ 'lang' : [],
3169\ 'onmouseout' : [],
3170\ 'onmousemove' : [],
3171\ 'style' : [],
3172\ 'ondblclick' : [],
3173\ 'xml:lang' : [],
3174\ 'dir' : [
3175\ 'ltr',
3176\ 'rtl'
3177\ ],
3178\ 'onkeydown' : [],
3179\ 'onkeyup' : [],
3180\ 'onkeypress' : [],
3181\ 'onmousedown' : [],
3182\ 'onmouseup' : [],
3183\ 'id' : [],
3184\ 'class' : [],
3185\ 'title' : [],
3186\ 'onclick' : []
3187\ }
3188\ ],
3189\ 'td' : [
3190\ [
3191\ 'p',
3192\ 'h1',
3193\ 'h2',
3194\ 'h3',
3195\ 'h4',
3196\ 'h5',
3197\ 'h6',
3198\ 'div',
3199\ 'ul',
3200\ 'ol',
3201\ 'dl',
3202\ 'pre',
3203\ 'hr',
3204\ 'blockquote',
3205\ 'address',
3206\ 'fieldset',
3207\ 'table',
3208\ 'form',
3209\ 'a',
3210\ 'br',
3211\ 'span',
3212\ 'bdo',
3213\ 'object',
3214\ 'img',
3215\ 'map',
3216\ 'tt',
3217\ 'i',
3218\ 'b',
3219\ 'big',
3220\ 'small',
3221\ 'em',
3222\ 'strong',
3223\ 'dfn',
3224\ 'code',
3225\ 'q',
3226\ 'sub',
3227\ 'sup',
3228\ 'samp',
3229\ 'kbd',
3230\ 'var',
3231\ 'cite',
3232\ 'abbr',
3233\ 'acronym',
3234\ 'input',
3235\ 'select',
3236\ 'textarea',
3237\ 'label',
3238\ 'button',
3239\ 'ins',
3240\ 'del',
3241\ 'script',
3242\ 'noscript'
3243\ ],
3244\ {
3245\ 'headers' : [],
3246\ 'ondblclick' : [],
3247\ 'axis' : [],
3248\ 'dir' : [
3249\ 'ltr',
3250\ 'rtl'
3251\ ],
3252\ 'abbr' : [],
3253\ 'onkeydown' : [],
3254\ 'onkeyup' : [],
3255\ 'onmouseup' : [],
3256\ 'id' : [],
3257\ 'onmouseover' : [],
3258\ 'lang' : [],
3259\ 'style' : [],
3260\ 'onmousemove' : [],
3261\ 'onmouseout' : [],
3262\ 'xml:lang' : [],
3263\ 'onmousedown' : [],
3264\ 'onkeypress' : [],
3265\ 'onclick' : [],
3266\ 'title' : [],
3267\ 'class' : []
3268\ }
3269\ ],
3270\ 'label' : [
3271\ [
3272\ 'a',
3273\ 'br',
3274\ 'span',
3275\ 'bdo',
3276\ 'object',
3277\ 'img',
3278\ 'map',
3279\ 'tt',
3280\ 'i',
3281\ 'b',
3282\ 'big',
3283\ 'small',
3284\ 'em',
3285\ 'strong',
3286\ 'dfn',
3287\ 'code',
3288\ 'q',
3289\ 'sub',
3290\ 'sup',
3291\ 'samp',
3292\ 'kbd',
3293\ 'var',
3294\ 'cite',
3295\ 'abbr',
3296\ 'acronym',
3297\ 'input',
3298\ 'select',
3299\ 'textarea',
3300\ 'label',
3301\ 'button',
3302\ 'ins',
3303\ 'del',
3304\ 'script',
3305\ 'noscript'
3306\ ],
3307\ {
3308\ 'onmouseover' : [],
3309\ 'lang' : [],
3310\ 'for' : [],
3311\ 'onmouseout' : [],
3312\ 'onmousemove' : [],
3313\ 'style' : [],
3314\ 'ondblclick' : [],
3315\ 'xml:lang' : [],
3316\ 'dir' : [
3317\ 'ltr',
3318\ 'rtl'
3319\ ],
3320\ 'onkeydown' : [],
3321\ 'onkeyup' : [],
3322\ 'onkeypress' : [],
3323\ 'onmousedown' : [],
3324\ 'onmouseup' : [],
3325\ 'id' : [],
3326\ 'class' : [],
3327\ 'title' : [],
3328\ 'onclick' : []
3329\ }
3330\ ],
3331\ 'dl' : [
3332\ [
3333\ 'dt',
3334\ 'dd'
3335\ ],
3336\ {
3337\ 'onmouseover' : [],
3338\ 'lang' : [],
3339\ 'onmouseout' : [],
3340\ 'onmousemove' : [],
3341\ 'style' : [],
3342\ 'ondblclick' : [],
3343\ 'xml:lang' : [],
3344\ 'dir' : [
3345\ 'ltr',
3346\ 'rtl'
3347\ ],
3348\ 'onkeydown' : [],
3349\ 'onkeyup' : [],
3350\ 'onkeypress' : [],
3351\ 'onmousedown' : [],
3352\ 'onmouseup' : [],
3353\ 'id' : [],
3354\ 'class' : [],
3355\ 'title' : [],
3356\ 'onclick' : []
3357\ }
3358\ ],
3359\ 'kbd' : [
3360\ [
3361\ 'a',
3362\ 'br',
3363\ 'span',
3364\ 'bdo',
3365\ 'object',
3366\ 'img',
3367\ 'map',
3368\ 'tt',
3369\ 'i',
3370\ 'b',
3371\ 'big',
3372\ 'small',
3373\ 'em',
3374\ 'strong',
3375\ 'dfn',
3376\ 'code',
3377\ 'q',
3378\ 'sub',
3379\ 'sup',
3380\ 'samp',
3381\ 'kbd',
3382\ 'var',
3383\ 'cite',
3384\ 'abbr',
3385\ 'acronym',
3386\ 'input',
3387\ 'select',
3388\ 'textarea',
3389\ 'label',
3390\ 'button',
3391\ 'ins',
3392\ 'del',
3393\ 'script',
3394\ 'noscript'
3395\ ],
3396\ {
3397\ 'onmouseover' : [],
3398\ 'lang' : [],
3399\ 'onmouseout' : [],
3400\ 'onmousemove' : [],
3401\ 'style' : [],
3402\ 'ondblclick' : [],
3403\ 'xml:lang' : [],
3404\ 'dir' : [
3405\ 'ltr',
3406\ 'rtl'
3407\ ],
3408\ 'onkeydown' : [],
3409\ 'onkeyup' : [],
3410\ 'onkeypress' : [],
3411\ 'onmousedown' : [],
3412\ 'onmouseup' : [],
3413\ 'id' : [],
3414\ 'class' : [],
3415\ 'title' : [],
3416\ 'onclick' : []
3417\ }
3418\ ],
3419\ 'div' : [
3420\ [
3421\ 'p',
3422\ 'h1',
3423\ 'h2',
3424\ 'h3',
3425\ 'h4',
3426\ 'h5',
3427\ 'h6',
3428\ 'div',
3429\ 'ul',
3430\ 'ol',
3431\ 'dl',
3432\ 'pre',
3433\ 'hr',
3434\ 'blockquote',
3435\ 'address',
3436\ 'fieldset',
3437\ 'table',
3438\ 'form',
3439\ 'a',
3440\ 'br',
3441\ 'span',
3442\ 'bdo',
3443\ 'object',
3444\ 'img',
3445\ 'map',
3446\ 'tt',
3447\ 'i',
3448\ 'b',
3449\ 'big',
3450\ 'small',
3451\ 'em',
3452\ 'strong',
3453\ 'dfn',
3454\ 'code',
3455\ 'q',
3456\ 'sub',
3457\ 'sup',
3458\ 'samp',
3459\ 'kbd',
3460\ 'var',
3461\ 'cite',
3462\ 'abbr',
3463\ 'acronym',
3464\ 'input',
3465\ 'select',
3466\ 'textarea',
3467\ 'label',
3468\ 'button',
3469\ 'ins',
3470\ 'del',
3471\ 'script',
3472\ 'noscript'
3473\ ],
3474\ {
3475\ 'onmouseover' : [],
3476\ 'lang' : [],
3477\ 'onmouseout' : [],
3478\ 'onmousemove' : [],
3479\ 'style' : [],
3480\ 'ondblclick' : [],
3481\ 'xml:lang' : [],
3482\ 'dir' : [
3483\ 'ltr',
3484\ 'rtl'
3485\ ],
3486\ 'onkeydown' : [],
3487\ 'onkeyup' : [],
3488\ 'onkeypress' : [],
3489\ 'onmousedown' : [],
3490\ 'onmouseup' : [],
3491\ 'id' : [],
3492\ 'class' : [],
3493\ 'title' : [],
3494\ 'onclick' : []
3495\ }
3496\ ],
3497\ 'object' : [
3498\ [
3499\ 'param',
3500\ 'p',
3501\ 'h1',
3502\ 'h2',
3503\ 'h3',
3504\ 'h4',
3505\ 'h5',
3506\ 'h6',
3507\ 'div',
3508\ 'ul',
3509\ 'ol',
3510\ 'dl',
3511\ 'pre',
3512\ 'hr',
3513\ 'blockquote',
3514\ 'address',
3515\ 'fieldset',
3516\ 'table',
3517\ 'form',
3518\ 'a',
3519\ 'br',
3520\ 'span',
3521\ 'bdo',
3522\ 'object',
3523\ 'img',
3524\ 'map',
3525\ 'tt',
3526\ 'i',
3527\ 'b',
3528\ 'big',
3529\ 'small',
3530\ 'em',
3531\ 'strong',
3532\ 'dfn',
3533\ 'code',
3534\ 'q',
3535\ 'sub',
3536\ 'sup',
3537\ 'samp',
3538\ 'kbd',
3539\ 'var',
3540\ 'cite',
3541\ 'abbr',
3542\ 'acronym',
3543\ 'input',
3544\ 'select',
3545\ 'textarea',
3546\ 'label',
3547\ 'button',
3548\ 'ins',
3549\ 'del',
3550\ 'script',
3551\ 'noscript'
3552\ ],
3553\ {
3554\ 'width' : [],
3555\ 'usemap' : [],
3556\ 'ondblclick' : [],
3557\ 'dir' : [
3558\ 'ltr',
3559\ 'rtl'
3560\ ],
3561\ 'onkeydown' : [],
3562\ 'onkeyup' : [],
3563\ 'onmouseup' : [],
3564\ 'id' : [],
3565\ 'onmouseover' : [],
3566\ 'tabindex' : [],
3567\ 'standby' : [],
3568\ 'archive' : [],
3569\ 'lang' : [],
3570\ 'classid' : [],
3571\ 'name' : [],
3572\ 'style' : [],
3573\ 'onmousemove' : [],
3574\ 'onmouseout' : [],
3575\ 'data' : [],
3576\ 'height' : [],
3577\ 'xml:lang' : [],
3578\ 'codetype' : [],
3579\ 'declare' : [
3580\ 'BOOL'
3581\ ],
3582\ 'onmousedown' : [],
3583\ 'onkeypress' : [],
3584\ 'type' : [],
3585\ 'onclick' : [],
3586\ 'title' : [],
3587\ 'class' : [],
3588\ 'codebase' : []
3589\ }
3590\ ],
3591\ 'dt' : [
3592\ [
3593\ 'a',
3594\ 'br',
3595\ 'span',
3596\ 'bdo',
3597\ 'object',
3598\ 'img',
3599\ 'map',
3600\ 'tt',
3601\ 'i',
3602\ 'b',
3603\ 'big',
3604\ 'small',
3605\ 'em',
3606\ 'strong',
3607\ 'dfn',
3608\ 'code',
3609\ 'q',
3610\ 'sub',
3611\ 'sup',
3612\ 'samp',
3613\ 'kbd',
3614\ 'var',
3615\ 'cite',
3616\ 'abbr',
3617\ 'acronym',
3618\ 'input',
3619\ 'select',
3620\ 'textarea',
3621\ 'label',
3622\ 'button',
3623\ 'ins',
3624\ 'del',
3625\ 'script',
3626\ 'noscript'
3627\ ],
3628\ {
3629\ 'onmouseover' : [],
3630\ 'lang' : [],
3631\ 'onmouseout' : [],
3632\ 'onmousemove' : [],
3633\ 'style' : [],
3634\ 'ondblclick' : [],
3635\ 'xml:lang' : [],
3636\ 'dir' : [
3637\ 'ltr',
3638\ 'rtl'
3639\ ],
3640\ 'onkeydown' : [],
3641\ 'onkeyup' : [],
3642\ 'onkeypress' : [],
3643\ 'onmousedown' : [],
3644\ 'onmouseup' : [],
3645\ 'id' : [],
3646\ 'class' : [],
3647\ 'title' : [],
3648\ 'onclick' : []
3649\ }
3650\ ],
3651\ 'pre' : [
3652\ [
3653\ 'a',
3654\ 'br',
3655\ 'span',
3656\ 'bdo',
3657\ 'map',
3658\ 'tt',
3659\ 'i',
3660\ 'b',
3661\ 'em',
3662\ 'strong',
3663\ 'dfn',
3664\ 'code',
3665\ 'q',
3666\ 'sub',
3667\ 'sup',
3668\ 'samp',
3669\ 'kbd',
3670\ 'var',
3671\ 'cite',
3672\ 'abbr',
3673\ 'acronym',
3674\ 'input',
3675\ 'select',
3676\ 'textarea',
3677\ 'label',
3678\ 'button'
3679\ ],
3680\ {
3681\ 'ondblclick' : [],
3682\ 'dir' : [
3683\ 'ltr',
3684\ 'rtl'
3685\ ],
3686\ 'onkeydown' : [],
3687\ 'onkeyup' : [],
3688\ 'onmouseup' : [],
3689\ 'id' : [],
3690\ 'onmouseover' : [],
3691\ 'lang' : [],
3692\ 'style' : [],
3693\ 'onmousemove' : [],
3694\ 'onmouseout' : [],
3695\ 'xml:lang' : [],
3696\ 'xml:space' : [
3697\ 'preserve'
3698\ ],
3699\ 'onmousedown' : [],
3700\ 'onkeypress' : [],
3701\ 'onclick' : [],
3702\ 'title' : [],
3703\ 'class' : []
3704\ }
3705\ ],
3706\ 'samp' : [
3707\ [
3708\ 'a',
3709\ 'br',
3710\ 'span',
3711\ 'bdo',
3712\ 'object',
3713\ 'img',
3714\ 'map',
3715\ 'tt',
3716\ 'i',
3717\ 'b',
3718\ 'big',
3719\ 'small',
3720\ 'em',
3721\ 'strong',
3722\ 'dfn',
3723\ 'code',
3724\ 'q',
3725\ 'sub',
3726\ 'sup',
3727\ 'samp',
3728\ 'kbd',
3729\ 'var',
3730\ 'cite',
3731\ 'abbr',
3732\ 'acronym',
3733\ 'input',
3734\ 'select',
3735\ 'textarea',
3736\ 'label',
3737\ 'button',
3738\ 'ins',
3739\ 'del',
3740\ 'script',
3741\ 'noscript'
3742\ ],
3743\ {
3744\ 'onmouseover' : [],
3745\ 'lang' : [],
3746\ 'onmouseout' : [],
3747\ 'onmousemove' : [],
3748\ 'style' : [],
3749\ 'ondblclick' : [],
3750\ 'xml:lang' : [],
3751\ 'dir' : [
3752\ 'ltr',
3753\ 'rtl'
3754\ ],
3755\ 'onkeydown' : [],
3756\ 'onkeyup' : [],
3757\ 'onkeypress' : [],
3758\ 'onmousedown' : [],
3759\ 'onmouseup' : [],
3760\ 'id' : [],
3761\ 'class' : [],
3762\ 'title' : [],
3763\ 'onclick' : []
3764\ }
3765\ ],
3766\ 'col' : [[],
3767\ {
3768\ 'disabled' : [
3769\ 'disabled'
3770\ ],
3771\ 'ondblclick' : [],
3772\ 'dir' : [
3773\ 'ltr',
3774\ 'rtl'
3775\ ],
3776\ 'onkeydown' : [],
3777\ 'onkeyup' : [],
3778\ 'onmouseup' : [],
3779\ 'id' : [],
3780\ 'onmouseover' : [],
3781\ 'lang' : [],
3782\ 'value' : [],
3783\ 'style' : [],
3784\ 'onmousemove' : [],
3785\ 'onmouseout' : [],
3786\ 'xml:lang' : [],
3787\ 'onmousedown' : [],
3788\ 'onkeypress' : [],
3789\ 'label' : [],
3790\ 'onclick' : [],
3791\ 'title' : [],
3792\ 'class' : [],
3793\ 'selected' : [
3794\ 'BOOL'
3795\ ]
3796\ }
3797\ ],
3798\ 'cite' : [
3799\ [
3800\ 'a',
3801\ 'br',
3802\ 'span',
3803\ 'bdo',
3804\ 'object',
3805\ 'img',
3806\ 'map',
3807\ 'tt',
3808\ 'i',
3809\ 'b',
3810\ 'big',
3811\ 'small',
3812\ 'em',
3813\ 'strong',
3814\ 'dfn',
3815\ 'code',
3816\ 'q',
3817\ 'sub',
3818\ 'sup',
3819\ 'samp',
3820\ 'kbd',
3821\ 'var',
3822\ 'cite',
3823\ 'abbr',
3824\ 'acronym',
3825\ 'input',
3826\ 'select',
3827\ 'textarea',
3828\ 'label',
3829\ 'button',
3830\ 'ins',
3831\ 'del',
3832\ 'script',
3833\ 'noscript'
3834\ ],
3835\ {
3836\ 'onmouseover' : [],
3837\ 'lang' : [],
3838\ 'onmouseout' : [],
3839\ 'onmousemove' : [],
3840\ 'style' : [],
3841\ 'ondblclick' : [],
3842\ 'xml:lang' : [],
3843\ 'dir' : [
3844\ 'ltr',
3845\ 'rtl'
3846\ ],
3847\ 'onkeydown' : [],
3848\ 'onkeyup' : [],
3849\ 'onkeypress' : [],
3850\ 'onmousedown' : [],
3851\ 'onmouseup' : [],
3852\ 'id' : [],
3853\ 'class' : [],
3854\ 'title' : [],
3855\ 'onclick' : []
3856\ }
3857\ ],
3858\ 'i' : [
3859\ [
3860\ 'a',
3861\ 'br',
3862\ 'span',
3863\ 'bdo',
3864\ 'object',
3865\ 'img',
3866\ 'map',
3867\ 'tt',
3868\ 'i',
3869\ 'b',
3870\ 'big',
3871\ 'small',
3872\ 'em',
3873\ 'strong',
3874\ 'dfn',
3875\ 'code',
3876\ 'q',
3877\ 'sub',
3878\ 'sup',
3879\ 'samp',
3880\ 'kbd',
3881\ 'var',
3882\ 'cite',
3883\ 'abbr',
3884\ 'acronym',
3885\ 'input',
3886\ 'select',
3887\ 'textarea',
3888\ 'label',
3889\ 'button',
3890\ 'ins',
3891\ 'del',
3892\ 'script',
3893\ 'noscript'
3894\ ],
3895\ {
3896\ 'onmouseover' : [],
3897\ 'lang' : [],
3898\ 'onmouseout' : [],
3899\ 'onmousemove' : [],
3900\ 'style' : [],
3901\ 'ondblclick' : [],
3902\ 'xml:lang' : [],
3903\ 'dir' : [
3904\ 'ltr',
3905\ 'rtl'
3906\ ],
3907\ 'onkeydown' : [],
3908\ 'onkeyup' : [],
3909\ 'onkeypress' : [],
3910\ 'onmousedown' : [],
3911\ 'onmouseup' : [],
3912\ 'id' : [],
3913\ 'class' : [],
3914\ 'title' : [],
3915\ 'onclick' : []
3916\ }
3917\ ],
3918\ 'select' : [
3919\ [
3920\ 'optgroup',
3921\ 'option'
3922\ ],
3923\ {
3924\ 'disabled' : [
3925\ 'BOOL'
3926\ ],
3927\ 'ondblclick' : [],
3928\ 'onblur' : [],
3929\ 'size' : [],
3930\ 'dir' : [
3931\ 'ltr',
3932\ 'rtl'
3933\ ],
3934\ 'onchange' : [],
3935\ 'onfocus' : [],
3936\ 'onkeydown' : [],
3937\ 'onkeyup' : [],
3938\ 'onmouseup' : [],
3939\ 'id' : [],
3940\ 'onmouseover' : [],
3941\ 'tabindex' : [],
3942\ 'lang' : [],
3943\ 'style' : [],
3944\ 'onmousemove' : [],
3945\ 'onmouseout' : [],
3946\ 'name' : [],
3947\ 'xml:lang' : [],
3948\ 'onmousedown' : [],
3949\ 'onkeypress' : [],
3950\ 'multiple' : [
3951\ 'multiple'
3952\ ],
3953\ 'onclick' : [],
3954\ 'title' : [],
3955\ 'class' : []
3956\ }
3957\ ],
3958\ 'link' : [[],
3959\ {
3960\ 'rel' : [],
3961\ 'ondblclick' : [],
3962\ 'dir' : [
3963\ 'ltr',
3964\ 'rtl'
3965\ ],
3966\ 'onkeydown' : [],
3967\ 'onkeyup' : [],
3968\ 'media' : [],
3969\ 'href' : [],
3970\ 'onmouseup' : [],
3971\ 'id' : [],
3972\ 'onmouseover' : [],
3973\ 'lang' : [],
3974\ 'style' : [],
3975\ 'onmousemove' : [],
3976\ 'onmouseout' : [],
3977\ 'charset' : [],
3978\ 'hreflang' : [],
3979\ 'xml:lang' : [],
3980\ 'onmousedown' : [],
3981\ 'onkeypress' : [],
3982\ 'rev' : [],
3983\ 'type' : [],
3984\ 'onclick' : [],
3985\ 'title' : [],
3986\ 'class' : []
3987\ }
3988\ ],
3989\ 'script' : [[],
3990\ {
3991\ 'defer' : [
3992\ 'BOOL'
3993\ ],
3994\ 'src' : [],
3995\ 'type' : [],
3996\ 'charset' : [],
3997\ 'xml:space' : [
3998\ 'preserve'
3999\ ]
4000\ }
4001\ ],
4002\ 'bdo' : [
4003\ [
4004\ 'a',
4005\ 'br',
4006\ 'span',
4007\ 'bdo',
4008\ 'object',
4009\ 'img',
4010\ 'map',
4011\ 'tt',
4012\ 'i',
4013\ 'b',
4014\ 'big',
4015\ 'small',
4016\ 'em',
4017\ 'strong',
4018\ 'dfn',
4019\ 'code',
4020\ 'q',
4021\ 'sub',
4022\ 'sup',
4023\ 'samp',
4024\ 'kbd',
4025\ 'var',
4026\ 'cite',
4027\ 'abbr',
4028\ 'acronym',
4029\ 'input',
4030\ 'select',
4031\ 'textarea',
4032\ 'label',
4033\ 'button',
4034\ 'ins',
4035\ 'del',
4036\ 'script',
4037\ 'noscript'
4038\ ],
4039\ {
4040\ 'onmouseover' : [],
4041\ 'lang' : [],
4042\ 'onmouseout' : [],
4043\ 'onmousemove' : [],
4044\ 'style' : [],
4045\ 'ondblclick' : [],
4046\ 'xml:lang' : [],
4047\ 'dir' : [
4048\ 'ltr',
4049\ 'rtl'
4050\ ],
4051\ 'onkeydown' : [],
4052\ 'onkeyup' : [],
4053\ 'onkeypress' : [],
4054\ 'onmousedown' : [],
4055\ 'onmouseup' : [],
4056\ 'id' : [],
4057\ 'class' : [],
4058\ 'title' : [],
4059\ 'onclick' : []
4060\ }
4061\ ],
4062\ 'colgroup' : [
4063\ [
4064\ 'col'
4065\ ],
4066\ {
4067\ 'width' : [],
4068\ 'ondblclick' : [],
4069\ 'dir' : [
4070\ 'ltr',
4071\ 'rtl'
4072\ ],
4073\ 'onkeydown' : [],
4074\ 'onkeyup' : [],
4075\ 'onmouseup' : [],
4076\ 'id' : [],
4077\ 'charoff' : [],
4078\ 'onmouseover' : [],
4079\ 'align' : [
4080\ 'left',
4081\ 'center',
4082\ 'right',
4083\ 'justify',
4084\ 'char'
4085\ ],
4086\ 'lang' : [],
4087\ 'valign' : [
4088\ 'top',
4089\ 'middle',
4090\ 'bottom',
4091\ 'baseline'
4092\ ],
4093\ 'style' : [],
4094\ 'onmousemove' : [],
4095\ 'onmouseout' : [],
4096\ 'xml:lang' : [],
4097\ 'char' : [],
4098\ 'onmousedown' : [],
4099\ 'onkeypress' : [],
4100\ 'onclick' : [],
4101\ 'title' : [],
4102\ 'class' : [],
4103\ 'span' : [
4104\ '',
4105\ '1',
4106\ ]
4107\ }
4108\ ],
4109\ 'h2' : [
4110\ [
4111\ 'a',
4112\ 'br',
4113\ 'span',
4114\ 'bdo',
4115\ 'object',
4116\ 'img',
4117\ 'map',
4118\ 'tt',
4119\ 'i',
4120\ 'b',
4121\ 'big',
4122\ 'small',
4123\ 'em',
4124\ 'strong',
4125\ 'dfn',
4126\ 'code',
4127\ 'q',
4128\ 'sub',
4129\ 'sup',
4130\ 'samp',
4131\ 'kbd',
4132\ 'var',
4133\ 'cite',
4134\ 'abbr',
4135\ 'acronym',
4136\ 'input',
4137\ 'select',
4138\ 'textarea',
4139\ 'label',
4140\ 'button',
4141\ 'ins',
4142\ 'del',
4143\ 'script',
4144\ 'noscript'
4145\ ],
4146\ {
4147\ 'onmouseover' : [],
4148\ 'lang' : [],
4149\ 'onmouseout' : [],
4150\ 'onmousemove' : [],
4151\ 'style' : [],
4152\ 'ondblclick' : [],
4153\ 'xml:lang' : [],
4154\ 'dir' : [
4155\ 'ltr',
4156\ 'rtl'
4157\ ],
4158\ 'onkeydown' : [],
4159\ 'onkeyup' : [],
4160\ 'onkeypress' : [],
4161\ 'onmousedown' : [],
4162\ 'onmouseup' : [],
4163\ 'id' : [],
4164\ 'class' : [],
4165\ 'title' : [],
4166\ 'onclick' : []
4167\ }
4168\ ],
4169\ 'ins' : [
4170\ [
4171\ 'p',
4172\ 'h1',
4173\ 'h2',
4174\ 'h3',
4175\ 'h4',
4176\ 'h5',
4177\ 'h6',
4178\ 'div',
4179\ 'ul',
4180\ 'ol',
4181\ 'dl',
4182\ 'pre',
4183\ 'hr',
4184\ 'blockquote',
4185\ 'address',
4186\ 'fieldset',
4187\ 'table',
4188\ 'form',
4189\ 'a',
4190\ 'br',
4191\ 'span',
4192\ 'bdo',
4193\ 'object',
4194\ 'img',
4195\ 'map',
4196\ 'tt',
4197\ 'i',
4198\ 'b',
4199\ 'big',
4200\ 'small',
4201\ 'em',
4202\ 'strong',
4203\ 'dfn',
4204\ 'code',
4205\ 'q',
4206\ 'sub',
4207\ 'sup',
4208\ 'samp',
4209\ 'kbd',
4210\ 'var',
4211\ 'cite',
4212\ 'abbr',
4213\ 'acronym',
4214\ 'input',
4215\ 'select',
4216\ 'textarea',
4217\ 'label',
4218\ 'button',
4219\ 'ins',
4220\ 'del',
4221\ 'script',
4222\ 'noscript'
4223\ ],
4224\ {
4225\ 'ondblclick' : [],
4226\ 'datetime' : [],
4227\ 'dir' : [
4228\ 'ltr',
4229\ 'rtl'
4230\ ],
4231\ 'onkeydown' : [],
4232\ 'onkeyup' : [],
4233\ 'onmouseup' : [],
4234\ 'id' : [],
4235\ 'cite' : [],
4236\ 'onmouseover' : [],
4237\ 'lang' : [],
4238\ 'style' : [],
4239\ 'onmousemove' : [],
4240\ 'onmouseout' : [],
4241\ 'xml:lang' : [],
4242\ 'onmousedown' : [],
4243\ 'onkeypress' : [],
4244\ 'onclick' : [],
4245\ 'title' : [],
4246\ 'class' : []
4247\ }
4248\ ],
4249\ 'p' : [
4250\ [
4251\ 'a',
4252\ 'br',
4253\ 'span',
4254\ 'bdo',
4255\ 'object',
4256\ 'img',
4257\ 'map',
4258\ 'tt',
4259\ 'i',
4260\ 'b',
4261\ 'big',
4262\ 'small',
4263\ 'em',
4264\ 'strong',
4265\ 'dfn',
4266\ 'code',
4267\ 'q',
4268\ 'sub',
4269\ 'sup',
4270\ 'samp',
4271\ 'kbd',
4272\ 'var',
4273\ 'cite',
4274\ 'abbr',
4275\ 'acronym',
4276\ 'input',
4277\ 'select',
4278\ 'textarea',
4279\ 'label',
4280\ 'button',
4281\ 'ins',
4282\ 'del',
4283\ 'script',
4284\ 'noscript'
4285\ ],
4286\ {
4287\ 'onmouseover' : [],
4288\ 'lang' : [],
4289\ 'onmouseout' : [],
4290\ 'onmousemove' : [],
4291\ 'style' : [],
4292\ 'ondblclick' : [],
4293\ 'xml:lang' : [],
4294\ 'dir' : [
4295\ 'ltr',
4296\ 'rtl'
4297\ ],
4298\ 'onkeydown' : [],
4299\ 'onkeyup' : [],
4300\ 'onkeypress' : [],
4301\ 'onmousedown' : [],
4302\ 'onmouseup' : [],
4303\ 'id' : [],
4304\ 'class' : [],
4305\ 'title' : [],
4306\ 'onclick' : []
4307\ }
4308\ ],
4309\ 'sub' : [
4310\ [
4311\ 'a',
4312\ 'br',
4313\ 'span',
4314\ 'bdo',
4315\ 'object',
4316\ 'img',
4317\ 'map',
4318\ 'tt',
4319\ 'i',
4320\ 'b',
4321\ 'big',
4322\ 'small',
4323\ 'em',
4324\ 'strong',
4325\ 'dfn',
4326\ 'code',
4327\ 'q',
4328\ 'sub',
4329\ 'sup',
4330\ 'samp',
4331\ 'kbd',
4332\ 'var',
4333\ 'cite',
4334\ 'abbr',
4335\ 'acronym',
4336\ 'input',
4337\ 'select',
4338\ 'textarea',
4339\ 'label',
4340\ 'button',
4341\ 'ins',
4342\ 'del',
4343\ 'script',
4344\ 'noscript'
4345\ ],
4346\ {
4347\ 'onmouseover' : [],
4348\ 'lang' : [],
4349\ 'onmouseout' : [],
4350\ 'onmousemove' : [],
4351\ 'style' : [],
4352\ 'ondblclick' : [],
4353\ 'xml:lang' : [],
4354\ 'dir' : [
4355\ 'ltr',
4356\ 'rtl'
4357\ ],
4358\ 'onkeydown' : [],
4359\ 'onkeyup' : [],
4360\ 'onkeypress' : [],
4361\ 'onmousedown' : [],
4362\ 'onmouseup' : [],
4363\ 'id' : [],
4364\ 'class' : [],
4365\ 'title' : [],
4366\ 'onclick' : []
4367\ }
4368\ ],
4369\ 'big' : [
4370\ [
4371\ 'a',
4372\ 'br',
4373\ 'span',
4374\ 'bdo',
4375\ 'object',
4376\ 'img',
4377\ 'map',
4378\ 'tt',
4379\ 'i',
4380\ 'b',
4381\ 'big',
4382\ 'small',
4383\ 'em',
4384\ 'strong',
4385\ 'dfn',
4386\ 'code',
4387\ 'q',
4388\ 'sub',
4389\ 'sup',
4390\ 'samp',
4391\ 'kbd',
4392\ 'var',
4393\ 'cite',
4394\ 'abbr',
4395\ 'acronym',
4396\ 'input',
4397\ 'select',
4398\ 'textarea',
4399\ 'label',
4400\ 'button',
4401\ 'ins',
4402\ 'del',
4403\ 'script',
4404\ 'noscript'
4405\ ],
4406\ {
4407\ 'onmouseover' : [],
4408\ 'lang' : [],
4409\ 'onmouseout' : [],
4410\ 'onmousemove' : [],
4411\ 'style' : [],
4412\ 'ondblclick' : [],
4413\ 'xml:lang' : [],
4414\ 'dir' : [
4415\ 'ltr',
4416\ 'rtl'
4417\ ],
4418\ 'onkeydown' : [],
4419\ 'onkeyup' : [],
4420\ 'onkeypress' : [],
4421\ 'onmousedown' : [],
4422\ 'onmouseup' : [],
4423\ 'id' : [],
4424\ 'class' : [],
4425\ 'title' : [],
4426\ 'onclick' : []
4427\ }
4428\ ],
4429\ 'fieldset' : [
4430\ [
4431\ 'legend',
4432\ 'p',
4433\ 'h1',
4434\ 'h2',
4435\ 'h3',
4436\ 'h4',
4437\ 'h5',
4438\ 'h6',
4439\ 'div',
4440\ 'ul',
4441\ 'ol',
4442\ 'dl',
4443\ 'pre',
4444\ 'hr',
4445\ 'blockquote',
4446\ 'address',
4447\ 'fieldset',
4448\ 'table',
4449\ 'form',
4450\ 'a',
4451\ 'br',
4452\ 'span',
4453\ 'bdo',
4454\ 'object',
4455\ 'img',
4456\ 'map',
4457\ 'tt',
4458\ 'i',
4459\ 'b',
4460\ 'big',
4461\ 'small',
4462\ 'em',
4463\ 'strong',
4464\ 'dfn',
4465\ 'code',
4466\ 'q',
4467\ 'sub',
4468\ 'sup',
4469\ 'samp',
4470\ 'kbd',
4471\ 'var',
4472\ 'cite',
4473\ 'abbr',
4474\ 'acronym',
4475\ 'input',
4476\ 'select',
4477\ 'textarea',
4478\ 'label',
4479\ 'button',
4480\ 'ins',
4481\ 'del',
4482\ 'script',
4483\ 'noscript'
4484\ ],
4485\ {
4486\ 'onmouseover' : [],
4487\ 'lang' : [],
4488\ 'onmouseout' : [],
4489\ 'onmousemove' : [],
4490\ 'style' : [],
4491\ 'ondblclick' : [],
4492\ 'xml:lang' : [],
4493\ 'dir' : [
4494\ 'ltr',
4495\ 'rtl'
4496\ ],
4497\ 'onkeydown' : [],
4498\ 'onkeyup' : [],
4499\ 'onkeypress' : [],
4500\ 'onmousedown' : [],
4501\ 'onmouseup' : [],
4502\ 'id' : [],
4503\ 'class' : [],
4504\ 'title' : [],
4505\ 'onclick' : []
4506\ }
4507\ ],
4508\ 'noscript' : [
4509\ [
4510\ 'p',
4511\ 'h1',
4512\ 'h2',
4513\ 'h3',
4514\ 'h4',
4515\ 'h5',
4516\ 'h6',
4517\ 'div',
4518\ 'ul',
4519\ 'ol',
4520\ 'dl',
4521\ 'pre',
4522\ 'hr',
4523\ 'blockquote',
4524\ 'address',
4525\ 'fieldset',
4526\ 'table',
4527\ 'form',
4528\ 'ins',
4529\ 'del',
4530\ 'script',
4531\ 'noscript'
4532\ ],
4533\ {
4534\ 'onmouseover' : [],
4535\ 'lang' : [],
4536\ 'onmouseout' : [],
4537\ 'onmousemove' : [],
4538\ 'style' : [],
4539\ 'ondblclick' : [],
4540\ 'xml:lang' : [],
4541\ 'dir' : [
4542\ 'ltr',
4543\ 'rtl'
4544\ ],
4545\ 'onkeydown' : [],
4546\ 'onkeyup' : [],
4547\ 'onkeypress' : [],
4548\ 'onmousedown' : [],
4549\ 'onmouseup' : [],
4550\ 'id' : [],
4551\ 'class' : [],
4552\ 'title' : [],
4553\ 'onclick' : []
4554\ }
4555\ ],
4556\ 'button' : [
4557\ [
4558\ 'p',
4559\ 'h1',
4560\ 'h2',
4561\ 'h3',
4562\ 'h4',
4563\ 'h5',
4564\ 'h6',
4565\ 'div',
4566\ 'ul',
4567\ 'ol',
4568\ 'dl',
4569\ 'pre',
4570\ 'hr',
4571\ 'blockquote',
4572\ 'address',
4573\ 'table',
4574\ 'br',
4575\ 'span',
4576\ 'bdo',
4577\ 'object',
4578\ 'img',
4579\ 'map',
4580\ 'tt',
4581\ 'i',
4582\ 'b',
4583\ 'big',
4584\ 'small',
4585\ 'em',
4586\ 'strong',
4587\ 'dfn',
4588\ 'code',
4589\ 'q',
4590\ 'sub',
4591\ 'sup',
4592\ 'samp',
4593\ 'kbd',
4594\ 'var',
4595\ 'cite',
4596\ 'abbr',
4597\ 'acronym',
4598\ 'ins',
4599\ 'del',
4600\ 'script',
4601\ 'noscript'
4602\ ],
4603\ {
4604\ 'accesskey' : [],
4605\ 'disabled' : [
4606\ 'disabled'
4607\ ],
4608\ 'ondblclick' : [],
4609\ 'onblur' : [],
4610\ 'dir' : [
4611\ 'ltr',
4612\ 'rtl'
4613\ ],
4614\ 'onfocus' : [],
4615\ 'onkeydown' : [],
4616\ 'onkeyup' : [],
4617\ 'onmouseup' : [],
4618\ 'id' : [],
4619\ 'onmouseover' : [],
4620\ 'tabindex' : [],
4621\ 'lang' : [],
4622\ 'value' : [],
4623\ 'style' : [],
4624\ 'onmousemove' : [],
4625\ 'onmouseout' : [],
4626\ 'name' : [],
4627\ 'xml:lang' : [],
4628\ 'onmousedown' : [],
4629\ 'onkeypress' : [],
4630\ 'type' : [
4631\ 'button',
4632\ 'submit',
4633\ 'reset'
4634\ ],
4635\ 'onclick' : [],
4636\ 'title' : [],
4637\ 'class' : []
4638\ }
4639\ ],
4640\ 'optgroup' : [
4641\ [
4642\ 'option'
4643\ ],
4644\ {
4645\ 'disabled' : [
4646\ 'disabled'
4647\ ],
4648\ 'ondblclick' : [],
4649\ 'dir' : [
4650\ 'ltr',
4651\ 'rtl'
4652\ ],
4653\ 'onkeydown' : [],
4654\ 'onkeyup' : [],
4655\ 'onmouseup' : [],
4656\ 'id' : [],
4657\ 'onmouseover' : [],
4658\ 'lang' : [],
4659\ 'style' : [],
4660\ 'onmousemove' : [],
4661\ 'onmouseout' : [],
4662\ 'xml:lang' : [],
4663\ 'onmousedown' : [],
4664\ 'onkeypress' : [],
4665\ 'label' : [],
4666\ 'onclick' : [],
4667\ 'title' : [],
4668\ 'class' : []
4669\ }
4670\ ]
4671\ }
4672endfunction
Bram Moolenaare0fa5602006-03-19 22:08:37 +00004673" }}}
Bram Moolenaar8b6144b2006-02-08 09:20:24 +00004674" vim:set foldmethod=marker: