--- a/ttml2/spec/ttml2.xml Thu Apr 24 12:56:08 2014 -0600
+++ b/ttml2/spec/ttml2.xml Wed May 21 16:42:54 2014 +0900
@@ -126,7 +126,9 @@
<langusage><language id='en-us'>English</language></langusage>
<revisiondesc><p>Last Modified: $Date$</p></revisiondesc>
</header>
+
<body>
+
<div1 id="intro">
<head>Introduction</head>
<p><emph>Unless specified otherwise, this section and its sub-sections are non-normative.</emph></p>
@@ -163,6 +165,7 @@
certain contexts, such as profile names and designators, and the short name
<code>ttaf1-dfxp</code> used in URLs to refer to this specification.</p>
</note>
+
<div2 id="model">
<head>System Model</head>
<p>Use of TTML is intended to function in a wider context of Timed Text
@@ -181,7 +184,8 @@
</tr>
</tbody>
</table>
-</div2>
+</div2> <!-- model -->
+
<div2 id="example">
<head>Document Example</head>
<p>A TTML <loc href="#terms-document-instance">document instance</loc> consists of a <el>tt</el> document element that contains
@@ -483,8 +487,9 @@
is expressed in a hierarchical fashion that embodies the organization of both spatial (flow) and
timing information. Content makes direct or indirect references to styling and layout information
and may specify inline overrides to styling.</p>
-</div2>
-</div1>
+</div2> <!-- example -->
+</div1> <!-- intro -->
+
<div1 id="definitions">
<head>Definitions</head>
<div2 id="acronyms">
@@ -521,7 +526,7 @@
</def>
</gitem>
</glist>
-</div2>
+</div2> <!-- acronyms -->
<div2 id="terms">
<head>Terminology</head>
<glist>
@@ -552,6 +557,13 @@
item as defined by <bibref ref="infoset"/>, §2.3.</p>
</def>
</gitem>
+<gitem id="terms-baseline-profile">
+<label>[baseline profile]</label>
+<def>
+<p>A <loc href="#terms-profile">profile</loc> referenced by the <att>use</att> attribute of a <el>ttp:profile</el> element,
+which serves as a baseline (initial) set of specifications with which to populate the referencing profile.</p>
+</def>
+</gitem>
<gitem id="terms-character-information-item">
<label>[character information item]</label>
<def>
@@ -586,11 +598,6 @@
<def>
<p>A collection of <loc href="#terms-feature">features</loc> and <loc href="#terms-extension">extensions</loc> that must, may, or must not be employed by
Timed Text Markup Language content.</p>
-<ednote>
-<name>Content Profile</name>
-<date>2013-08-23</date>
-<edtext>Need to update and elaborate definition of content profile based on new profiling mechanisms.</edtext>
-</ednote>
<p></p>
</def>
</gitem>
@@ -634,6 +641,32 @@
<loc href="#terms-synthetic-document-syncbase">synthetic document syncbase</loc>.</p>
</def>
</gitem>
+<gitem id="terms-effective-content-profile">
+<label>[effective content profile]</label>
+<def>
+<p>The <loc href="#terms-content-profile">content profile</loc> computed from the set of all <loc href="#terms-content-profile">content profiles</loc>
+explicitly or implicitly referenced by or assigned to a TTML <loc href="#terms-document-instance">document instance</loc> after applying any
+explicit or implicit profile and profile specification combination methods. When performing validation on a given <loc href="#terms-document-instance">document instance</loc>,
+then this validation is performed by making use of a document's <loc href="#terms-effective-content-profile">effective content profile</loc>.</p>
+</def>
+</gitem>
+<gitem id="terms-effective-processor-profile">
+<label>[effective processor profile]</label>
+<def>
+<p>The <loc href="#terms-processor-profile">processor profile</loc> computed from the set of all <loc href="#terms-processor-profile">processor profiles</loc>
+explicitly or implicitly referenced by or assigned to a TTML <loc href="#terms-document-instance">document instance</loc> after applying any
+explicit or implicit profile and profile specification combination methods. When determining if a <loc href="#terms-content-processor">content processor</loc>
+can or cannot process a given <loc href="#terms-document-instance">document instance</loc>, then this determination is performed
+by making use of a document's <loc href="#terms-effective-processor-profile">effective processor profile</loc>.</p>
+</def>
+</gitem>
+<gitem id="terms-enclosing-document-instance">
+<label>[enclosing document instance]</label>
+<def>
+<p>The <loc href="#terms-document-instance">document instance</loc> that encloses or otherwise contains
+an enclosed feature or component.</p>
+</def>
+</gitem>
<gitem id="terms-element-information-item">
<label>[element information item]</label>
<def>
@@ -655,6 +688,14 @@
specification.</p>
</def>
</gitem>
+<gitem id="terms-extension-specification">
+<label>[extension specification]</label>
+<def>
+<p>A specification of a constraint or requirement that relates to an
+<loc href="#terms-extension">extension</loc>, typically expressed by
+an <loc href="#parameter-vocabulary-extension"><el>ttp:extension</el></loc> element.</p>
+</def>
+</gitem>
<gitem id="terms-feature">
<label>[feature]</label>
<def>
@@ -663,6 +704,14 @@
future revision of this specification).</p>
</def>
</gitem>
+<gitem id="terms-feature-specification">
+<label>[feature specification]</label>
+<def>
+<p>A specification of a constraint or requirement that relates to an
+<loc href="#terms-feature">feature</loc>, typically expressed by
+an <loc href="#parameter-vocabulary-feature"><el>ttp:feature</el></loc> element.</p>
+</def>
+</gitem>
<gitem id="terms-fragment-identifier">
<label>[fragment identifier]</label>
<def>
@@ -699,6 +748,28 @@
time interval. No <att>region</att> attribute makes reference to an inline region.</p>
</def>
</gitem>
+<gitem id="terms-nested-profile">
+<label>[nested profile]</label>
+<def>
+<p>A constituent <loc href="#terms-profile">profile</loc> of a <loc href="#terms-nesting-profile">nesting profile</loc>, i.e., one of the
+descendant <el>ttp:profile</el> element(s) of a higher level (ancestor) <el>ttp:profile</el> element. A given <el>ttp:profile</el> may serve
+as both a <loc href="#terms-nested-profile">nested profile</loc> and a <loc href="#terms-nesting-profile">nesting profile</loc>.</p>
+</def>
+</gitem>
+<gitem id="terms-nesting-profile">
+<label>[nesting profile]</label>
+<def>
+<p>A <loc href="#terms-profile">profile</loc> defined my making reference to one or more child <el>ttp:profile</el> element(s), wherein a
+profile combination method determines how profile specifications from the multiple child <el>ttp:profile</el> element(s) are combined.</p>
+</def>
+</gitem>
+<gitem id="terms-non-nesting-profile">
+<label>[non-nesting profile]</label>
+<def>
+<p>A <loc href="#terms-profile">profile</loc> defined without making reference to one or more child <el>ttp:profile</el> element(s); that is,
+by including only child <el>ttp:features</el> and <el>ttp:extensions</el> element(s).</p>
+</def>
+</gitem>
<gitem id="terms-out-of-line-animation">
<label>[out-of-line animation]</label>
<def>
@@ -744,12 +815,6 @@
<def>
<p>A collection of <loc href="#terms-feature">features</loc> and <loc href="#terms-extension">extensions</loc> that must or may be implemented (supported) by
a content processor.</p>
-<ednote>
-<name>[processor profile]</name>
-<date>2013-08-23</date>
-<edtext>Need to update and elaborate definition of processor profile based on new profiling mechanisms.</edtext>
-</ednote>
-<p></p>
</def>
</gitem>
<gitem id="terms-profile">
@@ -779,6 +844,13 @@
internal refers to being internal to a <loc href="#terms-document-instance">document instance</loc>.</p>
</def>
</gitem>
+<gitem id="terms-profile-specification">
+<label>[profile specification]</label>
+<def>
+<p>A <loc href="#terms-feature-specification">feature specification</loc> or an <loc href="#terms-extension-specification">extension specification</loc>
+or the internal state representation thereof.</p>
+</def>
+</gitem>
<gitem id="terms-region">
<label>[region]</label>
<def>
@@ -816,7 +888,7 @@
<label>[root container region]</label>
<def>
<p>A logical region that establishes a coordinate system into which
-<loc href="terms-content-region">content regions</loc> are placed and optionally clipped.</p>
+<loc href="#terms-content-region">content regions</loc> are placed and optionally clipped.</p>
</def>
</gitem>
<gitem id="terms-root-temporal-extent">
@@ -873,6 +945,13 @@
Timed Text Markup Language content.</p>
</def>
</gitem>
+<gitem id="terms-top-level-profile">
+<label>[top-level profile]</label>
+<def>
+<p>A <loc href="#terms-profile">profile</loc> defined by a <el>ttp:profile</el> element that appears as a child
+of the <el>head</el> element.</p>
+</def>
+</gitem>
<gitem id="terms-transformation-processor">
<label>[transformation processor]</label>
<def>
@@ -900,7 +979,7 @@
</def>
</gitem>
</glist>
-</div2>
+</div2> <!-- terms -->
<div2 id="conventions">
<head>Documentation Conventions</head>
<p>Within normative prose in this specification, the words
@@ -955,7 +1034,7 @@
<eg xml:space="preserve">
<example
<phrase role="reqattr">count</phrase> = integer
- size = (<emph>large</emph>|<emph>medium</emph>|<emph>small</emph>) : medium>
+ size = (<emph>large</emph>|<emph>medium</emph>|<emph>small</emph>|<emph><phrase role="deprecated">tiny</phrase></emph>|<emph><phrase role="obsoleted">micro</phrase></emph>) : medium>
<emph>Content:</emph> (all | any*)
</example>
</eg>
@@ -969,9 +1048,14 @@
information item has an enumerated type definition, the values are
shown separated by vertical bars, as for <code>size</code> above; if
there is a default value, it is shown following a colon. Where an
-<loc href="terms-attribute-information-item">attribute information item</loc> has a built-in simple type definition
+<loc href="#terms-attribute-information-item">attribute information item</loc> has a built-in simple type definition
defined in <bibref ref="xsd-2"/>, a hyperlink to its definition
therein is given.</p>
+<p>An information item depicted with a <phrase role="deprecated">light yellow orange</phrase> background color is deprecated (e.g.,
+the <phrase role="deprecated">tiny</phrase> value of the <code>size</code> attribute shown above).
+An information item depicted with a <phrase role="obsoleted">light magenta red</phrase> background color is obsoleted (e.g.,
+the <phrase role="obsoleted">micro</phrase> value of the <code>size</code> attribute shown above). These designations of the item
+are also explicitly called out in specification text.</p>
<p>The allowed content of the information item is shown as a grammar
fragment, using the Kleene operators <code>?</code>, <code>*</code>
and <code>+</code>. Each element name therein is a hyperlink to its
@@ -1006,8 +1090,9 @@
</tr>
</tbody>
</table>
-</div2>
-</div1>
+</div2> <!-- conventions -->
+</div1> <!-- definitions -->
+
<div1 id="conformance">
<head>Conformance</head>
<p>This section specifies the general conformance requirements for
@@ -1050,11 +1135,25 @@
<bibref ref="wcag"/>.</p>
</item>
</olist>
-</div2>
+</div2> <!-- conformance-content -->
+
<div2 id="conformance-processor">
<head>Processor Conformance</head>
<div3 id="conformance-generic-processor">
<head>Generic Processor Conformance</head>
+
+<ednote>
+<name>Profile Processing</name>
+<date>2014-05-21</date>
+<edtext>Add requirement to invoke <phrase role="strong">abort if unsupported processor profile</phrase> procedure.</edtext>
+</ednote>
+<p></p>
+<ednote>
+<name>Validation Processing</name>
+<date>2014-05-21</date>
+<edtext>Add requirement to invoke validation processing procedure.</edtext>
+</ednote>
+
<p>A TTML <loc href="#terms-content-processor">content processor</loc> conforms to this specification if the following
generic processor criteria are
satisfied:</p>
@@ -1101,7 +1200,8 @@
</note>
</item>
</olist>
-</div3>
+</div3> <!-- conformance-generic-processor -->
+
<div3 id="conformance-transformation-processor">
<head>Transformation Processor Conformance</head>
<p>A TTML <loc href="#terms-content-processor">content processor</loc> is a conformant TTML <loc href="#terms-transformation-processor">transformation processor</loc> if
@@ -1116,7 +1216,8 @@
by <specref ref="profile-ttml2-transformation"/>.</p>
</item>
</olist>
-</div3>
+</div3> <!-- conformance-transformation-processor -->
+
<div3 id="conformance-presentation-processor">
<head>Presentation Processor Conformance</head>
<p>A TTML <loc href="#terms-content-processor">content processor</loc> is a conformant TTML <loc href="#terms-presentation-processor">presentation processor</loc> if
@@ -1131,8 +1232,10 @@
by <specref ref="profile-ttml2-presentation"/>.</p>
</item>
</olist>
-</div3>
-</div2>
+</div3> <!-- conformance-presentation-processor -->
+
+</div2> <!-- conformance-processor -->
+
<div2 id="claims">
<head>Claims</head>
<p>Any claim of compliance with respect to the conformance of a TTML <loc href="#terms-document-instance">document instance</loc> or
@@ -1158,8 +1261,9 @@
<specref ref="parameter-vocabulary-profile"/>. In addition, it must specify a
<att>ttp:version</att> attribute on its root <el>tt</el> element if it requires
support for a <loc href="#terms-feature">feature</loc> not defined by <bibref ref="ttml1"/>.</p>
-</div2>
-</div1>
+</div2> <!-- claims -->
+</div1> <!-- conformance -->
+
<div1 id="doctypes">
<head>Document Types</head>
<p>This section defines the following TTML <emph>Abstract Document Types</emph>:</p>
@@ -1242,8 +1346,9 @@
exceptional reporting of this false negative does not impact the formal assessment
of <loc href="#terms-document-instance">document instance</loc> validity.</p>
</note>
-</div2>
-</div1>
+</div2> <!-- ttml-content-doctype -->
+</div1> <!-- doctypes -->
+
<div1 id="vocabulary">
<head>Vocabulary</head>
<p>This section defines the
@@ -1267,7 +1372,7 @@
of XML Namespaces <bibref ref="xmlns10"/> may be used that is associated with the specified namespace URI.</p>
</note>
<table id="namespace-vocab-table" role="common">
-<caption>Table 1 – Namespaces</caption>
+<caption>Table 5-1 – Namespaces</caption>
<col width="30%"/>
<col/>
<col/>
@@ -1329,7 +1434,8 @@
href="http://www.w3.org/2001/tag/doc/namespaceState#namespacedef"><emph>mutable</emph></loc>
<bibref ref="nsstate"/>; all undefined names in these namespaces are reserved for future
standardization by the W3C.</p>
-</div2>
+</div2> <!-- vocabulary-namespaces -->
+
<div2 id="vocabulary-profiles">
<head>Profiles</head>
@@ -1347,18 +1453,63 @@
content is processed. The first of these functions is termed a <loc href="#terms-content-profile">content profile</loc>, while
the second is termed a <loc href="#terms-processor-profile">processor profile</loc>.</p>
-<p>A <loc href="#terms-content-profile">content profile</loc> is generally used to allow an author to declare, at authoring time,
+<p>A <loc href="#terms-content-profile">content profile</loc> is used to allow an author to declare, at authoring time,
what constraints the author intends to apply to a <loc href="#terms-document-instance">document instance</loc>. Such a
declaration permits downstream processors to perform content validation or verification, as well as to guide or limit subsequent
transformation or editing of content in order to maintain adherence to an author specified content profile. In addition, a
downstream processor may use a content profile declaration to perform an early determination of its ability to process the features
implied by the content profile.</p>
-<p>A <loc href="#terms-processor-profile">processor profile</loc> is generally used to allow an author to declare, at authoring time,
+<p>Content profiles are declared by using (1) the <loc href="#parameter-attribute-contentProfiles"><att>ttp:contentProfiles</att></loc>
+attribute on the root <el>tt</el> element, (2) one or more top-level <loc href="#parameter-vocabulary-profile"><el>ttp:profile</el></loc>
+elements of type <code>content</code>, or (3) a combination of these two mechanisms. If not declared, no content profile is implied.</p>
+
+<p>A <loc href="#terms-processor-profile">processor profile</loc> is used to allow an author to declare, at authoring time,
what processing must be supported when processing a <loc href="#terms-document-instance">document instance</loc>, such that, if a
processor is not able to perform the indicated processing, then processing should be aborted. Such a declaration permits downstream
processors to avoid processing content that cannot be processed in a manner that meets the requirements of the content author.</p>
+<p>Processor profiles are declared by using (1) the <loc href="#parameter-attribute-processorProfiles"><att>ttp:processorProfiles</att></loc>
+attribute on the root <el>tt</el> element, (2) one or more <loc href="#parameter-vocabulary-profile"><el>ttp:profile</el></loc>
+elements of type <code>processor</code>, or (3) a combination of these two mechanisms.
+If not declared, a processor profile is inferred from content profile or from a default processor profile.</p>
+
+<note role="elaboration">
+<p>It is not a requirement on a conformant <loc href="#terms-document-instance">document instance</loc> that a processor profile be internally
+declared by use of a <loc href="#parameter-vocabulary-profile"><el>ttp:profile</el></loc> element or internally referenced by a
+<loc href="#parameter-attribute-processorProfiles"><att>ttp:processorProfiles</att></loc> attribute. More specifically, it is
+permitted that the <loc href="#terms-document-interchange-context">document
+interchange context</loc> determines the applicable processor profile through private
+agreement, out-of-band protocol, or common use (between sender and receiver) of a processor profile defined
+by an external specification.</p>
+</note>
+
+<note role="elaboration">
+<p>It is intended that the <att>ttp:processorProfiles</att> attribute be used when
+the author wishes to reference one (or more) of the standard, predefined processor profiles of
+TTML Content, and does not wish to modify (by supersetting or subsetting)
+that profile. This attribute may also be used by an author to indicate the use
+of a non-standard profile, in which case the specified profile designator expresses
+a URI that denotes an externally defined <loc href="#terms-profile-definition-document">profile definition document</loc>.
+However, it is not required that a conformant TTML <loc href="#terms-content-processor">content processor</loc> be able
+to dereference such an externally specified profile definition.</p>
+<p>In contrast, it is intended that the <el>ttp:profile</el> element be
+used when the author wishes to make use of a modified predefined profile or
+wishes to include in the <loc href="#terms-document-instance">document instance</loc> a non-standard profile definition
+not based upon one of the predefined profiles.</p>
+<p>A predefined profile is supersetted by specifying some feature or extension to
+be <code>required</code> (mandatory) that was either not specified in the underlying, baseline
+profile or was specified as <code>optional</code> (voluntary) in the baseline profile.
+A predefined profile is subsetted by specifying some feature or extension to
+be <code>optional</code> (voluntary) that was specified as <code>required</code> (mandatory)
+in the underlying, baseline profile.</p>
+<p>When a baseline profile is modified by subsetting, the resulting, derived profile
+is referred to as a <emph>subtractive</emph> profile; when modified by supersetting, the result
+is referred to as an <emph>additive</emph> profile.
+It is also possible to define a derived profile that is simultaneously subtractive
+and additive.</p>
+</note>
+
<p>A content author is not limited to using a single profile, but may make reference to multiple profiles of either type, i.e.,
multiple content profiles and/or multiple processor profiles. When multiple profiles are referenced, their respective specifications
are combined to form a single effective content profile that applies to the document and a single effective processor profile
@@ -1367,6 +1518,52 @@
</div3>
+<div3 id="semantics-profile-examples">
+<head>Profile Examples</head>
+
+<p><emph>This sub-section is non-normative.</emph></p>
+
+<ednote>
+<name>More profile examples.</name>
+<date>2014-05-21</date>
+<edtext>Add more examples depicting new profiling features defined in TTML2.</edtext>
+</ednote>
+
+<p>An example of an author defined
+additive, derived profile of the TTML Presentation
+profile is shown
+below in <specref ref="ttml-example-sub-profile"/>.</p>
+<table id="ttml-example-sub-profile" role="example">
+<caption>Example Fragment – TTML Additive Profile</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head>
+ <profile use="ttml2-presentation" xmlns="http://www.w3.org/ns/ttml#parameter">
+ <features xml:base="http://www.w3.org/ns/ttml/feature/">
+ <feature value="required">#fontStyle-italic</feature>
+ </features>
+ </profile>
+ </head>
+ <body/>
+</tt>
+</eg>
+</td></tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the above example, the baseline profile is declared to be
+the TTML Presentation profile, which is then additively modified by making the
+<code>#fontStyle-italic</code> feature required (rather than
+optional as it is defined
+in <specref ref="profile-ttml2-presentation"/>). Note also the resetting of the
+default XMLNS binding on the <el>profile</el> element to the TT Parameter Namespace.</p>
+</note>
+
+</div3>
+
<div3 id="vocabulary-profile-designators">
<head>Profile Designators</head>
@@ -1408,7 +1605,7 @@
<specref ref="profiles"/>, in <bibref ref="ttml1"/>,
or in another TTWG specification.</p>
<table id="profile-vocab-table" role="common">
-<caption>Table 2 – Profiles</caption>
+<caption>Table 5-2 – Profiles</caption>
<col width="25%"/>
<col/>
<tbody>
@@ -1453,168 +1650,409 @@
</div3>
-<div3 id="vocabulary-profile-semantics">
+<div3 id="semantics-profile-semantics">
<head>Profile Semantics</head>
-<div4 id="vocabulary-profile-combination">
-<head>Profile Combination</head>
-
-</div4>
-
-<div4 id="vocabulary-content-profile-processing">
-<head>Content Profile Semantics</head>
+<div4 id="semantics-profile-state">
+<head>Profile State Object Concepts</head>
+<p>This section defines a number of conceptual state objects used by subsequently defined algorithms (procedures and functions). It is not required that an
+implementation create such objects in the form specified here, but may use any convenient, internal representation that represents equivalent information.</p>
+
+<glist>
+
+<gitem id="semantics-profile-state-profile-specification">
+<label>[profile specification]</label>
+<def>
+<p>a <loc href="#semantics-profile-state-profile-specification"><phrase role="strong">profile specification</phrase></loc>
+represents the following internal state information that corresponds with
+a <loc href="#parameter-vocabulary-feature"><el>ttp:feature</el></loc> or <loc href="#parameter-vocabulary-extension"><el>ttp:extension</el></loc>
+element</p>
+<glist>
+<gitem id="semantics-profile-state-profile-specification-designator">
+<label>designator</label>
+<def>
+<p>an absolute xsd:anyURI denoting a feature or extension designator depending upon the <emph><code>type</code></emph></p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-specification-type">
+<label>type</label>
+<def>
+<p><code>feature|extension</code></p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-specification-value">
+<label>value</label>
+<def>
+<p><code>optional|required|prohibited</code></p>
+</def>
+</gitem>
+</glist>
+</def>
+</gitem>
+
+<gitem id="semantics-profile-state-combined-profile-specification-set">
+<label>[combined profile specification set]</label>
+<def>
+<p>a <loc href="#semantics-profile-state-combined-profile-specification-set"><phrase role="strong">combined profile specification set</phrase></loc>
+represents the following internal state information
+that corresponds with a set of <loc href="#semantics-profile-state-profile-specification"><phrase role="strong">profile specifications</phrase></loc>,
+additionally recording the constituent
+profiles from which these specifications were obtained (or derived)</p>
+<glist>
+<gitem id="semantics-profile-state-combined-profile-specification-set-constituents">
+<label>constituents</label>
+<def>
+<p>ordered list of absolute profile designators, where each designator denotes a constituent profile, i.e.,
+a profile from which this combined profile specification set is composed</p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-combined-profile-specification-set-specifications">
+<label>specifications</label>
+<def>
+<p>ordered list of <loc href="#semantics-profile-state-profile-specification"><phrase role="strong">profile specifications</phrase></loc></p>
+</def>
+</gitem>
+</glist>
+</def>
+</gitem>
+
+<gitem id="semantics-profile-state-empty-profile-specification-set">
+<label>[empty profile specification set]</label>
+<def>
+<p>a <loc href="#semantics-profile-state-combined-profile-specification-set"><phrase role="strong">combined profile specification set</phrase></loc> which
+<loc href="#semantics-profile-state-combined-profile-specification-set-constituents"><phrase role="strong">constituents</phrase></loc> and
+<loc href="#semantics-profile-state-combined-profile-specification-set-specifications"><phrase role="strong">specifications</phrase></loc> fields are empty sets</p>
+</def>
+</gitem>
+
+<gitem id="semantics-profile-state-profile">
+<label>[profile]</label>
+<def>
+<p>a <loc href="#semantics-profile-state-profile"><phrase role="strong">profile</phrase></loc> represents the following internal state information
+that corresponds with a <loc href="#parameter-vocabulary-profile"><el>ttp:profile</el></loc> element, whether specified explicitly or implied</p>
+<glist>
+<gitem id="semantics-profile-state-profile-designator">
+<label>designator</label>
+<def>
+<p>an absolute profile designator that is associated with (and uniquely labels) this profile</p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-type">
+<label>type</label>
+<def>
+<p><code>content|processor</code></p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-combine">
+<label>combine</label>
+<def>
+<p><code>leastRestrictive|mostRestrictive|replace</code></p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-use">
+<label>use</label>
+<def>
+<p>either <code>null</code> or an absolute profile designator denoting a profile that serves as the baseline profile for this profile</p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-constituents">
+<label>constituents</label>
+<def>
+<p>if profile is a <loc href="#terms-nesting-profile">nesting profile</loc>, then an ordered list of absolute profile designators, where each designator denotes a
+constituent <loc href="#terms-nested-profile">nested profile</loc>; otherwise, <code>null</code></p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-specifications">
+<label>specifications</label>
+<def>
+<p>if profile is a <loc href="#terms-non-nesting-profile">non-nesting profile</loc>, then an ordered list of
+<loc href="#semantics-profile-state-profile-specification"><phrase role="strong">profile specifications</phrase></loc>; otherwise, <code>null</code></p>
+</def>
+</gitem>
+<gitem id="semantics-profile-state-profile-combined-specification-set">
+<label>combined specification set</label>
+<def>
+<p>a <loc href="#semantics-profile-state-combined-profile-specification-set"><phrase role="strong">combined profile specification set</phrase></loc> that
+represents the results of combining the specifications specified or referenced by this profile</p>
+</def>
+</gitem>
+</glist>
+</def>
+</gitem>
+
+</glist>
</div4>
-<div4 id="vocabulary-processor-profile-processing">
-<head>Processor Profile Semantics</head>
-
-<p>The profile of TTML that must be supported by a
-TTML <loc href="#terms-content-processor">content processor</loc> in order to process a <loc href="#terms-document-instance">document instance</loc> is determined either (1) by specifying a
-<att>ttp:profile</att> attribute on the root <el>tt</el> element, as
-defined by <specref ref="parameter-attribute-profile"/>, or (2) by
-including one or more <el>ttp:profile</el>
-elements in the <el>head</el> element, in
-accordance with <specref ref="parameter-vocabulary-profile"/>.</p>
-<p>If a <el>ttp:profile</el> element appears as a
-descendant of the <el>tt</el> element, then the <loc
-href="#parameter-attribute-profile"><att>ttp:profile</att></loc>
-attribute should not be specified on the <el>tt</el> element. If both
-a <el>ttp:profile</el> element and a <att>ttp:profile</att>
-attribute are present (in a given <loc href="#terms-document-instance">document instance</loc>), then the
-<att>ttp:profile</att> attribute must be ignored for the purpose of
-determining the declared profile requirements.</p>
+<div4 id="semantics-content-profile-processing">
+<head>Content Profile Semantics</head>
+
<ednote>
-<name>Profile Combination Semantics</name>
-<date>2013-09-05</date>
-<edtext>Need to incorporate affects of <att>ttp:profileCombination</att> parameter into the following paragraph.</edtext>
+<name>Validation Processing</name>
+<date>2014-05-21</date>
+<edtext>Add validation processing procedures.</edtext>
</ednote>
-<p>If more than one <el>ttp:profile</el> element appears in
-a <loc href="#terms-document-instance">document instance</loc>, then all specified profiles apply
-simultaneously. In such a case, if some feature or some extension is
-specified by one profile to be <code>used</code> (mandatory and enabled) and by
-another profile to be <code>required</code> (mandatory) or <code>optional</code> (voluntary),
-then that feature or extension must be considered to be <code>used</code>
-(mandatory and enabled); if some feature or some extension is
-specified by one profile to be merely <code>required</code> (mandatory) and by
-another profile to be <code>optional</code> (voluntary), then that feature or
-extension must be considered to be <code>required</code> (mandatory).</p>
-<p>If neither
-<loc href="#parameter-attribute-profile"><att>ttp:profile</att></loc>
-attribute nor
-<loc href="#parameter-vocabulary-profile"><el>ttp:profile</el></loc>
-element is present in a <loc href="#terms-document-instance">document instance</loc>, and if the <loc href="#terms-document-interchange-context">document
-interchange context</loc>
-does not make an implicit or explicit
-reference to a pre-defined profile or does not specify a <emph>Profile Definition
-Document</emph> or another equivalent set of feature designations,
-then the TTML Transformation profile applies.</p>
-<note role="elaboration">
-<p>It is not a requirement on a conformant <loc href="#terms-document-instance">document instance</loc> that a profile be internally
-defined by use of a <el>ttp:profile</el> element or internally referenced by a
-<att>ttp:profile</att> attribute. More specifically, it is permitted that the <loc href="#terms-document-interchange-context">document
-interchange context</loc> determines the applicable profile through private
-agreement, out-of-band protocol, or common use (between sender and receiver) of a profile defined
-by an external specification.</p>
-</note>
-<note role="elaboration">
-<p>It is intended that the <att>ttp:profile</att> attribute be used when
-the author wishes to reference one of the standard, predefined profiles of
-TTML Content, and does not wish to modify (by supersetting or subsetting)
-that profile. This attribute may also be used by an author to indicate the use
-of a non-standard profile, in which case the specified profile designator expresses
-a URI that denotes an externally defined <loc href="#terms-profile-definition-document">profile definition document</loc>.
-However, it is not required that a conformant TTML <loc href="#terms-content-processor">content processor</loc> be able
-to dereference such an externally specified profile definition.</p>
-<p>In contrast, it is intended that the <el>ttp:profile</el> element be
-used when the author wishes to make use of a modified predefined profile or
-wishes to include in the <loc href="#terms-document-instance">document instance</loc> a non-standard profile definition
-not based upon one of the predefined profiles.</p>
-<p>A predefined profile is supersetted by specifying some feature or extension to
-be <code>required</code> (mandatory) that was either not specified in the underlying, baseline
-profile or was specified as <code>optional</code> (voluntary) in the baseline profile.
-A predefined profile is subsetted by specifying some feature or extension to
-be <code>optional</code> (voluntary) that was specified as <code>required</code> (mandatory)
-in the underlying, baseline profile.</p>
-<p>When a baseline profile is modified by subsetting, the resulting, derived profile
-is referred to as a <emph>subtractive</emph> profile; when modified by supersetting, the result
-is referred to as an <emph>additive</emph> profile.
-It is also possible to define a derived profile that is simultaneously subtractive
-and additive.</p>
-</note>
-<p>If a <loc href="#terms-document-instance">document instance</loc> makes use of a feature defined by
-<specref ref="feature-designations"/> and if the intended use of the
-document requires the recognition and processing of that feature, then
-the document must include a <emph>required feature</emph> or
-a <emph>used feature</emph>
-specification in one of its declared or
-referenced profiles. If a <loc href="#terms-document-instance">document instance</loc> makes use
-of an extension designatable by <specref
-ref="extension-designations"/> and if the intended use of the document
-requires the recognition and processing of that extension, then the
-document must include a <emph>required extension</emph> or
-a <emph>used extension</emph> specification
-in one of its declared or referenced
-profiles.</p>
-<note role="elaboration">
-<p>A <emph>required feature</emph> or <emph>used feature</emph>
-specification is expressed directly (or indirectly by referring to a
-profile) by means of a <loc
-href="#parameter-vocabulary-feature"><el>ttp:feature</el></loc>
-element where the value of its <att>value</att> attribute is
-<code>required</code> or <code>use</code>,
-respectively. A <emph>required extension</emph> or <emph>used
-extension</emph> specification is expressed directly (or indirectly by
-referring to a profile) by means of a <loc
-href="#parameter-vocabulary-extension"><el>ttp:extension</el></loc>
-element where the value of its <att>value</att> attribute is
-<code>required</code> or <code>use</code>,
-respectively.</p>
-</note>
+
+<glist>
+<gitem id="semantics-procedure-construct-effective-content-profile">
+<label>[construct effective content profile]</label>
+<def>
+<p>Every TTML <loc href="#terms-document-instance">document instance</loc> is associated with an
+<loc href="#terms-effective-content-profile">effective content profile</loc> which may be used by
+a <loc href="#terms-content-processor">content processor</loc> to perform any (or all) of the following:</p>
+<olist>
+<item>
+<p>infer an effective processor profile;</p>
+</item>
+<item>
+<p>perform validation processing on the <loc href="#terms-document-instance">document instance</loc>;</p>
+</item>
+<item>
+<p>constrain transformation processing on the <loc href="#terms-document-instance">document instance</loc>
+in order to maintain content profile invariants.</p>
+</item>
+</olist>
+<p>The <loc href="#terms-effective-content-profile">effective content profile</loc> is determined according to the
+<loc href="#semantics-procedure-construct-effective-content-profile"><phrase role="strong">construct effective content profile</phrase></loc> procedure
+defined as follows:</p>
+<olist>
+<item>
+<p>if a <att>ttp:contentProfiles</att> attribute is specified on the root <el>tt</el> element, then</p>
+<olist>
+<item>
+<p>if the <att>ttp:contentProfiles</att> attribute is specified using the <code>all(...)</code> function syntax or
+using no function syntax, i.e., as only a list of designators, then the
+<loc href="#terms-effective-content-profile">effective content profile</loc> is the combined profile specification set
+produced by combining the combined profile specification sets of the designated profiles, where the <code>mostRestrictive</code>
+content profile combination method applies;</p>
+</item>
+<item>
+<p>otherwise, if the <att>ttp:contentProfiles</att> attribute is specified using the <code>any(...)</code> function syntax, then the
+<loc href="#terms-effective-content-profile">effective content profile</loc> is the combined profile specification set
+produced by combining the combined profile specification sets of the designated profiles, where the <code>leastRestrictive</code>
+content profile combination method applies;</p>
+</item>
+</olist>
+</item>
+<item>
+<p>otherwise, if one or more <loc href="#terms-top-level-profile">top-level</loc> <loc href="#terms-content-profile">content profiles</loc>
+are defined, then the
+<loc href="#terms-effective-content-profile">effective content profile</loc> is the combined profile specification set
+produced by combining the combined profile specification sets of all such
+<loc href="#terms-top-level-profile">top-level</loc> <loc href="#terms-content-profile">content profiles</loc>, where the
+content profile combination method specified by (or the default value of) the <att>ttp:contentProfileCombination</att>
+attribute on the root <el>tt</el> element applies;
+</p>
+</item>
+<item>
+<p>otherwise, the <loc href="#terms-effective-content-profile">effective content profile</loc> is <code>null</code>;</p>
+</item>
+</olist>
+</def>
+</gitem>
+</glist>
</div4>
-</div3>
-
-<div3 id="vocabulary-profile-examples">
-<head>Profile Examples</head>
-
-<p>An example of an author defined
-additive, derived profile of the TTML Presentation
-profile is shown
-below in <specref ref="ttml-example-sub-profile"/>.</p>
-<table id="ttml-example-sub-profile" role="example">
-<caption>Example Fragment – TTML Additive Profile</caption>
-<tbody>
-<tr>
-<td>
-<eg xml:space="preserve">
-<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
- <head>
- <profile use="ttml2-presentation" xmlns="http://www.w3.org/ns/ttml#parameter">
- <features xml:base="http://www.w3.org/ns/ttml/feature/">
- <feature value="required">#fontStyle-italic</feature>
- </features>
- </profile>
- </head>
- <body/>
-</tt>
-</eg>
-</td></tr>
-</tbody>
-</table>
-<note role="explanation">
-<p>In the above example, the baseline profile is declared to be
-the TTML Presentation profile, which is then additively modified by making the
-<code>#fontStyle-italic</code> feature required (rather than
-optional as it is defined
-in <specref ref="profile-ttml2-presentation"/>). Note also the resetting of the
-default XMLNS binding on the <el>profile</el> element to the TT Parameter Namespace.</p>
-</note>
-
-</div3>
-
-</div2>
+<div4 id="semantics-processor-profile-processing">
+<head>Processor Profile Semantics</head>
+
+<glist>
+<gitem id="semantics-procedure-abort-if-unsupported-processor-profile">
+<label>[abort if unsupported processor profile]</label>
+<def>
+<olist>
+<item>
+<p>set <emph>EPP</emph> to the <loc href="#terms-effective-processor-profile">effective processor profile</loc> obtained by performing the
+<loc href="#semantics-procedure-construct-effective-processor-profile"><phrase role="strong">construct effective processor profile</phrase></loc> procedure;</p>
+</item>
+<item>
+<p>for each profile specification <emph>S</emph> in the combined profile specification set of <emph>EPP</emph>, perform the following steps:</p>
+<olist>
+<item>
+<p>if the <phrase role="strong">value</phrase> field of <emph>S</emph> is <code>required</code>, and the <loc href="#terms-content-processor">content processor</loc>
+does not support <emph>S</emph>, then abort processing of the <loc href="#terms-document-instance">document instance</loc> unless overridden
+by the end-user or someimplementation specific parameter traceable to an end-user or to a user or system configuration setting;</p>
+</item>
+</olist>
+</item>
+</olist>
+</def>
+</gitem>
+<gitem id="semantics-procedure-construct-effective-processor-profile">
+<label>[construct effective processor profile]</label>
+<def>
+<p>Every TTML <loc href="#terms-document-instance">document instance</loc> is associated with an
+<loc href="#terms-effective-processor-profile">effective processor profile</loc> which is used by
+a <loc href="#terms-content-processor">content processor</loc> to determine whether it meets the
+minimum processing requirements signaled by the content author, and if not, then must abort further
+processing unless overridden by the end-user or an implementation specific parameter traceable to
+an end-user or to a user or system configuration setting.
+The <loc href="#terms-effective-processor-profile">effective processor profile</loc> is determined according to the
+<loc href="#semantics-procedure-construct-effective-processor-profile"><phrase role="strong">construct effective processor profile</phrase></loc> procedure
+defined as follows:</p>
+<olist>
+<item>
+<p>if a <att>ttp:processorProfiles</att> attribute is specified on the root <el>tt</el> element, then</p>
+<olist>
+<item>
+<p>if the <att>ttp:processorProfiles</att> attribute is specified using the <code>all(...)</code> function syntax or
+using no function syntax, i.e., as only a list of designators, then the
+<loc href="#terms-effective-processor-profile">effective processor profile</loc> is the combined profile specification set
+produced by combining the combined profile specification sets of the designated profiles, where the <code>mostRestrictive</code>
+processor profile combination method applies;</p>
+</item>
+<item>
+<p>otherwise, if the <att>ttp:processorProfiles</att> attribute is specified using the <code>any(...)</code> function syntax,
+then, for each designated profile, the
+<loc href="#terms-effective-processor-profile">effective processor profile</loc> is the combined profile specification set
+of the first profile in the list of designated profiles that is supported by the
+<loc href="#terms-content-processor">content processor</loc>;</p>
+</item>
+</olist>
+</item>
+<item>
+<p>otherwise, if one or more <loc href="#terms-top-level-profile">top-level</loc> <loc href="#terms-processor-profile">processor profiles</loc>
+are defined, then the
+<loc href="#terms-effective-processor-profile">effective processor profile</loc> is the combined profile specification set
+produced by combining the combined profile specification sets of all such
+<loc href="#terms-top-level-profile">top-level</loc> <loc href="#terms-processor-profile">processor profiles</loc>, where the
+processor profile combination method specified by (or the default value of) the <att>ttp:processorProfileCombination</att>
+attribute on the root <el>tt</el> element applies;
+</p>
+</item>
+<item>
+<p>otherwise, if a <att>ttp:profile</att> attribute is specified on the root <el>tt</el> element, then the
+<loc href="#terms-effective-processor-profile">effective processor profile</loc> is the combined profile specification set
+of the profile designated by this attribute;
+</p>
+</item>
+<item>
+<p>otherwise, the <loc href="#terms-effective-processor-profile">effective processor profile</loc> is the
+result of performing the <loc href="#semantics-procedure-construct-inferred-processor-profile"><phrase role="strong">construct inferred processor profile</phrase></loc>
+procedure;</p>
+</item>
+</olist>
+</def>
+</gitem>
+
+<gitem id="semantics-procedure-construct-inferred-processor-profile">
+<label>[construct inferred processor profile]</label>
+<def>
+<olist>
+<item>
+<p>set <emph>ECP</emph> to the <loc href="#terms-effective-content-profile">effective content profile</loc>;</p>
+</item>
+<item>
+<p>if <emph>ECP</emph> is not <code>null</code>, then perform the following steps:</p>
+<olist>
+<item>
+<p>if the computed value of the <att>ttp:inferProcessorProfileSource</att> attribute is <code>combine</code>, then
+the <loc href="#terms-inferred-processor-profile">inferred processor profile</loc> is the result of applying the
+<loc href="#semantics-procedure-infer-processor-profile"><phrase role="strong">infer processor profile</phrase></loc> function
+to the combined profile specification set of <emph>ECP</emph>;</p>
+</item>
+<item>
+<p>otherwise, if the computed value of the <att>ttp:inferProcessorProfileSource</att> attribute is <code>first</code>, then
+the <loc href="#terms-inferred-processor-profile">inferred processor profile</loc> is the first inferred processor profile, <emph>IPP</emph>, produced by applying the
+<loc href="#semantics-procedure-infer-processor-profile"><phrase role="strong">infer processor profile</phrase></loc> function
+to the combined profile specification set of each constituent of <emph>ECP</emph> such that
+<emph>IPP</emph> is supported by the <loc href="#terms-content-processor">content processor</loc>;</p>
+</item>
+</olist>
+</item>
+<item>
+<p>otherwise, the <loc href="#terms-inferred-processor-profile">inferred processor profile</loc> is the
+result of performing the <loc href="#semantics-procedure-construct-default-processor-profile"><phrase role="strong">construct default processor profile</phrase></loc>
+procedure;</p>
+</item>
+</olist>
+</def>
+</gitem>
+<gitem id="semantics-procedure-infer-processor-profile">
+<label>[infer processor profile](content profile <emph>CP</emph>)</label>
+<def>
+<olist>
+<item>
+<p>initialize inferred processor profile <emph>IPP</emph> to the empty combined profile specification set;</p>
+</item>
+<item>
+<p>for each profile specification, <emph>S</emph>, in the combined profile specification set of content profile <emph>CP</emph>:</p>
+<olist>
+<item>
+<p>map content profile specification <emph>S</emph> to processor profile specification <emph>S' </emph> according to the computed
+value of the <att>ttp:inferPresentationProfileMethod</att> attribute and <specref ref="infer-processor-profile-method-table"/>;</p>
+</item>
+<item>
+<p>add <emph>S' </emph> to the combined profile specification set of <emph>IPP</emph>;</p>
+</item>
+</olist>
+</item>
+<item>
+<p>return <emph>IPP</emph> as the inferred processor profile;</p>
+</item>
+</olist>
+</def>
+</gitem>
+
+<gitem id="semantics-procedure-construct-default-processor-profile">
+<label>[construct default processor profile]</label>
+<def>
+<olist>
+<item>
+<p>if the <loc href="#terms-document-interchange-context">document interchange context</loc> is associated with a
+<loc href="#terms-processor-profile">processor profile</loc> or with a <loc href="#terms-content-profile">content profile</loc>
+from which a <loc href="#terms-processor-profile">processor profile</loc> can be inferred, then the
+<loc href="#terms-default-processor-profile">default processor profile</loc> is that <loc href="#terms-processor-profile">processor profile</loc>;</p>
+</item>
+
+<item>
+<p>otherwise, if the <loc href="#terms-content-processor">content processor</loc> is primarily characterized as a
+<loc href="#terms-presentation-processor">presentation processor</loc>, then:</p>
+<olist>
+<item>
+<p>if the <loc href="#parameter-attribute-version"><att>ttp:version</att></loc> is not specified on the root <el>tt</el> element or
+if its computed value is <code>1</code> (one), then the <loc href="#terms-default-processor-profile">default processor profile</loc> is
+the <loc href="#semantics-profile-state-profile">profile</loc> constructed by interning the DFXP Presentation profile
+(<code>http://www.w3.org/ns/ttml/profile/dfxp-presentation</code>);</p>
+</item>
+<item>
+<p>otherwise, the <loc href="#terms-default-processor-profile">default processor profile</loc> is
+the <loc href="#semantics-profile-state-profile">profile</loc> constructed by interning the TTML2 Presentation profile
+(<code>http://www.w3.org/ns/ttml/profile/ttml2-presentation</code>);</p>
+</item>
+</olist>
+</item>
+
+<item>
+<p>otherwise, if the <loc href="#terms-content-processor">content processor</loc> is primarily characterized as a
+<loc href="#terms-transformation-processor">transformation processor</loc>, then:</p>
+<olist>
+<item>
+<p>if the <loc href="#parameter-attribute-version"><att>ttp:version</att></loc> is not specified on the root <el>tt</el> element or
+if its computed value is <code>1</code> (one), then the <loc href="#terms-default-processor-profile">default processor profile</loc> is
+the <loc href="#semantics-profile-state-profile">profile</loc> constructed by interning the DFXP Transformation profile
+(<code>http://www.w3.org/ns/ttml/profile/dfxp-transformation</code>);</p>
+</item>
+<item>
+<p>otherwise, the <loc href="#terms-default-processor-profile">default processor profile</loc> is
+the <loc href="#semantics-profile-state-profile">profile</loc> constructed by interning the TTML2 Transformation profile
+(<code>http://www.w3.org/ns/ttml/profile/ttml2-transformation</code>);</p>
+</item>
+</olist>
+</item>
+</olist>
+</def>
+</gitem>
+</glist>
+
+
+</div4>
+
+</div3>
+
+</div2> <!-- vocabulary-profiles -->
+
<div2 id="vocabulary-overview">
<head>Catalog</head>
<p>The vocabulary of the Timed Text Markup Language (TTML) is
@@ -1645,7 +2083,7 @@
<p>The core element vocabulary specified for use with a <loc href="#terms-document-instance">document instance</loc> is enumerated in
<specref ref="element-vocab-table"/>.</p>
<table id="element-vocab-table" role="common">
-<caption>Table 3 – Element Vocabulary</caption>
+<caption>Table 5-3 – Element Vocabulary</caption>
<col width="25%"/>
<col/>
<tbody>
@@ -1745,7 +2183,7 @@
<p>Element vocabulary groups that are used in defining content models
for TTML element types are enumerated in <specref ref="element-vocab-group-table"/>.</p>
<table id="element-vocab-group-table" role="common">
-<caption>Table 4 – Element Vocabulary Groups</caption>
+<caption>Table 5-4 – Element Vocabulary Groups</caption>
<col width="25%"/>
<col/>
<tbody>
@@ -1813,7 +2251,7 @@
catalog is enumerated in
<specref ref="attribute-vocab-table"/>.</p>
<table id="attribute-vocab-table" role="common">
-<caption>Table 5 – Attribute Vocabulary</caption>
+<caption>Table 5-5 – Attribute Vocabulary</caption>
<col width="25%"/>
<col/>
<tbody>
@@ -1855,17 +2293,23 @@
<td>
<loc href="#parameter-attribute-cellResolution">ttp:cellResolution</loc>,
<loc href="#parameter-attribute-clockMode">ttp:clockMode</loc>,
-<loc href="#parameter-attribute-clockMode">ttp:contentProfile</loc>,
+<loc href="#parameter-attribute-contentProfiles">ttp:contentProfiles</loc>,
+<loc href="#parameter-attribute-contentProfileCombination">ttp:contentProfileCombination</loc>,
<loc href="#parameter-attribute-dropMode">ttp:dropMode</loc>,
<loc href="#parameter-attribute-frameRate">ttp:frameRate</loc>,
<loc href="#parameter-attribute-frameRateMultiplier">ttp:frameRateMultipler</loc>,
+<loc href="#parameter-attribute-inferProcessorProfileMethod">ttp:inferProcessorProfileMethod</loc>,
+<loc href="#parameter-attribute-inferProcessorProfileSource">ttp:inferProcessorProfileSource</loc>,
<loc href="#parameter-attribute-markerMode">ttp:markerMode</loc>,
<loc href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</loc>,
<loc href="#parameter-attribute-profile">ttp:profile</loc>,
-<loc href="#parameter-attribute-cellResolution">ttp:profileCombination</loc>,
+<loc href="#parameter-attribute-processorProfiles">ttp:processorProfiles</loc>,
+<loc href="#parameter-attribute-processorProfileCombination">ttp:processorProfileCombination</loc>,
<loc href="#parameter-attribute-subFrameRate">ttp:subFrameRate</loc>,
<loc href="#parameter-attribute-tickRate">ttp:tickRate</loc>,
<loc href="#parameter-attribute-timeBase">ttp:timeBase</loc>,
+<loc href="#parameter-attribute-validation">ttp:validation</loc>,
+<loc href="#parameter-attribute-validationAction">ttp:validationAction</loc>,
<loc href="#parameter-attribute-version">ttp:version</loc>
</td>
</tr>
@@ -1950,8 +2394,9 @@
any namespace other than those defined for use with this
specification.</p>
</div3>
-</div2>
-</div1>
+</div2> <!-- vocabulary-overview -->
+</div1> <!-- vocabulary -->
+
<div1 id="parameters">
<head>Parameters</head>
<p>This section specifies the <emph>parameters</emph> matter of the
@@ -1984,8 +2429,8 @@
<loc href="#terms-document-instance">document instance</loc> that makes (or may make) use of such features and
extensions.
A <loc href="#terms-content-profile">content profile</loc> specifies a
-collection of required, optional, and prohibited features and extensions that, respectively,
-must, may, and must not be present in a <loc href="#terms-document-instance">document instance</loc> that declares its
+collection of prohibited, required, and optional features and extensions that, respectively,
+must not, must, and may be present in a <loc href="#terms-document-instance">document instance</loc> that declares its
adherence to the profile.</p>
<note role="clarification">
<p>The difference between a <emph>feature</emph> and an
@@ -1998,10 +2443,10 @@
the W3C standards process, while extensions are expected to be defined by
third parties.</p>
</note>
-<p>This specification defines two distinct contexts of use of the <el>ttp:profile</el> element:</p>
-<ulist>
-<item>
-<p>as a child of the <el>head</el> element within a TTML <loc href="#terms-document-instance">document instance</loc>;</p>
+<p>This specification defines two distinct contexts of use for the <el>ttp:profile</el> element:</p>
+<ulist>
+<item>
+<p>as a child of the <el>head</el> element or a <el>ttp:profile</el> element within a TTML <loc href="#terms-document-instance">document instance</loc>;</p>
</item>
<item>
<p>as the root element of a TTML <loc href="#terms-profile-definition-document">profile definition document</loc>
@@ -2009,22 +2454,23 @@
</item>
</ulist>
<p>When a <el>ttp:profile</el> element appears within a TTML <loc href="#terms-document-instance">document instance</loc>,
-its purpose is to express authorial intentions about which
+its purpose is to express authorial intentions about (1) which
features and extensions must or may be supported by a recipient
-content processor, as well as which features and extensions must
-not be included or otherwise used in a <loc href="#terms-document-instance">document instance</loc>.
-In addition, the element indirectly expresses
-information about the set of features or extensions that are (or may
-expected to be) used by the <loc href="#terms-document-instance">document instance</loc>.</p>
+content processor in order to process that document or (2) which features and extensions must not, must, or may be
+included or otherwise used in that <loc href="#terms-document-instance">document instance</loc>.</p>
<p>When a <el>ttp:profile</el> element is used by a TTML <loc href="#terms-profile-definition-document">profile definition document</loc> instance,
it serves to publish a machine
-readable specification of a specific TTML profile, of which
-this specification defines three such <emph>Profile Definition Documents</emph> in
+readable specification of a specific TTML profile that may be referenced by TTML <loc href="#terms-document-instance">document instances</loc>.
+This specification defines a number of standard <emph>Profile Definition Documents</emph> in
<specref ref="profiles"/>.</p>
<p>The <el>ttp:profile</el> element accepts as its children zero or more
-elements in the <code>Metadata.class</code> element group, followed by
-zero or more <el>ttp:features</el> elements, followed by
-zero or more <el>ttp:extensions</el> elements.</p>
+elements in the <code>Metadata.class</code> element group, followed by either (1)
+zero or more <el>ttp:features</el> elements followed by
+zero or more <el>ttp:extensions</el> elements or (2)
+zero or more <el>ttp:profile</el> elements.
+When a <el>ttp:profile</el> element contains a child <el>ttp:profile</el> element, then the child is referred to as
+a <loc href="#terms-nested-profile">nested profile</loc> and the parent is referred to as a <loc href="#terms-nesting-profile">nesting profile</loc>;
+otherwise it is referred to as a <loc href="#terms-non-nesting-profile">non-nesting profile</loc>.</p>
<table id="elt-syntax-parameter-profile" role="syntax">
<caption>XML Representation – Element Information Item: ttp:profile</caption>
<tbody>
@@ -2032,13 +2478,13 @@
<td>
<eg xml:space="preserve">
<ttp:profile
- combine = (replace|union|intersection) : replace
+ combine = (leastRestrictive|mostRestrictive|replace) : replace
designator = string
type = (processor|content) : processor
use = string
<loc href="#content-attribute-id">xml:id</loc> = ID
{<emph>any attribute not in default or any TT namespace</emph>}>
- <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#parameter-vocabulary-features">ttp:features</loc>*, <loc href="#parameter-vocabulary-extensions">ttp:extensions</loc>*
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, ((<loc href="#parameter-vocabulary-features">ttp:features</loc>*, <loc href="#parameter-vocabulary-extensions">ttp:extensions</loc>*)|<loc href="#parameter-vocabulary-profile">ttp:profile</loc>*)
</ttp:profile>
</eg>
</td>
@@ -2049,28 +2495,33 @@
<loc href="#terms-processor-profile">processor profile</loc> or a
<loc href="#terms-content-profile">content profile</loc>. If not specified,
the profile is considered to be a <loc href="#terms-processor-profile">processor profile</loc>.
-</p>
-<p>The <att>combine</att> attribute may be used to specify how
+If a <el>ttp:profile</el> element references a <loc href="#terms-baseline-profile">baseline profile</loc> or a
+<loc href="#terms-nested-profile">nested profile</loc>, then the type of the referenced profile must be the same as the type of the referencing profile. For
+example, a <el>ttp:profile</el> element that defines a <loc href="#terms-processor-profile">processor profile</loc> may only make reference to other
+<loc href="#terms-processor-profile">processor profiles</loc>, and may not reference a <loc href="#terms-content-profile">content profile</loc>.</p>
+<p>The <att>combine</att> attribute is used to specify how
feature or extension specifications are combined in the case that
-multiple specifications apply to the same feature or extension, respectively.
-If the value of the <att>combine</att> attribute is <code>replace</code>, then a
-feature or extension specification contained in the <el>ttp:profile</el> element
-replaces the specification defined by the baseline profile or a lexically subsequent
-specification replaces a lexically prior specification in the case that both
-specifications appear in the same <el>ttp:profile</el> element; if the value is
-<code>union</code>, then the semantic union applies; if the value is <code>intersection</code>,
-then the semantic intersection applies. If the <att>combine</att> attribute is not
-specified, then replacement semantics apply.</p>
-<ednote>
-<name>Combine Semantics</name>
-<date>2013-07-10</date>
-<edtext>Need to elaborate semantics of union and intersection combination methods.</edtext>
-</ednote>
+multiple specifications apply to the same feature or extension, respectively.</p>
+<p>If the value of the <att>combine</att> attribute is <code>replace</code>, then a
+lexically subsequent feature or extension specification replaces a lexically prior
+specification, where specification elements are ordered as follows:</p>
+<olist>
+<item><p>specifications defined by a <loc href="#terms-baseline-profile">baseline profile</loc> referenced by a <att>use</att>
+attribute;</p></item>
+<item><p>specifications defined by descendant <el>ttp:profile</el> elements in post-order
+traversal order;</p></item>
+<item><p>specifications defined as descendant <el>ttp:feature</el> or <el>ttp:extension</el>
+elements in post-order traversal order.</p></item>
+</olist>
+<p>If the value is <code>leastRestrictive</code>, then the least restrictive specification value applies;
+if the value is <code>mostRestrictive</code>, then the most restrictive specification value
+applies. The order of restrictiveness is as follows (from least to most):
+<emph>optional</emph>, <emph>required</emph>, <emph>prohibited</emph>.</p>
+<p>If the <att>combine</att> attribute is not specified, then replacement semantics apply.</p>
<p>If specified, the <att>designator</att> attribute must (1) adhere to the
<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
§3.2.17 and (2) express an absolute URI that denotes a profile designator in
-accordance with <specref ref="vocabulary-profiles"/>.</p>
-<p>A <att>designator</att> attribute may
+accordance with <specref ref="vocabulary-profiles"/>. A <att>designator</att> attribute may
be specified on a <el>ttp:profile</el> element that appears in a TTML
<loc href="#terms-document-instance">document instance</loc>, and, if not specified,
the defined profile is considered to be an undesignated profile.
@@ -2087,36 +2538,26 @@
<loc href="#terms-profile-definition-document">profile definition document</loc> as defined by <specref ref="profiles"/>,
or (2) a feasibly dereferenceable resource representing a valid <emph>Profile Definition
Document</emph> instance. In either case, the referenced profile serves as the
-baseline profile of the specifying <el>ttp:profile</el> element.</p>
-<p>If the <att>use</att> attribute is not specified, then the baseline
-profile of the <el>ttp:profile</el> element must be considered to be
+<loc href="#terms-baseline-profile">baseline profile</loc> of the specifying <el>ttp:profile</el> element.</p>
+<p>If the <att>use</att> attribute is not specified, then the <loc href="#terms-baseline-profile">baseline profile</loc>
+of the <el>ttp:profile</el> element must be considered to be
the empty (null) profile, i.e., a profile definition containing no
feature or extension specifications.</p>
-<ednote>
-<name>Combine Semantics</name>
-<date>2013-09-05</date>
-<edtext>Need to incorporate affects of <att>combine</att> attribute into following rules.</edtext>
-</ednote>
-<p>The collection of features and extensions of a profile are determined according
-to the following ordered rules:</p>
+<p>The combined specification set <emph>CSS</emph> of features and extensions of a profile <emph>P</emph>
+is determined according to the following ordered rules, where merging a specification <emph>S</emph>
+into <emph>CSS</emph> entails applying a combination method in accordance with the specified
+(or default) value of the <att>combine</att> attribute, and where merging a combined specification set <emph>CSS' </emph> into
+<emph>CSS</emph> entails merging each ordered specification of <emph>CSS' </emph> into <emph>CSS</emph>:</p>
<olist>
-<item>
-<p>initialize the features and extensions of the profile to the empty
-set;</p>
-</item>
-<item>
-<p>if a <att>use</att> attribute is present, then augment the profile
-with the set of features and extensions specified by the referenced
-baseline profile;</p>
-</item>
-<item>
-<p>for each <el>ttp:feature</el> and <el>ttp:extension</el> element
-descendant of the <el>ttp:profile</el> element, using a post-order
-traversal, merge the specified feature or extension with the features
-and extensions of the profile, where merging a feature or extension
-entails applying the combination method in accordance with the specified
-(or default) <att>combine</att> attribute value.</p>
-</item>
+<item><p>initialize <emph>CSS</emph> to the empty set;</p></item>
+<item><p>if a <att>use</att> attribute is present, then merge
+the combined specification set of the referenced <loc href="#terms-baseline-profile">baseline profile</loc> into <emph>CSS</emph>;</p></item>
+<item><p>for each <el>ttp:profile</el> child of the <emph>P</emph>,
+using a post-order traversal, merge the combined specification set of the child profile
+into <emph>CSS</emph>;</p></item>
+<item><p>for each <el>ttp:feature</el> and <el>ttp:extension</el> child of the <el>ttp:profile</el> element,
+using a post-order traversal, merge the feature or extension specification
+into <emph>CSS</emph>.</p></item>
</olist>
<p>A conformant TTML processor is not required to be able to
dereference a <loc href="#terms-profile-definition-document">profile definition document</loc> that is not one of the
@@ -2200,7 +2641,7 @@
<p>The <el>ttp:feature</el> element is used to specify
infomation about support and usage requirements for a particular feature.</p>
<p>The children of the <el>ttp:feature</el> element must express a non-empty
-sequence of <loc href="terms-character-information-item">character information items</loc> that adheres to the
+sequence of <loc href="#terms-character-information-item">character information items</loc> that adheres to the
<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
§3.2.17.</p>
<table id="elt-syntax-parameter-feature" role="syntax">
@@ -2210,7 +2651,7 @@
<td>
<eg xml:space="preserve">
<ttp:feature
- value = (optional|required|use|prohibited) : required
+ value = (optional|required|<phrase role="deprecated">use</phrase>|prohibited) : <emph>see prose below</emph>
<loc href="#content-attribute-id">xml:id</loc> = ID
{<emph>any attribute not in default or any TT namespace</emph>}>
<emph>Content:</emph> #PCDATA
@@ -2236,73 +2677,67 @@
<p>If the URI expressed by the content of the <el>ttp:feature</el> element
is a relative URI, then an <att>xml:base</att> attribute should be
specified on the nearest ancestor <el>ttp:features</el> element.</p>
-<p>The <att>value</att> attribute specifies (1) whether a conforming TTML
-processor must or may implement the designated feature in order to
-process the document, or (2) whether a TTML <loc href="#terms-document-instance">document instance</loc>
-must not include or otherwise use the designated feature.
-If the value of the <att>value</att> attribute
-is <code>optional</code>, then the processor need
-not implement or otherwise support the feature in order to process the
-document; if the value is <code>required</code>, then the processor
-must implement or otherwise support the feature, irrespective of
-whether the feature is enabled or disabled, in order to process
-the document; if the value is
-<code>use</code>, then the processor must both (1) implement or
-otherwise support the feature and (2) have enabled (activated) use of the
-feature; if the value is <code>prohibited</code>, then the document must not
-include or otherwise specify any use of the feature, and, if it does, then the processor
-should reject or abort processing of the document.</p>
-<note role="clarification">
-<p>The default value of the <att>value</att> attribute is
-<code>required</code>, as indicated in the above element information
-item definition. Therefore, if a <att>value</att> attribute is not
-specified on a <el>ttp:feature</el> element, it is equivalent to
-specifying that support for the feature is required.</p>
-</note>
-<note role="clarification">
-<p>Use of <code>prohibited</code> for a feature value is not to be
-interpreted as meaning that a conformant processor need not or must not support
-the default semantics that apply for that feature.</p>
-</note>
-<p>If the value of the <att>value</att> attribute is
-<code>required</code> or <code>use</code>
-and the TTML processor implementation does
-not support the feature, or if the <att>value</att> attribute is
-<code>use</code> and the TTML processor implementation supports but has disabled
-that feature,
-or if the <att>value</att> attribute is <code>prohibited</code> and a
-<loc href="#terms-document-instance">document instance</loc> includes or makes use of the feature,
-then it must not further process the document
-without the presence of an explicit override from an end-user or some
-implementation specific parameter traceable to an end-user or to a
-user or system configuration setting. If a TTML processor aborts
-processing of a <loc href="#terms-document-instance">document instance</loc> due to the specification of a
-required, but unsupported feature by this element, or due to the presence
-or use of a prohibited feature, then some end-user
-notification should be given unless the end-user or system has
-disabled such a notification, or if the processor does not permit or
-entail the intervention of an end-user.</p>
-<p>If the value of the <att>value</att> attribute is
-<code>optional</code>, and if the TTML processor implementation does
-not support the feature, then it may further process the document even
-in the case that some use of the feature is present in the document.
-In the case of actual use of a feature designated as optional, the
-default semantics associated with that feature apply; that is, the
-processor may behave as if the feature were not actually used or
-referenced by the document. Notwithstanding the above, the syntactic
-presence or reference to an optional feature by a document must not be
-considered to be a violation of document validity or a barrier to
-further processing if the syntactic expression is well-formed and
-otherwise valid.</p>
+<p>The <att>value</att> attribute specifies constraints on support for or use of
+the designated feature according to the profile type.</p>
+<p>If the profile is a <loc href="#terms-processor-profile">processor profile</loc>
+then the following semantics apply:</p>
+<ulist>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>optional</code>, then a processor may but need
+not implement or otherwise support the feature in order to process the document;
+</p></item>
+<item><p>
+if the value is <code>required</code>, then a processor
+must implement or otherwise support the feature in order to process
+the document;
+</p></item>
+<item><p>
+if the value attribute is not specified, then the feature specification
+must be interpreted as if the value <code>required</code> were specified;
+</p></item>
+</ulist>
+<p>If the profile is a <loc href="#terms-content-profile">content profile</loc>
+then the following semantics apply:</p>
+<ulist>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>optional</code>, then the feature may but need not appear in a document that
+claims conformance with that profile;
+</p></item>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>required</code>, then the feature must appear in a document that
+claims conformance with that profile;
+</p></item>
+<item><p>
+if the value of the <att>value</att> attribute
+is <code>prohibited</code>, then the feature must not appear in a document that
+claims conformance with that profile;
+</p></item>
+<item><p>
+if the value attribute is not specified, then the feature specification
+must be interpreted as if the value <code>optional</code> were specified;
+</p></item>
+</ulist>
+<p>The value <code>use</code> of the <att>value</att> attribute is <phrase role="deprecated">deprecated</phrase>. If it
+appears in a profile specification, then it must be interpreted as if <code>required</code>
+had been specified.</p>
<p>If some defined (i.e., standardized) or otherwise well known feature is not specified by
-a <el>ttp:feature</el> element in a given profile, then it must be interpreted as if the feature were specified
-with the <att>value</att> attribute equal to <code>optional</code>.</p>
+a <el>ttp:feature</el> element in a content profile, then it must be interpreted as if the feature were specified
+with the <att>value</att> attribute equal to <code>optional</code>. However, if not specified in a processor profile, no claim
+about support or absence of support for the feature is implied.</p>
<note role="elaboration">
-<p>In particular, if some feature is not present in a profile definition, then
+<p>In particular, if some feature is not present in a content profile definition, then
it is not to be interpreted as meaning the use of that feature (in a <loc href="#terms-document-instance">document instance</loc>)
-is disallowed or otherwise prohibited. If a feature is intended to be disallowed by a profile, then
+is disallowed or otherwise prohibited. If a feature is intended to be disallowed by a content profile, then
it should be specified using the <code>prohibited</code> value.</p>
</note>
+<p>If a <loc href="#terms-document-instance">document instance</loc> makes use of a feature defined by
+<specref ref="feature-designations"/> and if the intended use of the
+document requires the recognition and processing of that feature, then
+the document must include a <emph>required</emph> feature specification in one of its declared or
+referenced profiles.</p>
<p>The <el>ttp:feature</el> element is illustrated by the following example.</p>
<table id="parameter-vocabulary-feature-example-1" role="example">
<caption>Example Fragment – ttp:feature</caption>
@@ -2378,7 +2813,7 @@
<p>The <el>ttp:extension</el> element is used to specify
infomation about support and usage requirements for a particular extension.</p>
<p>The children of the <el>ttp:extension</el> element must express a non-empty
-sequence of <loc href="terms-character-information-item">character information items</loc> that adheres to the
+sequence of <loc href="#terms-character-information-item">character information items</loc> that adheres to the
<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
§3.2.17.</p>
<table id="elt-syntax-parameter-extension" role="syntax">
@@ -2388,7 +2823,7 @@
<td>
<eg xml:space="preserve">
<ttp:extension
- value = (optional|required|use|prohibited) : required
+ value = (optional|required|<phrase role="deprecated">use</phrase>|prohibited) : <emph>see prose below</emph>
<loc href="#content-attribute-id">xml:id</loc> = ID
{<emph>any attribute not in default or any TT namespace</emph>}>
<emph>Content:</emph> #PCDATA
@@ -2411,65 +2846,25 @@
<el>ttp:feature</el> element is a relative URI, then an
<att>xml:base</att> attribute should be specified on the nearest
ancestor <el>ttp:extensions</el> element.</p>
-<p>The <att>value</att> attribute specifies (1) whether a conforming TTML
-processor must or may implement the designated extension in order to
-process the document, or (2) whether a TTML <loc href="#terms-document-instance">document instance</loc>
-must not include or otherwise use the designated extension.
-If the value of the <att>value</att> attribute
-is <code>optional</code>, then the processor need
-not implement or otherwise support the extension in order to process the
-document; if the value is <code>required</code>, then the processor
-must implement or otherwise support the extension, irrespective of
-whether the extension is enabled or disabled, in order to process
-the document; if the value is
-<code>use</code>, then the processor must both (1) implement or
-otherwise support the extension and (2) have enabled (activated) use of the
-extension; if the value is <code>prohibited</code>, then the document must not
-include or otherwise use the extension, and, if it does, then the processor
-should reject or abort processing of the document.</p>
-<note role="clarification">
-<p>The default value of the <att>value</att> attribute is
-<code>required</code>, as indicated in the above element information
-item definition. Therefore, if a <att>value</att> attribute is not
-specified on a <el>ttp:extension</el> element, it is equivalent to
-specifying that support for the extension is required.</p>
-</note>
-
-<p>If the value of the <att>value</att> attribute is
-<code>required</code> or <code>use</code>
-and the TTML processor implementation does
-not support the extension, or if the <att>value</att> attribute is
-<code>use</code> and the TTML processor implementation supports but has disabled
-that extension, then it must not further process the document without the
-presence of an explicit override from an end-user or some
-implementation specific parameter traceable to an end-user or to a
-user or system configuration setting. If a TTML processor aborts
-processing of a <loc href="#terms-document-instance">document instance</loc> due to the specification of a
-required, but unsupported extension by this element, then some
-end-user notification should be given unless the end-user or system
-has disabled such a notification, or if the processor does not permit
-or entail the intervention of an end-user.</p>
-<p>If the value of the <att>value</att> attribute is
-<code>optional</code>, and if the TTML processor implementation does
-not support the extension, then it may further process the document even
-in the case that some use of the extension is present in the document.
-In the case of actual use of an extension designated as optional, the
-default semantics associated with that extension apply; that is, the
-processor may behave as if the extension were not actually used or
-referenced by the document. Notwithstanding the above, the syntactic
-presence or reference to an optional extension by a document must not be
-considered to be a violation of document validity or a barrier to
-further processing if the syntactic expression is well-formed and
-otherwise valid.</p>
+<p>The <att>value</att> attribute has the same syntactic usage and semantics as defined
+above in <specref ref="parameter-vocabulary-feature"/>, except that a reference there to a <emph>feature</emph>
+is to be understood in the present context as a reference to an <emph>extension</emph>.</p>
<p>If some well known extension is not specified by
-a <el>ttp:extension</el> element in a given profile, then it must be interpreted as if the extension were specified
-with the <att>value</att> attribute equal to <code>optional</code>.</p>
+a <el>ttp:extension</el> element in a content profile, then it must be interpreted as if the extension were specified
+with the <att>value</att> attribute equal to <code>optional</code>. However, if not specified in a processor profile, no claim
+about support or absence of support for the extension is implied.</p>
<note role="elaboration">
-<p>In particular, if some extension is not present in a profile definition, then
+<p>In particular, if some extension is not present in a content profile definition, then
it is not to be interpreted as meaning the use of that extension (in a <loc href="#terms-document-instance">document instance</loc>)
-is disallowed or otherwise prohibited. If an extension is intended to be disallowed by a profile, then
+is disallowed or otherwise prohibited. If an extension is intended to be disallowed by a content profile, then
it should be specified using the <code>prohibited</code> value.</p>
</note>
+<p>If a <loc href="#terms-document-instance">document instance</loc> makes use
+of an extension designatable by <specref
+ref="extension-designations"/> and if the intended use of the document
+requires the recognition and processing of that extension, then the
+document must include a <emph>required</emph> extension specification
+in one of its declared or referenced profiles.</p>
<p>The <el>ttp:extension</el> element is illustrated by the following example.</p>
<table id="parameter-vocabulary-extension-example-1" role="example">
<caption>Example Fragment – ttp:extension</caption>
@@ -2497,22 +2892,32 @@
must also support and enable an extension defined by a third party.</p>
</note>
</div3>
-</div2>
+</div2> <!-- parameter-element-vocabulary -->
+
<div2 id="parameter-attribute-vocabulary">
<head>Parameter Attribute Vocabulary</head>
<p>The following attributes are defined in the TT Parameter Namespace.</p>
<ulist>
<item><p><specref ref="parameter-attribute-cellResolution"/></p></item>
<item><p><specref ref="parameter-attribute-clockMode"/></p></item>
+<item><p><specref ref="parameter-attribute-contentProfiles"/></p></item>
+<item><p><specref ref="parameter-attribute-contentProfileCombination"/></p></item>
<item><p><specref ref="parameter-attribute-dropMode"/></p></item>
<item><p><specref ref="parameter-attribute-frameRate"/></p></item>
<item><p><specref ref="parameter-attribute-frameRateMultiplier"/></p></item>
+<item><p><specref ref="parameter-attribute-inferProcessorProfileMethod"/></p></item>
+<item><p><specref ref="parameter-attribute-inferProcessorProfileSource"/></p></item>
<item><p><specref ref="parameter-attribute-markerMode"/></p></item>
<item><p><specref ref="parameter-attribute-pixelAspectRatio"/></p></item>
<item><p><specref ref="parameter-attribute-profile"/></p></item>
+<item><p><specref ref="parameter-attribute-processorProfiles"/></p></item>
+<item><p><specref ref="parameter-attribute-processorProfileCombination"/></p></item>
<item><p><specref ref="parameter-attribute-subFrameRate"/></p></item>
<item><p><specref ref="parameter-attribute-tickRate"/></p></item>
<item><p><specref ref="parameter-attribute-timeBase"/></p></item>
+<item><p><specref ref="parameter-attribute-validation"/></p></item>
+<item><p><specref ref="parameter-attribute-validationAction"/></p></item>
+<item><p><specref ref="parameter-attribute-version"/></p></item>
</ulist>
<p>Unless explicitly stated otherwise, linear white-space (LWSP) must
appear between adjacent non-terminal components of a TT Parameter value
@@ -2620,21 +3025,156 @@
<p>A <att>ttp:clockMode</att> attribute is considered to be significant only
when specified on the <el>tt</el> element.</p>
</div3>
-<div3 id="parameter-attribute-contentProfile">
-<head>ttp:contentProfile</head>
-<p>The <att>ttp:contentProfile</att> attribute may be used by a content author
-to express a <loc href="#terms-content-profile">content profile</loc> of
-the Timed Text Markup Language (TTML) to which
-a <loc href="#terms-document-instance">document instance</loc> conforms.</p>
-<p>If specified, the value of this attribute must adhere to the
-<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
-§3.2.17, and, further, must specify a
-profile designator in accordance with
+<div3 id="parameter-attribute-contentProfiles">
+<head>ttp:contentProfiles</head>
+<p>The <att>ttp:contentProfiles</att> attribute may be used by a content author
+to express one or more <loc href="#terms-content-profile">content profiles</loc> of
+the Timed Text Markup Language (TTML) where the
+<loc href="#terms-enclosing-document-instance">enclosing document instance</loc> claims conformance to any or all of the
+specified <loc href="#terms-content-profile">content profiles</loc>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax,
+where each <code>profile-designator</code> item adheres to the <code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17, and, further, adheres to constraints defined on a profile designator in accordance with
<specref ref="vocabulary-profiles"/>.</p>
-<p>A <att>ttp:contentProfile</att>
+<table id="parameter-attribute-contentProfiles-syntax" role="syntax">
+<caption>Syntax Representation – ttp:contentProfiles</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:contentProfiles
+ : designators
+ | "all(" designators ")"
+ | "any(" designators ")"
+
+designators
+ : designator (lwsp designator)*
+
+designator
+ : xsd:anyURI
+
+lwsp
+ : ( ' ' | '\t' | '\n' | '\r' )+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If the list of designators is enclosed in the function syntax <code>all(...)</code> or no function syntax is used,
+then conformance is claimed with all designated <loc href="#terms-content-profile">content profiles</loc>. If the list
+of designators is enclosed in the function syntax <code>any(...)</code>, then conformance is claimed with at least one
+of the designated <loc href="#terms-content-profile">content profiles</loc>.</p>
+<p>A <att>ttp:contentProfiles</att>
attribute is considered to be significant only when specified on the
<el>tt</el> element.</p>
</div3>
+<div3 id="parameter-attribute-contentProfileCombination">
+<head>ttp:contentProfileCombination</head>
+<p>The <att>ttp:contentProfileCombination</att> attribute is used to specify the
+method for combining multiple <loc href="#terms-content-profile">content profiles</loc>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-contentProfileCombination-syntax" role="syntax">
+<caption>Syntax Representation – ttp:contentProfileCombination</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:contentProfileCombination
+ : "leastRestrictive"
+ | "mostRestrictive"
+ | "replace"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Given two ordered profile specification values, <emph>arg1</emph> and <emph>arg2</emph>, and a content profile combination method,
+<specref ref="content-profile-combination-table"/> specifies the result of combining the two specification values, where the order
+of arguments is determined in accordance with the lexical order of
+<loc href="#terms-content-profile">content profiles</loc> in a <loc href="#terms-document-instance">document instance</loc>.</p>
+<table id="content-profile-combination-table" role="common">
+<caption>Table 6-1 – Content Profile Combination</caption>
+<col width="16.67%"/>
+<col width="16.67%"/>
+<col width="22%"/>
+<col width="22%"/>
+<col width="22%"/>
+<tbody>
+<tr>
+<th><emph>arg1</emph></th>
+<th><emph>arg2</emph></th>
+<th><code>leastRestrictive</code></th>
+<th><code>mostRestrictive</code></th>
+<th><code>replace</code></th>
+</tr>
+<tr>
+<td>optional</td>
+<td>optional</td>
+<td>optional</td>
+<td>optional</td>
+<td>optional</td>
+</tr>
+<tr>
+<td>optional</td>
+<td>required</td>
+<td>optional</td>
+<td>required</td>
+<td>required</td>
+</tr>
+<tr>
+<td>optional</td>
+<td>prohibited</td>
+<td>optional</td>
+<td>prohibited</td>
+<td>prohibited</td>
+</tr>
+<tr>
+<td>required</td>
+<td>optional</td>
+<td>optional</td>
+<td>required</td>
+<td>optional</td>
+</tr>
+<tr>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+</tr>
+<tr>
+<td>required</td>
+<td>prohibited</td>
+<td>required</td>
+<td>prohibited</td>
+<td>prohibited</td>
+</tr>
+<tr>
+<td>prohibited</td>
+<td>optional</td>
+<td>optional</td>
+<td>prohibited</td>
+<td>optional</td>
+</tr>
+<tr>
+<td>prohibited</td>
+<td>required</td>
+<td>required</td>
+<td>prohibited</td>
+<td>required</td>
+</tr>
+<tr>
+<td>prohibited</td>
+<td>prohibited</td>
+<td>prohibited</td>
+<td>prohibited</td>
+<td>prohibited</td>
+</tr>
+</tbody>
+</table>
+<p>A <att>ttp:contentProfileCombination</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
<div3 id="parameter-attribute-dropMode">
<head>ttp:dropMode</head>
<p>The <att>ttp:dropMode</att> attribute is used to specify
@@ -2800,19 +3340,105 @@
formatted video objects at 25 frames per second is nominally 1:1.</p>
</note>
</div3>
+<div3 id="parameter-attribute-inferProcessorProfileMethod">
+<head>ttp:inferProcessorProfileMethod</head>
+<p>The <att>ttp:inferProcessorProfileMethod</att> attribute is used to specify the
+method for mapping a content profile specification value to a corresponding processor
+profile specification value.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-inferProcessorProfileMethod-syntax" role="syntax">
+<caption>Syntax Representation – ttp:inferProcessorProfileMethod</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:inferProcessorProfileMethod
+ : "loose"
+ | "strict"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If this parameter's value is <code>loose</code>, then, when inferring a processor profile specification from a content profile specification,
+a loose (liberal) mapping applies.</p>
+<p>If this parameter's value is <code>strict</code>, then, when inferring a processor profile specification from a content profile specification,
+a strict (conservative) mapping applies.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>loose</code>.</p>
+<p>Given an input content profile specification value, <emph>input</emph>, and an infer processor profile method,
+<specref ref="infer-processor-profile-method-table"/> specifies the result of mapping the input specification value.</p>
+<table id="infer-processor-profile-method-table" role="common">
+<caption>Table 6-2 – Infer Processor Profile Method</caption>
+<col width="33%"/>
+<col width="33%"/>
+<col width="33%"/>
+<tbody>
+<tr>
+<th><emph>input</emph></th>
+<th><code>loose</code></th>
+<th><code>strict</code></th>
+</tr>
+<tr>
+<td>optional</td>
+<td>optional</td>
+<td>required</td>
+</tr>
+<tr>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+</tr>
+<tr>
+<td>prohibited</td>
+<td>optional</td>
+<td>optional</td>
+</tr>
+</tbody>
+</table>
+<p>A <att>ttp:inferProcessorProfileMethod</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-inferProcessorProfileSource">
+<head>ttp:inferProcessorProfileSource</head>
+<p>The <att>ttp:inferProcessorProfileSource</att> attribute is used to specify the
+source for mapping a content profile specification value to a corresponding processor
+profile specification value.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-inferProcessorProfileSource-syntax" role="syntax">
+<caption>Syntax Representation – ttp:inferProcessorProfileSource</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:inferProcessorProfileSource
+ : "combined"
+ | "first"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If this parameter's value is <code>combined</code>, then, when inferring a processor profile, the combined profile specification
+set of the <loc href="#terms-effective-content-profile">effective content profile</loc> is used as the source of inference.</p>
+<p>If this parameter's value is <code>first</code>, then, when inferring a processor profile, the first constituent profile of
+the <loc href="#terms-effective-content-profile">effective content profile</loc>, where the processor profile inferred from that
+constituent profile is supported by the <loc href="#terms-content-processor">content processor</loc>, is used as the source of inference.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>combined</code>.</p>
+<p>A <att>ttp:inferProcessorProfileSource</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
<div3 id="parameter-attribute-markerMode">
<head>ttp:markerMode</head>
-<ednote>
-<name>Obsolete ttp:markerMode</name>
-<date>2013-09-05</date>
-<edtext>Designate ttp:markerMode as obsolete. If specified, and if feature #markerMode or #markerMode-continuous is not
-required, then the specified value is to be ignored and the default value 'discontinuous' applies.</edtext>
-</ednote>
-<p>The <att>ttp:markerMode</att> attribute is used to specify
+<p>The <att>ttp:markerMode</att> attribute is <phrase role="deprecated">deprecated</phrase>. In <bibref ref="ttml1"/>, it was used to specify
constraints on the interpretation and use of time expressions
that correspond with <bibref ref="smpte12m"/> time coordinates when operating
with time base of <code>smpte</code> as defined by
<specref ref="parameter-attribute-timeBase"/>.</p>
+<p>If specified and support for neither <code>#markerMode</code> nor <code>#markerMode-continuous</code> feature
+is required by a document's <loc href="#terms-effective-processor-profile">effective processor profile</loc>,
+then the specified value must be ignored and the value <code>discontinuous</code> applied.</p>
<p>If specified, the value of this attribute must adhere to the following syntax:</p>
<table id="parameter-attribute-markerMode-syntax" role="syntax">
<caption>Syntax Representation – ttp:markerMode</caption>
@@ -2820,7 +3446,7 @@
<tr>
<td>
<eg xml:space="preserve">
-ttp:markerMode
+<phrase role="deprecated">ttp:markerMode</phrase>
: "continuous"
| "discontinuous"
</eg>
@@ -2840,15 +3466,9 @@
<note role="historical">
<p>The default value for this parameter was originally specified
(in <xspecref href="http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/">TTML 1.0 First Edition</xspecref>)
-as <code>continuous</code>; however, further evaluation of the state of the industry indicates this
+as <code>continuous</code>; however, further evaluation of the state of the industry indicated this
choice was incorrect, and that the most common default is <code>discontinuous</code>.</p>
</note>
-<note role="recommendation">
-<p>Due to lack of industry consensus on the utility and interpretation of the
-<code>continuous</code> marker mode, authors are advised to avoid its use. Furthermore, the
-<att>ttp:markerMode</att> is being considered for deprecation in the next revision of this
-specification.</p>
-</note>
<p>A <att>ttp:markerMode</att> attribute is considered to be significant only
when specified on the <el>tt</el> element.</p>
<p>If a value of <code>continuous</code> applies, then time
@@ -2947,31 +3567,102 @@
</div3>
<div3 id="parameter-attribute-profile">
<head>ttp:profile</head>
-<p>The <att>ttp:profile</att> attribute may be used by a content author
-to express a <loc href="#terms-processor-profile">processor profile</loc>
+<p>The <att>ttp:profile</att> attribute is <phrase role="deprecated">deprecated</phrase>. If creating a TTML document instance for TTML2 (or later versions),
+then the <att>ttp:profile</att> attribute should not be used; instead, the content author should use the <att>ttp:processorProfiles</att>
+attribute, specified at <specref ref="parameter-attribute-processorProfiles"/>.</p>
+<p>If used in a document, the <att>ttp:profile</att> attribute
+denotes a <loc href="#terms-processor-profile">processor profile</loc>
of the Timed Text Markup Language (TTML) that applies when processing
a <loc href="#terms-document-instance">document instance</loc>.</p>
-<p>If specified, the value of this attribute must adhere to the
+<note role="seealso">
+<p>For information on signaling content profile(s), see <specref ref="parameter-attribute-contentProfiles"/>.</p>
+</note>
+<p>If specified, the value of this attribute must adhere to the following syntax
+where the <code>designator</code> adheres to the
<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
§3.2.17, and, further, must specify a
profile designator in accordance with
<specref ref="vocabulary-profiles"/>.</p>
+<table id="parameter-attribute-profile-syntax" role="syntax">
+<caption>Syntax Representation – ttp:profile</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<phrase role="deprecated">ttp:profile</phrase>
+ : designator
+
+designator
+ : xsd:anyURI
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
<p>A <att>ttp:profile</att>
attribute is considered to be significant only when specified on the
<el>tt</el> element.</p>
-</div3>
-<div3 id="parameter-attribute-profileCombination">
-<head>ttp:profileCombination</head>
-<p>The <att>ttp:profileCombination</att> attribute is used to specify the
-method for combining multiple profiles.</p>
+<p>If a <loc href="#terms-top-level-profile">top-level</loc> <loc href="#terms-processor-profile">processor profile</loc>
+is defined in a <loc href="#terms-document-instance">document instance</loc>, then the
+<loc href="#parameter-attribute-profile"><att>ttp:profile</att></loc>
+attribute should not be specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-processorProfiles">
+<head>ttp:processorProfiles</head>
+<p>The <att>ttp:processorProfiles</att> attribute may be used by a content author
+to express one or more <loc href="#terms-processor-profile">processor profiles</loc> of
+the Timed Text Markup Language (TTML) where the
+<loc href="#terms-enclosing-document-instance">enclosing document instance</loc> requires support for each and all
+specified <loc href="#terms-processor-profile">processor profiles</loc>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax,
+where each <code>profile-designator</code> item adheres to the <code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17, and, further, adheres to constraints defined on a profile designator in accordance with
+<specref ref="vocabulary-profiles"/>.</p>
+<table id="parameter-attribute-processorProfiles-syntax" role="syntax">
+<caption>Syntax Representation – ttp:processorProfiles</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:processorProfiles
+ : designators
+ | "all(" designators ")"
+ | "any(" designators ")"
+
+designators
+ : designator (lwsp designator)*
+
+designator
+ : xsd:anyURI
+
+lwsp
+ : ( ' ' | '\t' | '\n' | '\r' )+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If the list of designators is enclosed in the function syntax <code>all(...)</code> or no function syntax is used,
+then support is required for all designated <loc href="#terms-processor-profile">processor profiles</loc>. If the list
+of designators is enclosed in the function syntax <code>any(...)</code>, then support is required for at least one
+of the designated <loc href="#terms-processor-profile">processor profiles</loc>.</p>
+<p>A <att>ttp:processorProfiles</att>
+attribute is considered to be significant only when specified on the
+<el>tt</el> element.</p>
+</div3>
+
+<div3 id="parameter-attribute-processorProfileCombination">
+<head>ttp:processorProfileCombination</head>
+<p>The <att>ttp:processorProfileCombination</att> attribute is used to specify the
+method for combining multiple <loc href="#terms-processor-profile">processor profiles</loc>.</p>
<p>If specified, the value of this attribute must adhere to the following syntax:</p>
-<table id="parameter-attribute-profileCombination-syntax" role="syntax">
-<caption>Syntax Representation – ttp:profileCombination</caption>
-<tbody>
-<tr>
-<td>
-<eg xml:space="preserve">
-ttp:profileCombination
+<table id="parameter-attribute-processorProfileCombination-syntax" role="syntax">
+<caption>Syntax Representation – ttp:processorProfileCombination</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:processorProfileCombination
: "leastRestrictive"
| "mostRestrictive"
| "replace"
@@ -2980,22 +3671,57 @@
</tr>
</tbody>
</table>
-<p>If this parameter's value is <code>leastRestrictive</code> or <code>mostRestrictive</code>,
-then, when combining features or extensions from any two profiles, the least or most restrictive value applies,
-respectively, where the order of restriction is as follows (from most to least): <code>prohibited</code>,
-<code>use</code>, <code>required</code>, then <code>optional</code>.</p>
-<p>If this parameter's value is <code>replace</code>, then, when combining features or extensions from any two
-profiles, the lexically subsequent profile's feature or extension specification applies, i.e., replaces the
-lexically prior specification.</p>
-<p>A <att>ttp:profileCombination</att> attribute is considered to be significant only
-when specified on the <el>tt</el> or <el>ttp:profile</el> elements.</p>
-<p>When specified on the <el>tt</el> element, it determines how multiple top-level (or nested) profile definitions are
-combined. When specified on an <el>ttp:profile</el> element, it determines how multiple, nested profile definition
-children of that <el>ttp:profile</el> element are combined.</p>
-<p>If not specified on a given <el>ttp:profile</el> element, then, if specified on an ancestor
-<el>ttp:profile</el> or <el>tt</el> element, then the value specified by the most immediate
-of these ancestors applies. However, if no value is specified by an ancestor <el>ttp:profile</el> or <el>tt</el> element,
-then the value of this parameter must be considered to be <code>replace</code>.</p>
+<p>Given two ordered profile specification values, <emph>arg1</emph> and <emph>arg2</emph>, and a processor profile combination method,
+<specref ref="processor-profile-combination-table"/> specifies the result of combining the two specification values, where the order
+of arguments is determined in accordance with the lexical order of
+<loc href="#terms-processor-profile">processor profiles</loc> in a <loc href="#terms-document-instance">document instance</loc>.</p>
+<table id="processor-profile-combination-table" role="common">
+<caption>Table 6-3 – Processor Profile Combination</caption>
+<col width="16.67%"/>
+<col width="16.67%"/>
+<col width="22%"/>
+<col width="22%"/>
+<col width="22%"/>
+<tbody>
+<tr>
+<th><emph>arg1</emph></th>
+<th><emph>arg2</emph></th>
+<th><code>leastRestrictive</code></th>
+<th><code>mostRestrictive</code></th>
+<th><code>replace</code></th>
+</tr>
+<tr>
+<td>optional</td>
+<td>optional</td>
+<td>optional</td>
+<td>optional</td>
+<td>optional</td>
+</tr>
+<tr>
+<td>optional</td>
+<td>required</td>
+<td>optional</td>
+<td>required</td>
+<td>required</td>
+</tr>
+<tr>
+<td>required</td>
+<td>optional</td>
+<td>optional</td>
+<td>required</td>
+<td>optional</td>
+</tr>
+<tr>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+<td>required</td>
+</tr>
+</tbody>
+</table>
+<p>A <att>ttp:processorProfileCombination</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
</div3>
<div3 id="parameter-attribute-subFrameRate">
<head>ttp:subFrameRate</head>
@@ -3164,6 +3890,74 @@
on the interpretation of time expressions according to the designated time base.</p>
</note>
</div3>
+
+<div3 id="parameter-attribute-validation">
+<head>ttp:validation</head>
+<p>The <att>ttp:validation</att> attribute is used to specify whether validation processing
+may or must be performed on a <loc href="#terms-document-instance">document instance</loc> by a
+<loc href="#terms-validating-content-processor">validating content processor</loc>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-validation-syntax" role="syntax">
+<caption>Syntax Representation – ttp:validation</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:validation
+ : "optional"
+ | "required"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If this parameter's value is <code>optional</code>, then, a <loc href="#terms-validating-content-processor">validating content processor</loc>
+may, but need not, perform validation processing on a TTML <loc href="#terms-document-instance">document instance</loc> prior to performing
+other types of processing, e.g., presentation or transformation processing.</p>
+<p>If this parameter's value is <code>required</code>, then, a <loc href="#terms-validating-content-processor">validating content processor</loc>
+must perform validation processing on a TTML <loc href="#terms-document-instance">document instance</loc> prior to performing
+other types of processing, e.g., presentation or transformation processing.</p>
+<p>If validation processing is performed on a TTML <loc href="#terms-document-instance">document instance</loc> and validation fails, then the computed value of
+the <att>ttp:validationAction</att> attribute is used to determine what action to take before performing further processing.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>optional</code>.</p>
+<p>A <att>ttp:validation</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+
+<div3 id="parameter-attribute-validationAction">
+<head>ttp:validationAction</head>
+<p>The <att>ttp:validationAction</att> attribute is used to specify what action is to be taken
+by a <loc href="#terms-validating-content-processor">validating content processor</loc> when
+validation of a <loc href="#terms-document-instance">document instance</loc> fails.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-validationAction-syntax" role="syntax">
+<caption>Syntax Representation – ttp:validationAction</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:validationAction
+ : "abort"
+ | "warn"
+ | "ignore"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If this parameter's value is <code>abort</code>, then, a <loc href="#terms-validating-content-processor">validating content processor</loc>
+must abort processing of a TTML <loc href="#terms-document-instance">document instance</loc> when validation processing fails.</p>
+<p>If this parameter's value is <code>warn</code>, then, a <loc href="#terms-validating-content-processor">validating content processor</loc>
+should warn the end-user when validation processing fails, and, give the end-user the option to continue or abort processing.</p>
+<p>If this parameter's value is <code>ignore</code>, then, a <loc href="#terms-validating-content-processor">validating content processor</loc>
+should not abort and should not warn the end-user when validation processing fails.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>abort</code>.</p>
+<p>A <att>ttp:validationAction</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+
<div3 id="parameter-attribute-version">
<head>ttp:version</head>
<p>The <att>ttp:version</att> attribute is used to specify which version of the
@@ -3212,8 +4006,9 @@
specification that was not yet published at the time the processor was implemented.</p>
</note>
</div3>
-</div2>
-</div1>
+</div2> <!-- parameter-attribute-vocabulary -->
+</div1> <!-- parameters -->
+
<div1 id="content">
<head>Content</head>
<p>This section specifies the <emph>content</emph> matter of the core
@@ -3261,7 +4056,7 @@
<p>If the <att>tts:extent</att> attribute is specified on the <el>tt</el>
element, then it must adhere to <specref ref="style-attribute-extent"/>, in which case it
specifies the spatial extent of the <loc href="#terms-root-container-region">root container region</loc> in
-which <loc href="terms-content-region">content regions</loc> are located and presented. If no <att>tts:extent</att>
+which <loc href="#terms-content-region">content regions</loc> are located and presented. If no <att>tts:extent</att>
attribute is specified, then the spatial extent of the <loc href="#terms-root-container-region">root container region</loc> is
considered to be determined by the <loc href="#terms-document-processing-context">document processing context</loc>.
The origin of the <loc href="#terms-root-container-region">root container region</loc> is determined by the <loc href="#terms-document-processing-context">document processing context</loc>.</p>
@@ -3560,7 +4355,7 @@
a <el>p</el> element, then it must be interpreted as having
<emph>parallel</emph> time containment semantics.</p>
<p>If a sequence of children of a <el>p</el> element
-consists solely of <loc href="terms-character-information-item">character information items</loc>, then that sequence must
+consists solely of <loc href="#terms-character-information-item">character information items</loc>, then that sequence must
be considered to be an <emph>anonymous span</emph> for the purpose of
applying style properties that apply to <el>span</el> elements.</p>
<note role="elaboration"><p>The presentation semantics of TTML effectively
@@ -3679,7 +4474,7 @@
a <el>br</el> element, then it must be interpreted as having
<emph>parallel</emph> time containment semantics.</p>
</div3>
-</div2>
+</div2> <!-- content-element-vocabulary -->
<div2 id="content-attribute-vocabulary">
<head>Content Attribute Vocabulary</head>
<p>This section defines the following common attributes used with many or all element types
@@ -3768,8 +4563,9 @@
by <bibref ref="xsl11"/>, § 7.17.3, 7.16.7, 7.16.12, and 7.16.8, respectively.</p>
</note>
</div3>
-</div2>
-</div1>
+</div2> <!-- content-attribute-vocabulary -->
+</div1> <!-- content -->
+
<div1 id="styling">
<head>Styling</head>
<p>This section specifies the <emph>styling</emph> matter of the core
@@ -3870,7 +4666,8 @@
not in any other context.</p>
</note>
</div3>
-</div2>
+</div2> <!-- styling-element-vocabulary -->
+
<div2 id="styling-attribute-vocabulary">
<head>Styling Attribute Vocabulary</head>
<p>This section defines the <specref ref="style-attribute-style"/> attribute used
@@ -6783,7 +7580,8 @@
§ 7.30.18.</p>
</note>
</div3>
-</div2>
+</div2> <!-- styling-attribute-vocabulary -->
+
<div2 id="styling-style-value-expressions">
<head>Style Value Expressions</head>
<p>Style property values include the use of the following expressions:</p>
@@ -7306,7 +8104,8 @@
in order to prevent section renumbering.</p>
</note>
</div3>
-</div2>
+</div2> <!-- styling-style-value-expressions -->
+
<div2 id="semantics-style-resolution">
<head>Style Resolution</head>
<p>This section defines the semantics of style resolution in terms of
@@ -7933,8 +8732,9 @@
</olist>
</div4>
</div3>
-</div2>
-</div1>
+</div2> <!-- semantics-style-resolution -->
+</div1> <!-- styling -->
+
<div1 id="layout">
<head>Layout</head>
<p>This section specifies the <emph>layout</emph> matter of the core
@@ -8092,7 +8892,8 @@
independently from the semantic roles of any content targeted to
(associated with) the region.</p>
</div3>
-</div2>
+</div2> <!-- layout-element-vocabulary -->
+
<div2 id="layout-attribute-vocabulary">
<head>Layout Attribute Vocabulary</head>
<p>This section defines the <specref ref="layout-attribute-region"/> attribute used with <loc href="#terms-content-element">content elements</loc>.</p>
@@ -8118,7 +8919,8 @@
flow in a region.</p>
</note>
</div3>
-</div2>
+</div2> <!-- layout-attribute-vocabulary -->
+
<div2 id="semantics-region-layout">
<head>Region Layout and Presentation</head>
<p>This section defines the semantics of region layout and
@@ -8561,7 +9363,8 @@
</tbody>
</table>
</div3>
-</div2>
+</div2> <!-- semantics-region-layout -->
+
<div2 id="semantics-line-layout">
<head>Line Layout</head>
<p>If a profile that applies to a <loc href="#terms-document-instance">document instance</loc>
@@ -8572,8 +9375,9 @@
href="http://www.unicode.org/reports/tr14/#Algorithm">Line
Breaking Algorithm</loc> <bibref ref="uax14"/> apply when performing
line layout on the content of the <loc href="#terms-document-instance">document instance</loc>.</p>
-</div2>
-</div1>
+</div2> <!-- semantics-line-layout -->
+</div1> <!-- layout -->
+
<div1 id="timing">
<head>Timing</head>
<p>This section specifies the <emph>timing</emph> matter of the core
@@ -8585,7 +9389,8 @@
<head>Timing Element Vocabulary</head>
<p>No timing related element vocabulary is defined for use in the core
vocabulary catalog.</p>
-</div2>
+</div2> <!-- timing-element-vocabulary -->
+
<div2 id="timing-attribute-vocabulary">
<head>Timing Attribute Vocabulary</head>
<p>This section defines the following basic timing attributes for use with timed elements:</p>
@@ -8708,7 +9513,8 @@
containment are those defined by <bibref ref="smil3"/>, § 5.4.4,
while taking into account any overriding semantics defined by this specification.</p>
</div3>
-</div2>
+</div2> <!-- timing-attribute-vocabulary -->
+
<div2 id="timing-time-value-expressions">
<head>Time Value Expressions</head>
<p>Timing attribute values include the use of the following expressions:</p>
@@ -8800,7 +9606,8 @@
It is considered an error if a <emph>sub-frames</emph> term is specified
when the <code>clock</code> time base applies.</p>
</div3>
-</div2>
+</div2> <!-- timing-time-value-expressions -->
+
<div2 id="timing-time-intervals">
<head>Time Intervals</head>
<p>The semantics of time containment, durations, and intervals defined by
@@ -8848,8 +9655,9 @@
<specref ref="time-expression-semantics-smpte"/> apply.</p>
</item>
</ulist>
-</div2>
-</div1>
+</div2> <!-- timing-time-intervals -->
+</div1> <!-- timing -->
+
<div1 id="animation">
<head>Animation</head>
<p>This section specifies the <emph>animation</emph> matter of the
@@ -9217,12 +10025,12 @@
§19.2.13, which, in turn, is based upon <bibref ref="smil3"/>, §12.</p>
</note>
</div3>
-</div2>
+</div2> <!-- animation-element-vocabulary -->
<div2 id="animation-attribute-vocabulary">
<head>Animation Attribute Vocabulary</head>
<p>No animation related attribute vocabulary is defined for use in the
core vocabulary catalog.</p>
-</div2>
+</div2> <!-- animation-attribute-vocabulary -->
<div2 id="animation-value-expressions">
<head>Animation Value Expressions</head>
<p>Animation attribute values include the use of the following expressions:</p>
@@ -9569,8 +10377,9 @@
<p>The semantics of a <repeatDur> expression are those defined by
<bibref ref="svg11"/>, §19.2.8.</p>
</div3>
-</div2>
-</div1>
+</div2> <!-- animation-value-expressions -->
+</div1> <!-- animation -->
+
<div1 id="metadata">
<head>Metadata</head>
<p>This section specifies the <emph>metadata</emph> matter of the core
@@ -9582,6 +10391,7 @@
specification for standardized use in a <loc href="#terms-document-instance">document instance</loc>, and (2) arbitrary
metadata defined outside of the scope of this specification, whose use and
semantics depend entirely upon an application's use of TTML Content.</p>
+
<div2 id="metadata-element-vocabulary">
<head>Metadata Element Vocabulary</head>
<p>The <specref ref="metadata-vocabulary-metadata"/> element serves as
@@ -9984,7 +10794,8 @@
<p>An example of the <el>ttm:actor</el> element is shown above in
<specref ref="metadata-vocabulary-agent-example-1"/>.</p>
</div3>
-</div2>
+</div2> <!-- metadata-element-vocabulary -->
+
<div2 id="metadata-attribute-vocabulary">
<head>Metadata Attribute Vocabulary</head>
<p>This section specifies the following attributes in the TT Metadata Namespace
@@ -10080,9 +10891,11 @@
in order to promote interoperability and collision avoidance.</p>
</note>
</div3>
-</div2>
-</div1>
+</div2> <!-- metadata-attribute-vocabulary -->
+</div1> <!-- metadata -->
+
</body>
+
<back>
<div1 id="reduced-infoset">
<head>Reduced XML Infoset</head>
@@ -10105,8 +10918,8 @@
<item><p><code>[attributes]</code></p></item>
</ulist>
<p>Child information items <code>[children]</code> are reduced to only
-<loc href="terms-element-information-item">element information items</loc> and
-<loc href="terms-character-information-item">character information items</loc>.</p>
+<loc href="#terms-element-information-item">element information items</loc> and
+<loc href="#terms-character-information-item">character information items</loc>.</p>
</div2>
<div2 id="reduced-infoset-attribute">
<head>Attribute Information Item</head>
@@ -10116,7 +10929,7 @@
<item><p><code>[normalized value]</code></p></item>
</ulist>
<note role="elaboration">
-<p>See also <loc href="terms-attribute-information-item">attribute information item</loc>.</p>
+<p>See also <loc href="#terms-attribute-information-item">attribute information item</loc>.</p>
</note>
</div2>
<div2 id="reduced-infoset-character">
@@ -10127,7 +10940,7 @@
<p>Contiguous character information items are not required to be represented distinctly,
but may be aggregated (chunked) into a sequence of character codes (i.e., a character string).</p>
<note role="elaboration">
-<p>See also <loc href="terms-character-information-item">character information item</loc>.</p>
+<p>See also <loc href="#terms-character-information-item">character information item</loc>.</p>
</note>
</div2>
</div1>