| datatypes w = "http://whattf.org/datatype-draft" |
| |
| # ##################################################################### |
| ## RELAX NG Schema for HTML 5: Static Data Markup # |
| # ##################################################################### |
| |
| ## Time: <time> |
| |
| time.elem = |
| element time { time.inner & time.attrs } |
| time.attrs = |
| ( common.attrs |
| & time.attrs.datetime? |
| & ( common.attrs.aria.role.presentation |
| | common.attrs.aria.role.menuitem |
| )? |
| ) |
| time.attrs.datetime = |
| attribute datetime { |
| common.data.time-datetime |
| } |
| time.attrs.datetime.dateonly = |
| attribute datetime { |
| common.data.date |
| } |
| time.attrs.datetime.tz = |
| attribute datetime { |
| common.data.datetime |
| } |
| time.inner = |
| ( common.inner.phrasing ) #Cannot enforce textContent format here |
| |
| common.elem.phrasing |= time.elem |
| |
| ## Data: <data> |
| |
| data.elem = |
| element data { data.inner & data.attrs } |
| data.attrs = |
| ( common.attrs |
| & data.attrs.value |
| & ( common.attrs.aria.role.presentation |
| | common.attrs.aria.role.menuitem |
| )? |
| ) |
| data.attrs.value = |
| attribute value { |
| string |
| } |
| data.inner = |
| ( common.inner.phrasing ) |
| |
| common.elem.phrasing |= data.elem |
| |
| ## Scalar Gauge: <meter> |
| |
| meter.elem = |
| element meter { meter.inner & meter.attrs } |
| meter.attrs = |
| ( common.attrs |
| & meter.attrs.value |
| & meter.attrs.min? |
| & meter.attrs.low? |
| & meter.attrs.high? |
| & meter.attrs.max? |
| & meter.attrs.optimum? |
| & ( common.attrs.aria.role.presentation |
| | common.attrs.aria.role.menuitem |
| )? |
| ) |
| meter.attrs.value = |
| attribute value { |
| common.data.float |
| } |
| meter.attrs.min = |
| attribute min { |
| common.data.float |
| } |
| meter.attrs.low = |
| attribute low { |
| common.data.float |
| } |
| meter.attrs.high = |
| attribute high { |
| common.data.float |
| } |
| meter.attrs.max = |
| attribute max { |
| common.data.float |
| } |
| meter.attrs.optimum = |
| attribute optimum { |
| common.data.float |
| } |
| meter.inner = |
| ( common.inner.phrasing ) #Cannot enforce textContent format here |
| |
| common.elem.phrasing |= meter.elem |