relaxng.microdata.rnc Maven / Gradle / Ivy
The newest version!
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 {
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.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
& ( common.attrs.aria.role.link
| common.attrs.aria.role.presentation
| common.attrs.aria.role.menuitem
)?
)
common.elem.phrasing |= link.elem.phrasing
## 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.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