--- /dev/null
+# #####################################################################
+## 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
+ )?
+ )
+ 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.group
+ | 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.group
+ | 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