Binary file ttml10/spec/rnc/schema.zip has changed
--- a/ttml10/spec/rnc/ttaf1-dfxp-metadata.rnc Sun May 26 18:59:22 2013 -0600
+++ b/ttml10/spec/rnc/ttaf1-dfxp-metadata.rnc Wed Jun 19 15:28:56 2013 +0800
@@ -20,7 +20,6 @@
TTAF.External.class =
element * - ( tt:* | ttm:* ) {
( attribute * - ( xml:id ) { text }
- | text
| TTAF.External.class
)*
}
--- a/ttml10/spec/ttaf1-dfxp.html Sun May 26 18:59:22 2013 -0600
+++ b/ttml10/spec/ttaf1-dfxp.html Wed Jun 19 15:28:56 2013 +0800
@@ -80,9 +80,9 @@
.strong { font-weight: bold }
.reqattr { font-weight: bold }
.optattr { font-style: italic }
-</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css"></head><body>Last Modified: $Date: 2013/05/26 19:26:35 $<div id="revisions"></div><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/27 00:59:22 $<div id="revisions"></div><div class="head">
<h1><a id="title"></a>Timed Text Markup Language (TTML) 1.0 (Second Edition)</h1>
-<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2013/05/26 19:26:35 $ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd>
+<h2><a id="w3c-doctype"></a>Editors' copy $Date: 2013/05/27 00:59:22 $ @@ @@@@ @@@@</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>
@@ -190,15 +190,15 @@
8.3.1 <a href="#style-value-alpha"><alpha></a><br>
8.3.2 <a href="#style-value-color"><color></a><br>
8.3.3 <a href="#style-value-digit"><digit></a><br>
- 8.3.4 <a href="#style-value-duration"><duration></a><br>
+ 8.3.4 <a href="#style-value-duration">Deleted</a><br>
8.3.5 <a href="#style-value-familyName"><familyName></a><br>
8.3.6 <a href="#style-value-genericFamilyName"><genericFamilyName></a><br>
8.3.7 <a href="#style-value-hexDigit"><hexDigit></a><br>
8.3.8 <a href="#style-value-integer"><integer></a><br>
8.3.9 <a href="#style-value-length"><length></a><br>
8.3.10 <a href="#style-value-namedColor"><namedColor></a><br>
- 8.3.11 <a href="#style-value-quotedString"><quotedString></a><br>
- 8.3.12 <a href="#style-value-string"><string></a><br>
+ 8.3.11 <a href="#style-value-quotedString">Deleted</a><br>
+ 8.3.12 <a href="#style-value-string">Deleted</a><br>
8.4 <a href="#semantics-style-resolution">Style Resolution</a><br>
8.4.1 <a href="#semantics-style-association">Style Association</a><br>
8.4.1.1 <a href="#semantics-style-association-inline">Inline Styling</a><br>
@@ -392,11 +392,11 @@
H <a href="#other-references">Other References</a> (Non-Normative)<br>
I <a href="#requirements">Requirements</a> (Non-Normative)<br>
J <a href="#derivation">Vocabulary Derivation</a> (Non-Normative)<br>
- J.1 <a href="#d3e18329">Element Derivation</a><br>
- J.2 <a href="#d3e18808">Attribute Derivation</a><br>
+ J.1 <a href="#d3e18547">Element Derivation</a><br>
+ J.2 <a href="#d3e19026">Attribute Derivation</a><br>
K <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br>
- K.1 <a href="#d3e19694">Requirements</a><br>
- K.2 <a href="#d3e19858">Guidelines</a><br>
+ K.1 <a href="#d3e19912">Requirements</a><br>
+ K.2 <a href="#d3e20076">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>
@@ -606,7 +606,10 @@
<em>Reduced XML Infoset</em>.</p></dd><dt class="label">Abstract Document Type</dt><dd><p>A set of constraints that defines a class of <em>XML Information
Sets</em> <a href="#infoset">[XML InfoSet]</a>.</p></dd><dt class="label">Attribute Information Item</dt><dd><p>Each specified or defaulted attribute of an XML document corresponds with an attribute information
item as defined by <a href="#infoset">[XML InfoSet]</a>, §2.3.</p></dd><dt class="label">Character Information Item</dt><dd><p>Each data character appearing in an XML document corresponds with a character information
-item as defined by <a href="#infoset">[XML InfoSet]</a>, §2.6.</p></dd><dt class="label">Content Processor</dt><dd><p>A processing system capable of importing (receiving) Timed Text Markup Language
+item as defined by <a href="#infoset">[XML InfoSet]</a>, §2.6.</p></dd><dt class="label">Computed Cell Size</dt><dd><p>The size (extent) of a cell computed by dividing the width of the <em>Root Container
+Region</em> (in pixels) by the column count, i.e., the number of cells in the horizontal axis, and by dividing
+the height of the <em>Root Container Region</em> (in pixels) by the row count, i.e., the number of cells in the vertical
+axis, where the column and row counts are determined by the <code>ttp:cellResolution</code> parameter attribute.</p></dd><dt class="label">Content Processor</dt><dd><p>A processing system capable of importing (receiving) Timed Text Markup Language
content for the purpose of transforming, presenting, or otherwise processing the content.</p></dd><dt class="label">Content Profile</dt><dd><p>A collection of features and extensions that are (or may be) employed by
Timed Text Markup Language content.</p></dd><dt class="label">Content Region</dt><dd><p>A logical region into which rendered content is placed when modeling or
performing presentation processing.</p></dd><dt class="label">Document Instance</dt><dd><p>A concrete realization of a Timed Text Markup Language document, where the concrete form
@@ -635,7 +638,8 @@
constraints specify by <a href="#reduced-infoset"><b>A Reduced XML Infoset</b></a>.</p></dd><dt class="label">Related Media Object</dt><dd><p>A (possibly null) media object associated with or otherwise related
to a <em>Document Instance</em>. For example, an aggregate audio/video media
object for which a <em>Document Instance</em> provides caption or subtitle
-information, and with which that <em>Document Instance</em> is associated.</p></dd><dt class="label">Root Container Region</dt><dd><p>A logical region that establishes a coordinate system into which
+information, and with which that <em>Document Instance</em> is associated.</p></dd><dt class="label">Related Media Object Region</dt><dd><p>When a non-null <em>Related Media Object</em> exists, the region in which
+a presentation processor presents this media object.</p></dd><dt class="label">Root Container Region</dt><dd><p>A logical region that establishes a coordinate system into which
<em>Document Instance</em> content regions are placed and optionally clipped.</p></dd><dt class="label">Root Temporal Extent</dt><dd><p>
The temporal extent (interval) defined by the temporal beginning and ending of a <em>Document Instance</em> in relationship with some external application or presentation context.
</p></dd><dt class="label">SMPTE Time Code</dt><dd><p>A time code whose format and semantics are established by <a href="#smpte12m">[SMPTE 12M]</a>,
@@ -1635,8 +1639,8 @@
time.</p></div><p>If a value of <code>discontinuous</code> applies, then time
expressions must not be converted to real time
coordinates, arithmetical operators (addition, multiplication) are not
-defined on time expressions, and, consequently, any expression of a
-duration must be considered to be invalid.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>When operating with <code>smpte</code> time base and
+defined on time expressions, and, consequently, any (well-formed)
+expression of a duration must be considered to be invalid.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>When operating with <code>smpte</code> time base and
<code>discontinuous</code> marker mode, there is no effective time coordinate
space; rather, all time expressions are interpreted as labeled
synchronization events (markers), where the <em>Document Processing Context</em>
@@ -1796,13 +1800,14 @@
which content regions are located and presented. If no <code>tts:extent</code>
attribute is specified, then the spatial extent of the <em>Root Container Region</em> is
considered to be determined by the <em>Document Processing Context</em>.
-The origin of the <em>Root Container Region</em> is determined by the <em>Document Processing Context</em>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>If an author desires to signal the (storage or image) aspect ratio of the <em>Root Container Region</em>
+The origin of the <em>Root Container Region</em> is determined by the <em>Document Processing Context</em>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In the absence of other requirements, and if a <em>Related Media Object</em> exists, then it is recommended
+that the <em>Document Processing Context</em> determine that:</p><ul><li><p>if no <code>tts:extent</code> is specified on the root <code>tt</code> element, the extent of the <em>Root Container Region</em> be
+established as equal to the extent of the <em>Related Media Object Region</em>; and</p></li><li><p>the origin of the <em>Root Container Region</em> be established so that this region is centered in the
+<em>Related Media Object Region</em>.</p></li></ul></div><div class="note"><p class="prefix"><b>Note:</b></p><p>If an author desires to signal the (storage or image) aspect ratio of the <em>Root Container Region</em>
without specifying its resolution, then this may be accomplished by using metadata specified
in an external namespace, such as <code>m708:aspectRatio</code> as defined in <a href="#smpte2052">[SMPTE 2052-11]</a>, §5.4.4.
This would permit, for example, the interchange of information that reflects the
-the semantics of <a href="#cea708d">[CEA-708-D]</a> , §4.5 “Caption Service Metadata”, “ASPECT RATIO”.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>In the absence of other requirements, and if a <em>Related Media Object</em> exists, then it is recommended
-that the origin of the <em>Root Container Region</em> be established so that it is centered in the region within
-which the <em>Related Media Object</em> is presented.</p></div><p>An <code>xml:lang</code> attribute must be specified on the <code>tt</code> element.
+the semantics of <a href="#cea708d">[CEA-708-D]</a> , §4.5 “Caption Service Metadata”, “ASPECT RATIO”.</p></div><p>An <code>xml:lang</code> attribute must be specified on the <code>tt</code> element.
If the attribute value is empty, it signifies that there is no default language that applies
to the text contained within the <em>Document Instance</em>.</p><p>If no <code>xml:space</code> attribute is specified upon the <code>tt</code> element, then it must
be considered as if the attribute had been specified with a value of <code>default</code>.</p></div><div class="div3">
@@ -2139,7 +2144,12 @@
to reference one or more <code>style</code> elements each of which define a style (property) set.</p><p>The <code>style</code> attribute may be specified by an instance of the following
element types:</p><ul><li><p><a href="#document-structure-vocabulary-body"><code>body</code></a></p></li><li><p><a href="#content-vocabulary-div"><code>div</code></a></p></li><li><p><a href="#content-vocabulary-p"><code>p</code></a></p></li><li><p><a href="#layout-vocabulary-region"><code>region</code></a></p></li><li><p><a href="#content-vocabulary-span"><code>span</code></a></p></li><li><p><a href="#styling-vocabulary-style"><code>style</code></a></p></li></ul><p>If specified, the value of a <code>style</code> attribute must
adhere to the <code>IDREFS</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
-§ 3.3.10.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>See the specific element type definitions that permit use of the
+§ 3.3.10, and, furthermore, each IDREF must reference a <code>style</code> element
+which has a <code>styling</code> element as an ancestor.</p><p>If the same IDREF, <em>ID<sub>1</sub></em>, appears more than one time in the value of a <code>style</code>
+attribute, then there should be an intervening IDREF, <em>ID<sub>2</sub></em>, where
+<em>ID<sub>2</sub></em> is not equal to <em>ID<sub>1</sub></em>.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>This constraint is intended to discourage the use of redundant referential styling while still
+allowing the same style to be referenced multiple times in order to potentially override prior
+referenced styles, e.g., when an intervening, distinct style is referenced in the IDREFS list.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>See the specific element type definitions that permit use of the
<code>style</code> attribute, as well as <a href="#semantics-style-association-referential"><b>8.4.1.2 Referential Styling</b></a> and <a href="#semantics-style-association-chained-referential"><b>8.4.1.3 Chained Referential Styling</b></a>, for
further information on its semantics.</p></div></div><div class="div3">
<h4><a id="style-attribute-backgroundColor"></a>8.2.2 tts:backgroundColor</h4><p>The <code>tts:backgroundColor</code> attribute is used to specify a style property that
@@ -2371,20 +2381,12 @@
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>The <a href="#style-value-length"><length></a> value(s) used to express extent must be non-negative.</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 extent of the <em>Root Container Region</em>.</p><p>
-The extent of the <em>Root Container Region</em> is determined either by a
+of the style property must be considered to be the same as the extent of the <em>Root Container Region</em>.</p><p>The extent of the <em>Root Container Region</em> is determined either by a
<code>tts:extent</code> specified on the <code>tt</code> element, if
-present, or by the external authoring context, if not present.
-If
-<code>tts:extent</code> is specified on the <code>tt</code> element,
-then
-the width and height
-must be
-expressed in terms of two
-<a href="#style-value-length"><length></a> specifications,
-and
-these specifications must be expressed as non-percentage,
-definite lengths using pixel units.</p><p>If a specified value of this attribute is not supported,
+present, or as described by <a href="#document-structure-vocabulary-tt"><b>7.1.1 tt</b></a> if not present.
+If <code>tts:extent</code> is specified on the <code>tt</code> element, then
+the width and height must be expressed in terms of two <a href="#style-value-length"><length></a> specifications,
+and these specifications must be expressed as non-percentage, definite lengths using pixel units.</p><p>If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value <code>auto</code> were specified.</p><p>The <code>tts:extent</code> style is illustrated by the following example.</p><a id="style-attribute-extent-example-1"></a><table class="example"><caption>Example Fragment – Extent</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2460,7 +2462,7 @@
<a href="#style-value-length"><length></a> <a href="#style-value-length"><length></a>?
</td></tr><tr><td><em>Initial:</em></td><td><code>1c</code></td></tr><tr><td><em>Applies to:</em></td><td>
<a href="#content-vocabulary-span"><code>span</code></a>
-</td></tr><tr><td><em>Inherited:</em></td><td>yes</td></tr><tr><td><em>Percentages:</em></td><td>relative to parent element's font size</td></tr><tr><td><em>Animatable:</em></td><td>discrete</td></tr></tbody></table><p>If a single <a href="#style-value-length"><length></a> value is specified, then this length applies
+</td></tr><tr><td><em>Inherited:</em></td><td>yes</td></tr><tr><td><em>Percentages:</em></td><td>relative to parent element's font size, or if no parent element, then relative to the <em>Computed Cell Size</em></td></tr><tr><td><em>Animatable:</em></td><td>discrete</td></tr></tbody></table><p>If a single <a href="#style-value-length"><length></a> value is specified, then this length applies
equally to horizontal and vertical scaling of a glyph's EM square; if two
<a href="#style-value-length"><length></a> values are specified, then the first expresses the horizontal
scaling and the second expresses vertical scaling.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>Use of independent horizontal and vertical font sizes is expected to be used
@@ -2471,7 +2473,15 @@
span.</p><p>If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value <code>1c</code> were specified.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>The expression <code>1c</code> means one cell, where <code>'c'</code> expresses
-the <em>cell</em> length unit as defined by <a href="#style-value-length"><b>8.3.9 <length></b></a>.</p></div><p>The <code>tts:fontSize</code> style is illustrated by the following example.</p><a id="style-attribute-fontSize-example-1"></a><table class="example"><caption>Example Fragment – Font Size</caption><tbody><tr><td>
+the <em>cell</em> length unit as defined by <a href="#style-value-length"><b>8.3.9 <length></b></a>.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>As specified above, the use of percentage units to express font size are interpreted as
+relative to <em>Computed Cell Size</em> when there is no parent element. For example, if cell resolution
+is 32 by 15, and the extent of the <em>Root Container Region</em> is 640 by 480, then the
+<em>Computed Cell Size</em> is [20px, 32px], i.e., 640px/32 (width) and 480px/15 (height). Consequently, if
+<code>tts:fontSize</code> were specified as 75% on the root <code>tt</code> element, then this would
+be equivalent to specifying 24px, i.e., 32px cell height * 75%.
+If two length expressions (independent horizontal and vertical font scaling) were specified, e.g.,
+"80% 75%", then this would be equivalent to specifying "16px 24px", i.e., 80% of 20px cell width is
+16px, and 75% of 32px cell height is 24px.</p></div><p>The <code>tts:fontSize</code> style is illustrated by the following example.</p><a id="style-attribute-fontSize-example-1"></a><table class="example"><caption>Example Fragment – Font Size</caption><tbody><tr><td>
<div class="exampleInner"><pre>
<region xml:id="r1">
<style tts:extent="299px 97px"/>
@@ -2674,7 +2684,7 @@
</td></tr><tr><td><em>Inherited:</em></td><td>no</td></tr><tr><td><em>Percentages:</em></td><td>relative to width and height of <em>Root Container Region</em></td></tr><tr><td><em>Animatable:</em></td><td>discrete</td></tr></tbody></table><p>If the value of this attribute consists of two <a href="#style-value-length"><length></a> specifications,
then they must be interpreted as <em>x</em> and <em>y</em> coordinates, where the first specification
is the <em>x</em> coordinate, and the second specification is the <em>y</em> coordinate.</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 origin of the <em>Root Container Origin</em>.</p><p>If a specified value of this attribute is not supported,
+of the style property must be considered to be the same as the origin of the <em>Root Container Region</em>.</p><p>If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value <code>auto</code> were specified.</p><p>The <code>tts:origin</code> style is illustrated by the following example.</p><a id="style-attribute-origin-example-1"></a><table class="example"><caption>Example Fragment – Origin</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -2958,7 +2968,7 @@
present, then it denotes the outline color; if no <em>color</em> term is
present, the computed value of the <code>tts:color</code> applies. The first
<em>length</em> term denotes the outline thickness and the second length
-term, if present, indicates the blur radius.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>When a <a href="#style-value-length"><length></a> expressed in
+term, if present, indicates the blur radius.</p><p>The <a href="#style-value-length"><length></a> value(s) used to express thickness and blur radius must be non-negative.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>When a <a href="#style-value-length"><length></a> expressed in
cells is used in a <code>tts:textOutline</code> value,
the cell's dimension in the block progression dimension applies.
For example, if text outline thickness is specified as 0.1c, the cell resolution
@@ -3246,7 +3256,7 @@
</td></tr></tbody></table><p></p><p></p><a id="style-attribute-zIndex-example-1-images"></a><table class="example-images"><caption>Example Rendition – Z Index</caption><tbody><tr><td><img src="images/zIndex.png" alt="TTML zIndex style property"></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>The semantics of the style property
represented by this attribute are based upon that defined by <a href="#xsl11">[XSL 1.1]</a>,
§ 7.30.18.</p></div></div></div><div class="div2">
-<h3><a id="styling-style-value-expressions"></a>8.3 Style Value Expressions</h3><p>Style property values include the use of the following expressions:</p><ul><li><p><a href="#style-value-alpha"><b>8.3.1 <alpha></b></a></p></li><li><p><a href="#style-value-color"><b>8.3.2 <color></b></a></p></li><li><p><a href="#style-value-digit"><b>8.3.3 <digit></b></a></p></li><li><p><a href="#style-value-duration"><b>8.3.4 <duration></b></a></p></li><li><p><a href="#style-value-familyName"><b>8.3.5 <familyName></b></a></p></li><li><p><a href="#style-value-genericFamilyName"><b>8.3.6 <genericFamilyName></b></a></p></li><li><p><a href="#style-value-hexDigit"><b>8.3.7 <hexDigit></b></a></p></li><li><p><a href="#style-value-integer"><b>8.3.8 <integer></b></a></p></li><li><p><a href="#style-value-length"><b>8.3.9 <length></b></a></p></li><li><p><a href="#style-value-namedColor"><b>8.3.10 <namedColor></b></a></p></li><li><p><a href="#style-value-quotedString"><b>8.3.11 <quotedString></b></a></p></li><li><p><a href="#style-value-string"><b>8.3.12 <string></b></a></p></li></ul><p>In the syntax representations defined in this section, no
+<h3><a id="styling-style-value-expressions"></a>8.3 Style Value Expressions</h3><p>Style property values include the use of the following expressions:</p><ul><li><p><a href="#style-value-alpha"><b>8.3.1 <alpha></b></a></p></li><li><p><a href="#style-value-color"><b>8.3.2 <color></b></a></p></li><li><p><a href="#style-value-digit"><b>8.3.3 <digit></b></a></p></li><li><p><a href="#style-value-familyName"><b>8.3.5 <familyName></b></a></p></li><li><p><a href="#style-value-genericFamilyName"><b>8.3.6 <genericFamilyName></b></a></p></li><li><p><a href="#style-value-hexDigit"><b>8.3.7 <hexDigit></b></a></p></li><li><p><a href="#style-value-integer"><b>8.3.8 <integer></b></a></p></li><li><p><a href="#style-value-length"><b>8.3.9 <length></b></a></p></li><li><p><a href="#style-value-namedColor"><b>8.3.10 <namedColor></b></a></p></li></ul><p>In the syntax representations defined in this section, no
linear whitespace (LWSP) is implied or permitted between tokens
unless explicitly specified.</p><div class="div3">
<h4><a id="style-value-alpha"></a>8.3.1 <alpha></h4><p>An <alpha> expression is used to express an opacity value,
@@ -3310,31 +3320,75 @@
: "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
</pre></div>
</td></tr></tbody></table></div><div class="div3">
-<h4><a id="style-value-duration"></a>8.3.4 <duration></h4><p>A <duration> expression is used to express a temporal duration value.</p><a id="duration-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <duration></caption><tbody><tr><td>
-<div class="exampleInner"><pre>
-<duration>
- : <a href="#style-value-digit"><digit></a>+ ( "." <a href="#style-value-digit"><digit></a>+ )? metric
-
-metric
- : "s" // seconds
- | "ms" // milliseconds
- | "f" // frames
- | "t" // ticks
-</pre></div>
-</td></tr></tbody></table><p>It is an error to omit the metric component of a duration.</p></div><div class="div3">
-<h4><a id="style-value-familyName"></a>8.3.5 <familyName></h4><p>A <familyName> expression specifies a font family name.</p><p>If the name contains a quotation delimiter character,
-then it must be expressed as a
-<quotedString>. If the name contains a
-whitespace character,
-then it should be expressed as a
-<quotedString>; however, if it is expressed as a <string>, then it
-must not contain a <code>COMMA</code> ',' character.</p><a id="familyName-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <familyName></caption><tbody><tr><td>
+<h4><a id="style-value-duration"></a>8.3.4 Deleted</h4><div class="note"><p class="prefix"><b>Note:</b></p><p>The information from this section has been removed due to lack of any normative
+use within this specification. This section is retained in its empty form
+in order to prevent section renumbering.</p></div></div><div class="div3">
+<h4><a id="style-value-familyName"></a>8.3.5 <familyName></h4><p>A <familyName> expression specifies a font family name.</p><a id="familyName-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <familyName></caption><tbody><tr><td>
<div class="exampleInner"><pre>
<familyName>
- : <a href="#style-value-string"><string></a>
- | <a href="#style-value-quotedString"><quotedString></a>
+ : unquoted-string
+ | quoted-string
+
+unquoted-string
+ : identifier ( lwsp identifier )*
+
+lwsp
+ : ( ' ' | '\t' | '\n' | '\r' )+
+
+identifier
+ : [-]? identifier-start identifier-following*
+
+identifier-start
+ : [_a-zA-Z]
+ | non-ascii-or-c1
+ | escape
+
+identifier-following
+ : [_a-zA-Z0-9-]
+ | non-ascii-or-c1
+ | escape
+
+non-ascii-or-c1
+ : [^\0-\237]
+
+escape
+ : '\\' <em>char</em>
+
+quoted-string
+ : double-quoted-string
+ | single-quoted-string
+
+double-quoted-string
+ : '"' ( [^"\\] | escape )+ '"'
+
+single-quoted-string
+ : "'" ( [^'\\] | escape )+ "'"
</pre></div>
-</td></tr></tbody></table></div><div class="div3">
+
+</td></tr></tbody></table><p>In addition to adhering to the syntax rules specified above, the following semantic rules apply:</p><ul><li><p>the semantic value of a <familyName> expression is the semantic value of its <code>unquoted-string</code> or <code>quoted-string</code>
+non-terminal, according to whichever applies;</p></li><li><p>the semantic value of an <code>unquoted-string</code> non-terminal is a pair <code><</code><em>quoted</em>, <em>content</em><code>></code>,
+where <em>quoted</em> is a boolean <code>false</code>, and
+where <em>content</em> is the result of appending the value of each <code>identifier</code>
+non-terminal, in lexical order, where the value of each identifier is preceded by a single SPACE (U+0020) character if it is not the first
+identifier;</p></li><li><p>the semantic value of a <code>quoted-string</code> non-terminal is a pair <code><</code><em>quoted</em>, <em>content</em><code>></code>,
+where <em>quoted</em> is a boolean <code>true</code>, and
+where <em>content</em> is the unquoted content of the quoted string, i.e., the sequence of characters between the delimiting quotes.</p></li><li><p>the semantic value of an <code>escape</code> non-terminal is the value of the escaped <code>char</code>;</p></li><li><p>a <familyName> that takes the form of an <code>unquoted-string</code> that contains an <code>identifier</code> that
+starts with two <code>-</code> HYPHEN-MINUS (U+002D) characters must be considered to be invalid;</p></li><li><p>a <familyName> that takes the form of an <code>unquoted-string</code> that contains a single <code>identifier</code> that
+matches (by case sensitive comparison) a <genericFamilyName> must be interpreted as that <genericFamilyName>;</p></li><li><p>a <familyName> that takes the form of a <code>quoted-string</code> whose content (unquoted value)
+matches (by case sensitive comparison) a <genericFamilyName> must not be interpreted as that <genericFamilyName>, but as
+the actual name of a non-generic font family.</p></li></ul><div class="note"><p class="prefix"><b>Note:</b></p><p>The syntactic element <em><code>char</code></em> is to be interpreted according
+to the <code>Char</code> production defined by <a href="#xml10">[XML 1.0]</a> §2.2.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>The <code>{unicode}</code> escape mechanism defined by <a href="#css2">[CSS2]</a> §4.1.1
+is not supported by this syntax; rather, authors are expected to either (1) directly encode the character
+using the document encoding or (2) use an XML character reference according to
+<a href="#xml10">[XML 1.0]</a> §4.1. When a syntactically significant character needs to be used
+without its normal syntactic interpretation, it may be be escaped using the backslash
+(reverse solidus) <code>escape</code> non-terminal specified above.</p><p>When using the backslash (reverse solidus) <code>escape</code> non-terminal, the above syntax does
+not place any restriction on what character may be escaped, e.g., <code>\\[\n\r\f0-9a-f]</code> are
+permitted. If one of these latter escapes appears in a <familyName> expression, then it will
+need to be converted to a <code>{unicode}</code> escape if it is to be used with a standard XSL-FO
+or CSS parser. In particular, a backslash followed by a newline is ignored by CSS, while it is not
+ignored by the above syntax. Such an unignored escaped newline would need to be represented using
+an equivalent <code>{unicode}</code> escape, such as <code>\a</code>, to order to express in CSS.</p></div></div><div class="div3">
<h4><a id="style-value-genericFamilyName"></a>8.3.6 <genericFamilyName></h4><p>A <genericFamilyName> expression specifies a font family using a general
token that indicates a class of font families.</p><p>The resolution of a generic family name to a concrete font instance is considered to
be implementation dependent, both in the case of content authoring and content interpretation.</p><a id="genericFamilyName-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <genericFamilyName></caption><tbody><tr><td>
@@ -3361,7 +3415,7 @@
dependent; however, it is recommended that this default font family be mapped to
an monospaced, sans-serif font.</p></div><div class="div3">
<h4><a id="style-value-hexDigit"></a>8.3.7 <hexDigit></h4><p>A <hexDigit> is used to express integers and other types of numbers or tokens
-that employ base 16 arithmetic.</p><p>For the purpose of parsing, no distinction must be made between lower and upper case.</p><a id="hexDigit-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <hexDigit></caption><tbody><tr><td>
+that employ base 16 arithmetic.</p><p>For the purpose of parsing, a distinction must not be made between lower and upper case.</p><a id="hexDigit-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <hexDigit></caption><tbody><tr><td>
<div class="exampleInner"><pre>
<hexDigit>
: <a href="#style-value-digit"><digit></a>
@@ -3423,7 +3477,7 @@
font when used to specify lengths in the block progression direction.</p><p>The semantics of the unit of measure <code>c</code> (cell) are
defined by the parameter <a href="#parameter-attribute-cellResolution"><b>6.2.1 ttp:cellResolution</b></a>.</p></div><div class="div3">
<h4><a id="style-value-namedColor"></a>8.3.10 <namedColor></h4><p>A <namedColor> is used to express an RGBA color with a convenient name, and where the applicable color space is
-defined by <a href="#srgb">[SRGB]</a>.</p><p>For the purpose of parsing, no distinction must be made between lower and upper case.</p><a id="namedColor-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <namedColor></caption><tbody><tr><td>
+defined by <a href="#srgb">[SRGB]</a>.</p><p>For the purpose of parsing, a distinction must not be made between lower and upper case.</p><a id="namedColor-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <namedColor></caption><tbody><tr><td>
<div class="exampleInner"><pre>
<namedColor>
: "transparent" // #00000000
@@ -3448,26 +3502,12 @@
</pre></div>
</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>Except for <code>transparent</code>, the set of named colors specified above constitutes a proper
subset of the set of named colors specified by <a href="#svg11">[SVG 1.1]</a>, § 4.2.</p></div></div><div class="div3">
-<h4><a id="style-value-quotedString"></a>8.3.11 <quotedString></h4><p>A <quotedString> is used to express a delimited string that may contain
-a whitespace or a quotation delimiter character. Two types of quotation delimiters
-are provided in order to accommodate strings that contain the other delimiter.</p><a id="quotedString-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <quotedString></caption><tbody><tr><td>
-<div class="exampleInner"><pre>
-<quotedString>
- : "\"" ( <em>char</em> - { "\"" } )* "\""
- | "\'" ( <em>char</em> - { "\'" } )* "\'"
-</pre></div>
-</td></tr></tbody></table><p>In the above syntax representation, the syntactic element <em><code>char</code></em> must adhere to production
-[2] <code>Char</code> as defined by <a href="#xml10">[XML 1.0]</a> §
-2.2.</p></div><div class="div3">
-<h4><a id="style-value-string"></a>8.3.12 <string></h4><p>A <string> expression consists of a sequence of characters where no character
-is a quotation delimiter character.</p><a id="string-style-expression-syntax"></a><table class="syntax"><caption>Syntax Representation – <string></caption><tbody><tr><td>
-<div class="exampleInner"><pre>
-<string>
- : ( <em>char</em> - { "\"" | "\'" } )+
-</pre></div>
-</td></tr></tbody></table><p>In the above syntax representation, the syntactic element <em><code>char</code></em> must adhere to production
-[2] <code>Char</code> as defined by <a href="#xml10">[XML 1.0]</a> §
-2.2.</p></div></div><div class="div2">
+<h4><a id="style-value-quotedString"></a>8.3.11 Deleted</h4><div class="note"><p class="prefix"><b>Note:</b></p><p>The information from this section has been incorporated into
+<a href="#style-value-familyName"><b>8.3.5 <familyName></b></a>. This section is retained in its empty form
+in order to prevent section renumbering.</p></div></div><div class="div3">
+<h4><a id="style-value-string"></a>8.3.12 Deleted</h4><div class="note"><p class="prefix"><b>Note:</b></p><p>The information from this section has been incorporated into
+<a href="#style-value-familyName"><b>8.3.5 <familyName></b></a>. This section is retained in its empty form
+in order to prevent section renumbering.</p></div></div></div><div class="div2">
<h3><a id="semantics-style-resolution"></a>8.4 Style Resolution</h3><p>This section defines the semantics of style resolution in terms of
a standard processing model as follows:</p><ul><li><p><a href="#semantics-style-association"><b>8.4.1 Style Association</b></a></p></li><li><p><a href="#semantics-style-inheritance"><b>8.4.2 Style Inheritance</b></a></p></li><li><p><a href="#semantics-style-resolution-value-categories"><b>8.4.3 Style Resolution Value Categories</b></a></p></li><li><p><a href="#semantics-style-resolution-processing"><b>8.4.4 Style Resolution Processing</b></a></p></li></ul><p>Any implementation of this model is permitted provided that the
externally observable results are consistent with the results produced
@@ -3888,7 +3928,10 @@
(associated with) the region.</p></div></div><div class="div2">
<h3><a id="layout-attribute-vocabulary"></a>9.2 Layout Attribute Vocabulary</h3><p>This section defines the <a href="#layout-attribute-region"><b>9.2.1 region</b></a> attribute used with content elements.</p><div class="div3">
<h4><a id="layout-attribute-region"></a>9.2.1 region</h4><p>The <code>region</code> attribute is used to reference a <code>region</code>
-element which defines a space or area into which a content element is intended to be flowed.</p><p>The <code>region</code> attribute may be specified by an instance of the following
+element which defines a space or area into which a content element is intended to be flowed.</p><p>If specified, the value of a <code>region</code> attribute must
+adhere to the <code>IDREF</code> data type defined by <a href="#xsd-2">[XML Schema Part 2]</a>,
+§ 3.3.9, and, furthermore, this IDREF must reference a <code>region</code> element
+which has a <code>layout</code> element as an ancestor.</p><p>The <code>region</code> attribute may be specified by an instance of the following
element types:</p><ul><li><p><a href="#document-structure-vocabulary-body"><code>body</code></a></p></li><li><p><a href="#content-vocabulary-div"><code>div</code></a></p></li><li><p><a href="#content-vocabulary-p"><code>p</code></a></p></li><li><p><a href="#content-vocabulary-span"><code>span</code></a></p></li></ul><div class="note"><p class="prefix"><b>Note:</b></p><p>See <a href="#semantics-region-layout"><b>9.3 Region Layout and Presentation</b></a> below for further information on content
flow in a region.</p></div></div></div><div class="div2">
<h3><a id="semantics-region-layout"></a>9.3 Region Layout and Presentation</h3><p>This section defines the semantics of region layout and
@@ -4356,7 +4399,7 @@
is used with a <code>dur</code> attribute, it is intended to be interpreted as
a difference between two implied clock time expressions.</p></div><p>When a <em>Document Instance</em> specifies the use of the
<code>smpte</code> time base and <code>discontinuous</code> marker
-mode, the <code>dur</code> attribute must not be specified on any
+mode, a (well-formed) <code>dur</code> attribute must not be specified on any
element.</p><p>The semantics of the <code>dur</code> attribute are those defined
by <a href="#smil21">[SMIL 2.1]</a>, § 10.4.1,
while taking into account any overriding semantics defined by this specification.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In the context of the subset of <a href="#smil21">[SMIL 2.1]</a> semantics supported by
@@ -4564,14 +4607,13 @@
used in a <em>Document Instances</em>:
</p><ul><li><p><a href="#metadata-vocabulary-title"><b>12.1.2 ttm:title</b></a></p></li><li><p><a href="#metadata-vocabulary-desc"><b>12.1.3 ttm:desc</b></a></p></li><li><p><a href="#metadata-vocabulary-copyright"><b>12.1.4 ttm:copyright</b></a></p></li><li><p><a href="#metadata-vocabulary-agent"><b>12.1.5 ttm:agent</b></a></p></li><li><p><a href="#metadata-vocabulary-name"><b>12.1.6 ttm:name</b></a></p></li><li><p><a href="#metadata-vocabulary-actor"><b>12.1.7 ttm:actor</b></a></p></li></ul><div class="div3">
<h4><a id="metadata-vocabulary-metadata"></a>12.1.1 metadata</h4><p>The <code>metadata</code> element functions as a generic container for metadata
-information.</p><p>Metadata information may be expressed by a <code>metadata</code> element
-in one of two (non-mutually exclusive) manners: (1) by specifying one
-or more metadata attributes on the <code>metadata</code>
-element, and (2) by specifying one
-or more child elements
-in the <code>metadata</code> element
-that express metadata. Both types of metadata
-are referred to in this document as <em>metadata items</em>.</p><a id="elt-syntax-metadata"></a><table class="syntax"><caption>XML Representation – Element Information Item: metadata</caption><tbody><tr><td>
+information.</p><p>A <code>metadata</code> element must not express <em>metadata information</em>
+by both (1) specifying this information in the form of one or more attributes and (2)
+specifying this information in the form of one or more child elements. Both types
+of <em>metadata information</em> are referred to in this document as metadata
+items.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>In other words, a given <code>metadata</code> element may specify metadata information
+either (1) as attributes, or (2) as child elements, but it may not specify both forms
+of metadata information together.</p></div><a id="elt-syntax-metadata"></a><table class="syntax"><caption>XML Representation – Element Information Item: metadata</caption><tbody><tr><td>
<div class="exampleInner"><pre>
<metadata
<a href="#content-attribute-id">xml:id</a> = ID
@@ -4585,8 +4627,7 @@
</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>The meaning of a specific metadata item must be evaluated in the
context of where it appears. The core vocabulary catalog permits an
arbitrary number of <code>metadata</code> element children of any
-content element type except for the
-<code>tt</code> element. See specific element
+content element type except for the <code>tt</code> element. See specific element
vocabulary definitions for any constraints that apply to such
usage.</p></div><p>The use of document metadata is illustrated by the following example.</p><a id="metadata-vocabulary-metadata-example-1"></a><table class="example"><caption>Example Fragment – Document Metadata</caption><tbody><tr><td>
<div class="exampleInner"><pre>
@@ -4779,7 +4820,7 @@
involved in the performance of the content.</p><p>If specified, a <code>ttm:agent</code> attribute must reference
<code>ttm:agent</code> element instances that appear
as a descendent of the same <em>Document Instance</em> as
-that of the referring element.</p><p>An example of the <code>ttm:agent</code> attribute is shown above in
+that of the referring element.</p><p>The same IDREF, <em>ID</em>, should not appear more than once in the value of a <code>ttm:agent</code> attribute.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>This constraint is intended to discourage the use of redundant agent references.</p></div><p>An example of the <code>ttm:agent</code> attribute is shown above in
<a href="#metadata-vocabulary-agent-example-1"><b>Example Fragment – Agent Metadata</b></a>.</p></div><div class="div3">
<h4><a id="metadata-attribute-role"></a>12.2.2 ttm:role</h4><p>The <code>ttm:role</code> attribute may be used by a content author
to express
@@ -4819,7 +4860,7 @@
token-char
: { XML NameChar } // XML 1.1 Production [4a]
</pre></div>
-</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><p>All values of <code>ttm:role</code> that do not start with the prefix
+</td></tr></tbody></table><p>The same <code>role</code> token, <em>R</em>, should not appear more than once in the value of a <code>ttm:role</code> attribute.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>This constraint is intended to discourage the use of redundant role tokens.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>All values of <code>ttm:role</code> that do not start with the prefix
<code>x-</code> are reserved for future standardization.</p></div><div class="note"><p class="prefix"><b>Note:</b></p><p>If using a custom <code>x-</code> prefixed form of <code>ttm:role</code>, it
is recommended that an organization unique infix be used as well in order to
prevent collisions. For example, <code>x-example-org-custom-role</code>. Furthermore,
@@ -6425,7 +6466,7 @@
<h2><a id="derivation"></a>J Vocabulary Derivation (Non-Normative)</h2><p>This appendix provides information about the derivation of TTML
vocabulary, separately describing derivation of elements and
attributes.</p><div class="div2">
-<h3><a id="d3e18329"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
+<h3><a id="d3e18547"></a>J.1 Element Derivation</h3><p>The first column of <a href="#element-vocab-derivation-table"><b>Table J-1 – Elements</b></a>
specifies a TTML element vocabulary item; the second column specifies the
syntactic and/or semantic model on which the vocabulary item is based;
the third column specifies the reference that defines
@@ -6480,7 +6521,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 id="d3e18808"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
+<h3><a id="d3e19026"></a>J.2 Attribute Derivation</h3><p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table J-2 – Attributes</b></a>
specifies a TTML attribute vocabulary item; the second column specifies the
syntactic and/or semantic model on which the vocabulary item is based;
the third column specifies the reference that defines
@@ -6552,9 +6593,9 @@
<h2><a id="qa"></a>K QA Framework Compliance (Non-Normative)</h2><p>This appendix specifies the compliance of this specification with the
requirements and guidelines defined by <a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA
Framework Specifications Guidelines</a> <a href="#qaf-sg">[QAF SG]</a>.</p><div class="div2">
-<h3><a id="d3e19694"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
+<h3><a id="d3e19912"></a>K.1 Requirements</h3><a id="qa-framework-requirements-table"></a><table class="common"><caption>Table K-1 – QA Framework Requirements Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Requirement</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
clause</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-scope-principle">Requirement 02: Define the scope.</a></td><td><a href="#intro">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#implement-principle">Requirement 03: Identify who or what will implement the specification.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-norm-principle">Requirement 04: Make a list of normative references.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-principle">Requirement 05: Define the terms used in the normative parts of the specification.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conf-label-principle">Requirement 06: Create conformance labels for each part of the conformance model.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#consistent-style-principle">Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#req-opt-conf-principle">Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-mandatory-principle">Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdiv-constraints-principle">Requirement 10: If the technology is subdivided, then address subdivision constraints.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#likehood-extension-principle">Requirement 11: Address Extensibility.</a></td><td><a href="#doctypes">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#deprecated-feature-principle">Requirement 12: Identify deprecated features.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#degree-support-principle">Requirement 13: Define how each class of product handles each deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>1</td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>No feature is deprecated by this version of this specification.</p></li></ol></div></div><div class="div2">
-<h3><a id="d3e19858"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
+<h3><a id="d3e20076"></a>K.2 Guidelines</h3><a id="qa-framework-guidelines-table"></a><table class="common"><caption>Table K-2 – QA Framework Guidelines Checklist</caption><col width="76%" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><col width="6%" align="center" span="1"><tbody><tr><td><span class="strong">Guideline</span></td><td><span class="strong">YES</span></td><td><span class="strong">NO</span></td><td><span class="strong">N/A</span></td><td><span class="strong">Notes</span></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</a></td><td><a href="#conventions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</a></td><td></td><td>NO</td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</a></td><td><a href="#claims">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</a></td><td><a href="#example">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</a></td><td><a href="#references">YES</a></td><td></td><td></td><td>1</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</a></td><td><a href="#definitions">YES</a></td><td></td><td></td><td>2</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</a></td><td><a href="#schemas">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</a></td><td></td><td>NO</td><td></td><td>3</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</a></td><td><a href="#conformance">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</a></td><td><a href="#vocabulary-profiles">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</a></td><td>YES</td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</a></td><td><a href="#extension-vocabulary-overview">YES</a></td><td></td><td></td><td></td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</a></td><td><a href="#conformance-processor">YES</a></td><td></td><td></td><td>4</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</a></td><td></td><td></td><td>N/A</td><td>5</td></tr><tr><td><a href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</a></td><td><a href="#reduced-infoset">YES</a></td><td></td><td></td><td></td></tr></tbody></table><div class="note"><p class="prefix"><b>Note:</b></p><ol class="enumar"><li><p>When making normative references to external specifications,
specific clauses or sections are cited.</p></li><li><p>See also <a href="#derivation"><b>J Vocabulary Derivation</b></a>.</p></li><li><p>Test assertions and test suites will be provided prior to entering
Proposed Recommendation (PR) phase.</p></li><li><p>See criterion #3 in <a href="#conformance-processor"><b>3.2 Processor Conformance</b></a> and definition of
TTML <a href="#doctypes">Abstract Document Instance</a>.</p></li><li><p>No feature is deprecated or obsoleted by this version of this specification.</p></li></ol></div></div></div><div class="div1">
--- a/ttml10/spec/ttaf1-dfxp.xml Sun May 26 18:59:22 2013 -0600
+++ b/ttml10/spec/ttaf1-dfxp.xml Wed Jun 19 15:28:56 2013 +0800
@@ -552,6 +552,15 @@
</def>
</gitem>
<gitem>
+<label>Computed Cell Size</label>
+<def>
+<p>The size (extent) of a cell computed by dividing the width of the <emph>Root Container
+Region</emph> (in pixels) by the column count, i.e., the number of cells in the horizontal axis, and by dividing
+the height of the <emph>Root Container Region</emph> (in pixels) by the row count, i.e., the number of cells in the vertical
+axis, where the column and row counts are determined by the <att>ttp:cellResolution</att> parameter attribute.</p>
+</def>
+</gitem>
+<gitem>
<label>Content Processor</label>
<def>
<p>A processing system capable of importing (receiving) Timed Text Markup Language
@@ -683,6 +692,13 @@
</def>
</gitem>
<gitem>
+<label>Related Media Object Region</label>
+<def>
+<p>When a non-null <emph>Related Media Object</emph> exists, the region in which
+a presentation processor presents this media object.</p>
+</def>
+</gitem>
+<gitem>
<label>Root Container Region</label>
<def>
<p>A logical region that establishes a coordinate system into which
@@ -2526,8 +2542,8 @@
<p>If a value of <code>discontinuous</code> applies, then time
expressions must not be converted to real time
coordinates, arithmetical operators (addition, multiplication) are not
-defined on time expressions, and, consequently, any expression of a
-duration must be considered to be invalid.</p>
+defined on time expressions, and, consequently, any (well-formed)
+expression of a duration must be considered to be invalid.</p>
<note role="explanation">
<p>When operating with <code>smpte</code> time base and
<code>discontinuous</code> marker mode, there is no effective time coordinate
@@ -2823,6 +2839,16 @@
attribute is specified, then the spatial extent of the <emph>Root Container Region</emph> is
considered to be determined by the <emph>Document Processing Context</emph>.
The origin of the <emph>Root Container Region</emph> is determined by the <emph>Document Processing Context</emph>.</p>
+<note role="clarification">
+<p>In the absence of other requirements, and if a <emph>Related Media Object</emph> exists, then it is recommended
+that the <emph>Document Processing Context</emph> determine that:</p>
+<ulist>
+<item><p>if no <att>tts:extent</att> is specified on the root <el>tt</el> element, the extent of the <emph>Root Container Region</emph> be
+established as equal to the extent of the <emph>Related Media Object Region</emph>; and</p></item>
+<item><p>the origin of the <emph>Root Container Region</emph> be established so that this region is centered in the
+<emph>Related Media Object Region</emph>.</p></item>
+</ulist>
+</note>
<note role="elaboration">
<p>If an author desires to signal the (storage or image) aspect ratio of the <emph>Root Container Region</emph>
without specifying its resolution, then this may be accomplished by using metadata specified
@@ -2830,11 +2856,6 @@
This would permit, for example, the interchange of information that reflects the
the semantics of <bibref ref="cea708d"/> , §4.5 “Caption Service Metadata”, “ASPECT RATIO”.</p>
</note>
-<note role="clarification">
-<p>In the absence of other requirements, and if a <emph>Related Media Object</emph> exists, then it is recommended
-that the origin of the <emph>Root Container Region</emph> be established so that it is centered in the region within
-which the <emph>Related Media Object</emph> is presented.</p>
-</note>
<p>An <att>xml:lang</att> attribute must be specified on the <el>tt</el> element.
If the attribute value is empty, it signifies that there is no default language that applies
to the text contained within the <emph>Document Instance</emph>.</p>
@@ -3451,7 +3472,16 @@
</ulist>
<p>If specified, the value of a <att>style</att> attribute must
adhere to the <code>IDREFS</code> data type defined by <bibref ref="xsd-2"/>,
-§ 3.3.10.</p>
+§ 3.3.10, and, furthermore, each IDREF must reference a <el>style</el> element
+which has a <el>styling</el> element as an ancestor.</p>
+<p>If the same IDREF, <emph>ID<sub>1</sub></emph>, appears more than one time in the value of a <att>style</att>
+attribute, then there should be an intervening IDREF, <emph>ID<sub>2</sub></emph>, where
+<emph>ID<sub>2</sub></emph> is not equal to <emph>ID<sub>1</sub></emph>.</p>
+<note role="explanation">
+<p>This constraint is intended to discourage the use of redundant referential styling while still
+allowing the same style to be referenced multiple times in order to potentially override prior
+referenced styles, e.g., when an intervening, distinct style is referenced in the IDREFS list.</p>
+</note>
<note role="usage">
<p>See the specific element type definitions that permit use of the
<att>style</att> attribute, as well as <specref
@@ -4021,20 +4051,12 @@
<p>The <loc href="#style-value-length"><length></loc> value(s) used to express extent must be non-negative.</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 extent of the <emph>Root Container Region</emph>.</p>
-<p>
-The extent of the <emph>Root Container Region</emph> is determined either by a
+<p>The extent of the <emph>Root Container Region</emph> is determined either by a
<att>tts:extent</att> specified on the <el>tt</el> element, if
-present, or by the external authoring context, if not present.
-If
-<att>tts:extent</att> is specified on the <el>tt</el> element,
-then
-the width and height
-must be
-expressed in terms of two
-<loc href="#style-value-length"><length></loc> specifications,
-and
-these specifications must be expressed as non-percentage,
-definite lengths using pixel units.</p>
+present, or as described by <specref ref="document-structure-vocabulary-tt"/> if not present.
+If <att>tts:extent</att> is specified on the <el>tt</el> element, then
+the width and height must be expressed in terms of two <loc href="#style-value-length"><length></loc> specifications,
+and these specifications must be expressed as non-percentage, definite lengths using pixel units.</p>
<p>If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value <code>auto</code> were specified.</p>
@@ -4216,7 +4238,7 @@
</tr>
<tr>
<td><emph>Percentages:</emph></td>
-<td>relative to parent element's font size</td>
+<td>relative to parent element's font size, or if no parent element, then relative to the <emph>Computed Cell Size</emph></td>
</tr>
<tr>
<td><emph>Animatable:</emph></td>
@@ -4246,6 +4268,17 @@
<p>The expression <code>1c</code> means one cell, where <code>'c'</code> expresses
the <emph>cell</emph> length unit as defined by <specref ref="style-value-length"/>.</p>
</note>
+<note role="example">
+<p>As specified above, the use of percentage units to express font size are interpreted as
+relative to <emph>Computed Cell Size</emph> when there is no parent element. For example, if cell resolution
+is 32 by 15, and the extent of the <emph>Root Container Region</emph> is 640 by 480, then the
+<emph>Computed Cell Size</emph> is [20px, 32px], i.e., 640px/32 (width) and 480px/15 (height). Consequently, if
+<att>tts:fontSize</att> were specified as 75% on the root <el>tt</el> element, then this would
+be equivalent to specifying 24px, i.e., 32px cell height * 75%.
+If two length expressions (independent horizontal and vertical font scaling) were specified, e.g.,
+"80% 75%", then this would be equivalent to specifying "16px 24px", i.e., 80% of 20px cell width is
+16px, and 75% of 32px cell height is 24px.</p>
+</note>
<p>The <att>tts:fontSize</att> style is illustrated by the following example.</p>
<table id="style-attribute-fontSize-example-1" role="example">
<caption>Example Fragment – Font Size</caption>
@@ -4751,7 +4784,7 @@
then they must be interpreted as <emph>x</emph> and <emph>y</emph> coordinates, where the first specification
is the <emph>x</emph> coordinate, and the second specification is the <emph>y</emph> coordinate.</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 origin of the <emph>Root Container Origin</emph>.</p>
+of the style property must be considered to be the same as the origin of the <emph>Root Container Region</emph>.</p>
<p>If a specified value of this attribute is not supported,
then a presentation processor must interpret the attribute as if the
value <code>auto</code> were specified.</p>
@@ -5379,6 +5412,7 @@
present, the computed value of the <att>tts:color</att> applies. The first
<emph>length</emph> term denotes the outline thickness and the second length
term, if present, indicates the blur radius.</p>
+<p>The <loc href="#style-value-length"><length></loc> value(s) used to express thickness and blur radius must be non-negative.</p>
<note role="elaboration">
<p>When a <loc href="#style-value-length"><length></loc> expressed in
cells is used in a <att>tts:textOutline</att> value,
@@ -5996,15 +6030,12 @@
<item><p><specref ref="style-value-alpha"/></p></item>
<item><p><specref ref="style-value-color"/></p></item>
<item><p><specref ref="style-value-digit"/></p></item>
-<item><p><specref ref="style-value-duration"/></p></item>
<item><p><specref ref="style-value-familyName"/></p></item>
<item><p><specref ref="style-value-genericFamilyName"/></p></item>
<item><p><specref ref="style-value-hexDigit"/></p></item>
<item><p><specref ref="style-value-integer"/></p></item>
<item><p><specref ref="style-value-length"/></p></item>
<item><p><specref ref="style-value-namedColor"/></p></item>
-<item><p><specref ref="style-value-quotedString"/></p></item>
-<item><p><specref ref="style-value-string"/></p></item>
</ulist>
<p>In the syntax representations defined in this section, no
linear whitespace (LWSP) is implied or permitted between tokens
@@ -6112,40 +6143,16 @@
</table>
</div3>
<div3 id="style-value-duration">
-<head><duration></head>
-<p>A <duration> expression is used to express a temporal duration value.</p>
-<table id="duration-style-expression-syntax" role="syntax">
-<caption>Syntax Representation – <duration></caption>
-<tbody>
-<tr>
-<td>
-<eg xml:space="preserve">
-<duration>
- : <loc href="#style-value-digit"><digit></loc>+ ( "." <loc href="#style-value-digit"><digit></loc>+ )? metric
-
-metric
- : "s" // seconds
- | "ms" // milliseconds
- | "f" // frames
- | "t" // ticks
-</eg>
-</td>
-</tr>
-</tbody>
-</table>
-<p>It is an error to omit the metric component of a duration.</p>
+<head>Deleted</head>
+<note>
+<p>The information from this section has been removed due to lack of any normative
+use within this specification. This section is retained in its empty form
+in order to prevent section renumbering.</p>
+</note>
</div3>
<div3 id="style-value-familyName">
<head><familyName></head>
<p>A <familyName> expression specifies a font family name.</p>
-<p>If the name contains a quotation delimiter character,
-then it must be expressed as a
-<quotedString>. If the name contains a
-whitespace character,
-then it should be expressed as a
-<quotedString>; however, if it is expressed as a <string>, then it
-must not contain a <code>COMMA</code> ',' character.</p>
-
<table id="familyName-style-expression-syntax" role="syntax">
<caption>Syntax Representation – <familyName></caption>
<tbody>
@@ -6153,13 +6160,89 @@
<td>
<eg xml:space="preserve">
<familyName>
- : <loc href="#style-value-string"><string></loc>
- | <loc href="#style-value-quotedString"><quotedString></loc>
-</eg>
-</td>
-</tr>
-</tbody>
-</table>
+ : unquoted-string
+ | quoted-string
+
+unquoted-string
+ : identifier ( lwsp identifier )*
+
+lwsp
+ : ( ' ' | '\t' | '\n' | '\r' )+
+
+identifier
+ : [-]? identifier-start identifier-following*
+
+identifier-start
+ : [_a-zA-Z]
+ | non-ascii-or-c1
+ | escape
+
+identifier-following
+ : [_a-zA-Z0-9-]
+ | non-ascii-or-c1
+ | escape
+
+non-ascii-or-c1
+ : [^\0-\237]
+
+escape
+ : '\\' <emph>char</emph>
+
+quoted-string
+ : double-quoted-string
+ | single-quoted-string
+
+double-quoted-string
+ : '"' ( [^"\\] | escape )+ '"'
+
+single-quoted-string
+ : "'" ( [^'\\] | escape )+ "'"
+</eg>
+<!-- " -->
+</td>
+</tr>
+</tbody>
+</table>
+<p>In addition to adhering to the syntax rules specified above, the following semantic rules apply:</p>
+<ulist>
+<item><p>the semantic value of a <familyName> expression is the semantic value of its <code>unquoted-string</code> or <code>quoted-string</code>
+non-terminal, according to whichever applies;</p></item>
+<item><p>the semantic value of an <code>unquoted-string</code> non-terminal is a pair <code><</code><emph>quoted</emph>, <emph>content</emph><code>></code>,
+where <emph>quoted</emph> is a boolean <code>false</code>, and
+where <emph>content</emph> is the result of appending the value of each <code>identifier</code>
+non-terminal, in lexical order, where the value of each identifier is preceded by a single SPACE (U+0020) character if it is not the first
+identifier;</p></item>
+<item><p>the semantic value of a <code>quoted-string</code> non-terminal is a pair <code><</code><emph>quoted</emph>, <emph>content</emph><code>></code>,
+where <emph>quoted</emph> is a boolean <code>true</code>, and
+where <emph>content</emph> is the unquoted content of the quoted string, i.e., the sequence of characters between the delimiting quotes.</p></item>
+<item><p>the semantic value of an <code>escape</code> non-terminal is the value of the escaped <code>char</code>;</p></item>
+<item><p>a <familyName> that takes the form of an <code>unquoted-string</code> that contains an <code>identifier</code> that
+starts with two <code>-</code> HYPHEN-MINUS (U+002D) characters must be considered to be invalid;</p></item>
+<item><p>a <familyName> that takes the form of an <code>unquoted-string</code> that contains a single <code>identifier</code> that
+matches (by case sensitive comparison) a <genericFamilyName> must be interpreted as that <genericFamilyName>;</p></item>
+<item><p>a <familyName> that takes the form of a <code>quoted-string</code> whose content (unquoted value)
+matches (by case sensitive comparison) a <genericFamilyName> must not be interpreted as that <genericFamilyName>, but as
+the actual name of a non-generic font family.</p></item>
+</ulist>
+<note role="notation">
+<p>The syntactic element <emph><code>char</code></emph> is to be interpreted according
+to the <code>Char</code> production defined by <bibref ref="xml10"/> §2.2.</p>
+</note>
+<note role="elaboration">
+<p>The <code>{unicode}</code> escape mechanism defined by <bibref ref="css2"/> §4.1.1
+is not supported by this syntax; rather, authors are expected to either (1) directly encode the character
+using the document encoding or (2) use an XML character reference according to
+<bibref ref="xml10"/> §4.1. When a syntactically significant character needs to be used
+without its normal syntactic interpretation, it may be be escaped using the backslash
+(reverse solidus) <code>escape</code> non-terminal specified above.</p>
+<p>When using the backslash (reverse solidus) <code>escape</code> non-terminal, the above syntax does
+not place any restriction on what character may be escaped, e.g., <code>\\[\n\r\f0-9a-f]</code> are
+permitted. If one of these latter escapes appears in a <familyName> expression, then it will
+need to be converted to a <code>{unicode}</code> escape if it is to be used with a standard XSL-FO
+or CSS parser. In particular, a backslash followed by a newline is ignored by CSS, while it is not
+ignored by the above syntax. Such an unignored escaped newline would need to be represented using
+an equivalent <code>{unicode}</code> escape, such as <code>\a</code>, to order to express in CSS.</p>
+</note>
</div3>
<div3 id="style-value-genericFamilyName">
<head><genericFamilyName></head>
@@ -6344,48 +6427,20 @@
</note>
</div3>
<div3 id="style-value-quotedString">
-<head><quotedString></head>
-<p>A <quotedString> is used to express a delimited string that may contain
-a whitespace or a quotation delimiter character. Two types of quotation delimiters
-are provided in order to accommodate strings that contain the other delimiter.</p>
-<table id="quotedString-style-expression-syntax" role="syntax">
-<caption>Syntax Representation – <quotedString></caption>
-<tbody>
-<tr>
-<td>
-<eg xml:space="preserve">
-<quotedString>
- : "\"" ( <emph>char</emph> - { "\"" } )* "\""
- | "\'" ( <emph>char</emph> - { "\'" } )* "\'"
-</eg>
-</td>
-</tr>
-</tbody>
-</table>
-<p>In the above syntax representation, the syntactic element <emph><code>char</code></emph> must adhere to production
-[2] <code>Char</code> as defined by <bibref ref="xml10"/> §
-2.2.</p>
+<head>Deleted</head>
+<note>
+<p>The information from this section has been incorporated into
+<specref ref="style-value-familyName"/>. This section is retained in its empty form
+in order to prevent section renumbering.</p>
+</note>
</div3>
<div3 id="style-value-string">
-<head><string></head>
-<p>A <string> expression consists of a sequence of characters where no character
-is a quotation delimiter character.</p>
-<table id="string-style-expression-syntax" role="syntax">
-<caption>Syntax Representation – <string></caption>
-<tbody>
-<tr>
-<td>
-<eg xml:space="preserve">
-<string>
- : ( <emph>char</emph> - { "\"" | "\'" } )+
-</eg>
-</td>
-</tr>
-</tbody>
-</table>
-<p>In the above syntax representation, the syntactic element <emph><code>char</code></emph> must adhere to production
-[2] <code>Char</code> as defined by <bibref ref="xml10"/> §
-2.2.</p>
+<head>Deleted</head>
+<note>
+<p>The information from this section has been incorporated into
+<specref ref="style-value-familyName"/>. This section is retained in its empty form
+in order to prevent section renumbering.</p>
+</note>
</div3>
</div2>
<div2 id="semantics-style-resolution">
@@ -7151,6 +7206,10 @@
<head>region</head>
<p>The <att>region</att> attribute is used to reference a <el>region</el>
element which defines a space or area into which a content element is intended to be flowed.</p>
+<p>If specified, the value of a <att>region</att> attribute must
+adhere to the <code>IDREF</code> data type defined by <bibref ref="xsd-2"/>,
+§ 3.3.9, and, furthermore, this IDREF must reference a <el>region</el> element
+which has a <el>layout</el> element as an ancestor.</p>
<p>The <att>region</att> attribute may be specified by an instance of the following
element types:</p>
<ulist>
@@ -7670,7 +7729,7 @@
</note>
<p>When a <emph>Document Instance</emph> specifies the use of the
<code>smpte</code> time base and <code>discontinuous</code> marker
-mode, the <att>dur</att> attribute must not be specified on any
+mode, a (well-formed) <att>dur</att> attribute must not be specified on any
element.</p>
<p>The semantics of the <att>dur</att> attribute are those defined
by <bibref ref="smil21"/>, § 10.4.1,
@@ -8028,14 +8087,16 @@
<head>metadata</head>
<p>The <el>metadata</el> element functions as a generic container for metadata
information.</p>
-<p>Metadata information may be expressed by a <el>metadata</el> element
-in one of two (non-mutually exclusive) manners: (1) by specifying one
-or more metadata attributes on the <el>metadata</el>
-element, and (2) by specifying one
-or more child elements
-in the <el>metadata</el> element
-that express metadata. Both types of metadata
-are referred to in this document as <emph>metadata items</emph>.</p>
+<p>A <el>metadata</el> element must not express <emph>metadata information</emph>
+by both (1) specifying this information in the form of one or more attributes and (2)
+specifying this information in the form of one or more child elements. Both types
+of <emph>metadata information</emph> are referred to in this document as metadata
+items.</p>
+<note role="elaboration">
+<p>In other words, a given <el>metadata</el> element may specify metadata information
+either (1) as attributes, or (2) as child elements, but it may not specify both forms
+of metadata information together.</p>
+</note>
<table id="elt-syntax-metadata" role="syntax">
<caption>XML Representation – Element Information Item: metadata</caption>
<tbody>
@@ -8059,8 +8120,7 @@
<p>The meaning of a specific metadata item must be evaluated in the
context of where it appears. The core vocabulary catalog permits an
arbitrary number of <el>metadata</el> element children of any
-content element type except for the
-<el>tt</el> element. See specific element
+content element type except for the <el>tt</el> element. See specific element
vocabulary definitions for any constraints that apply to such
usage.</p>
</note>
@@ -8436,6 +8496,10 @@
<el>ttm:agent</el> element instances that appear
as a descendent of the same <emph>Document Instance</emph> as
that of the referring element.</p>
+<p>The same IDREF, <emph>ID</emph>, should not appear more than once in the value of a <att>ttm:agent</att> attribute.</p>
+<note role="explanation">
+<p>This constraint is intended to discourage the use of redundant agent references.</p>
+</note>
<p>An example of the <att>ttm:agent</att> attribute is shown above in
<specref ref="metadata-vocabulary-agent-example-1"/>.</p>
</div3>
@@ -8489,6 +8553,10 @@
</tr>
</tbody>
</table>
+<p>The same <code>role</code> token, <emph>R</emph>, should not appear more than once in the value of a <att>ttm:role</att> attribute.</p>
+<note role="explanation">
+<p>This constraint is intended to discourage the use of redundant role tokens.</p>
+</note>
<note role="extensibility">
<p>All values of <att>ttm:role</att> that do not start with the prefix
<code>x-</code> are reserved for future standardization.</p>
--- a/ttml10/spec/ttml-changes.html Sun May 26 18:59:22 2013 -0600
+++ b/ttml10/spec/ttml-changes.html Wed Jun 19 15:28:56 2013 +0800
@@ -45,12 +45,13 @@
<span class="strong">Editorial Changes</span>
-* Add new terminology: Document Instance, Document Interchange Context, Document Processing
- Context, Presentation Processor, Related Media Object, Root Temporal Extent, SMPTE Time Code,
- Synthetic Document Syncbase, Synthetic SMPTE Document Syncbase, Transformation Processor
- Valid Abstract Document Instance.
* Change "MIME Media Types" to "Media Types" throughout.
* Change "external time interval" to "Root Temporal Extent" throughout.
+* In 2.2, add new terminology: Computed Cell Size, Document Instance, Document Interchange
+ Context, Document Processing Context, Presentation Processor, Related Media Object,
+ Related Media Object Region, Root Temporal Extent, SMPTE Time Code, Synthetic Document
+ Syncbase, Synthetic SMPTE Document Syncbase, Transformation Processor, and Valid
+ Abstract Document Instance.
* In 3.2.1, add notes elaborating intended meaning of "mandatory semantics" and "optional
semantics".
* In 4.1, change "normative schemas" to "schemas", since the included schemas do not define
@@ -98,6 +99,9 @@
element's implicit duration.
* In 7.1.1, add note indicating possible use of the SMPTE-TT defined m708:aspectRatio
attribute in order to express storage aspect ratio.
+* In 7.1.1, add note recommending that the extent of the root container region be equal
+ to the extent of the related media object region, if one exists if no other requirement
+ applies;
* In 7.1.1, add note recommending that the origin of the root container region be set so as
to center this region in the presentation of a related media object (if it exists).
* In 7.1.5, add note clarifying that a tt:p element implies a line break boundary.
@@ -115,29 +119,52 @@
xs:IDREFS data type; this is not a new requirement, since it is already indicated in
the syntax representation definitions of elements that permit this attribute. Here it
provides a (redundant) reminder to the reader of this requirement.
-* In 8.2.7, clarify that a negative value in an extent is to be interpreted as causing
- the corresponding region to be empty (zero in both dimensions).
+* In 8.2.1, clarify that IDREF in xs:IDREFS value of style attribute must reference a
+ style element that is a descendant of styling element.
+* In 8.2.1, clarify that duplicate IDREF in xs:IDREFS value of style attribute should
+ have an intervening IDREF that is not the same IDREF.
+* In 8.2.7, clarify that a negative value in an extent is not valid.
+* In 8.2.7, replace reference to "external authoring context" with reference to prose
+ in 7.1.1.
* In 8.2.9, remove phrase "where font size is interpreted as a scaling transform to the
font's design EM square", which has caused confusion for some readers, and is not
intended to supplant or change the nominal interpretation of this property as defined
by XSL-FO and CSS2.
* In 8.2.9, replace "metrics" with "units".
+* In 8.2.9, clarify that meaning of percentage when expressed on root element (which has
+ no parent) is interpreted relative to cell size.
+* In 8.2.9, add note with example of using percentage on font size on root element.
+* In 8.2.9, clarify that a negative value in a font size is not valid.
+* In 8.2.12, clarify that a negative value in a line height is not valid.
* In 8.2.14, remove "if specified, or the external authoring context, if not specified"
from the first paragraph, since there is always a defined root container region.
+* In 8.2.16, clarify that a negative value in a padding is not valid.
* In 8.2.20, clarify that if outline dimensions are expressed in cells, then the
block progression cell resolution applies and is applied uniformly.
+* In 8.2.20, clarify that a negative value in thickness or blur radius is not valid.
* In 8.3, add paragraph indicating that linear whitespace (LWSP) is not implied or
permitted between tokens of style value expressions defined thereunder unless
explicitly specified.
-* In 8.3.4, remove paragraph "When operating with smpte time base and discontinuous mode,
- a duration expression must be considered to denote a duration in (local) real-time,
- independently of the governing time base.", which contradicts normative language in
- Section 6.2.6 (ttp:markerMode) that makes any expression of duration invalid in
- smpte discontinuous mode.
+* In 8.3.4, remove contents of section since no normative (or other) use is made
+ of a <duration> syntax expression. Leave empty section in place in order
+ to prevent renumbering sections.
+* In 8.3.5, rewrite <familyName> syntax to clarify intention to be interoperable
+ with admissible XSL-FO and CSS values, with remaining exceptions being: (1) the
+ CSS 2.1 {unicode} escape is not supported, and (2) no constraint is placed on what
+ character may be escaped by a backslash (reverse solidus) escape, i.e., an escaped
+ newline is interpreted as a newline (and not ignored as with CSS).
+* In 8.3.11, move normative contents of this section into 8.3.5 which is the only use
+ of the <quotedString> syntax. Leave empty section in place in order
+ to prevent renumbering sections.
+* In 8.3.12, move normative contents of this section into 8.3.5 which is the only use
+ of the <string> syntax. Leave empty section in place in order
+ to prevent renumbering sections.
* In 8.4.4.2, clarify that animation styling (produced by tt:set) is to be taken into
account after nested styling and before implicit inheritance.
* In 9.1.2, correctly state that the layout ancestor element is the nearest ancestor with a
time interval, and not the tt element (although they happen to be the same).
+* In 9.2.1, clarify that IDREF value of region attribute must reference a region element
+ descendant of a layout element.
* In 9.3.2, clarify meaning of term "prune".
* In 9.3.2, remove non-normative, pseudo-code example of region mappingg algorithm.
* In 9.3.2, add note recommending smooth transitions between rendition of intermediate
@@ -155,8 +182,15 @@
* In 10.3.1, clarify that use of frames and sub-frames with clock time base is considered
an error.
* In 10.4, add references to new time expression semantics appendix (N).
+* In 12.1.1, improve language expressing mutual exclusion constraint on use of metadata
+ element to express either (1) attributes or (2) element children [but not both]. Add
+ note clarifying this even further.
+* In 12.2.1, clarify that a duplicate IDREF should not appear in xs:IDREFS value of
+ ttm:agent attribute.
* In 12.2.2, add note suggesting use of infix organization identifier to prevent
collision between custom role values. Add inline reference to role registry.
+* In 12.2.2, clarify that a duplicate token should not appear in xs:NMTOKENS value of
+ ttm:role attribute. Add note further explaining rationale is to avoide redundancy.
* In Appendix B, remove inlined schemas (B.1 and B.2), retaining references to external
ZIP archives that contain the schemas.
* In Appendix C, update (1) charset optional parameter usage, encoding considerations,
Binary file ttml10/spec/xsd/schema.zip has changed
--- a/ttml10/spec/xsd/ttaf1-dfxp-metadata.xsd Sun May 26 18:59:22 2013 -0600
+++ b/ttml10/spec/xsd/ttaf1-dfxp-metadata.xsd Wed Jun 19 15:28:56 2013 +0800
@@ -8,10 +8,9 @@
<xs:attributeGroup name="metadata.attlist">
<xs:attributeGroup ref="tt:Core.attrib.class"/>
</xs:attributeGroup>
- <xs:complexType name="metadata.eltype" mixed="true">
+ <xs:complexType name="metadata.eltype">
<xs:sequence>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="tt:metadata.attlist"/>
</xs:complexType>