c3d2-web/html5-syntax/sectional.rng

237 lines
6.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0">
<!-- ##################################################################### -->
<define name="h1.elem">
<a:documentation> RELAX NG Schema for HTML 5: Sectioning Markup #</a:documentation>
<!-- ##################################################################### -->
<!-- ##################################################################### -->
<a:documentation>Headings</a:documentation>
<a:documentation>Heading (Rank 1): &lt;h1&gt;</a:documentation>
<element name="h1">
<interleave>
<ref name="h1.inner"/>
<ref name="h1.attrs"/>
</interleave>
</element>
</define>
<define name="h1.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="h1.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="h1.elem"/>
</define>
<define name="h2.elem">
<a:documentation>Heading (Rank 2): &lt;h2&gt;</a:documentation>
<element name="h2">
<interleave>
<ref name="h2.inner"/>
<ref name="h2.attrs"/>
</interleave>
</element>
</define>
<define name="h2.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="h2.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="h2.elem"/>
</define>
<define name="h3.elem">
<a:documentation>Heading (Rank 3): &lt;h3&gt;</a:documentation>
<element name="h3">
<interleave>
<ref name="h3.inner"/>
<ref name="h3.attrs"/>
</interleave>
</element>
</define>
<define name="h3.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="h3.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="h3.elem"/>
</define>
<define name="h4.elem">
<a:documentation>Heading (Rank 4): &lt;h4&gt;</a:documentation>
<element name="h4">
<interleave>
<ref name="h4.inner"/>
<ref name="h4.attrs"/>
</interleave>
</element>
</define>
<define name="h4.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="h4.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="h4.elem"/>
</define>
<define name="h5.elem">
<a:documentation>Heading (Rank 5): &lt;h5&gt;</a:documentation>
<element name="h5">
<interleave>
<ref name="h5.inner"/>
<ref name="h5.attrs"/>
</interleave>
</element>
</define>
<define name="h5.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="h5.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="h5.elem"/>
</define>
<define name="h6.elem">
<a:documentation>Heading (Rank 6): &lt;h6&gt;</a:documentation>
<element name="h6">
<interleave>
<ref name="h6.inner"/>
<ref name="h6.attrs"/>
</interleave>
</element>
</define>
<define name="h6.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="h6.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="h6.elem"/>
</define>
<define name="hgroup.elem">
<a:documentation>Heading Group: &lt;hgroup&gt;</a:documentation>
<element name="hgroup">
<interleave>
<ref name="hgroup.inner"/>
<ref name="hgroup.attrs"/>
</interleave>
</element>
</define>
<define name="hgroup.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.structure"/>
</optional>
</interleave>
</define>
<define name="hgroup.inner">
<oneOrMore>
<choice>
<ref name="h1.elem"/>
<ref name="h2.elem"/>
<ref name="h3.elem"/>
<ref name="h4.elem"/>
<ref name="h5.elem"/>
<ref name="h6.elem"/>
</choice>
</oneOrMore>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="hgroup.elem"/>
</define>
<!-- ##################################################################### -->
<define name="address.elem">
<a:documentation>Section Meta</a:documentation>
<a:documentation>Contact Info: &lt;address&gt;</a:documentation>
<element name="address">
<interleave>
<ref name="address.inner"/>
<ref name="address.attrs"/>
</interleave>
</element>
</define>
<define name="address.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria.implicit.region"/>
</optional>
</interleave>
</define>
<define name="address.inner">
<ref name="common.inner.flow"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="address.elem"/>
</define>
<!-- ##################################################################### -->
<define name="blockquote.elem">
<a:documentation>Quotations </a:documentation>
<a:documentation>Block Quotes: &lt;blockquote&gt;</a:documentation>
<element name="blockquote">
<interleave>
<ref name="blockquote.inner"/>
<ref name="blockquote.attrs"/>
</interleave>
</element>
</define>
<define name="blockquote.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="blockquote.attrs.cite"/>
</optional>
<optional>
<ref name="common.attrs.aria"/>
</optional>
</interleave>
</define>
<define name="blockquote.attrs.cite">
<attribute name="cite">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="blockquote.inner">
<ref name="common.inner.flow"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="blockquote.elem"/>
</define>
</grammar>