Binary file ttml2/spec/rnc/schema.zip has changed
--- a/ttml2/spec/rnc/ttml2-datatypes.rnc Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc Sat May 24 11:44:14 2014 +0800
@@ -22,6 +22,9 @@
TTAF.AnimationValueList.datatype =
string
+TTAF.Boolean.datatype =
+ xsd:boolean
+
TTAF.Border.datatype =
string
@@ -60,6 +63,9 @@
"dropPAL" |
"nonDrop"
+TTAF.Extends.datatype =
+ TTAF.URI.datatype
+
TTAF.ExtensionDesignator.datatype =
TTAF.URI.datatype
@@ -180,6 +186,9 @@
TTAF.Padding.datatype =
string
+TTAF.PermitFeatureNarrowingOrWidening.datatype =
+ TTAF.Boolean.datatype
+
TTAF.PixelAspectRatio.datatype =
xsd:string { pattern = "\p{Nd}+\s+\p{Nd}+" }
@@ -207,6 +216,9 @@
TTAF.RepeatDur.datatype =
string
+TTAF.Restricts.datatype =
+ TTAF.URI.datatype
+
TTAF.Role.datatype =
list { TTAF.RoleItem.datatype+ }
--- a/ttml2/spec/rnc/ttml2-parameter-attribs.rnc Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-parameter-attribs.rnc Sat May 24 11:44:14 2014 +0800
@@ -26,6 +26,10 @@
= attribute ttp:inferProcessorProfileSource { TTAF.InferProcessorProfileSource.datatype }?
TTAF.markerMode.attrib
= attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
+TTAF.permitFeatureNarrowing.attrib
+ = attribute ttp:permitFeatureNarrowing { TTAF.PermitFeatureNarrowingOrWidening.datatype }?
+TTAF.permitFeatureWidening.attrib
+ = attribute ttp:permitFeatureWidening { TTAF.PermitFeatureNarrowingOrWidening.datatype }?
TTAF.pixelAspectRatio.attrib
= attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
TTAF.processorProfiles.attrib
@@ -60,6 +64,8 @@
TTAF.inferProcessorProfileMethod.attrib,
TTAF.inferProcessorProfileSource.attrib,
TTAF.markerMode.attrib,
+ TTAF.permitFeatureNarrowing.attrib,
+ TTAF.permitFeatureWidening.attrib,
TTAF.pixelAspectRatio.attrib,
TTAF.processorProfiles.attrib,
TTAF.processorProfileCombination.attrib,
--- a/ttml2/spec/rnc/ttml2-parameter-items.rnc Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-parameter-items.rnc Sat May 24 11:44:14 2014 +0800
@@ -50,6 +50,8 @@
TTAF.parameters.feature.attlist =
TTAF.id.attrib,
+ attribute extends { TTAF.Extends.datatype }?,
+ attribute restricts { TTAF.Restricts.datatype }?,
attribute value { TTAF.FeatureValue.datatype }?
TTAF.parameters.feature.content =
@@ -81,6 +83,8 @@
TTAF.parameters.extension.attlist =
TTAF.id.attrib,
+ attribute extends { TTAF.Extends.datatype }?,
+ attribute restricts { TTAF.Restricts.datatype }?,
attribute value { TTAF.ExtensionValue.datatype }?
TTAF.parameters.extension.content =
--- a/ttml2/spec/ttml2-changes.html Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/ttml2-changes.html Sat May 24 11:44:14 2014 +0800
@@ -59,7 +59,7 @@
* In 6.1.1, add 'designator' attribute to ttp:profile element in order to
normatively associate a profile designator with a profile definition.
-* In 6.1.3, deprecate 'use' value for 'value' attribute, and, if used, requires
+* In 6.1.3, obsolete 'use' value for 'value' attribute, and, if used, requires
decoder to intepret as if 'required' had been specified.
* In 6.1.3, add 'prohibited' value to 'value' attribute of ttp:feature
@@ -68,7 +68,11 @@
* In 6.1.3, change default for 'value' attribute to be dependent upon profile
type (processor or profile).
-* In 6.1.5, deprecate 'use' value for 'value' attribute, and, if used, requires
+* In 6.1.3, add optional 'extends' and 'restricts' attributes to the
+ ttp:feature element in order to express superset/subset relations between a
+ feature and another feature.
+
+* In 6.1.5, obsolete 'use' value for 'value' attribute, and, if used, requires
decoder to intepret as if 'required' had been specified.
* In 6.1.5, add 'prohibited' value to 'value' attribute of ttp:extension
@@ -77,6 +81,10 @@
* In 6.1.5, change default for 'value' attribute to be dependent upon profile
type (processor or profile).
+* In 6.1.5, add optional 'extends' and 'restricts' attributes to the
+ ttp:extension element in order to express superset/subset relations between an
+ extension and another feature or extension.
+
* In 6.2, add 'ttp:contentProfiles parameter attribute.
* In 6.2, add 'ttp:contentProfileCombination parameter attribute.
@@ -85,6 +93,10 @@
* In 6.2, add 'ttp:inferProcessorProfileSource' parameter attribute.
+* In 6.2, add 'ttp:permitFeatureNarrowing parameter attribute.
+
+* In 6.2, add 'ttp:permitFeatureWidening parameter attribute.
+
* In 6.2, add 'ttp:processorProfiles parameter attribute.
* In 6.2, add 'ttp:processorProfileCombination parameter attribute.
--- a/ttml2/spec/ttml2.html Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/ttml2.html Sat May 24 11:44:14 2014 +0800
@@ -82,9 +82,9 @@
.obsoleted { background-color: #f26d7d }
.reqattr { font-weight: bold }
.optattr { font-style: italic }
-</style><link rel="stylesheet" type="text/css" href="https://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2014/05/22 07:52:39 $<div id="revisions"></div><div class="head">
+</style><link rel="stylesheet" type="text/css" href="https://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2014/05/24 03:38:53 $<div id="revisions"></div><div class="head">
<h1><a id="title"></a>Timed Text Markup Language 2 (TTML2)</h1>
-<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2014/05/22 07:52:39 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
+<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2014/05/24 03:38:53 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
<a href="ttml2.html">ttml2.html</a>
</dd><dt>Latest version:</dt><dd><a href="https://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8">https://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html?content-type=text/html;charset=utf-8</a></dd><dt>Previous version:</dt><dd>
<a href="http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/</a>
@@ -152,16 +152,18 @@
6.2.8 <a href="#parameter-attribute-inferProcessorProfileMethod">ttp:inferProcessorProfileMethod</a><br>
6.2.9 <a href="#parameter-attribute-inferProcessorProfileSource">ttp:inferProcessorProfileSource</a><br>
6.2.10 <a href="#parameter-attribute-markerMode">ttp:markerMode</a><br>
- 6.2.11 <a href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a><br>
- 6.2.12 <a href="#parameter-attribute-profile">ttp:profile</a><br>
- 6.2.13 <a href="#parameter-attribute-processorProfiles">ttp:processorProfiles</a><br>
- 6.2.14 <a href="#parameter-attribute-processorProfileCombination">ttp:processorProfileCombination</a><br>
- 6.2.15 <a href="#parameter-attribute-subFrameRate">ttp:subFrameRate</a><br>
- 6.2.16 <a href="#parameter-attribute-tickRate">ttp:tickRate</a><br>
- 6.2.17 <a href="#parameter-attribute-timeBase">ttp:timeBase</a><br>
- 6.2.18 <a href="#parameter-attribute-validation">ttp:validation</a><br>
- 6.2.19 <a href="#parameter-attribute-validationAction">ttp:validationAction</a><br>
- 6.2.20 <a href="#parameter-attribute-version">ttp:version</a><br>
+ 6.2.11 <a href="#parameter-attribute-permitFeatureNarrowing">ttp:permitFeatureNarrowing</a><br>
+ 6.2.12 <a href="#parameter-attribute-permitFeatureWidening">ttp:permitFeatureWidening</a><br>
+ 6.2.13 <a href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a><br>
+ 6.2.14 <a href="#parameter-attribute-profile">ttp:profile</a><br>
+ 6.2.15 <a href="#parameter-attribute-processorProfiles">ttp:processorProfiles</a><br>
+ 6.2.16 <a href="#parameter-attribute-processorProfileCombination">ttp:processorProfileCombination</a><br>
+ 6.2.17 <a href="#parameter-attribute-subFrameRate">ttp:subFrameRate</a><br>
+ 6.2.18 <a href="#parameter-attribute-tickRate">ttp:tickRate</a><br>
+ 6.2.19 <a href="#parameter-attribute-timeBase">ttp:timeBase</a><br>
+ 6.2.20 <a href="#parameter-attribute-validation">ttp:validation</a><br>
+ 6.2.21 <a href="#parameter-attribute-validationAction">ttp:validationAction</a><br>
+ 6.2.22 <a href="#parameter-attribute-version">ttp:version</a><br>
7 <a href="#content">Content</a><br>
7.1 <a href="#content-element-vocabulary">Content Element Vocabulary</a><br>
7.1.1 <a href="#document-structure-vocabulary-tt">tt</a><br>
@@ -435,11 +437,11 @@
H <a href="#other-references">Other References</a> (Non-Normative)<br>
I <a href="#requirements">Requirements</a> (Non-Normative)<br>
J <a href="#derivation">Vocabulary Derivation</a> (Non-Normative)<br>
- J.1 <a href="#d3e24064">Element Derivation</a><br>
- J.2 <a href="#d3e24581">Attribute Derivation</a><br>
+ J.1 <a href="#d3e24451">Element Derivation</a><br>
+ J.2 <a href="#d3e24968">Attribute Derivation</a><br>
K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br>
- K.1 <a href="#d3e25574">Requirements</a><br>
- K.2 <a href="#d3e25738">Guidelines</a><br>
+ K.1 <a href="#d3e25961">Requirements</a><br>
+ K.2 <a href="#d3e26125">Guidelines</a><br>
L <a href="#streaming">Streaming TTML Content</a> (Non-Normative)<br>
M <a href="#concrete-encoding">Concrete Encoding</a><br>
N <a href="#time-expression-semantics">Time Expression Semantics</a><br>
@@ -880,7 +882,7 @@
a <code>ttp:profile</code> attribute on its root
<code>tt</code>
element
-as defined by <a href="#parameter-attribute-profile"><b>6.2.12 ttp:profile</b></a>
+as defined by <a href="#parameter-attribute-profile"><b>6.2.14 ttp:profile</b></a>
or (2)
a <code>ttp:profile</code> element as a child of the
<code>head</code> element as defined by
@@ -1256,6 +1258,8 @@
<a href="#parameter-attribute-inferProcessorProfileMethod">ttp:inferProcessorProfileMethod</a>,
<a href="#parameter-attribute-inferProcessorProfileSource">ttp:inferProcessorProfileSource</a>,
<a href="#parameter-attribute-markerMode">ttp:markerMode</a>,
+<a href="#parameter-attribute-permitFeatureNarrowing">ttp:permitFeatureNarrowing</a>,
+<a href="#parameter-attribute-permitFeatureWidening">ttp:permitFeatureWidening</a>,
<a href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a>,
<a href="#parameter-attribute-profile">ttp:profile</a>,
<a href="#parameter-attribute-processorProfiles">ttp:processorProfiles</a>,
@@ -1478,20 +1482,33 @@
used to permit the abbreviation of feature designation URIs expressed
by child <code>ttp:feature</code> elements.</p></div><div class="div3">
<h4><a id="parameter-vocabulary-feature"></a>6.1.3 ttp:feature</h4><p>The <code>ttp:feature</code> element is used to specify
-infomation about support and usage requirements for a particular feature.</p><p>The children of the <code>ttp:feature</code> element must express a non-empty
-sequence of <a href="#terms-character-information-item">character information items</a> that adheres to the
-<code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
-§3.2.17.</p><a id="elt-syntax-parameter-feature"></a><table class="syntax"><caption>XML Representation – Element Information Item: ttp:feature</caption><tbody><tr><td>
+infomation about support and usage requirements for a particular feature.</p><a id="elt-syntax-parameter-feature"></a><table class="syntax"><caption>XML Representation – Element Information Item: ttp:feature</caption><tbody><tr><td>
<div class="exampleInner"><pre>
<ttp:feature
- value = (optional|required|<span class="deprecated">use</span>|prohibited) : <em>see prose below</em>
+ extends = string
+ restricts = string
+ value = (optional|required|<span class="obsoleted">use</span>|prohibited) : <em>see prose below</em>
<a href="#content-attribute-id">xml:id</a> = ID
{<em>any attribute not in default or any TT namespace</em>}>
<em>Content:</em> #PCDATA
</ttp:feature>
</pre></div>
-</td></tr></tbody></table><p>If the URI expressed by the content of the <code>ttp:feature</code>
-element is a relative URI, then, when combined with the
+</td></tr></tbody></table><p>The children of the <code>ttp:feature</code> element must express a non-empty
+sequence of <a href="#terms-character-information-item">character information items</a> the concatenation of which adheres to the
+<code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
+§3.2.17.</p><p>If specified, the <code>extends</code> attribute and/or the <code>restricts</code>
+attribute must (1) adhere to the
+<code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
+§3.2.17, and
+(2) express a feature designation as defined by
+<a href="#feature-designations"><b>D.1 Feature Designations</b></a>.</p><p>The <code>extends</code> attribute may be used to indicate that the feature being defined
+is, from either (or both) a syntactic or (and) semantic perspective, a proper superset of the
+feature referenced by the <code>extends</code> attribute.
+The <code>restricts</code> attribute may be used to indicate that the feature being defined
+is, from either (or both) a syntactic or (and) semantic perspective, a proper subset of the
+feature referenced by the <code>restricts</code> attribute.</p><p>If the URI expressed by (1) the content of the <code>ttp:feature</code>
+element, (2) the <code>extends</code> attribute, or (3) the <code>restricts</code> attribute
+is a relative URI, then, when combined with the
feature namespace value expressed by the
<code>xml:base</code> attribute of the
nearest ancestor <code>ttp:features</code> element, it must express an
@@ -1502,7 +1519,8 @@
the specific designation that appears in this URI, i.e., the portion of the feature designation
that starts with the fragment identifier separator '#', must
be defined by this specification or some published version thereof (that
-has achieved REC status).</p><p>If the URI expressed by the content of the <code>ttp:feature</code> element
+has achieved REC status).</p><p>If the URI expressed by the content of the <code>ttp:feature</code> element,
+by the <code>extends</code> attribute, or by the <code>restricts</code> attribute
is a relative URI, then an <code>xml:base</code> attribute should be
specified on the nearest ancestor <code>ttp:features</code> element.</p><p>The <code>value</code> attribute specifies constraints on support for or use of
the designated feature according to the profile type.</p><p>If the profile is a <a href="#terms-processor-profile">processor profile</a>
@@ -1510,11 +1528,19 @@
if the value of the <code>value</code> attribute
is <code>optional</code>, then a processor may but need
not implement or otherwise support the feature in order to process the document;
-</p></li><li><p>
-if the value is <code>required</code>, then a processor
-must implement or otherwise support the feature in order to process
-the document;
-</p></li><li><p>
+</p></li><li><p>if the value is <code>required</code>, then perform the following steps:</p><ol class="enumar"><li><p>if the feature is implemented or otherwise supported by a processor, then continue processing
+the document;</p></li><li><p>otherwise, if
+(1) the <code>extends</code> attribute is specified on the root <code>tt</code> element,
+(2) the computed value of the <code>extends</code> attribute designates a feature that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <code>ttp:permitFeatureNarrowing</code> parameter attribute of the root <code>tt</code> element is not <code>false</code>,
+then continue processing the document;</p></li><li><p>otherwise, if
+(1) the <code>restricts</code> attribute is specified on the root <code>tt</code> element,
+(2) the computed value of the <code>restricts</code> attribute designates a feature that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <code>ttp:permitFeatureWidening</code> parameter attribute of the root <code>tt</code> element is not <code>false</code>,
+then continue processing the document;</p></li><li><p>otherwise, abort processing the document unless overridden by the end-user or some implementation specific parameter
+traceable to an end-user or to a user or system configuration setting.</p></li></ol></li><li><p>
if the value attribute is not specified, then the feature specification
must be interpreted as if the value <code>required</code> were specified;
</p></li></ul><p>If the profile is a <a href="#terms-content-profile">content profile</a>
@@ -1533,7 +1559,7 @@
</p></li><li><p>
if the value attribute is not specified, then the feature specification
must be interpreted as if the value <code>optional</code> were specified;
-</p></li></ul><p>The value <code>use</code> of the <code>value</code> attribute is <span class="deprecated">deprecated</span>. If it
+</p></li></ul><p>The value <span class="obsoleted"><code>use</code></span> of the <code>value</code> attribute is <span class="obsoleted">obsoleted</span>. If it
appears in a profile specification, then it must be interpreted as if <code>required</code>
had been specified.</p><p>If some defined (i.e., standardized) or otherwise well known feature is not specified by
a <code>ttp:feature</code> element in a content profile, then it must be interpreted as if the feature were specified
@@ -1589,32 +1615,86 @@
used to permit the abbreviation of feature designation URIs expressed
by child <code>ttp:extension</code> elements.</p></div><div class="div3">
<h4><a id="parameter-vocabulary-extension"></a>6.1.5 ttp:extension</h4><p>The <code>ttp:extension</code> element is used to specify
-infomation about support and usage requirements for a particular extension.</p><p>The children of the <code>ttp:extension</code> element must express a non-empty
-sequence of <a href="#terms-character-information-item">character information items</a> that adheres to the
-<code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
-§3.2.17.</p><a id="elt-syntax-parameter-extension"></a><table class="syntax"><caption>XML Representation – Element Information Item: ttp:extension</caption><tbody><tr><td>
+infomation about support and usage requirements for a particular extension.</p><a id="elt-syntax-parameter-extension"></a><table class="syntax"><caption>XML Representation – Element Information Item: ttp:extension</caption><tbody><tr><td>
<div class="exampleInner"><pre>
<ttp:extension
- value = (optional|required|<span class="deprecated">use</span>|prohibited) : <em>see prose below</em>
+ extends = string
+ restricts = string
+ value = (optional|required|<span class="obsoleted">use</span>|prohibited) : <em>see prose below</em>
<a href="#content-attribute-id">xml:id</a> = ID
{<em>any attribute not in default or any TT namespace</em>}>
<em>Content:</em> #PCDATA
</ttp:extension>
</pre></div>
-</td></tr></tbody></table><p>If the URI expressed by the content of the <code>ttp:extension</code>
-element is a relative URI, then, when combined with the
+</td></tr></tbody></table><p>The children of the <code>ttp:extension</code> element must express a non-empty
+sequence of <a href="#terms-character-information-item">character information items</a> the concatenation of which adheres to the
+<code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
+§3.2.17.</p><p>If specified, the <code>extends</code> attribute and/or the <code>restricts</code>
+attribute must (1) adhere to the
+<code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
+§3.2.17, and
+(2) express a feature designation or extension designation as defined by
+<a href="#feature-designations"><b>D.1 Feature Designations</b></a> or <a href="#extension-designations"><b>E.1 Extension Designations</b></a>, respectively.</p><p>The <code>extends</code> attribute may be used to indicate that the extension being defined
+is, from either (or both) a syntactic or (and) semantic perspective, a proper superset of the
+feature or extension referenced by the <code>extends</code> attribute.
+The <code>restricts</code> attribute may be used to indicate that the extension being defined
+is, from either (or both) a syntacitc or (and) semantic perspective, a proper subset of the
+feature or extension referenced by the <code>restricts</code> attribute.</p><p>If the URI expressed by (1) the content of the <code>ttp:extension</code>
+element, (2) the <code>extends</code> attribute, or (3) the <code>restricts</code> attribute
+is a relative URI, then, when combined with the
extension namespace value expressed by the
<code>xml:base</code> attribute of the
nearest ancestor <code>ttp:extensions</code> element, it must express an
absolute URI. In either case (original absolute URI or resulting
absolutized URI), the URI expressed by the <code>ttp:extension</code>
-element must further adhere to the syntax of an extension designation
-as defined by <a href="#extension-designations"><b>E.1 Extension Designations</b></a>.</p><p>If the URI expressed by the content of the
-<code>ttp:feature</code> element is a relative URI, then an
-<code>xml:base</code> attribute should be specified on the nearest
-ancestor <code>ttp:extensions</code> element.</p><p>The <code>value</code> attribute has the same syntactic usage and semantics as defined
-above in <a href="#parameter-vocabulary-feature"><b>6.1.3 ttp:feature</b></a>, except that a reference there to a <em>feature</em>
-is to be understood in the present context as a reference to an <em>extension</em>.</p><p>If some well known extension is not specified by
+element must further adhere to the syntax of an extension designation as
+defined by <a href="#extension-designations"><b>E.1 Extension Designations</b></a>,
+while the URI expressed by the <code>extends</code> attribute and/or the
+<code>restricts</code> attribute must ahdere to the syntax of a feature designation
+or an extension designation as defined by <a href="#feature-designations"><b>D.1 Feature Designations</b></a> or
+<a href="#extension-designations"><b>E.1 Extension Designations</b></a>, respectively.</p><p>If the URI expressed by the content of the <code>ttp:extension</code> element,
+by the <code>extends</code> attribute, or by the <code>restricts</code> attribute
+is a relative URI, then an <code>xml:base</code> attribute should be
+specified on the nearest ancestor <code>ttp:extensions</code> element.</p><p>The <code>value</code> attribute specifies constraints on support for or use of
+the designated extension according to the profile type.</p><p>If the profile is a <a href="#terms-processor-profile">processor profile</a>
+then the following semantics apply:</p><ul><li><p>
+if the value of the <code>value</code> attribute
+is <code>optional</code>, then a processor may but need
+not implement or otherwise support the extension in order to process the document;
+</p></li><li><p>if the value is <code>required</code>, then perform the following steps:</p><ol class="enumar"><li><p>if the extension is implemented or otherwise supported by a processor, then continue processing
+the document;</p></li><li><p>otherwise, if
+(1) the <code>extends</code> attribute is specified on the root <code>tt</code> element,
+(2) the computed value of the <code>extends</code> attribute designates an extension that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <code>ttp:permitFeatureNarrowing</code> parameter attribute of the root <code>tt</code> element is not <code>false</code>,
+then continue processing the document;</p></li><li><p>otherwise, if
+(1) the <code>restricts</code> attribute is specified on the root <code>tt</code> element,
+(2) the computed value of the <code>restricts</code> attribute designates an extension that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <code>ttp:permitFeatureWidening</code> parameter attribute of the root <code>tt</code> element is not <code>false</code>,
+then continue processing the document;</p></li><li><p>otherwise, abort processing the document unless overridden by the end-user or some implementation specific parameter
+traceable to an end-user or to a user or system configuration setting.</p></li></ol></li><li><p>
+if the value attribute is not specified, then the extension specification
+must be interpreted as if the value <code>required</code> were specified;
+</p></li></ul><p>If the profile is a <a href="#terms-content-profile">content profile</a>
+then the following semantics apply:</p><ul><li><p>
+if the value of the <code>value</code> attribute
+is <code>optional</code>, then the extension may but need not appear in a document that
+claims conformance with that profile;
+</p></li><li><p>
+if the value of the <code>value</code> attribute
+is <code>required</code>, then the extension must appear in a document that
+claims conformance with that profile;
+</p></li><li><p>
+if the value of the <code>value</code> attribute
+is <code>prohibited</code>, then the extension must not appear in a document that
+claims conformance with that profile;
+</p></li><li><p>
+if the value attribute is not specified, then the extension specification
+must be interpreted as if the value <code>optional</code> were specified;
+</p></li></ul><p>The value <span class="obsoleted"><code>use</code></span> of the <code>value</code> attribute is <span class="obsoleted">obsoleted</span>. If it
+appears in a profile specification, then it must be interpreted as if <code>required</code>
+had been specified.</p><p>If some well known extension is not specified by
a <code>ttp:extension</code> element in a content profile, then it must be interpreted as if the extension were specified
with the <code>value</code> attribute equal to <code>optional</code>. However, if not specified in a processor profile, no claim
about support or absence of support for the extension is implied.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In particular, if some extension is not present in a content profile definition, then
@@ -1638,7 +1718,7 @@
defined in a third party namespace.</p><p>The effect of this example is to express authorial intentions that
a recipient processor must support the TTML transformation profile and
must also support and enable an extension defined by a third party.</p></div></div></div><div class="div2">
-<h3><a id="parameter-attribute-vocabulary"></a>6.2 Parameter Attribute Vocabulary</h3><p>The following attributes are defined in the TT Parameter Namespace.</p><ul><li><p><a href="#parameter-attribute-cellResolution"><b>6.2.1 ttp:cellResolution</b></a></p></li><li><p><a href="#parameter-attribute-clockMode"><b>6.2.2 ttp:clockMode</b></a></p></li><li><p><a href="#parameter-attribute-contentProfiles"><b>6.2.3 ttp:contentProfiles</b></a></p></li><li><p><a href="#parameter-attribute-contentProfileCombination"><b>6.2.4 ttp:contentProfileCombination</b></a></p></li><li><p><a href="#parameter-attribute-dropMode"><b>6.2.5 ttp:dropMode</b></a></p></li><li><p><a href="#parameter-attribute-frameRate"><b>6.2.6 ttp:frameRate</b></a></p></li><li><p><a href="#parameter-attribute-frameRateMultiplier"><b>6.2.7 ttp:frameRateMultiplier</b></a></p></li><li><p><a href="#parameter-attribute-inferProcessorProfileMethod"><b>6.2.8 ttp:inferProcessorProfileMethod</b></a></p></li><li><p><a href="#parameter-attribute-inferProcessorProfileSource"><b>6.2.9 ttp:inferProcessorProfileSource</b></a></p></li><li><p><a href="#parameter-attribute-markerMode"><b>6.2.10 ttp:markerMode</b></a></p></li><li><p><a href="#parameter-attribute-pixelAspectRatio"><b>6.2.11 ttp:pixelAspectRatio</b></a></p></li><li><p><a href="#parameter-attribute-profile"><b>6.2.12 ttp:profile</b></a></p></li><li><p><a href="#parameter-attribute-processorProfiles"><b>6.2.13 ttp:processorProfiles</b></a></p></li><li><p><a href="#parameter-attribute-processorProfileCombination"><b>6.2.14 ttp:processorProfileCombination</b></a></p></li><li><p><a href="#parameter-attribute-subFrameRate"><b>6.2.15 ttp:subFrameRate</b></a></p></li><li><p><a href="#parameter-attribute-tickRate"><b>6.2.16 ttp:tickRate</b></a></p></li><li><p><a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a></p></li><li><p><a href="#parameter-attribute-validation"><b>6.2.18 ttp:validation</b></a></p></li><li><p><a href="#parameter-attribute-validationAction"><b>6.2.19 ttp:validationAction</b></a></p></li><li><p><a href="#parameter-attribute-version"><b>6.2.20 ttp:version</b></a></p></li></ul><p>Unless explicitly stated otherwise, linear white-space (LWSP) must
+<h3><a id="parameter-attribute-vocabulary"></a>6.2 Parameter Attribute Vocabulary</h3><p>The following attributes are defined in the TT Parameter Namespace.</p><ul><li><p><a href="#parameter-attribute-cellResolution"><b>6.2.1 ttp:cellResolution</b></a></p></li><li><p><a href="#parameter-attribute-clockMode"><b>6.2.2 ttp:clockMode</b></a></p></li><li><p><a href="#parameter-attribute-contentProfiles"><b>6.2.3 ttp:contentProfiles</b></a></p></li><li><p><a href="#parameter-attribute-contentProfileCombination"><b>6.2.4 ttp:contentProfileCombination</b></a></p></li><li><p><a href="#parameter-attribute-dropMode"><b>6.2.5 ttp:dropMode</b></a></p></li><li><p><a href="#parameter-attribute-frameRate"><b>6.2.6 ttp:frameRate</b></a></p></li><li><p><a href="#parameter-attribute-frameRateMultiplier"><b>6.2.7 ttp:frameRateMultiplier</b></a></p></li><li><p><a href="#parameter-attribute-inferProcessorProfileMethod"><b>6.2.8 ttp:inferProcessorProfileMethod</b></a></p></li><li><p><a href="#parameter-attribute-inferProcessorProfileSource"><b>6.2.9 ttp:inferProcessorProfileSource</b></a></p></li><li><p><a href="#parameter-attribute-markerMode"><b>6.2.10 ttp:markerMode</b></a></p></li><li><p><a href="#parameter-attribute-permitFeatureNarrowing"><b>6.2.11 ttp:permitFeatureNarrowing</b></a></p></li><li><p><a href="#parameter-attribute-permitFeatureWidening"><b>6.2.12 ttp:permitFeatureWidening</b></a></p></li><li><p><a href="#parameter-attribute-pixelAspectRatio"><b>6.2.13 ttp:pixelAspectRatio</b></a></p></li><li><p><a href="#parameter-attribute-profile"><b>6.2.14 ttp:profile</b></a></p></li><li><p><a href="#parameter-attribute-processorProfiles"><b>6.2.15 ttp:processorProfiles</b></a></p></li><li><p><a href="#parameter-attribute-processorProfileCombination"><b>6.2.16 ttp:processorProfileCombination</b></a></p></li><li><p><a href="#parameter-attribute-subFrameRate"><b>6.2.17 ttp:subFrameRate</b></a></p></li><li><p><a href="#parameter-attribute-tickRate"><b>6.2.18 ttp:tickRate</b></a></p></li><li><p><a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a></p></li><li><p><a href="#parameter-attribute-validation"><b>6.2.20 ttp:validation</b></a></p></li><li><p><a href="#parameter-attribute-validationAction"><b>6.2.21 ttp:validationAction</b></a></p></li><li><p><a href="#parameter-attribute-version"><b>6.2.22 ttp:version</b></a></p></li></ul><p>Unless explicitly stated otherwise, linear white-space (LWSP) must
appear between adjacent non-terminal components of a TT Parameter value
unless some other delimiter is permitted and used.</p><div class="div3">
<h4><a id="parameter-attribute-cellResolution"></a>6.2.1 ttp:cellResolution</h4><p>The <code>ttp:cellResolution</code> attribute may be used by an author
@@ -1669,7 +1749,7 @@
before and after padding will be (480 / 10) * 0.1 pixels.</p></div></div><div class="div3">
<h4><a id="parameter-attribute-clockMode"></a>6.2.2 ttp:clockMode</h4><p>The <code>ttp:clockMode</code> attribute is used to specify the
interpretation of time expressions as real-time time coordinates when
-operating with time base of <code>clock</code> as defined by <a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>See <a href="#timing-time-value-expressions"><b>10.3 Time Value Expressions</b></a> for the
+operating with time base of <code>clock</code> as defined by <a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>See <a href="#timing-time-value-expressions"><b>10.3 Time Value Expressions</b></a> for the
specification of time expression syntax and semantics.</p></div><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-clockMode-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:clockMode</caption><tbody><tr><td>
<div class="exampleInner"><pre>
ttp:clockMode
@@ -1677,7 +1757,7 @@
| "gps"
| "utc"
</pre></div>
-</td></tr></tbody></table><p>If the time base, defined by <a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a>, is designated as
+</td></tr></tbody></table><p>If the time base, defined by <a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a>, is designated as
<code>clock</code>, then this parameter applies as follows: if the
parameter's value is <code>local</code>, then time expressions are
interpreted as local wall-clock time coordinates;
@@ -1742,14 +1822,14 @@
constraints on the interpretation and use of frame counts
that correspond with <a href="#smpte12m">[SMPTE 12M]</a> time coordinates when operating
with time base of <code>smpte</code> as defined by
-<a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a>.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-dropMode-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:dropMode</caption><tbody><tr><td>
+<a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a>.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-dropMode-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:dropMode</caption><tbody><tr><td>
<div class="exampleInner"><pre>
ttp:dropMode
: "dropNTSC"
| "dropPAL"
| "nonDrop"
</pre></div>
-</td></tr></tbody></table><p>If the time base, defined by <a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a>, is designated as
+</td></tr></tbody></table><p>If the time base, defined by <a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a>, is designated as
<code>smpte</code>, then this parameter applies as follows: if the
parameter's value is <code>nonDrop</code>, then, within any given
second of a time expression, frames count from 0 to
@@ -1870,7 +1950,7 @@
constraints on the interpretation and use of time expressions
that correspond with <a href="#smpte12m">[SMPTE 12M]</a> time coordinates when operating
with time base of <code>smpte</code> as defined by
-<a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a>.</p><p>If specified and support for neither <code>#markerMode</code> nor <code>#markerMode-continuous</code> feature
+<a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a>.</p><p>If specified and support for neither <code>#markerMode</code> nor <code>#markerMode-continuous</code> feature
is required by a document's <a href="#terms-effective-processor-profile">effective processor profile</a>,
then the specified value must be ignored and the value <code>discontinuous</code> applied.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-markerMode-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:markerMode</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -1878,7 +1958,7 @@
: "continuous"
| "discontinuous"
</pre></div>
-</td></tr></tbody></table><p>If the time base, defined by <a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a>, is designated as
+</td></tr></tbody></table><p>If the time base, defined by <a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a>, is designated as
<code>smpte</code>, then this parameter applies as follows: if the
parameter's value is <code>continuous</code>, then <a href="#smpte12m">[SMPTE 12M]</a> time coordinates
may be assumed to be linear and either monotonically increasing or
@@ -1937,7 +2017,33 @@
example, two consecutive frames labeled as <code>10:00:00:00</code>
and <code>10:00:01:00</code>.
</p></div></div><div class="div3">
-<h4><a id="parameter-attribute-pixelAspectRatio"></a>6.2.11 ttp:pixelAspectRatio</h4><p>The <code>ttp:pixelAspectRatio</code> attribute may be used by a content author
+<h4><a id="parameter-attribute-permitFeatureNarrowing"></a>6.2.11 ttp:permitFeatureNarrowing</h4><p>The <code>ttp:permitFeatureNarrowing</code> attribute is used to specify whether
+requirements related to a feature or extension may be satisfied by a (syntactically or semantically) narrower interpretation
+of the feature or extension.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-permitFeatureNarrowing-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:permitFeatureNarrowing</caption><tbody><tr><td>
+<div class="exampleInner"><pre>
+ttp:permitFeatureNarrowing
+ : xsd:boolean // see <a href="#xsd-2">[XML Schema Part 2]</a>, §3.2.2
+</pre></div>
+</td></tr></tbody></table><p>If this parameter's value is <code>true</code>, then, a requirement for support of a feature or extension may be satisfied
+if the definition of the feature or extension specifies an <code>extends</code> attribute, and the feature or extension referenced
+by that attribute is supported by a processor.</p><p>If this parameter's value is <code>false</code>, then, a requirement for support of a feature or extension can not be satisfied
+by a more narrowly defined feature or extension specified by an <code>extends</code> attribute.</p><p>If not specified, the value of this parameter must be considered
+to be <code>false</code>.</p><p>A <code>ttp:permitFeatureNarrowing</code> attribute is considered to be significant only
+when specified on the <code>tt</code> element.</p></div><div class="div3">
+<h4><a id="parameter-attribute-permitFeatureWidening"></a>6.2.12 ttp:permitFeatureWidening</h4><p>The <code>ttp:permitFeatureWidening</code> attribute is used to specify whether
+requirements related to a feature or extension may be satisfied by a (syntactically or semantically) wider interpretation
+of the feature or extension.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-permitFeatureWidening-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:permitFeatureWidening</caption><tbody><tr><td>
+<div class="exampleInner"><pre>
+ttp:permitFeatureWidening
+ : xsd:boolean // see <a href="#xsd-2">[XML Schema Part 2]</a>, §3.2.2
+</pre></div>
+</td></tr></tbody></table><p>If this parameter's value is <code>true</code>, then, a requirement for support of a feature or extension may be satisfied
+if the definition of the feature or extension specifies an <code>restricts</code> attribute, and the feature or extension referenced
+by that attribute is supported by a processor.</p><p>If this parameter's value is <code>false</code>, then, a requirement for support of a feature or extension can not be satisfied
+by a more widely defined feature or extension specified by an <code>restricts</code> attribute.</p><p>If not specified, the value of this parameter must be considered
+to be <code>false</code>.</p><p>A <code>ttp:permitFeatureWidening</code> attribute is considered to be significant only
+when specified on the <code>tt</code> element.</p></div><div class="div3">
+<h4><a id="parameter-attribute-pixelAspectRatio"></a>6.2.13 ttp:pixelAspectRatio</h4><p>The <code>ttp:pixelAspectRatio</code> attribute may be used by a content author
to express the aspect ratio of non-square pixels in the production of content that
makes use of pixel coordinates.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-pixelAspectRatio-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:pixelAspectRatio</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -1952,9 +2058,9 @@
when specified on the <code>tt</code> element.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>This parameter may be used by a content transcoder or translator in
order to convert pixel measurements between different pixel aspect
ratios while still maintaining authorial layout intentions.</p></div></div><div class="div3">
-<h4><a id="parameter-attribute-profile"></a>6.2.12 ttp:profile</h4><p>The <code>ttp:profile</code> attribute is <span class="deprecated">deprecated</span>. If creating a TTML document instance for TTML2 (or later versions),
+<h4><a id="parameter-attribute-profile"></a>6.2.14 ttp:profile</h4><p>The <code>ttp:profile</code> attribute is <span class="deprecated">deprecated</span>. If creating a TTML document instance for TTML2 (or later versions),
then the <code>ttp:profile</code> attribute should not be used; instead, the content author should use the <code>ttp:processorProfiles</code>
-attribute, specified at <a href="#parameter-attribute-processorProfiles"><b>6.2.13 ttp:processorProfiles</b></a>.</p><p>If used in a document, the <code>ttp:profile</code> attribute
+attribute, specified at <a href="#parameter-attribute-processorProfiles"><b>6.2.15 ttp:processorProfiles</b></a>.</p><p>If used in a document, the <code>ttp:profile</code> attribute
denotes a <a href="#terms-processor-profile">processor profile</a>
of the Timed Text Markup Language (TTML) that applies when processing
a <a href="#terms-document-instance">document instance</a>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>For information on signaling content profile(s), see <a href="#parameter-attribute-contentProfiles"><b>6.2.3 ttp:contentProfiles</b></a>.</p></div><p>If specified, the value of this attribute must adhere to the following syntax
@@ -1976,7 +2082,7 @@
is defined in a <a href="#terms-document-instance">document instance</a>, then the
<a href="#parameter-attribute-profile"><code>ttp:profile</code></a>
attribute should not be specified on the <code>tt</code> element.</p></div><div class="div3">
-<h4><a id="parameter-attribute-processorProfiles"></a>6.2.13 ttp:processorProfiles</h4><p>The <code>ttp:processorProfiles</code> attribute may be used by a content author
+<h4><a id="parameter-attribute-processorProfiles"></a>6.2.15 ttp:processorProfiles</h4><p>The <code>ttp:processorProfiles</code> attribute may be used by a content author
to express one or more <a href="#terms-processor-profile">processor profiles</a> of
the Timed Text Markup Language (TTML) where the
<a href="#terms-enclosing-document-instance">enclosing document instance</a> requires support for each and all
@@ -2005,7 +2111,7 @@
of the designated <a href="#terms-processor-profile">processor profiles</a>.</p><p>A <code>ttp:processorProfiles</code>
attribute is considered to be significant only when specified on the
<code>tt</code> element.</p></div><div class="div3">
-<h4><a id="parameter-attribute-processorProfileCombination"></a>6.2.14 ttp:processorProfileCombination</h4><p>The <code>ttp:processorProfileCombination</code> attribute is used to specify the
+<h4><a id="parameter-attribute-processorProfileCombination"></a>6.2.16 ttp:processorProfileCombination</h4><p>The <code>ttp:processorProfileCombination</code> attribute is used to specify the
method for combining multiple <a href="#terms-processor-profile">processor profiles</a>.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-processorProfileCombination-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:processorProfileCombination</caption><tbody><tr><td>
<div class="exampleInner"><pre>
ttp:processorProfileCombination
@@ -2018,7 +2124,7 @@
of arguments is determined in accordance with the lexical order of
<a href="#terms-processor-profile">processor profiles</a> in a <a href="#terms-document-instance">document instance</a>.</p><a id="processor-profile-combination-table"></a><table class="common"><caption>Table 6-3 – Processor Profile Combination</caption><col width="16.67%" span="1"><col width="16.67%" span="1"><col width="22%" span="1"><col width="22%" span="1"><col width="22%" span="1"><tbody><tr><th><em>arg1</em></th><th><em>arg2</em></th><th><code>leastRestrictive</code></th><th><code>mostRestrictive</code></th><th><code>replace</code></th></tr><tr><td>optional</td><td>optional</td><td>optional</td><td>optional</td><td>optional</td></tr><tr><td>optional</td><td>required</td><td>optional</td><td>required</td><td>required</td></tr><tr><td>required</td><td>optional</td><td>optional</td><td>required</td><td>optional</td></tr><tr><td>required</td><td>required</td><td>required</td><td>required</td><td>required</td></tr></tbody></table><p>A <code>ttp:processorProfileCombination</code> attribute is considered to be significant only
when specified on the <code>tt</code> element.</p></div><div class="div3">
-<h4><a id="parameter-attribute-subFrameRate"></a>6.2.15 ttp:subFrameRate</h4><p>The <code>ttp:subFrameRate</code> attribute is used to specify the sub-frame rate of a related
+<h4><a id="parameter-attribute-subFrameRate"></a>6.2.17 ttp:subFrameRate</h4><p>The <code>ttp:subFrameRate</code> attribute is used to specify the sub-frame rate of a related
media object or the intrinsic sub-frame rate of a <a href="#terms-document-instance">document instance</a> in case it is intended
to function as an independent media object.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-subFrameRate-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:subFrameRate</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2037,7 +2143,7 @@
equal to one (1). If specified, then the sub-frame rate must be greater than zero (0).</p><p>A <code>ttp:subFrameRate</code> attribute is considered to be significant only
when specified on the <code>tt</code> element.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>The sub-frame is sometimes referred to as a <em>field</em> in
the context of synchronization with an interlaced video media object.</p></div></div><div class="div3">
-<h4><a id="parameter-attribute-tickRate"></a>6.2.16 ttp:tickRate</h4><p>The <code>ttp:tickRate</code> attribute is used to specify the tick rate of a related
+<h4><a id="parameter-attribute-tickRate"></a>6.2.18 ttp:tickRate</h4><p>The <code>ttp:tickRate</code> attribute is used to specify the tick rate of a related
media object or the intrinsic tick rate of content of a <a href="#terms-document-instance">document instance</a> in case it is intended
to function as an independent media object.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-tickRate-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:tickRate</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2062,7 +2168,7 @@
use of fixed point arithmetic rather than fractional (and potentially
inexact) expressions of seconds.</p></div><p>A <code>ttp:tickRate</code> attribute is considered to be significant only
when specified on the <code>tt</code> element.</p></div><div class="div3">
-<h4><a id="parameter-attribute-timeBase"></a>6.2.17 ttp:timeBase</h4><p>The <code>ttp:timeBase</code> attribute is used to specify the
+<h4><a id="parameter-attribute-timeBase"></a>6.2.19 ttp:timeBase</h4><p>The <code>ttp:timeBase</code> attribute is used to specify the
temporal coordinate system by means of which time expressions are
interpreted in a <a href="#terms-document-instance">document instance</a>.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-timeBase-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:timeBase</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2108,7 +2214,7 @@
given <a href="#terms-document-instance">document instance</a>, the interpretation of time expressions
is uniform throughout the <a href="#terms-document-instance">document instance</a>.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>See <a href="#time-expression-semantics"><b>N Time Expression Semantics</b></a> for further details
on the interpretation of time expressions according to the designated time base.</p></div></div><div class="div3">
-<h4><a id="parameter-attribute-validation"></a>6.2.18 ttp:validation</h4><p>The <code>ttp:validation</code> attribute is used to specify whether validation processing
+<h4><a id="parameter-attribute-validation"></a>6.2.20 ttp:validation</h4><p>The <code>ttp:validation</code> attribute is used to specify whether validation processing
may or must be performed on a <a href="#terms-document-instance">document instance</a> by a
<a href="#terms-validating-content-processor">validating content processor</a>.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-validation-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:validation</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2124,7 +2230,7 @@
the <code>ttp:validationAction</code> attribute is used to determine what action to take before performing further processing.</p><p>If not specified, the value of this parameter must be considered
to be <code>optional</code>.</p><p>A <code>ttp:validation</code> attribute is considered to be significant only
when specified on the <code>tt</code> element.</p></div><div class="div3">
-<h4><a id="parameter-attribute-validationAction"></a>6.2.19 ttp:validationAction</h4><p>The <code>ttp:validationAction</code> attribute is used to specify what action is to be taken
+<h4><a id="parameter-attribute-validationAction"></a>6.2.21 ttp:validationAction</h4><p>The <code>ttp:validationAction</code> attribute is used to specify what action is to be taken
by a <a href="#terms-validating-content-processor">validating content processor</a> when
validation of a <a href="#terms-document-instance">document instance</a> fails.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-validationAction-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:validationAction</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2139,7 +2245,7 @@
should not abort and should not warn the end-user when validation processing fails.</p><p>If not specified, the value of this parameter must be considered
to be <code>abort</code>.</p><p>A <code>ttp:validationAction</code> attribute is considered to be significant only
when specified on the <code>tt</code> element.</p></div><div class="div3">
-<h4><a id="parameter-attribute-version"></a>6.2.20 ttp:version</h4><p>The <code>ttp:version</code> attribute is used to specify which version of the
+<h4><a id="parameter-attribute-version"></a>6.2.22 ttp:version</h4><p>The <code>ttp:version</code> attribute is used to specify which version of the
<a href="#terms-timed-text-markup-language">Timed Text Markup Language</a>
specification was used in authoring a TTML <a href="#terms-document-instance">document instance</a>.</p><p>If specified, the value of this attribute must adhere to the following syntax:</p><a id="parameter-attribute-version-syntax"></a><table class="syntax"><caption>Syntax Representation – ttp:version</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -5039,9 +5145,9 @@
<code>ttp:timeBase</code> parameter, and where the semantics defined
by <a href="#time-expression-semantics"><b>N Time Expression Semantics</b></a> apply.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>See
<a href="#parameter-attribute-frameRate"><b>6.2.6 ttp:frameRate</b></a>,
-<a href="#parameter-attribute-subFrameRate"><b>6.2.15 ttp:subFrameRate</b></a>,
-<a href="#parameter-attribute-tickRate"><b>6.2.16 ttp:tickRate</b></a>, and
-<a href="#parameter-attribute-timeBase"><b>6.2.17 ttp:timeBase</b></a> for further information on
+<a href="#parameter-attribute-subFrameRate"><b>6.2.17 ttp:subFrameRate</b></a>,
+<a href="#parameter-attribute-tickRate"><b>6.2.18 ttp:tickRate</b></a>, and
+<a href="#parameter-attribute-timeBase"><b>6.2.19 ttp:timeBase</b></a> for further information on
explicit specification of frame rate, sub-frame rate, tick rate, and time base.</p></div><a id="timeExpression-syntax"></a><table class="syntax"><caption>Syntax Representation – <timeExpression></caption><tbody><tr><td>
<div class="exampleInner"><pre>
<timeExpression>
@@ -5097,7 +5203,7 @@
<em>clock-time</em> and a <em>sub-frames</em> term is
specified, then the value of this term must be constrained to the
interval [0…<em>S-1</em>], where <em>S</em> is the
-sub-frame rate determined by the <code>ttp:subFrameRate</code> parameter as defined by <a href="#parameter-attribute-subFrameRate"><b>6.2.15 ttp:subFrameRate</b></a>.
+sub-frame rate determined by the <code>ttp:subFrameRate</code> parameter as defined by <a href="#parameter-attribute-subFrameRate"><b>6.2.17 ttp:subFrameRate</b></a>.
It is considered an error if a <em>sub-frames</em> term is specified
when the <code>clock</code> time base applies.</p></div></div><div class="div2">
<h3><a id="timing-time-intervals"></a>10.4 Time Intervals</h3><p>The semantics of time containment, durations, and intervals defined by
@@ -7380,7 +7486,7 @@
<h2><a id="derivation"></a>J Vocabulary Derivation (Non-Normative)</h2><p>This appendix provides information about the derivation of TTML
vocabulary, separately describing derivation of elements and
attributes.</p><div class="div2">
-<h3><a id="d3e24064"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
+<h3><a id="d3e24451"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
specifies a TTML element vocabulary item; the second column specifies the
syntactic and/or semantic model on which the vocabulary item is based;
the third column specifies the reference that defines
@@ -7437,7 +7543,7 @@
and <code>@version</code> on the <code>svg:svg</code> element.</p></li><li><p>Conceptually derived from existing <code>tt:layout</code> element,
which is a generic container for layout specifications, but for use
in defining animation specifications that apply to targetted elements.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e24581"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
+<h3><a id="d3e24968"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
specifies a TTML attribute vocabulary item; the second column specifies the
syntactic and/or semantic model on which the vocabulary item is based;
the third column specifies the reference that defines
@@ -7529,9 +7635,9 @@
<h2><a id="qa"></a>K QA Framework Compliance (Non-Normative)</h2><p>This appendix specifies the compliance of this specification with the
requirements and guidelines defined by <a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA
Framework Specifications Guidelines</a> <a href="#qaf-sg">[QAF SG]</a>.</p><div class="div2">
-<h3><a id="d3e25574"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
+<h3><a id="d3e25961"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
clause</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-scope-principle">Requirement 02: Define the scope.</a></td><td><a href="#intro">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#implement-principle">Requirement 03: Identify who or what will implement the specification.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-norm-principle">Requirement 04: Make a list of normative references.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-principle">Requirement 05: Define the terms used in the normative parts of the specification.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conf-label-principle">Requirement 06: Create conformance labels for each part of the conformance model.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#consistent-style-principle">Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#req-opt-conf-principle">Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-mandatory-principle">Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdiv-constraints-principle">Requirement 10: If the technology is subdivided, then address subdivision constraints.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#likehood-extension-principle">Requirement 11: Address Extensibility.</a></td><td><a href="#doctypes">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#deprecated-feature-principle">Requirement 12: Identify deprecated features.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#degree-support-principle">Requirement 13: Define how each class of product handles each deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>No feature is deprecated by this version of this specification.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e25738"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
+<h3><a id="d3e26125"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
specific clauses or sections are cited.</p></li><li><p>See also <a href="#derivation"><b>J Vocabulary Derivation</b></a>.</p></li><li><p>Test assertions and test suites will be provided prior to entering
Proposed Recommendation (PR) phase.</p></li><li><p>See criterion #3 in <a href="#conformance-processor"><b>3.2 Processor Conformance</b></a> and definition of
TTML <a href="#doctypes">Abstract Document Instance</a>.</p></li><li><p>No feature is deprecated or obsoleted by this version of this specification.</p></li></ol></div></div></div><div class="div1">
--- a/ttml2/spec/ttml2.xml Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/ttml2.xml Sat May 24 11:44:14 2014 +0800
@@ -2301,6 +2301,8 @@
<loc href="#parameter-attribute-inferProcessorProfileMethod">ttp:inferProcessorProfileMethod</loc>,
<loc href="#parameter-attribute-inferProcessorProfileSource">ttp:inferProcessorProfileSource</loc>,
<loc href="#parameter-attribute-markerMode">ttp:markerMode</loc>,
+<loc href="#parameter-attribute-permitFeatureNarrowing">ttp:permitFeatureNarrowing</loc>,
+<loc href="#parameter-attribute-permitFeatureWidening">ttp:permitFeatureWidening</loc>,
<loc href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</loc>,
<loc href="#parameter-attribute-profile">ttp:profile</loc>,
<loc href="#parameter-attribute-processorProfiles">ttp:processorProfiles</loc>,
@@ -2640,10 +2642,6 @@
<head>ttp:feature</head>
<p>The <el>ttp:feature</el> element is used to specify
infomation about support and usage requirements for a particular feature.</p>
-<p>The children of the <el>ttp:feature</el> element must express a non-empty
-sequence of <loc href="#terms-character-information-item">character information items</loc> that adheres to the
-<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
-§3.2.17.</p>
<table id="elt-syntax-parameter-feature" role="syntax">
<caption>XML Representation – Element Information Item: ttp:feature</caption>
<tbody>
@@ -2651,7 +2649,9 @@
<td>
<eg xml:space="preserve">
<ttp:feature
- value = (optional|required|<phrase role="deprecated">use</phrase>|prohibited) : <emph>see prose below</emph>
+ extends = string
+ restricts = string
+ value = (optional|required|<phrase role="obsoleted">use</phrase>|prohibited) : <emph>see prose below</emph>
<loc href="#content-attribute-id">xml:id</loc> = ID
{<emph>any attribute not in default or any TT namespace</emph>}>
<emph>Content:</emph> #PCDATA
@@ -2661,8 +2661,25 @@
</tr>
</tbody>
</table>
-<p>If the URI expressed by the content of the <el>ttp:feature</el>
-element is a relative URI, then, when combined with the
+<p>The children of the <el>ttp:feature</el> element must express a non-empty
+sequence of <loc href="#terms-character-information-item">character information items</loc> the concatenation of which adheres to the
+<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17.</p>
+<p>If specified, the <att>extends</att> attribute and/or the <att>restricts</att>
+attribute must (1) adhere to the
+<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17, and
+(2) express a feature designation as defined by
+<specref ref="feature-designations"/>.</p>
+<p>The <att>extends</att> attribute may be used to indicate that the feature being defined
+is, from either (or both) a syntactic or (and) semantic perspective, a proper superset of the
+feature referenced by the <att>extends</att> attribute.
+The <att>restricts</att> attribute may be used to indicate that the feature being defined
+is, from either (or both) a syntactic or (and) semantic perspective, a proper subset of the
+feature referenced by the <att>restricts</att> attribute.</p>
+<p>If the URI expressed by (1) the content of the <el>ttp:feature</el>
+element, (2) the <att>extends</att> attribute, or (3) the <att>restricts</att> attribute
+is a relative URI, then, when combined with the
feature namespace value expressed by the
<att>xml:base</att> attribute of the
nearest ancestor <el>ttp:features</el> element, it must express an
@@ -2674,7 +2691,8 @@
that starts with the fragment identifier separator '#', must
be defined by this specification or some published version thereof (that
has achieved REC status).</p>
-<p>If the URI expressed by the content of the <el>ttp:feature</el> element
+<p>If the URI expressed by the content of the <el>ttp:feature</el> element,
+by the <att>extends</att> attribute, or by the <att>restricts</att> attribute
is a relative URI, then an <att>xml:base</att> attribute should be
specified on the nearest ancestor <el>ttp:features</el> element.</p>
<p>The <att>value</att> attribute specifies constraints on support for or use of
@@ -2687,11 +2705,29 @@
is <code>optional</code>, then a processor may but need
not implement or otherwise support the feature in order to process the document;
</p></item>
-<item><p>
-if the value is <code>required</code>, then a processor
-must implement or otherwise support the feature in order to process
-the document;
-</p></item>
+<item>
+<p>if the value is <code>required</code>, then perform the following steps:</p>
+<olist>
+<item><p>if the feature is implemented or otherwise supported by a processor, then continue processing
+the document;</p></item>
+<item><p>otherwise, if
+(1) the <att>extends</att> attribute is specified on the root <el>tt</el> element,
+(2) the computed value of the <att>extends</att> attribute designates a feature that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <att>ttp:permitFeatureNarrowing</att> parameter attribute of the root <el>tt</el> element is not <code>false</code>,
+then continue processing the document;</p>
+</item>
+<item><p>otherwise, if
+(1) the <att>restricts</att> attribute is specified on the root <el>tt</el> element,
+(2) the computed value of the <att>restricts</att> attribute designates a feature that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <att>ttp:permitFeatureWidening</att> parameter attribute of the root <el>tt</el> element is not <code>false</code>,
+then continue processing the document;</p>
+</item>
+<item><p>otherwise, abort processing the document unless overridden by the end-user or some implementation specific parameter
+traceable to an end-user or to a user or system configuration setting.</p></item>
+</olist>
+</item>
<item><p>
if the value attribute is not specified, then the feature specification
must be interpreted as if the value <code>required</code> were specified;
@@ -2720,7 +2756,7 @@
must be interpreted as if the value <code>optional</code> were specified;
</p></item>
</ulist>
-<p>The value <code>use</code> of the <att>value</att> attribute is <phrase role="deprecated">deprecated</phrase>. If it
+<p>The value <phrase role="obsoleted"><code>use</code></phrase> of the <att>value</att> attribute is <phrase role="obsoleted">obsoleted</phrase>. If it
appears in a profile specification, then it must be interpreted as if <code>required</code>
had been specified.</p>
<p>If some defined (i.e., standardized) or otherwise well known feature is not specified by
@@ -2812,10 +2848,6 @@
<head>ttp:extension</head>
<p>The <el>ttp:extension</el> element is used to specify
infomation about support and usage requirements for a particular extension.</p>
-<p>The children of the <el>ttp:extension</el> element must express a non-empty
-sequence of <loc href="#terms-character-information-item">character information items</loc> that adheres to the
-<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
-§3.2.17.</p>
<table id="elt-syntax-parameter-extension" role="syntax">
<caption>XML Representation – Element Information Item: ttp:extension</caption>
<tbody>
@@ -2823,7 +2855,9 @@
<td>
<eg xml:space="preserve">
<ttp:extension
- value = (optional|required|<phrase role="deprecated">use</phrase>|prohibited) : <emph>see prose below</emph>
+ extends = string
+ restricts = string
+ value = (optional|required|<phrase role="obsoleted">use</phrase>|prohibited) : <emph>see prose below</emph>
<loc href="#content-attribute-id">xml:id</loc> = ID
{<emph>any attribute not in default or any TT namespace</emph>}>
<emph>Content:</emph> #PCDATA
@@ -2833,22 +2867,105 @@
</tr>
</tbody>
</table>
-<p>If the URI expressed by the content of the <el>ttp:extension</el>
-element is a relative URI, then, when combined with the
+<p>The children of the <el>ttp:extension</el> element must express a non-empty
+sequence of <loc href="#terms-character-information-item">character information items</loc> the concatenation of which adheres to the
+<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17.</p>
+<p>If specified, the <att>extends</att> attribute and/or the <att>restricts</att>
+attribute must (1) adhere to the
+<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17, and
+(2) express a feature designation or extension designation as defined by
+<specref ref="feature-designations"/> or <specref ref="extension-designations"/>, respectively.</p>
+<p>The <att>extends</att> attribute may be used to indicate that the extension being defined
+is, from either (or both) a syntactic or (and) semantic perspective, a proper superset of the
+feature or extension referenced by the <att>extends</att> attribute.
+The <att>restricts</att> attribute may be used to indicate that the extension being defined
+is, from either (or both) a syntacitc or (and) semantic perspective, a proper subset of the
+feature or extension referenced by the <att>restricts</att> attribute.</p>
+<p>If the URI expressed by (1) the content of the <el>ttp:extension</el>
+element, (2) the <att>extends</att> attribute, or (3) the <att>restricts</att> attribute
+is a relative URI, then, when combined with the
extension namespace value expressed by the
<att>xml:base</att> attribute of the
nearest ancestor <el>ttp:extensions</el> element, it must express an
absolute URI. In either case (original absolute URI or resulting
absolutized URI), the URI expressed by the <el>ttp:extension</el>
-element must further adhere to the syntax of an extension designation
-as defined by <specref ref="extension-designations"/>.</p>
-<p>If the URI expressed by the content of the
-<el>ttp:feature</el> element is a relative URI, then an
-<att>xml:base</att> attribute should be specified on the nearest
-ancestor <el>ttp:extensions</el> element.</p>
-<p>The <att>value</att> attribute has the same syntactic usage and semantics as defined
-above in <specref ref="parameter-vocabulary-feature"/>, except that a reference there to a <emph>feature</emph>
-is to be understood in the present context as a reference to an <emph>extension</emph>.</p>
+element must further adhere to the syntax of an extension designation as
+defined by <specref ref="extension-designations"/>,
+while the URI expressed by the <att>extends</att> attribute and/or the
+<att>restricts</att> attribute must ahdere to the syntax of a feature designation
+or an extension designation as defined by <specref ref="feature-designations"/> or
+<specref ref="extension-designations"/>, respectively.</p>
+<p>If the URI expressed by the content of the <el>ttp:extension</el> element,
+by the <att>extends</att> attribute, or by the <att>restricts</att> attribute
+is a relative URI, then an <att>xml:base</att> attribute should be
+specified on the nearest ancestor <el>ttp:extensions</el> element.</p>
+<p>The <att>value</att> attribute specifies constraints on support for or use of
+the designated extension according to the profile type.</p>
+<p>If the profile is a <loc href="#terms-processor-profile">processor profile</loc>
+then the following semantics apply:</p>
+<ulist>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>optional</code>, then a processor may but need
+not implement or otherwise support the extension in order to process the document;
+</p></item>
+<item>
+<p>if the value is <code>required</code>, then perform the following steps:</p>
+<olist>
+<item><p>if the extension is implemented or otherwise supported by a processor, then continue processing
+the document;</p></item>
+<item><p>otherwise, if
+(1) the <att>extends</att> attribute is specified on the root <el>tt</el> element,
+(2) the computed value of the <att>extends</att> attribute designates an extension that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <att>ttp:permitFeatureNarrowing</att> parameter attribute of the root <el>tt</el> element is not <code>false</code>,
+then continue processing the document;</p>
+</item>
+<item><p>otherwise, if
+(1) the <att>restricts</att> attribute is specified on the root <el>tt</el> element,
+(2) the computed value of the <att>restricts</att> attribute designates an extension that is implemented or otherwise supported by
+a processor, and
+(3) the computed value of the <att>ttp:permitFeatureWidening</att> parameter attribute of the root <el>tt</el> element is not <code>false</code>,
+then continue processing the document;</p>
+</item>
+<item><p>otherwise, abort processing the document unless overridden by the end-user or some implementation specific parameter
+traceable to an end-user or to a user or system configuration setting.</p></item>
+</olist>
+</item>
+<item><p>
+if the value attribute is not specified, then the extension specification
+must be interpreted as if the value <code>required</code> were specified;
+</p></item>
+</ulist>
+<p>If the profile is a <loc href="#terms-content-profile">content profile</loc>
+then the following semantics apply:</p>
+<ulist>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>optional</code>, then the extension may but need not appear in a document that
+claims conformance with that profile;
+</p></item>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>required</code>, then the extension must appear in a document that
+claims conformance with that profile;
+</p></item>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>prohibited</code>, then the extension must not appear in a document that
+claims conformance with that profile;
+</p></item>
+<item><p>
+if the value attribute is not specified, then the extension specification
+must be interpreted as if the value <code>optional</code> were specified;
+</p></item>
+</ulist>
+<p>The value <phrase role="obsoleted"><code>use</code></phrase> of the <att>value</att> attribute is <phrase role="obsoleted">obsoleted</phrase>. If it
+appears in a profile specification, then it must be interpreted as if <code>required</code>
+had been specified.</p>
+
<p>If some well known extension is not specified by
a <el>ttp:extension</el> element in a content profile, then it must be interpreted as if the extension were specified
with the <att>value</att> attribute equal to <code>optional</code>. However, if not specified in a processor profile, no claim
@@ -2908,6 +3025,8 @@
<item><p><specref ref="parameter-attribute-inferProcessorProfileMethod"/></p></item>
<item><p><specref ref="parameter-attribute-inferProcessorProfileSource"/></p></item>
<item><p><specref ref="parameter-attribute-markerMode"/></p></item>
+<item><p><specref ref="parameter-attribute-permitFeatureNarrowing"/></p></item>
+<item><p><specref ref="parameter-attribute-permitFeatureWidening"/></p></item>
<item><p><specref ref="parameter-attribute-pixelAspectRatio"/></p></item>
<item><p><specref ref="parameter-attribute-profile"/></p></item>
<item><p><specref ref="parameter-attribute-processorProfiles"/></p></item>
@@ -3533,6 +3652,64 @@
</p>
</note>
</div3>
+<div3 id="parameter-attribute-permitFeatureNarrowing">
+<head>ttp:permitFeatureNarrowing</head>
+<p>The <att>ttp:permitFeatureNarrowing</att> attribute is used to specify whether
+requirements related to a feature or extension may be satisfied by a (syntactically or semantically) narrower interpretation
+of the feature or extension.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-permitFeatureNarrowing-syntax" role="syntax">
+<caption>Syntax Representation – ttp:permitFeatureNarrowing</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:permitFeatureNarrowing
+ : xsd:boolean // see <bibref ref="xsd-2"/>, §3.2.2
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If this parameter's value is <code>true</code>, then, a requirement for support of a feature or extension may be satisfied
+if the definition of the feature or extension specifies an <att>extends</att> attribute, and the feature or extension referenced
+by that attribute is supported by a processor.</p>
+<p>If this parameter's value is <code>false</code>, then, a requirement for support of a feature or extension can not be satisfied
+by a more narrowly defined feature or extension specified by an <att>extends</att> attribute.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>false</code>.</p>
+<p>A <att>ttp:permitFeatureNarrowing</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-permitFeatureWidening">
+<head>ttp:permitFeatureWidening</head>
+<p>The <att>ttp:permitFeatureWidening</att> attribute is used to specify whether
+requirements related to a feature or extension may be satisfied by a (syntactically or semantically) wider interpretation
+of the feature or extension.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-permitFeatureWidening-syntax" role="syntax">
+<caption>Syntax Representation – ttp:permitFeatureWidening</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:permitFeatureWidening
+ : xsd:boolean // see <bibref ref="xsd-2"/>, §3.2.2
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If this parameter's value is <code>true</code>, then, a requirement for support of a feature or extension may be satisfied
+if the definition of the feature or extension specifies an <att>restricts</att> attribute, and the feature or extension referenced
+by that attribute is supported by a processor.</p>
+<p>If this parameter's value is <code>false</code>, then, a requirement for support of a feature or extension can not be satisfied
+by a more widely defined feature or extension specified by an <att>restricts</att> attribute.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>false</code>.</p>
+<p>A <att>ttp:permitFeatureWidening</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
<div3 id="parameter-attribute-pixelAspectRatio">
<head>ttp:pixelAspectRatio</head>
<p>The <att>ttp:pixelAspectRatio</att> attribute may be used by a content author
--- a/ttml2/spec/xmlspec-ttml2.dtd Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/xmlspec-ttml2.dtd Sat May 24 11:44:14 2014 +0800
@@ -19,6 +19,8 @@
translationloc?, copyright?,
((status, abstract) | (abstract, status)), pubstmt?,
sourcedesc?, langusage, revisiondesc">
+<!ENTITY % local.eg.pcd.mix
+ "|bibref">
<!ENTITY % tech.pcd.mix
"#PCDATA|loc|ednote|phrase|rfc2119|sub|sup">
@@ -33,3 +35,4 @@
<!-- element definition overrides -->
<!ELEMENT back (div1|inform-div1)+>
<!ELEMENT loc (#PCDATA|phrase|el|att|code|emph)*>
+
Binary file ttml2/spec/xsd/schema.zip has changed
--- a/ttml2/spec/xsd/ttml2-datatypes.xsd Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-datatypes.xsd Sat May 24 11:44:14 2014 +0800
@@ -85,6 +85,9 @@
<xs:enumeration value="nonDrop"/>
</xs:restriction>
</xs:simpleType>
+ <xs:simpleType name="extends">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
<xs:simpleType name="extensionDesignator">
<xs:restriction base="xs:anyURI"/>
</xs:simpleType>
@@ -319,6 +322,9 @@
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
+ <xs:simpleType name="permitFeatureNarrowingOrWidening">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
<xs:simpleType name="pixelAspectRatio">
<xs:annotation>
<xs:documentation>positiveInteger:positiveInteger</xs:documentation>
@@ -376,6 +382,9 @@
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
+ <xs:simpleType name="restricts">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
<xs:simpleType name="role">
<xs:restriction>
<xs:simpleType>
--- a/ttml2/spec/xsd/ttml2-parameter-attribs.xsd Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-parameter-attribs.xsd Sat May 24 11:44:14 2014 +0800
@@ -17,6 +17,8 @@
<xs:attribute name="markerMode" type="ttd:markerMode"/>
<xs:attribute name="processorProfiles" type="ttd:profiles"/>
<xs:attribute name="processorProfileCombination" type="ttd:profileCombination"/>
+ <xs:attribute name="permitFeatureNarrowing" type="ttd:permitFeatureNarrowingOrWidening"/>
+ <xs:attribute name="permitFeatureWidening" type="ttd:permitFeatureNarrowingOrWidening"/>
<xs:attribute name="profile" type="ttd:profile"/>
<xs:attribute name="pixelAspectRatio" type="ttd:pixelAspectRatio"/>
<xs:attribute name="subFrameRate" type="ttd:subFrameRate"/>
@@ -36,6 +38,8 @@
<xs:attribute ref="ttp:inferProcessorProfileMethod"/>
<xs:attribute ref="ttp:inferProcessorProfileSource"/>
<xs:attribute ref="ttp:markerMode"/>
+ <xs:attribute ref="ttp:permitFeatureNarrowing"/>
+ <xs:attribute ref="ttp:permitFeatureWidening"/>
<xs:attribute ref="ttp:processorProfiles"/>
<xs:attribute ref="ttp:processorProfileCombination"/>
<xs:attribute ref="ttp:profile"/>
--- a/ttml2/spec/xsd/ttml2-parameter-items.xsd Fri May 23 18:26:59 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-parameter-items.xsd Sat May 24 11:44:14 2014 +0800
@@ -26,6 +26,8 @@
</xs:attributeGroup>
<xs:attributeGroup name="feature.attlist">
<xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
+ <xs:attribute name="extends" type="ttd:extends"/>
+ <xs:attribute name="restricts" type="ttd:restricts"/>
<xs:attribute name="value" type="ttd:featureValue"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:attributeGroup>
@@ -36,6 +38,8 @@
</xs:attributeGroup>
<xs:attributeGroup name="extension.attlist">
<xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
+ <xs:attribute name="extends" type="ttd:extends"/>
+ <xs:attribute name="restricts" type="ttd:restricts"/>
<xs:attribute name="value" type="ttd:extensionValue"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:attributeGroup>