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,1388 @@
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="common-form.attrs" combine="interleave">
5
+ <a:documentation> RELAX NG Schema for HTML 5: Web Forms 2.0 markup #</a:documentation>
6
+ <!-- ##################################################################### -->
7
+ <a:documentation>Shared attributes for form controls</a:documentation>
8
+ <optional>
9
+ <ref name="common-form.attrs.form"/>
10
+ </optional>
11
+ </define>
12
+ <define name="common-form.attrs.form" combine="choice">
13
+ <attribute name="form">
14
+ <ref name="common.data.idref"/>
15
+ </attribute>
16
+ </define>
17
+ <define name="shared-form.attrs.formaction">
18
+ <attribute name="formaction">
19
+ <ref name="common.data.uri.non-empty"/>
20
+ </attribute>
21
+ </define>
22
+ <define name="shared-form.attrs.formenctype">
23
+ <attribute name="formenctype">
24
+ <ref name="shared-form.attrs.formenctype.data"/>
25
+ </attribute>
26
+ </define>
27
+ <define name="shared-form.attrs.formenctype.data">
28
+ <choice>
29
+ <value type="string">application/x-www-form-urlencoded</value>
30
+ <value type="string">multipart/form-data</value>
31
+ <value type="string">text/plain</value>
32
+ </choice>
33
+ </define>
34
+ <define name="shared-form.attrs.formmethod">
35
+ <attribute name="formmethod">
36
+ <ref name="shared-form.attrs.formmethod.data"/>
37
+ </attribute>
38
+ </define>
39
+ <define name="shared-form.attrs.formmethod.data">
40
+ <choice>
41
+ <value type="string">get</value>
42
+ <value type="string">post</value>
43
+ </choice>
44
+ </define>
45
+ <define name="shared-form.attrs.formtarget">
46
+ <attribute name="formtarget">
47
+ <ref name="common.data.browsing-context-or-keyword"/>
48
+ </attribute>
49
+ </define>
50
+ <define name="shared-form.attrs.formnovalidate">
51
+ <attribute name="formnovalidate">
52
+ <choice>
53
+ <value type="string">formnovalidate</value>
54
+ <value type="string"/>
55
+ </choice>
56
+ </attribute>
57
+ </define>
58
+ <define name="shared-form.attrs.autofocus">
59
+ <attribute name="autofocus">
60
+ <choice>
61
+ <value type="string">autofocus</value>
62
+ <value type="string"/>
63
+ </choice>
64
+ </attribute>
65
+ </define>
66
+ <define name="shared-form.attrs.pattern">
67
+ <attribute name="pattern">
68
+ <ref name="form.data.pattern"/>
69
+ </attribute>
70
+ </define>
71
+ <define name="shared-form.attrs.template">
72
+ <attribute name="template">
73
+ <ref name="common.data.idref"/>
74
+ </attribute>
75
+ </define>
76
+ <define name="shared-form.attrs.required">
77
+ <attribute name="required">
78
+ <choice>
79
+ <value type="string">required</value>
80
+ <value type="string"/>
81
+ </choice>
82
+ </attribute>
83
+ </define>
84
+ <define name="shared-form.attrs.placeholder">
85
+ <attribute name="placeholder">
86
+ <ref name="form.data.stringwithoutlinebreaks"/>
87
+ </attribute>
88
+ </define>
89
+ <define name="shared-form.attrs.dirname">
90
+ <attribute name="dirname">
91
+ <ref name="form.data.nonemptystring"/>
92
+ </attribute>
93
+ </define>
94
+ <define name="input.attrs.autocomplete">
95
+ <a:documentation>Shared attributes for &lt;input&gt;</a:documentation>
96
+ <attribute name="autocomplete">
97
+ <choice>
98
+ <value type="string">on</value>
99
+ <value type="string">off</value>
100
+ </choice>
101
+ </attribute>
102
+ </define>
103
+ <define name="input.attrs.list">
104
+ <attribute name="list">
105
+ <ref name="common.data.idref"/>
106
+ </attribute>
107
+ </define>
108
+ <define name="input.attrs.step.float">
109
+ <attribute name="step">
110
+ <choice>
111
+ <value type="string">any</value>
112
+ <ref name="common.data.float.positive"/>
113
+ </choice>
114
+ </attribute>
115
+ </define>
116
+ <define name="input.attrs.step.integer">
117
+ <attribute name="step">
118
+ <choice>
119
+ <value type="string">any</value>
120
+ <ref name="common.data.integer.positive"/>
121
+ </choice>
122
+ </attribute>
123
+ </define>
124
+ <define name="input.attrs.multiple">
125
+ <attribute name="multiple">
126
+ <choice>
127
+ <value type="string">multiple</value>
128
+ <value type="string"/>
129
+ </choice>
130
+ </attribute>
131
+ </define>
132
+ <define name="input.text.attrs" combine="interleave">
133
+ <a:documentation>Text Field: &lt;input type='text'&gt;, Extensions</a:documentation>
134
+ <interleave>
135
+ <optional>
136
+ <ref name="input.attrs.autocomplete"/>
137
+ </optional>
138
+ <optional>
139
+ <ref name="shared-form.attrs.autofocus"/>
140
+ </optional>
141
+ <optional>
142
+ <ref name="input.attrs.list"/>
143
+ </optional>
144
+ <optional>
145
+ <ref name="shared-form.attrs.pattern"/>
146
+ </optional>
147
+ <optional>
148
+ <ref name="shared-form.attrs.required"/>
149
+ </optional>
150
+ <optional>
151
+ <ref name="shared-form.attrs.placeholder"/>
152
+ </optional>
153
+ <optional>
154
+ <ref name="shared-form.attrs.dirname"/>
155
+ </optional>
156
+ </interleave>
157
+ </define>
158
+ <define name="input.password.attrs" combine="interleave">
159
+ <a:documentation>Password Field: &lt;input type='password'&gt;, Extensions</a:documentation>
160
+ <interleave>
161
+ <optional>
162
+ <ref name="input.attrs.autocomplete"/>
163
+ </optional>
164
+ <optional>
165
+ <ref name="shared-form.attrs.autofocus"/>
166
+ </optional>
167
+ <optional>
168
+ <ref name="shared-form.attrs.pattern"/>
169
+ </optional>
170
+ <optional>
171
+ <ref name="shared-form.attrs.required"/>
172
+ </optional>
173
+ <optional>
174
+ <ref name="shared-form.attrs.placeholder"/>
175
+ </optional>
176
+ </interleave>
177
+ </define>
178
+ <define name="input.checkbox.attrs" combine="interleave">
179
+ <a:documentation>Checkbox &lt;input type='checkbox'&gt;, Extensions</a:documentation>
180
+ <interleave>
181
+ <optional>
182
+ <ref name="shared-form.attrs.autofocus"/>
183
+ </optional>
184
+ <optional>
185
+ <ref name="shared-form.attrs.required"/>
186
+ </optional>
187
+ </interleave>
188
+ </define>
189
+ <define name="input.radio.attrs" combine="interleave">
190
+ <a:documentation>Radiobutton: &lt;input type='radio'&gt;, Extensions</a:documentation>
191
+ <interleave>
192
+ <optional>
193
+ <ref name="shared-form.attrs.autofocus"/>
194
+ </optional>
195
+ <optional>
196
+ <ref name="shared-form.attrs.required"/>
197
+ </optional>
198
+ </interleave>
199
+ </define>
200
+ <define name="input.button.attrs" combine="interleave">
201
+ <a:documentation>Scripting Hook Button: &lt;input type='button'&gt;, Extensions</a:documentation>
202
+ <optional>
203
+ <ref name="shared-form.attrs.autofocus"/>
204
+ </optional>
205
+ </define>
206
+ <define name="input.submit.attrs" combine="interleave">
207
+ <a:documentation>Submit Button: &lt;input type='submit'&gt;, Extensions</a:documentation>
208
+ <interleave>
209
+ <optional>
210
+ <ref name="shared-form.attrs.formaction"/>
211
+ </optional>
212
+ <optional>
213
+ <ref name="shared-form.attrs.autofocus"/>
214
+ </optional>
215
+ <optional>
216
+ <ref name="shared-form.attrs.formenctype"/>
217
+ </optional>
218
+ <optional>
219
+ <ref name="shared-form.attrs.formmethod"/>
220
+ </optional>
221
+ <optional>
222
+ <ref name="shared-form.attrs.formtarget"/>
223
+ </optional>
224
+ <optional>
225
+ <ref name="shared-form.attrs.formnovalidate"/>
226
+ </optional>
227
+ </interleave>
228
+ </define>
229
+ <define name="input.reset.attrs" combine="interleave">
230
+ <a:documentation>Reset Button: &lt;input type='reset'&gt;, Extensions</a:documentation>
231
+ <optional>
232
+ <ref name="shared-form.attrs.autofocus"/>
233
+ </optional>
234
+ </define>
235
+ <define name="input.file.attrs" combine="interleave">
236
+ <a:documentation>File Upload: &lt;input type='file'&gt;, Extensions</a:documentation>
237
+ <interleave>
238
+ <optional>
239
+ <ref name="shared-form.attrs.autofocus"/>
240
+ </optional>
241
+ <optional>
242
+ <ref name="shared-form.attrs.required"/>
243
+ </optional>
244
+ <optional>
245
+ <ref name="input.attrs.multiple"/>
246
+ </optional>
247
+ </interleave>
248
+ </define>
249
+ <define name="input.image.attrs" combine="interleave">
250
+ <a:documentation>Image Submit Button: &lt;input type='image'&gt;, Extensions</a:documentation>
251
+ <interleave>
252
+ <optional>
253
+ <ref name="shared-form.attrs.formaction"/>
254
+ </optional>
255
+ <optional>
256
+ <ref name="shared-form.attrs.autofocus"/>
257
+ </optional>
258
+ <optional>
259
+ <ref name="shared-form.attrs.formenctype"/>
260
+ </optional>
261
+ <optional>
262
+ <ref name="shared-form.attrs.formmethod"/>
263
+ </optional>
264
+ <optional>
265
+ <ref name="shared-form.attrs.formtarget"/>
266
+ </optional>
267
+ <optional>
268
+ <ref name="shared-form.attrs.formnovalidate"/>
269
+ </optional>
270
+ <optional>
271
+ <ref name="input.image.attrs.height"/>
272
+ </optional>
273
+ <optional>
274
+ <ref name="input.image.attrs.width"/>
275
+ </optional>
276
+ </interleave>
277
+ </define>
278
+ <define name="input.image.attrs.height">
279
+ <attribute name="height">
280
+ <ref name="common.data.integer.non-negative"/>
281
+ </attribute>
282
+ </define>
283
+ <define name="input.image.attrs.width">
284
+ <attribute name="width">
285
+ <ref name="common.data.integer.non-negative"/>
286
+ </attribute>
287
+ </define>
288
+ <define name="input.datetime.elem">
289
+ <a:documentation>Global Date and Time: &lt;input type='datetime'&gt;</a:documentation>
290
+ <element name="input">
291
+ <ref name="input.datetime.attrs"/>
292
+ </element>
293
+ </define>
294
+ <define name="input.datetime.attrs">
295
+ <interleave>
296
+ <ref name="common.attrs"/>
297
+ <ref name="common-form.attrs"/>
298
+ <ref name="input.datetime.attrs.type"/>
299
+ <optional>
300
+ <ref name="input.attrs.autocomplete"/>
301
+ </optional>
302
+ <optional>
303
+ <ref name="shared-form.attrs.autofocus"/>
304
+ </optional>
305
+ <optional>
306
+ <ref name="input.attrs.list"/>
307
+ </optional>
308
+ <optional>
309
+ <ref name="input.datetime.attrs.min"/>
310
+ </optional>
311
+ <optional>
312
+ <ref name="input.datetime.attrs.max"/>
313
+ </optional>
314
+ <optional>
315
+ <ref name="input.attrs.step.float"/>
316
+ </optional>
317
+ <optional>
318
+ <ref name="shared-form.attrs.readonly"/>
319
+ </optional>
320
+ <optional>
321
+ <ref name="shared-form.attrs.required"/>
322
+ </optional>
323
+ <optional>
324
+ <ref name="input.datetime.attrs.value"/>
325
+ </optional>
326
+ <optional>
327
+ <ref name="common.attrs.aria.implicit.input"/>
328
+ </optional>
329
+ </interleave>
330
+ </define>
331
+ <define name="input.datetime.attrs.type">
332
+ <attribute name="type">
333
+ <value type="string">datetime</value>
334
+ </attribute>
335
+ </define>
336
+ <define name="input.datetime.attrs.min">
337
+ <attribute name="min">
338
+ <ref name="common.data.datetime"/>
339
+ </attribute>
340
+ </define>
341
+ <define name="input.datetime.attrs.max">
342
+ <attribute name="max">
343
+ <ref name="common.data.datetime"/>
344
+ </attribute>
345
+ </define>
346
+ <define name="input.datetime.attrs.value">
347
+ <attribute name="value">
348
+ <choice>
349
+ <value type="string"/>
350
+ <ref name="common.data.datetime"/>
351
+ </choice>
352
+ </attribute>
353
+ </define>
354
+ <define name="input.elem" combine="choice">
355
+ <ref name="input.datetime.elem"/>
356
+ </define>
357
+ <define name="input.datetime-local.elem">
358
+ <a:documentation>Date and Time with No Time Zone Information: &lt;input type='datetime-local'&gt;</a:documentation>
359
+ <element name="input">
360
+ <ref name="input.datetime-local.attrs"/>
361
+ </element>
362
+ </define>
363
+ <define name="input.datetime-local.attrs">
364
+ <interleave>
365
+ <ref name="common.attrs"/>
366
+ <ref name="common-form.attrs"/>
367
+ <ref name="input.datetime-local.attrs.type"/>
368
+ <optional>
369
+ <ref name="input.attrs.autocomplete"/>
370
+ </optional>
371
+ <optional>
372
+ <ref name="shared-form.attrs.autofocus"/>
373
+ </optional>
374
+ <optional>
375
+ <ref name="input.attrs.list"/>
376
+ </optional>
377
+ <optional>
378
+ <ref name="input.datetime-local.attrs.min"/>
379
+ </optional>
380
+ <optional>
381
+ <ref name="input.datetime-local.attrs.max"/>
382
+ </optional>
383
+ <optional>
384
+ <ref name="input.attrs.step.float"/>
385
+ </optional>
386
+ <optional>
387
+ <ref name="shared-form.attrs.readonly"/>
388
+ </optional>
389
+ <optional>
390
+ <ref name="shared-form.attrs.required"/>
391
+ </optional>
392
+ <optional>
393
+ <ref name="input.datetime-local.attrs.value"/>
394
+ </optional>
395
+ <optional>
396
+ <ref name="common.attrs.aria.implicit.input"/>
397
+ </optional>
398
+ </interleave>
399
+ </define>
400
+ <define name="input.datetime-local.attrs.type">
401
+ <attribute name="type">
402
+ <value type="string">datetime-local</value>
403
+ </attribute>
404
+ </define>
405
+ <define name="input.datetime-local.attrs.min">
406
+ <attribute name="min">
407
+ <ref name="form.data.datetime-local"/>
408
+ </attribute>
409
+ </define>
410
+ <define name="input.datetime-local.attrs.max">
411
+ <attribute name="max">
412
+ <ref name="form.data.datetime-local"/>
413
+ </attribute>
414
+ </define>
415
+ <define name="input.datetime-local.attrs.value">
416
+ <attribute name="value">
417
+ <choice>
418
+ <value type="string"/>
419
+ <ref name="form.data.datetime-local"/>
420
+ </choice>
421
+ </attribute>
422
+ </define>
423
+ <define name="input.elem" combine="choice">
424
+ <ref name="input.datetime-local.elem"/>
425
+ </define>
426
+ <define name="input.date.elem">
427
+ <a:documentation>Date: &lt;input type='date'&gt;</a:documentation>
428
+ <element name="input">
429
+ <ref name="input.date.attrs"/>
430
+ </element>
431
+ </define>
432
+ <define name="input.date.attrs">
433
+ <interleave>
434
+ <ref name="common.attrs"/>
435
+ <ref name="common-form.attrs"/>
436
+ <ref name="input.date.attrs.type"/>
437
+ <optional>
438
+ <ref name="input.attrs.autocomplete"/>
439
+ </optional>
440
+ <optional>
441
+ <ref name="shared-form.attrs.autofocus"/>
442
+ </optional>
443
+ <optional>
444
+ <ref name="input.attrs.list"/>
445
+ </optional>
446
+ <optional>
447
+ <ref name="input.date.attrs.min"/>
448
+ </optional>
449
+ <optional>
450
+ <ref name="input.date.attrs.max"/>
451
+ </optional>
452
+ <optional>
453
+ <ref name="input.attrs.step.integer"/>
454
+ </optional>
455
+ <optional>
456
+ <ref name="shared-form.attrs.readonly"/>
457
+ </optional>
458
+ <optional>
459
+ <ref name="shared-form.attrs.required"/>
460
+ </optional>
461
+ <optional>
462
+ <ref name="input.date.attrs.value"/>
463
+ </optional>
464
+ <optional>
465
+ <ref name="common.attrs.aria.implicit.input"/>
466
+ </optional>
467
+ </interleave>
468
+ </define>
469
+ <define name="input.date.attrs.type">
470
+ <attribute name="type">
471
+ <value type="string">date</value>
472
+ </attribute>
473
+ </define>
474
+ <define name="input.date.attrs.min">
475
+ <attribute name="min">
476
+ <ref name="form.data.date"/>
477
+ </attribute>
478
+ </define>
479
+ <define name="input.date.attrs.max">
480
+ <attribute name="max">
481
+ <ref name="form.data.date"/>
482
+ </attribute>
483
+ </define>
484
+ <define name="input.date.attrs.value">
485
+ <attribute name="value">
486
+ <choice>
487
+ <value type="string"/>
488
+ <ref name="form.data.date"/>
489
+ </choice>
490
+ </attribute>
491
+ </define>
492
+ <define name="input.elem" combine="choice">
493
+ <ref name="input.date.elem"/>
494
+ </define>
495
+ <define name="input.month.elem">
496
+ <a:documentation>Year and Month: &lt;input type='month'&gt;</a:documentation>
497
+ <element name="input">
498
+ <ref name="input.month.attrs"/>
499
+ </element>
500
+ </define>
501
+ <define name="input.month.attrs">
502
+ <interleave>
503
+ <ref name="common.attrs"/>
504
+ <ref name="common-form.attrs"/>
505
+ <ref name="input.month.attrs.type"/>
506
+ <optional>
507
+ <ref name="input.attrs.autocomplete"/>
508
+ </optional>
509
+ <optional>
510
+ <ref name="shared-form.attrs.autofocus"/>
511
+ </optional>
512
+ <optional>
513
+ <ref name="input.attrs.list"/>
514
+ </optional>
515
+ <optional>
516
+ <ref name="input.month.attrs.min"/>
517
+ </optional>
518
+ <optional>
519
+ <ref name="input.month.attrs.max"/>
520
+ </optional>
521
+ <optional>
522
+ <ref name="input.attrs.step.integer"/>
523
+ </optional>
524
+ <optional>
525
+ <ref name="shared-form.attrs.readonly"/>
526
+ </optional>
527
+ <optional>
528
+ <ref name="shared-form.attrs.required"/>
529
+ </optional>
530
+ <optional>
531
+ <ref name="input.month.attrs.value"/>
532
+ </optional>
533
+ <optional>
534
+ <ref name="common.attrs.aria.implicit.input"/>
535
+ </optional>
536
+ </interleave>
537
+ </define>
538
+ <define name="input.month.attrs.type">
539
+ <attribute name="type">
540
+ <value type="string">month</value>
541
+ </attribute>
542
+ </define>
543
+ <define name="input.month.attrs.min">
544
+ <attribute name="min">
545
+ <ref name="form.data.month"/>
546
+ </attribute>
547
+ </define>
548
+ <define name="input.month.attrs.max">
549
+ <attribute name="max">
550
+ <ref name="form.data.month"/>
551
+ </attribute>
552
+ </define>
553
+ <define name="input.month.attrs.value">
554
+ <attribute name="value">
555
+ <choice>
556
+ <value type="string"/>
557
+ <ref name="form.data.month"/>
558
+ </choice>
559
+ </attribute>
560
+ </define>
561
+ <define name="input.elem" combine="choice">
562
+ <ref name="input.month.elem"/>
563
+ </define>
564
+ <define name="input.time.elem">
565
+ <a:documentation>Time without Time Zone Information: &lt;input type='time'&gt;</a:documentation>
566
+ <element name="input">
567
+ <ref name="input.time.attrs"/>
568
+ </element>
569
+ </define>
570
+ <define name="input.time.attrs">
571
+ <interleave>
572
+ <ref name="common.attrs"/>
573
+ <ref name="common-form.attrs"/>
574
+ <ref name="input.time.attrs.type"/>
575
+ <optional>
576
+ <ref name="input.attrs.autocomplete"/>
577
+ </optional>
578
+ <optional>
579
+ <ref name="shared-form.attrs.autofocus"/>
580
+ </optional>
581
+ <optional>
582
+ <ref name="input.attrs.list"/>
583
+ </optional>
584
+ <optional>
585
+ <ref name="input.time.attrs.min"/>
586
+ </optional>
587
+ <optional>
588
+ <ref name="input.time.attrs.max"/>
589
+ </optional>
590
+ <optional>
591
+ <ref name="input.attrs.step.float"/>
592
+ </optional>
593
+ <optional>
594
+ <ref name="shared-form.attrs.readonly"/>
595
+ </optional>
596
+ <optional>
597
+ <ref name="shared-form.attrs.required"/>
598
+ </optional>
599
+ <optional>
600
+ <ref name="input.time.attrs.value"/>
601
+ </optional>
602
+ <optional>
603
+ <ref name="common.attrs.aria.implicit.input"/>
604
+ </optional>
605
+ </interleave>
606
+ </define>
607
+ <define name="input.time.attrs.type">
608
+ <attribute name="type">
609
+ <value type="string">time</value>
610
+ </attribute>
611
+ </define>
612
+ <define name="input.time.attrs.min">
613
+ <attribute name="min">
614
+ <ref name="form.data.time"/>
615
+ </attribute>
616
+ </define>
617
+ <define name="input.time.attrs.max">
618
+ <attribute name="max">
619
+ <ref name="form.data.time"/>
620
+ </attribute>
621
+ </define>
622
+ <define name="input.time.attrs.value">
623
+ <attribute name="value">
624
+ <choice>
625
+ <value type="string"/>
626
+ <ref name="form.data.time"/>
627
+ </choice>
628
+ </attribute>
629
+ </define>
630
+ <define name="input.elem" combine="choice">
631
+ <ref name="input.time.elem"/>
632
+ </define>
633
+ <define name="input.week.elem">
634
+ <a:documentation>Year and Week: &lt;input type='week'&gt;</a:documentation>
635
+ <element name="input">
636
+ <ref name="input.week.attrs"/>
637
+ </element>
638
+ </define>
639
+ <define name="input.week.attrs">
640
+ <interleave>
641
+ <ref name="common.attrs"/>
642
+ <ref name="common-form.attrs"/>
643
+ <ref name="input.week.attrs.type"/>
644
+ <optional>
645
+ <ref name="input.attrs.autocomplete"/>
646
+ </optional>
647
+ <optional>
648
+ <ref name="shared-form.attrs.autofocus"/>
649
+ </optional>
650
+ <optional>
651
+ <ref name="input.attrs.list"/>
652
+ </optional>
653
+ <optional>
654
+ <ref name="input.week.attrs.min"/>
655
+ </optional>
656
+ <optional>
657
+ <ref name="input.week.attrs.max"/>
658
+ </optional>
659
+ <optional>
660
+ <ref name="input.attrs.step.integer"/>
661
+ </optional>
662
+ <optional>
663
+ <ref name="shared-form.attrs.readonly"/>
664
+ </optional>
665
+ <optional>
666
+ <ref name="shared-form.attrs.required"/>
667
+ </optional>
668
+ <optional>
669
+ <ref name="input.week.attrs.value"/>
670
+ </optional>
671
+ <optional>
672
+ <ref name="common.attrs.aria.implicit.input"/>
673
+ </optional>
674
+ </interleave>
675
+ </define>
676
+ <define name="input.week.attrs.type">
677
+ <attribute name="type">
678
+ <value type="string">week</value>
679
+ </attribute>
680
+ </define>
681
+ <define name="input.week.attrs.min">
682
+ <attribute name="min">
683
+ <ref name="form.data.week"/>
684
+ </attribute>
685
+ </define>
686
+ <define name="input.week.attrs.max">
687
+ <attribute name="max">
688
+ <ref name="form.data.week"/>
689
+ </attribute>
690
+ </define>
691
+ <define name="input.week.attrs.value">
692
+ <attribute name="value">
693
+ <choice>
694
+ <value type="string"/>
695
+ <ref name="form.data.week"/>
696
+ </choice>
697
+ </attribute>
698
+ </define>
699
+ <define name="input.elem" combine="choice">
700
+ <ref name="input.week.elem"/>
701
+ </define>
702
+ <define name="input.number.elem">
703
+ <a:documentation>Number: &lt;input type='number'&gt;</a:documentation>
704
+ <element name="input">
705
+ <ref name="input.number.attrs"/>
706
+ </element>
707
+ </define>
708
+ <define name="input.number.attrs">
709
+ <interleave>
710
+ <ref name="common.attrs"/>
711
+ <ref name="common-form.attrs"/>
712
+ <ref name="input.number.attrs.type"/>
713
+ <optional>
714
+ <ref name="input.attrs.autocomplete"/>
715
+ </optional>
716
+ <optional>
717
+ <ref name="shared-form.attrs.autofocus"/>
718
+ </optional>
719
+ <optional>
720
+ <ref name="input.attrs.list"/>
721
+ </optional>
722
+ <optional>
723
+ <ref name="input.number.attrs.min"/>
724
+ </optional>
725
+ <optional>
726
+ <ref name="input.number.attrs.max"/>
727
+ </optional>
728
+ <optional>
729
+ <ref name="input.attrs.step.float"/>
730
+ </optional>
731
+ <optional>
732
+ <ref name="shared-form.attrs.readonly"/>
733
+ </optional>
734
+ <optional>
735
+ <ref name="shared-form.attrs.required"/>
736
+ </optional>
737
+ <optional>
738
+ <ref name="shared-form.attrs.placeholder"/>
739
+ </optional>
740
+ <optional>
741
+ <ref name="input.number.attrs.value"/>
742
+ </optional>
743
+ <optional>
744
+ <ref name="common.attrs.aria.implicit.input"/>
745
+ </optional>
746
+ </interleave>
747
+ </define>
748
+ <define name="input.number.attrs.type">
749
+ <attribute name="type">
750
+ <value type="string">number</value>
751
+ </attribute>
752
+ </define>
753
+ <define name="input.number.attrs.min">
754
+ <attribute name="min">
755
+ <ref name="common.data.float"/>
756
+ </attribute>
757
+ </define>
758
+ <define name="input.number.attrs.max">
759
+ <attribute name="max">
760
+ <ref name="common.data.float"/>
761
+ </attribute>
762
+ </define>
763
+ <define name="input.number.attrs.value">
764
+ <attribute name="value">
765
+ <choice>
766
+ <value type="string"/>
767
+ <ref name="common.data.float"/>
768
+ </choice>
769
+ </attribute>
770
+ </define>
771
+ <define name="input.elem" combine="choice">
772
+ <ref name="input.number.elem"/>
773
+ </define>
774
+ <define name="input.range.elem">
775
+ <a:documentation>Imprecise Number: &lt;input type='range'&gt;</a:documentation>
776
+ <element name="input">
777
+ <ref name="input.range.attrs"/>
778
+ </element>
779
+ </define>
780
+ <define name="input.range.attrs">
781
+ <interleave>
782
+ <ref name="common.attrs"/>
783
+ <ref name="common-form.attrs"/>
784
+ <ref name="input.range.attrs.type"/>
785
+ <optional>
786
+ <ref name="input.attrs.autocomplete"/>
787
+ </optional>
788
+ <optional>
789
+ <ref name="shared-form.attrs.autofocus"/>
790
+ </optional>
791
+ <optional>
792
+ <ref name="input.attrs.list"/>
793
+ </optional>
794
+ <optional>
795
+ <ref name="input.range.attrs.min"/>
796
+ </optional>
797
+ <optional>
798
+ <ref name="input.range.attrs.max"/>
799
+ </optional>
800
+ <optional>
801
+ <ref name="input.attrs.step.float"/>
802
+ </optional>
803
+ <optional>
804
+ <ref name="input.range.attrs.value"/>
805
+ </optional>
806
+ <optional>
807
+ <ref name="common.attrs.aria.implicit.input"/>
808
+ </optional>
809
+ </interleave>
810
+ </define>
811
+ <define name="input.range.attrs.type">
812
+ <attribute name="type">
813
+ <value type="string">range</value>
814
+ </attribute>
815
+ </define>
816
+ <define name="input.range.attrs.min">
817
+ <attribute name="min">
818
+ <ref name="common.data.float"/>
819
+ </attribute>
820
+ </define>
821
+ <define name="input.range.attrs.max">
822
+ <attribute name="max">
823
+ <ref name="common.data.float"/>
824
+ </attribute>
825
+ </define>
826
+ <define name="input.range.attrs.value">
827
+ <attribute name="value">
828
+ <ref name="common.data.float"/>
829
+ </attribute>
830
+ </define>
831
+ <define name="input.elem" combine="choice">
832
+ <ref name="input.range.elem"/>
833
+ </define>
834
+ <define name="input.email.elem">
835
+ <a:documentation>Email Address: &lt;input type='email'&gt;</a:documentation>
836
+ <element name="input">
837
+ <ref name="input.email.attrs"/>
838
+ </element>
839
+ </define>
840
+ <define name="input.email.attrs">
841
+ <interleave>
842
+ <ref name="common.attrs"/>
843
+ <ref name="common-form.attrs"/>
844
+ <ref name="input.email.attrs.type"/>
845
+ <optional>
846
+ <ref name="input.attrs.autocomplete"/>
847
+ </optional>
848
+ <optional>
849
+ <ref name="shared-form.attrs.autofocus"/>
850
+ </optional>
851
+ <optional>
852
+ <ref name="input.attrs.list"/>
853
+ </optional>
854
+ <optional>
855
+ <ref name="shared-form.attrs.maxlength"/>
856
+ </optional>
857
+ <optional>
858
+ <ref name="shared-form.attrs.pattern"/>
859
+ </optional>
860
+ <optional>
861
+ <ref name="shared-form.attrs.readonly"/>
862
+ </optional>
863
+ <optional>
864
+ <ref name="shared-form.attrs.required"/>
865
+ </optional>
866
+ <optional>
867
+ <ref name="shared-form.attrs.size"/>
868
+ </optional>
869
+ <optional>
870
+ <ref name="shared-form.attrs.placeholder"/>
871
+ </optional>
872
+ <optional>
873
+ <choice>
874
+ <interleave>
875
+ <ref name="input.attrs.multiple"/>
876
+ <optional>
877
+ <ref name="input.email.attrs.value.multiple"/>
878
+ </optional>
879
+ </interleave>
880
+ <optional>
881
+ <ref name="input.email.attrs.value.single"/>
882
+ </optional>
883
+ </choice>
884
+ </optional>
885
+ <optional>
886
+ <ref name="common.attrs.aria.implicit.input"/>
887
+ </optional>
888
+ </interleave>
889
+ </define>
890
+ <define name="input.email.attrs.type">
891
+ <attribute name="type">
892
+ <value type="string">email</value>
893
+ </attribute>
894
+ </define>
895
+ <define name="input.email.attrs.value.single">
896
+ <attribute name="value">
897
+ <ref name="form.data.emailaddress"/>
898
+ </attribute>
899
+ </define>
900
+ <define name="input.email.attrs.value.multiple">
901
+ <attribute name="value">
902
+ <ref name="form.data.emailaddresslist"/>
903
+ </attribute>
904
+ </define>
905
+ <define name="input.elem" combine="choice">
906
+ <ref name="input.email.elem"/>
907
+ </define>
908
+ <define name="input.url.elem">
909
+ <a:documentation>IRI: &lt;input type='url'&gt;</a:documentation>
910
+ <element name="input">
911
+ <ref name="input.url.attrs"/>
912
+ </element>
913
+ </define>
914
+ <define name="input.url.attrs">
915
+ <interleave>
916
+ <ref name="common.attrs"/>
917
+ <ref name="common-form.attrs"/>
918
+ <ref name="input.url.attrs.type"/>
919
+ <optional>
920
+ <ref name="input.attrs.autocomplete"/>
921
+ </optional>
922
+ <optional>
923
+ <ref name="shared-form.attrs.autofocus"/>
924
+ </optional>
925
+ <optional>
926
+ <ref name="input.attrs.list"/>
927
+ </optional>
928
+ <optional>
929
+ <ref name="shared-form.attrs.maxlength"/>
930
+ </optional>
931
+ <optional>
932
+ <ref name="shared-form.attrs.pattern"/>
933
+ </optional>
934
+ <optional>
935
+ <ref name="shared-form.attrs.readonly"/>
936
+ </optional>
937
+ <optional>
938
+ <ref name="shared-form.attrs.required"/>
939
+ </optional>
940
+ <optional>
941
+ <ref name="shared-form.attrs.size"/>
942
+ </optional>
943
+ <optional>
944
+ <ref name="shared-form.attrs.placeholder"/>
945
+ </optional>
946
+ <optional>
947
+ <ref name="input.url.attrs.value"/>
948
+ </optional>
949
+ <optional>
950
+ <ref name="common.attrs.aria.implicit.input"/>
951
+ </optional>
952
+ </interleave>
953
+ </define>
954
+ <define name="input.url.attrs.type">
955
+ <attribute name="type">
956
+ <value type="string">url</value>
957
+ </attribute>
958
+ </define>
959
+ <define name="input.url.attrs.value">
960
+ <attribute name="value">
961
+ <choice>
962
+ <value type="string"/>
963
+ <ref name="common.data.uri.absolute"/>
964
+ </choice>
965
+ </attribute>
966
+ </define>
967
+ <define name="input.elem" combine="choice">
968
+ <ref name="input.url.elem"/>
969
+ </define>
970
+ <define name="input.search.elem">
971
+ <a:documentation>Search: &lt;input type='search'&gt;</a:documentation>
972
+ <element name="input">
973
+ <ref name="input.search.attrs"/>
974
+ </element>
975
+ </define>
976
+ <define name="input.search.attrs">
977
+ <interleave>
978
+ <ref name="common.attrs"/>
979
+ <ref name="common-form.attrs"/>
980
+ <ref name="input.search.attrs.type"/>
981
+ <optional>
982
+ <ref name="input.attrs.autocomplete"/>
983
+ </optional>
984
+ <optional>
985
+ <ref name="shared-form.attrs.autofocus"/>
986
+ </optional>
987
+ <optional>
988
+ <ref name="input.attrs.list"/>
989
+ </optional>
990
+ <optional>
991
+ <ref name="shared-form.attrs.maxlength"/>
992
+ </optional>
993
+ <optional>
994
+ <ref name="shared-form.attrs.pattern"/>
995
+ </optional>
996
+ <optional>
997
+ <ref name="shared-form.attrs.readonly"/>
998
+ </optional>
999
+ <optional>
1000
+ <ref name="shared-form.attrs.required"/>
1001
+ </optional>
1002
+ <optional>
1003
+ <ref name="shared-form.attrs.size"/>
1004
+ </optional>
1005
+ <optional>
1006
+ <ref name="shared-form.attrs.placeholder"/>
1007
+ </optional>
1008
+ <optional>
1009
+ <ref name="shared-form.attrs.dirname"/>
1010
+ </optional>
1011
+ <optional>
1012
+ <ref name="input.search.attrs.value"/>
1013
+ </optional>
1014
+ <optional>
1015
+ <ref name="common.attrs.aria.implicit.input"/>
1016
+ </optional>
1017
+ </interleave>
1018
+ </define>
1019
+ <define name="input.search.attrs.type">
1020
+ <attribute name="type">
1021
+ <value type="string">search</value>
1022
+ </attribute>
1023
+ </define>
1024
+ <define name="input.search.attrs.value">
1025
+ <attribute name="value">
1026
+ <ref name="form.data.stringwithoutlinebreaks"/>
1027
+ </attribute>
1028
+ </define>
1029
+ <define name="input.elem" combine="choice">
1030
+ <ref name="input.search.elem"/>
1031
+ </define>
1032
+ <define name="input.tel.elem">
1033
+ <a:documentation>Telephone Number: &lt;input type='tel'&gt;</a:documentation>
1034
+ <element name="input">
1035
+ <ref name="input.tel.attrs"/>
1036
+ </element>
1037
+ </define>
1038
+ <define name="input.tel.attrs">
1039
+ <interleave>
1040
+ <ref name="common.attrs"/>
1041
+ <ref name="common-form.attrs"/>
1042
+ <ref name="input.tel.attrs.type"/>
1043
+ <optional>
1044
+ <ref name="input.attrs.autocomplete"/>
1045
+ </optional>
1046
+ <optional>
1047
+ <ref name="shared-form.attrs.autofocus"/>
1048
+ </optional>
1049
+ <optional>
1050
+ <ref name="input.attrs.list"/>
1051
+ </optional>
1052
+ <optional>
1053
+ <ref name="shared-form.attrs.maxlength"/>
1054
+ </optional>
1055
+ <optional>
1056
+ <ref name="shared-form.attrs.pattern"/>
1057
+ </optional>
1058
+ <optional>
1059
+ <ref name="shared-form.attrs.readonly"/>
1060
+ </optional>
1061
+ <optional>
1062
+ <ref name="shared-form.attrs.required"/>
1063
+ </optional>
1064
+ <optional>
1065
+ <ref name="shared-form.attrs.size"/>
1066
+ </optional>
1067
+ <optional>
1068
+ <ref name="shared-form.attrs.placeholder"/>
1069
+ </optional>
1070
+ <optional>
1071
+ <ref name="input.tel.attrs.value"/>
1072
+ </optional>
1073
+ <optional>
1074
+ <ref name="common.attrs.aria.implicit.input"/>
1075
+ </optional>
1076
+ </interleave>
1077
+ </define>
1078
+ <define name="input.tel.attrs.type">
1079
+ <attribute name="type">
1080
+ <value type="string">tel</value>
1081
+ </attribute>
1082
+ </define>
1083
+ <define name="input.tel.attrs.value">
1084
+ <attribute name="value">
1085
+ <ref name="form.data.stringwithoutlinebreaks"/>
1086
+ </attribute>
1087
+ </define>
1088
+ <define name="input.elem" combine="choice">
1089
+ <ref name="input.tel.elem"/>
1090
+ </define>
1091
+ <define name="input.color.elem">
1092
+ <a:documentation>Color: &lt;input type='color'&gt;</a:documentation>
1093
+ <element name="input">
1094
+ <ref name="input.color.attrs"/>
1095
+ </element>
1096
+ </define>
1097
+ <define name="input.color.attrs">
1098
+ <interleave>
1099
+ <ref name="common.attrs"/>
1100
+ <ref name="common-form.attrs"/>
1101
+ <ref name="input.color.attrs.type"/>
1102
+ <optional>
1103
+ <ref name="input.attrs.autocomplete"/>
1104
+ </optional>
1105
+ <optional>
1106
+ <ref name="shared-form.attrs.autofocus"/>
1107
+ </optional>
1108
+ <optional>
1109
+ <ref name="input.attrs.list"/>
1110
+ </optional>
1111
+ <optional>
1112
+ <ref name="input.color.attrs.value"/>
1113
+ </optional>
1114
+ <optional>
1115
+ <ref name="common.attrs.aria.implicit.input"/>
1116
+ </optional>
1117
+ </interleave>
1118
+ </define>
1119
+ <define name="input.color.attrs.type">
1120
+ <attribute name="type">
1121
+ <value type="string">color</value>
1122
+ </attribute>
1123
+ </define>
1124
+ <define name="input.color.attrs.value">
1125
+ <attribute name="value">
1126
+ <choice>
1127
+ <value type="string"/>
1128
+ <ref name="form.data.color"/>
1129
+ </choice>
1130
+ </attribute>
1131
+ </define>
1132
+ <define name="input.elem" combine="choice">
1133
+ <ref name="input.color.elem"/>
1134
+ </define>
1135
+ <define name="output.elem">
1136
+ <a:documentation>Form Output: &lt;output&gt;</a:documentation>
1137
+ <element name="output">
1138
+ <interleave>
1139
+ <ref name="output.inner"/>
1140
+ <ref name="output.attrs"/>
1141
+ </interleave>
1142
+ </element>
1143
+ </define>
1144
+ <define name="output.attrs">
1145
+ <interleave>
1146
+ <ref name="common.attrs"/>
1147
+ <optional>
1148
+ <ref name="common-form.attrs.name"/>
1149
+ </optional>
1150
+ <optional>
1151
+ <ref name="common-form.attrs.form"/>
1152
+ </optional>
1153
+ <optional>
1154
+ <ref name="output.attrs.for"/>
1155
+ </optional>
1156
+ <optional>
1157
+ <ref name="common.attrs.aria.implicit.region"/>
1158
+ </optional>
1159
+ </interleave>
1160
+ </define>
1161
+ <define name="output.attrs.for">
1162
+ <attribute name="for">
1163
+ <ref name="common.data.idrefs"/>
1164
+ <!-- REVISIT spec says space- -not whitespace -->
1165
+ </attribute>
1166
+ </define>
1167
+ <define name="output.inner">
1168
+ <ref name="common.inner.phrasing"/>
1169
+ </define>
1170
+ <define name="common.elem.phrasing" combine="choice">
1171
+ <ref name="output.elem"/>
1172
+ </define>
1173
+ <define name="textarea.attrs.rows-and-cols-wf1.inner" combine="interleave">
1174
+ <a:documentation>Text Area: &lt;textarea&gt;, extensions</a:documentation>
1175
+ <notAllowed/>
1176
+ </define>
1177
+ <define name="textarea.attrs.rows-and-cols-wf1" combine="choice">
1178
+ <empty/>
1179
+ </define>
1180
+ <define name="textarea.attrs" combine="interleave">
1181
+ <interleave>
1182
+ <optional>
1183
+ <ref name="shared-form.attrs.maxlength"/>
1184
+ </optional>
1185
+ <optional>
1186
+ <ref name="shared-form.attrs.autofocus"/>
1187
+ </optional>
1188
+ <optional>
1189
+ <ref name="shared-form.attrs.required"/>
1190
+ </optional>
1191
+ <optional>
1192
+ <ref name="shared-form.attrs.placeholder"/>
1193
+ </optional>
1194
+ <optional>
1195
+ <ref name="shared-form.attrs.dirname"/>
1196
+ </optional>
1197
+ <optional>
1198
+ <ref name="textarea.attrs.rows"/>
1199
+ </optional>
1200
+ <choice>
1201
+ <interleave>
1202
+ <ref name="textarea.attrs.wrap.hard"/>
1203
+ <ref name="textarea.attrs.cols"/>
1204
+ </interleave>
1205
+ <interleave>
1206
+ <optional>
1207
+ <ref name="textarea.attrs.wrap.soft"/>
1208
+ </optional>
1209
+ <optional>
1210
+ <ref name="textarea.attrs.cols"/>
1211
+ </optional>
1212
+ </interleave>
1213
+ </choice>
1214
+ </interleave>
1215
+ </define>
1216
+ <define name="textarea.attrs.wrap.hard">
1217
+ <attribute name="wrap">
1218
+ <value type="string">hard</value>
1219
+ </attribute>
1220
+ </define>
1221
+ <define name="textarea.attrs.wrap.soft">
1222
+ <attribute name="wrap">
1223
+ <value type="string">soft</value>
1224
+ </attribute>
1225
+ </define>
1226
+ <!-- REVISIT should the options in datalist be non-selectable? -->
1227
+ <define name="datalist.elem">
1228
+ <a:documentation>List of Prefill Data: &lt;datalist&gt;</a:documentation>
1229
+ <element name="datalist">
1230
+ <interleave>
1231
+ <ref name="datalist.inner"/>
1232
+ <ref name="datalist.attrs"/>
1233
+ </interleave>
1234
+ </element>
1235
+ </define>
1236
+ <define name="datalist.inner">
1237
+ <interleave>
1238
+ <zeroOrMore>
1239
+ <ref name="option.elem"/>
1240
+ </zeroOrMore>
1241
+ <ref name="common.inner.phrasing"/>
1242
+ </interleave>
1243
+ </define>
1244
+ <define name="datalist.attrs">
1245
+ <ref name="common.attrs"/>
1246
+ </define>
1247
+ <define name="common.elem.phrasing" combine="choice">
1248
+ <ref name="datalist.elem"/>
1249
+ </define>
1250
+ <define name="button.submit.attrs" combine="interleave">
1251
+ <a:documentation>Complex Submit Button: &lt;button type='submit'&gt;, extensions</a:documentation>
1252
+ <interleave>
1253
+ <optional>
1254
+ <ref name="shared-form.attrs.formaction"/>
1255
+ </optional>
1256
+ <optional>
1257
+ <ref name="shared-form.attrs.autofocus"/>
1258
+ </optional>
1259
+ <optional>
1260
+ <ref name="shared-form.attrs.formenctype"/>
1261
+ </optional>
1262
+ <optional>
1263
+ <ref name="shared-form.attrs.formmethod"/>
1264
+ </optional>
1265
+ <optional>
1266
+ <ref name="shared-form.attrs.formtarget"/>
1267
+ </optional>
1268
+ <optional>
1269
+ <ref name="shared-form.attrs.formnovalidate"/>
1270
+ </optional>
1271
+ </interleave>
1272
+ </define>
1273
+ <define name="button.reset.attrs" combine="interleave">
1274
+ <a:documentation>Complex Reset Button: &lt;button type='reset'&gt;, extensions</a:documentation>
1275
+ <optional>
1276
+ <ref name="shared-form.attrs.autofocus"/>
1277
+ </optional>
1278
+ </define>
1279
+ <define name="button.button.attrs" combine="interleave">
1280
+ <a:documentation>Complex Push Button: &lt;button type='button'&gt;, extensions</a:documentation>
1281
+ <optional>
1282
+ <ref name="shared-form.attrs.autofocus"/>
1283
+ </optional>
1284
+ </define>
1285
+ <define name="form.attrs" combine="interleave">
1286
+ <a:documentation>Form: &lt;form&gt;, extensions</a:documentation>
1287
+ <interleave>
1288
+ <optional>
1289
+ <ref name="form.attrs.novalidate"/>
1290
+ </optional>
1291
+ <optional>
1292
+ <ref name="form.attrs.target"/>
1293
+ </optional>
1294
+ <optional>
1295
+ <ref name="form.attrs.autocomplete"/>
1296
+ </optional>
1297
+ </interleave>
1298
+ </define>
1299
+ <define name="form.attrs.novalidate">
1300
+ <attribute name="novalidate">
1301
+ <choice>
1302
+ <value type="string">novalidate</value>
1303
+ <value type="string"/>
1304
+ </choice>
1305
+ </attribute>
1306
+ </define>
1307
+ <define name="form.attrs.target">
1308
+ <attribute name="target">
1309
+ <ref name="common.data.browsing-context-or-keyword"/>
1310
+ </attribute>
1311
+ </define>
1312
+ <define name="form.attrs.autocomplete">
1313
+ <attribute name="autocomplete">
1314
+ <choice>
1315
+ <value type="string">on</value>
1316
+ <value type="string">off</value>
1317
+ </choice>
1318
+ </attribute>
1319
+ </define>
1320
+ <!-- REVISIT should this be case-insensitive in conforming XHTML documents? -->
1321
+ <define name="form.attrs.enctype.data" combine="choice">
1322
+ <value type="string">text/plain</value>
1323
+ </define>
1324
+ <define name="fieldset.attrs" combine="interleave">
1325
+ <a:documentation>Fieldset: &lt;fieldset&gt;, extensions</a:documentation>
1326
+ <ref name="common-form.attrs"/>
1327
+ </define>
1328
+ <define name="label.attrs" combine="interleave">
1329
+ <a:documentation>Label: &lt;label&gt;, extensions</a:documentation>
1330
+ <optional>
1331
+ <ref name="common-form.attrs.form"/>
1332
+ </optional>
1333
+ </define>
1334
+ <define name="keygen.elem">
1335
+ <a:documentation>Key-pair generator/input control: &lt;keygen&gt;</a:documentation>
1336
+ <element name="keygen">
1337
+ <interleave>
1338
+ <ref name="keygen.inner"/>
1339
+ <ref name="keygen.attrs"/>
1340
+ </interleave>
1341
+ </element>
1342
+ </define>
1343
+ <define name="keygen.attrs">
1344
+ <interleave>
1345
+ <ref name="common.attrs"/>
1346
+ <optional>
1347
+ <ref name="keygen.attrs.challenge"/>
1348
+ </optional>
1349
+ <optional>
1350
+ <ref name="keygen.attrs.keytype"/>
1351
+ </optional>
1352
+ <optional>
1353
+ <ref name="shared-form.attrs.autofocus"/>
1354
+ </optional>
1355
+ <optional>
1356
+ <ref name="common-form.attrs"/>
1357
+ </optional>
1358
+ </interleave>
1359
+ <!-- REVISIT which ARIA attributes needed here -->
1360
+ </define>
1361
+ <define name="keygen.attrs.challenge">
1362
+ <attribute name="challenge">
1363
+ <data type="string" datatypeLibrary=""/>
1364
+ </attribute>
1365
+ </define>
1366
+ <define name="keygen.attrs.keytype">
1367
+ <attribute name="keytype">
1368
+ <value type="string">rsa</value>
1369
+ </attribute>
1370
+ </define>
1371
+ <define name="keygen.inner">
1372
+ <empty/>
1373
+ </define>
1374
+ <define name="common.elem.phrasing" combine="choice">
1375
+ <ref name="keygen.elem"/>
1376
+ </define>
1377
+ <define name="select.attrs" combine="interleave">
1378
+ <a:documentation>Selection Menu: &lt;select&gt;, Extensions</a:documentation>
1379
+ <interleave>
1380
+ <optional>
1381
+ <ref name="shared-form.attrs.autofocus"/>
1382
+ </optional>
1383
+ <optional>
1384
+ <ref name="shared-form.attrs.required"/>
1385
+ </optional>
1386
+ </interleave>
1387
+ </define>
1388
+ </grammar>