# #####################################################################
##  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.region
			|	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.region
			|	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.region
			|	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.region
			|	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.region
			|	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.region
		  	|	common.attrs.aria.landmark.main
		  	)?
		)
	main.inner =
		( common.inner.flow )

	common.elem.flow |= main.elem
