blob: 9e72b5f140640404ff83512b305d6bf8126695ac [file] [log] [blame]
# #####################################################################
## RELAX NG Schema for HTML 5: Block Markup Added in HTML5 #
# #####################################################################
## Section: <section>
section.elem =
element section { section.inner & section.attrs }
section.attrs =
( common.attrs
& ( common.attrs.aria.implicit.region
| common.attrs.aria.role.alert
| common.attrs.aria.role.alertdialog
| common.attrs.aria.role.contentinfo
| common.attrs.aria.role.dialog
| common.attrs.aria.role.log
| common.attrs.aria.role.marquee
| common.attrs.aria.role.region
| common.attrs.aria.role.status
| common.attrs.aria.role.presentation
| common.attrs.aria.landmark.application
| common.attrs.aria.landmark.document
| common.attrs.aria.landmark.main
| common.attrs.aria.landmark.search
)?
)
section.inner =
( common.inner.flow )
common.elem.flow |= section.elem
## Navigational Links: <nav>
nav.elem =
element nav { nav.inner & nav.attrs }
nav.attrs =
( common.attrs
& ( common.attrs.aria.implicit.navigation
| common.attrs.aria.landmark.navigation
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.presentation
)?
)
nav.inner =
( common.inner.flow )
common.elem.flow |= nav.elem
## Article: <article>
article.elem =
element article { article.inner & article.attrs }
article.attrs =
( common.attrs
& ( common.attrs.aria.implicit.article
| common.attrs.aria.landmark.article
| common.attrs.aria.landmark.document
| common.attrs.aria.landmark.application
| common.attrs.aria.landmark.main
| common.attrs.aria.role.presentation
)?
)
article.inner =
( style.elem*
, common.inner.flow
)
common.elem.flow |= article.elem
## Tangential Aside: <aside>
aside.elem =
element aside { aside.inner & aside.attrs }
aside.attrs =
( common.attrs
& ( common.attrs.aria.implicit.complementary
| common.attrs.aria.landmark.note
| common.attrs.aria.landmark.complementary
| common.attrs.aria.landmark.search
| common.attrs.aria.role.presentation
)?
)
aside.inner =
( style.elem*
, common.inner.flow
)
common.elem.flow |= aside.elem
## Header: <header>
header.elem =
element header { header.inner & header.attrs }
header.attrs =
( common.attrs
& ( common.attrs.aria.implicit.banner
| common.attrs.aria.landmark.banner
| common.attrs.aria.role.presentation
)?
)
header.inner =
( common.inner.flow )
common.elem.flow |= header.elem
## Footer: <footer>
footer.elem =
element footer { footer.inner & footer.attrs }
footer.attrs =
( common.attrs
& ( common.attrs.aria.implicit.contentinfo
| common.attrs.aria.landmark.contentinfo
| common.attrs.aria.role.presentation
)?
)
footer.inner =
( common.inner.flow )
common.elem.flow |= footer.elem
## main content: <main>
main.elem =
element main { main.inner & main.attrs }
main.attrs =
( common.attrs
& ( common.attrs.aria.implicit.main
| common.attrs.aria.landmark.main
)?
)
main.inner =
( common.inner.flow )
common.elem.flow |= main.elem