--- /dev/null
+# #####################################################################
+## RELAX NG Schema for HTML 5: Sectioning Markup #
+# #####################################################################
+
+# #####################################################################
+## Headings
+
+## Heading (Rank 1): <h1>
+
+ h1.elem =
+ element h1 { h1.inner & h1.attrs }
+ h1.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ h1.inner =
+ ( common.inner.phrasing )
+
+ common.elem.flow |= h1.elem
+
+## Heading (Rank 2): <h2>
+
+ h2.elem =
+ element h2 { h2.inner & h2.attrs }
+ h2.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ h2.inner =
+ ( common.inner.phrasing )
+
+ common.elem.flow |= h2.elem
+
+## Heading (Rank 3): <h3>
+
+ h3.elem =
+ element h3 { h3.inner & h3.attrs }
+ h3.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ h3.inner =
+ ( common.inner.phrasing )
+
+ common.elem.flow |= h3.elem
+
+## Heading (Rank 4): <h4>
+
+ h4.elem =
+ element h4 { h4.inner & h4.attrs }
+ h4.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ h4.inner =
+ ( common.inner.phrasing )
+
+ common.elem.flow |= h4.elem
+
+## Heading (Rank 5): <h5>
+
+ h5.elem =
+ element h5 { h5.inner & h5.attrs }
+ h5.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ h5.inner =
+ ( common.inner.phrasing )
+
+ common.elem.flow |= h5.elem
+
+## Heading (Rank 6): <h6>
+
+ h6.elem =
+ element h6 { h6.inner & h6.attrs }
+ h6.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ h6.inner =
+ ( common.inner.phrasing )
+
+ common.elem.flow |= h6.elem
+
+## Heading Group: <hgroup>
+
+ hgroup.elem =
+ element hgroup { hgroup.inner & hgroup.attrs } & nonW3C
+ hgroup.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.heading
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ hgroup.inner =
+ ( ( h1.elem
+ | h2.elem
+ | h3.elem
+ | h4.elem
+ | h5.elem
+ | h6.elem
+ )
+ & common.elem.script-supporting*
+ )+
+
+ common.elem.flow |= hgroup.elem
+
+# #####################################################################
+## Section Meta
+
+## Contact Info: <address>
+
+ address.elem =
+ element address { address.inner & address.attrs }
+ address.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.role.contentinfo
+ | common.attrs.aria.role.presentation
+ )?
+ )
+ address.inner =
+ ( common.inner.flow )
+
+ common.elem.flow |= address.elem
+
+# #####################################################################
+## Quotations
+
+## Block Quotes: <blockquote>
+
+ blockquote.elem =
+ element blockquote { blockquote.inner & blockquote.attrs }
+ blockquote.attrs =
+ ( common.attrs
+ & blockquote.attrs.cite?
+ & common.attrs.aria?
+ )
+ blockquote.attrs.cite =
+ attribute cite {
+ common.data.uri
+ }
+ blockquote.inner =
+ ( common.inner.flow )
+
+ common.elem.flow |= blockquote.elem