561 lines
15 KiB
XML
561 lines
15 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="a.elem.phrasing">
|
|
<a:documentation> RELAX NG Schema for HTML 5: Phrase Markup #</a:documentation>
|
|
<!-- ##################################################################### -->
|
|
<a:documentation>Contextual Hyperlink: <a></a:documentation>
|
|
<element name="a">
|
|
<interleave>
|
|
<ref name="a.inner.phrasing"/>
|
|
<ref name="a.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="a.elem.flow">
|
|
<element name="a">
|
|
<interleave>
|
|
<ref name="a.inner.flow"/>
|
|
<ref name="a.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="a.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="a.attrs.name"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.href"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.target"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.rel"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.hreflang"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.media"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.type"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-hyperlink.attrs.ping"/>
|
|
</optional>
|
|
<optional>
|
|
<choice>
|
|
<ref name="common.attrs.aria"/>
|
|
<ref name="common.attrs.aria.implicit.link"/>
|
|
</choice>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="a.attrs.name">
|
|
<attribute name="name">
|
|
<ref name="common.data.id"/>
|
|
<!-- XXX not what the spec says -->
|
|
</attribute>
|
|
</define>
|
|
<define name="a.inner.phrasing">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="a.inner.flow">
|
|
<ref name="common.inner.flow"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="a.elem.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.flow" combine="choice">
|
|
<ref name="a.elem.flow"/>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.href">
|
|
<a:documentation>Shared hyperlink attributes</a:documentation>
|
|
<attribute name="href">
|
|
<ref name="common.data.uri"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.target">
|
|
<attribute name="target">
|
|
<ref name="common.data.browsing-context-or-keyword"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.rel">
|
|
<attribute name="rel">
|
|
<ref name="common.data.tokens"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.hreflang">
|
|
<attribute name="hreflang">
|
|
<ref name="common.data.langcode"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.media">
|
|
<attribute name="media">
|
|
<ref name="common.data.mediaquery"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.type">
|
|
<attribute name="type">
|
|
<ref name="common.data.mimetype"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-hyperlink.attrs.ping">
|
|
<interleave>
|
|
<attribute name="ping">
|
|
<ref name="common.data.uris"/>
|
|
</attribute>
|
|
<ref name="v5only"/>
|
|
</interleave>
|
|
</define>
|
|
<define name="em.elem">
|
|
<a:documentation>Emphatic Stress: <em></a:documentation>
|
|
<element name="em">
|
|
<interleave>
|
|
<ref name="em.inner"/>
|
|
<ref name="em.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="em.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="em.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="em.elem"/>
|
|
</define>
|
|
<define name="strong.elem">
|
|
<a:documentation>Strong Importance: <strong></a:documentation>
|
|
<element name="strong">
|
|
<interleave>
|
|
<ref name="strong.inner"/>
|
|
<ref name="strong.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="strong.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="strong.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="strong.elem"/>
|
|
</define>
|
|
<define name="small.elem">
|
|
<a:documentation>Small Print and Side Comments: <small></a:documentation>
|
|
<element name="small">
|
|
<interleave>
|
|
<ref name="small.inner"/>
|
|
<ref name="small.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="small.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="small.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="small.elem"/>
|
|
</define>
|
|
<define name="mark.elem">
|
|
<a:documentation>Marked (Highlighted) Text: <mark></a:documentation>
|
|
<interleave>
|
|
<element name="mark">
|
|
<interleave>
|
|
<ref name="mark.inner"/>
|
|
<ref name="mark.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
<ref name="v5only"/>
|
|
</interleave>
|
|
</define>
|
|
<define name="mark.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<define name="mark.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="mark.elem"/>
|
|
</define>
|
|
<define name="abbr.elem">
|
|
<a:documentation>Abbreviation: <abbr></a:documentation>
|
|
<element name="abbr">
|
|
<interleave>
|
|
<ref name="abbr.inner"/>
|
|
<ref name="abbr.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="abbr.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<!-- abbr.attrs.title included in common.attrs -->
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="abbr.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="abbr.elem"/>
|
|
</define>
|
|
<define name="dfn.elem">
|
|
<a:documentation>Defining Instance: <dfn></a:documentation>
|
|
<element name="dfn">
|
|
<interleave>
|
|
<ref name="dfn.inner"/>
|
|
<ref name="dfn.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="dfn.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<!-- dfn.attrs.title included in common.attrs -->
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="dfn.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="dfn.elem"/>
|
|
</define>
|
|
<define name="i.elem">
|
|
<a:documentation>Italic: <i></a:documentation>
|
|
<element name="i">
|
|
<interleave>
|
|
<ref name="i.inner"/>
|
|
<ref name="i.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="i.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="i.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="i.elem"/>
|
|
</define>
|
|
<define name="b.elem">
|
|
<a:documentation>Bold: <b></a:documentation>
|
|
<element name="b">
|
|
<interleave>
|
|
<ref name="b.inner"/>
|
|
<ref name="b.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="b.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="b.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="b.elem"/>
|
|
</define>
|
|
<define name="code.elem">
|
|
<a:documentation>Code Fragment: <code></a:documentation>
|
|
<element name="code">
|
|
<interleave>
|
|
<ref name="code.inner"/>
|
|
<ref name="code.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="code.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="code.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="code.elem"/>
|
|
</define>
|
|
<define name="var.elem">
|
|
<a:documentation>Variable or Placeholder: <var></a:documentation>
|
|
<element name="var">
|
|
<interleave>
|
|
<ref name="var.inner"/>
|
|
<ref name="var.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="var.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="var.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="var.elem"/>
|
|
</define>
|
|
<define name="samp.elem">
|
|
<a:documentation>(Sample) Output: <samp></a:documentation>
|
|
<element name="samp">
|
|
<interleave>
|
|
<ref name="samp.inner"/>
|
|
<ref name="samp.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="samp.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="samp.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="samp.elem"/>
|
|
</define>
|
|
<define name="kbd.elem">
|
|
<a:documentation>User Input: <kbd></a:documentation>
|
|
<element name="kbd">
|
|
<interleave>
|
|
<ref name="kbd.inner"/>
|
|
<ref name="kbd.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="kbd.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="kbd.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="kbd.elem"/>
|
|
</define>
|
|
<define name="sup.elem">
|
|
<a:documentation>Superscript: <sup></a:documentation>
|
|
<element name="sup">
|
|
<interleave>
|
|
<ref name="sup.inner"/>
|
|
<ref name="sup.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="sup.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<define name="sup.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="sup.elem"/>
|
|
</define>
|
|
<define name="sub.elem">
|
|
<a:documentation>Subscript: <sub></a:documentation>
|
|
<element name="sub">
|
|
<interleave>
|
|
<ref name="sub.inner"/>
|
|
<ref name="sub.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="sub.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<define name="sub.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="sub.elem"/>
|
|
</define>
|
|
<define name="q.elem">
|
|
<a:documentation>Quotation: <q></a:documentation>
|
|
<element name="q">
|
|
<interleave>
|
|
<ref name="q.inner"/>
|
|
<ref name="q.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="q.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="q.attrs.cite"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="q.attrs.cite">
|
|
<attribute name="cite">
|
|
<ref name="common.data.uri"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="q.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="q.elem"/>
|
|
</define>
|
|
<define name="cite.elem">
|
|
<a:documentation>Title of Work: <cite></a:documentation>
|
|
<element name="cite">
|
|
<interleave>
|
|
<ref name="cite.inner"/>
|
|
<ref name="cite.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="cite.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="cite.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="cite.elem"/>
|
|
</define>
|
|
<define name="span.elem">
|
|
<a:documentation>Generic Span: <span></a:documentation>
|
|
<element name="span">
|
|
<interleave>
|
|
<ref name="span.inner"/>
|
|
<ref name="span.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="span.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common.attrs.aria"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="span.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<!-- REVISIT allow ol and ul? -->
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="span.elem"/>
|
|
</define>
|
|
<define name="bdo.elem">
|
|
<a:documentation>Bidirectional Override: <bdo></a:documentation>
|
|
<element name="bdo">
|
|
<interleave>
|
|
<ref name="bdo.inner"/>
|
|
<ref name="bdo.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="bdo.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<!-- dir required in Schematron -->
|
|
<define name="bdo.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="bdo.elem"/>
|
|
</define>
|
|
<define name="br.elem">
|
|
<a:documentation>Line Break: <br></a:documentation>
|
|
<element name="br">
|
|
<interleave>
|
|
<ref name="br.inner"/>
|
|
<ref name="br.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="br.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<define name="br.inner">
|
|
<empty/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="br.elem"/>
|
|
</define>
|
|
<define name="wbr.elem">
|
|
<a:documentation>Line-break opportunity: <wbr></a:documentation>
|
|
<element name="wbr">
|
|
<interleave>
|
|
<ref name="wbr.inner"/>
|
|
<ref name="wbr.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="wbr.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<define name="wbr.inner">
|
|
<empty/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="wbr.elem"/>
|
|
</define>
|
|
</grammar>
|