]> code.delx.au - gnu-emacs-elpa/blob - packages/html5-schema/structural.rnc
Add 'packages/html5-schema/' from commit '6e7c7c331e7f6692be6c7d39fb9485792f0d3513'
[gnu-emacs-elpa] / packages / html5-schema / structural.rnc
1 # #####################################################################
2 ## RELAX NG Schema for HTML 5: Block Markup Added in HTML5 #
3 # #####################################################################
4
5 ## Section: <section>
6
7 section.elem =
8 element section { section.inner & section.attrs }
9 section.attrs =
10 ( common.attrs
11 & ( common.attrs.aria.implicit.region
12 | common.attrs.aria.role.alert
13 | common.attrs.aria.role.alertdialog
14 | common.attrs.aria.role.contentinfo
15 | common.attrs.aria.role.dialog
16 | common.attrs.aria.role.log
17 | common.attrs.aria.role.marquee
18 | common.attrs.aria.role.region
19 | common.attrs.aria.role.status
20 | common.attrs.aria.role.presentation
21 | common.attrs.aria.landmark.application
22 | common.attrs.aria.landmark.document
23 | common.attrs.aria.landmark.main
24 | common.attrs.aria.landmark.search
25 )?
26 )
27 section.inner =
28 ( common.inner.flow )
29
30 common.elem.flow |= section.elem
31
32 ## Navigational Links: <nav>
33
34 nav.elem =
35 element nav { nav.inner & nav.attrs }
36 nav.attrs =
37 ( common.attrs
38 & ( common.attrs.aria.implicit.navigation
39 | common.attrs.aria.landmark.navigation
40 )?
41 )
42 nav.inner =
43 ( common.inner.flow )
44
45 common.elem.flow |= nav.elem
46
47 ## Article: <article>
48
49 article.elem =
50 element article { article.inner & article.attrs }
51 article.attrs =
52 ( common.attrs
53 & ( common.attrs.aria.implicit.article
54 | common.attrs.aria.landmark.article
55 | common.attrs.aria.landmark.document
56 | common.attrs.aria.landmark.application
57 | common.attrs.aria.landmark.main
58 | common.attrs.aria.role.presentation
59 )?
60 )
61 article.inner =
62 ( style.elem*
63 , common.inner.flow
64 )
65
66 common.elem.flow |= article.elem
67
68 ## Tangential Aside: <aside>
69
70 aside.elem =
71 element aside { aside.inner & aside.attrs }
72 aside.attrs =
73 ( common.attrs
74 & ( common.attrs.aria.implicit.complementary
75 | common.attrs.aria.landmark.note
76 | common.attrs.aria.landmark.complementary
77 | common.attrs.aria.landmark.search
78 | common.attrs.aria.role.presentation
79 )?
80 )
81 aside.inner =
82 ( style.elem*
83 , common.inner.flow
84 )
85
86 common.elem.flow |= aside.elem
87
88 ## Header: <header>
89
90 header.elem =
91 element header { header.inner & header.attrs }
92 header.attrs =
93 ( common.attrs
94 & ( common.attrs.aria.implicit.banner
95 | common.attrs.aria.landmark.banner
96 | common.attrs.aria.role.group
97 | common.attrs.aria.role.presentation
98 )?
99 )
100 header.inner =
101 ( common.inner.flow )
102
103 common.elem.flow |= header.elem
104
105 ## Footer: <footer>
106
107 footer.elem =
108 element footer { footer.inner & footer.attrs }
109 footer.attrs =
110 ( common.attrs
111 & ( common.attrs.aria.implicit.contentinfo
112 | common.attrs.aria.landmark.contentinfo
113 | common.attrs.aria.role.group
114 | common.attrs.aria.role.presentation
115 )?
116 )
117 footer.inner =
118 ( common.inner.flow )
119
120 common.elem.flow |= footer.elem
121
122 ## main content: <main>
123
124 main.elem =
125 element main { main.inner & main.attrs }
126 main.attrs =
127 ( common.attrs
128 & ( common.attrs.aria.implicit.main
129 | common.attrs.aria.landmark.main
130 )?
131 )
132 main.inner =
133 ( common.inner.flow )
134
135 common.elem.flow |= main.elem