--- a/ttml10/spec/ttaf1-dfxp.html Wed May 01 22:57:02 2013 -0700
+++ b/ttml10/spec/ttaf1-dfxp.html Wed May 01 22:59:16 2013 -0700
@@ -86,9 +86,9 @@
.diff-del { color: red; text-decoration: line-through; background-color: #99FF99; }
.diff-chg { background-color: #99FF99; }
q.diff-off {}
-</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"/></head><body>Last Modified: $Date: 2013/04/14 00:13:46 $<div id="revisions"/><div class="head">
+</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"/></head><body>Last Modified: $Date: 2013/05/02 05:57:02 $<div id="revisions"/><div class="head">
<h1><a name="title" id="title"/>Timed Text Markup Language (TTML) 1.0 (Second Edition)</h1>
-<h2><a name="w3c-doctype" id="w3c-doctype"/>Editors' copy $Date: 2013/04/14 00:13:46 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
+<h2><a name="w3c-doctype" id="w3c-doctype"/>Editors' copy $Date: 2013/05/02 05:57:02 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
<a href="ttaf1-dfxp.html">ttaf1-dfxp.html</a>
</dd><dt>Latest version:</dt><dd><a href="http://dvcs.w3.org/hg/ttml/raw-file/tip/ttml10/spec/ttaf1-dfxp.html?content-type=text/html;charset=utf-8">http://dvcs.w3.org/hg/ttml/raw-file/tip/ttml10/spec/ttaf1-dfxp.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>
@@ -265,45 +265,7 @@
A.4 <a href="#reduced-infoset-character">Character Information Item</a><br/>
B <a href="#schemas">Schemas</a><br/>
B.1 <a href="#dfxp-schema-rnc">Relax NG Schema</a><br/>
- B.1.1 <a href="#rnc-dfxp-driver-schema">Driver</a><br/>
- B.1.2 <a href="#rnc-dfxp-modules">Modules</a><br/>
- B.1.2.1 <a href="#rnc-dfxp-animation-module">Animation Module</a><br/>
- B.1.2.2 <a href="#rnc-dfxp-classes-module">Classes Module</a><br/>
- B.1.2.3 <a href="#rnc-dfxp-content-module">Content Module</a><br/>
- B.1.2.4 <a href="#rnc-dfxp-core-attribs-module">Core Attributes Module</a><br/>
- B.1.2.5 <a href="#rnc-dfxp-datatypes-module">Data Types Module</a><br/>
- B.1.2.6 <a href="#rnc-dfxp-document-module">Document Module</a><br/>
- B.1.2.7 <a href="#rnc-dfxp-head-module">Header Module</a><br/>
- B.1.2.8 <a href="#rnc-dfxp-layout-module">Layout Module</a><br/>
- B.1.2.9 <a href="#rnc-dfxp-metadata-module">Metadata Module</a><br/>
- B.1.2.10 <a href="#rnc-dfxp-metadata-items-module">Metadata Items Module</a><br/>
- B.1.2.11 <a href="#rnc-dfxp-metadata-attribs-module">Metadata Attributes Module</a><br/>
- B.1.2.12 <a href="#rnc-dfxp-parameters-module">Parameters Module</a><br/>
- B.1.2.13 <a href="#rnc-dfxp-parameter-items-module">Parameter Items Module</a><br/>
- B.1.2.14 <a href="#rnc-dfxp-parameter-attribs-module">Parameter Attributes Module</a><br/>
- B.1.2.15 <a href="#rnc-dfxp-styling-attribs-module">Styling Attributes Module</a><br/>
- B.1.2.16 <a href="#rnc-dfxp-styling-module">Styling Module</a><br/>
- B.1.2.17 <a href="#rnc-dfxp-timing-attribs-module">Timing Attributes Module</a><br/>
B.2 <a href="#dfxp-schema-xsd">XML Schema Definition (XSD) Schema</a><br/>
- B.2.1 <a href="#xsd-dfxp-driver-schema">Driver</a><br/>
- B.2.2 <a href="#xsd-dfxp-modules">Modules</a><br/>
- B.2.2.1 <a href="#xsd-dfxp-animation-module">Animation Module</a><br/>
- B.2.2.2 <a href="#xsd-dfxp-content-module">Content Module</a><br/>
- B.2.2.3 <a href="#xsd-dfxp-core-attribs-module">Core Attributes Module</a><br/>
- B.2.2.4 <a href="#xsd-dfxp-datatypes-module">Data Types Module</a><br/>
- B.2.2.5 <a href="#xsd-dfxp-document-module">Document Module</a><br/>
- B.2.2.6 <a href="#xsd-dfxp-head-module">Header Module</a><br/>
- B.2.2.7 <a href="#xsd-dfxp-layout-module">Layout Module</a><br/>
- B.2.2.8 <a href="#xsd-dfxp-metadata-module">Metadata Module</a><br/>
- B.2.2.9 <a href="#xsd-dfxp-metadata-items-module">Metadata Items Module</a><br/>
- B.2.2.10 <a href="#xsd-dfxp-metadata-attribs-module">Metadata Attributes Module</a><br/>
- B.2.2.11 <a href="#xsd-dfxp-parameters-module">Parameters Module</a><br/>
- B.2.2.12 <a href="#xsd-dfxp-parameter-items-module">Parameter Items Module</a><br/>
- B.2.2.13 <a href="#xsd-dfxp-parameter-attribs-module">Parameter Attributes Module</a><br/>
- B.2.2.14 <a href="#xsd-dfxp-styling-attribs-module">Styling Attributes Module</a><br/>
- B.2.2.15 <a href="#xsd-dfxp-styling-module">Styling Module</a><br/>
- B.2.2.16 <a href="#xsd-dfxp-timing-attribs-module">Timing Attributes Module</a><br/>
- B.2.2.17 <a href="#xsd-dfxp-xml-attrs-module">XML Attributes Module</a><br/>
C <a href="#media-type-registration">Media Type Registration</a><br/>
D <a href="#features">Features</a><br/>
D.1 <a href="#feature-designations">Feature Designations</a><br/>
@@ -428,21 +390,21 @@
F.1 <a href="#profile-dfxp-transformation">DFXP Transformation Profile</a><br/>
F.2 <a href="#profile-dfxp-presentation">DFXP Presentation Profile</a><br/>
F.3 <a href="#profile-dfxp-full">DFXP Full Profile</a><br/>
-G <a href="#concrete-encoding">Concrete Encoding</a><br/>
-H <a href="#time-expression-semantics">Time Expression Semantics</a><br/>
- H.1 <a href="#time-expression-semantics-clock">Clock Time Base</a><br/>
- H.2 <a href="#time-expression-semantics-media">Media Time Base</a><br/>
- H.3 <a href="#time-expression-semantics-smpte">SMPTE Time Base</a><br/>
-I <a href="#references">References</a><br/>
-J <a href="#other-references">Other References</a> (Non-Normative)<br/>
-K <a href="#requirements">Requirements</a> (Non-Normative)<br/>
-L <a href="#derivation">Vocabulary Derivation</a> (Non-Normative)<br/>
- L.1 <a href="#d3e18018">Element Derivation</a><br/>
- L.2 <a href="#d3e18497">Attribute Derivation</a><br/>
-M <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br/>
- M.1 <a href="#d3e19365">Requirements</a><br/>
- M.2 <a href="#d3e19529">Guidelines</a><br/>
-N <a href="#streaming">Streaming TTML Content</a> (Non-Normative)<br/>
+G <a href="#references">References</a><br/>
+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="#d3e17360">Element Derivation</a><br/>
+ J.2 <a href="#d3e17839">Attribute Derivation</a><br/>
+K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br/>
+ K.1 <a href="#d3e18707">Requirements</a><br/>
+ K.2 <a href="#d3e18871">Guidelines</a><br/>
+L <a href="#streaming">Streaming TTML Content</a> (Non-Normative)<br/>
+M <a href="#concrete-encoding">Concrete Encoding</a> (Non-Normative)<br/>
+N <a href="#time-expression-semantics">Time Expression Semantics</a> (Non-Normative)<br/>
+ N.1 <a href="#time-expression-semantics-clock">Clock Time Base</a><br/>
+ N.2 <a href="#time-expression-semantics-media">Media Time Base</a><br/>
+ N.3 <a href="#time-expression-semantics-smpte">SMPTE Time Base</a><br/>
O <a href="#common-styling">Common Caption Style Examples</a> (Non-Normative)<br/>
O.1 <a href="#pop-on-example">Pop-On Caption Example</a><br/>
O.2 <a href="#roll-up-example">Roll-Up Caption Example</a><br/>
@@ -453,13 +415,13 @@
provides a standardized representation of a particular subset of
textual information with which stylistic, layout, and timing semantics are associated by
an author or an authoring system for the purpose of interchange and potential presentation.</p><p>TTML is expressly designed to meet only a limited set of requirements
-established by <a href="#ttaf1-req">[TTAF1-REQ]</a>, and summarized in <a href="#requirements"><b>K Requirements</b></a>. In particular, only those requirements which service the
+established by <a href="#ttaf1-req">[TTAF1-REQ]</a>, and summarized in <a href="#requirements"><b>I Requirements</b></a>. In particular, only those requirements which service the
need of performing interchange with existing, legacy distribution systems are
satisfied.</p><p>In addition to being used for interchange among legacy distribution content
formats, TTML content may be used directly as a distribution format, providing, for
example, a standard content format to reference from a <code><text></code> or
<code><textstream></code> media object element in a <a href="#smil21">[SMIL 2.1]</a> document. Certain properties of TTML support
-streamability of content, as described in <a href="#streaming"><b>N Streaming TTML Content</b></a>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>While TTML was not expressly designed for direct (embedded) integration into a
+streamability of content, as described in <a href="#streaming"><b>L Streaming TTML Content</b></a>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>While TTML was not expressly designed for direct (embedded) integration into a
SMIL document instance, such integration is not precluded.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>In some contexts of use, it may be appropriate to employ
animated content to depict sign language representations of the same content
as expressed by a Timed Text document instance. This use case is not
@@ -653,7 +615,9 @@
labeled (using a extension designation) in another (public or private)
specification.</p></dd><dt class="label">Feature</dt><dd><p>A syntactic or semantic expression or capability that is defined and
labeled (using a feature designation) in this specification (or a
-future revision of this specification).</p></dd><dt class="label">Processor</dt><dd><p>See <em>Content Processor</em>.</p></dd><dt class="label">Processor Profile</dt><dd><p>A collection of features and extensions that must or may be implemented (supported) by
+future revision of this specification).</p></dd><dt class="label">Presentation Processor</dt><dd><p>A <em>Content Processor</em> which purpose is to layout, format, and render,
+i.e., to present, <em>Timed Text Markup Language</em> content by applying the presentation semantics
+defined in this specification.</p></dd><dt class="label">Processor</dt><dd><p>See <em>Content Processor</em>.</p></dd><dt class="label">Processor Profile</dt><dd><p>A collection of features and extensions that must or may be implemented (supported) by
a content processor.</p></dd><dt class="label">Profile Definition Document</dt><dd><p>A document that defines a specific collection of features and extensions
for which support is required or optional in a recipient content
processor.</p></dd><dt class="label">Region</dt><dd><p>A logical construct that models authorial intention regarding
@@ -675,7 +639,13 @@
otherwise determined by the <em>Document Processing Context</em>.</p></dd><dt class="label">Timed Text</dt><dd><p>Textual information that is intrinsically or extrinsically
associated with timing information.</p></dd><dt class="label">Timed Text Markup Language</dt><dd><p>A content type that represents timed text media for the purpose of
interchange among authoring systems.</p></dd><dt class="label">Timed Text Authoring System</dt><dd><p>A content authoring system capable of importing and exporting
-Timed Text Markup Language content.</p></dd></dl></div><div class="div2">
+Timed Text Markup Language content.</p></dd><dt class="label">Transformation Processor</dt><dd><p>A <em>Content Processor</em> which purpose is to transform or otherwise rewrite
+<em>Timed Text Markup Language</em> content to either <em>Timed Text Markup Language</em>
+or to another (arbitrary) content format. An example of the first is a processor that removes
+or rewrites TTML features so as to conform to a profile of TTML. An example of the latter is
+a processor that translates TTML into a completely different timed text format. Because this
+specification does not otherwise define a target profile or format for transformation processing,
+no further transformation semantics are defined by this specification.</p></dd></dl></div><div class="div2">
<h3><a name="conventions" id="conventions"/>2.3 Documentation Conventions</h3><p>Within normative prose in this specification, the words
<em>may</em>, <em>should</em>, and <em>must</em> are
defined as follows:</p><dl class="conformance-keywords"><dt class="label">may</dt><dd><p>Conforming documents and/or TTML processors are permitted to,
@@ -817,7 +787,7 @@
to be used for interchange among distribution systems. This document type
is defined in terms of the
element and attribute vocabulary
-specified in <a href="#vocabulary"><b>5 Vocabulary</b></a>.</p><p>This specification defines two types of normative schemas that may be used to validate a subset of
+specified in <a href="#vocabulary"><b>5 Vocabulary</b></a>.</p><p>This specification defines two types of schemas that may be used to validate a subset of
conformant DFXP Content document instances:</p><ul><li><p><a href="#dfxp-schema-rnc"><b>B.1 Relax NG Schema</b></a></p></li><li><p><a href="#dfxp-schema-xsd"><b>B.2 XML Schema Definition (XSD) Schema</b></a></p></li></ul><p>The (root) document element of a DFXP Content document instance must be a
<code>tt</code> element, as defined by <a href="#document-structure-vocabulary-tt"><b>7.1.1 tt</b></a>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>The schemas included in this specification do not validate all syntactic constraints
defined by this specification. In particular, performing validation with one of the above
@@ -1458,7 +1428,13 @@
glyph areas is
coordinated with this grid. Such alignment is possible, but
requires the use of a monospaced font and a font size whose EM square exactly
-matches the cell size.</p></div></div><div class="div3">
+matches the cell size.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>When a <a href="#style-value-length"><length></a> expressed in
+cells applies to a dimension parallel to the inline or block progression dimension,
+a cell's dimension in the inline or block progression dimension applies, respectively.
+For example, if padding (on all four edges) is specified as 0.1c, the cell resolution
+is 20 by 10, and the root container extent is 640 by 480, then, assuming top to bottom,
+left to right writing mode, the start and end padding will be 640 / 20 * 0.1 pixels and the
+before and after padding will be 480 / 10 * 0.1 pixels.</p></div></div><div class="div3">
<h4><a name="parameter-attribute-clockMode" id="parameter-attribute-clockMode"/>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.11 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
@@ -1605,7 +1581,10 @@
to be <code>discontinuous</code>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>The default value for this parameter was originally specified
(in <a href="http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">TTML 1.0 First Edition</a>)
as <code>continuous</code>; however, further evaluation of the state of the industry indicates this
-choice was incorrect, and that the most common default is <code>discontinuous</code>.</p></div><p>A <code>ttp:markerMode</code> attribute is considered to be significant only
+choice was incorrect, and that the most common default is <code>discontinuous</code>.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>Due to lack of industry consensus on the utility and interpretation of
+<code>continuous</code> marker mode, authors are advised to avoid its use. Furthermore, the
+<code>ttp:markerMode</code> is being considered for deprecation in the next revision of this
+specification.</p></div><p>A <code>ttp:markerMode</code> attribute is considered to be significant only
when specified on the <code>tt</code> element.</p><p>If a value of <code>continuous</code> applies, then time
expressions may be converted to real time
coordinates by taking into account the computed frame rate
@@ -1963,7 +1942,11 @@
<em>parallel</em> time containment semantics.</p><p>If a sequence of children of a <code>p</code> element
consists solely of character information items, then that sequence must
be considered to be an <em>anonymous span</em> for the purpose of
-applying style properties that apply to <code>span</code> elements.</p></div><div class="div3">
+applying style properties that apply to <code>span</code> elements.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>The presentation semantics of TTML effectively
+imply that a <code>p</code> element constitutes a line break. In particular,
+it is associated with a block-stacking constraint both before the first
+generated line area and after the last generated line area. See
+<a href="#semantics-region-layout-step-2"><b>9.3.3 Synchronic Flow Processing</b></a> for further details.</p></div></div><div class="div3">
<h4><a name="content-vocabulary-span" id="content-vocabulary-span"/>7.1.6 span</h4><p>The <code>span</code> element functions as a logical container and a temporal
structuring element for a sequence of textual content units having inline
level formatting semantics.</p><p>When presented on a visual medium, a <code>span</code> element is intended to
@@ -2018,9 +2001,9 @@
</pre></div>
</td></tr></tbody></table><p>When presented on a visual medium, the presence of a <code>br</code> element must be
interpreted as a forced line break.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>The visual presentation of a <code>br</code> element is
-intended to produce the same effect as the ASCII control code
-<code>CR</code>
-followed by the control code <code>NL</code> when presented on a teletype device.
+intended to produce the same effect as the control character
+<code>CR</code> (U+000D)
+followed by the control code <code>NL</code> (U+000A) when presented on a teletype device.
Therefore, two <code>br</code> elements in sequence will produce a
different effect than a single <code>br</code> element.</p></div></div></div><div class="div2">
<h3><a name="content-attribute-vocabulary" id="content-attribute-vocabulary"/>7.2 Content Attribute Vocabulary</h3><p>This section defines the following common attributes used with many or all element types
@@ -2361,7 +2344,8 @@
specifications, then they must be interpreted as <em>width</em>
and <em>height</em>, where the first specification is the
<em>width</em>, and the second specification is the
-<em>height</em>.</p><p>If the value of this attribute is <code>auto</code>, then the initial value
+<em>height</em>, where, if either <em>width</em> or <em>height</em> is negative or zero, then
+extent must be considered zero in both inline and block progression dimensions.</p><p>If the value of this attribute is <code>auto</code>, then the initial value
of the style property must be considered to be the same as the root container extent.
</p><p>
The root container extent is determined either by a
@@ -3700,6 +3684,10 @@
style property <em>P</em> expressed as a specified styling
attribute of <em>E</em>,
merge <em>P</em> into the specified style
+set of <em>E</em>, <em>SSS(E)</em>;</p></li><li><p><span class="strong">[animation styling]</span> for each
+style property <em>P</em> expressed as a specified styling
+attribute of an immediate animation (<code>set</code>) element child of element <em>E</em>,
+merge <em>P</em> into the specified style
set of <em>E</em>, <em>SSS(E)</em>;</p></li><li><p><span class="strong">[implicit inheritance]</span> if the
element type of <em>E</em> is not the styling element type
<code>style</code>, then for each inheritable style property
@@ -3917,35 +3905,11 @@
then the element is associated with the region referenced by that
attribute;</p></li><li><p>if a default region was implied (due to the absence of any
<a href="#layout-vocabulary-region"><code>region</code></a> element),
-then the element is associated with the default region;</p></li><li><p>the element is not associated with any region.</p></li></ol><p>The pseudo-code shown in <a href="#content-hierarchy-region-mapping"><b>Example – Content Hierarchy Region Mapping</b></a>
-provides one possible algorithm that implements these processing steps.</p><table summary="HTML Table" id="content-hierarchy-region-mapping" class="example"><caption>Example – Content Hierarchy Region Mapping</caption><tbody><tr><td>
-<div class="exampleInner"><pre>
-PREPARE-CONTENT ( D ) :=
- foreach R in SELECT ( D, "/tt/head/layout/region" )
- if TEMPORALLY-ACTIVE? ( R )
- APPEND-CHILDREN ( R, SELECT ( D, "/tt/body" ) )
- foreach E in POSTORDER-TRAVERSE ( R )
- if ! CONTENT-ELEMENT? ( E ) or ! TEMPORALLY-ACTIVE? ( E ) or EMPTY? ( E ) or REGION-OF ( E ) != R
- then PRUNE ( E )
- PRUNE ( SELECT ( D, "/tt/body" ) )
- PRUNE ( SELECT ( D, "//*/@region" ) )
- PRUNE ( SELECT ( D, "//*/@begin" ) )
- PRUNE ( SELECT ( D, "//*/@end" ) )
- PRUNE ( SELECT ( D, "//*/@dur" ) )
-
-REGION-OF ( E ) :=
- if NULL? ( E )
- return NULL
- else if HAS-ATTRIBUTE? ( E, "region" )
- return VALUE-OF-ATTRIBUTE ( E, "region" )
- else
- return REGION-OF ( PARENT-OF ( E ) )
-</pre></div>
-</td></tr></tbody></table><p>The result of performing the processing described above will be a sequence of
+then the element is associated with the default region;</p></li><li><p>the element is not associated with any region.</p></li></ol><p>The result of performing the processing described above will be a sequence of
<em>N</em> intermediate synchronic
document instances,
<em>DOC<sub><span>inter<sub>0</sub></span></sub></em> …
-<em>DOC<sub><span>inter<sub>N−1</sub></span></sub></em>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>Where an implementation is able to detect significant similarity between two
+<em>DOC<sub><span>inter<sub>N−1</sub></span></sub></em>.</p><div class="note" id="semantics-smooth-scrolling-recommendation"><p class="prefix"><b>Note:</b></p><p>Where an implementation is able to detect significant similarity between two
adjacent synchronic document instances,
<em>DOC<sub><span>inter<sub>N</sub></span></sub></em>
<em>DOC<sub><span>inter<sub>N−1</sub></span></sub></em>,
@@ -4377,7 +4341,7 @@
<h4><a name="timing-value-timeExpression" id="timing-value-timeExpression"/>10.3.1 <timeExpression></h4><p>A <timeExpression> is used to specify a coordinate along
some time base, where the applicable time base is determined by the
<code>ttp:timeBase</code> parameter, and where the semantics defined
-by <a href="#time-expression-semantics"><b>H Time Expression Semantics</b></a> apply.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>See <a href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, <a href="#parameter-attribute-frameRate"><b>6.2.4 ttp:frameRate</b></a>, <a href="#parameter-attribute-subFrameRate"><b>6.2.9 ttp:subFrameRate</b></a>, and <a href="#parameter-attribute-tickRate"><b>6.2.10 ttp:tickRate</b></a> for further information on
+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-timeBase"><b>6.2.11 ttp:timeBase</b></a>, <a href="#parameter-attribute-frameRate"><b>6.2.4 ttp:frameRate</b></a>, <a href="#parameter-attribute-subFrameRate"><b>6.2.9 ttp:subFrameRate</b></a>, and <a href="#parameter-attribute-tickRate"><b>6.2.10 ttp:tickRate</b></a> for further information on
explicit specification of time base, frame rate, sub-frame rate, and
tick rate.</p></div><table summary="HTML Table" id="timeExpression-syntax" class="syntax"><caption>Syntax Representation – <timeExpression></caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -4455,13 +4419,13 @@
duration value as defined by <a href="#smil21">[SMIL 2.1]</a>.</p></li><li><p>If the governing time base is <code>clock</code>, then time
expressions are considered to be equivalent to wall-clock
based timing in <a href="#smil21">[SMIL 2.1]</a>, where the specific semantics of
-<a href="#time-expression-semantics-clock"><b>H.1 Clock Time Base</b></a> apply.</p></li><li><p>If the governing time base is <code>media</code>, then time
+<a href="#time-expression-semantics-clock"><b>N.1 Clock Time Base</b></a> apply.</p></li><li><p>If the governing time base is <code>media</code>, then time
expressions are considered to be equivalent to offset based timing
in <a href="#smil21">[SMIL 2.1]</a>, where the specific semantics of
-<a href="#time-expression-semantics-media"><b>H.2 Media Time Base</b></a> apply.</p></li><li><p>If the governing time base is <code>smpte</code>, then time
+<a href="#time-expression-semantics-media"><b>N.2 Media Time Base</b></a> apply.</p></li><li><p>If the governing time base is <code>smpte</code>, then time
expressions are considered to be equivalent to either offset
based timing or event based timing in <a href="#smil21">[SMIL 2.1]</a>, where the specific semantics of
-<a href="#time-expression-semantics-smpte"><b>H.3 SMPTE Time Base</b></a> apply.</p></li></ul></div></div><div class="div1">
+<a href="#time-expression-semantics-smpte"><b>N.3 SMPTE Time Base</b></a> apply.</p></li></ul></div></div><div class="div1">
<h2><a name="animation" id="animation"/>11 Animation</h2><p>This section specifies the <em>animation</em> matter of the
core vocabulary catalog, where
animation is to be understood as a separable layer of information that combines
@@ -4820,2100 +4784,31 @@
normative definitions of document type, element type, or attribute type
as defined by the body of this specification, then the body of this
specification takes precedence.</p><div class="div2">
-<h3><a name="dfxp-schema-rnc" id="dfxp-schema-rnc"/>B.1 Relax NG Schema</h3><p>This section specifies a Relax NG Compact Syntax (RNC) <a href="#rng">[RELAX NG]</a> based schema
-for DFXP Content, also available in a <a href="rnc/schema.zip">ZIP
-Archive</a>.</p><div class="div3">
-<h4><a name="rnc-dfxp-driver-schema" id="rnc-dfxp-driver-schema"/>B.1.1 Driver</h4><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 Distribution Format Exchange Profile (DFXP) Schema ..........
-# .......................................................................
-
-# default namespace
-default namespace tt = "http://www.w3.org/ns/ttml"
-
-# generic tt modules
-include "ttaf1-dfxp-datatypes.rnc"
-include "ttaf1-dfxp-classes.rnc"
-include "ttaf1-dfxp-core-attribs.rnc"
-include "ttaf1-dfxp-parameter-attribs.rnc"
-include "ttaf1-dfxp-metadata-attribs.rnc"
-include "ttaf1-dfxp-styling-attribs.rnc"
-include "ttaf1-dfxp-timing-attribs.rnc"
-include "ttaf1-dfxp-parameter-items.rnc"
-include "ttaf1-dfxp-parameters.rnc"
-include "ttaf1-dfxp-metadata-items.rnc"
-include "ttaf1-dfxp-metadata.rnc"
-include "ttaf1-dfxp-styling.rnc"
-include "ttaf1-dfxp-animation.rnc"
-include "ttaf1-dfxp-layout.rnc"
-include "ttaf1-dfxp-content.rnc"
-include "ttaf1-dfxp-head.rnc"
-include "ttaf1-dfxp-document.rnc"
-
-start = TTAF.tt | TTAF.parameters.profile
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div3">
-<h4><a name="rnc-dfxp-modules" id="rnc-dfxp-modules"/>B.1.2 Modules</h4><div class="div4">
-<h5><a name="rnc-dfxp-animation-module" id="rnc-dfxp-animation-module"/>B.1.2.1 Animation Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Animation Module .......................................
-# .......................................................................
-
-# set - discrete animation
-TTAF.set =
- element set {
- TTAF.set.attlist,
- TTAF.set.content
- }
-
-TTAF.set.attlist &=
- TTAF.Core.attrib.class,
- TTAF.Timed.attrib.class,
- (TTAF.Styling.attrib.class |
- TTAF.Styling.ForeignExtension.attrib+ )
-
-TTAF.set.content.extra = empty
-TTAF.set.content =
- (TTAF.Metadata.class*,
- TTAF.set.content.extra*)
-
-TTAF.Animation.extra = empty
-TTAF.Animation.class |=
- TTAF.set |
- TTAF.Animation.extra
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-classes-module" id="rnc-dfxp-classes-module"/>B.1.2.2 Classes Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Class Declarations Module ..............................
-# .......................................................................
-
-# attribute group classes
-TTAF.Core.attrib.class = empty
-TTAF.Metadata.attrib.class = empty
-TTAF.Parameter.attrib.class = empty
-TTAF.RegionBinding.attrib.class = empty
-TTAF.StyleBinding.attrib.class = empty
-TTAF.Styled.attrib.class = empty
-TTAF.Styling.attrib.class = empty
-TTAF.Timed.attrib.class = empty
-TTAF.TimedContainer.attrib.class = empty
-TTAF.TimingInterval.attrib.class = empty
-
-# element group classes
-TTAF.Animation.class = empty
-TTAF.Block.class = empty
-TTAF.BlockNoDiv.class = empty
-TTAF.Inline.class = empty
-TTAF.InlineNoSpan.class = empty
-TTAF.MetadataNoAgent.class = empty
-TTAF.Metadata.class = empty
-TTAF.MetadataItems.class = empty
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-content-module" id="rnc-dfxp-content-module"/>B.1.2.3 Content Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Content Module .........................................
-# .......................................................................
-
-# body - content body
-TTAF.body =
- element body {
- TTAF.body.attlist,
- TTAF.body.content
- }
-
-TTAF.body.attlist &=
- TTAF.Core.attrib.class,
- TTAF.Metadata.attrib.class,
- TTAF.RegionBinding.attrib.class,
- TTAF.Styled.attrib.class,
- TTAF.TimedContainer.attrib.class
-
-TTAF.body.content.extra = empty
-TTAF.body.content =
- (TTAF.Metadata.class*,
- TTAF.Animation.class*,
- (TTAF.Block.class | TTAF.body.content.extra)*)
-
-# div - division
-TTAF.div =
- element div {
- TTAF.div.attlist,
- TTAF.div.content
- }
-
-TTAF.div.attlist &=
- TTAF.Core.attrib.class,
- TTAF.Metadata.attrib.class,
- TTAF.RegionBinding.attrib.class,
- TTAF.Styled.attrib.class,
- TTAF.TimedContainer.attrib.class
-
-TTAF.div.content.extra = empty
-TTAF.div.content =
- (TTAF.Metadata.class*,
- TTAF.Animation.class*,
- (TTAF.Block.class | TTAF.div.content.extra)*)
-
-# p - paragraph
-TTAF.p =
- element p {
- TTAF.p.attlist,
- TTAF.p.content
- }
-
-TTAF.p.attlist &=
- TTAF.Core.attrib.class,
- TTAF.Metadata.attrib.class,
- TTAF.RegionBinding.attrib.class,
- TTAF.Styled.attrib.class,
- TTAF.TimedContainer.attrib.class
-
-TTAF.p.content.extra = empty
-TTAF.p.content =
- (TTAF.Metadata.class*,
- TTAF.Animation.class*,
- (TTAF.Inline.class |
- TTAF.p.content.extra)*)
-
-# span - intra-paragraph inline span
-TTAF.span =
- element span {
- TTAF.span.attlist,
- TTAF.span.content
- }
-
-TTAF.span.attlist &=
- TTAF.Core.attrib.class,
- TTAF.Metadata.attrib.class,
- TTAF.RegionBinding.attrib.class,
- TTAF.Styled.attrib.class,
- TTAF.TimedContainer.attrib.class
-
-TTAF.span.content.extra = empty
-TTAF.span.content =
- (TTAF.Metadata.class*,
- TTAF.Animation.class*,
- (TTAF.Inline.class |
- TTAF.span.content.extra)*)
-
-# br - manual line break
-TTAF.br =
- element br {
- TTAF.br.attlist,
- TTAF.br.content
- }
-
-TTAF.br.attlist &=
- TTAF.Core.attrib.class,
- TTAF.Metadata.attrib.class,
- TTAF.Styled.attrib.class
-
-TTAF.br.content.extra = empty
-TTAF.br.content =
- (TTAF.Metadata.class*,
- TTAF.Animation.class*,
- TTAF.br.content.extra*)
-
-# Block.class
-TTAF.Block.extra = empty
-TTAF.BlockNoDiv.class |=
- TTAF.p | TTAF.Block.extra
-TTAF.Block.class |=
- TTAF.div | TTAF.BlockNoDiv.class
-
-# Inline.class
-TTAF.Inline.extra = empty
-TTAF.InlineNoSpan.class |=
- text | TTAF.br | TTAF.Inline.extra
-TTAF.Inline.class |=
- TTAF.span | TTAF.InlineNoSpan.class
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-core-attribs-module" id="rnc-dfxp-core-attribs-module"/>B.1.2.4 Core Attributes Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Core Attributes Module .................................
-# .......................................................................
-
-TTAF.id.attrib
- = attribute xml:id { xsd:ID }?
-
-TTAF.lang.attrib
- = attribute xml:lang { TTAF.LanguageCode.datatype }?
-
-TTAF.lang.required.attrib
- = attribute xml:lang { TTAF.LanguageCode.datatype }
-
-TTAF.space.attrib
- = attribute xml:space { TTAF.XMLSpace.datatype }?
-
-TTAF.Core.extra.attrib
- = empty
-
-TTAF.Core.attrib.class &=
- TTAF.id.attrib,
- TTAF.lang.attrib,
- TTAF.space.attrib,
- TTAF.Core.extra.attrib
-
-TTAF.Core.required.attrib.class &=
- TTAF.id.attrib,
- TTAF.lang.required.attrib,
- TTAF.space.attrib,
- TTAF.Core.extra.attrib
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-datatypes-module" id="rnc-dfxp-datatypes-module"/>B.1.2.5 Data Types Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Datatypes Module .......................................
-# .......................................................................
-
-TTAF.Alpha.datatype =
- xsd:float { minInclusive = "0" maxInclusive = "1" }
-
-TTAF.Agent.datatype =
- xsd:IDREFS
-
-TTAF.CellResolution.datatype =
- string
-
-TTAF.ClockMode.datatype =
- "local" |
- "gps" |
- "utc"
-
-TTAF.Color.datatype =
- string
-
-TTAF.Direction.datatype =
- "ltr" |
- "rtl"
-
-TTAF.Display.datatype =
- "auto" |
- "none"
-
-TTAF.DisplayAlign.datatype =
- "before" |
- "center" |
- "after"
-
-TTAF.DropMode.datatype =
- "dropNTSC" |
- "dropPAL" |
- "nonDrop"
-
-TTAF.ExtensionDesignator.datatype =
- TTAF.URI.datatype
-
-TTAF.ExtensionValue.datatype =
- "optional" |
- "required" |
- "use"
-
-TTAF.Extent.datatype =
- string
-
-TTAF.FeatureDesignator.datatype =
- TTAF.URI.datatype
-
-TTAF.FeatureValue.datatype =
- "optional" |
- "required" |
- "use"
-
-TTAF.FontFamily.datatype =
- string
-
-TTAF.FontSize.datatype =
- string
-
-TTAF.FontStyle.datatype =
- "normal" |
- "italic" |
- "oblique"
-
-TTAF.FontWeight.datatype =
- "normal" |
- "bold"
-
-TTAF.FrameRate.datatype =
- xsd:positiveInteger
-
-TTAF.FrameRateMultiplier.datatype =
- xsd:string { pattern = "\p{Nd}+\s+\p{Nd}+" }
-
-TTAF.LanguageCode.datatype =
- xsd:NMTOKEN
-
-TTAF.LineHeight.datatype =
- string
-
-TTAF.MarkerMode.datatype =
- "continuous" |
- "discontinuous"
-
-TTAF.MetadataAgentType.datatype =
- "person" |
- "character" |
- "group" |
- "organization" |
- "other"
-
-TTAF.MetadataNameType.datatype =
- "full" |
- "family" |
- "given" |
- "alias" |
- "other"
-
-TTAF.MetadataRoleBaseType.datatype =
- "action" |
- "caption" |
- "description" |
- "dialog" |
- "expletive" |
- "kinesic" |
- "lyrics" |
- "music" |
- "narration" |
- "quality" |
- "sound" |
- "source" |
- "suppressed" |
- "reproduction" |
- "thought" |
- "title" |
- "transcription"
-
-TTAF.Opacity.datatype =
- string
-
-TTAF.Origin.datatype =
- string
-
-TTAF.Overflow.datatype =
- "visible" |
- "hidden"
-
-TTAF.Padding.datatype =
- string
-
-TTAF.PixelAspectRatio.datatype =
- xsd:string { pattern = "\p{Nd}+\s+\p{Nd}+" }
-
-TTAF.Profile.datatype =
- TTAF.URI.datatype
-
-TTAF.Role.datatype =
- xsd:NMTOKENS
-
-TTAF.ShowBackground.datatype =
- "always" |
- "whenActive"
-
-TTAF.SubFrameRate.datatype =
- xsd:positiveInteger
-
-TTAF.TextAlign.datatype =
- "left" |
- "center" |
- "right" |
- "start" |
- "end"
-
-TTAF.TextDecoration.datatype =
- "none" |
- "underline" |
- "noUnderline" |
- "overline" |
- "noOverline" |
- "lineThrough" |
- "noLineThrough"
-
-TTAF.TextOutline.datatype =
- string
-
-TTAF.TickRate.datatype =
- xsd:positiveInteger
-
-TTAF.TimeBase.datatype =
- "media" |
- "smpte" |
- "clock"
-
-TTAF.TimeContainer.datatype =
- "par" |
- "seq"
-
-TTAF.TimeCoordinate.datatype =
- string
-
-TTAF.TimeDuration.datatype =
- string
-
-TTAF.URI.datatype =
- xsd:anyURI
-
-TTAF.UnicodeBidi.datatype =
- "normal" |
- "embed" |
- "bidiOverride"
-
-TTAF.Visibility.datatype =
- "hidden" |
- "visible"
-
-TTAF.WrapOption.datatype =
- "wrap" |
- "noWrap"
-
-TTAF.WritingMode.datatype =
- "lrtb" |
- "rltb" |
- "tbrl" |
- "tblr" |
- "lr" |
- "rl" |
- "tb"
-
-TTAF.XMLSpace.datatype =
- "default" |
- "preserve"
-
-TTAF.ZIndex.datatype =
- string
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-document-module" id="rnc-dfxp-document-module"/>B.1.2.6 Document Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Document Module ........................................
-# .......................................................................
-
-## tt - generic top-level document element type
-TTAF.tt =
- element tt {
- TTAF.tt.attlist,
- TTAF.tt.content
- }
-
-TTAF.tt.attlist &=
- TTAF.Core.required.attrib.class,
- TTAF.Parameter.attrib.class,
- TTAF.extent.attrib
-
-TTAF.tt.content =
- (TTAF.head?, TTAF.body?)
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-head-module" id="rnc-dfxp-head-module"/>B.1.2.7 Header Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Header Module ..........................................
-# .......................................................................
-
-# head - generic header
-TTAF.head =
- element head {
- TTAF.head.attlist,
- TTAF.head.content
- }
-
-TTAF.head.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.head.content.extra = empty
-TTAF.head.content =
- (TTAF.Metadata.class*,
- TTAF.Parameters.class*,
- TTAF.styling?,
- TTAF.layout?,
- TTAF.head.content.extra*)
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-layout-module" id="rnc-dfxp-layout-module"/>B.1.2.8 Layout Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Layout Module ..........................................
-# .......................................................................
-
-# region reference attribute; must reference /head/layout/region
-TTAF.region.attrib
- = attribute region { xsd:IDREF }?
-
-# region binding attribute class
-TTAF.RegionBinding.attrib.class &=
- TTAF.region.attrib
-
-# layout - generic layout container
-TTAF.layout =
- element layout {
- TTAF.layout.attlist,
- TTAF.layout.content
- }
-
-TTAF.layout.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.layout.content.extra = empty
-TTAF.layout.content =
- (TTAF.Metadata.class*,
- TTAF.layout.region*,
- TTAF.layout.content.extra*)
-
-# region - region declaration
-TTAF.layout.region =
- element region {
- TTAF.layout.region.attlist,
- TTAF.layout.region.content
- }
-
-TTAF.layout.region.attlist &=
- TTAF.Core.attrib.class,
- TTAF.TimedContainer.attrib.class,
- TTAF.style.attrib,
- (TTAF.Styling.attrib.class |
- TTAF.Styling.ForeignExtension.attrib+ )
-
-TTAF.layout.region.content.extra = empty
-TTAF.layout.region.content =
- (TTAF.Metadata.class*,
- TTAF.Animation.class*,
- TTAF.styling.style*,
- TTAF.layout.region.content.extra*)
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-metadata-module" id="rnc-dfxp-metadata-module"/>B.1.2.9 Metadata Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Metadata Module ........................................
-# .......................................................................
-
-# namespace prefix bindings
-namespace tt = "http://www.w3.org/ns/ttml"
-namespace ttm = "http://www.w3.org/ns/ttml#metadata"
-namespace local = ""
-
-# meta - generic metadata
-TTAF.metadata =
- element metadata {
- TTAF.metadata.attlist,
- TTAF.metadata.content
- }
-
-TTAF.metadata.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.External.class =
- element * - ( tt:* | ttm:* ) {
- ( attribute * - ( xml:id ) { text }
- | text
- | TTAF.External.class
- )*
- }
-
-TTAF.metadata.content.extra = empty
-TTAF.metadata.content =
- (TTAF.MetadataItems.class |
- TTAF.External.class |
- TTAF.metadata.content.extra)*
-
-TTAF.Metadata.class |=
- TTAF.MetadataItems.class |
- TTAF.metadata
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-metadata-items-module" id="rnc-dfxp-metadata-items-module"/>B.1.2.10 Metadata Items Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Metadata Items Module ......................................
-# .......................................................................
-
-namespace ttm = "http://www.w3.org/ns/ttml#metadata"
-
-## actor - specifies actor
-TTAF.meta.actor =
- element ttm:actor {
- TTAF.meta.actor.attlist,
- TTAF.meta.actor.content
- }
-
-TTAF.meta.actor.attlist &=
- TTAF.Core.attrib.class,
- attribute agent { xsd:IDREF }
-
-TTAF.meta.actor.content.extra = empty
-TTAF.meta.actor.content = empty
-
-## agent - specifies agent
-TTAF.meta.agent =
- element ttm:agent {
- TTAF.meta.agent.attlist,
- TTAF.meta.agent.content
- }
-
-TTAF.meta.agent.attlist &=
- TTAF.Core.attrib.class,
- attribute type { TTAF.MetadataAgentType.datatype }
-
-TTAF.meta.agent.content.extra = empty
-TTAF.meta.agent.content =
- (TTAF.meta.name*,
- TTAF.meta.actor?,
- TTAF.meta.agent.content.extra*)
-
-## copyright - specifies copyright statement
-TTAF.meta.copyright =
- element ttm:copyright {
- TTAF.meta.copyright.attlist,
- TTAF.meta.copyright.content
- }
-
-TTAF.meta.copyright.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.meta.copyright.content.extra = empty
-TTAF.meta.copyright.content = text
-
-## desc - specifies description
-TTAF.meta.desc =
- element ttm:desc {
- TTAF.meta.desc.attlist,
- TTAF.meta.desc.content
- }
-
-TTAF.meta.desc.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.meta.desc.content.extra = empty
-TTAF.meta.desc.content = text
-
-## name - specifies name
-TTAF.meta.name =
- element ttm:name {
- TTAF.meta.name.attlist,
- TTAF.meta.name.content
- }
-
-TTAF.meta.name.attlist &=
- TTAF.Core.attrib.class,
- attribute type { TTAF.MetadataNameType.datatype }
-
-TTAF.meta.name.content.extra = empty
-TTAF.meta.name.content = text
-
-## title - describes title
-TTAF.meta.title =
- element ttm:title {
- TTAF.meta.title.attlist,
- TTAF.meta.title.content
- }
-
-TTAF.meta.title.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.meta.title.content.extra = empty
-TTAF.meta.title.content = text
-
-## MetadataItems.class
-TTAF.MetadataItems.extra = empty
-TTAF.MetadataItems.class |=
- TTAF.meta.agent |
- TTAF.meta.copyright |
- TTAF.meta.desc |
- TTAF.meta.title |
- TTAF.MetadataItems.extra
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-metadata-attribs-module" id="rnc-dfxp-metadata-attribs-module"/>B.1.2.11 Metadata Attributes Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Metadata Attributes Module ..............................
-# .......................................................................
-
-namespace tt = "http://www.w3.org/ns/ttml"
-namespace ttm = "http://www.w3.org/ns/ttml#metadata"
-namespace local = ""
-
-# Standard Metadata Attributes
-
-TTAF.agent.attrib
- = attribute ttm:agent { TTAF.Agent.datatype }?
-TTAF.role.attrib
- = attribute ttm:role { TTAF.Role.datatype }?
-
-# Metadata Attribute Class
-
-TTAF.Metadata.attrib.class &=
- TTAF.agent.attrib,
- TTAF.role.attrib
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-parameters-module" id="rnc-dfxp-parameters-module"/>B.1.2.12 Parameters Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Parameters Module ......................................
-# .......................................................................
-
-TTAF.Parameters.class |=
- TTAF.ParameterItems.class
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-parameter-items-module" id="rnc-dfxp-parameter-items-module"/>B.1.2.13 Parameter Items Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Parameter Items Module .................................
-# .......................................................................
-
-namespace ttp = "http://www.w3.org/ns/ttml#parameter"
-
-# profile - profile definition or use declaration
-TTAF.parameters.profile =
- element ttp:profile {
- TTAF.parameters.profile.attlist,
- TTAF.parameters.profile.content
- }
-
-TTAF.parameters.profile.attlist &=
- TTAF.id.attrib,
- attribute use { TTAF.Profile.datatype }?
-
-TTAF.parameters.profile.content.extra = empty
-TTAF.parameters.profile.content =
- (TTAF.Metadata.class*,
- TTAF.parameters.features*,
- TTAF.parameters.extensions*,
- TTAF.parameters.profile.content.extra*)
-
-# features - container for feature elements
-TTAF.parameters.features =
- element ttp:features {
- TTAF.parameters.features.attlist,
- TTAF.parameters.features.content
- }
-
-TTAF.parameters.features.attlist &=
- TTAF.id.attrib,
- attribute xml:base { TTAF.URI.datatype }?
-
-TTAF.parameters.features.content.extra = empty
-TTAF.parameters.features.content =
- (TTAF.Metadata.class*,
- TTAF.parameters.feature*,
- TTAF.parameters.features.content.extra*)
-
-# feature - feature requirements declaration
-TTAF.parameters.feature =
- element ttp:feature {
- TTAF.parameters.feature.attlist,
- TTAF.parameters.feature.content
- }
-
-TTAF.parameters.feature.attlist =
- TTAF.id.attrib,
- attribute value { TTAF.FeatureValue.datatype }?
-
-TTAF.parameters.feature.content =
- TTAF.FeatureDesignator.datatype
-
-# extensions - container for extension elements
-TTAF.parameters.extensions =
- element ttp:extensions {
- TTAF.parameters.extensions.attlist,
- TTAF.parameters.extensions.content
- }
-
-TTAF.parameters.extensions.attlist &=
- TTAF.id.attrib,
- attribute xml:base { TTAF.URI.datatype }?
-
-TTAF.parameters.extensions.content.extra = empty
-TTAF.parameters.extensions.content =
- (TTAF.Metadata.class*,
- TTAF.parameters.extension*,
- TTAF.parameters.extensions.content.extra*)
-
-# extension - extension requirements declaration
-TTAF.parameters.extension =
- element ttp:extension {
- TTAF.parameters.extension.attlist,
- TTAF.parameters.extension.content
- }
-
-TTAF.parameters.extension.attlist =
- TTAF.id.attrib,
- attribute value { TTAF.ExtensionValue.datatype }?
-
-TTAF.parameters.extension.content =
- TTAF.ExtensionDesignator.datatype
-
-## ParameterItems.class
-TTAF.ParameterItems.extra = empty
-TTAF.ParameterItems.class |=
- TTAF.parameters.profile |
- TTAF.ParameterItems.extra
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-parameter-attribs-module" id="rnc-dfxp-parameter-attribs-module"/>B.1.2.14 Parameter Attributes Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Parameter Attributes Module ............................
-# .......................................................................
-
-namespace ttp = "http://www.w3.org/ns/ttml#parameter"
-
-# Standard Metadata Attributes
-
-TTAF.cellResolution.attrib
- = attribute ttp:cellResolution { TTAF.CellResolution.datatype }?
-TTAF.clockMode.attrib
- = attribute ttp:clockMode { TTAF.ClockMode.datatype }?
-TTAF.dropMode.attrib
- = attribute ttp:dropMode { TTAF.DropMode.datatype }?
-TTAF.frameRate.attrib
- = attribute ttp:frameRate { TTAF.FrameRate.datatype }?
-TTAF.frameRateMultiplier.attrib
- = attribute ttp:frameRateMultiplier { TTAF.FrameRateMultiplier.datatype }?
-TTAF.markerMode.attrib
- = attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
-TTAF.profile.attrib
- = attribute ttp:profile { TTAF.Profile.datatype }?
-TTAF.pixelAspectRatio.attrib
- = attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
-TTAF.subFrameRate.attrib
- = attribute ttp:subFrameRate { TTAF.SubFrameRate.datatype }?
-TTAF.tickRate.attrib
- = attribute ttp:tickRate { TTAF.TickRate.datatype }?
-TTAF.timeBase.attrib
- = attribute ttp:timeBase { TTAF.TimeBase.datatype }?
-
-# Parameter Attribute Class
-
-TTAF.Parameter.attrib.class &=
- TTAF.cellResolution.attrib,
- TTAF.clockMode.attrib,
- TTAF.dropMode.attrib,
- TTAF.frameRate.attrib,
- TTAF.frameRateMultiplier.attrib,
- TTAF.markerMode.attrib,
- TTAF.pixelAspectRatio.attrib,
- TTAF.profile.attrib,
- TTAF.subFrameRate.attrib,
- TTAF.tickRate.attrib,
- TTAF.timeBase.attrib
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-styling-attribs-module" id="rnc-dfxp-styling-attribs-module"/>B.1.2.15 Styling Attributes Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Styling Attributes Module ..............................
-# .......................................................................
-
-namespace tt = "http://www.w3.org/ns/ttml"
-namespace tts = "http://www.w3.org/ns/ttml#styling"
-namespace local = ""
-
-# Standard Style Attributes
-
-TTAF.backgroundColor.attrib
- = attribute tts:backgroundColor { TTAF.Color.datatype }?
-TTAF.color.attrib
- = attribute tts:color { TTAF.Color.datatype }?
-TTAF.direction.attrib
- = attribute tts:direction { TTAF.Direction.datatype }?
-TTAF.display.attrib
- = attribute tts:display { TTAF.Display.datatype }?
-TTAF.displayAlign.attrib
- = attribute tts:displayAlign { TTAF.DisplayAlign.datatype }?
-TTAF.extent.attrib
- = attribute tts:extent { TTAF.Extent.datatype }?
-TTAF.fontFamily.attrib
- = attribute tts:fontFamily { TTAF.FontFamily.datatype }?
-TTAF.fontSize.attrib
- = attribute tts:fontSize { TTAF.FontSize.datatype }?
-TTAF.fontStyle.attrib
- = attribute tts:fontStyle { TTAF.FontStyle.datatype }?
-TTAF.fontWeight.attrib
- = attribute tts:fontWeight { TTAF.FontWeight.datatype }?
-TTAF.lineHeight.attrib
- = attribute tts:lineHeight { TTAF.LineHeight.datatype }?
-TTAF.opacity.attrib
- = attribute tts:opacity { TTAF.Opacity.datatype }?
-TTAF.origin.attrib
- = attribute tts:origin { TTAF.Origin.datatype }?
-TTAF.overflow.attrib
- = attribute tts:overflow { TTAF.Overflow.datatype }?
-TTAF.padding.attrib
- = attribute tts:padding { TTAF.Padding.datatype }?
-TTAF.showBackground.attrib
- = attribute tts:showBackground { TTAF.ShowBackground.datatype }?
-TTAF.textAlign.attrib
- = attribute tts:textAlign { TTAF.TextAlign.datatype }?
-TTAF.textDecoration.attrib
- = attribute tts:textDecoration { TTAF.TextDecoration.datatype }?
-TTAF.textOutline.attrib
- = attribute tts:textOutline { TTAF.TextOutline.datatype }?
-TTAF.unicodeBidi.attrib
- = attribute tts:unicodeBidi { TTAF.UnicodeBidi.datatype }?
-TTAF.visibility.attrib
- = attribute tts:visibility { TTAF.Visibility.datatype }?
-TTAF.wrapOption.attrib
- = attribute tts:wrapOption { TTAF.WrapOption.datatype }?
-TTAF.writingMode.attrib
- = attribute tts:writingMode { TTAF.WritingMode.datatype }?
-TTAF.zIndex.attrib
- = attribute tts:zIndex { TTAF.ZIndex.datatype }?
-
-# Extension Style Attributes
-
-TTAF.Styling.ForeignExtension.attrib =
- attribute * - ( tt:* | tts:* | xml:* | local:* ) { text }
-
-# Styling Attribute Class
-
-TTAF.Styling.attrib.class &=
- TTAF.backgroundColor.attrib,
- TTAF.color.attrib,
- TTAF.direction.attrib,
- TTAF.display.attrib,
- TTAF.displayAlign.attrib,
- TTAF.extent.attrib,
- TTAF.fontFamily.attrib,
- TTAF.fontSize.attrib,
- TTAF.fontStyle.attrib,
- TTAF.fontWeight.attrib,
- TTAF.lineHeight.attrib,
- TTAF.opacity.attrib,
- TTAF.origin.attrib,
- TTAF.overflow.attrib,
- TTAF.padding.attrib,
- TTAF.showBackground.attrib,
- TTAF.textAlign.attrib,
- TTAF.textDecoration.attrib,
- TTAF.textOutline.attrib,
- TTAF.unicodeBidi.attrib,
- TTAF.visibility.attrib,
- TTAF.wrapOption.attrib,
- TTAF.writingMode.attrib,
- TTAF.zIndex.attrib
-
-# Style Binding Attribute Class
-
-TTAF.StyleBinding.attrib.class &=
- TTAF.style.attrib
-
-# Styled Content Attribute Class
-
-TTAF.Styled.extra.attrib = empty
-TTAF.Styled.attrib.class &=
- TTAF.Styling.attrib.class,
- TTAF.StyleBinding.attrib.class,
- TTAF.Styled.extra.attrib
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-styling-module" id="rnc-dfxp-styling-module"/>B.1.2.16 Styling Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Styling Module .........................................
-# .......................................................................
-
-# style reference attribute; must reference /tt/head/styling/style
-TTAF.style.attrib
- = attribute style { xsd:IDREFS }?
-
-# styling - generic styling container
-TTAF.styling =
- element styling {
- TTAF.styling.attlist,
- TTAF.styling.content
- }
-
-TTAF.styling.attlist &=
- TTAF.Core.attrib.class
-
-TTAF.styling.content.extra = empty
-TTAF.styling.content =
- (TTAF.Metadata.class*,
- TTAF.styling.defs.class*,
- TTAF.styling.content.extra*)
-
-# style - style declaration
-TTAF.styling.style =
- element style {
- TTAF.styling.style.attlist,
- TTAF.styling.style.content
- }
-
-TTAF.styling.style.attlist =
- TTAF.Core.attrib.class,
- TTAF.style.attrib,
- (TTAF.Styling.attrib.class |
- TTAF.Styling.ForeignExtension.attrib+ )
-
-TTAF.styling.style.content.extra = empty
-TTAF.styling.style.content =
- (TTAF.styling.style.content.extra)*
-
-# style definitions class
-TTAF.styling.defs.extra = empty
-TTAF.styling.defs.class =
- TTAF.styling.style
- | TTAF.styling.defs.extra
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div><div class="div4">
-<h5><a name="rnc-dfxp-timing-attribs-module" id="rnc-dfxp-timing-attribs-module"/>B.1.2.17 Timing Attributes Module</h5><div class="exampleInner"><pre># .......................................................................
-# TT-AF 1.0 DFXP Timing Attributes Module ...............................
-# .......................................................................
-
-# Timing Attributes
-
-TTAF.timing.begin.attrib
- = attribute begin { TTAF.TimeCoordinate.datatype }?
-TTAF.timing.dur.attrib
- = attribute dur { TTAF.TimeDuration.datatype }?
-TTAF.timing.end.attrib
- = attribute end { TTAF.TimeCoordinate.datatype }?
-TTAF.timing.timeContainer.attrib
- = attribute timeContainer { TTAF.TimeContainer.datatype }?
-
-# Timing Interval Attribute class
-
-TTAF.TimingInterval.extra.attrib = empty
-TTAF.TimingInterval.attrib.class &=
- TTAF.timing.begin.attrib,
- TTAF.timing.dur.attrib,
- TTAF.timing.end.attrib,
- TTAF.TimingInterval.extra.attrib
-
-# Timing Container Attribute class
-
-TTAF.TimingContainer.extra.attrib = empty
-TTAF.TimingContainer.attrib.class &=
- TTAF.timing.timeContainer.attrib,
- TTAF.TimingContainer.extra.attrib
-
-# Timed Content Attribute Class
-
-TTAF.Timed.extra.attrib = empty
-TTAF.Timed.attrib.class &=
- TTAF.TimingInterval.attrib.class,
- TTAF.Timed.extra.attrib
-
-# Timed Content Container Attribute Class
-
-TTAF.TimedContainer.extra.attrib = empty
-TTAF.TimedContainer.attrib.class &=
- TTAF.Timed.attrib.class,
- TTAF.TimingContainer.attrib.class,
- TTAF.TimedContainer.extra.attrib
-
-# .......................................................................
-# .......................................................................
-# .......................................................................
-</pre></div></div></div></div><div class="div2">
-<h3><a name="dfxp-schema-xsd" id="dfxp-schema-xsd"/>B.2 XML Schema Definition (XSD) Schema</h3><p>This section specifies a W3C XML Schema Definition (XSD) <a href="#xsd-1">[XML Schema Part 1]</a> based schema
-for DFXP Content, also available in a <a href="xsd/schema.zip">ZIP
-Archive</a>.</p><div class="div3">
-<h4><a name="xsd-dfxp-driver-schema" id="xsd-dfxp-driver-schema"/>B.2.1 Driver</h4><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml">
- <xs:include schemaLocation="ttaf1-dfxp-document.xsd"/>
-</xs:schema>
-</pre></div></div><div class="div3">
-<h4><a name="xsd-dfxp-modules" id="xsd-dfxp-modules"/>B.2.2 Modules</h4><div class="div4">
-<h5><a name="xsd-dfxp-animation-module" id="xsd-dfxp-animation-module"/>B.2.2.1 Animation Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#styling"
- schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
- <xs:attributeGroup name="set.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class" />
- <xs:attributeGroup ref="tt:Timed.attrib.class" />
- <xs:attributeGroup ref="tts:Styling.attrib.class" />
- </xs:attributeGroup>
- <xs:complexType name="set.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:set.attlist"/>
- </xs:complexType>
- <xs:element name="set" type="tt:set.eltype"/>
- <xs:group name="Animation.class">
- <xs:choice>
- <xs:element ref="tt:set"/>
- </xs:choice>
- </xs:group>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-content-module" id="xsd-dfxp-content-module"/>B.2.2.2 Content Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#metadata"
- schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
- <xs:attributeGroup name="body.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
- <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="div.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
- <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="p.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
- <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="span.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
- <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="br.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
- </xs:attributeGroup>
- <xs:complexType name="body.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="tt:div" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:body.attlist"/>
- </xs:complexType>
- <xs:complexType name="div.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Block.class" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:div.attlist"/>
- </xs:complexType>
- <xs:complexType name="p.eltype" mixed="true">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Inline.class" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:p.attlist"/>
- </xs:complexType>
- <xs:complexType name="span.eltype" mixed="true">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Inline.class" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:span.attlist"/>
- </xs:complexType>
- <xs:complexType name="br.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:br.attlist"/>
- </xs:complexType>
- <xs:element name="body" type="tt:body.eltype"/>
- <xs:element name="div" type="tt:div.eltype"/>
- <xs:element name="p" type="tt:p.eltype"/>
- <xs:element name="span" type="tt:span.eltype"/>
- <xs:element name="br" type="tt:br.eltype"/>
- <xs:group name="BlockNoDiv.class">
- <xs:choice>
- <xs:element ref="tt:p"/>
- </xs:choice>
- </xs:group>
- <xs:group name="Block.class">
- <xs:choice>
- <xs:group ref="tt:BlockNoDiv.class"/>
- <xs:element ref="tt:div"/>
- </xs:choice>
- </xs:group>
- <xs:group name="InlineNoSpan.class">
- <xs:choice>
- <xs:element ref="tt:br"/>
- </xs:choice>
- </xs:group>
- <xs:group name="Inline.class">
- <xs:choice>
- <xs:group ref="tt:InlineNoSpan.class"/>
- <xs:element ref="tt:span"/>
- </xs:choice>
- </xs:group>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-core-attribs-module" id="xsd-dfxp-core-attribs-module"/>B.2.2.3 Core Attributes Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:xml="http://www.w3.org/XML/1998/namespace">
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
- <xs:attributeGroup name="Core.ID.attrib.class">
- <xs:attribute ref="xml:id"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="Core.attrib.class">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute ref="xml:lang"/>
- <xs:attribute ref="xml:space"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="Core.required.attrib.class">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute ref="xml:lang" use="required"/>
- <xs:attribute ref="xml:space"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-datatypes-module" id="xsd-dfxp-datatypes-module"/>B.2.2.4 Data Types Module</h5><div class="exampleInner"><pre><?xml version="1.0" encoding="utf-8"?>
-<xs:schema targetNamespace="http://www.w3.org/ns/ttml#datatype"
- xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype">
- <xs:simpleType name="alpha">
- <xs:restriction base="xs:float">
- <xs:minInclusive value="0"/>
- <xs:maxInclusive value="1"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="agent">
- <xs:restriction base="xs:IDREFS"/>
- </xs:simpleType>
- <xs:simpleType name="cellResolution">
- <xs:annotation>
- <xs:documentation>positiveInteger positiveInteger</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="clockMode">
- <xs:restriction base="xs:token">
- <xs:enumeration value="local"/>
- <xs:enumeration value="gps"/>
- <xs:enumeration value="utc"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="color">
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="direction">
- <xs:restriction base="xs:token">
- <xs:enumeration value="ltr"/>
- <xs:enumeration value="rtl"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="display">
- <xs:restriction base="xs:token">
- <xs:enumeration value="auto"/>
- <xs:enumeration value="none"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="displayAlign">
- <xs:restriction base="xs:token">
- <xs:enumeration value="before"/>
- <xs:enumeration value="center"/>
- <xs:enumeration value="after"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="dropMode">
- <xs:restriction base="xs:token">
- <xs:enumeration value="dropNTSC"/>
- <xs:enumeration value="dropPAL"/>
- <xs:enumeration value="nonDrop"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="extensionDesignator">
- <xs:restriction base="xs:anyURI"/>
- </xs:simpleType>
- <xs:simpleType name="extensionValue">
- <xs:restriction base="xs:token">
- <xs:enumeration value="optional"/>
- <xs:enumeration value="required"/>
- <xs:enumeration value="use"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="extent">
- <xs:annotation>
- <xs:documentation>auto | length length</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="featureDesignator">
- <xs:restriction base="xs:anyURI"/>
- </xs:simpleType>
- <xs:simpleType name="featureValue">
- <xs:restriction base="xs:token">
- <xs:enumeration value="optional"/>
- <xs:enumeration value="required"/>
- <xs:enumeration value="use"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="fontFamily">
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="fontSize">
- <xs:annotation>
- <xs:documentation>length | length length</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="fontStyle">
- <xs:restriction base="xs:token">
- <xs:enumeration value="normal"/>
- <xs:enumeration value="italic"/>
- <xs:enumeration value="oblique"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="fontWeight">
- <xs:restriction base="xs:token">
- <xs:enumeration value="normal"/>
- <xs:enumeration value="bold"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="frameRate">
- <xs:restriction base="xs:positiveInteger"/>
- </xs:simpleType>
- <xs:simpleType name="frameRateMultiplier">
- <xs:annotation>
- <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="\p{Nd}+\s+\p{Nd}+"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="lineHeight">
- <xs:annotation>
- <xs:documentation>normal | length</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="markerMode">
- <xs:restriction base="xs:token">
- <xs:enumeration value="continuous"/>
- <xs:enumeration value="discontinuous"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="metadataAgentType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="person"/>
- <xs:enumeration value="character"/>
- <xs:enumeration value="group"/>
- <xs:enumeration value="organization"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="metadataNameType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="full"/>
- <xs:enumeration value="family"/>
- <xs:enumeration value="given"/>
- <xs:enumeration value="alias"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="metadataRoleBaseType">
- <xs:annotation>
- <xs:documentation>orphan simpleType retained in hope it can be used for role</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:token">
- <xs:enumeration value="action"/>
- <xs:enumeration value="caption"/>
- <xs:enumeration value="description"/>
- <xs:enumeration value="dialog"/>
- <xs:enumeration value="expletive"/>
- <xs:enumeration value="kinesic"/>
- <xs:enumeration value="lyrics"/>
- <xs:enumeration value="music"/>
- <xs:enumeration value="narration"/>
- <xs:enumeration value="quality"/>
- <xs:enumeration value="sound"/>
- <xs:enumeration value="source"/>
- <xs:enumeration value="suppressed"/>
- <xs:enumeration value="reproduction"/>
- <xs:enumeration value="thought"/>
- <xs:enumeration value="title"/>
- <xs:enumeration value="transcription"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="opacity">
- <xs:annotation>
- <xs:documentation>alpha</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="origin">
- <xs:annotation>
- <xs:documentation>auto | length length</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="overflow">
- <xs:restriction base="xs:token">
- <xs:enumeration value="visible"/>
- <xs:enumeration value="hidden"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="padding">
- <xs:annotation>
- <xs:documentation>length length | length length length | length length length length</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="pixelAspectRatio">
- <xs:annotation>
- <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="\p{Nd}+\s+\p{Nd}+"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="profile">
- <xs:restriction base="xs:anyURI"/>
- </xs:simpleType>
- <xs:simpleType name="role">
- <xs:annotation>
- <xs:documentation>metadataRoleBaseType | "x-"string</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:NMTOKENS"/>
- </xs:simpleType>
- <xs:simpleType name="showBackground">
- <xs:restriction base="xs:token">
- <xs:enumeration value="always"/>
- <xs:enumeration value="whenActive"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="subFrameRate">
- <xs:restriction base="xs:positiveInteger"/>
- </xs:simpleType>
- <xs:simpleType name="textAlign">
- <xs:restriction base="xs:token">
- <xs:enumeration value="left"/>
- <xs:enumeration value="center"/>
- <xs:enumeration value="right"/>
- <xs:enumeration value="start"/>
- <xs:enumeration value="end"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="textDecoration">
- <xs:restriction base="xs:token">
- <xs:enumeration value="none"/>
- <xs:enumeration value="underline"/>
- <xs:enumeration value="noUnderline"/>
- <xs:enumeration value="overline"/>
- <xs:enumeration value="noOverline"/>
- <xs:enumeration value="lineThrough"/>
- <xs:enumeration value="noLineThrough"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="textOutline">
- <xs:annotation>
- <xs:documentation>none | length | length length | color length | color length length</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="tickRate">
- <xs:restriction base="xs:positiveInteger"/>
- </xs:simpleType>
- <xs:simpleType name="timeBase">
- <xs:restriction base="xs:token">
- <xs:enumeration value="media"/>
- <xs:enumeration value="smpte"/>
- <xs:enumeration value="clock"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="timeContainer">
- <xs:restriction base="xs:token">
- <xs:enumeration value="par"/>
- <xs:enumeration value="seq"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="timeCoordinate">
- <xs:annotation>
- <xs:documentation>timeExpression</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="timeDuration">
- <xs:annotation>
- <xs:documentation>timeExpression</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="unicodeBidi">
- <xs:restriction base="xs:token">
- <xs:enumeration value="normal"/>
- <xs:enumeration value="embed"/>
- <xs:enumeration value="bidiOverride"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="visibility">
- <xs:restriction base="xs:token">
- <xs:enumeration value="hidden"/>
- <xs:enumeration value="visible"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="wrapOption">
- <xs:restriction base="xs:token">
- <xs:enumeration value="wrap"/>
- <xs:enumeration value="noWrap"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="writingMode">
- <xs:restriction base="xs:token">
- <xs:enumeration value="lrtb"/>
- <xs:enumeration value="rltb"/>
- <xs:enumeration value="tbrl"/>
- <xs:enumeration value="tblr"/>
- <xs:enumeration value="lr"/>
- <xs:enumeration value="rl"/>
- <xs:enumeration value="tb"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="zIndex">
- <xs:annotation>
- <xs:documentation>auto | integer</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
-</xs:schema>
-
-
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-document-module" id="xsd-dfxp-document-module"/>B.2.2.5 Document Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
- xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:import namespace="http://www.w3.org/ns/ttml#metadata"
- schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#parameter"
- schemaLocation="ttaf1-dfxp-parameter-items.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#styling"
- schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-head.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-content.xsd"/>
- <xs:attributeGroup name="tt.attlist">
- <xs:attributeGroup ref="tt:Core.required.attrib.class"/>
- <xs:attributeGroup ref="ttp:Parameter.attrib.class"/>
- <xs:attribute ref="tts:extent"/>
- </xs:attributeGroup>
- <xs:complexType name="tt.eltype">
- <xs:sequence>
- <xs:element ref="tt:head" minOccurs="0" maxOccurs="1"/>
- <xs:element ref="tt:body" minOccurs="0" maxOccurs="1"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:tt.attlist"/>
- </xs:complexType>
- <xs:element name="tt" type="tt:tt.eltype"/>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-head-module" id="xsd-dfxp-head-module"/>B.2.2.6 Header Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
- xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-parameters.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
- <xs:attributeGroup name="head.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:complexType name="head.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Parameters.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="tt:styling" minOccurs="0" maxOccurs="1"/>
- <xs:element ref="tt:layout" minOccurs="0" maxOccurs="1"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:head.attlist"/>
- </xs:complexType>
- <xs:element name="head" type="tt:head.eltype"/>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-layout-module" id="xsd-dfxp-layout-module"/>B.2.2.7 Layout Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#styling"
- schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
- <xs:attributeGroup name="RegionBinding.attrib.class">
- <xs:attribute name="region" type="xs:IDREF"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="layout.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="region.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
- </xs:attributeGroup>
- <xs:complexType name="layout.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="tt:region" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:layout.attlist"/>
- </xs:complexType>
- <xs:complexType name="region.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:region.attlist"/>
- </xs:complexType>
- <xs:element name="layout" type="tt:layout.eltype"/>
- <xs:element name="region" type="tt:region.eltype"/>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-metadata-module" id="xsd-dfxp-metadata-module"/>B.2.2.8 Metadata Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#metadata"
- schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
- <xs:attributeGroup name="metadata.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:complexType name="metadata.eltype" mixed="true">
- <xs:sequence>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:metadata.attlist"/>
- </xs:complexType>
- <xs:element name="metadata" type="tt:metadata.eltype"/>
- <xs:group name="Metadata.class">
- <xs:choice>
- <xs:group ref="ttm:MetadataItems.class"/>
- <xs:element ref="tt:metadata"/>
- </xs:choice>
- </xs:group>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-metadata-items-module" id="xsd-dfxp-metadata-items-module"/>B.2.2.9 Metadata Items Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml#metadata"
- xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
- <xs:import namespace="http://www.w3.org/ns/ttml#datatype"
- schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml"
- schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
- <xs:attributeGroup name="actor.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attribute name="agent" type="xs:IDREF"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="agent.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attribute name="type" type="ttd:metadataAgentType"
- use="required"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="copyright.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="desc.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="name.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attribute name="type" type="ttd:metadataNameType"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="title.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:complexType name="actor.eltype">
- <xs:attributeGroup ref="ttm:actor.attlist"/>
- </xs:complexType>
- <xs:complexType name="agent.eltype">
- <xs:sequence>
- <xs:element ref="ttm:name" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="ttm:actor" minOccurs="0" maxOccurs="1"/>
- </xs:sequence>
- <xs:attributeGroup ref="ttm:agent.attlist"/>
- </xs:complexType>
- <xs:complexType name="copyright.eltype" mixed="true">
- <xs:attributeGroup ref="ttm:copyright.attlist"/>
- </xs:complexType>
- <xs:complexType name="desc.eltype" mixed="true">
- <xs:attributeGroup ref="ttm:desc.attlist"/>
- </xs:complexType>
- <xs:complexType name="name.eltype" mixed="true">
- <xs:attributeGroup ref="ttm:name.attlist"/>
- </xs:complexType>
- <xs:complexType name="title.eltype" mixed="true">
- <xs:attributeGroup ref="ttm:title.attlist"/>
- </xs:complexType>
- <xs:element name="actor" type="ttm:actor.eltype"/>
- <xs:element name="agent" type="ttm:agent.eltype"/>
- <xs:element name="copyright" type="ttm:copyright.eltype"/>
- <xs:element name="desc" type="ttm:desc.eltype"/>
- <xs:element name="name" type="ttm:name.eltype"/>
- <xs:element name="title" type="ttm:title.eltype"/>
- <xs:group name="MetadataItems.class">
- <xs:choice>
- <xs:element ref="ttm:agent"/>
- <xs:element ref="ttm:copyright"/>
- <xs:element ref="ttm:desc"/>
- <xs:element ref="ttm:title"/>
- </xs:choice>
- </xs:group>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-metadata-attribs-module" id="xsd-dfxp-metadata-attribs-module"/>B.2.2.10 Metadata Attributes Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml#metadata"
- xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
- <xs:import namespace="http://www.w3.org/ns/ttml#datatype"
- schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
- <xs:attribute name="agent" type="ttd:agent"/>
- <xs:attribute name="role" type="ttd:role"/>
- <xs:attributeGroup name="Metadata.attrib.class">
- <xs:attribute ref="ttm:agent"/>
- <xs:attribute ref="ttm:role"/>
- </xs:attributeGroup>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-parameters-module" id="xsd-dfxp-parameters-module"/>B.2.2.11 Parameters Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttp="http://www.w3.org/ns/ttml#parameter">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#parameter"
- schemaLocation="ttaf1-dfxp-parameter-items.xsd"/>
- <xs:group name="Parameters.class">
- <xs:choice>
- <xs:group ref="ttp:ParameterItems.class"/>
- </xs:choice>
- </xs:group>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-parameter-items-module" id="xsd-dfxp-parameter-items-module"/>B.2.2.12 Parameter Items Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml#parameter"
- xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype"
- xmlns:ttp="http://www.w3.org/ns/ttml#parameter">
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#datatype"
- schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml"
- schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-parameter-attribs.xsd"/>
- <xs:attributeGroup name="profile.attlist">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute name="use" type="ttd:profile"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="features.attlist">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute ref="xml:base"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="feature.attlist">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute name="value" type="ttd:featureValue"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="extensions.attlist">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute ref="xml:base"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="extension.attlist">
- <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
- <xs:attribute name="value" type="ttd:extensionValue"/>
- <xs:anyAttribute namespace="##other"/>
- </xs:attributeGroup>
- <xs:complexType name="profile.eltype">
- <xs:sequence>
- <xs:element ref="ttp:features" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="ttp:extensions" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="ttp:profile.attlist"/>
- </xs:complexType>
- <xs:complexType name="features.eltype">
- <xs:sequence>
- <xs:element ref="ttp:feature" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="ttp:features.attlist"/>
- </xs:complexType>
- <xs:complexType name="feature.eltype">
- <xs:simpleContent>
- <xs:extension base="ttd:featureDesignator">
- <xs:attributeGroup ref="ttp:feature.attlist"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="extensions.eltype">
- <xs:sequence>
- <xs:element ref="ttp:extension" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="ttp:extensions.attlist"/>
- </xs:complexType>
- <xs:complexType name="extension.eltype">
- <xs:simpleContent>
- <xs:extension base="ttd:extensionDesignator">
- <xs:attributeGroup ref="ttp:extension.attlist"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:element name="profile" type="ttp:profile.eltype"/>
- <xs:element name="features" type="ttp:features.eltype"/>
- <xs:element name="feature" type="ttp:feature.eltype"/>
- <xs:element name="extensions" type="ttp:extensions.eltype"/>
- <xs:element name="extension" type="ttp:extension.eltype"/>
- <xs:group name="ParameterItems.class">
- <xs:choice>
- <xs:element ref="ttp:profile"/>
- </xs:choice>
- </xs:group>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-parameter-attribs-module" id="xsd-dfxp-parameter-attribs-module"/>B.2.2.13 Parameter Attributes Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml#parameter"
- xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype"
- xmlns:ttp="http://www.w3.org/ns/ttml#parameter">
- <xs:import namespace="http://www.w3.org/ns/ttml#datatype"
- schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
- <xs:attribute name="cellResolution" type="ttd:cellResolution"/>
- <xs:attribute name="clockMode" type="ttd:clockMode"/>
- <xs:attribute name="dropMode" type="ttd:dropMode"/>
- <xs:attribute name="frameRate" type="ttd:frameRate"/>
- <xs:attribute name="frameRateMultiplier" type="ttd:frameRateMultiplier"/>
- <xs:attribute name="markerMode" type="ttd:markerMode"/>
- <xs:attribute name="profile" type="ttd:profile"/>
- <xs:attribute name="pixelAspectRatio" type="ttd:pixelAspectRatio"/>
- <xs:attribute name="subFrameRate" type="ttd:subFrameRate"/>
- <xs:attribute name="tickRate" type="ttd:tickRate"/>
- <xs:attribute name="timeBase" type="ttd:timeBase"/>
- <xs:attributeGroup name="Parameter.attrib.class">
- <xs:attribute ref="ttp:cellResolution"/>
- <xs:attribute ref="ttp:clockMode"/>
- <xs:attribute ref="ttp:dropMode"/>
- <xs:attribute ref="ttp:frameRate"/>
- <xs:attribute ref="ttp:frameRateMultiplier"/>
- <xs:attribute ref="ttp:markerMode"/>
- <xs:attribute ref="ttp:profile"/>
- <xs:attribute ref="ttp:pixelAspectRatio"/>
- <xs:attribute ref="ttp:subFrameRate"/>
- <xs:attribute ref="ttp:tickRate"/>
- <xs:attribute ref="ttp:timeBase"/>
- </xs:attributeGroup>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-styling-attribs-module" id="xsd-dfxp-styling-attribs-module"/>B.2.2.14 Styling Attributes Module</h5><div class="exampleInner"><pre><?xml version="1.0" encoding="utf-8"?>
-<xs:schema targetNamespace="http://www.w3.org/ns/ttml#styling" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:import namespace="http://www.w3.org/ns/ttml#datatype"
- schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
- <xs:attribute name="backgroundColor" type="ttd:color"/>
- <xs:attribute name="color" type="ttd:color"/>
- <xs:attribute name="direction" type="ttd:direction"/>
- <xs:attribute name="display" type="ttd:display"/>
- <xs:attribute name="displayAlign" type="ttd:displayAlign"/>
- <xs:attribute name="extent" type="ttd:extent"/>
- <xs:attribute name="fontFamily" type="ttd:fontFamily"/>
- <xs:attribute name="fontSize" type="ttd:fontSize"/>
- <xs:attribute name="fontStyle" type="ttd:fontStyle"/>
- <xs:attribute name="fontWeight" type="ttd:fontWeight"/>
- <xs:attribute name="lineHeight" type="ttd:lineHeight"/>
- <xs:attribute name="opacity" type="ttd:opacity"/>
- <xs:attribute name="origin" type="ttd:origin"/>
- <xs:attribute name="overflow" type="ttd:overflow"/>
- <xs:attribute name="padding" type="ttd:padding"/>
- <xs:attribute name="showBackground" type="ttd:showBackground"/>
- <xs:attribute name="textAlign" type="ttd:textAlign"/>
- <xs:attribute name="textDecoration" type="ttd:textDecoration"/>
- <xs:attribute name="textOutline" type="ttd:textOutline"/>
- <xs:attribute name="unicodeBidi" type="ttd:unicodeBidi"/>
- <xs:attribute name="visibility" type="ttd:visibility"/>
- <xs:attribute name="wrapOption" type="ttd:wrapOption"/>
- <xs:attribute name="writingMode" type="ttd:writingMode"/>
- <xs:attribute name="zIndex" type="ttd:zIndex"/>
- <xs:attributeGroup name="Styling.attrib.class">
- <xs:attribute ref="tts:backgroundColor"/>
- <xs:attribute ref="tts:color"/>
- <xs:attribute ref="tts:direction"/>
- <xs:attribute ref="tts:display"/>
- <xs:attribute ref="tts:displayAlign"/>
- <xs:attribute ref="tts:extent"/>
- <xs:attribute ref="tts:fontFamily"/>
- <xs:attribute ref="tts:fontSize"/>
- <xs:attribute ref="tts:fontStyle"/>
- <xs:attribute ref="tts:fontWeight"/>
- <xs:attribute ref="tts:lineHeight"/>
- <xs:attribute ref="tts:opacity"/>
- <xs:attribute ref="tts:origin"/>
- <xs:attribute ref="tts:overflow"/>
- <xs:attribute ref="tts:padding"/>
- <xs:attribute ref="tts:showBackground"/>
- <xs:attribute ref="tts:textAlign"/>
- <xs:attribute ref="tts:textDecoration"/>
- <xs:attribute ref="tts:textOutline"/>
- <xs:attribute ref="tts:unicodeBidi"/>
- <xs:attribute ref="tts:visibility"/>
- <xs:attribute ref="tts:wrapOption"/>
- <xs:attribute ref="tts:writingMode"/>
- <xs:attribute ref="tts:zIndex"/>
- </xs:attributeGroup>
-</xs:schema>
-
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-styling-module" id="xsd-dfxp-styling-module"/>B.2.2.15 Styling Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:tt="http://www.w3.org/ns/ttml"
- xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
- xmlns:tts="http://www.w3.org/ns/ttml#styling">
- <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
- <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
- <xs:import namespace="http://www.w3.org/ns/ttml#styling"
- schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
- <xs:attributeGroup name="StyleBinding.attrib.class">
- <xs:attribute name="style" type="xs:IDREFS"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="Styled.attrib.class">
- <xs:attributeGroup ref="tt:StyleBinding.attrib.class"/>
- <xs:attributeGroup ref="tts:Styling.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="styling.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="style.attlist">
- <xs:attributeGroup ref="tt:Core.attrib.class"/>
- <xs:attributeGroup ref="tt:Styled.attrib.class"/>
- </xs:attributeGroup>
- <xs:complexType name="styling.eltype">
- <xs:sequence>
- <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attributeGroup ref="tt:styling.attlist"/>
- </xs:complexType>
- <xs:complexType name="style.eltype">
- <xs:attributeGroup ref="tt:style.attlist"/>
- </xs:complexType>
- <xs:element name="styling" type="tt:styling.eltype"/>
- <xs:element name="style" type="tt:style.eltype"/>
-</xs:schema>
-
-
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-timing-attribs-module" id="xsd-dfxp-timing-attribs-module"/>B.2.2.16 Timing Attributes Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/ns/ttml" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ttd="http://www.w3.org/ns/ttml#datatype"
- xmlns:tt="http://www.w3.org/ns/ttml">
- <xs:import namespace="http://www.w3.org/ns/ttml#datatype"
- schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
- <xs:attributeGroup name="TimingInterval.attrib.class">
- <xs:attribute name="begin" type="ttd:timeCoordinate"/>
- <xs:attribute name="dur" type="ttd:timeDuration"/>
- <xs:attribute name="end" type="ttd:timeCoordinate"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="TimingContainer.attrib.class">
- <xs:attribute name="timeContainer" type="ttd:timeContainer"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="Timed.attrib.class">
- <xs:attributeGroup ref="tt:TimingInterval.attrib.class"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="TimedContainer.attrib.class">
- <xs:attributeGroup ref="tt:Timed.attrib.class"/>
- <xs:attributeGroup ref="tt:TimingContainer.attrib.class"/>
- </xs:attributeGroup>
-</xs:schema>
-</pre></div></div><div class="div4">
-<h5><a name="xsd-dfxp-xml-attrs-module" id="xsd-dfxp-xml-attrs-module"/>B.2.2.17 XML Attributes Module</h5><div class="exampleInner"><pre><xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:attribute name="base" type="xs:anyURI"/>
- <xs:attribute name="id" type="xs:ID"/>
- <xs:attribute name="lang" type="xs:language"/>
- <xs:attribute name="space">
- <xs:simpleType>
- <xs:restriction base="xs:NCName">
- <xs:enumeration value="default"/>
- <xs:enumeration value="preserve"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
-</xs:schema>
-</pre></div></div></div></div></div><div class="div1">
+<h3><a name="dfxp-schema-rnc" id="dfxp-schema-rnc"/>B.1 Relax NG Schema</h3><p>A Relax NG Compact Syntax (RNC) <a href="#rng">[RELAX NG]</a> based schema
+for TTML Content is available at <a href="rnc/schema.zip">ZIP
+Archive</a>. This schema does not normatively define the validity
+of Timed Text Markup Language content as defined by this specification.
+In particular, the formal validity of TTML content
+is defined by <a href="#conformance-content"><b>3.1 Content Conformance</b></a>.</p></div><div class="div2">
+<h3><a name="dfxp-schema-xsd" id="dfxp-schema-xsd"/>B.2 XML Schema Definition (XSD) Schema</h3><p>A W3C XML Schema Definition (XSD) <a href="#xsd-1">[XML Schema Part 1]</a> based schema
+for TTML Content is available at <a href="xsd/schema.zip">ZIP
+Archive</a>. This schema does not normatively define the validity
+of Timed Text Markup Language content as defined by this specification.
+In particular, the formal validity of TTML content
+is defined by <a href="#conformance-content"><b>3.1 Content Conformance</b></a>.</p></div></div><div class="div1">
<h2><a name="media-type-registration" id="media-type-registration"/>C Media Type Registration</h2><p><em>This appendix is normative.</em></p><p>This appendix registers a new MIME media type,
"application/ttml+xml" in conformance with
<a href="http://www.ietf.org/rfc/rfc4288.txt">BCP 13</a> and
<a href="http://www.w3.org/2002/06/registering-mediatype.html">W3CRegMedia</a>.
The information in this appendix is being submitted to the Internet
Engineering Steering Group (IESG) for review, approval, and
-registration with the Internet Assigned Numbers Authority (IANA).</p><dl><dt class="label">Type name:</dt><dd><p>application</p></dd><dt class="label">Subtype name:</dt><dd><p>ttml+xml</p></dd><dt class="label">Required parameters:</dt><dd><p>None.</p></dd><dt class="label">Optional parameters:</dt><dd><dl><dt class="label">charset</dt><dd><p>If specified, must be <code>utf-8</code> or <code>utf-16</code>; otherwise, if not specified or
-if the specified value is inconsistent with the value of the <code>encoding</code> parameter of the XML Declaration
-(if present), then the semantics of <a href="#rfc3023">[XML Media Types]</a> §3.2 apply.</p></dd><dt class="label">profile</dt><dd><p>The document profile of a TTML document may be specified using
+registration with the Internet Assigned Numbers Authority (IANA).</p><dl><dt class="label">Type name:</dt><dd><p>application</p></dd><dt class="label">Subtype name:</dt><dd><p>ttml+xml</p></dd><dt class="label">Required parameters:</dt><dd><p>None.</p></dd><dt class="label">Optional parameters:</dt><dd><dl><dt class="label">charset</dt><dd><p>If specified, the <code>charset</code> parameter must match the XML encoding declaration, or if absent, the actual encoding.</p></dd><dt class="label">profile</dt><dd><p>The document profile of a TTML document may be specified using
an optional <code>profile</code> parameter, which, if specified,
the value of which must adhere to the syntax and semantics of
<code>ttp:profile</code> parameter defined by
Section
<a href="#parameter-attribute-profile"><b>6.2.8 ttp:profile</b></a>
-of the published specification.</p></dd></dl></dd><dt class="label">Encoding considerations:</dt><dd><p>Same for application/xml. See <a href="#xml-media">[XML Media]</a>, Section
+of the published specification.</p></dd></dl></dd><dt class="label">Encoding considerations:</dt><dd><p>Same for application/xml, except constrained to either UTF-8 or UTF-16. See <a href="#xml-media">[XML Media]</a>, Section
3.2.</p></dd><dt class="label">Security considerations:</dt><dd><p>As with other XML types and as noted in
<a href="#xml-media">[XML Media]</a>
Section 10, repeated expansion of maliciously constructed XML entities
@@ -6921,20 +4816,24 @@
processors in constrained environments to fail.</p><p>In addition, because of the extensibility features for TTML and of XML
in general, it is possible that "application/ttml+xml" may describe content
that has security implications beyond those described here. However,
+TTML does not provide for any sort of active or executable content, and
if the processor follows only the normative semantics of the published
specification, this content will be outside TTML namespaces and
may be ignored. Only in the case where the processor recognizes and
processes the additional content, or where further processing of that
content is dispatched to other processors, would security issues
potentially arise. And in that case, they would fall outside the
-domain of this registration document.</p></dd><dt class="label">Interoperability considerations:</dt><dd><p>The published specification describes processing semantics that dictate
+domain of this registration document.</p><p>Although not prohibited, there are no expectations that XML signatures
+or encryption would normally be employed.</p></dd><dt class="label">Interoperability considerations:</dt><dd><p>The published specification describes processing semantics that dictate
behavior that must be followed when dealing with, among other things,
unrecognized elements and attributes, both in TTML namespaces and in
other namespaces.</p><p>Because TTML is extensible, conformant "application/ttml+xml" processors must
expect that content received is well-formed XML, but it cannot be
guaranteed that the content is valid to a particular DTD or Schema or
that the processor will recognize all of the elements and attributes
-in the document.</p><p/></dd><dt class="label">Published specification:</dt><dd><p><a href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text Markup Language (TTML) 1.0</a>.</p></dd><dt class="label">Applications that use this media type:</dt><dd><p> TTML is used in the television industry for the purpose of authoring, transcoding and exchanging timed text information and for delivering captions for television material repurposed for the internet.</p><p>There is partial and full support of TTML in components used by several Web browsers plugins, and in a number of caption authoring tools.</p></dd><dt class="label">Additional information:</dt><dd><dl><dt class="label">Magic number(s):</dt><dd/><dt class="label">File extension(s):</dt><dd><p>.ttml</p></dd><dt class="label">Macintosh file type code(s):</dt><dd><p>"TTML"</p></dd><dt class="label">Fragment identifiers:</dt><dd><p>For documents labeled as application/ttml+xml, the fragment identifier notation is intended to be used with xml:id attributes, as described in section 7.2.1 of the <a href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text Markup Language (TTML) 1.0</a> specification.</p></dd></dl></dd><dt class="label">Person & email address to contact for further information:</dt><dd><p>Timed Text Working Group (public-tt@w3.org)</p></dd><dt class="label">Intended usage:</dt><dd><p>COMMON</p></dd><dt class="label">Restrictions on usage:</dt><dd><p>None</p></dd><dt class="label">Author:</dt><dd><p>The published specification is a work product of the World Wide Web
+in the document.</p><p/></dd><dt class="label">Published specification:</dt><dd><p>This media type registration is extracted from Appendix C Media Type
+Registration of the Timed Text Markup Language (TTML) 1.0 specification:
+<a href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text Markup Language (TTML) 1.0</a>.</p></dd><dt class="label">Applications that use this media type:</dt><dd><p> TTML is used in the television industry for the purpose of authoring, transcoding and exchanging timed text information and for delivering captions for television material repurposed for the internet.</p><p>There is partial and full support of TTML in components used by several Web browsers plugins, and in a number of caption authoring tools.</p></dd><dt class="label">Additional information:</dt><dd><dl><dt class="label">Magic number(s):</dt><dd/><dt class="label">File extension(s):</dt><dd><p>.ttml</p></dd><dt class="label">Macintosh file type code(s):</dt><dd><p>"TTML"</p></dd><dt class="label">Fragment identifiers:</dt><dd><p>For documents labeled as application/ttml+xml, the fragment identifier notation is intended to be used with xml:id attributes, as described in section 7.2.1 of the <a href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text Markup Language (TTML) 1.0</a> specification.</p></dd></dl></dd><dt class="label">Person & email address to contact for further information:</dt><dd><p>Timed Text Working Group (public-tt@w3.org)</p></dd><dt class="label">Intended usage:</dt><dd><p>COMMON</p></dd><dt class="label">Restrictions on usage:</dt><dd><p>None</p></dd><dt class="label">Author:</dt><dd><p>The published specification is a work product of the World Wide Web
Consortium's Timed Text (TT) Working Group.</p></dd><dt class="label">Change controller:</dt><dd><p>The W3C has change control over this specification.</p></dd></dl></div><div class="div1">
<h2><a name="features" id="features"/>D Features</h2><p><em>This appendix is normative.</em></p><p>This appendix specifies (1) a set of feature designations, each of which
labels one or more syntactic and/or semantic features defined by this
@@ -8273,122 +6172,7 @@
</profile>
</pre></div></div></div><div class="div1">
-<h2><a name="concrete-encoding" id="concrete-encoding"/>G Concrete Encoding</h2><p><em>This appendix is normative.</em></p><p>In the absence of other requirements, a TTML document should be concretely encoded as a
-well-formed XML 1.0 <a href="#xml10">[XML 1.0]</a> document using the UTF-8 character encoding.</p></div><div class="div1">
-<h2><a name="time-expression-semantics" id="time-expression-semantics"/>H Time Expression Semantics</h2><p><em>This appendix is normative.</em></p><div class="div2">
-<h3><a name="time-expression-semantics-clock" id="time-expression-semantics-clock"/>H.1 Clock Time Base</h3><p>When operating with the <code>clock</code> time base, the following semantics apply for interpreting time expressions,
-as defined by <a href="#timing-value-timeExpression"><timeExpression></a>, and their relationship to media time and local real time.</p><p>The clock time base <span class="strong"><code>C</code></span> is related to local real time <span class="strong"><code>R</code></span>
-expressed in an arbitrary (implementation defined) epoch <span class="strong"><code>E</code></span>
-as follows:</p><table summary="HTML Table" id="clock-time-and-real-time" class="semantics"><caption>TTML Semantics – Clock Time and Real Time Relationship</caption><tbody><tr><td>
-<blockquote><p><br/>
-<code class="formulae">R = C + epochOffset + discontinuityOffset</code>
-<br/><br/><br/>
-where <code>C ∈ ℜ</code>, <code>0 ≤ C < ∞</code>, <code>C</code> in seconds since the most immediately prior midnight of the reference clock base;
-<br/><br/>
-<code>epochOffset ∈ ℜ</code>, <code>0 ≤ epochOffset < ∞</code>, <code>epochOffset</code> in seconds, with 0 being the beginning
-of epoch <code>E</code>, and where the value of <code>epochOffset</code> is determined from the computed value of the <code>ttp:clockMode</code> parameter
-as follows:
-<br/><br/>
-(1) if <code>local</code>, then the difference between the local real time at the most immediately prior local midnight and the local real time
-at the beginning of epoch <code>E</code>, expressed in seconds;
-<br/><br/>
-(2) if <code>gps</code>, then the difference between the GPS time at the most immediately prior GPS midnight
-and the GPS time at the beginning of epoch <code>E</code>, expressed in seconds;
-<br/><br/>
-(3) if <code>utc</code>, then the difference between the UTC time at the most immediately prior UTC midnight
-and the UTC time at the beginning of epoch <code>E</code>, expressed in seconds;
-<br/><br/>
-<code>discontinuityOffset ∈ ℜ</code>, <code>−∞ < discontinuityOffset < ∞</code>, <code>discontinuityOffset</code> in seconds,
-and where the value of <code>discontinuityOffset</code> is equal to the sum of leap seconds (and fractions thereof) that have been added (or subtracted) since the
-most immediately prior midnight in the reference clock base;
-<br/><br/>
-and <code>epochOffset</code> and <code>discontinuityOffset</code> are determined once and only once prior to the beginning of the <em>Root Temporal Extent</em> such that
-during the period between value determination and the beginning of the <em>Root Temporal Extent</em> there occurs no local midnight or reference clock base discontinuity.
-<br/></p></blockquote>
-</td></tr></tbody></table><p>Time value expressions, as denoted by a <a href="#timing-value-timeExpression"><timeExpression></a>, are related to
-clock time <span class="strong"><code>C</code></span> as follows:</p><table summary="HTML Table" id="time-expressions-and-clock-time" class="semantics"><caption>TTML Semantics – Time Expressions and Clock Time Relationship</caption><tbody><tr><td>
-<blockquote><p>
-If a time expression uses the <em>clock-time</em> form or an <em>offset-time</em> form that doesn't use the ticks (<code>t</code>) metric, then:
-<br/><br/><br/>
-<code class="formulae">
-C = 3600 * hours + 60 * minutes + seconds
-</code>
-<br/><br/><br/>
-where
-<code>hours</code>,
-<code>minutes</code>,
-<code>seconds</code> components are extracted from time expression if present, or zero if not present.
-<br/><br/>
-Otherwise, if a time expression uses an <em>offset-time</em> form that uses the ticks (<code>t</code>) metric, then:
-<br/><br/><br/>
-<code class="formulae">
-C = ticks / tickRate
-</code>
-<br/><br/></p></blockquote>
-</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>The <em>frames</em> and <em>sub-frames</em> terms and the frames (<code>f</code>) metric of time expressions do not apply when using
-the <code>clock</code> time base.</p></div><p>The clock time base <span class="strong"><code>C</code></span> is independent of media time <span class="strong"><code>M</code></span>:</p><table summary="HTML Table" id="clock-time-and-media-time" class="semantics"><caption>TTML Semantics – Clock Time and Media Time Relationship</caption><tbody><tr><td>
-<blockquote><p><br/>
-<code class="formulae">M ¬∝ C</code>
-<br/><br/></p></blockquote>
-</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>That is to say, timing is disconnected from (not necessarily proportional to) media time when
-the <code>clock</code> time base is used. For example, if the media play rate is zero (0), media playback is suspended; however, timing coordinates
-will continue to advance according to the natural progression of clock time in direct proportion to the reference clock base. Furthermore, if the media play rate changes
-during playback, presentation timing is not affected.
-</p></div></div><div class="div2">
-<h3><a name="time-expression-semantics-media" id="time-expression-semantics-media"/>H.2 Media Time Base</h3><p>When operating with the <code>media</code> time base, the following semantics apply for interpreting time expressions,
-as defined by <a href="#timing-value-timeExpression"><timeExpression></a>, and their relationship to media time and local real time.</p><p>The media time base <span class="strong"><code>M</code></span> is related to local real time <span class="strong"><code>R</code></span>
-expressed in an arbitrary (implementation defined) epoch <span class="strong"><code>E</code></span> as follows:</p><table summary="HTML Table" id="media-time-and-real-time" class="semantics"><caption>TTML Semantics – Media Time and Real Time Relationship</caption><tbody><tr><td>
-<blockquote><p><br/>
-<code class="formulae">R = playRate * M + epochOffset</code>
-<br/><br/><br/>
-where <code>M ∈ ℜ</code>, <code>0 ≤ M < ∞</code>, <code>M</code> in seconds, with 0 corresponding to the beginning of the <em>Root Temporal Extent</em>;
-<br/><br/>
-<code>playRate ∈ ℜ</code>, <code>−∞ < playRate < ∞</code>, <code>playRate</code> is unit-less, and where the value of
-<code>playRate</code> is determined by the document processing context;
-<br/><br/>
-and <code>epochOffset ∈ ℜ</code>, <code>0 ≤ epochOffset < ∞</code>, <code>epochOffset</code> in seconds, with 0 corresponding to the beginning of
-an epoch <code>E</code>, and where the value of <code>epochOffset</code> is the difference between the local real time at the beginning of the
-<em>Root Temporal Extent</em> and the local real time at the the beginning of epoch <code>E</code>, expressed in seconds.
-</p></blockquote>
-</td></tr></tbody></table><p>Time value expressions, as denoted by a <a href="#timing-value-timeExpression"><timeExpression></a>, are related to
-media time <span class="strong"><code>M</code></span> in accordance to the
-<code>ttp:frameRate</code>, <code>ttp:subFrameRate</code>, and <code>ttp:frameRateMultipler</code> parameters as follows:</p><table summary="HTML Table" id="time-expressions-and-media-time" class="semantics"><caption>TTML Semantics – Time Expressions and Media Time Relationship</caption><tbody><tr><td>
-<blockquote><p>
-If a time expression uses a <em>clock-time</em> form or an <em>offset-time</em> form that doesn't use the ticks (<code>t</code>) metric, then:
-<br/><br/><br/>
-<code class="formulae">
-M = containerBegin + 3600 * hours + 60 * minutes + seconds + ((frames + (subFrames / subFrameRate)) / effectiveFrameRate)
-</code>
-<br/><br/><br/>
-where <code>containerBegin</code> is the media time that corresponds to the beginning of the nearest ancestor time container or
-zero (0) if this time container is the <em>Root Temporal Extent</em>;
-<br/><br/>
-the <code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>frames</code>, <code>subFrames</code> components
-are extracted from time expression if present, or zero if not present;
-<br/><br/>
-<code>subFrameRate</code> is the computed value of the <code>ttp:subFrameRate</code> parameter;
-<br/><br/>
-and <code>effectiveFrameRate</code> (in frames per second) is <code>frameRate * frameRateMultipler</code> where
-<code>frameRate</code> is the computed value of the <code>ttp:frameRate</code> parameter and
-<code>frameRateMultipler</code> is the computed value of the <code>ttp:frameRateMultiplier</code> parameter.
-<br/><br/>
-Otherwise, if a time expression uses an <em>offset-time</em> form that uses the ticks (<code>t</code>) metric, then:
-<br/><br/><br/>
-<code class="formulae">
-M = containerBegin + ticks / tickRate
-</code>
-<br/><br/><br/>
-where <code>containerBegin</code> is as described above;
-<br/><br/>
-the <code>ticks</code> component is extracted from time expression;
-<br/><br/>
-and <code>tickRate</code> is the computed value of the <code>ttp:tickRate</code> parameter;
-<br/></p></blockquote>
-</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>If the computed <code>frameRateMultipler</code> ratio is not integral, then <code>effectiveFrameRate</code> will be a non-integral rational.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>The above formalisms assumes that the <em>Root Temporal Extent</em> corresponds with the beginning of a related media object. If
-this assumption doesn't hold, then an additional offset that accounts for the difference may be introduced when computing media time <code>M</code>.</p></div></div><div class="div2">
-<h3><a name="time-expression-semantics-smpte" id="time-expression-semantics-smpte"/>H.3 SMPTE Time Base</h3><p>When operating with the <code>smpte</code> time base, the following semantics apply for interpreting time expressions,
-as defined by <a href="#timing-value-timeExpression"><timeExpression></a>, and their relationship to media time and local real time.</p></div></div><div class="div1">
-<h2><a name="references" id="references"/>I References</h2><p><em>This appendix is normative.</em></p><dl><dt class="label"><a name="css2" id="css2"/>CSS2</dt><dd>Bert Bos et al.,
+<h2><a name="references" id="references"/>G References</h2><p><em>This appendix is normative.</em></p><dl><dt class="label"><a name="css2" id="css2"/>CSS2</dt><dd>Bert Bos et al.,
<a href="http://www.w3.org/TR/1998/REC-CSS2-19980512/"><cite>Cascading
Style Sheets, Level 2</cite></a>, W3C Recommendation, 12
May 1998. (See
@@ -8489,7 +6273,7 @@
W3C Recommendation, 05 December 2006. (See
<a href="http://www.w3.org/TR/2006/REC-xsl11-20061205/">http://www.w3.org/TR/2006/REC-xsl11-20061205/</a>.)
</dd></dl></div><div class="div1">
-<h2><a name="other-references" id="other-references"/>J Other References (Non-Normative)</h2><dl><dt class="label"><a name="ccreq" id="ccreq"/>CC-DECODER-REQ</dt><dd><a href="http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml"><cite>Closed Caption Decoder
+<h2><a name="other-references" id="other-references"/>H Other References (Non-Normative)</h2><dl><dt class="label"><a name="ccreq" id="ccreq"/>CC-DECODER-REQ</dt><dd><a href="http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml"><cite>Closed Caption Decoder
Requirements for Analog Television</cite></a>,
United States Code of Federal Regulations, Title 47, Volume 1, Part 15, § 15.119. (See
<a href="http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml">http://www.gpo.gov/fdsys/pkg/CFR-2005-title47-vol1/xml/CFR-2005-title47-vol1-sec15-119.xml</a>.)
@@ -8546,7 +6330,7 @@
August 2002. (See
<a href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/">http://www.w3.org/TR/2002/REC-xhtml1-20020801/</a>.)
</dd></dl></div><div class="div1">
-<h2><a name="requirements" id="requirements"/>K Requirements (Non-Normative)</h2><p>The Distribution Format Exchange Profile (DFXP) of the Timed Text Authoring
+<h2><a name="requirements" id="requirements"/>I Requirements (Non-Normative)</h2><p>The Distribution Format Exchange Profile (DFXP) of the Timed Text Authoring
Format (TTML) satisfies a subset of the requirements established by
<a href="#ttaf1-req">[TTAF1-REQ]</a>. The following table enumerates these requirements and
indicates the extent to which they are satisfied by this specification, where
@@ -8556,10 +6340,10 @@
font family, font size, font style, font weight, height, line height, origin,
opacity, overflow, padding (before, after, start, end), text alignment,
text shadow (as outline), visibility, width, writing mode, z-index</td></tr><tr><td>R390</td><td>Style Parameter Symmetry</td><td>S</td><td/></tr><tr><td>R391</td><td>Style Parameter Definitions</td><td>S</td><td/></tr><tr><td>R392</td><td>Style Parameter Shorthands</td><td>S</td><td/></tr><tr><td>R401</td><td>Inline Timing</td><td>S</td><td/></tr><tr><td>R402</td><td>Out-of-Line Timing</td><td>N</td><td/></tr><tr><td>R403</td><td>Synchronization Parameters</td><td>P</td><td>Supports begin, end, dur</td></tr><tr><td>R404</td><td>Synchronization Parameter Value Spaces</td><td>P</td><td>Supports offset values, media marker values (SMPTE 12M), wall-clock values</td></tr><tr><td>R405</td><td>Time Containment Semantics</td><td>P</td><td>Supports sequential, parallel</td></tr><tr><td>R500</td><td>Animation Modes</td><td>P</td><td>Supports discrete</td></tr><tr><td>R502</td><td>Highlight Animation</td><td>S</td><td><code><set tts:backgroundColor="..."/></code></td></tr><tr><td>R503</td><td>Fade Transition Animation</td><td>S</td><td><code><set tts:opacity="..."/></code></td></tr><tr><td>R504</td><td>Animated Style Parameters – Aural</td><td>N</td><td/></tr><tr><td>R505</td><td>Animated Style Parameters – Visual</td><td>P</td><td>Supports animating background color, color, display, opacity, origin, visibility</td></tr><tr><td>N506</td><td>Animated Content</td><td>S</td><td/></tr><tr><td>R600</td><td>Metadata Item Association</td><td>S</td><td>See <code>metadata</code>, <code>Metadata.class</code></td></tr><tr><td>R601</td><td>Metadata Item Constituents</td><td>P</td><td>Supports name, value</td></tr><tr><td>R602</td><td>Metadata Item Value Representation</td><td>P</td><td>See <code>metadata</code></td></tr><tr><td>R603</td><td>Metadata Item Extensibility</td><td>S</td><td>See <code>metadata</code></td></tr><tr><td>R604</td><td>Metadata Item Validation</td><td>S</td><td>See <code>metadata</code></td></tr><tr><td>R690</td><td>Dublin Core Preference</td><td>N</td><td>Uses <code>ttm:copyright</code>, <code>ttm:desc</code>, <code>ttm:title</code></td></tr></tbody></table></div><div class="div1">
-<h2><a name="derivation" id="derivation"/>L Vocabulary Derivation (Non-Normative)</h2><p>This appendix provides information about the derivation of TTML
+<h2><a name="derivation" id="derivation"/>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 name="d3e18018" id="d3e18018"/>L.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table K-1 – Elements</b></a>
+<h3><a name="d3e17360" id="d3e17360"/>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table K-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
@@ -8614,7 +6398,7 @@
and <code>@requiredFeatures</code> on the <code>svg:svg</code> element,
but extended to support distinct specification of optionality.</p></li><li><p>Derived from the use of <code>@baseProfile</code>
and <code>@version</code> on the <code>svg:svg</code> element.</p></li></ol></div></div><div class="div2">
-<h3><a name="d3e18497" id="d3e18497"/>L.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table K-2 – Attributes</b></a>
+<h3><a name="d3e17839" id="d3e17839"/>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table K-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
@@ -8683,16 +6467,16 @@
<code>default</code>, which is defined in terms of whitespace
normalization. Semantics of preservation and default normalization are
defined in terms of presentation semantics by <a href="#content-attribute-space"><b>7.2.3 xml:space</b></a>.</p></li><li><p>Defined to be inheritable.</p></li></ol></div></div></div><div class="div1">
-<h2><a name="qa" id="qa"/>M QA Framework Compliance (Non-Normative)</h2><p>This appendix specifies the compliance of this specification with the
+<h2><a name="qa" id="qa"/>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 name="d3e19365" id="d3e19365"/>M.1 Requirements</h3><table summary="HTML Table" id="qa-framework-requirements-table" class="common"><caption>Table L-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 name="d3e18707" id="d3e18707"/>K.1 Requirements</h3><table summary="HTML Table" id="qa-framework-requirements-table" class="common"><caption>Table L-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/></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/></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/></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/></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/></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/></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/></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/></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/></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/></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/></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>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>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 name="d3e19529" id="d3e19529"/>M.2 Guidelines</h3><table summary="HTML Table" id="qa-framework-guidelines-table" class="common"><caption>Table L-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/></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/></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/></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>NO</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/></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/></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/></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>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/></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>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/></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>NO</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/></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/></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/></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/></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/></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/></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/></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>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>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>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/></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>L Vocabulary Derivation</b></a>.</p></li><li><p>Test assertions and test suites will be provided prior to entering
+<h3><a name="d3e18871" id="d3e18871"/>K.2 Guidelines</h3><table summary="HTML Table" id="qa-framework-guidelines-table" class="common"><caption>Table L-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/></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/></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/></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>NO</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/></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/></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/></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>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/></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>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/></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>NO</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/></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/></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/></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/></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/></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/></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/></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>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>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>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/></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
<a href="#doctypes">TTML 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">
-<h2><a name="streaming" id="streaming"/>N Streaming TTML Content (Non-Normative)</h2><p>TTML Content is designed to support streamability by implementing the
+<h2><a name="streaming" id="streaming"/>L Streaming TTML Content (Non-Normative)</h2><p>TTML Content is designed to support streamability by implementing the
following properties:</p><ul><li><p>can be progressively encoded (i.e., does not require computing
subsequent data prior to sending current data);</p></li><li><p>can be progressively decoded (i.e., does not require forward
references, but uses only reverse references when necessary);</p></li><li><p>does not require dereferencing (and subsequent loading) of any
@@ -8715,32 +6499,327 @@
fragments.</p><p>An example of such a fragmentation of a TTML document instance is
shown in <a href="#fragment-streaming-graphic"><b>Figure 3 – Fragment Streaming</b></a>.</p><table summary="HTML Table" id="fragment-streaming-graphic" class="example-images"><caption>Figure 3 – Fragment Streaming</caption><tbody><tr><td><img src="images/streaming.png" alt="Fragment Streaming"/></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>This specification does not define a transport buffer model or a decoder
capabilities model.</p></div></div><div class="div1">
+<h2><a name="concrete-encoding" id="concrete-encoding"/>M Concrete Encoding (Non-Normative)</h2><p>In the absence of other requirements, it is recommended that a TTML document be concretely encoded as a
+well-formed XML 1.0 <a href="#xml10">[XML 1.0]</a> document using the UTF-8 character encoding.</p></div><div class="div1">
+<h2><a name="time-expression-semantics" id="time-expression-semantics"/>N Time Expression Semantics (Non-Normative)</h2><p>This appendix describes the intended semantics for interpreting time expressions in TTML documents.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>It is expected that the information in this appendix will be elevated to normative status in a future revision of this specification.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>The phrase <em>local real time</em> as used below is intended to model a virtual real time clock in the document processing context, where
+<em>local</em> means in the immediate proximity of the implementation of this processing context. The intent
+of defining relationships with this virtual clock is to establish a locally valid physical realization of time for didactic purposes.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>The phrase <em>play rate</em> as used below is intended to model a (possibly variable) parameter in the document processing context wherein
+the rate of playback (or interpretation) of time may artificially dilated or narrowed, for example, when speeding up or slowing down the rate of
+playback of a <em>Related Media Object</em>. Without loss of generality, the following discussion assumes a fixed play(back) rate. In the case of
+variable play rates, appropriate adjustments may need to be made to the resulting computations.</p></div><div class="div2">
+<h3><a name="time-expression-semantics-clock" id="time-expression-semantics-clock"/>N.1 Clock Time Base</h3><p>When operating with the <code>clock</code> time base, the following semantics should be applied for interpreting time expressions,
+as defined by <a href="#timing-value-timeExpression"><timeExpression></a>, and their relationship to media time and local real time.</p><p>The clock time base <span class="strong"><code>C</code></span> is related to local real time <span class="strong"><code>R</code></span>
+expressed in an arbitrary (implementation defined) epoch <span class="strong"><code>E</code></span>
+as follows:</p><table summary="HTML Table" id="clock-time-and-real-time" class="semantics"><caption>TTML Semantics – Clock Time and Real Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+<code>R = C + epochOffset + discontinuityOffset</code>
+<br/><br/>
+where <code>C ∈ ℜ</code>, <code>0 ≤ C < ∞</code>, <code>C</code> in seconds since the most immediately prior midnight of the reference clock base;
+<br/><br/>
+<code>epochOffset ∈ ℜ</code>, <code>0 ≤ epochOffset < ∞</code>, <code>epochOffset</code> in seconds, with 0 being the beginning
+of epoch <code>E</code>, and where the value of <code>epochOffset</code> is determined from the computed value of the <code>ttp:clockMode</code> parameter
+as follows:
+<br/><br/>
+(1) if <code>local</code>, then the difference between the local real time at the most immediately prior local midnight and the local real time
+at the beginning of epoch <code>E</code>, expressed in seconds;
+<br/><br/>
+(2) if <code>gps</code>, then the difference between the GPS time at the most immediately prior GPS midnight
+and the GPS time at the beginning of epoch <code>E</code>, expressed in seconds;
+<br/><br/>
+(3) if <code>utc</code>, then the difference between the UTC time at the most immediately prior UTC midnight
+and the UTC time at the beginning of epoch <code>E</code>, expressed in seconds;
+<br/><br/>
+<code>discontinuityOffset ∈ ℜ</code>, <code>−∞ < discontinuityOffset < ∞</code>, <code>discontinuityOffset</code> in seconds,
+and where the value of <code>discontinuityOffset</code> is equal to the sum of leap seconds (and fractions thereof) that have been added (or subtracted) since the
+most immediately prior midnight in the reference clock base;
+<br/><br/>
+and <code>epochOffset</code> and <code>discontinuityOffset</code> are determined once and only once prior to the beginning of the <em>Root Temporal Extent</em> such that
+during the period between value determination and the beginning of the <em>Root Temporal Extent</em> there occurs no local midnight or reference clock base discontinuity.
+<br/></p></blockquote>
+</td></tr></tbody></table><p>Time value expressions, as denoted by a <a href="#timing-value-timeExpression"><timeExpression></a>, are related to
+clock time <span class="strong"><code>C</code></span> as follows:</p><table summary="HTML Table" id="time-expressions-and-clock-time" class="semantics"><caption>TTML Semantics – Time Expressions and Clock Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+If a time expression uses the <em>clock-time</em> form or an <em>offset-time</em> form that doesn't use the ticks (<code>t</code>) metric, then:
+<br/><br/>
+<code>C = 3600 * hours + 60 * minutes + seconds</code>
+<br/><br/>
+where
+<code>hours</code>,
+<code>minutes</code>,
+<code>seconds</code> components are extracted from time expression if present, or zero if not present.
+<br/><br/>
+Otherwise, if a time expression uses an <em>offset-time</em> form that uses the ticks (<code>t</code>) metric, then:
+<br/><br/>
+<code>C = ticks / tickRate</code>
+<br/></p></blockquote>
+</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>The <em>frames</em> and <em>sub-frames</em> terms and the frames (<code>f</code>) metric of time expressions do not apply when using
+the <code>clock</code> time base.</p></div><p>The clock time base <span class="strong"><code>C</code></span> is independent of media time <span class="strong"><code>M</code></span>:</p><table summary="HTML Table" id="clock-time-and-media-time" class="semantics"><caption>TTML Semantics – Clock Time and Media Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+<code>M ¬∝ C</code>
+<br/></p></blockquote>
+</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>That is to say, timing is disconnected from (not necessarily proportional to) media time when
+the <code>clock</code> time base is used. For example, if the media play rate is zero (0), media playback is suspended; however, timing coordinates
+will continue to advance according to the natural progression of clock time in direct proportion to the reference clock base. Furthermore, if the media play rate changes
+during playback, presentation timing is not affected.
+</p></div></div><div class="div2">
+<h3><a name="time-expression-semantics-media" id="time-expression-semantics-media"/>N.2 Media Time Base</h3><p>When operating with the <code>media</code> time base, the following semantics should be applied for interpreting time expressions,
+as defined by <a href="#timing-value-timeExpression"><timeExpression></a>, and their relationship to media time and local real time.</p><p>The media time base <span class="strong"><code>M</code></span> is related to local real time <span class="strong"><code>R</code></span>
+expressed in an arbitrary (implementation defined) epoch <span class="strong"><code>E</code></span> as follows:</p><table summary="HTML Table" id="media-time-and-real-time" class="semantics"><caption>TTML Semantics – Media Time and Real Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+<code>R = playRate * M + epochOffset</code>
+<br/><br/>
+where <code>M ∈ ℜ</code>, <code>0 ≤ M < ∞</code>, <code>M</code> in seconds, with 0 corresponding to the beginning of the <em>Root Temporal Extent</em>;
+<br/><br/>
+<code>playRate ∈ ℜ</code>, <code>−∞ < playRate < ∞</code>, <code>playRate</code> is unit-less, and where the value of
+<code>playRate</code> is determined by the document processing context;
+<br/><br/>
+and <code>epochOffset ∈ ℜ</code>, <code>0 ≤ epochOffset < ∞</code>, <code>epochOffset</code> in seconds, with 0 corresponding to the beginning of
+an epoch <code>E</code>, and where the value of <code>epochOffset</code> is the difference between the local real time at the beginning of the
+<em>Root Temporal Extent</em> and the local real time at the the beginning of epoch <code>E</code>, expressed in seconds.
+</p></blockquote>
+</td></tr></tbody></table><p>Time value expressions, as denoted by a <a href="#timing-value-timeExpression"><timeExpression></a>, are related to
+media time <span class="strong"><code>M</code></span> in accordance to the
+<code>ttp:frameRate</code>, <code>ttp:subFrameRate</code>, and <code>ttp:frameRateMultipler</code> parameters as follows:</p><table summary="HTML Table" id="time-expressions-and-media-time" class="semantics"><caption>TTML Semantics – Time Expressions and Media Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+If a time expression uses a <em>clock-time</em> form or an <em>offset-time</em> form that doesn't use the ticks (<code>t</code>) metric, then:
+<br/><br/>
+<code>
+M = containerBegin + 3600 * hours + 60 * minutes + seconds + ((frames + (subFrames / subFrameRate)) / effectiveFrameRate)
+</code>
+<br/><br/>
+where <code>containerBegin</code> is the media time that corresponds to the beginning of the nearest ancestor time container or
+zero (0) if this time container is the <em>Root Temporal Extent</em>;
+<br/><br/>
+the <code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>frames</code>, <code>subFrames</code> components
+are extracted from time expression if present, or zero if not present;
+<br/><br/>
+<code>subFrameRate</code> is the computed value of the <code>ttp:subFrameRate</code> parameter;
+<br/><br/>
+and <code>effectiveFrameRate</code> (in frames per second) is <code>frameRate * frameRateMultipler</code> where
+<code>frameRate</code> is the computed value of the <code>ttp:frameRate</code> parameter and
+<code>frameRateMultipler</code> is the computed value of the <code>ttp:frameRateMultiplier</code> parameter.
+<br/><br/>
+Otherwise, if a time expression uses an <em>offset-time</em> form that uses the ticks (<code>t</code>) metric, then:
+<br/><br/>
+<code>
+M = containerBegin + ticks / tickRate
+</code>
+<br/><br/>
+where <code>containerBegin</code> is as described above;
+<br/><br/>
+the <code>ticks</code> component is extracted from time expression;
+<br/><br/>
+and <code>tickRate</code> is the computed value of the <code>ttp:tickRate</code> parameter;
+<br/></p></blockquote>
+</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>If the computed <code>frameRateMultipler</code> ratio is not integral, then <code>effectiveFrameRate</code> will be a non-integral rational.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>The above formalisms assumes that the <em>Root Temporal Extent</em> corresponds with the beginning of a related media object. If
+this assumption doesn't hold, then an additional offset that accounts for the difference may be introduced when computing media time <code>M</code>.</p></div></div><div class="div2">
+<h3><a name="time-expression-semantics-smpte" id="time-expression-semantics-smpte"/>N.3 SMPTE Time Base</h3><p>When operating with the <code>smpte</code> time base, the following semantics should be applied for interpreting time expressions,
+as defined by <a href="#timing-value-timeExpression"><timeExpression></a>, and their relationship to media time and local real time.</p><p>If the computed value of the <code>ttp:markerMode</code> parameter is <code>discontinuous</code>, then there is no direct relationship between
+time expressions and media time <span class="strong"><code>M</code></span> or local real time <span class="strong"><code>R</code></span>. In
+this case, time expressions refer to synchronization events (markers) emitted by the <em>Document Processing Context</em> when <em>SMPTE Time
+Codes</em> are encountered in the <em>Related Media Object</em>.</p><p>Otherwise, if the computed value of the <code>ttp:markerMode</code> parameter is <code>continuous</code>, then the relationships between time expressions and
+local real time and media time are as described below in terms of a <em>Synthetic SMPTE Document Syncbase</em>, here referred to as the
+SMPTE time base <span class="strong"><code>S</code></span>.</p><table summary="HTML Table" id="time-expressions-and-smpte-time" class="semantics"><caption>TTML Semantics – Time Expressions and SMPTE Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+<code>S = (countedFrames - droppedFrames + (subFrames / subFrameRate)) / effectiveFrameRate</code>
+<br/><br/>where<br/><br/>
+<code>countedFrames = (3600 * hours + 60 * minutes + seconds) * frameRate + frames</code>
+<br/><br/>
+<code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>frames</code>, <code>subFrames</code> components
+are extracted from time expression if present, or zero if not present;
+<br/><br/>
+<code>droppedFrames</code> is computed as follows:
+<br/><br/>
+1. let <em>dropMode</em> be the computed value of the <code>ttp:dropMode</code> parameter;
+<br/><br/>
+2. if <em>dropMode</em> is <code>dropNTSC</code>, let
+<code>droppedFrames = (hours * 54 + floor(minutes - minutes/10)) * 2</code>;
+<br/><br/>
+3. otherwise, if <em>dropMode</em> is <code>dropPAL</code>, let
+<code>droppedFrames = (hours * 27 + floor(minutes/2 - minutes/20)) * 4</code>;
+<br/><br/>
+4. otherwise, let
+<code>droppedFrames = 0</code>;
+<br/><br/>
+<code>frameRate</code> is the computed value of the <code>ttp:frameRate</code> parameter;
+<br/><br/>
+<code>subFrameRate</code> is the computed value of the <code>ttp:subFrameRate</code> parameter;
+<br/><br/>
+and <code>effectiveFrameRate</code> (in frames per second) is <code>frameRate * frameRateMultipler</code> where
+<code>frameRate</code> is the computed value of the <code>ttp:frameRate</code> parameter and
+<code>frameRateMultipler</code> is the computed value of the <code>ttp:frameRateMultiplier</code> parameter.
+<br/><br/>
+Notwithstanding the above, if a time expression contains a frame code that is designated as
+dropped according to <a href="#parameter-attribute-dropMode"><b>6.2.3 ttp:dropMode</b></a>, then that time expression
+should be considered to be invalid for purposes of validation assessment.
+<br/></p></blockquote>
+</td></tr></tbody></table><p>The SMPTE time base <span class="strong"><code>S</code></span> is related to the media time base <span class="strong"><code>M</code></span> as follows:</p><table summary="HTML Table" id="smpte-time-and-media-time" class="semantics"><caption>TTML Semantics – SMPTE Time and Media Time Relationship</caption><tbody><tr><td>
+<blockquote><p>
+<code>M = containerBegin + S</code>
+<br/><br/>
+where <code>containerBegin</code> is the SMPTE time that corresponds to the beginning of the nearest ancestor time container or
+zero (0) if this time container is the <em>Root Temporal Extent</em>;
+<br/></p></blockquote>
+</td></tr></tbody></table><p>Given the derived media time base as described above, then
+media time base <span class="strong"><code>M</code></span> is related to the local real time <span class="strong"><code>R</code></span>
+as described in <a href="#time-expression-semantics-media"><b>N.2 Media Time Base</b></a> above.</p></div></div><div class="div1">
<h2><a name="common-styling" id="common-styling"/>O Common Caption Style Examples (Non-Normative)</h2><p>This section provides examples of the following common caption styles using TTML content
to obtain the desired behavior:</p><ul><li><p>Pop-On Captions</p></li><li><p>Roll-Up Captions</p></li><li><p>Paint-On Captions</p></li></ul><div class="div2">
-<h3><a name="pop-on-example" id="pop-on-example"/>O.1 Pop-On Caption Example</h3><p><span class="tbd">To Be Defined</span></p></div><div class="div2">
-<h3><a name="roll-up-example" id="roll-up-example"/>O.2 Roll-Up Caption Example</h3><p><span class="tbd">To Be Defined</span></p></div><div class="div2">
-<h3><a name="paint-on-example" id="paint-on-example"/>O.3 Paint-On Caption Example</h3><p><span class="tbd">To Be Defined</span></p></div></div><div class="div1">
-<h2><a name="acknowledgments" id="acknowledgments"/>P Acknowledgments (Non-Normative)</h2><p>The editor acknowledges the members of the Timed Text Working
+<h3><a name="pop-on-example" id="pop-on-example"/>O.1 Pop-On Caption Example</h3><p>An example of paint-on captions. In this example, two regions are targeted with the same content, where in the first region,
+content is timed using the default parallel time containment rules, and in the second, content is timed using explicit sequential
+time containment rules. Each paragraph is non-overlapping in time and appears in the same single row of the respective region.</p><table summary="HTML Table" id="pop-on-example-1-s" class="example"><caption>Example – Pop-On Captions</caption><tbody><tr><td>
+<div class="exampleInner"><pre><tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 1c"/>
+ <region xml:id="r2" tts:color="yellow" tts:origin="10c 8c" tts:extent="40c 1c"/>
+ </layout>
+ </head>
+ <body>
+ <!-- using default 'par' time containment -->
+ <div region="r1">
+ <p begin="0s" end="4s">Lorem ipsum dolor sit</p
+ <p begin="4s" end="8s">Amet consectetur adipiscing elit</p>
+ <p begin="8s" end="14s">Sed do eiusmod tempor incididunt labore</p>
+ <p begin="14s" end="18s">et dolore magna aliqua</p>
+ <p begin="18s" end="25s">Ut enim ad minim veniam quis, nostrud</p>
+ </div>
+ <!-- using explicit 'seq' time containment -->
+ <div region="r2" timeContainer="seq">
+ <p dur="4s">Lorem ipsum dolor sit</p
+ <p dur="4s">Amet consectetur adipiscing elit</p>
+ <p dur="6s">Sed do eiusmod tempor incididunt labore</p>
+ <p dur="4s">et dolore magna aliqua</p>
+ <p dur="7s">Ut enim ad minim veniam quis, nostrud</p>
+ </div>
+ </body>
+</tt>
+</pre></div>
+</td></tr></tbody></table></div><div class="div2">
+<h3><a name="roll-up-example" id="roll-up-example"/>O.2 Roll-Up Caption Example</h3><p>An example of roll-up captions. Roll-up effects are achieved by using overlapped time intervals, where zero, one, or two paragraphs appear in the region
+at a given time. Each paragraph consumes a single row (line) of the region since no wrapping occurs. Depending on whether a presentation processor supports
+<a href="#semantics-smooth-scrolling-recommendation">smooth scrolling between adjacent synchronic document instances</a>, the transitions, i.e., moving an
+old paragraph (line) out and a new paragraph (line) in, will be either smooth or discrete.</p><table summary="HTML Table" id="roll-up-example-1-s" class="example"><caption>Example – Roll-Up Captions</caption><tbody><tr><td>
+<div class="exampleInner"><pre><tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 2c"/>
+ </layout>
+ </head>
+ <body>
+ <div region="r1">
+ <p begin="0s" end="8s">Lorem ipsum dolor sit</p
+ <p begin="4s" end="12s">Amet consectetur adipiscing elit</p>
+ <p begin="8s" end="18s">Sed do eiusmod tempor incididunt labore</p>
+ <p begin="14s" end="25s">et dolore magna aliqua</p>
+ <p begin="18s" end="29s">Ut enim ad minim veniam quis, nostrud</p>
+ </div>
+ </body>
+</tt>
+</pre></div>
+</td></tr></tbody></table></div><div class="div2">
+<h3><a name="paint-on-example" id="paint-on-example"/>O.3 Paint-On Caption Example</h3><p>An example of paint-on captions. Paint-on effects are achieved by using timed <code>span</code> elements in order to expose (paint) inline text units, e.g., words,
+over some time interval. Here, five parapraphs have their individual words sequentially timed in order to paint one new word every second. The end of the active duration of
+each inline element coincides with the end of the <code>div</code> element's parallel time container, so that once a word is painted, it remains in the region (on its rendered line) until the <code>div</code> element's active time interval lapses.</p><table summary="HTML Table" id="paint-on-example-1-s" class="example"><caption>Example – Paint-On Captions</caption><tbody><tr><td>
+<div class="exampleInner"><pre><tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
+ xmlns:tts="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+ <head>
+ <layout>
+ <region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 5c"/>
+ </layout>
+ </head>
+ <body>
+ <div begin="0s" end="25s">
+ <p>
+ <span begin="0s">Lorem</span>
+ <span begin="1s">ipsum</span>
+ <span begin="2s">dolor</span>
+ <span begin="3s">sit</span>
+ </p>
+ <p>
+ <span begin="4s">Amet</span>
+ <span begin="5s">consectetur</span>
+ <span begin="6s">adipiscing</span>
+ <span begin="7s">elit</span>
+ </p>
+ <p>
+ <span begin="8s">Sed</span>
+ <span begin="9s">do</span>
+ <span begin="10s">eiusmod</span>
+ <span begin="11s">tempor</span>
+ <span begin="12s">incididunt </span>
+ <span begin="13s">labore</span>
+ </p>
+ <p>
+ <span begin="14s">et</span>
+ <span begin="15s">dolore</span>
+ <span begin="16s">magna</span>
+ <span begin="17s">aliqua</span>
+ </p>
+ <p>
+ <span begin="18s">Ut</span>
+ <span begin="19s">enim</span>
+ <span begin="20s">ad</span>
+ <span begin="21s">minim</span>
+ <span begin="22s">veniam</span>
+ <span begin="23s">quis,</span>
+ <span begin="24s">nostrud</span>
+ </p>
+ </div>
+ </body>
+</tt>
+</pre></div>
+</td></tr></tbody></table></div></div><div class="div1">
+<h2><a name="acknowledgments" id="acknowledgments"/>P Acknowledgments (Non-Normative)</h2><p>The editor acknowledges the current and former members of the Timed Text Working
Group, the members of other W3C Working Groups, and industry experts
in other forums who have contributed directly or indirectly to the
-process or content of creating this document.</p><p>The current and former members of the Timed Text Working Group are:
-Glenn Adams (Samsung Electronics Co., Ltd.), John Birch (Invited expert), Kees Blom (CWI), Dick Bulterman (CWI), Frans de Jong (Invited expert), Mike Dolan (W3C Invited Experts), Geoff Freed (WGBH National Center for Accessible Media), Sean Hayes (Microsoft Corporation), David Kirby (British Broadcasting Corporation), Andrew Kirkpatrick (Adobe Systems Inc.), Philippe Le Hégaret (W3C/MIT), Matthew May (Adobe Systems Inc.), Soohong Daniel Park (Samsung Electronics Co., Ltd.), Brad Botkin, Donald Evans, Markus Gylling, Markku Hakkinen, Erik Hodge, Masahiko Kaneko, George Kerscher, Chris Lilley, Thierry Michel, Patrick Schmitz, David Singer.
-
+process or content of this document as follows:</p><p>Glenn Adams,
+Thomas Bause-Mason,
+John Birch,
+Kees Blom,
+Bert Bos,
+Brad Botkin,
+Dick Bulterman,
+Frans de Jong,
+Mike Dolan,
+Martin Dürst,
+Donald Evans,
+Geoff Freed,
+Al Gilman,
+Giles Godart-Brown,
+Markus Gylling,
+Markku Hakkinen,
+Sean Hayes,
+Erik Hodge,
+Philipp Hoschka,
+Suzi Hyun,
+Michael Jordan,
+Masahiko Kaneko,
+Courtney Kennedy,
+George Kerscher,
+David Kirby,
+Andrew Kirkpatrick,
+Philippe Le Hégaret,
+Chris Lilley,
+Pierre-Anthony Lemieux,
+Jason Livingston,
+Monica Martin,
+Thierry Michel,
+Matthew May,
+Frank Olivier,
+Soohong Daniel Park,
+Silvia Pfeiffer,
+Brian Raymor,
+David Ronca,
+Patrick Schmitz,
+David Singer,
+Craig Smithpeters,
+and Mohamed Zergaoui.
</p><p>The editor wishes to especially acknowledge the following contributions
by members: Micheal Dolan (SMPTE time codes, streaming; SMPTE liaison), David
Kirby (introductory example document; SMPTE time codes, descriptive metadata; EBU/AAF liaison), Geoff Freed (styling
and example images of style properties), Sean Hayes (advanced profile
concepts, including applicative timing), Eric Hodge (timing),
-Thierry Michel (metadata), and Dave Singer (animation, scrolling).</p><p>The Timed Text Working Group has benefited in its work from the
-participation and contributions of a number of people not currently
-members of the Working Group, including in particular those named
-below. Affiliations given are those current at the time of their work
-with the WG.</p><p>
-John Birch, Screen Subtitling Systems;
-Bert Bos, W3C (chair, CSS WG);
-Martin Dürst, W3C (leader, I18N Activity);
-Al Gilman (chair, WAI Protocol and Formats WG);
-Philipp Hoschka, W3C (leader, Interaction Domain);
-Chris Lilley, W3C (chair, SVG WG).
-</p><p>The editor wishes to especially acknowledge the following contributions
-by non-members: John Birch (dynamic flow).</p></div></div></body></html>
\ No newline at end of file
+Thierry Michel (metadata), and Dave Singer (animation, scrolling).</p></div></div></body></html>
\ No newline at end of file