html-validator 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,351 @@
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="p.elem">
5
+ <a:documentation> RELAX NG Schema for HTML 5: Basic Prose Markup #</a:documentation>
6
+ <!-- ##################################################################### -->
7
+ <!-- ##################################################################### -->
8
+ <a:documentation>Paragraph-Level</a:documentation>
9
+ <a:documentation>Paragraph: &lt;p&gt;</a:documentation>
10
+ <element name="p">
11
+ <interleave>
12
+ <ref name="p.inner"/>
13
+ <ref name="p.attrs"/>
14
+ </interleave>
15
+ </element>
16
+ </define>
17
+ <define name="p.attrs">
18
+ <interleave>
19
+ <ref name="common.attrs"/>
20
+ <optional>
21
+ <ref name="common.attrs.aria"/>
22
+ </optional>
23
+ </interleave>
24
+ </define>
25
+ <define name="p.inner">
26
+ <ref name="common.inner.phrasing"/>
27
+ </define>
28
+ <!-- REVISIT lists in span? -->
29
+ <define name="common.elem.flow" combine="choice">
30
+ <ref name="p.elem"/>
31
+ </define>
32
+ <define name="hr.elem">
33
+ <a:documentation>Hint Transition: &lt;hr&gt;</a:documentation>
34
+ <element name="hr">
35
+ <interleave>
36
+ <ref name="hr.inner"/>
37
+ <ref name="hr.attrs"/>
38
+ </interleave>
39
+ </element>
40
+ </define>
41
+ <define name="hr.attrs">
42
+ <ref name="common.attrs"/>
43
+ </define>
44
+ <define name="hr.inner">
45
+ <empty/>
46
+ </define>
47
+ <define name="common.elem.flow" combine="choice">
48
+ <ref name="hr.elem"/>
49
+ </define>
50
+ <!-- ##################################################################### -->
51
+ <define name="pre.elem">
52
+ <a:documentation>Preformatting Blocks</a:documentation>
53
+ <a:documentation>Preformatted Text: &lt;pre&gt;</a:documentation>
54
+ <element name="pre">
55
+ <interleave>
56
+ <ref name="pre.inner"/>
57
+ <ref name="pre.attrs"/>
58
+ </interleave>
59
+ </element>
60
+ </define>
61
+ <define name="pre.attrs">
62
+ <interleave>
63
+ <ref name="common.attrs"/>
64
+ <optional>
65
+ <ref name="common.attrs.aria"/>
66
+ </optional>
67
+ </interleave>
68
+ </define>
69
+ <define name="pre.inner">
70
+ <ref name="common.inner.phrasing"/>
71
+ </define>
72
+ <define name="common.elem.flow" combine="choice">
73
+ <ref name="pre.elem"/>
74
+ </define>
75
+ <!-- ##################################################################### -->
76
+ <define name="ul.elem">
77
+ <a:documentation>Simple Lists</a:documentation>
78
+ <a:documentation>Unordered List: &lt;ul&gt;</a:documentation>
79
+ <element name="ul">
80
+ <interleave>
81
+ <ref name="ul.inner"/>
82
+ <ref name="ul.attrs"/>
83
+ </interleave>
84
+ </element>
85
+ </define>
86
+ <define name="ul.attrs">
87
+ <interleave>
88
+ <ref name="common.attrs"/>
89
+ <optional>
90
+ <choice>
91
+ <ref name="common.attrs.aria"/>
92
+ <ref name="common.attrs.aria.implicit.region"/>
93
+ </choice>
94
+ </optional>
95
+ </interleave>
96
+ </define>
97
+ <define name="ul.inner">
98
+ <zeroOrMore>
99
+ <ref name="li.elem"/>
100
+ </zeroOrMore>
101
+ </define>
102
+ <define name="common.elem.flow" combine="choice">
103
+ <ref name="ul.elem"/>
104
+ </define>
105
+ <define name="li.elem">
106
+ <a:documentation>Unordered List Item: &lt;li&gt;</a:documentation>
107
+ <element name="li">
108
+ <interleave>
109
+ <ref name="li.inner"/>
110
+ <ref name="li.attrs"/>
111
+ </interleave>
112
+ </element>
113
+ </define>
114
+ <define name="li.attrs">
115
+ <interleave>
116
+ <ref name="common.attrs"/>
117
+ <optional>
118
+ <choice>
119
+ <ref name="common.attrs.aria"/>
120
+ <ref name="common.attrs.aria.implicit.listitem"/>
121
+ </choice>
122
+ </optional>
123
+ </interleave>
124
+ </define>
125
+ <define name="li.inner">
126
+ <ref name="common.inner.flow"/>
127
+ </define>
128
+ <define name="ol.elem">
129
+ <a:documentation>Ordered List: &lt;ol&gt;</a:documentation>
130
+ <element name="ol">
131
+ <interleave>
132
+ <ref name="ol.inner"/>
133
+ <ref name="ol.attrs"/>
134
+ </interleave>
135
+ </element>
136
+ </define>
137
+ <define name="ol.attrs">
138
+ <interleave>
139
+ <ref name="common.attrs"/>
140
+ <optional>
141
+ <ref name="ol.attrs.start"/>
142
+ </optional>
143
+ <optional>
144
+ <ref name="ol.attrs.reversed"/>
145
+ </optional>
146
+ <optional>
147
+ <ref name="ol.attrs.type"/>
148
+ </optional>
149
+ <optional>
150
+ <choice>
151
+ <ref name="common.attrs.aria"/>
152
+ <ref name="common.attrs.aria.implicit.region"/>
153
+ </choice>
154
+ </optional>
155
+ </interleave>
156
+ </define>
157
+ <define name="ol.attrs.start">
158
+ <attribute name="start">
159
+ <ref name="common.data.integer"/>
160
+ </attribute>
161
+ </define>
162
+ <define name="ol.attrs.reversed">
163
+ <attribute name="reversed">
164
+ <choice>
165
+ <value type="string">reversed</value>
166
+ <value type="string"/>
167
+ </choice>
168
+ </attribute>
169
+ </define>
170
+ <define name="ol.attrs.type">
171
+ <attribute name="type">
172
+ <choice>
173
+ <value type="string">1</value>
174
+ <value type="string">a</value>
175
+ <value type="string">A</value>
176
+ <value type="string">i</value>
177
+ <value type="string">I</value>
178
+ </choice>
179
+ </attribute>
180
+ </define>
181
+ <define name="ol.inner">
182
+ <zeroOrMore>
183
+ <ref name="oli.elem"/>
184
+ </zeroOrMore>
185
+ </define>
186
+ <define name="common.elem.flow" combine="choice">
187
+ <ref name="ol.elem"/>
188
+ </define>
189
+ <define name="oli.elem">
190
+ <a:documentation>Ordered List Item: &lt;li&gt;</a:documentation>
191
+ <element name="li">
192
+ <interleave>
193
+ <ref name="oli.inner"/>
194
+ <ref name="oli.attrs"/>
195
+ </interleave>
196
+ </element>
197
+ </define>
198
+ <define name="oli.attrs">
199
+ <interleave>
200
+ <ref name="common.attrs"/>
201
+ <optional>
202
+ <ref name="oli.attrs.value"/>
203
+ </optional>
204
+ <optional>
205
+ <choice>
206
+ <ref name="common.attrs.aria"/>
207
+ <ref name="common.attrs.aria.implicit.listitem"/>
208
+ </choice>
209
+ </optional>
210
+ </interleave>
211
+ </define>
212
+ <define name="oli.attrs.value">
213
+ <attribute name="value">
214
+ <ref name="common.data.integer"/>
215
+ </attribute>
216
+ </define>
217
+ <define name="oli.inner">
218
+ <ref name="common.inner.flow"/>
219
+ </define>
220
+ <!-- ##################################################################### -->
221
+ <define name="dl.elem">
222
+ <a:documentation>Definition Lists</a:documentation>
223
+ <a:documentation>Definition List: &lt;dl&gt;</a:documentation>
224
+ <element name="dl">
225
+ <interleave>
226
+ <ref name="dl.inner"/>
227
+ <ref name="dl.attrs"/>
228
+ </interleave>
229
+ </element>
230
+ </define>
231
+ <define name="dl.attrs">
232
+ <interleave>
233
+ <ref name="common.attrs"/>
234
+ <optional>
235
+ <ref name="common.attrs.aria"/>
236
+ </optional>
237
+ </interleave>
238
+ </define>
239
+ <define name="dl.inner">
240
+ <zeroOrMore>
241
+ <oneOrMore>
242
+ <ref name="dt.elem"/>
243
+ </oneOrMore>
244
+ <oneOrMore>
245
+ <ref name="dd.elem"/>
246
+ </oneOrMore>
247
+ </zeroOrMore>
248
+ </define>
249
+ <define name="common.elem.flow" combine="choice">
250
+ <ref name="dl.elem"/>
251
+ </define>
252
+ <define name="dt.elem">
253
+ <a:documentation>Definition Term: &lt;dt&gt;</a:documentation>
254
+ <element name="dt">
255
+ <interleave>
256
+ <ref name="dt.inner"/>
257
+ <ref name="dt.attrs"/>
258
+ </interleave>
259
+ </element>
260
+ </define>
261
+ <define name="dt.attrs">
262
+ <interleave>
263
+ <ref name="common.attrs"/>
264
+ <optional>
265
+ <ref name="common.attrs.aria"/>
266
+ </optional>
267
+ </interleave>
268
+ </define>
269
+ <define name="dt.inner">
270
+ <ref name="common.inner.flow"/>
271
+ </define>
272
+ <define name="dd.elem">
273
+ <a:documentation>Definition Description: &lt;dd&gt;</a:documentation>
274
+ <element name="dd">
275
+ <interleave>
276
+ <ref name="dd.inner"/>
277
+ <ref name="dd.attrs"/>
278
+ </interleave>
279
+ </element>
280
+ </define>
281
+ <define name="dd.elem.phrasing">
282
+ <element name="dd">
283
+ <interleave>
284
+ <ref name="dd.inner.phrasing"/>
285
+ <ref name="dd.attrs"/>
286
+ </interleave>
287
+ </element>
288
+ </define>
289
+ <define name="dd.attrs">
290
+ <interleave>
291
+ <ref name="common.attrs"/>
292
+ <optional>
293
+ <ref name="common.attrs.aria"/>
294
+ </optional>
295
+ </interleave>
296
+ </define>
297
+ <define name="dd.inner">
298
+ <ref name="common.inner.flow"/>
299
+ </define>
300
+ <define name="dd.inner.phrasing">
301
+ <ref name="common.inner.phrasing"/>
302
+ </define>
303
+ <!-- ##################################################################### -->
304
+ <define name="div.elem">
305
+ <a:documentation>Miscellaneous Elements</a:documentation>
306
+ <a:documentation>Generic Container: &lt;div&gt;</a:documentation>
307
+ <element name="div">
308
+ <interleave>
309
+ <ref name="div.inner"/>
310
+ <ref name="div.attrs"/>
311
+ </interleave>
312
+ </element>
313
+ </define>
314
+ <define name="div.attrs">
315
+ <interleave>
316
+ <ref name="common.attrs"/>
317
+ <optional>
318
+ <ref name="common.attrs.aria"/>
319
+ </optional>
320
+ </interleave>
321
+ </define>
322
+ <define name="div.inner">
323
+ <zeroOrMore>
324
+ <ref name="style.elem.scoped"/>
325
+ </zeroOrMore>
326
+ <ref name="common.inner.flow"/>
327
+ </define>
328
+ <define name="common.elem.flow" combine="choice">
329
+ <ref name="div.elem"/>
330
+ </define>
331
+ <define name="legend.elem">
332
+ <a:documentation>Title or Explanatory Caption: &lt;legend&gt;</a:documentation>
333
+ <element name="legend">
334
+ <interleave>
335
+ <ref name="legend.inner"/>
336
+ <ref name="legend.attrs"/>
337
+ </interleave>
338
+ </element>
339
+ </define>
340
+ <define name="legend.attrs">
341
+ <interleave>
342
+ <ref name="common.attrs"/>
343
+ <optional>
344
+ <ref name="common.attrs.aria.implicit.region"/>
345
+ </optional>
346
+ </interleave>
347
+ </define>
348
+ <define name="legend.inner">
349
+ <ref name="common.inner.phrasing"/>
350
+ </define>
351
+ </grammar>
@@ -0,0 +1,586 @@
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" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <!-- ##################################################################### -->
4
+ <define name="XMLonly">
5
+ <a:documentation> RELAX NG Schema for HTML 5: Common Definitions #</a:documentation>
6
+ <!-- ##################################################################### -->
7
+ <!-- ##################################################################### -->
8
+ <a:documentation> Language Parameters - redefine in inclusion block as necessary #</a:documentation>
9
+ <!-- ##################################################################### -->
10
+ <a:documentation>HTML vs. XHTML restrictions</a:documentation>
11
+ <empty/>
12
+ </define>
13
+ <define name="HTMLonly">
14
+ <notAllowed/>
15
+ </define>
16
+ <!--
17
+ (This only affects mixed-version modules; wholly HTML5
18
+ modules should simply be left out of the inclusion list.)
19
+ -->
20
+ <define name="v5only">
21
+ <a:documentation>HTML 4 Compatibility - set to notAllowed to disallow markup introduced in HTML 5</a:documentation>
22
+ <empty/>
23
+ </define>
24
+ <!-- (xml:base on elements other than <html>) -->
25
+ <define name="nonRoundtrippable">
26
+ <a:documentation>HTML Compatibility Switches - set to notAllowed to disallow</a:documentation>
27
+ <a:documentation>XML features that can't be roundtripped HTML &lt;-&gt; XHTML</a:documentation>
28
+ <empty/>
29
+ </define>
30
+ <define name="nonHTMLizable">
31
+ <a:documentation>XML features that can't be serialized as HTML</a:documentation>
32
+ <empty/>
33
+ </define>
34
+ <define name="nonW3C">
35
+ <a:documentation>features that are not part of the W3C HTML spec</a:documentation>
36
+ <empty/>
37
+ </define>
38
+ <!-- ##################################################################### -->
39
+ <define name="common.attr.anything">
40
+ <a:documentation> Wildcards #</a:documentation>
41
+ <!-- ##################################################################### -->
42
+ <a:documentation>Any attribute from any namespace</a:documentation>
43
+ <zeroOrMore>
44
+ <attribute>
45
+ <anyName/>
46
+ </attribute>
47
+ </zeroOrMore>
48
+ </define>
49
+ <define name="common.elem.anything">
50
+ <a:documentation>Any element from any namespace</a:documentation>
51
+ <element>
52
+ <anyName/>
53
+ <interleave>
54
+ <ref name="common.inner.anything"/>
55
+ <ref name="common.attr.anything"/>
56
+ </interleave>
57
+ </element>
58
+ </define>
59
+ <define name="common.inner.anything">
60
+ <a:documentation>Any content from any namespace</a:documentation>
61
+ <interleave>
62
+ <text/>
63
+ <zeroOrMore>
64
+ <ref name="common.elem.anything"/>
65
+ </zeroOrMore>
66
+ </interleave>
67
+ </define>
68
+ <!-- ##################################################################### -->
69
+ <define name="common.elem.metadata">
70
+ <a:documentation> Common Element Classes #</a:documentation>
71
+ <!-- ##################################################################### -->
72
+ <a:documentation>Metadata Elements</a:documentation>
73
+ <notAllowed/>
74
+ </define>
75
+ <define name="common.elem.phrasing">
76
+ <a:documentation>Phrase Elements</a:documentation>
77
+ <notAllowed/>
78
+ </define>
79
+ <define name="common.elem.flow">
80
+ <a:documentation>Prose Elements</a:documentation>
81
+ <ref name="common.elem.phrasing"/>
82
+ </define>
83
+ <!-- ##################################################################### -->
84
+ <define name="common.inner.metadata">
85
+ <a:documentation> Common Content Models #</a:documentation>
86
+ <!-- ##################################################################### -->
87
+ <a:documentation>Metadata Content</a:documentation>
88
+ <zeroOrMore>
89
+ <ref name="common.elem.metadata"/>
90
+ </zeroOrMore>
91
+ </define>
92
+ <define name="common.inner.phrasing">
93
+ <a:documentation>Phrase Content</a:documentation>
94
+ <interleave>
95
+ <text/>
96
+ <zeroOrMore>
97
+ <ref name="common.elem.phrasing"/>
98
+ </zeroOrMore>
99
+ </interleave>
100
+ </define>
101
+ <define name="common.inner.flow">
102
+ <a:documentation>Prose Content</a:documentation>
103
+ <interleave>
104
+ <text/>
105
+ <zeroOrMore>
106
+ <ref name="common.elem.flow"/>
107
+ </zeroOrMore>
108
+ </interleave>
109
+ </define>
110
+ <!-- REVISIT <style scoped> -->
111
+ <!-- ##################################################################### -->
112
+ <!-- ##################################################################### -->
113
+ <!-- When updating, check <bdo> definition too -->
114
+ <define name="common.attrs">
115
+ <a:documentation> Common Attributes #</a:documentation>
116
+ <interleave>
117
+ <ref name="common.attrs.basic"/>
118
+ <ref name="common.attrs.i18n"/>
119
+ <ref name="common.attrs.present"/>
120
+ <ref name="common.attrs.other"/>
121
+ </interleave>
122
+ </define>
123
+ <define name="common.attrs.basic">
124
+ <interleave>
125
+ <optional>
126
+ <choice>
127
+ <ref name="common.attrs.id"/>
128
+ <ref name="common.attrs.xml-id"/>
129
+ </choice>
130
+ </optional>
131
+ <optional>
132
+ <!-- REVISIT assuming only either one is allowed -->
133
+ <ref name="common.attrs.class"/>
134
+ </optional>
135
+ <optional>
136
+ <ref name="common.attrs.title"/>
137
+ </optional>
138
+ <optional>
139
+ <ref name="common.attrs.base"/>
140
+ </optional>
141
+ <optional>
142
+ <ref name="common.attrs.space"/>
143
+ </optional>
144
+ </interleave>
145
+ </define>
146
+ <define name="common.attrs.id">
147
+ <attribute name="id">
148
+ <ref name="common.data.id"/>
149
+ </attribute>
150
+ </define>
151
+ <define name="common.attrs.xml-id">
152
+ <interleave>
153
+ <attribute name="xml:id">
154
+ <data type="string" />
155
+ </attribute>
156
+ <ref name="XMLonly"/>
157
+ </interleave>
158
+ </define>
159
+ <define name="common.attrs.class">
160
+ <attribute name="class">
161
+ <ref name="common.data.tokens"/>
162
+ </attribute>
163
+ </define>
164
+ <define name="common.attrs.title">
165
+ <attribute name="title"/>
166
+ </define>
167
+ <define name="common.attrs.base">
168
+ <interleave>
169
+ <ref name="common.attrs.xmlbase"/>
170
+ <ref name="nonRoundtrippable"/>
171
+ </interleave>
172
+ </define>
173
+ <define name="common.attrs.xmlbase">
174
+ <interleave>
175
+ <attribute name="xml:base">
176
+ <ref name="common.data.uri"/>
177
+ </attribute>
178
+ <ref name="XMLonly"/>
179
+ </interleave>
180
+ </define>
181
+ <define name="common.attrs.space">
182
+ <ref name="common.attrs.xmlspace"/>
183
+ </define>
184
+ <define name="common.attrs.xmlspace">
185
+ <interleave>
186
+ <attribute name="xml:space">
187
+ <choice>
188
+ <value type="string" datatypeLibrary="">preserve</value>
189
+ <value type="string" datatypeLibrary="">default</value>
190
+ </choice>
191
+ </attribute>
192
+ <ref name="XMLonly"/>
193
+ </interleave>
194
+ </define>
195
+ <define name="common.attrs.i18n">
196
+ <interleave>
197
+ <optional>
198
+ <ref name="common.attrs.dir"/>
199
+ </optional>
200
+ <optional>
201
+ <ref name="common.attrs.language"/>
202
+ </optional>
203
+ <optional>
204
+ <ref name="common.attrs.translate"/>
205
+ </optional>
206
+ </interleave>
207
+ </define>
208
+ <define name="common.attrs.dir">
209
+ <attribute name="dir">
210
+ <choice>
211
+ <value type="string" >ltr</value>
212
+ <value type="string" >rtl</value>
213
+ <value type="string" >auto</value>
214
+ </choice>
215
+ </attribute>
216
+ </define>
217
+ <!--
218
+ This lang definition is a hack for enviroments where
219
+ the HTML5 parser maps lang to xml:lang.
220
+ Sameness check left to Schematron
221
+ -->
222
+ <define name="common.attrs.language">
223
+ <interleave>
224
+ <optional>
225
+ <ref name="common.attrs.xmllang"/>
226
+ </optional>
227
+ <optional>
228
+ <ref name="common.attrs.lang"/>
229
+ </optional>
230
+ </interleave>
231
+ </define>
232
+ <define name="common.attrs.lang">
233
+ <interleave>
234
+ <attribute name="lang">
235
+ <ref name="common.data.langcode"/>
236
+ </attribute>
237
+ <ref name="XMLonly"/>
238
+ </interleave>
239
+ </define>
240
+ <define name="common.attrs.xmllang">
241
+ <attribute name="xml:lang">
242
+ <ref name="common.data.langcode"/>
243
+ </attribute>
244
+ </define>
245
+ <!--
246
+ common.attrs.language =
247
+ ( common.attrs.lang
248
+ | common.attrs.xmllang
249
+ )
250
+ common.attrs.lang =
251
+ attribute lang {
252
+ common.data.langcode
253
+ } & HTMLonly
254
+ common.attrs.xmllang =
255
+ attribute xml:lang {
256
+ common.data.langcode
257
+ } & XMLonly
258
+ -->
259
+ <define name="common.attrs.translate">
260
+ <attribute name="translate">
261
+ <choice>
262
+ <value type="string" >yes</value>
263
+ <value type="string" >no</value>
264
+ </choice>
265
+ </attribute>
266
+ </define>
267
+ <define name="common.attrs.present">
268
+ <interleave>
269
+ <optional>
270
+ <ref name="common.attrs.style"/>
271
+ </optional>
272
+ <optional>
273
+ <ref name="common.attrs.tabindex"/>
274
+ </optional>
275
+ <optional>
276
+ <ref name="common.attrs.accesskey"/>
277
+ </optional>
278
+ </interleave>
279
+ </define>
280
+ <define name="common.attrs.style">
281
+ <attribute name="style">
282
+ <data type="string" datatypeLibrary=""/>
283
+ </attribute>
284
+ </define>
285
+ <define name="common.attrs.tabindex">
286
+ <attribute name="tabindex">
287
+ <ref name="common.data.integer"/>
288
+ </attribute>
289
+ </define>
290
+ <!-- REVISIT move style to a module and bundle tabindex with ARIA -->
291
+ <define name="common.attrs.accesskey">
292
+ <attribute name="accesskey">
293
+ <ref name="common.data.keylabellist"/>
294
+ </attribute>
295
+ </define>
296
+ <define name="common.attrs.other">
297
+ <empty/>
298
+ </define>
299
+ <!-- ##################################################################### -->
300
+ <define name="common.data.tokens">
301
+ <a:documentation> Common Datatypes #</a:documentation>
302
+ <!-- ##################################################################### -->
303
+ <a:documentation>Names and Tokens</a:documentation>
304
+ <list>
305
+ <zeroOrMore>
306
+ <data type="token" datatypeLibrary=""/>
307
+ </zeroOrMore>
308
+ </list>
309
+ </define>
310
+ <define name="common.data.browsing-context">
311
+ <data type="string" />
312
+ </define>
313
+ <define name="common.data.browsing-context-or-keyword">
314
+ <data type="string" />
315
+ </define>
316
+ <!--
317
+ xsd:string {
318
+ pattern = "()|([^_].*)|(_[bB][lL][aA][nN][kK])|(_[sS][eE][lL][fF])|(_[pP][aA][rR][eE][nN][tT])|(_[tT][oO][pP])"
319
+ }
320
+ -->
321
+ <define name="common.data.id">
322
+ <a:documentation>IDs and IDREFs</a:documentation>
323
+ <data type="string" />
324
+ </define>
325
+ <!--
326
+ xsd:string {
327
+ pattern = "\S+"
328
+ }
329
+ -->
330
+ <define name="common.data.idref">
331
+ <data type="string" />
332
+ </define>
333
+ <define name="common.data.idrefs">
334
+ <data type="string" />
335
+ </define>
336
+ <define name="common.data.name">
337
+ <data type="string" />
338
+ </define>
339
+ <!-- FIXME -->
340
+ <define name="common.data.hash-name">
341
+ <data type="string" />
342
+ </define>
343
+ <!--
344
+ xsd:string {
345
+ pattern = "#.+"
346
+ }
347
+ -->
348
+ <define name="common.data.integer">
349
+ <a:documentation>Numerical</a:documentation>
350
+ <data type="string" />
351
+ </define>
352
+ <!--
353
+ xsd:string {
354
+ pattern = "-?[0-9]+"
355
+ }
356
+ -->
357
+ <define name="common.data.integer.positive">
358
+ <data type="string" />
359
+ </define>
360
+ <!--
361
+ xsd:string {
362
+ pattern = "0*[1-9][0-9]*"
363
+ }
364
+ -->
365
+ <define name="common.data.integer.non-negative">
366
+ <data type="string" />
367
+ </define>
368
+ <!--
369
+ xsd:string {
370
+ pattern = "[0-9]+"
371
+ }
372
+ -->
373
+ <!--
374
+ common.data.percent =
375
+ xsd:string {
376
+ pattern = "(100)|([1-9]?[0-9](\.[0-9]+)?)%"
377
+ }
378
+ -->
379
+ <define name="common.data.float">
380
+ <data type="string" />
381
+ </define>
382
+ <!--
383
+ xsd:string {
384
+ pattern = "-?[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?"
385
+ }
386
+ -->
387
+ <define name="common.data.float.positive">
388
+ <data type="string" />
389
+ </define>
390
+ <!--
391
+ xsd:string {
392
+ pattern = "(0*[1-9][0-9]*(\.[0-9]+)?)|([0-9]+(\.0*[1-9][0-9]*)?)([eE]-?[0-9]+)?"
393
+ }
394
+ -->
395
+ <define name="common.data.float.non-negative">
396
+ <data type="string" />
397
+ </define>
398
+ <!--
399
+ xsd:string {
400
+ pattern = "[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?"
401
+ }
402
+ -->
403
+ <define name="common.data.datetime">
404
+ <a:documentation>Temporal</a:documentation>
405
+ <data type="string" />
406
+ </define>
407
+ <define name="common.data.date-or-time">
408
+ <data type="string" />
409
+ </define>
410
+ <define name="common.data.date">
411
+ <data type="string" />
412
+ </define>
413
+ <define name="common.data.time-datetime">
414
+ <data type="string" />
415
+ </define>
416
+ <define name="common.data.uri">
417
+ <a:documentation>IRIs</a:documentation>
418
+ <!--
419
+ allow either a non-empty IRI ref or zero or more HTML
420
+ space characters (which are: space, tab, LF, FF, CR)
421
+ -->
422
+ <choice>
423
+ <data type="string" />
424
+ <data type="string">
425
+ <param name="pattern">[
426
+ -&#xD;]*</param>
427
+ </data>
428
+ </choice>
429
+ <!--
430
+ NOTE The range above incorrectly allows U+000B
431
+ in addition to the HTML space characters; but
432
+ that's not a problem in practice because HTML
433
+ and XML parsers will both catch any U+000B
434
+ and report an error for it before that pattern
435
+ ever gets evaluated.
436
+ -->
437
+ </define>
438
+ <define name="common.data.uri.non-empty">
439
+ <data type="string" />
440
+ </define>
441
+ <define name="common.data.uris">
442
+ <list>
443
+ <zeroOrMore>
444
+ <data type="string" />
445
+ </zeroOrMore>
446
+ </list>
447
+ </define>
448
+ <define name="common.data.uri.absolute">
449
+ <data type="string" />
450
+ </define>
451
+ <define name="common.data.sizes">
452
+ <a:documentation>&lt;link type='icon'&gt; sizes</a:documentation>
453
+ <!-- list { w:sizes } -->
454
+ <list>
455
+ <oneOrMore>
456
+ <data type="string">
457
+ <param name="pattern">[1-9][0-9]*x[1-9][0-9]*</param>
458
+ </data>
459
+ </oneOrMore>
460
+ </list>
461
+ </define>
462
+ <define name="common.data.mimetype">
463
+ <a:documentation>MIME types</a:documentation>
464
+ <data type="string" />
465
+ </define>
466
+ <define name="common.data.charset">
467
+ <a:documentation>Encodings</a:documentation>
468
+ <data type="string" />
469
+ </define>
470
+ <define name="common.data.meta-charset">
471
+ <data type="string" />
472
+ </define>
473
+ <define name="common.data.refresh">
474
+ <a:documentation>Refresh</a:documentation>
475
+ <data type="string" />
476
+ </define>
477
+ <define name="common.data.default-style">
478
+ <a:documentation>Default style</a:documentation>
479
+ <data type="string" datatypeLibrary=""/>
480
+ </define>
481
+ <!-- w:default-style -->
482
+ <define name="common.data.mediaquery">
483
+ <a:documentation>Media Queries</a:documentation>
484
+ <data type="string" />
485
+ </define>
486
+ <define name="common.data.langcode">
487
+ <a:documentation>Language Codes</a:documentation>
488
+ <choice>
489
+ <value type="string" />
490
+ <data type="string" />
491
+ </choice>
492
+ </define>
493
+ <define name="common.data.keylabellist">
494
+ <a:documentation>List of Key Labels</a:documentation>
495
+ <data type="string" />
496
+ </define>
497
+ <define name="common.data.microdata-properties">
498
+ <a:documentation>Microdata Properties</a:documentation>
499
+ <list>
500
+ <oneOrMore>
501
+ <data type="string" />
502
+ </oneOrMore>
503
+ </list>
504
+ </define>
505
+ <define name="common.data.zero">
506
+ <a:documentation>Zero</a:documentation>
507
+ <data type="string" />
508
+ </define>
509
+ <define name="common.data.functionbody">
510
+ <a:documentation>ECMAScript FunctionBody</a:documentation>
511
+ <data type="string" />
512
+ </define>
513
+ <!-- ##################################################################### -->
514
+ <!-- ##################################################################### -->
515
+ <define name="common-form.attrs.form">
516
+ <a:documentation> WF2 Module Hook #</a:documentation>
517
+ <notAllowed/>
518
+ </define>
519
+ <!-- ##################################################################### -->
520
+ <!-- ##################################################################### -->
521
+ <define name="common.attrs.aria">
522
+ <a:documentation> ARIA Module Hooks #</a:documentation>
523
+ <notAllowed/>
524
+ </define>
525
+ <define name="common.attrs.aria.implicit.button">
526
+ <notAllowed/>
527
+ </define>
528
+ <define name="common.attrs.aria.implicit.input">
529
+ <notAllowed/>
530
+ </define>
531
+ <define name="common.attrs.aria.implicit.region">
532
+ <notAllowed/>
533
+ </define>
534
+ <define name="common.attrs.aria.implicit.group">
535
+ <notAllowed/>
536
+ </define>
537
+ <define name="common.attrs.aria.implicit.th">
538
+ <notAllowed/>
539
+ </define>
540
+ <define name="common.attrs.aria.implicit.structure">
541
+ <notAllowed/>
542
+ </define>
543
+ <define name="common.attrs.aria.implicit.link">
544
+ <notAllowed/>
545
+ </define>
546
+ <define name="common.attrs.aria.implicit.listitem">
547
+ <notAllowed/>
548
+ </define>
549
+ <define name="common.attrs.aria.implicit.img">
550
+ <notAllowed/>
551
+ </define>
552
+ <define name="common.attrs.aria.implicit.select">
553
+ <notAllowed/>
554
+ </define>
555
+ <define name="common.attrs.aria.landmark.application">
556
+ <notAllowed/>
557
+ </define>
558
+ <define name="common.attrs.aria.landmark.banner">
559
+ <notAllowed/>
560
+ </define>
561
+ <define name="common.attrs.aria.landmark.complementary">
562
+ <notAllowed/>
563
+ </define>
564
+ <define name="common.attrs.aria.landmark.contentinfo">
565
+ <notAllowed/>
566
+ </define>
567
+ <define name="common.attrs.aria.landmark.main">
568
+ <notAllowed/>
569
+ </define>
570
+ <define name="common.attrs.aria.landmark.navigation">
571
+ <notAllowed/>
572
+ </define>
573
+ <define name="common.attrs.aria.landmark.search">
574
+ <notAllowed/>
575
+ </define>
576
+ <!-- per ARIA spec: article, document, and note are not actually landmarks -->
577
+ <define name="common.attrs.aria.landmark.article">
578
+ <notAllowed/>
579
+ </define>
580
+ <define name="common.attrs.aria.landmark.document">
581
+ <notAllowed/>
582
+ </define>
583
+ <define name="common.attrs.aria.landmark.note">
584
+ <notAllowed/>
585
+ </define>
586
+ </grammar>