1348 lines
39 KiB
XML
1348 lines
39 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" datatypeLibrary="http://whattf.org/datatype-draft">
|
|
<!-- ##################################################################### -->
|
|
<define name="common-form.attrs" combine="interleave">
|
|
<a:documentation> RELAX NG Schema for HTML 5: Web Forms 2.0 markup #</a:documentation>
|
|
<!-- ##################################################################### -->
|
|
<a:documentation>Shared attributes for form controls</a:documentation>
|
|
<optional>
|
|
<ref name="common-form.attrs.form"/>
|
|
</optional>
|
|
</define>
|
|
<define name="common-form.attrs.form" combine="choice">
|
|
<attribute name="form">
|
|
<ref name="common.data.idref"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.formaction">
|
|
<attribute name="formaction">
|
|
<ref name="common.data.uri"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.formenctype">
|
|
<attribute name="formenctype">
|
|
<ref name="shared-form.attrs.formenctype.data"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.formenctype.data">
|
|
<choice>
|
|
<value type="string">application/x-www-form-urlencoded</value>
|
|
<value type="string">multipart/form-data</value>
|
|
<value type="string">text/plain</value>
|
|
</choice>
|
|
</define>
|
|
<define name="shared-form.attrs.formmethod">
|
|
<attribute name="formmethod">
|
|
<ref name="shared-form.attrs.formmethod.data"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.formmethod.data">
|
|
<choice>
|
|
<value type="string">get</value>
|
|
<value type="string">post</value>
|
|
<value type="string">put</value>
|
|
<value type="string">delete</value>
|
|
</choice>
|
|
</define>
|
|
<define name="shared-form.attrs.formtarget">
|
|
<attribute name="formtarget">
|
|
<ref name="common.data.browsing-context-or-keyword"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.formnovalidate">
|
|
<attribute name="formnovalidate">
|
|
<choice>
|
|
<value type="string">formnovalidate</value>
|
|
<value type="string"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.autofocus">
|
|
<attribute name="autofocus">
|
|
<choice>
|
|
<value type="string">autofocus</value>
|
|
<value type="string"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.pattern">
|
|
<attribute name="pattern">
|
|
<ref name="form.data.pattern"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.template">
|
|
<attribute name="template">
|
|
<ref name="common.data.idref"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.required">
|
|
<attribute name="required">
|
|
<choice>
|
|
<value type="string">required</value>
|
|
<value type="string"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="shared-form.attrs.placeholder">
|
|
<attribute name="placeholder">
|
|
<data type="string" datatypeLibrary=""/>
|
|
<!-- FIXME line breaks -->
|
|
</attribute>
|
|
</define>
|
|
<define name="input.attrs.autocomplete">
|
|
<a:documentation>Shared attributes for <input></a:documentation>
|
|
<attribute name="autocomplete">
|
|
<choice>
|
|
<value type="string">on</value>
|
|
<value type="string">off</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.attrs.list">
|
|
<attribute name="list">
|
|
<ref name="common.data.idref"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.attrs.step.float">
|
|
<attribute name="step">
|
|
<choice>
|
|
<value type="string">any</value>
|
|
<ref name="common.data.float.positive"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.attrs.step.integer">
|
|
<attribute name="step">
|
|
<choice>
|
|
<value type="string">any</value>
|
|
<ref name="common.data.integer.positive"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.attrs.multiple">
|
|
<attribute name="multiple">
|
|
<choice>
|
|
<value type="string">multiple</value>
|
|
<value type="string"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.text.attrs" combine="interleave">
|
|
<a:documentation>Text Field: <input type='text'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.pattern"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.password.attrs" combine="interleave">
|
|
<a:documentation>Password Field: <input type='password'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.pattern"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.checkbox.attrs" combine="interleave">
|
|
<a:documentation>Checkbox <input type='checkbox'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.radio.attrs" combine="interleave">
|
|
<a:documentation>Radiobutton: <input type='radio'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.button.attrs" combine="interleave">
|
|
<a:documentation>Scripting Hook Button: <input type='button'>, Extensions</a:documentation>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
</define>
|
|
<define name="input.submit.attrs" combine="interleave">
|
|
<a:documentation>Submit Button: <input type='submit'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formaction"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formenctype"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formmethod"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formtarget"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formnovalidate"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.reset.attrs" combine="interleave">
|
|
<a:documentation>Reset Button: <input type='reset'>, Extensions</a:documentation>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
</define>
|
|
<define name="input.file.attrs" combine="interleave">
|
|
<a:documentation>File Upload: <input type='file'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.multiple"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.image.attrs" combine="interleave">
|
|
<a:documentation>Image Submit Button: <input type='image'>, Extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formaction"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formenctype"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formmethod"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formtarget"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formnovalidate"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.image.attrs.height"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.image.attrs.width"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.image.attrs.height">
|
|
<attribute name="height">
|
|
<ref name="common.data.integer.non-negative"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.image.attrs.width">
|
|
<attribute name="width">
|
|
<ref name="common.data.integer.non-negative"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime.elem">
|
|
<a:documentation>Global Date and Time: <input type='datetime'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.datetime.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.datetime.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.datetime.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.datetime.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.datetime.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.float"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.datetime.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.datetime.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">datetime</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="common.data.datetime"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="common.data.datetime"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="common.data.datetime"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.datetime.elem"/>
|
|
</define>
|
|
<define name="input.datetime-local.elem">
|
|
<a:documentation>Date and Time with No Time Zone Information: <input type='datetime-local'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.datetime-local.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.datetime-local.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.datetime-local.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.datetime-local.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.datetime-local.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.float"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.datetime-local.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.datetime-local.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">datetime-local</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime-local.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="form.data.datetime-local"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime-local.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="form.data.datetime-local"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.datetime-local.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="form.data.datetime-local"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.datetime-local.elem"/>
|
|
</define>
|
|
<define name="input.date.elem">
|
|
<a:documentation>Date: <input type='date'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.date.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.date.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.date.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.date.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.date.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.integer"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.date.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.date.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">date</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.date.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="form.data.date"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.date.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="form.data.date"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.date.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="form.data.date"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.date.elem"/>
|
|
</define>
|
|
<define name="input.month.elem">
|
|
<a:documentation>Year and Month: <input type='month'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.month.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.month.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.month.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.month.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.month.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.integer"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.month.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.month.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">month</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.month.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="form.data.month"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.month.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="form.data.month"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.month.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="form.data.month"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.month.elem"/>
|
|
</define>
|
|
<define name="input.time.elem">
|
|
<a:documentation>Time without Time Zone Information: <input type='time'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.time.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.time.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.time.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.time.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.time.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.float"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.time.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.time.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">time</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.time.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="form.data.time"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.time.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="form.data.time"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.time.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="form.data.time"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.time.elem"/>
|
|
</define>
|
|
<define name="input.week.elem">
|
|
<a:documentation>Year and Week: <input type='week'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.week.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.week.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.week.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.week.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.week.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.integer"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.week.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.week.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">week</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.week.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="form.data.week"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.week.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="form.data.week"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.week.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="form.data.week"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.week.elem"/>
|
|
</define>
|
|
<define name="input.number.elem">
|
|
<a:documentation>Number: <input type='number'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.number.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.number.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.number.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.number.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.number.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.float"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.number.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.number.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">number</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.number.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="common.data.float"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.number.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="common.data.float"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.number.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="common.data.float"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.number.elem"/>
|
|
</define>
|
|
<define name="input.range.elem">
|
|
<a:documentation>Imprecise Number: <input type='range'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.range.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.range.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.range.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.range.attrs.min"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.range.attrs.max"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.step.float"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.range.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.range.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">range</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.range.attrs.min">
|
|
<attribute name="min">
|
|
<ref name="common.data.float"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.range.attrs.max">
|
|
<attribute name="max">
|
|
<ref name="common.data.float"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.range.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="common.data.float"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.range.elem"/>
|
|
</define>
|
|
<define name="input.email.elem">
|
|
<a:documentation>Email Address: <input type='email'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.email.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.email.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.email.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.maxlength"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.pattern"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.size"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
<optional>
|
|
<choice>
|
|
<interleave>
|
|
<ref name="input.attrs.multiple"/>
|
|
<optional>
|
|
<ref name="input.email.attrs.value.multiple"/>
|
|
</optional>
|
|
</interleave>
|
|
<optional>
|
|
<ref name="input.email.attrs.value.single"/>
|
|
</optional>
|
|
</choice>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.email.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">email</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.email.attrs.value.single">
|
|
<attribute name="value">
|
|
<ref name="form.data.emailaddress"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.email.attrs.value.multiple">
|
|
<attribute name="value">
|
|
<ref name="form.data.emailaddresslist"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.email.elem"/>
|
|
</define>
|
|
<define name="input.url.elem">
|
|
<a:documentation>IRI: <input type='url'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.url.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.url.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.url.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.maxlength"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.pattern"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.size"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.url.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.url.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">url</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.url.attrs.value">
|
|
<attribute name="value">
|
|
<choice>
|
|
<value type="string"/>
|
|
<ref name="common.data.uri.absolute"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.url.elem"/>
|
|
</define>
|
|
<define name="input.search.elem">
|
|
<a:documentation>Search: <input type='search'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.search.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.search.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.search.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.maxlength"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.pattern"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.size"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.search.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.search.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">search</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.search.attrs.value">
|
|
<attribute name="value">
|
|
<data type="string" datatypeLibrary=""/>
|
|
<!-- FIXME line breaks -->
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.search.elem"/>
|
|
</define>
|
|
<define name="input.tel.elem">
|
|
<a:documentation>Telephone Number: <input type='tel'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.tel.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.tel.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.tel.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.maxlength"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.pattern"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.readonly"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.size"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.tel.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.tel.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">tel</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.tel.attrs.value">
|
|
<attribute name="value">
|
|
<data type="string" datatypeLibrary=""/>
|
|
<!-- FIXME line breaks -->
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.tel.elem"/>
|
|
</define>
|
|
<define name="input.color.elem">
|
|
<a:documentation>Color: <input type='color'></a:documentation>
|
|
<element name="input">
|
|
<ref name="input.color.attrs"/>
|
|
</element>
|
|
</define>
|
|
<define name="input.color.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<ref name="common-form.attrs"/>
|
|
<ref name="input.color.attrs.type"/>
|
|
<optional>
|
|
<ref name="input.attrs.autocomplete"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.attrs.list"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="input.color.attrs.value"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.input"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="input.color.attrs.type">
|
|
<attribute name="type">
|
|
<value type="string">color</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.color.attrs.value">
|
|
<attribute name="value">
|
|
<ref name="form.data.color"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="input.elem" combine="choice">
|
|
<ref name="input.color.elem"/>
|
|
</define>
|
|
<define name="output.elem">
|
|
<a:documentation>Form Output: <output></a:documentation>
|
|
<element name="output">
|
|
<interleave>
|
|
<ref name="output.inner"/>
|
|
<ref name="output.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="output.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="common-form.attrs.name"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common-form.attrs.form"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="output.attrs.for"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common.attrs.aria.implicit.region"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="output.attrs.for">
|
|
<attribute name="for">
|
|
<ref name="common.data.idrefs"/>
|
|
<!-- REVISIT spec says space- -not whitespace -->
|
|
</attribute>
|
|
</define>
|
|
<define name="output.inner">
|
|
<ref name="common.inner.phrasing"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="output.elem"/>
|
|
</define>
|
|
<define name="textarea.attrs.rows-and-cols-wf1.inner" combine="interleave">
|
|
<a:documentation>Text Area: <textarea>, extensions</a:documentation>
|
|
<notAllowed/>
|
|
</define>
|
|
<define name="textarea.attrs.rows-and-cols-wf1" combine="choice">
|
|
<empty/>
|
|
</define>
|
|
<define name="textarea.attrs" combine="interleave">
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.maxlength"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.required"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.placeholder"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="textarea.attrs.rows"/>
|
|
</optional>
|
|
<choice>
|
|
<interleave>
|
|
<ref name="textarea.attrs.wrap.hard"/>
|
|
<ref name="textarea.attrs.cols"/>
|
|
</interleave>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="textarea.attrs.wrap.soft"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="textarea.attrs.cols"/>
|
|
</optional>
|
|
</interleave>
|
|
</choice>
|
|
</interleave>
|
|
</define>
|
|
<define name="textarea.attrs.wrap.hard">
|
|
<attribute name="wrap">
|
|
<value type="string">hard</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="textarea.attrs.wrap.soft">
|
|
<attribute name="wrap">
|
|
<value type="string">soft</value>
|
|
</attribute>
|
|
</define>
|
|
<!-- REVISIT should the options in datalist be non-selectable? -->
|
|
<define name="datalist.elem">
|
|
<a:documentation>List of Prefill Data: <datalist></a:documentation>
|
|
<element name="datalist">
|
|
<interleave>
|
|
<ref name="datalist.inner"/>
|
|
<ref name="datalist.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="datalist.inner">
|
|
<interleave>
|
|
<zeroOrMore>
|
|
<ref name="option.elem"/>
|
|
</zeroOrMore>
|
|
<ref name="common.inner.phrasing"/>
|
|
</interleave>
|
|
</define>
|
|
<define name="datalist.attrs">
|
|
<ref name="common.attrs"/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="datalist.elem"/>
|
|
</define>
|
|
<define name="button.submit.attrs" combine="interleave">
|
|
<a:documentation>Complex Submit Button: <button type='submit'>, extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formaction"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formenctype"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formmethod"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formtarget"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.formnovalidate"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="button.reset.attrs" combine="interleave">
|
|
<a:documentation>Complex Reset Button: <button type='reset'>, extensions</a:documentation>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
</define>
|
|
<define name="button.button.attrs" combine="interleave">
|
|
<a:documentation>Complex Push Button: <button type='button'>, extensions</a:documentation>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
</define>
|
|
<define name="form.attrs" combine="interleave">
|
|
<a:documentation>Form: <form>, extensions</a:documentation>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="form.attrs.novalidate"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="form.attrs.target"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="form.attrs.autocomplete"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="form.attrs.novalidate">
|
|
<attribute name="novalidate">
|
|
<choice>
|
|
<value type="string">novalidate</value>
|
|
<value type="string"/>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="form.attrs.target">
|
|
<attribute name="target">
|
|
<ref name="common.data.browsing-context-or-keyword"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="form.attrs.autocomplete">
|
|
<attribute name="autocomplete">
|
|
<choice>
|
|
<value type="string">on</value>
|
|
<value type="string">off</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<!-- REVISIT should this be case-insensitive in conforming XHTML documents? -->
|
|
<define name="form.attrs.enctype.data" combine="choice">
|
|
<value type="string">text/plain</value>
|
|
</define>
|
|
<define name="form.attrs.method.data" combine="choice">
|
|
<choice>
|
|
<value type="string">put</value>
|
|
<value type="string">delete</value>
|
|
</choice>
|
|
</define>
|
|
<define name="fieldset.attrs" combine="interleave">
|
|
<a:documentation>Fieldset: <fieldset>, extensions</a:documentation>
|
|
<ref name="common-form.attrs"/>
|
|
</define>
|
|
<define name="label.attrs" combine="interleave">
|
|
<a:documentation>Label: <label>, extensions</a:documentation>
|
|
<optional>
|
|
<ref name="common-form.attrs.form"/>
|
|
</optional>
|
|
</define>
|
|
<define name="keygen.elem">
|
|
<a:documentation>Key-pair generator/input control: <keygen></a:documentation>
|
|
<element name="keygen">
|
|
<interleave>
|
|
<ref name="keygen.inner"/>
|
|
<ref name="keygen.attrs"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="keygen.attrs">
|
|
<interleave>
|
|
<ref name="common.attrs"/>
|
|
<optional>
|
|
<ref name="keygen.attrs.challenge"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="keygen.attrs.keytype"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="shared-form.attrs.autofocus"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="common-form.attrs"/>
|
|
</optional>
|
|
</interleave>
|
|
<!-- REVISIT which ARIA attributes needed here -->
|
|
</define>
|
|
<define name="keygen.attrs.challenge">
|
|
<attribute name="challenge">
|
|
<data type="string" datatypeLibrary=""/>
|
|
</attribute>
|
|
</define>
|
|
<define name="keygen.attrs.keytype">
|
|
<attribute name="keytype">
|
|
<value type="string">rsa</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="keygen.inner">
|
|
<empty/>
|
|
</define>
|
|
<define name="common.elem.phrasing" combine="choice">
|
|
<ref name="keygen.elem"/>
|
|
</define>
|
|
</grammar>
|