]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/html5-schema/microdata.rnc
Add 'packages/html5-schema/' from commit '6e7c7c331e7f6692be6c7d39fb9485792f0d3513'
[gnu-emacs-elpa] / packages / html5-schema / microdata.rnc
diff --git a/packages/html5-schema/microdata.rnc b/packages/html5-schema/microdata.rnc
new file mode 100644 (file)
index 0000000..91616c8
--- /dev/null
@@ -0,0 +1,101 @@
+datatypes w = "http://whattf.org/datatype-draft"
+
+# #####################################################################
+##  RELAX NG Schema for HTML 5: Microdata                             #
+# #####################################################################
+
+common.attrs.microdata =
+       (       common.attrs.microdata.itemref?
+       &       common.attrs.microdata.itemprop?
+       &       common.attrs.microdata.itemscope?
+       &       common.attrs.microdata.itemtype?
+       &       common.attrs.microdata.itemid?
+       )
+       common.attrs.microdata.itemref =
+               attribute itemref {
+                       common.data.idrefs
+               }
+       common.attrs.microdata.itemprop =
+               attribute itemprop {
+                       common.data.microdata-properties
+               }
+       common.attrs.microdata.itemscope =
+               attribute itemscope {
+                       w:string "itemscope" | w:string ""
+               }
+       common.attrs.microdata.itemtype =
+               attribute itemtype {
+                       list { common.data.uri.absolute+ }
+               }
+       common.attrs.microdata.itemid =
+               attribute itemid {
+                       common.data.uri
+               }
+
+common.attrs &= common.attrs.microdata
+
+a.attrs &= common.attrs.microdata
+area.attrs &= common.attrs.microdata
+base.attrs &= common.attrs.microdata
+
+## URL-valued Property Metadata: <link itemprop>
+
+       link.elem.phrasing =
+               element link { link.inner & link.phrasing.attrs }
+       link.phrasing.attrs =
+               (       common.attrs.basic
+               &       common.attrs.i18n
+               &       common.attrs.present
+               &       common.attrs.other
+               &       common.attrs.microdata.itemprop
+               &       common.attrs.microdata.itemref?
+               &       common.attrs.microdata.itemscope?
+               &       common.attrs.microdata.itemtype?
+               &       common.attrs.microdata.itemid?
+               &       shared-hyperlink.attrs.href
+               &       shared-hyperlink.attrs.hreflang?
+               &       shared-hyperlink.attrs.media?
+               &       shared-hyperlink.attrs.type?
+               &       link.attrs.sizes?
+               #       link.attrs.title included in common.attrs
+               &       embedded.content.attrs.crossorigin?
+               &       (       common.attrs.aria.role.link
+                       |       common.attrs.aria.role.presentation
+                       |       common.attrs.aria.role.menuitem
+                       )?
+               )
+       common.elem.phrasing |= link.elem.phrasing
+
+## <link> element in head, extensions
+
+link.attrs.rel |= common.attrs.microdata.itemprop
+link.attrs &= common.attrs.microdata.itemref?
+link.attrs &= common.attrs.microdata.itemscope?
+link.attrs &= common.attrs.microdata.itemtype?
+link.attrs &= common.attrs.microdata.itemid?
+
+## Property Metadata: <meta itemprop>
+
+       meta.itemprop.elem =
+               element meta { meta.inner & meta.itemprop.attrs }
+       meta.itemprop.attrs =
+               (       common.attrs.basic
+               &       common.attrs.i18n
+               &       common.attrs.present
+               &       common.attrs.other
+               &       common.attrs.microdata.itemprop
+               &       common.attrs.microdata.itemref?
+               &       common.attrs.microdata.itemscope?
+               &       common.attrs.microdata.itemtype?
+               &       common.attrs.microdata.itemid?
+               &       meta.itemprop.attrs.content
+               &       (       common.attrs.aria.role.presentation
+                       |       common.attrs.aria.role.menuitem
+                       )?
+               )
+               meta.itemprop.attrs.content =
+                       attribute content {
+                               string
+                       }
+       common.elem.metadata |= meta.itemprop.elem
+       common.elem.phrasing |= meta.itemprop.elem