| datatypes w = "http://whattf.org/datatype-draft" |
| |
| # ##################################################################### |
| ## RELAX NG Schema for HTML 5: Basic Prose Markup # |
| # ##################################################################### |
| |
| # ##################################################################### |
| ## Paragraph-Level |
| |
| ## Paragraph: <p> |
| |
| p.elem = |
| element p { p.inner & p.attrs } |
| p.attrs = |
| ( common.attrs |
| & common.attrs.aria? |
| ) |
| p.inner = |
| ( common.inner.phrasing ) # REVISIT lists in span? |
| |
| common.elem.flow |= p.elem |
| |
| ## Hint Transition: <hr> |
| |
| hr.elem = |
| element hr { hr.inner & hr.attrs } |
| hr.attrs = |
| ( common.attrs |
| & ( common.attrs.aria.role.separator |
| | common.attrs.aria.role.presentation |
| | common.attrs.aria.role.menuitem |
| )? |
| ) |
| hr.inner = |
| ( empty ) |
| |
| common.elem.flow |= hr.elem |
| |
| # ##################################################################### |
| ## Preformatting Blocks |
| |
| ## Preformatted Text: <pre> |
| |
| pre.elem = |
| element pre { pre.inner & pre.attrs } |
| pre.attrs = |
| ( common.attrs |
| & common.attrs.aria? |
| ) |
| pre.inner = |
| ( common.inner.phrasing ) |
| |
| common.elem.flow |= pre.elem |
| |
| # ##################################################################### |
| ## Simple Lists |
| |
| ## Unordered List: <ul> |
| |
| ul.elem = |
| element ul { ul.inner & ul.attrs } |
| ul.attrs = |
| ( common.attrs |
| & ( ( common.attrs.aria.role.directory |
| | common.attrs.aria.role.group |
| | common.attrs.aria.role.list |
| | common.attrs.aria.role.listbox |
| | common.attrs.aria.role.menu |
| | common.attrs.aria.role.menubar |
| | common.attrs.aria.role.tablist |
| | common.attrs.aria.role.toolbar |
| | common.attrs.aria.role.tree |
| | common.attrs.aria.role.presentation |
| ) |
| | common.attrs.aria.implicit.list |
| )? |
| ) |
| ul.inner = |
| ( li.elem* |
| & common.elem.script-supporting* |
| ) |
| |
| common.elem.flow |= ul.elem |
| |
| ## Unordered List Item: <li> |
| |
| li.elem = |
| element li { li.inner & li.attrs } |
| li.attrs = |
| ( common.attrs |
| & ( common.attrs.aria.implicit.listitem |
| | common.attrs.aria.role.listitem |
| | common.attrs.aria.role.menuitem |
| | common.attrs.aria.role.menuitemcheckbox |
| | common.attrs.aria.role.menuitemradio |
| | common.attrs.aria.role.option |
| | common.attrs.aria.role.tab |
| | common.attrs.aria.role.treeitem |
| | common.attrs.aria.role.presentation |
| )? |
| ) |
| li.inner = |
| ( common.inner.flow ) |
| |
| ## Ordered List: <ol> |
| |
| ol.elem = |
| element ol { ol.inner & ol.attrs } |
| ol.attrs = |
| ( common.attrs |
| & ol.attrs.start? |
| & ol.attrs.reversed? |
| & ol.attrs.type? |
| & ( ( common.attrs.aria.role.directory |
| | common.attrs.aria.role.group |
| | common.attrs.aria.role.list |
| | common.attrs.aria.role.listbox |
| | common.attrs.aria.role.menu |
| | common.attrs.aria.role.menubar |
| | common.attrs.aria.role.tablist |
| | common.attrs.aria.role.toolbar |
| | common.attrs.aria.role.tree |
| | common.attrs.aria.role.presentation |
| ) |
| | common.attrs.aria.implicit.list |
| )? |
| ) |
| ol.attrs.start = |
| attribute start { |
| common.data.integer |
| } |
| ol.attrs.reversed = |
| attribute reversed { |
| w:string "reversed" | w:string "" |
| } |
| ol.attrs.type = |
| attribute type { |
| w:string "1" | w:string "a" | w:string "A" | w:string "i" | w:string "I" |
| } |
| ol.inner = |
| ( oli.elem* |
| & common.elem.script-supporting* |
| ) |
| |
| common.elem.flow |= ol.elem |
| |
| ## Ordered List Item: <li> |
| |
| oli.elem = |
| element li { oli.inner & oli.attrs } |
| oli.attrs = |
| ( common.attrs |
| & oli.attrs.value? |
| & ( common.attrs.aria.implicit.listitem |
| | common.attrs.aria.role.listitem |
| | common.attrs.aria.role.menuitemcheckbox |
| | common.attrs.aria.role.menuitemradio |
| | common.attrs.aria.role.option |
| | common.attrs.aria.role.treeitem |
| | common.attrs.aria.role.presentation |
| )? |
| ) |
| oli.attrs.value = |
| attribute value { |
| common.data.integer |
| } |
| oli.inner = |
| ( common.inner.flow ) |
| |
| # ##################################################################### |
| ## Definition Lists |
| |
| ## Definition List: <dl> |
| |
| dl.elem = |
| element dl { dl.inner & dl.attrs } |
| dl.attrs = |
| ( common.attrs |
| & common.attrs.aria? |
| ) |
| dl.inner = |
| ( ( ( dt.elem |
| & common.elem.script-supporting* |
| )+ |
| , |
| ( dd.elem |
| & common.elem.script-supporting* |
| )+ |
| )* |
| ) |
| |
| common.elem.flow |= dl.elem |
| |
| ## Definition Term: <dt> |
| |
| dt.elem = |
| element dt { dt.inner & dt.attrs } |
| dt.attrs = |
| ( common.attrs |
| & common.attrs.aria? |
| ) |
| dt.inner = |
| ( common.inner.flow ) |
| |
| ## Definition Description: <dd> |
| |
| dd.elem = |
| element dd { dd.inner & dd.attrs } |
| dd.elem.phrasing = |
| element dd { dd.inner.phrasing & dd.attrs } |
| dd.attrs = |
| ( common.attrs |
| & common.attrs.aria? |
| ) |
| dd.inner = |
| ( common.inner.flow ) |
| dd.inner.phrasing = |
| ( common.inner.phrasing ) |
| |
| # ##################################################################### |
| ## Miscellaneous Elements |
| |
| ## Generic Container: <div> |
| |
| div.elem = |
| element div { div.inner & div.attrs } |
| div.attrs = |
| ( common.attrs |
| & common.attrs.aria? |
| ) |
| div.inner = |
| ( common.inner.flow ) |
| |
| common.elem.flow |= div.elem |
| |
| ## Title or Explanatory Caption: <legend> |
| |
| legend.elem = |
| element legend { legend.inner & legend.attrs } |
| legend.attrs = |
| ( common.attrs |
| & ( common.attrs.aria.role.presentation |
| | common.attrs.aria.role.menuitem |
| )? |
| ) |
| legend.inner = |
| ( common.inner.phrasing ) |