html-validator 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,683 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" >
3
+ <!-- ##################################################################### -->
4
+ <define name="script.elem.embedded">
5
+ <a:documentation> RELAX NG Schema for HTML 5: Core Scripting #</a:documentation>
6
+ <!-- ##################################################################### -->
7
+ <!-- ##################################################################### -->
8
+ <a:documentation>Scripting Elements</a:documentation>
9
+ <a:documentation>Inline Scripts: &lt;script&gt;</a:documentation>
10
+ <element name="script">
11
+ <interleave>
12
+ <ref name="script.inner.embedded"/>
13
+ <ref name="script.attrs.embedded"/>
14
+ </interleave>
15
+ </element>
16
+ </define>
17
+ <define name="script.attrs.embedded">
18
+ <interleave>
19
+ <ref name="common.attrs"/>
20
+ <optional>
21
+ <ref name="script.attrs.type"/>
22
+ </optional>
23
+ <optional>
24
+ <ref name="script.attrs.language"/>
25
+ </optional>
26
+ </interleave>
27
+ <!-- restricted in Schematron -->
28
+ </define>
29
+ <define name="script.elem.imported">
30
+ <element name="script">
31
+ <interleave>
32
+ <ref name="script.inner.imported"/>
33
+ <ref name="script.attrs.imported"/>
34
+ </interleave>
35
+ </element>
36
+ </define>
37
+ <define name="script.attrs.imported">
38
+ <interleave>
39
+ <ref name="common.attrs"/>
40
+ <optional>
41
+ <ref name="script.attrs.src"/>
42
+ </optional>
43
+ <optional>
44
+ <ref name="script.attrs.defer"/>
45
+ </optional>
46
+ <optional>
47
+ <ref name="script.attrs.async"/>
48
+ </optional>
49
+ <optional>
50
+ <ref name="script.attrs.type"/>
51
+ </optional>
52
+ <optional>
53
+ <ref name="script.attrs.charset"/>
54
+ </optional>
55
+ <optional>
56
+ <ref name="script.attrs.language"/>
57
+ </optional>
58
+ </interleave>
59
+ <!-- restricted in Schematron -->
60
+ </define>
61
+ <define name="script.attrs.src">
62
+ <attribute name="src">
63
+ <ref name="common.data.uri.non-empty"/>
64
+ </attribute>
65
+ </define>
66
+ <define name="script.attrs.defer">
67
+ <attribute name="defer">
68
+ <choice>
69
+ <value type="string">defer</value>
70
+ <value type="string"/>
71
+ </choice>
72
+ </attribute>
73
+ </define>
74
+ <define name="script.attrs.async">
75
+ <interleave>
76
+ <attribute name="async">
77
+ <choice>
78
+ <value type="string">async</value>
79
+ <value type="string"/>
80
+ </choice>
81
+ </attribute>
82
+ <ref name="v5only"/>
83
+ </interleave>
84
+ </define>
85
+ <define name="script.attrs.type">
86
+ <attribute name="type">
87
+ <ref name="common.data.mimetype"/>
88
+ <!-- XXX without charset parameter! -->
89
+ </attribute>
90
+ </define>
91
+ <define name="script.attrs.charset">
92
+ <attribute name="charset">
93
+ <ref name="common.data.charset"/>
94
+ </attribute>
95
+ </define>
96
+ <define name="script.attrs.language">
97
+ <attribute name="language">
98
+ <data type="string" datatypeLibrary=""/>
99
+ </attribute>
100
+ </define>
101
+ <define name="script.inner.embedded">
102
+ <ref name="common.inner.anything"/>
103
+ </define>
104
+ <define name="script.inner.imported">
105
+ <ref name="common.inner.anything"/>
106
+ </define>
107
+ <define name="script.elem">
108
+ <choice>
109
+ <ref name="script.elem.embedded"/>
110
+ <ref name="script.elem.imported"/>
111
+ </choice>
112
+ </define>
113
+ <define name="common.elem.metadata" combine="choice">
114
+ <ref name="script.elem"/>
115
+ </define>
116
+ <define name="common.elem.phrasing" combine="choice">
117
+ <ref name="script.elem"/>
118
+ </define>
119
+ <define name="noscript.elem.head">
120
+ <a:documentation>Fallback Unscripted Content: &lt;noscript&gt;</a:documentation>
121
+ <interleave>
122
+ <element name="noscript">
123
+ <interleave>
124
+ <ref name="noscript.inner.head"/>
125
+ <ref name="noscript.attrs"/>
126
+ </interleave>
127
+ </element>
128
+ <ref name="HTMLonly"/>
129
+ </interleave>
130
+ </define>
131
+ <define name="noscript.inner.head">
132
+ <zeroOrMore>
133
+ <choice>
134
+ <ref name="link.elem"/>
135
+ <ref name="meta.http-equiv.default-style.elem"/>
136
+ <ref name="meta.http-equiv.refresh.elem"/>
137
+ <ref name="style.elem"/>
138
+ </choice>
139
+ </zeroOrMore>
140
+ </define>
141
+ <define name="noscript.elem.phrasing">
142
+ <interleave>
143
+ <element name="noscript">
144
+ <interleave>
145
+ <ref name="noscript.inner.phrasing"/>
146
+ <ref name="noscript.attrs"/>
147
+ </interleave>
148
+ </element>
149
+ <ref name="HTMLonly"/>
150
+ </interleave>
151
+ </define>
152
+ <define name="noscript.inner.phrasing">
153
+ <ref name="common.inner.phrasing"/>
154
+ </define>
155
+ <define name="noscript.elem.flow">
156
+ <interleave>
157
+ <element name="noscript">
158
+ <interleave>
159
+ <ref name="noscript.inner.flow"/>
160
+ <ref name="noscript.attrs"/>
161
+ </interleave>
162
+ </element>
163
+ <ref name="HTMLonly"/>
164
+ </interleave>
165
+ </define>
166
+ <define name="noscript.inner.flow">
167
+ <ref name="common.inner.flow"/>
168
+ </define>
169
+ <define name="noscript.attrs">
170
+ <ref name="common.attrs"/>
171
+ </define>
172
+ <define name="common.elem.metadata" combine="choice">
173
+ <ref name="noscript.elem.head"/>
174
+ </define>
175
+ <define name="common.elem.phrasing" combine="choice">
176
+ <ref name="noscript.elem.phrasing"/>
177
+ </define>
178
+ <define name="common.elem.flow" combine="choice">
179
+ <ref name="noscript.elem.flow"/>
180
+ </define>
181
+ <!-- ##################################################################### -->
182
+ <define name="common.attrs.scripting" combine="interleave">
183
+ <a:documentation>Event Handler Attribute Definitions</a:documentation>
184
+ <interleave>
185
+ <optional>
186
+ <ref name="scripting.attr.onabort"/>
187
+ </optional>
188
+ <optional>
189
+ <ref name="scripting.attr.onblur"/>
190
+ </optional>
191
+ <optional>
192
+ <ref name="scripting.attr.oncanplay"/>
193
+ </optional>
194
+ <optional>
195
+ <ref name="scripting.attr.oncanplaythrough"/>
196
+ </optional>
197
+ <optional>
198
+ <ref name="scripting.attr.onchange"/>
199
+ </optional>
200
+ <optional>
201
+ <ref name="scripting.attr.onclick"/>
202
+ </optional>
203
+ <optional>
204
+ <ref name="scripting.attr.oncontextmenu"/>
205
+ </optional>
206
+ <optional>
207
+ <ref name="scripting.attr.ondblclick"/>
208
+ </optional>
209
+ <optional>
210
+ <ref name="scripting.attr.ondrag"/>
211
+ </optional>
212
+ <optional>
213
+ <ref name="scripting.attr.ondragend"/>
214
+ </optional>
215
+ <optional>
216
+ <ref name="scripting.attr.ondragenter"/>
217
+ </optional>
218
+ <optional>
219
+ <ref name="scripting.attr.ondragleave"/>
220
+ </optional>
221
+ <optional>
222
+ <ref name="scripting.attr.ondragover"/>
223
+ </optional>
224
+ <optional>
225
+ <ref name="scripting.attr.ondragstart"/>
226
+ </optional>
227
+ <optional>
228
+ <ref name="scripting.attr.ondrop"/>
229
+ </optional>
230
+ <optional>
231
+ <ref name="scripting.attr.ondurationchange"/>
232
+ </optional>
233
+ <optional>
234
+ <ref name="scripting.attr.onemptied"/>
235
+ </optional>
236
+ <optional>
237
+ <ref name="scripting.attr.onended"/>
238
+ </optional>
239
+ <optional>
240
+ <ref name="scripting.attr.onerror"/>
241
+ </optional>
242
+ <optional>
243
+ <ref name="scripting.attr.onfocus"/>
244
+ </optional>
245
+ <optional>
246
+ <ref name="scripting.attr.oninput"/>
247
+ </optional>
248
+ <optional>
249
+ <ref name="scripting.attr.oninvalid"/>
250
+ </optional>
251
+ <optional>
252
+ <ref name="scripting.attr.onkeydown"/>
253
+ </optional>
254
+ <optional>
255
+ <ref name="scripting.attr.onkeypress"/>
256
+ </optional>
257
+ <optional>
258
+ <ref name="scripting.attr.onkeyup"/>
259
+ </optional>
260
+ <optional>
261
+ <ref name="scripting.attr.onload"/>
262
+ </optional>
263
+ <optional>
264
+ <ref name="scripting.attr.onloadeddata"/>
265
+ </optional>
266
+ <optional>
267
+ <ref name="scripting.attr.onloadedmetadata"/>
268
+ </optional>
269
+ <optional>
270
+ <ref name="scripting.attr.onloadstart"/>
271
+ </optional>
272
+ <optional>
273
+ <ref name="scripting.attr.onmousedown"/>
274
+ </optional>
275
+ <optional>
276
+ <ref name="scripting.attr.onmousemove"/>
277
+ </optional>
278
+ <optional>
279
+ <ref name="scripting.attr.onmouseout"/>
280
+ </optional>
281
+ <optional>
282
+ <ref name="scripting.attr.onmouseover"/>
283
+ </optional>
284
+ <optional>
285
+ <ref name="scripting.attr.onmouseup"/>
286
+ </optional>
287
+ <optional>
288
+ <ref name="scripting.attr.onmousewheel"/>
289
+ </optional>
290
+ <optional>
291
+ <ref name="scripting.attr.onpause"/>
292
+ </optional>
293
+ <optional>
294
+ <ref name="scripting.attr.onplay"/>
295
+ </optional>
296
+ <optional>
297
+ <ref name="scripting.attr.onplaying"/>
298
+ </optional>
299
+ <optional>
300
+ <ref name="scripting.attr.onprogress"/>
301
+ </optional>
302
+ <optional>
303
+ <ref name="scripting.attr.onratechange"/>
304
+ </optional>
305
+ <optional>
306
+ <ref name="scripting.attr.onreset"/>
307
+ </optional>
308
+ <optional>
309
+ <ref name="scripting.attr.onscroll"/>
310
+ </optional>
311
+ <optional>
312
+ <ref name="scripting.attr.onseeked"/>
313
+ </optional>
314
+ <optional>
315
+ <ref name="scripting.attr.onseeking"/>
316
+ </optional>
317
+ <optional>
318
+ <ref name="scripting.attr.onselect"/>
319
+ </optional>
320
+ <optional>
321
+ <ref name="scripting.attr.onshow"/>
322
+ </optional>
323
+ <optional>
324
+ <ref name="scripting.attr.onstalled"/>
325
+ </optional>
326
+ <optional>
327
+ <ref name="scripting.attr.onsubmit"/>
328
+ </optional>
329
+ <optional>
330
+ <ref name="scripting.attr.onsuspend"/>
331
+ </optional>
332
+ <optional>
333
+ <ref name="scripting.attr.ontimeupdate"/>
334
+ </optional>
335
+ <optional>
336
+ <ref name="scripting.attr.onvolumechange"/>
337
+ </optional>
338
+ <optional>
339
+ <ref name="scripting.attr.onwaiting"/>
340
+ </optional>
341
+ </interleave>
342
+ </define>
343
+ <define name="common.attrs.other" combine="interleave">
344
+ <ref name="common.attrs.scripting"/>
345
+ </define>
346
+ <define name="scripting.attr.onabort">
347
+ <attribute name="onabort">
348
+ <ref name="common.data.functionbody"/>
349
+ </attribute>
350
+ </define>
351
+ <define name="scripting.attr.onblur">
352
+ <attribute name="onblur">
353
+ <ref name="common.data.functionbody"/>
354
+ </attribute>
355
+ </define>
356
+ <define name="scripting.attr.oncanplay">
357
+ <attribute name="oncanplay">
358
+ <ref name="common.data.functionbody"/>
359
+ </attribute>
360
+ </define>
361
+ <define name="scripting.attr.oncanplaythrough">
362
+ <attribute name="oncanplaythrough">
363
+ <ref name="common.data.functionbody"/>
364
+ </attribute>
365
+ </define>
366
+ <define name="scripting.attr.onchange">
367
+ <attribute name="onchange">
368
+ <ref name="common.data.functionbody"/>
369
+ </attribute>
370
+ </define>
371
+ <define name="scripting.attr.onclick">
372
+ <attribute name="onclick">
373
+ <ref name="common.data.functionbody"/>
374
+ </attribute>
375
+ </define>
376
+ <define name="scripting.attr.oncontextmenu">
377
+ <attribute name="oncontextmenu">
378
+ <ref name="common.data.functionbody"/>
379
+ </attribute>
380
+ </define>
381
+ <define name="scripting.attr.ondblclick">
382
+ <attribute name="ondblclick">
383
+ <ref name="common.data.functionbody"/>
384
+ </attribute>
385
+ </define>
386
+ <define name="scripting.attr.ondrag">
387
+ <attribute name="ondrag">
388
+ <ref name="common.data.functionbody"/>
389
+ </attribute>
390
+ </define>
391
+ <define name="scripting.attr.ondragend">
392
+ <attribute name="ondragend">
393
+ <ref name="common.data.functionbody"/>
394
+ </attribute>
395
+ </define>
396
+ <define name="scripting.attr.ondragenter">
397
+ <attribute name="ondragenter">
398
+ <ref name="common.data.functionbody"/>
399
+ </attribute>
400
+ </define>
401
+ <define name="scripting.attr.ondragleave">
402
+ <attribute name="ondragleave">
403
+ <ref name="common.data.functionbody"/>
404
+ </attribute>
405
+ </define>
406
+ <define name="scripting.attr.ondragover">
407
+ <attribute name="ondragover">
408
+ <ref name="common.data.functionbody"/>
409
+ </attribute>
410
+ </define>
411
+ <define name="scripting.attr.ondragstart">
412
+ <attribute name="ondragstart">
413
+ <ref name="common.data.functionbody"/>
414
+ </attribute>
415
+ </define>
416
+ <define name="scripting.attr.ondrop">
417
+ <attribute name="ondrop">
418
+ <ref name="common.data.functionbody"/>
419
+ </attribute>
420
+ </define>
421
+ <define name="scripting.attr.ondurationchange">
422
+ <attribute name="ondurationchange">
423
+ <ref name="common.data.functionbody"/>
424
+ </attribute>
425
+ </define>
426
+ <define name="scripting.attr.onemptied">
427
+ <attribute name="onemptied">
428
+ <ref name="common.data.functionbody"/>
429
+ </attribute>
430
+ </define>
431
+ <define name="scripting.attr.onended">
432
+ <attribute name="onended">
433
+ <ref name="common.data.functionbody"/>
434
+ </attribute>
435
+ </define>
436
+ <define name="scripting.attr.onerror">
437
+ <attribute name="onerror">
438
+ <ref name="common.data.functionbody"/>
439
+ </attribute>
440
+ </define>
441
+ <define name="scripting.attr.onfocus">
442
+ <attribute name="onfocus">
443
+ <ref name="common.data.functionbody"/>
444
+ </attribute>
445
+ </define>
446
+ <define name="scripting.attr.onformchange">
447
+ <attribute name="onformchange">
448
+ <ref name="common.data.functionbody"/>
449
+ </attribute>
450
+ </define>
451
+ <define name="scripting.attr.onforminput">
452
+ <attribute name="onforminput">
453
+ <ref name="common.data.functionbody"/>
454
+ </attribute>
455
+ </define>
456
+ <define name="scripting.attr.oninput">
457
+ <attribute name="oninput">
458
+ <ref name="common.data.functionbody"/>
459
+ </attribute>
460
+ </define>
461
+ <define name="scripting.attr.oninvalid">
462
+ <attribute name="oninvalid">
463
+ <ref name="common.data.functionbody"/>
464
+ </attribute>
465
+ </define>
466
+ <define name="scripting.attr.onkeydown">
467
+ <attribute name="onkeydown">
468
+ <ref name="common.data.functionbody"/>
469
+ </attribute>
470
+ </define>
471
+ <define name="scripting.attr.onkeypress">
472
+ <attribute name="onkeypress">
473
+ <ref name="common.data.functionbody"/>
474
+ </attribute>
475
+ </define>
476
+ <define name="scripting.attr.onkeyup">
477
+ <attribute name="onkeyup">
478
+ <ref name="common.data.functionbody"/>
479
+ </attribute>
480
+ </define>
481
+ <define name="scripting.attr.onload">
482
+ <attribute name="onload">
483
+ <ref name="common.data.functionbody"/>
484
+ </attribute>
485
+ </define>
486
+ <define name="scripting.attr.onloadeddata">
487
+ <attribute name="onloadeddata">
488
+ <ref name="common.data.functionbody"/>
489
+ </attribute>
490
+ </define>
491
+ <define name="scripting.attr.onloadedmetadata">
492
+ <attribute name="onloadedmetadata">
493
+ <ref name="common.data.functionbody"/>
494
+ </attribute>
495
+ </define>
496
+ <define name="scripting.attr.onloadstart">
497
+ <attribute name="onloadstart">
498
+ <ref name="common.data.functionbody"/>
499
+ </attribute>
500
+ </define>
501
+ <define name="scripting.attr.onmousedown">
502
+ <attribute name="onmousedown">
503
+ <ref name="common.data.functionbody"/>
504
+ </attribute>
505
+ </define>
506
+ <define name="scripting.attr.onmousemove">
507
+ <attribute name="onmousemove">
508
+ <ref name="common.data.functionbody"/>
509
+ </attribute>
510
+ </define>
511
+ <define name="scripting.attr.onmouseout">
512
+ <attribute name="onmouseout">
513
+ <ref name="common.data.functionbody"/>
514
+ </attribute>
515
+ </define>
516
+ <define name="scripting.attr.onmouseover">
517
+ <attribute name="onmouseover">
518
+ <ref name="common.data.functionbody"/>
519
+ </attribute>
520
+ </define>
521
+ <define name="scripting.attr.onmouseup">
522
+ <attribute name="onmouseup">
523
+ <ref name="common.data.functionbody"/>
524
+ </attribute>
525
+ </define>
526
+ <define name="scripting.attr.onmousewheel">
527
+ <attribute name="onmousewheel">
528
+ <ref name="common.data.functionbody"/>
529
+ </attribute>
530
+ </define>
531
+ <define name="scripting.attr.onpause">
532
+ <attribute name="onpause">
533
+ <ref name="common.data.functionbody"/>
534
+ </attribute>
535
+ </define>
536
+ <define name="scripting.attr.onplay">
537
+ <attribute name="onplay">
538
+ <ref name="common.data.functionbody"/>
539
+ </attribute>
540
+ </define>
541
+ <define name="scripting.attr.onplaying">
542
+ <attribute name="onplaying">
543
+ <ref name="common.data.functionbody"/>
544
+ </attribute>
545
+ </define>
546
+ <define name="scripting.attr.onprogress">
547
+ <attribute name="onprogress">
548
+ <ref name="common.data.functionbody"/>
549
+ </attribute>
550
+ </define>
551
+ <define name="scripting.attr.onratechange">
552
+ <attribute name="onratechange">
553
+ <ref name="common.data.functionbody"/>
554
+ </attribute>
555
+ </define>
556
+ <define name="scripting.attr.onreset">
557
+ <attribute name="onreset">
558
+ <ref name="common.data.functionbody"/>
559
+ </attribute>
560
+ </define>
561
+ <define name="scripting.attr.onscroll">
562
+ <attribute name="onscroll">
563
+ <ref name="common.data.functionbody"/>
564
+ </attribute>
565
+ </define>
566
+ <define name="scripting.attr.onseeked">
567
+ <attribute name="onseeked">
568
+ <ref name="common.data.functionbody"/>
569
+ </attribute>
570
+ </define>
571
+ <define name="scripting.attr.onseeking">
572
+ <attribute name="onseeking">
573
+ <ref name="common.data.functionbody"/>
574
+ </attribute>
575
+ </define>
576
+ <define name="scripting.attr.onselect">
577
+ <attribute name="onselect">
578
+ <ref name="common.data.functionbody"/>
579
+ </attribute>
580
+ </define>
581
+ <define name="scripting.attr.onshow">
582
+ <attribute name="onshow">
583
+ <ref name="common.data.functionbody"/>
584
+ </attribute>
585
+ </define>
586
+ <define name="scripting.attr.onstalled">
587
+ <attribute name="onstalled">
588
+ <ref name="common.data.functionbody"/>
589
+ </attribute>
590
+ </define>
591
+ <define name="scripting.attr.onsubmit">
592
+ <attribute name="onsubmit">
593
+ <ref name="common.data.functionbody"/>
594
+ </attribute>
595
+ </define>
596
+ <define name="scripting.attr.onsuspend">
597
+ <attribute name="onsuspend">
598
+ <ref name="common.data.functionbody"/>
599
+ </attribute>
600
+ </define>
601
+ <define name="scripting.attr.ontimeupdate">
602
+ <attribute name="ontimeupdate">
603
+ <ref name="common.data.functionbody"/>
604
+ </attribute>
605
+ </define>
606
+ <define name="scripting.attr.onvolumechange">
607
+ <attribute name="onvolumechange">
608
+ <ref name="common.data.functionbody"/>
609
+ </attribute>
610
+ </define>
611
+ <define name="scripting.attr.onwaiting">
612
+ <attribute name="onwaiting">
613
+ <ref name="common.data.functionbody"/>
614
+ </attribute>
615
+ </define>
616
+ </grammar>
617
+ <!--
618
+ scripting.attr.common =
619
+ ( scripting.attr.mouse
620
+ & scripting.attr.keyboard
621
+ & scripting.attr.focus
622
+ )
623
+
624
+ scripting.attr.mouse =
625
+ ( scripting.attr.mouse.click?
626
+ & scripting.attr.mouse.dblclick?
627
+ & scripting.attr.mouse.down?
628
+ & scripting.attr.mouse.up?
629
+ & scripting.attr.mouse.over?
630
+ & scripting.attr.mouse.move?
631
+ & scripting.attr.mouse.out?
632
+ )
633
+ scripting.attr.mouse.click =
634
+ attribute onclick { string }
635
+ scripting.attr.mouse.dblclick =
636
+ attribute ondblclick { string }
637
+ scripting.attr.mouse.down =
638
+ attribute onmousedown { string }
639
+ scripting.attr.mouse.up =
640
+ attribute onmouseup { string }
641
+ scripting.attr.mouse.over =
642
+ attribute onmouseover { string }
643
+ scripting.attr.mouse.move =
644
+ attribute onmousemove { string }
645
+ scripting.attr.mouse.out =
646
+ attribute onmouseout { string }
647
+
648
+ scripting.attr.keyboard =
649
+ ( scripting.attr.keyboard.press?
650
+ & scripting.attr.keyboard.down?
651
+ & scripting.attr.keyboard.up?
652
+ )
653
+ scripting.attr.keyboard.press =
654
+ attribute onkeypress { string }
655
+ scripting.attr.keyboard.down =
656
+ attribute onkeydown { string }
657
+ scripting.attr.keyboard.up =
658
+ attribute onkeyup { string }
659
+
660
+
661
+ scripting.attr.focus =
662
+ ( scripting.attr.focus.gain?
663
+ & scripting.attr.focus.lose?
664
+ )
665
+ scripting.attr.focus.gain =
666
+ attribute onfocus { string }
667
+ scripting.attr.focus.lose =
668
+ attribute onblur { string }
669
+
670
+ scripting.attr.loading =
671
+ ( scripting.attr.loading.load?
672
+ & scripting.attr.loading.unload?
673
+ )
674
+ scripting.attr.loading.load =
675
+ attribute onload { string }
676
+ scripting.attr.loading.unload =
677
+ attribute onunload { string }
678
+ -->
679
+ <!--
680
+ #####################################################################
681
+ Event Handler Attribute Assignments
682
+ -->
683
+ <!-- body.attrs &= scripting.attr.loading -->