2 # #####################################################################
3 ## RELAX NG Schema for HTML 5: RDFa 1.1 and RDFa Lite 1.1 #
4 # #####################################################################
6 # #####################################################################
8 # #####################################################################
10 common.data.rdfa.safecurie =
12 pattern = "\[(([\i-[:]][\c-[:]]*)?:?)[^\s]*\]"
15 common.data.rdfa.curie =
17 pattern = "(([\i-[:]][\c-[:]]*)?:)[^\s]*"
20 common.data.rdfa.term =
22 pattern = "[\i-[:]][/\c-[:]]*"
25 # #####################################################################
27 # #####################################################################
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?
42 common.attrs.rdfa.prefix =
46 pattern = "\s*([\i-[:]][\c-[:]]*: [^ ]+)(\s+[\i-[:]][\c-[:]]*: [^ ]+)*\s*"
51 common.attrs.rdfa.property =
55 ( common.data.rdfa.term
56 | common.data.rdfa.curie
57 | common.data.uri.absolute
63 common.attrs.rdfa.resource =
65 ( common.data.rdfa.safecurie
66 | common.data.rdfa.curie
70 common.attrs.rdfa.typeof =
74 ( common.data.rdfa.term
75 | common.data.rdfa.curie
76 | common.data.uri.absolute
82 common.attrs.rdfa.vocab =
84 ( common.data.uri.absolute
88 common.attrs.rdfa.about =
90 ( common.data.rdfa.safecurie
91 | common.data.rdfa.curie
95 common.attrs.rdfa.content =
99 common.attrs.rdfa.datatype =
101 ( common.data.rdfa.term
102 | common.data.rdfa.curie
103 | common.data.uri.absolute
107 common.attrs.rdfa.rel =
111 ( common.data.rdfa.term
112 | common.data.rdfa.curie
113 | common.data.uri.absolute
119 common.attrs.rdfa.rev =
123 ( common.data.rdfa.term
124 | common.data.rdfa.curie
125 | common.data.uri.absolute
131 common.attrs.rdfa.inlist =
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?
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?
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?
169 common.attrs &= common.attrs.rdfa
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
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 =
182 & common.attrs.present
184 & ( ( common.attrs.rdfa.property
188 ( common.attrs.rdfa.property?
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?
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
213 link.rdfa.attrs.phrasing =
216 & common.attrs.present
218 & common.attrs.rdfa.property
220 & ( ( common.attrs.rdfa.resource
224 ( common.attrs.rdfa.resource?
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?
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
247 common.elem.metadata |= link.rdfa.elem.metadata
248 common.elem.phrasing |= link.rdfa.elem.phrasing
250 ## <meta property=foo content=bar> in head ("name" attribute optional)
252 element meta { meta.inner & meta.property.attrs }
253 meta.property.attrs =
256 & common.attrs.present
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
265 common.elem.metadata |= meta.property.elem
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 =
273 & common.attrs.present
275 & common.attrs.rdfa.property
276 & meta.name.attrs.content
277 & ( common.attrs.aria.role.presentation
278 | common.attrs.aria.role.menuitem
281 common.elem.phrasing |= meta.property-no-name.elem
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