]> code.delx.au - gnu-emacs-elpa/blob - packages/html5-schema/rdfa.rnc
Merge commit '0cda39255827f283e7578cd469ae42daad9556a2' from js2-mode
[gnu-emacs-elpa] / packages / html5-schema / rdfa.rnc
1 nonRDFaLite = empty
2 # #####################################################################
3 ## RELAX NG Schema for HTML 5: RDFa 1.1 and RDFa Lite 1.1 #
4 # #####################################################################
5
6 # #####################################################################
7 ## RDFa Datatypes #
8 # #####################################################################
9
10 common.data.rdfa.safecurie =
11 xsd:string {
12 pattern = "\[(([\i-[:]][\c-[:]]*)?:?)[^\s]*\]"
13 minLength = "2"
14 }
15 common.data.rdfa.curie =
16 xsd:string {
17 pattern = "(([\i-[:]][\c-[:]]*)?:)[^\s]*"
18 minLength = "1"
19 }
20 common.data.rdfa.term =
21 xsd:string {
22 pattern = "[\i-[:]][/\c-[:]]*"
23 }
24
25 # #####################################################################
26 ## RDFa Attributes #
27 # #####################################################################
28
29 common.attrs.rdfa &=
30 ( common.attrs.rdfa.about?
31 & common.attrs.rdfa.prefix?
32 & common.attrs.rdfa.property?
33 & common.attrs.rdfa.typeof?
34 & common.attrs.rdfa.vocab?
35 & common.attrs.rdfa.content?
36 & common.attrs.rdfa.datatype?
37 & common.attrs.rdfa.rel?
38 & common.attrs.rdfa.resource?
39 & common.attrs.rdfa.rev?
40 & common.attrs.rdfa.inlist?
41 )
42 common.attrs.rdfa.prefix =
43 attribute prefix {
44 (
45 xsd:string {
46 pattern = "\s*([\i-[:]][\c-[:]]*: [^ ]+)(\s+[\i-[:]][\c-[:]]*: [^ ]+)*\s*"
47 }
48 | string ""
49 )
50 }
51 common.attrs.rdfa.property =
52 attribute property {
53 (
54 list {
55 ( common.data.rdfa.term
56 | common.data.rdfa.curie
57 | common.data.uri.absolute
58 )+
59 }
60 | string ""
61 )
62 }
63 common.attrs.rdfa.resource =
64 attribute resource {
65 ( common.data.rdfa.safecurie
66 | common.data.rdfa.curie
67 | common.data.uri
68 )
69 }
70 common.attrs.rdfa.typeof =
71 attribute typeof {
72 (
73 list {
74 ( common.data.rdfa.term
75 | common.data.rdfa.curie
76 | common.data.uri.absolute
77 )+
78 }
79 | string ""
80 )
81 }
82 common.attrs.rdfa.vocab =
83 attribute vocab {
84 ( common.data.uri.absolute
85 | string ""
86 )
87 }
88 common.attrs.rdfa.about =
89 attribute about {
90 ( common.data.rdfa.safecurie
91 | common.data.rdfa.curie
92 | common.data.uri
93 )
94 } & nonRDFaLite
95 common.attrs.rdfa.content =
96 attribute content {
97 string
98 } & nonRDFaLite
99 common.attrs.rdfa.datatype =
100 attribute datatype {
101 ( common.data.rdfa.term
102 | common.data.rdfa.curie
103 | common.data.uri.absolute
104 | string ""
105 )
106 } & nonRDFaLite
107 common.attrs.rdfa.rel =
108 attribute rel {
109 (
110 list {
111 ( common.data.rdfa.term
112 | common.data.rdfa.curie
113 | common.data.uri.absolute
114 )+
115 }
116 | string ""
117 )
118 } & nonRDFaLite
119 common.attrs.rdfa.rev =
120 attribute rev {
121 (
122 list {
123 ( common.data.rdfa.term
124 | common.data.rdfa.curie
125 | common.data.uri.absolute
126 )+
127 }
128 | string ""
129 )
130 } & nonRDFaLite
131 common.attrs.rdfa.inlist =
132 attribute inlist {
133 string
134 } & nonRDFaLite
135
136 common.attrs.rdfa.no-rel &=
137 ( common.attrs.rdfa.about?
138 & common.attrs.rdfa.prefix?
139 & common.attrs.rdfa.property?
140 & common.attrs.rdfa.typeof?
141 & common.attrs.rdfa.vocab?
142 & common.attrs.rdfa.content?
143 & common.attrs.rdfa.datatype?
144 & common.attrs.rdfa.resource?
145 & common.attrs.rdfa.rev?
146 & common.attrs.rdfa.inlist?
147 )
148 common.attrs.rdfa.no-rel-rev &=
149 ( common.attrs.rdfa.about?
150 & common.attrs.rdfa.prefix?
151 & common.attrs.rdfa.property?
152 & common.attrs.rdfa.typeof?
153 & common.attrs.rdfa.vocab?
154 & common.attrs.rdfa.content?
155 & common.attrs.rdfa.datatype?
156 & common.attrs.rdfa.resource?
157 & common.attrs.rdfa.inlist?
158 )
159 common.attrs.rdfa.no-content-noproperty &=
160 ( common.attrs.rdfa.about?
161 & common.attrs.rdfa.prefix?
162 & common.attrs.rdfa.typeof?
163 & common.attrs.rdfa.vocab?
164 & common.attrs.rdfa.datatype?
165 & common.attrs.rdfa.resource?
166 & common.attrs.rdfa.inlist?
167 )
168
169 common.attrs &= common.attrs.rdfa
170
171 a.attrs &= common.attrs.rdfa.no-rel-rev
172 area.attrs &= common.attrs.rdfa.no-rel
173 base.attrs &= common.attrs.rdfa.no-rel
174
175 link.rdfa.elem.metadata =
176 element link { link.inner & link.rdfa.attrs.metadata }
177 link.rdfa.elem.phrasing =
178 element link { link.inner & link.rdfa.attrs.phrasing }
179 link.rdfa.attrs.metadata =
180 ( common.attrs.basic
181 & common.attrs.i18n
182 & common.attrs.present
183 & common.attrs.other
184 & ( ( common.attrs.rdfa.property
185 & link.attrs.rel?
186 )
187 |
188 ( common.attrs.rdfa.property?
189 & link.attrs.rel
190 )
191 )
192 & link.attrs.href
193 & common.attrs.rdfa.about?
194 & common.attrs.rdfa.prefix?
195 & common.attrs.rdfa.typeof?
196 & common.attrs.rdfa.vocab?
197 & common.attrs.rdfa.content?
198 & common.attrs.rdfa.datatype?
199 & common.attrs.rdfa.resource?
200 & common.attrs.rdfa.rev?
201 & common.attrs.rdfa.inlist?
202 & shared-hyperlink.attrs.hreflang?
203 & shared-hyperlink.attrs.media?
204 & shared-hyperlink.attrs.type?
205 & link.attrs.sizes?
206 # link.attrs.title included in common.attrs
207 & embedded.content.attrs.crossorigin?
208 & ( common.attrs.aria.role.link
209 | common.attrs.aria.role.presentation
210 | common.attrs.aria.role.menuitem
211 )?
212 )
213 link.rdfa.attrs.phrasing =
214 ( common.attrs.basic
215 & common.attrs.i18n
216 & common.attrs.present
217 & common.attrs.other
218 & common.attrs.rdfa.property
219 & link.attrs.rel?
220 & ( ( common.attrs.rdfa.resource
221 & link.attrs.href?
222 )
223 |
224 ( common.attrs.rdfa.resource?
225 & link.attrs.href
226 )
227 )
228 & common.attrs.rdfa.about?
229 & common.attrs.rdfa.prefix?
230 & common.attrs.rdfa.typeof?
231 & common.attrs.rdfa.vocab?
232 & common.attrs.rdfa.content?
233 & common.attrs.rdfa.datatype?
234 & common.attrs.rdfa.rev?
235 & common.attrs.rdfa.inlist?
236 & shared-hyperlink.attrs.hreflang?
237 & shared-hyperlink.attrs.media?
238 & shared-hyperlink.attrs.type?
239 & link.attrs.sizes?
240 # link.attrs.title included in common.attrs
241 & embedded.content.attrs.crossorigin?
242 & ( common.attrs.aria.role.link
243 | common.attrs.aria.role.presentation
244 | common.attrs.aria.role.menuitem
245 )?
246 )
247 common.elem.metadata |= link.rdfa.elem.metadata
248 common.elem.phrasing |= link.rdfa.elem.phrasing
249
250 ## <meta property=foo content=bar> in head ("name" attribute optional)
251 meta.property.elem =
252 element meta { meta.inner & meta.property.attrs }
253 meta.property.attrs =
254 ( common.attrs.basic
255 & common.attrs.i18n
256 & common.attrs.present
257 & common.attrs.other
258 & meta.name.attrs.name?
259 & common.attrs.rdfa.property
260 & meta.name.attrs.content
261 & ( common.attrs.aria.role.presentation
262 | common.attrs.aria.role.menuitem
263 )?
264 )
265 common.elem.metadata |= meta.property.elem
266
267 ## <meta property=foo content=bar> in body ("name" attribute disallowed)
268 meta.property-no-name.elem =
269 element meta { meta.inner & meta.property-no-name.attrs }
270 meta.property-no-name.attrs =
271 ( common.attrs.basic
272 & common.attrs.i18n
273 & common.attrs.present
274 & common.attrs.other
275 & common.attrs.rdfa.property
276 & meta.name.attrs.content
277 & ( common.attrs.aria.role.presentation
278 | common.attrs.aria.role.menuitem
279 )?
280 )
281 common.elem.phrasing |= meta.property-no-name.elem
282
283 meta.property.attrs &= common.attrs.rdfa.no-content-noproperty
284 meta.property-no-name.attrs &= common.attrs.rdfa.no-content-noproperty
285 meta.name.attrs &= common.attrs.rdfa.no-content-noproperty