]> code.delx.au - gnu-emacs-elpa/blob - packages/html5-schema/core-scripting.rnc
Add 'packages/html5-schema/' from commit '6e7c7c331e7f6692be6c7d39fb9485792f0d3513'
[gnu-emacs-elpa] / packages / html5-schema / core-scripting.rnc
1 datatypes w = "http://whattf.org/datatype-draft"
2
3 # #####################################################################
4 ## RELAX NG Schema for HTML 5: Core Scripting #
5 # #####################################################################
6
7 # #####################################################################
8 ## Scripting Elements
9
10 ## Inline Scripts: <script>
11
12 script.elem.embedded =
13 element script { script.inner.embedded & script.attrs.embedded }
14 script.attrs.embedded =
15 ( common.attrs
16 & script.attrs.type?
17 & script.attrs.language? # restricted in Schematron
18 & script.attrs.integrity?
19 & script.attrs.nonce?
20 & embedded.content.attrs.crossorigin?
21 & ( common.attrs.aria.role.presentation
22 | common.attrs.aria.role.menuitem
23 )?
24 )
25 script.elem.imported =
26 element script { script.inner.imported & script.attrs.imported }
27 script.attrs.imported =
28 ( common.attrs
29 & script.attrs.src?
30 & script.attrs.defer?
31 & script.attrs.async?
32 & script.attrs.type?
33 & script.attrs.charset?
34 & script.attrs.language? # restricted in Schematron
35 & script.attrs.integrity?
36 & script.attrs.nonce?
37 & embedded.content.attrs.crossorigin?
38 & ( common.attrs.aria.role.presentation
39 | common.attrs.aria.role.menuitem
40 )?
41 )
42 script.attrs.src =
43 attribute src {
44 common.data.uri.non-empty
45 }
46 script.attrs.defer =
47 attribute defer {
48 w:string "defer" | w:string ""
49 }
50 script.attrs.async =
51 attribute async {
52 w:string "async" | w:string ""
53 } & v5only
54 script.attrs.type =
55 attribute type {
56 common.data.mimetype # XXX without charset parameter!
57 }
58 script.attrs.charset =
59 attribute charset {
60 common.data.charset
61 }
62 script.attrs.language =
63 attribute language {
64 string
65 }
66 script.attrs.integrity =
67 attribute integrity {
68 common.data.integrity
69 }
70 script.attrs.nonce =
71 attribute nonce{
72 string
73 }
74 script.inner.embedded =
75 ( common.inner.anything )
76 script.inner.imported =
77 ( common.inner.anything )
78
79 script.elem =
80 ( script.elem.embedded
81 | script.elem.imported
82 )
83
84 common.elem.metadata |= script.elem
85 common.elem.phrasing |= script.elem
86
87 ## Fallback Unscripted Content: <noscript>
88
89 noscript.elem.head =
90 element noscript { noscript.inner.head & noscript.attrs }
91 & HTMLonly
92 noscript.inner.head =
93 ( link.elem
94 | meta.http-equiv.default-style.elem
95 | meta.http-equiv.refresh.elem
96 | style.elem
97 )*
98 noscript.elem.phrasing =
99 element noscript { noscript.inner.phrasing & noscript.attrs }
100 & HTMLonly
101 noscript.inner.phrasing =
102 ( common.inner.phrasing )
103 noscript.elem.flow =
104 element noscript { noscript.inner.flow & noscript.attrs }
105 & HTMLonly
106 noscript.inner.flow =
107 ( common.inner.flow )
108 noscript.attrs =
109 ( common.attrs
110 & ( common.attrs.aria.role.presentation
111 | common.attrs.aria.role.menuitem
112 )?
113 )
114
115 common.elem.metadata |= noscript.elem.head
116 common.elem.phrasing |= noscript.elem.phrasing
117 common.elem.flow |= noscript.elem.flow
118
119 # #####################################################################
120 ## Event Handler Attribute Definitions
121
122 common.attrs.scripting &=
123 ( scripting.attr.onabort?
124 & scripting.attr.onautocomplete?
125 & scripting.attr.onautocompleteerror?
126 & scripting.attr.onblur?
127 & scripting.attr.oncancel?
128 & scripting.attr.oncanplay?
129 & scripting.attr.oncanplaythrough?
130 & scripting.attr.onchange?
131 & scripting.attr.onclick?
132 & scripting.attr.onclose?
133 & scripting.attr.oncuechange?
134 & scripting.attr.oncontextmenu?
135 & scripting.attr.ondblclick?
136 & scripting.attr.ondrag?
137 & scripting.attr.ondragend?
138 & scripting.attr.ondragenter?
139 & scripting.attr.ondragexit?
140 & scripting.attr.ondragleave?
141 & scripting.attr.ondragover?
142 & scripting.attr.ondragstart?
143 & scripting.attr.ondrop?
144 & scripting.attr.ondurationchange?
145 & scripting.attr.onemptied?
146 & scripting.attr.onended?
147 & scripting.attr.onerror?
148 & scripting.attr.onfocus?
149 & scripting.attr.oninput?
150 & scripting.attr.oninvalid?
151 & scripting.attr.onkeydown?
152 & scripting.attr.onkeypress?
153 & scripting.attr.onkeyup?
154 & scripting.attr.onload?
155 & scripting.attr.onloadeddata?
156 & scripting.attr.onloadedmetadata?
157 & scripting.attr.onloadstart?
158 & scripting.attr.onmousedown?
159 & scripting.attr.onmouseenter?
160 & scripting.attr.onmouseleave?
161 & scripting.attr.onmousemove?
162 & scripting.attr.onmouseout?
163 & scripting.attr.onmouseover?
164 & scripting.attr.onmouseup?
165 & scripting.attr.onwheel?
166 & scripting.attr.onpause?
167 & scripting.attr.onplay?
168 & scripting.attr.onplaying?
169 & scripting.attr.onprogress?
170 & scripting.attr.onratechange?
171 & scripting.attr.onreset?
172 & scripting.attr.onresize?
173 & scripting.attr.onscroll?
174 & scripting.attr.onseeked?
175 & scripting.attr.onseeking?
176 & scripting.attr.onselect?
177 & scripting.attr.onshow?
178 & scripting.attr.onsort?
179 & scripting.attr.onstalled?
180 & scripting.attr.onsubmit?
181 & scripting.attr.onsuspend?
182 & scripting.attr.ontimeupdate?
183 & scripting.attr.ontoggle?
184 & scripting.attr.onvolumechange?
185 & scripting.attr.onwaiting?
186 )
187
188 common.attrs.other &= common.attrs.scripting
189
190 scripting.attr.onabort =
191 attribute onabort { common.data.functionbody }
192 scripting.attr.onautocomplete =
193 attribute onautocomplete { common.data.functionbody }
194 scripting.attr.onautocompleteerror =
195 attribute onautocompleteerror { common.data.functionbody }
196 scripting.attr.onblur =
197 attribute onblur { common.data.functionbody }
198 scripting.attr.oncanplay =
199 attribute oncanplay { common.data.functionbody }
200 scripting.attr.oncancel =
201 attribute oncancel { common.data.functionbody }
202 scripting.attr.oncanplaythrough =
203 attribute oncanplaythrough { common.data.functionbody }
204 scripting.attr.onchange =
205 attribute onchange { common.data.functionbody }
206 scripting.attr.onclick =
207 attribute onclick { common.data.functionbody }
208 scripting.attr.onclose =
209 attribute onclose { common.data.functionbody }
210 scripting.attr.oncontextmenu =
211 attribute oncontextmenu { common.data.functionbody }
212 scripting.attr.oncuechange =
213 attribute oncuechange { common.data.functionbody }
214 scripting.attr.ondblclick =
215 attribute ondblclick { common.data.functionbody }
216 scripting.attr.ondrag =
217 attribute ondrag { common.data.functionbody }
218 scripting.attr.ondragend =
219 attribute ondragend { common.data.functionbody }
220 scripting.attr.ondragenter =
221 attribute ondragenter { common.data.functionbody }
222 scripting.attr.ondragexit =
223 attribute ondragexit { common.data.functionbody }
224 scripting.attr.ondragleave =
225 attribute ondragleave { common.data.functionbody }
226 scripting.attr.ondragover =
227 attribute ondragover { common.data.functionbody }
228 scripting.attr.ondragstart =
229 attribute ondragstart { common.data.functionbody }
230 scripting.attr.ondrop =
231 attribute ondrop { common.data.functionbody }
232 scripting.attr.ondurationchange =
233 attribute ondurationchange { common.data.functionbody }
234 scripting.attr.onemptied =
235 attribute onemptied { common.data.functionbody }
236 scripting.attr.onended =
237 attribute onended { common.data.functionbody }
238 scripting.attr.onerror =
239 attribute onerror { common.data.functionbody }
240 scripting.attr.onfocus =
241 attribute onfocus { common.data.functionbody }
242 scripting.attr.onformchange =
243 attribute onformchange { common.data.functionbody }
244 scripting.attr.onforminput =
245 attribute onforminput { common.data.functionbody }
246 scripting.attr.oninput =
247 attribute oninput { common.data.functionbody }
248 scripting.attr.oninvalid =
249 attribute oninvalid { common.data.functionbody }
250 scripting.attr.onkeydown =
251 attribute onkeydown { common.data.functionbody }
252 scripting.attr.onkeypress =
253 attribute onkeypress { common.data.functionbody }
254 scripting.attr.onkeyup =
255 attribute onkeyup { common.data.functionbody }
256 scripting.attr.onload =
257 attribute onload { common.data.functionbody }
258 scripting.attr.onloadeddata =
259 attribute onloadeddata { common.data.functionbody }
260 scripting.attr.onloadedmetadata =
261 attribute onloadedmetadata { common.data.functionbody }
262 scripting.attr.onloadstart =
263 attribute onloadstart { common.data.functionbody }
264 scripting.attr.onmousedown =
265 attribute onmousedown { common.data.functionbody }
266 scripting.attr.onmouseenter =
267 attribute onmouseenter { common.data.functionbody }
268 scripting.attr.onmouseleave =
269 attribute onmouseleave { common.data.functionbody }
270 scripting.attr.onmousemove =
271 attribute onmousemove { common.data.functionbody }
272 scripting.attr.onmouseout =
273 attribute onmouseout { common.data.functionbody }
274 scripting.attr.onmouseover =
275 attribute onmouseover { common.data.functionbody }
276 scripting.attr.onmouseup =
277 attribute onmouseup { common.data.functionbody }
278 scripting.attr.onwheel =
279 attribute onwheel { common.data.functionbody }
280 scripting.attr.onpause =
281 attribute onpause { common.data.functionbody }
282 scripting.attr.onplay =
283 attribute onplay { common.data.functionbody }
284 scripting.attr.onplaying =
285 attribute onplaying { common.data.functionbody }
286 scripting.attr.onprogress =
287 attribute onprogress { common.data.functionbody }
288 scripting.attr.onratechange =
289 attribute onratechange { common.data.functionbody }
290 scripting.attr.onreset =
291 attribute onreset { common.data.functionbody }
292 scripting.attr.onresize =
293 attribute onresize { common.data.functionbody }
294 scripting.attr.onscroll =
295 attribute onscroll { common.data.functionbody }
296 scripting.attr.onseeked =
297 attribute onseeked { common.data.functionbody }
298 scripting.attr.onseeking =
299 attribute onseeking { common.data.functionbody }
300 scripting.attr.onselect =
301 attribute onselect { common.data.functionbody }
302 scripting.attr.onshow =
303 attribute onshow { common.data.functionbody }
304 scripting.attr.onsort =
305 attribute onsort { common.data.functionbody }
306 scripting.attr.onstalled =
307 attribute onstalled { common.data.functionbody }
308 scripting.attr.onsubmit =
309 attribute onsubmit { common.data.functionbody }
310 scripting.attr.onsuspend =
311 attribute onsuspend { common.data.functionbody }
312 scripting.attr.ontimeupdate =
313 attribute ontimeupdate { common.data.functionbody }
314 scripting.attr.ontoggle =
315 attribute ontoggle { common.data.functionbody }
316 scripting.attr.onvolumechange =
317 attribute onvolumechange { common.data.functionbody }
318 scripting.attr.onwaiting =
319 attribute onwaiting { common.data.functionbody }
320
321 # scripting.attr.common =
322 # ( scripting.attr.mouse
323 # & scripting.attr.keyboard
324 # & scripting.attr.focus
325 # )
326 #
327 # scripting.attr.mouse =
328 # ( scripting.attr.mouse.click?
329 # & scripting.attr.mouse.dblclick?
330 # & scripting.attr.mouse.down?
331 # & scripting.attr.mouse.up?
332 # & scripting.attr.mouse.over?
333 # & scripting.attr.mouse.move?
334 # & scripting.attr.mouse.out?
335 # )
336 # scripting.attr.mouse.click =
337 # attribute onclick { string }
338 # scripting.attr.mouse.dblclick =
339 # attribute ondblclick { string }
340 # scripting.attr.mouse.down =
341 # attribute onmousedown { string }
342 # scripting.attr.mouse.up =
343 # attribute onmouseup { string }
344 # scripting.attr.mouse.over =
345 # attribute onmouseover { string }
346 # scripting.attr.mouse.move =
347 # attribute onmousemove { string }
348 # scripting.attr.mouse.out =
349 # attribute onmouseout { string }
350 #
351 # scripting.attr.keyboard =
352 # ( scripting.attr.keyboard.press?
353 # & scripting.attr.keyboard.down?
354 # & scripting.attr.keyboard.up?
355 # )
356 # scripting.attr.keyboard.press =
357 # attribute onkeypress { string }
358 # scripting.attr.keyboard.down =
359 # attribute onkeydown { string }
360 # scripting.attr.keyboard.up =
361 # attribute onkeyup { string }
362 #
363 #
364 # scripting.attr.focus =
365 # ( scripting.attr.focus.gain?
366 # & scripting.attr.focus.lose?
367 # )
368 # scripting.attr.focus.gain =
369 # attribute onfocus { string }
370 # scripting.attr.focus.lose =
371 # attribute onblur { string }
372 #
373 # scripting.attr.loading =
374 # ( scripting.attr.loading.load?
375 # & scripting.attr.loading.unload?
376 # )
377 # scripting.attr.loading.load =
378 # attribute onload { string }
379 # scripting.attr.loading.unload =
380 # attribute onunload { string }
381
382
383 # #####################################################################
384 # Event Handler Attribute Assignments
385
386 # body.attrs &= scripting.attr.loading