]> code.delx.au - gnu-emacs-elpa/blob - packages/html5-schema/microdata.rnc
Add 'packages/html5-schema/' from commit '6e7c7c331e7f6692be6c7d39fb9485792f0d3513'
[gnu-emacs-elpa] / packages / html5-schema / microdata.rnc
1 datatypes w = "http://whattf.org/datatype-draft"
2
3 # #####################################################################
4 ## RELAX NG Schema for HTML 5: Microdata #
5 # #####################################################################
6
7 common.attrs.microdata =
8 ( common.attrs.microdata.itemref?
9 & common.attrs.microdata.itemprop?
10 & common.attrs.microdata.itemscope?
11 & common.attrs.microdata.itemtype?
12 & common.attrs.microdata.itemid?
13 )
14 common.attrs.microdata.itemref =
15 attribute itemref {
16 common.data.idrefs
17 }
18 common.attrs.microdata.itemprop =
19 attribute itemprop {
20 common.data.microdata-properties
21 }
22 common.attrs.microdata.itemscope =
23 attribute itemscope {
24 w:string "itemscope" | w:string ""
25 }
26 common.attrs.microdata.itemtype =
27 attribute itemtype {
28 list { common.data.uri.absolute+ }
29 }
30 common.attrs.microdata.itemid =
31 attribute itemid {
32 common.data.uri
33 }
34
35 common.attrs &= common.attrs.microdata
36
37 a.attrs &= common.attrs.microdata
38 area.attrs &= common.attrs.microdata
39 base.attrs &= common.attrs.microdata
40
41 ## URL-valued Property Metadata: <link itemprop>
42
43 link.elem.phrasing =
44 element link { link.inner & link.phrasing.attrs }
45 link.phrasing.attrs =
46 ( common.attrs.basic
47 & common.attrs.i18n
48 & common.attrs.present
49 & common.attrs.other
50 & common.attrs.microdata.itemprop
51 & common.attrs.microdata.itemref?
52 & common.attrs.microdata.itemscope?
53 & common.attrs.microdata.itemtype?
54 & common.attrs.microdata.itemid?
55 & shared-hyperlink.attrs.href
56 & shared-hyperlink.attrs.hreflang?
57 & shared-hyperlink.attrs.media?
58 & shared-hyperlink.attrs.type?
59 & link.attrs.sizes?
60 # link.attrs.title included in common.attrs
61 & embedded.content.attrs.crossorigin?
62 & ( common.attrs.aria.role.link
63 | common.attrs.aria.role.presentation
64 | common.attrs.aria.role.menuitem
65 )?
66 )
67 common.elem.phrasing |= link.elem.phrasing
68
69 ## <link> element in head, extensions
70
71 link.attrs.rel |= common.attrs.microdata.itemprop
72 link.attrs &= common.attrs.microdata.itemref?
73 link.attrs &= common.attrs.microdata.itemscope?
74 link.attrs &= common.attrs.microdata.itemtype?
75 link.attrs &= common.attrs.microdata.itemid?
76
77 ## Property Metadata: <meta itemprop>
78
79 meta.itemprop.elem =
80 element meta { meta.inner & meta.itemprop.attrs }
81 meta.itemprop.attrs =
82 ( common.attrs.basic
83 & common.attrs.i18n
84 & common.attrs.present
85 & common.attrs.other
86 & common.attrs.microdata.itemprop
87 & common.attrs.microdata.itemref?
88 & common.attrs.microdata.itemscope?
89 & common.attrs.microdata.itemtype?
90 & common.attrs.microdata.itemid?
91 & meta.itemprop.attrs.content
92 & ( common.attrs.aria.role.presentation
93 | common.attrs.aria.role.menuitem
94 )?
95 )
96 meta.itemprop.attrs.content =
97 attribute content {
98 string
99 }
100 common.elem.metadata |= meta.itemprop.elem
101 common.elem.phrasing |= meta.itemprop.elem