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.switch
34 | common.attrs.aria.role.tab
35 | common.attrs.aria.role.treeitem
40 common.data.id # XXX not what the spec says
43 ( common.inner.phrasing )
45 ( common.inner.transparent.flow )
47 common.elem.phrasing |= a.elem.phrasing
48 common.elem.flow |= a.elem.flow
50 ## Shared hyperlink attributes
52 shared-hyperlink.attrs.download =
56 shared-hyperlink.attrs.href =
60 shared-hyperlink.attrs.target =
62 common.data.browsing-context-or-keyword
64 shared-hyperlink.attrs.rel =
68 shared-hyperlink.attrs.hreflang =
72 shared-hyperlink.attrs.media =
74 common.data.mediaquery
76 shared-hyperlink.attrs.type =
80 shared-hyperlink.attrs.ping =
85 ## Emphatic Stress: <em>
88 element em { em.inner & em.attrs }
94 ( common.inner.phrasing )
96 common.elem.phrasing |= em.elem
98 ## Strong Importance: <strong>
101 element strong { strong.inner & strong.attrs }
107 ( common.inner.phrasing )
109 common.elem.phrasing |= strong.elem
111 ## Small Print and Side Comments: <small>
114 element small { small.inner & small.attrs }
120 ( common.inner.phrasing )
122 common.elem.phrasing |= small.elem
124 ## Marked (Highlighted) Text: <mark>
127 element mark { mark.inner & mark.attrs }
131 & ( common.attrs.aria.role.presentation
132 | common.attrs.aria.role.menuitem
136 ( common.inner.phrasing )
138 common.elem.phrasing |= mark.elem
140 ## Abbreviation: <abbr>
143 element abbr { abbr.inner & abbr.attrs }
146 # abbr.attrs.title included in common.attrs
150 ( common.inner.phrasing )
152 common.elem.phrasing |= abbr.elem
154 ## Defining Instance: <dfn>
157 element dfn { dfn.inner & dfn.attrs }
160 # dfn.attrs.title included in common.attrs
164 ( common.inner.phrasing )
166 common.elem.phrasing |= dfn.elem
171 element i { i.inner & i.attrs }
177 ( common.inner.phrasing )
179 common.elem.phrasing |= i.elem
184 element b { b.inner & b.attrs }
190 ( common.inner.phrasing )
192 common.elem.phrasing |= b.elem
197 element s { s.inner & s.attrs }
203 ( common.inner.phrasing )
205 common.elem.phrasing |= s.elem
210 element u { u.inner & u.attrs }
216 ( common.inner.phrasing )
218 common.elem.phrasing |= u.elem
220 ## Code Fragment: <code>
223 element code { code.inner & code.attrs }
229 ( common.inner.phrasing )
231 common.elem.phrasing |= code.elem
233 ## Variable or Placeholder: <var>
236 element var { var.inner & var.attrs }
242 ( common.inner.phrasing )
244 common.elem.phrasing |= var.elem
246 ## (Sample) Output: <samp>
249 element samp { samp.inner & samp.attrs }
255 ( common.inner.phrasing )
257 common.elem.phrasing |= samp.elem
262 element kbd { kbd.inner & kbd.attrs }
268 ( common.inner.phrasing )
270 common.elem.phrasing |= kbd.elem
272 ## Superscript: <sup>
275 element sup { sup.inner & sup.attrs }
281 ( common.inner.phrasing )
283 common.elem.phrasing |= sup.elem
288 element sub { sub.inner & sub.attrs }
294 ( common.inner.phrasing )
296 common.elem.phrasing |= sub.elem
301 element q { q.inner & q.attrs }
312 ( common.inner.phrasing )
314 common.elem.phrasing |= q.elem
316 ## Title of Work: <cite>
319 element cite { cite.inner & cite.attrs }
325 ( common.inner.phrasing )
327 common.elem.phrasing |= cite.elem
329 ## Generic Span: <span>
332 element span { span.inner & span.attrs }
338 ( common.inner.phrasing ) # REVISIT allow ol and ul?
340 common.elem.phrasing |= span.elem
342 ## Bidirectional Override: <bdo>
345 element bdo { bdo.inner & bdo.attrs }
347 ( common.attrs # dir required in Schematron
348 & ( common.attrs.aria.role.presentation
349 | common.attrs.aria.role.menuitem
353 ( common.inner.phrasing )
355 common.elem.phrasing |= bdo.elem
357 ## Bidirectional Isolate: <bdi>
360 element bdi { bdi.inner & bdi.attrs }
363 & ( common.attrs.aria.role.presentation
364 | common.attrs.aria.role.menuitem
368 ( common.inner.phrasing )
370 common.elem.phrasing |= bdi.elem
375 element br { br.inner & br.attrs }
378 & ( common.attrs.aria.role.presentation
379 | common.attrs.aria.role.menuitem
385 common.elem.phrasing |= br.elem
387 ## Line-break opportunity: <wbr>
390 element wbr { wbr.inner & wbr.attrs }
393 & ( common.attrs.aria.role.presentation
394 | common.attrs.aria.role.menuitem
400 common.elem.phrasing |= wbr.elem