1 datatypes w = "http://whattf.org/datatype-draft"
3 # #####################################################################
4 ## RELAX NG Schema for HTML 5: Phrase Markup #
5 # #####################################################################
7 ## Contextual Hyperlink: <a>
10 element a { a.inner.phrasing & a.attrs }
12 element a { a.inner.flow & a.attrs }
16 & common.attrs.present
19 & shared-hyperlink.attrs.download?
20 & shared-hyperlink.attrs.href?
21 & shared-hyperlink.attrs.target?
22 & shared-hyperlink.attrs.rel?
23 & shared-hyperlink.attrs.hreflang?
24 & shared-hyperlink.attrs.type?
25 & shared-hyperlink.attrs.ping?
26 & ( common.attrs.aria.implicit.link
27 | common.attrs.aria.role.button
28 | common.attrs.aria.role.checkbox
29 | common.attrs.aria.role.link
30 | common.attrs.aria.role.menuitem
31 | common.attrs.aria.role.menuitemcheckbox
32 | common.attrs.aria.role.menuitemradio
33 | common.attrs.aria.role.tab
34 | common.attrs.aria.role.treeitem
39 common.data.id # XXX not what the spec says
42 ( common.inner.phrasing )
44 ( common.inner.transparent.flow )
46 common.elem.phrasing |= a.elem.phrasing
47 common.elem.flow |= a.elem.flow
49 ## Shared hyperlink attributes
51 shared-hyperlink.attrs.download =
55 shared-hyperlink.attrs.href =
59 shared-hyperlink.attrs.target =
61 common.data.browsing-context-or-keyword
63 shared-hyperlink.attrs.rel =
67 shared-hyperlink.attrs.hreflang =
71 shared-hyperlink.attrs.media =
73 common.data.mediaquery
75 shared-hyperlink.attrs.type =
79 shared-hyperlink.attrs.ping =
84 ## Emphatic Stress: <em>
87 element em { em.inner & em.attrs }
93 ( common.inner.phrasing )
95 common.elem.phrasing |= em.elem
97 ## Strong Importance: <strong>
100 element strong { strong.inner & strong.attrs }
106 ( common.inner.phrasing )
108 common.elem.phrasing |= strong.elem
110 ## Small Print and Side Comments: <small>
113 element small { small.inner & small.attrs }
119 ( common.inner.phrasing )
121 common.elem.phrasing |= small.elem
123 ## Marked (Highlighted) Text: <mark>
126 element mark { mark.inner & mark.attrs }
130 & ( common.attrs.aria.role.presentation
131 | common.attrs.aria.role.menuitem
135 ( common.inner.phrasing )
137 common.elem.phrasing |= mark.elem
139 ## Abbreviation: <abbr>
142 element abbr { abbr.inner & abbr.attrs }
145 # abbr.attrs.title included in common.attrs
149 ( common.inner.phrasing )
151 common.elem.phrasing |= abbr.elem
153 ## Defining Instance: <dfn>
156 element dfn { dfn.inner & dfn.attrs }
159 # dfn.attrs.title included in common.attrs
163 ( common.inner.phrasing )
165 common.elem.phrasing |= dfn.elem
170 element i { i.inner & i.attrs }
176 ( common.inner.phrasing )
178 common.elem.phrasing |= i.elem
183 element b { b.inner & b.attrs }
189 ( common.inner.phrasing )
191 common.elem.phrasing |= b.elem
196 element s { s.inner & s.attrs }
202 ( common.inner.phrasing )
204 common.elem.phrasing |= s.elem
209 element u { u.inner & u.attrs }
215 ( common.inner.phrasing )
217 common.elem.phrasing |= u.elem
219 ## Code Fragment: <code>
222 element code { code.inner & code.attrs }
228 ( common.inner.phrasing )
230 common.elem.phrasing |= code.elem
232 ## Variable or Placeholder: <var>
235 element var { var.inner & var.attrs }
241 ( common.inner.phrasing )
243 common.elem.phrasing |= var.elem
245 ## (Sample) Output: <samp>
248 element samp { samp.inner & samp.attrs }
254 ( common.inner.phrasing )
256 common.elem.phrasing |= samp.elem
261 element kbd { kbd.inner & kbd.attrs }
267 ( common.inner.phrasing )
269 common.elem.phrasing |= kbd.elem
271 ## Superscript: <sup>
274 element sup { sup.inner & sup.attrs }
280 ( common.inner.phrasing )
282 common.elem.phrasing |= sup.elem
287 element sub { sub.inner & sub.attrs }
293 ( common.inner.phrasing )
295 common.elem.phrasing |= sub.elem
300 element q { q.inner & q.attrs }
311 ( common.inner.phrasing )
313 common.elem.phrasing |= q.elem
315 ## Title of Work: <cite>
318 element cite { cite.inner & cite.attrs }
324 ( common.inner.phrasing )
326 common.elem.phrasing |= cite.elem
328 ## Generic Span: <span>
331 element span { span.inner & span.attrs }
337 ( common.inner.phrasing ) # REVISIT allow ol and ul?
339 common.elem.phrasing |= span.elem
341 ## Bidirectional Override: <bdo>
344 element bdo { bdo.inner & bdo.attrs }
346 ( common.attrs # dir required in Schematron
347 & ( common.attrs.aria.role.presentation
348 | common.attrs.aria.role.menuitem
352 ( common.inner.phrasing )
354 common.elem.phrasing |= bdo.elem
356 ## Bidirectional Isolate: <bdi>
359 element bdi { bdi.inner & bdi.attrs }
362 & ( common.attrs.aria.role.presentation
363 | common.attrs.aria.role.menuitem
367 ( common.inner.phrasing )
369 common.elem.phrasing |= bdi.elem
374 element br { br.inner & br.attrs }
377 & ( common.attrs.aria.role.presentation
378 | common.attrs.aria.role.menuitem
384 common.elem.phrasing |= br.elem
386 ## Line-break opportunity: <wbr>
389 element wbr { wbr.inner & wbr.attrs }
392 & ( common.attrs.aria.role.presentation
393 | common.attrs.aria.role.menuitem
399 common.elem.phrasing |= wbr.elem