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,61 @@
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="form.data.mimetypelist">
5
+ <a:documentation> RELAX NG Schema for HTML 5: Datatypes related to forms #</a:documentation>
6
+ <!-- ##################################################################### -->
7
+ <a:documentation>MIME types</a:documentation>
8
+ <data type="string" />
9
+ </define>
10
+ <define name="form.data.charsetlist">
11
+ <data type="string" datatypeLibrary=""/>
12
+ </define>
13
+ <!--
14
+ FIXME should be a "a space- and/or comma-delimited
15
+ list of charset values"
16
+ -->
17
+ <define name="form.data.pattern">
18
+ <a:documentation>ECMAScript Regular Expression</a:documentation>
19
+ <data type="string" />
20
+ </define>
21
+ <define name="form.data.datetime-local">
22
+ <a:documentation>Temporal</a:documentation>
23
+ <data type="string" />
24
+ </define>
25
+ <define name="form.data.date">
26
+ <data type="string" />
27
+ </define>
28
+ <define name="form.data.month">
29
+ <data type="string" />
30
+ </define>
31
+ <define name="form.data.week">
32
+ <data type="string" />
33
+ </define>
34
+ <define name="form.data.time">
35
+ <data type="string" />
36
+ </define>
37
+ <define name="form.data.emailaddress">
38
+ <a:documentation>Email</a:documentation>
39
+ <data type="string" />
40
+ </define>
41
+ <define name="form.data.emailaddresslist">
42
+ <data type="string" />
43
+ </define>
44
+ <define name="form.data.color">
45
+ <a:documentation>Color</a:documentation>
46
+ <data type="string" />
47
+ </define>
48
+ <!--
49
+ xsd:string {
50
+ pattern = "#[a-fA-F0-9]{6}"
51
+ }
52
+ -->
53
+ <define name="form.data.stringwithoutlinebreaks">
54
+ <a:documentation>Text without line breaks</a:documentation>
55
+ <data type="string" />
56
+ </define>
57
+ <define name="form.data.nonemptystring">
58
+ <a:documentation>Non-empty string</a:documentation>
59
+ <data type="string" />
60
+ </define>
61
+ </grammar>
@@ -0,0 +1,65 @@
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
+ <include href="common.rng">
5
+ <a:documentation> RELAX NG Schema for HTML 5 #</a:documentation>
6
+ <!-- ##################################################################### -->
7
+ <!--
8
+ To validate an HTML 5 document, you must first validate against #
9
+ this schema and then ALSO validate against assertions.sch #
10
+ -->
11
+ <a:documentation>HTML flavor RELAX NG schemas can only be used after the #
12
+ document has been transformed to well-formed XML. #
13
+ - Insert closing slashes in all empty element tags #
14
+ - Insert all optional start and end tags #
15
+ - Add xmlns "http://www.w3.org/1999/xhtml" #
16
+ - Properly escape &lt;script&gt; and &lt;style&gt; CDATA #
17
+ - Parse and transform all HTML-only entities to numeric #
18
+ character references #
19
+ Obviously, syntax-checking involving these features cannot be #
20
+ done by the RELAX NG schema and must be checked, along with the #
21
+ &lt;!DOCTYPE&gt; requirement, by some other application. #</a:documentation>
22
+ <!-- ##################################################################### -->
23
+ <a:documentation>Schema Framework &amp; Parameters</a:documentation>
24
+ <!-- XHTML flavor # -->
25
+ <define name="XMLonly">
26
+ <notAllowed/>
27
+ </define>
28
+ <define name="HTMLonly">
29
+ <empty/>
30
+ </define>
31
+ <!-- HTML 4 compat # -->
32
+ <define name="v5only">
33
+ <empty/>
34
+ </define>
35
+ <!-- HTML-serializability # -->
36
+ <define name="nonHTMLizable">
37
+ <notAllowed/>
38
+ </define>
39
+ <!-- HTML-roundtrippability # -->
40
+ <define name="nonRoundtrippable">
41
+ <notAllowed/>
42
+ </define>
43
+ </include>
44
+ <!-- ##################################################################### -->
45
+ <start>
46
+ <a:documentation>Language Definitions</a:documentation>
47
+ <ref name="html.elem"/>
48
+ </start>
49
+ <include href="meta.rng"/>
50
+ <include href="phrase.rng"/>
51
+ <include href="block.rng"/>
52
+ <include href="sectional.rng"/>
53
+ <include href="structural.rng"/>
54
+ <include href="revision.rng"/>
55
+ <include href="embed.rng"/>
56
+ <include href="ruby.rng"/>
57
+ <include href="media.rng"/>
58
+ <include href="core-scripting.rng"/>
59
+ <include href="tables.rng"/>
60
+ <include href="form-datatypes.rng"/>
61
+ <include href="web-forms.rng"/>
62
+ <include href="web-forms2.rng"/>
63
+ <include href="applications.rng"/>
64
+ <include href="data.rng"/>
65
+ </grammar>
@@ -0,0 +1,355 @@
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
+ <!-- src not included -->
5
+ <define name="media.attrs">
6
+ <a:documentation> RELAX NG Schema for HTML 5: Advanced Embedded Content #</a:documentation>
7
+ <!-- ##################################################################### -->
8
+ <a:documentation>Attributes Common to Media Elements</a:documentation>
9
+ <interleave>
10
+ <optional>
11
+ <ref name="media.attrs.autoplay"/>
12
+ </optional>
13
+ <optional>
14
+ <ref name="media.attrs.preload"/>
15
+ </optional>
16
+ <optional>
17
+ <ref name="media.attrs.controls"/>
18
+ </optional>
19
+ <optional>
20
+ <ref name="media.attrs.loop"/>
21
+ </optional>
22
+ <optional>
23
+ <ref name="media.attrs.mediagroup"/>
24
+ </optional>
25
+ <optional>
26
+ <ref name="media.attrs.muted"/>
27
+ </optional>
28
+ </interleave>
29
+ </define>
30
+ <define name="media.attrs.autoplay">
31
+ <attribute name="autoplay">
32
+ <choice>
33
+ <value type="string">autoplay</value>
34
+ <value type="string"/>
35
+ </choice>
36
+ </attribute>
37
+ </define>
38
+ <define name="media.attrs.preload">
39
+ <attribute name="preload">
40
+ <choice>
41
+ <value type="string">none</value>
42
+ <value type="string">metadata</value>
43
+ <value type="string">auto</value>
44
+ <value type="string"/>
45
+ </choice>
46
+ </attribute>
47
+ </define>
48
+ <define name="media.attrs.controls">
49
+ <attribute name="controls">
50
+ <choice>
51
+ <value type="string">controls</value>
52
+ <value type="string"/>
53
+ </choice>
54
+ </attribute>
55
+ </define>
56
+ <define name="media.attrs.loop">
57
+ <attribute name="loop">
58
+ <choice>
59
+ <value type="string">loop</value>
60
+ <value type="string"/>
61
+ </choice>
62
+ </attribute>
63
+ </define>
64
+ <define name="media.attrs.mediagroup">
65
+ <attribute name="mediagroup">
66
+ <data type="string" datatypeLibrary=""/>
67
+ </attribute>
68
+ </define>
69
+ <define name="media.attrs.muted">
70
+ <attribute name="muted">
71
+ <choice>
72
+ <value type="string">muted</value>
73
+ <value type="string"/>
74
+ </choice>
75
+ </attribute>
76
+ </define>
77
+ <define name="source.elem">
78
+ <a:documentation>Source: &lt;source&gt;</a:documentation>
79
+ <element name="source">
80
+ <interleave>
81
+ <ref name="source.inner"/>
82
+ <ref name="source.attrs"/>
83
+ </interleave>
84
+ </element>
85
+ </define>
86
+ <define name="source.attrs">
87
+ <interleave>
88
+ <ref name="common.attrs"/>
89
+ <ref name="source.attrs.src"/>
90
+ <optional>
91
+ <ref name="source.attrs.type"/>
92
+ </optional>
93
+ <optional>
94
+ <ref name="source.attrs.media"/>
95
+ </optional>
96
+ </interleave>
97
+ </define>
98
+ <define name="source.attrs.src">
99
+ <attribute name="src">
100
+ <ref name="common.data.uri.non-empty"/>
101
+ </attribute>
102
+ </define>
103
+ <define name="source.attrs.type">
104
+ <attribute name="type">
105
+ <ref name="common.data.mimetype"/>
106
+ </attribute>
107
+ </define>
108
+ <define name="source.attrs.media">
109
+ <attribute name="media">
110
+ <ref name="common.data.mediaquery"/>
111
+ </attribute>
112
+ </define>
113
+ <define name="source.inner">
114
+ <empty/>
115
+ </define>
116
+ <define name="media.source">
117
+ <a:documentation>Media Source</a:documentation>
118
+ <choice>
119
+ <ref name="media.attrs.src"/>
120
+ <zeroOrMore>
121
+ <ref name="source.elem"/>
122
+ </zeroOrMore>
123
+ </choice>
124
+ </define>
125
+ <define name="media.attrs.src">
126
+ <attribute name="src">
127
+ <ref name="common.data.uri.non-empty"/>
128
+ </attribute>
129
+ </define>
130
+ <define name="video.elem.flow">
131
+ <a:documentation>Video: &lt;video&gt;</a:documentation>
132
+ <element name="video">
133
+ <interleave>
134
+ <ref name="video.inner.flow"/>
135
+ <ref name="video.attrs"/>
136
+ </interleave>
137
+ </element>
138
+ </define>
139
+ <define name="video.elem.phrasing">
140
+ <element name="video">
141
+ <interleave>
142
+ <ref name="video.inner.phrasing"/>
143
+ <ref name="video.attrs"/>
144
+ </interleave>
145
+ </element>
146
+ </define>
147
+ <define name="video.attrs">
148
+ <interleave>
149
+ <ref name="common.attrs"/>
150
+ <ref name="media.attrs"/>
151
+ <optional>
152
+ <ref name="video.attrs.poster"/>
153
+ </optional>
154
+ <optional>
155
+ <ref name="video.attrs.height"/>
156
+ </optional>
157
+ <optional>
158
+ <ref name="video.attrs.width"/>
159
+ </optional>
160
+ </interleave>
161
+ </define>
162
+ <define name="video.attrs.poster">
163
+ <attribute name="poster">
164
+ <ref name="common.data.uri.non-empty"/>
165
+ </attribute>
166
+ </define>
167
+ <define name="video.attrs.height">
168
+ <attribute name="height">
169
+ <ref name="common.data.integer.non-negative"/>
170
+ </attribute>
171
+ </define>
172
+ <define name="video.attrs.width">
173
+ <attribute name="width">
174
+ <ref name="common.data.integer.non-negative"/>
175
+ </attribute>
176
+ </define>
177
+ <define name="video.inner.flow">
178
+ <ref name="media.source"/>
179
+ <zeroOrMore>
180
+ <ref name="track.elem"/>
181
+ </zeroOrMore>
182
+ <ref name="common.inner.flow"/>
183
+ </define>
184
+ <define name="video.inner.phrasing">
185
+ <ref name="media.source"/>
186
+ <zeroOrMore>
187
+ <ref name="track.elem"/>
188
+ </zeroOrMore>
189
+ <ref name="common.inner.phrasing"/>
190
+ </define>
191
+ <define name="common.elem.flow" combine="choice">
192
+ <ref name="video.elem.flow"/>
193
+ </define>
194
+ <define name="common.elem.phrasing" combine="choice">
195
+ <ref name="video.elem.phrasing"/>
196
+ </define>
197
+ <define name="audio.elem.flow">
198
+ <a:documentation>Audio: &lt;audio&gt;</a:documentation>
199
+ <element name="audio">
200
+ <interleave>
201
+ <ref name="audio.inner.flow"/>
202
+ <ref name="audio.attrs"/>
203
+ </interleave>
204
+ </element>
205
+ </define>
206
+ <define name="audio.elem.phrasing">
207
+ <element name="audio">
208
+ <interleave>
209
+ <ref name="audio.inner.phrasing"/>
210
+ <ref name="audio.attrs"/>
211
+ </interleave>
212
+ </element>
213
+ </define>
214
+ <define name="audio.attrs">
215
+ <interleave>
216
+ <ref name="common.attrs"/>
217
+ <ref name="media.attrs"/>
218
+ </interleave>
219
+ </define>
220
+ <define name="audio.inner.flow">
221
+ <ref name="media.source"/>
222
+ <zeroOrMore>
223
+ <ref name="track.elem"/>
224
+ </zeroOrMore>
225
+ <ref name="common.inner.flow"/>
226
+ </define>
227
+ <define name="audio.inner.phrasing">
228
+ <ref name="media.source"/>
229
+ <zeroOrMore>
230
+ <ref name="track.elem"/>
231
+ </zeroOrMore>
232
+ <ref name="common.inner.phrasing"/>
233
+ </define>
234
+ <define name="common.elem.flow" combine="choice">
235
+ <ref name="audio.elem.flow"/>
236
+ </define>
237
+ <define name="common.elem.phrasing" combine="choice">
238
+ <ref name="audio.elem.phrasing"/>
239
+ </define>
240
+ <!---->
241
+ <define name="track.elem">
242
+ <a:documentation>supplementary media track: &lt;track&gt;</a:documentation>
243
+ <element name="track">
244
+ <interleave>
245
+ <ref name="track.inner"/>
246
+ <ref name="track.attrs"/>
247
+ </interleave>
248
+ </element>
249
+ </define>
250
+ <define name="track.attrs">
251
+ <interleave>
252
+ <ref name="common.attrs"/>
253
+ <optional>
254
+ <ref name="track.attrs.kind"/>
255
+ </optional>
256
+ <ref name="track.attrs.src"/>
257
+ <optional>
258
+ <ref name="track.attrs.srclang"/>
259
+ </optional>
260
+ <optional>
261
+ <ref name="track.attrs.label"/>
262
+ </optional>
263
+ <optional>
264
+ <ref name="track.attrs.default"/>
265
+ </optional>
266
+ </interleave>
267
+ </define>
268
+ <define name="track.attrs.kind">
269
+ <attribute name="kind">
270
+ <choice>
271
+ <value type="string">subtitles</value>
272
+ <value type="string">captions</value>
273
+ <value type="string">descriptions</value>
274
+ <value type="string">chapters</value>
275
+ <value type="string">metadata</value>
276
+ </choice>
277
+ </attribute>
278
+ </define>
279
+ <define name="track.attrs.src">
280
+ <attribute name="src">
281
+ <ref name="common.data.uri.non-empty"/>
282
+ </attribute>
283
+ </define>
284
+ <define name="track.attrs.srclang">
285
+ <attribute name="srclang">
286
+ <ref name="common.data.langcode"/>
287
+ </attribute>
288
+ </define>
289
+ <define name="track.attrs.label">
290
+ <attribute name="label">
291
+ <data type="string" datatypeLibrary=""/>
292
+ <!-- must be non-empty value; check is in assertions code -->
293
+ </attribute>
294
+ </define>
295
+ <define name="track.attrs.default">
296
+ <attribute name="default">
297
+ <choice>
298
+ <value type="string">default</value>
299
+ <value type="string"/>
300
+ </choice>
301
+ </attribute>
302
+ </define>
303
+ <define name="track.inner">
304
+ <empty/>
305
+ </define>
306
+ <define name="figure.elem">
307
+ <a:documentation>Captioned Content: &lt;figure&gt;</a:documentation>
308
+ <element name="figure">
309
+ <interleave>
310
+ <ref name="figure.inner"/>
311
+ <ref name="figure.attrs"/>
312
+ </interleave>
313
+ </element>
314
+ </define>
315
+ <define name="figure.attrs">
316
+ <interleave>
317
+ <ref name="common.attrs"/>
318
+ <optional>
319
+ <ref name="common.attrs.aria.implicit.img"/>
320
+ </optional>
321
+ </interleave>
322
+ </define>
323
+ <define name="figure.inner">
324
+ <choice>
325
+ <group>
326
+ <ref name="figcaption.elem"/>
327
+ <ref name="common.inner.flow"/>
328
+ </group>
329
+ <group>
330
+ <ref name="common.inner.flow"/>
331
+ <optional>
332
+ <ref name="figcaption.elem"/>
333
+ </optional>
334
+ </group>
335
+ </choice>
336
+ </define>
337
+ <define name="common.elem.flow" combine="choice">
338
+ <ref name="figure.elem"/>
339
+ </define>
340
+ <define name="figcaption.elem">
341
+ <a:documentation>Figure caption: &lt;figcaption&gt;</a:documentation>
342
+ <element name="figcaption">
343
+ <interleave>
344
+ <ref name="figcaption.inner"/>
345
+ <ref name="figcaption.attrs"/>
346
+ </interleave>
347
+ </element>
348
+ </define>
349
+ <define name="figcaption.attrs">
350
+ <ref name="common.attrs"/>
351
+ </define>
352
+ <define name="figcaption.inner">
353
+ <ref name="common.inner.flow"/>
354
+ </define>
355
+ </grammar>