1 |
use strict; |
2 |
our $LIST = [ |
3 |
{ |
4 |
name => q<HTML 2.0 (RFC 1868)>, |
5 |
class => { |
6 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
7 |
'%list' => q"ul | ol | dir | menu", |
8 |
'%font' => q"tt | b | i ", |
9 |
'%phrase' => q"em | strong | code | samp | kbd | var | cite", |
10 |
'%text' => q"#PCDATA | a | img | br | %phrase | %font", |
11 |
'%block.forms' => q"blockquote | form | isindex", |
12 |
'%preformatted' => q"pre | xmp | listing", |
13 |
'%block' => q"p | %list | dl | %preformatted | %block.forms", |
14 |
'%flow' => q"%text|%block", |
15 |
'%body.content' => q"%heading | %text | %block | hr | address", |
16 |
}, |
17 |
class_misc => { |
18 |
a => q<%A.content>, |
19 |
'%A.content' => q<%heading %text>, |
20 |
pre => q<%pre.content>, |
21 |
'%pre.content' => q<#PCDATA a hr br>, |
22 |
form => q<%body.content>, |
23 |
}, |
24 |
minus => { |
25 |
a => 'a', |
26 |
form => q<form>, |
27 |
}, |
28 |
plus => { |
29 |
form => q<input select textarea>, |
30 |
}, |
31 |
}, |
32 |
{ |
33 |
name => q<HTML 2.x (RFC 2070)>, |
34 |
class => { |
35 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
36 |
'%list' => q"ul | ol | dir | menu", |
37 |
'%font' => q"tt | b | i ", |
38 |
'%phrase' => q"em | strong | code | samp | kbd | var | cite", |
39 |
'%text' => q"#PCDATA|a|img|br|%phrase|%font|span|q|bdo|sup|sub", |
40 |
'%block.forms' => q"blockquote | form | isindex", |
41 |
'%preformatted' => q"pre | xmp | listing", |
42 |
'%block' => q"p | %list | dl | %preformatted | %block.forms", |
43 |
'%flow' => q"%text|%block", |
44 |
'%body.content' => q"%heading | %text | %block | hr | address", |
45 |
}, |
46 |
class_misc => { |
47 |
a => q<%A.content>, |
48 |
'%A.content' => q<%heading %text>, |
49 |
pre => q<%pre.content>, |
50 |
'%pre.content' => q<#PCDATA a hr br span bdo>, |
51 |
form => q<%body.content>, |
52 |
hn => q<%text>, |
53 |
dt => q<%text>, |
54 |
dd => q<%flow>, |
55 |
li => q<%flow>, |
56 |
blockquote => q<%body.content>, |
57 |
address => q<%text p>, |
58 |
}, |
59 |
minus => { |
60 |
a => 'a', |
61 |
form => q<form>, |
62 |
}, |
63 |
plus => { |
64 |
form => q<input select textarea>, |
65 |
}, |
66 |
}, |
67 |
{ |
68 |
name => q<HTML 3.2>, |
69 |
class => { |
70 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
71 |
'%list' => q"ul | ol | dir | menu", |
72 |
'%preformatted' => q"pre | xmp | listing", |
73 |
'%font' => q"tt | i | b | u | strike | big | small | sub | sup", |
74 |
'%phrase' => q"em | strong | dfn | code | samp | kbd | var | cite", |
75 |
'%special' => q"a | img | applet | font | basefont | br | script | map", |
76 |
'%form' => q"input | select | textarea", |
77 |
'%text' => q"#PCDATA | %font | %phrase | %special | %form", |
78 |
'%block' => q"p | %list | %preformatted | dl | div | center | |
79 |
blockquote | form | isindex | hr | table", |
80 |
'%flow' => q"%text | %block", |
81 |
'%body.content' => q"%heading | %text | %block | address", |
82 |
}, |
83 |
class_misc => { |
84 |
a => q<%text>, |
85 |
pre => q<%text>, |
86 |
'%pre.exclusion' => q<img big small sub sup font>, |
87 |
form => q<%body.content>, |
88 |
td => q<%body.content>, |
89 |
li => q<%flow>, |
90 |
dt => q<%flow>, |
91 |
dd => q<%text>, |
92 |
hn => q<%text>, |
93 |
map => q<%area>, |
94 |
address => q<%address.content>, |
95 |
'%address.content' => q<%text p>, |
96 |
div => q<%body.content>, |
97 |
center => q<%body.content>, |
98 |
blockquote => q<%body.content>, |
99 |
}, |
100 |
minus => { |
101 |
a => q<a>, |
102 |
pre => '%pre.exclusion', |
103 |
form => q<form>, |
104 |
}, |
105 |
}, |
106 |
{ |
107 |
name => q<HTML 4.01 Transitional / Frameset>, |
108 |
class => { |
109 |
'%heading' => q<h1|h2|h3|h4|h5|h6>, |
110 |
'%list' => q/ul | ol | dir | menu/, |
111 |
'%preformatted' => q"pre", |
112 |
'%fontstyle' => q"tt | i | b | u | s | strike | big | small", |
113 |
'%phrase' => q"em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym", |
114 |
'%special' => q"a | img | applet | object | font | basefont | br | script | |
115 |
map | q | sub | sup | span | bdo | iframe", |
116 |
'%formctrl' => q"input | select | textarea | label | button", |
117 |
'%inline' => q"#PCDATA | %fontstyle | %phrase | %special | %formctrl", |
118 |
'%block' => q "p | %heading | %list | %preformatted | dl | div | center | |
119 |
noscript | noframes | blockquote | form | isindex | hr | |
120 |
table | fieldset | address", |
121 |
'%flow' => q"%block | %inline", |
122 |
}, |
123 |
class_misc => { |
124 |
a => q<%inline>, |
125 |
pre => q<%inline>, |
126 |
'%pre.exclusion' => q<img object applet big small sub sup font basefont>, |
127 |
form => q<%flow>, |
128 |
label => q<%inline>, |
129 |
fieldset => q<#PCDATA legend %flow>, |
130 |
button => q<%flow>, |
131 |
td => q<%flow>, |
132 |
li => q<%flow>, |
133 |
dt => q<%inline>, |
134 |
dd => q<%flow>, |
135 |
blockquote => q<%flow>, |
136 |
hn => q<%inline>, |
137 |
map => q<%block area>, |
138 |
address => q<%inline p>, |
139 |
}, |
140 |
minus => { |
141 |
a => q<a>, |
142 |
pre => q<%pre.exclusion>, |
143 |
form => q<form>, |
144 |
label => q<label>, |
145 |
button => q<a %formctrl form isindex fieldset iframe>, |
146 |
}, |
147 |
plus => { |
148 |
a => q<ins del>, |
149 |
pre => q<ins del>, |
150 |
form => q<ins del>, |
151 |
fieldset => q<ins del>, |
152 |
label => q<ins del>, |
153 |
button => q<ins del>, |
154 |
li => q<ins del>, |
155 |
dt => q<ins del>, |
156 |
dd => q<ins del>, |
157 |
blockquote => q<ins del>, |
158 |
hn => q<ins del>, |
159 |
map => q<ins del>, |
160 |
address => q<ins del>, |
161 |
}, |
162 |
}, |
163 |
{ |
164 |
name => q<HTML 4.01 Strict>, |
165 |
class => { |
166 |
'%heading' => q<h1|h2|h3|h4|h5|h6>, |
167 |
'%list' => q/ul|ol/, |
168 |
'%preformatted' => q"pre", |
169 |
'%fontstyle' => q"tt | i | b | big | small", |
170 |
'%phrase' => q"em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym", |
171 |
'%special' => q"a | img | object | br | script | map | q | sub | sup | span | bdo", |
172 |
'%formctrl' => q"input | select | textarea | label | button", |
173 |
'%inline' => q"#PCDATA | %fontstyle | %phrase | %special | %formctrl", |
174 |
'%block' => q "p | %heading | %list | %preformatted | dl | div | noscript | |
175 |
blockquote | form | hr | table | fieldset | address", |
176 |
'%flow' => q"%block | %inline", |
177 |
}, |
178 |
class_misc => { |
179 |
a => q<%inline>, |
180 |
pre => q<%inline>, |
181 |
'%pre.exclusion' => q<img object big small sub sup>, |
182 |
form => q<%block script>, |
183 |
label => q<%inline>, |
184 |
fieldset => q<#PCDATA legend %flow>, |
185 |
button => q<%flow>, |
186 |
td => q<%flow>, |
187 |
li => q<%flow>, |
188 |
dt => q<%inline>, |
189 |
dd => q<%flow>, |
190 |
blockquote => q<%block script>, |
191 |
hn => q<%inline>, |
192 |
map => q<%block area>, |
193 |
address => q<%inline>, |
194 |
}, |
195 |
minus => { |
196 |
a => q<a>, |
197 |
pre => q<%pre.exclusion>, |
198 |
form => q<form>, |
199 |
label => q<label>, |
200 |
button => q<a %formctrl form fieldset>, |
201 |
}, |
202 |
plus => { |
203 |
a => q<ins del>, |
204 |
pre => q<ins del>, |
205 |
form => q<ins del>, |
206 |
fieldset => q<ins del>, |
207 |
label => q<ins del>, |
208 |
button => q<ins del>, |
209 |
td => q<ins del>, |
210 |
li => q<ins del>, |
211 |
dt => q<ins del>, |
212 |
dd => q<ins del>, |
213 |
blockquote => q<ins del>, |
214 |
hn => q<ins del>, |
215 |
map => q<ins del>, |
216 |
address => q<ins del>, |
217 |
}, |
218 |
}, |
219 |
{ |
220 |
name => q<ISO-HTML>, |
221 |
class => { |
222 |
'%special' => q"a | bdo | br | img | object | |
223 |
map | q | span", |
224 |
'%logical.styles' => q"abbr | acronym | cite | code | dfn | em | |
225 |
kbd | samp | strong | var", |
226 |
'%physical.styles' => q"b | i | sub | sup | tt", |
227 |
'%block' => q"blockquote | div | dl | fieldset | form | |
228 |
hr | ol | p | pre | table | ul", |
229 |
'%form.fields' => q"button | input | label | select | textarea", |
230 |
'%text' => q"#PCDATA | %physical.styles | %logical.styles | %special |
231 |
| %form.fields ", |
232 |
'%section.content' => q"%block | %text | address", |
233 |
'%table.content' => q"%block | %text ", |
234 |
}, |
235 |
class_misc => { |
236 |
form => q<%block>, |
237 |
pre => q<%text>, |
238 |
button => q<%text>, |
239 |
label => q<%text>, |
240 |
fieldset => q<#PCDATA legend %block %text address>, |
241 |
a => q<%text>, |
242 |
td => q<%table.content>, |
243 |
hn => q<%text>, |
244 |
blockquote => q<%block>, |
245 |
address => q<%text>, |
246 |
li => q<%text %block>, |
247 |
dt => q<%text>, |
248 |
dd => q<%section.content>, |
249 |
map => q<%block area>, |
250 |
}, |
251 |
minus => { |
252 |
form => q<form>, |
253 |
pre => q<img map object sub sup>, |
254 |
fieldset => q<fieldset>, |
255 |
button => q<a fieldset form %form.fields>, |
256 |
label => q<label>, |
257 |
a => q<a>, |
258 |
address => q<img object map>, |
259 |
dd => q<address>, |
260 |
}, |
261 |
plus => { |
262 |
form => q<del ins>, |
263 |
pre => q<del ins>, |
264 |
button => q<del ins>, |
265 |
label => q<del ins>, |
266 |
fieldset => q<del ins>, |
267 |
a => q<del ins>, |
268 |
td => q<del ins>, |
269 |
hn => q<del ins>, |
270 |
blockquote => q<del ins>, |
271 |
address => q<del ins>, |
272 |
li => q<del ins>, |
273 |
dt => q<del ins>, |
274 |
dd => q<del ins>, |
275 |
map => q<del ins>, |
276 |
}, |
277 |
}, |
278 |
{ |
279 |
name => q<XHTML 1.0 FE Transitional>, |
280 |
class => { |
281 |
'%special' => q"br | span | bdo | object | applet | img | map | iframe", |
282 |
'%fontstyle' => q"tt | i | b | big | small | u |
283 |
| s | strike |font | basefont", |
284 |
'%phrase' => q"em | strong | dfn | code | q | sub | sup | |
285 |
samp | kbd | var | cite | abbr | acronym", |
286 |
'%inline.forms' => q"input | select | textarea | label | button", |
287 |
'%misc' => q"ins | del | script | noscript", |
288 |
'%inline' => q"a | %special | %fontstyle | %phrase | %inline.forms", |
289 |
'%Inline' => q"#PCDATA | %inline | %misc", |
290 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
291 |
'%lists' => q"ul | ol | dl | menu | dir", |
292 |
'%blocktext' => q"pre | hr | blockquote | address | center | noframes", |
293 |
'%block' => q"p | %heading | div | %lists | %blocktext | isindex |fieldset | table", |
294 |
'%Block' => q"%block | form | %misc", |
295 |
'%Flow' => q"#PCDATA | %block | form | %inline | %misc", |
296 |
}, |
297 |
class_misc => { |
298 |
a => q<%a.content>, |
299 |
'%a.content' => q<#PCDATA %special %fontstyle %phrase %inline.forms |
300 |
%misc>, |
301 |
pre => q<%pre.content>, |
302 |
'%pre.content' => q<#PCDATA a br span bdo map tt i b u s %phrase |
303 |
%inline.forms>, |
304 |
form => q<%form.content>, |
305 |
'%form.content' => q<%block %inline %misc>, |
306 |
button => q<%button.content>, |
307 |
'%button.content' => q<#PCDATA p %heading div %lists |
308 |
%blocktext table br span bdo object |
309 |
applet img map %fontstyle %phrase %misc>, |
310 |
label => q<%Inline>, |
311 |
fieldset => q<#PCDATA legend %block form %inline %misc>, |
312 |
td => q<%Flow>, |
313 |
hn => q<%Inline>, |
314 |
li => q<%Flow>, |
315 |
dt => q<%Inline>, |
316 |
dd => q<%Flow>, |
317 |
address => q<%Inline>, |
318 |
blockquote => q<%Flow>, |
319 |
map => q<%block form %misc area>, |
320 |
}, |
321 |
minus => { |
322 |
a => q<a>, |
323 |
pre => q<img object big small sub sup>, |
324 |
button => q<input select textarea label form button fieldset |
325 |
iframe isindex>, |
326 |
label => q<label>, |
327 |
form => q<form>, |
328 |
}, |
329 |
}, |
330 |
{ |
331 |
name => q<XHTML 1.0 FE Frameset>, |
332 |
class => { |
333 |
'%special' => q"br | span | bdo | object | applet | img | map | iframe", |
334 |
'%fontstyle' => q"tt | i | b | big | small | u |
335 |
| s | strike |font | basefont", |
336 |
'%phrase' => q"em | strong | dfn | code | q | sub | sup | |
337 |
samp | kbd | var | cite | abbr | acronym", |
338 |
'%inline.forms' => q"input | select | textarea | label | button", |
339 |
'%misc' => q"ins | del | script | noscript", |
340 |
'%inline' => q"a | %special | %fontstyle | %phrase | %inline.forms", |
341 |
'%Inline' => q"#PCDATA | %inline | %misc", |
342 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
343 |
'%lists' => q"ul | ol | dl | menu | dir", |
344 |
'%blocktext' => q"pre | hr | blockquote | address | center ", |
345 |
'%block' => q"p | %heading | div | %lists | %blocktext | isindex |fieldset | table", |
346 |
'%Block' => q"%block | form | %misc", |
347 |
'%Flow' => q"#PCDATA | %block | form | %inline | %misc", |
348 |
}, |
349 |
class_misc => { |
350 |
a => q<%a.content>, |
351 |
'%a.content' => q<#PCDATA %special %fontstyle %phrase %inline.forms |
352 |
%misc>, |
353 |
pre => q<%pre.content>, |
354 |
'%pre.content' => q<#PCDATA a br span bdo map tt i b u s %phrase |
355 |
%inline.forms>, |
356 |
form => q<%form.content>, |
357 |
'%form.content' => q<%block %inline %misc>, |
358 |
button => q<%button.content>, |
359 |
'%button.content' => q<#PCDATA p %heading div %lists |
360 |
%blocktext table br span bdo object |
361 |
applet img map %fontstyle %phrase %misc>, |
362 |
label => q<%Inline>, |
363 |
fieldset => q<#PCDATA legend %block form %inline %misc>, |
364 |
td => q<%Flow>, |
365 |
hn => q<%Inline>, |
366 |
li => q<%Flow>, |
367 |
dt => q<%Inline>, |
368 |
dd => q<%Flow>, |
369 |
address => q<%Inline>, |
370 |
blockquote => q<%Flow>, |
371 |
map => q<%block form %misc area>, |
372 |
}, |
373 |
minus => { |
374 |
a => q<a>, |
375 |
pre => q<img object big small sub sup>, |
376 |
button => q<input select textarea label form button fieldset |
377 |
iframe isindex>, |
378 |
label => q<label>, |
379 |
form => q<form>, |
380 |
}, |
381 |
}, |
382 |
{ |
383 |
name => q<XHTML 1.0 FE Strict>, |
384 |
class => { |
385 |
'%special' => q"br | span | bdo | object | img | map", |
386 |
'%fontstyle' => q"tt | i | b | big | small", |
387 |
'%phrase' => q"em | strong | dfn | code | q | sub | sup | |
388 |
samp | kbd | var | cite | abbr | acronym", |
389 |
'%inline.forms' => q"input | select | textarea | label | button", |
390 |
'%misc' => q"ins | del | script | noscript", |
391 |
'%inline' => q"a | %special | %fontstyle | %phrase | %inline.forms", |
392 |
'%Inline' => q"#PCDATA | %inline | %misc", |
393 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
394 |
'%lists' => q"ul | ol | dl", |
395 |
'%blocktext' => q"pre | hr | blockquote | address", |
396 |
'%block' => q"p | %heading | div | %lists | %blocktext | fieldset | table", |
397 |
'%Block' => q"%block | form | %misc", |
398 |
'%Flow' => q"#PCDATA | %block | form | %inline | %misc", |
399 |
}, |
400 |
class_misc => { |
401 |
a => q<%a.content>, |
402 |
'%a.content' => q<#PCDATA %special %fontstyle %phrase %inline.forms |
403 |
%misc>, |
404 |
pre => q<%pre.content>, |
405 |
'%pre.content' => q<#PCDATA a br span bdo map tt i b %phrase |
406 |
%inline.forms>, |
407 |
form => q<%form.content>, |
408 |
'%form.content' => q<%block %misc>, |
409 |
button => q<%button.content>, |
410 |
'%button.content' => q<#PCDATA p %heading div %lists |
411 |
%blocktext table |
412 |
%special %fontstyle %phrase %misc>, |
413 |
label => q<%Inline>, |
414 |
fieldset => q<#PCDATA legend %block form %inline %misc>, |
415 |
td => q<%Flow>, |
416 |
hn => q<%Inline>, |
417 |
li => q<%Flow>, |
418 |
dt => q<%Inline>, |
419 |
dd => q<%Flow>, |
420 |
address => q<%Inline>, |
421 |
blockquote => q<%Block>, |
422 |
map => q<%block form %misc area>, |
423 |
}, |
424 |
minus => { |
425 |
a => q<a>, |
426 |
pre => q<img object big small sub sup>, |
427 |
button => q<input select textarea label form button fieldset |
428 |
iframe isindex>, |
429 |
label => q<label>, |
430 |
form => q<form>, |
431 |
}, |
432 |
}, |
433 |
{ |
434 |
name => q<XHTML 1.0 SE Transitional>, |
435 |
class => { |
436 |
'%special.extra' => q"object | applet | img | map | iframe", |
437 |
'%special.basic' => q"br | span | bdo", |
438 |
'%special' => q"%special.basic | %special.extra", |
439 |
'%fontstyle.extra' => q"big | small | font | basefont", |
440 |
'%fontstyle.basic' => q"tt | i | b | u |
441 |
| s | strike ", |
442 |
'%fontstyle' => q"%fontstyle.basic | %fontstyle.extra", |
443 |
'%phrase.extra' => q"sub | sup", |
444 |
'%phrase.basic' => q"em | strong | dfn | code | q | |
445 |
samp | kbd | var | cite | abbr | acronym", |
446 |
'%phrase' => q"%phrase.basic | %phrase.extra", |
447 |
'%inline.forms' => q"input | select | textarea | label | button", |
448 |
'%misc' => q"noscript | %misc.inline", |
449 |
'%misc.inline' => q"ins | del | script", |
450 |
'%inline' => q"a | %special | %fontstyle | %phrase | %inline.forms", |
451 |
'%Inline' => q"#PCDATA | %inline | %misc.inline", |
452 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
453 |
'%lists' => q"ul | ol | dl | menu | dir", |
454 |
'%blocktext' => q"pre | hr | blockquote | address | center | noframes", |
455 |
'%block' => q"p | %heading | div | %lists | %blocktext | isindex |fieldset | table", |
456 |
'%Flow' => q"#PCDATA | %block | form | %inline | %misc", |
457 |
}, |
458 |
class_misc => { |
459 |
a => q<%a.content>, |
460 |
'%a.content' => q<#PCDATA %special %fontstyle %phrase %inline.forms |
461 |
%misc.inline>, |
462 |
pre => q<%pre.content>, |
463 |
'%pre.content' => q<#PCDATA a %fontstyle.basic %phrase.basic %special.basic |
464 |
%misc.inline %inline.forms>, |
465 |
form => q<%form.content>, |
466 |
'%form.content' => q<%block %inline %misc>, |
467 |
button => q<%button.content>, |
468 |
'%button.content' => q<#PCDATA p %heading div %lists |
469 |
%blocktext table br span bdo object |
470 |
applet img map %fontstyle %phrase %misc>, |
471 |
label => q<%Inline>, |
472 |
fieldset => q<#PCDATA legend %block form %inline %misc>, |
473 |
td => q<%Flow>, |
474 |
map => q<%block form %misc area>, |
475 |
blockquote => q<%Flow>, |
476 |
address => q<#PCDATA %inline %misc.inline p>, |
477 |
dt => q<%Inline>, |
478 |
dd => q<%Flow>, |
479 |
li => q<%Flow>, |
480 |
hn => q<%Inline>, |
481 |
}, |
482 |
minus => { |
483 |
a => q<a>, |
484 |
pre => q<img object big small sub sup>, |
485 |
button => q<input select textarea label form button fieldset |
486 |
iframe isindex>, |
487 |
label => q<label>, |
488 |
form => q<form>, |
489 |
}, |
490 |
}, |
491 |
{ |
492 |
name => q<XHTML 1.0 SE Frameset>, |
493 |
class => { |
494 |
'%special.extra' => q"object | applet | img | map | iframe", |
495 |
'%special.basic' => q"br | span | bdo", |
496 |
'%special' => q"%special.basic | %special.extra", |
497 |
'%fontstyle.extra' => q"big | small | font | basefont", |
498 |
'%fontstyle.basic' => q"tt | i | b | u |
499 |
| s | strike ", |
500 |
'%fontstyle' => q"%fontstyle.basic | %fontstyle.extra", |
501 |
'%phrase.extra' => q"sub | sup", |
502 |
'%phrase.basic' => q"em | strong | dfn | code | q | |
503 |
samp | kbd | var | cite | abbr | acronym", |
504 |
'%phrase' => q"%phrase.basic | %phrase.extra", |
505 |
'%inline.forms' => q"input | select | textarea | label | button", |
506 |
'%misc' => q"noscript | %misc.inline", |
507 |
'%misc.inline' => q"ins | del | script", |
508 |
'%inline' => q"a | %special | %fontstyle | %phrase | %inline.forms", |
509 |
'%Inline' => q"#PCDATA | %inline | %misc.inline", |
510 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
511 |
'%lists' => q"ul | ol | dl | menu | dir", |
512 |
'%blocktext' => q"pre | hr | blockquote | address | center", |
513 |
'%block' => q"p | %heading | div | %lists | %blocktext | isindex |fieldset | table", |
514 |
'%Flow' => q"#PCDATA | %block | form | %inline | %misc", |
515 |
}, |
516 |
class_misc => { |
517 |
a => q<%a.content>, |
518 |
'%a.content' => q<#PCDATA %special %fontstyle %phrase %inline.forms |
519 |
%misc.inline>, |
520 |
pre => q<%pre.content>, |
521 |
'%pre.content' => q<#PCDATA a %fontstyle.basic %phrase.basic %special.basic |
522 |
%misc.inline %inline.forms>, |
523 |
form => q<%form.content>, |
524 |
'%form.content' => q<%block %inline %misc>, |
525 |
button => q<%button.content>, |
526 |
'%button.content' => q<#PCDATA p %heading div %lists |
527 |
%blocktext table br span bdo object |
528 |
applet img map %fontstyle %phrase %misc>, |
529 |
label => q<%Inline>, |
530 |
fieldset => q<#PCDATA legend %block form %inline %misc>, |
531 |
td => q<%Flow>, |
532 |
map => q<%block form %misc area>, |
533 |
blockquote => q<%Flow>, |
534 |
address => q<#PCDATA %inline %misc.inline p>, |
535 |
dt => q<%Inline>, |
536 |
dd => q<%Flow>, |
537 |
li => q<%Flow>, |
538 |
hn => q<%Inline>, |
539 |
}, |
540 |
minus => { |
541 |
a => q<a>, |
542 |
pre => q<img object big small sub sup>, |
543 |
button => q<input select textarea label form button fieldset |
544 |
iframe isindex>, |
545 |
label => q<label>, |
546 |
form => q<form>, |
547 |
}, |
548 |
}, |
549 |
{ |
550 |
name => q<XHTML 1.0 SE Strict>, |
551 |
class => { |
552 |
'%special' => q"%special.pre | object | img ", |
553 |
'%special.pre' => q"br | span | bdo | map", |
554 |
'%fontstyle' => q"tt | i | b | big | small", |
555 |
'%phrase' => q"em | strong | dfn | code | q | |
556 |
samp | kbd | var | cite | abbr | acronym | sub | sup", |
557 |
'%inline.forms' => q"input | select | textarea | label | button", |
558 |
'%misc' => q"noscript | %misc.inline", |
559 |
'%misc.inline' => q"ins | del | script", |
560 |
'%inline' => q"a | %special | %fontstyle | %phrase | %inline.forms", |
561 |
'%Inline' => q"#PCDATA | %inline | %misc.inline", |
562 |
'%heading' => q"h1|h2|h3|h4|h5|h6", |
563 |
'%lists' => q"ul | ol | dl", |
564 |
'%blocktext' => q"pre | hr | blockquote | address", |
565 |
'%block' => q"p | %heading | div | %lists | %blocktext | fieldset | table", |
566 |
'%Block' => q"%block | form | %misc", |
567 |
'%Flow' => q"#PCDATA | %block | form | %inline | %misc", |
568 |
}, |
569 |
class_misc => { |
570 |
a => q<%a.content>, |
571 |
'%a.content' => q<#PCDATA %special %fontstyle %phrase %inline.forms |
572 |
%misc.inline>, |
573 |
pre => q<%pre.content>, |
574 |
'%pre.content' => q<#PCDATA a %fontstyle %phrase %special.pre |
575 |
%misc.inline %inline.forms>, |
576 |
form => q<%form.content>, |
577 |
'%form.content' => q<%block %misc>, |
578 |
button => q<%button.content>, |
579 |
'%button.content' => q<#PCDATA p %heading div %lists |
580 |
%blocktext table %special %fontstyle |
581 |
%phrase %misc>, |
582 |
label => q<%Inline>, |
583 |
fieldset => q<#PCDATA legend %block form %inline %misc>, |
584 |
td => q<%Flow>, |
585 |
map => q<%block form %misc area>, |
586 |
blockquote => q<%Block>, |
587 |
address => q<%Inline>, |
588 |
dt => q<%Inline>, |
589 |
dd => q<%Flow>, |
590 |
li => q<%Flow>, |
591 |
hn => q<%Inline>, |
592 |
}, |
593 |
minus => { |
594 |
a => q<a>, |
595 |
pre => q<img object big small sub sup>, |
596 |
button => q<input select textarea label form button fieldset |
597 |
iframe isindex>, |
598 |
label => q<label>, |
599 |
form => q<form>, |
600 |
}, |
601 |
}, |
602 |
{ |
603 |
name => q<XHTML 1.1 (m12n 1.0 FE/SE DTD)>, |
604 |
class => { |
605 |
'%Edit.class' => q"ins | del ", |
606 |
'%Script.class' => q"script noscript", |
607 |
'%Misc.extra' => q"", |
608 |
'%Misc.class' => q"%Edit.class %Script.class %Misc.extra ", |
609 |
'%InlStruct.class' => q"br span", |
610 |
'%InlPhras.class' => q"em strong dfn code samp kbd var cite abbr acronym q", |
611 |
'%InlPres.class' => q"tt i b big small sub sup", |
612 |
'%I18n.class' => q"bdo", |
613 |
'%Anchor.class' => q"a", |
614 |
'%InlSpecial.class' => q"img map object", |
615 |
'%InlForm.class' => q"input select textarea label button", |
616 |
'%Inline.extra' => q"", |
617 |
'%Ruby.class' => q"ruby", |
618 |
'%Inline.class' => q"%InlStruct.class %InlPhras.class %InlPres.class %I18n.class %Anchor.class %InlSpecial.class %InlForm.class %Ruby.class %Inline.extra ", |
619 |
'%InlNoRuby.class' => q"%InlStruct.class %InlPhras.class %InlPres.class %I18n.class %Anchor.class %InlSpecial.class %InlForm.class %Inline.extra ", |
620 |
'%NoRuby.content' => q"#PCDATA %InlNoRuby.class %Misc.class ", |
621 |
'%InlNoAnchor.class' => q"%InlStruct.class %InlPhras.class %InlPres.class %I18n.class %InlSpecial.class %InlForm.class %Ruby.class %Inline.extra ", |
622 |
'%InlNoAnchor.mix' => q"%InlNoAnchor.class %Misc.class ", |
623 |
'%Inline.mix' => q"%Inline.class %Misc.class ", |
624 |
'%Heading.class' => q"h1 h2 h3 h4 h5 h6", |
625 |
'%List.class' => q"ul ol dl", |
626 |
'%Table.class' => q"table", |
627 |
'%Form.class' => q"form", |
628 |
'%Fieldset.class' => q"fieldset", |
629 |
'%BlkStruct.class' => q"p div", |
630 |
'%BlkPhras.class' => q"pre blockquote address", |
631 |
'%BlkPres.class' => q"hr", |
632 |
'%BlkSpecial.class' => q"%Table.class %Form.class %Fieldset.class ", |
633 |
'%Block.extra' => q"", |
634 |
'%Block.class' => q"%BlkStruct.class %BlkPhras.class %BlkPres.class %BlkSpecial.class %Block.extra ", |
635 |
'%Block.mix' => q"%Heading.class %List.class %Block.class %Misc.class ", |
636 |
'%Flow.mix' => q"%Heading.class %List.class %Block.class %Inline.class %Misc.class ", |
637 |
'%BlkNoForm.mix' => q<%Heading.class %List.class %BlkStruct.class |
638 |
%BlkPhras.class %Table.class %Misc.class |
639 |
%Block.extra>, |
640 |
}, |
641 |
class_misc => { |
642 |
pre => q<%pre.content>, |
643 |
'%pre.content' => q<#PCDATA %InlStruct.class %InlPhras.class |
644 |
tt i b %I18n.class %Anchor.class script map |
645 |
%Inline.extra>, |
646 |
a => q<%a.content>, |
647 |
'%a.content' => q<#PCDATA %InlNoAnchor.mix>, |
648 |
form => q<%form.content>, |
649 |
'%form.content' => q<%BlkNoForm.mix fieldset>, |
650 |
label => q<%label.content>, |
651 |
'%label.content' => q<#PCDATA input select textarea button |
652 |
%InlStruct.class %InlPhras.class |
653 |
%I18n.class %InlPres.class %Anchor.class |
654 |
%InlSpecial.class %Inline.extra %Misc.class>, |
655 |
fieldset => q<%fieldset.content>, |
656 |
'%fieldset.content' => q<#PCDATA legend %Flow.mix>, |
657 |
button => q<%button.content>, |
658 |
'%button.content' => q<#PCDATA %BlkNoForm.mix %InlStruct.class |
659 |
%InlPhras.class %InlPres.class |
660 |
%I18n.class %InlSpecial.class %Inline.extra>, |
661 |
td => q<#PCDATA %Flow.mix>, |
662 |
li => q<#PCDATA %Flow.mix>, |
663 |
dt => q<#PCDATA %Inline.mix>, |
664 |
dd => q<#PCDATA %Flow.mix>, |
665 |
hn => q<#PCDATA %Inline.mix>, |
666 |
address => q<#PCDATA %Inline.mix>, |
667 |
blockquote => q<%Block.mix>, |
668 |
}, |
669 |
}, |
670 |
{ |
671 |
name => q<XHTML 1.1 + Legacy (m12n 1.0 FE/SE DTD)>, |
672 |
class => { |
673 |
'%Edit.class' => q"ins | del ", |
674 |
'%Script.class' => q"script noscript", |
675 |
'%Misc.extra' => q"", |
676 |
'%Misc.class' => q"%Edit.class %Script.class %Misc.extra ", |
677 |
'%InlStruct.class' => q"br span", |
678 |
'%InlPhras.class' => q"em strong dfn code samp kbd var cite abbr acronym q", |
679 |
'%InlPres.class' => q"tt i b big small sub sup |
680 |
font basefont iframe s strike u", |
681 |
'%I18n.class' => q"bdo", |
682 |
'%Anchor.class' => q"a", |
683 |
'%InlSpecial.class' => q"img map object applet", |
684 |
'%InlForm.class' => q"input select textarea label button", |
685 |
'%Inline.extra' => q"", |
686 |
'%Ruby.class' => q"ruby", |
687 |
'%Inline.class' => q"%InlStruct.class %InlPhras.class %InlPres.class %I18n.class %Anchor.class %InlSpecial.class %InlForm.class %Ruby.class %Inline.extra ", |
688 |
'%InlNoRuby.class' => q"%InlStruct.class %InlPhras.class %InlPres.class %I18n.class %Anchor.class %InlSpecial.class %InlForm.class %Inline.extra ", |
689 |
'%NoRuby.content' => q"#PCDATA %InlNoRuby.class %Misc.class ", |
690 |
'%InlNoAnchor.class' => q"%InlStruct.class %InlPhras.class %InlPres.class %I18n.class %InlSpecial.class %InlForm.class %Ruby.class %Inline.extra ", |
691 |
'%InlNoAnchor.mix' => q"%InlNoAnchor.class %Misc.class ", |
692 |
'%Inline.mix' => q"%Inline.class %Misc.class ", |
693 |
'%Heading.class' => q"h1 h2 h3 h4 h5 h6", |
694 |
'%List.class' => q"ul ol dl dir menu", |
695 |
'%Table.class' => q"table", |
696 |
'%Form.class' => q"form", |
697 |
'%Fieldset.class' => q"fieldset", |
698 |
'%BlkStruct.class' => q"p div", |
699 |
'%BlkPhras.class' => q"pre blockquote address", |
700 |
'%BlkPres.class' => q"hr center", |
701 |
'%BlkSpecial.class' => q"table form fieldset noframes isindex", |
702 |
'%Block.extra' => q"", |
703 |
'%Block.class' => q"%BlkStruct.class %BlkPhras.class %BlkPres.class %BlkSpecial.class %Block.extra ", |
704 |
'%Block.mix' => q"%Heading.class %List.class %Block.class %Misc.class ", |
705 |
'%Flow.mix' => q"%Heading.class %List.class %Block.class %Inline.class %Misc.class ", |
706 |
'%BlkNoForm.mix' => q<%Heading.class %List.class %BlkStruct.class |
707 |
%BlkPhras.class %Table.class %Misc.class |
708 |
%Block.extra>, |
709 |
}, |
710 |
class_misc => { |
711 |
pre => q<%pre.content>, |
712 |
'%pre.content' => q<#PCDATA %InlStruct.class %InlPhras.class |
713 |
tt i b %I18n.class %Anchor.class script map |
714 |
%Inline.extra>, |
715 |
a => q<%a.content>, |
716 |
'%a.content' => q<#PCDATA %InlNoAnchor.mix>, |
717 |
form => q<%form.content>, |
718 |
'%form.content' => q<%BlkNoForm.mix fieldset>, |
719 |
label => q<%label.content>, |
720 |
'%label.content' => q<#PCDATA input select textarea button |
721 |
%InlStruct.class %InlPhras.class |
722 |
%I18n.class %InlPres.class %Anchor.class |
723 |
%InlSpecial.class %Inline.extra %Misc.class>, |
724 |
fieldset => q<%fieldset.content>, |
725 |
'%fieldset.content' => q<#PCDATA legend %Flow.mix>, |
726 |
button => q<%button.content>, |
727 |
'%button.content' => q<#PCDATA %BlkNoForm.mix %InlStruct.class |
728 |
%InlPhras.class %InlPres.class |
729 |
%I18n.class %InlSpecial.class %Inline.extra>, |
730 |
td => q<#PCDATA %Flow.mix>, |
731 |
li => q<#PCDATA %Flow.mix>, |
732 |
dt => q<#PCDATA %Inline.mix>, |
733 |
dd => q<#PCDATA %Flow.mix>, |
734 |
hn => q<#PCDATA %Inline.mix>, |
735 |
address => q<#PCDATA %Inline.mix>, |
736 |
blockquote => q<#PCDATA %Flow.mix>, |
737 |
noscript => q<#PCDATA %Flow.mix>, |
738 |
body => q<#PCDATA %Flow.mix>, |
739 |
}, |
740 |
}, |
741 |
{ |
742 |
name => q<XHTML m12n 1.0 FE/SE Abstract>, |
743 |
class => { |
744 |
'Heading' => q"h1 | h2 | h3 | h4 | h5 | h6", |
745 |
'Block' => q"address | blockquote | div | p | pre | hr Form table script noscript", |
746 |
'Inline' => q"abbr | acronym | br | cite | code | dfn | em | kbd | q | samp | span | strong | var a applet b big i small sub sup tt ins del bdo Formctrl img map object iframe script noscript", |
747 |
'Flow' => q"Heading | Block | Inline List", |
748 |
'List' => q"dl | ol | ul", |
749 |
'Form' => q"form fieldset", |
750 |
'Formctrl' => q"input | select | textarea | label | button", |
751 |
}, |
752 |
class_misc => { |
753 |
pre => q<PCDATA Inline>, |
754 |
a => q<PCDATA Inline>, |
755 |
form => q<Heading List Block fieldset>, |
756 |
label => q<PCDATA Inline>, |
757 |
button => q<PCDATA Heading List Block Inline>, |
758 |
fieldset => q<PCDATA legend Flow>, |
759 |
label => q<PCDATA Inline>, |
760 |
td => q<PCDATA Flow>, |
761 |
'td#' => q<PCDATA Flow>, |
762 |
li => q<PCDATA Flow>, |
763 |
dt => q<PCDATA Inline>, |
764 |
dd => q<PCDATA Flow>, |
765 |
address => q<PCDATA Inline>, |
766 |
blockquote => q<Heading Block List>, |
767 |
hn => q<PCDATA Inline>, |
768 |
}, |
769 |
minus => { |
770 |
a => q<a>, |
771 |
form => q<form>, |
772 |
label => q<label>, |
773 |
button => q<Form Formctrl>, |
774 |
label => q<label>, |
775 |
'td#' => q<table>, |
776 |
}, |
777 |
}, |
778 |
]; |
779 |
|
780 |
1; |