c3d2-web/html5-syntax/embed.rng

975 lines
28 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="img.elem">
<a:documentation> RELAX NG Schema for HTML 5: Embedded Content #</a:documentation>
<!-- ##################################################################### -->
<a:documentation>
Replaced Content</a:documentation>
<a:documentation>Images: &lt;img&gt;</a:documentation>
<element name="img">
<interleave>
<ref name="img.inner"/>
<ref name="img.attrs"/>
</interleave>
</element>
</define>
<define name="img.attrs">
<interleave>
<ref name="common.attrs"/>
<ref name="img.attrs.src"/>
<optional>
<ref name="img.attrs.alt"/>
</optional>
<optional>
<ref name="img.attrs.height"/>
</optional>
<optional>
<ref name="img.attrs.width"/>
</optional>
<optional>
<ref name="img.attrs.usemap"/>
</optional>
<optional>
<ref name="img.attrs.ismap"/>
</optional>
<optional>
<ref name="img.attrs.border"/>
</optional>
<optional>
<!-- obsolete -->
<ref name="common.attrs.aria"/>
</optional>
</interleave>
</define>
<define name="img.attrs.src">
<attribute name="src">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="img.attrs.alt">
<attribute name="alt"/>
</define>
<define name="img.attrs.height">
<attribute name="height">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="img.attrs.width">
<attribute name="width">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="img.attrs.usemap">
<attribute name="usemap">
<ref name="common.data.hash-name"/>
</attribute>
</define>
<define name="img.attrs.ismap">
<attribute name="ismap">
<choice>
<value type="string">ismap</value>
<value type="string"/>
</choice>
</attribute>
</define>
<define name="img.attrs.border">
<attribute name="border">
<ref name="common.data.zero"/>
</attribute>
</define>
<define name="img.inner">
<empty/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="img.elem"/>
</define>
<define name="embed.elem">
<a:documentation>Plug-ins: &lt;embed&gt;</a:documentation>
<element name="embed">
<interleave>
<ref name="embed.inner"/>
<ref name="embed.attrs"/>
</interleave>
</element>
</define>
<define name="embed.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="embed.attrs.src"/>
</optional>
<optional>
<ref name="embed.attrs.type"/>
</optional>
<optional>
<ref name="embed.attrs.height"/>
</optional>
<optional>
<ref name="embed.attrs.width"/>
</optional>
<zeroOrMore>
<ref name="embed.attrs.other"/>
</zeroOrMore>
</interleave>
</define>
<define name="embed.attrs.src">
<attribute name="src">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="embed.attrs.type">
<attribute name="type">
<ref name="common.data.mimetype"/>
</attribute>
</define>
<define name="embed.attrs.height">
<attribute name="height">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="embed.attrs.width">
<attribute name="width">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="embed.attrs.other">
<!-- REVISIT common.attrs -->
<attribute>
<nsName ns="">
<except>
<name>src</name>
<name>type</name>
<name>height</name>
<name>width</name>
<name>id</name>
<name>class</name>
<name>title</name>
<name>dir</name>
<name>lang</name>
<name>style</name>
<name>tabindex</name>
<name>contextmenu</name>
<name>contenteditable</name>
<name>draggable</name>
<name>hidden</name>
<name>onabort</name>
<name>onblur</name>
<name>oncanplay</name>
<name>oncanplaythrough</name>
<name>onchange</name>
<name>onclick</name>
<name>oncontextmenu</name>
<name>ondblclick</name>
<name>ondrag</name>
<name>ondragend</name>
<name>ondragenter</name>
<name>ondragleave</name>
<name>ondragover</name>
<name>ondragstart</name>
<name>ondrop</name>
<name>ondurationchange</name>
<name>onemptied</name>
<name>onended</name>
<name>onerror</name>
<name>onfocus</name>
<name>onformchange</name>
<name>onforminput</name>
<name>oninput</name>
<name>oninvalid</name>
<name>onkeydown</name>
<name>onkeypress</name>
<name>onkeyup</name>
<name>onload</name>
<name>onloadeddata</name>
<name>onloadedmetadata</name>
<name>onloadstart</name>
<name>onmousedown</name>
<name>onmousemove</name>
<name>onmouseout</name>
<name>onmouseover</name>
<name>onmouseup</name>
<name>onmousewheel</name>
<name>onpause</name>
<name>onplay</name>
<name>onplaying</name>
<name>onprogress</name>
<name>onratechange</name>
<name>onreadystatechange</name>
<name>onscroll</name>
<name>onseeked</name>
<name>onseeking</name>
<name>onselect</name>
<name>onshow</name>
<name>onstalled</name>
<name>onsubmit</name>
<name>onsuspend</name>
<name>ontimeupdate</name>
<name>onvolumechange</name>
<name>onwaiting</name>
<name>onafterprint</name>
<name>onbeforeprint</name>
<name>onbeforeunload</name>
<name>onhashchange</name>
<name>onmessage</name>
<name>onoffline</name>
<name>ononline</name>
<name>onpopstate</name>
<name>onredo</name>
<name>onresize</name>
<name>onstorage</name>
<name>onundo</name>
<name>onunload</name>
<name>role</name>
<name>aria-atomic</name>
<name>aria-busy</name>
<name>aria-controls</name>
<name>aria-describedby</name>
<name>aria-disabled</name>
<name>aria-dropeffect</name>
<name>aria-flowto</name>
<name>aria-grabbed</name>
<name>aria-haspopup</name>
<name>aria-hidden</name>
<name>aria-invalid</name>
<name>aria-label</name>
<name>aria-labelledby</name>
<name>aria-live</name>
<name>aria-owns</name>
<name>aria-relevant</name>
<name>aria-required</name>
<name>spellcheck</name>
<name>accesskey</name>
<name>itemref</name>
<name>itemprop</name>
<name>itemscope</name>
<name>itemtype</name>
<name>itemid</name>
<name>name</name>
<name>align</name>
</except>
</nsName>
<data type="string" datatypeLibrary=""/>
</attribute>
</define>
<define name="embed.inner">
<empty/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="embed.elem"/>
</define>
<define name="object.elem.flow">
<a:documentation>Generic Objects: &lt;object&gt;</a:documentation>
<element name="object">
<interleave>
<ref name="object.inner.flow"/>
<ref name="object.attrs"/>
</interleave>
</element>
</define>
<define name="object.elem.phrasing">
<element name="object">
<interleave>
<ref name="object.inner.phrasing"/>
<ref name="object.attrs"/>
</interleave>
</element>
</define>
<define name="object.attrs">
<interleave>
<ref name="common.attrs"/>
<choice>
<interleave>
<ref name="object.attrs.data"/>
<optional>
<ref name="object.attrs.type"/>
</optional>
</interleave>
<ref name="object.attrs.type"/>
</choice>
<optional>
<!--
& object.attrs.classid?
& object.attrs.codebase?
& object.attrs.codetype?
-->
<ref name="object.attrs.height"/>
</optional>
<optional>
<ref name="object.attrs.width"/>
</optional>
<optional>
<ref name="object.attrs.usemap"/>
</optional>
<optional>
<ref name="object.attrs.name"/>
</optional>
<optional>
<ref name="common-form.attrs.form"/>
</optional>
<optional>
<ref name="common.attrs.aria"/>
</optional>
</interleave>
</define>
<define name="object.attrs.data">
<attribute name="data">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="object.attrs.type">
<attribute name="type">
<ref name="common.data.mimetype"/>
</attribute>
</define>
<define name="object.attrs.height">
<attribute name="height">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="object.attrs.width">
<attribute name="width">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="object.attrs.usemap">
<attribute name="usemap">
<ref name="common.data.hash-name"/>
</attribute>
</define>
<define name="object.attrs.name">
<attribute name="name">
<ref name="common.data.browsing-context"/>
</attribute>
</define>
<define name="object.inner.flow">
<zeroOrMore>
<ref name="param.elem"/>
</zeroOrMore>
<ref name="common.inner.flow"/>
</define>
<define name="object.inner.phrasing">
<zeroOrMore>
<ref name="param.elem"/>
</zeroOrMore>
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="object.elem.flow"/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="object.elem.phrasing"/>
</define>
<define name="param.elem">
<a:documentation>Initialization Parameters: &lt;param&gt;</a:documentation>
<element name="param">
<interleave>
<ref name="param.inner"/>
<ref name="param.attrs"/>
</interleave>
</element>
</define>
<define name="param.attrs">
<interleave>
<ref name="common.attrs"/>
<ref name="param.attrs.name"/>
<ref name="param.attrs.value"/>
</interleave>
</define>
<define name="param.attrs.name">
<attribute name="name">
<data type="string" datatypeLibrary=""/>
</attribute>
</define>
<define name="param.attrs.value">
<attribute name="value">
<data type="string" datatypeLibrary=""/>
</attribute>
</define>
<define name="param.inner">
<empty/>
</define>
<define name="iframe.elem">
<a:documentation>Inline Frame: &lt;iframe&gt;</a:documentation>
<element name="iframe">
<interleave>
<ref name="iframe.inner"/>
<ref name="iframe.attrs"/>
</interleave>
</element>
</define>
<define name="iframe.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="iframe.attrs.src"/>
</optional>
<optional>
<ref name="iframe.attrs.name"/>
</optional>
<optional>
<ref name="iframe.attrs.width"/>
</optional>
<optional>
<ref name="iframe.attrs.height"/>
</optional>
<optional>
<ref name="iframe.attrs.sandbox"/>
</optional>
<optional>
<ref name="iframe.attrs.seamless"/>
</optional>
<optional>
<choice>
<ref name="common.attrs.aria"/>
<ref name="common.attrs.aria.implicit.region"/>
</choice>
</optional>
</interleave>
</define>
<define name="iframe.attrs.src">
<attribute name="src">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="iframe.attrs.name">
<attribute name="name">
<ref name="common.data.browsing-context"/>
</attribute>
</define>
<define name="iframe.attrs.height">
<attribute name="height">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="iframe.attrs.width">
<attribute name="width">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="iframe.attrs.seamless">
<interleave>
<attribute name="seamless">
<choice>
<value type="string">seamless</value>
<value type="string"/>
</choice>
</attribute>
<ref name="v5only"/>
</interleave>
</define>
<define name="iframe.attrs.sandbox">
<interleave>
<attribute name="sandbox">
<choice>
<list>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
</list>
<list>
<optional>
<value type="string">allow-scripts</value>
</optional>
<optional>
<value type="string">allow-forms</value>
</optional>
<optional>
<value type="string">allow-same-origin</value>
</optional>
<optional>
<value type="string">allow-top-navigation</value>
</optional>
</list>
</choice>
</attribute>
<ref name="v5only"/>
</interleave>
</define>
<define name="iframe.inner">
<text/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="iframe.elem"/>
</define>
<define name="map.elem.flow">
<a:documentation>
Image Maps</a:documentation>
<a:documentation>Map Definition: &lt;map&gt;</a:documentation>
<element name="map">
<interleave>
<ref name="map.inner.flow"/>
<ref name="map.attrs"/>
</interleave>
</element>
</define>
<define name="map.elem.phrasing">
<element name="map">
<interleave>
<ref name="map.inner.phrasing"/>
<ref name="map.attrs"/>
</interleave>
</element>
</define>
<define name="map.attrs">
<interleave>
<ref name="common.attrs"/>
<ref name="map.attrs.name"/>
</interleave>
</define>
<!-- REVISIT make id required in Schematron -->
<define name="map.attrs.name">
<attribute name="name">
<ref name="common.data.name"/>
</attribute>
</define>
<define name="map.inner.flow">
<ref name="common.inner.flow"/>
</define>
<define name="map.inner.phrasing">
<ref name="common.inner.phrasing"/>
</define>
<define name="common.elem.flow" combine="choice">
<ref name="map.elem.flow"/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="map.elem.phrasing"/>
</define>
<define name="area.elem">
<a:documentation>Map Area Definition: &lt;area&gt;</a:documentation>
<element name="area">
<interleave>
<ref name="area.inner"/>
<ref name="area.attrs"/>
</interleave>
</element>
</define>
<define name="area.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<interleave>
<ref name="area.attrs.alt"/>
<ref name="shared-hyperlink.attrs.href"/>
</interleave>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.target"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.ping"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.rel"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.media"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.hreflang"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.type"/>
</optional>
<optional>
<ref name="area.attrs.shape"/>
</optional>
</interleave>
</define>
<define name="area.attrs.alt">
<attribute name="alt"/>
</define>
<define name="area.attrs.shape">
<choice>
<interleave>
<optional>
<ref name="area.attrs.shape.rect"/>
</optional>
<ref name="area.attrs.coords.rect"/>
</interleave>
<interleave>
<ref name="area.attrs.shape.circle"/>
<ref name="area.attrs.coords.circle"/>
</interleave>
<interleave>
<ref name="area.attrs.shape.poly"/>
<ref name="area.attrs.coords.poly"/>
</interleave>
<ref name="area.attrs.shape.default"/>
</choice>
</define>
<define name="area.attrs.shape.rect">
<attribute name="shape">
<value type="string">rect</value>
</attribute>
</define>
<define name="area.attrs.coords.rect">
<attribute name="coords">
<data type="token"/>
<!--
xsd:token {
pattern = "-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+"
}
-->
</attribute>
</define>
<define name="area.attrs.shape.circle">
<attribute name="shape">
<value type="string">circle</value>
</attribute>
</define>
<define name="area.attrs.coords.circle">
<attribute name="coords">
<data type="token"/>
<!--
xsd:token {
pattern = "-?[0-9]+,-?[0-9]+,[0-9]+"
}
-->
</attribute>
</define>
<define name="area.attrs.shape.poly">
<attribute name="shape">
<value type="string">poly</value>
</attribute>
</define>
<define name="area.attrs.coords.poly">
<attribute name="coords">
<data type="token"/>
<!--
xsd:token {
pattern = "-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+(,-?[0-9]+,-?[0-9]+)*"
}
-->
</attribute>
</define>
<define name="area.attrs.shape.default">
<attribute name="shape">
<value type="string">default</value>
</attribute>
</define>
<define name="area.inner">
<empty/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="area.elem"/>
</define>
</grammar>