[ttml2] add ttp:profileCombination parameter attribute (issue 206)
authorGlenn Adams <glenn@skynav.com>
Thu, 05 Sep 2013 21:38:20 -0600
changeset 544 bda2b2918b85
parent 543 e61f4a36622a
child 545 7d4951a0e74d
[ttml2] add ttp:profileCombination parameter attribute (issue 206)
ttml2/spec/rnc/schema.zip
ttml2/spec/rnc/ttml2-datatypes.rnc
ttml2/spec/rnc/ttml2-parameter-attribs.rnc
ttml2/spec/rnc/ttml2-parameter-items.rnc
ttml2/spec/ttml2-changes.html
ttml2/spec/ttml2.xml
ttml2/spec/xsd/schema.zip
ttml2/spec/xsd/ttml2-datatypes.xsd
ttml2/spec/xsd/ttml2-parameter-attribs.xsd
ttml2/spec/xsd/ttml2-parameter-items.xsd
Binary file ttml2/spec/rnc/schema.zip has changed
--- a/ttml2/spec/rnc/ttml2-datatypes.rnc	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc	Thu Sep 05 21:38:20 2013 -0600
@@ -178,10 +178,15 @@
 TTAF.Profile.datatype =
   TTAF.URI.datatype
 
+TTAF.ProfileCombination.datatype =
+ "leastRestrictive" |
+ "mostRestrictive  " |
+ "replace"
+
 TTAF.ProfileCombine.datatype =
+ "intersection" |
  "replace" |
- "union  " |
- "intersection"
+ "union  "
 
 TTAF.QualifiedName.datatype =
   xsd:QName
--- a/ttml2/spec/rnc/ttml2-parameter-attribs.rnc	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/rnc/ttml2-parameter-attribs.rnc	Thu Sep 05 21:38:20 2013 -0600
@@ -18,10 +18,12 @@
   = attribute ttp:frameRateMultiplier { TTAF.FrameRateMultiplier.datatype }?
 TTAF.markerMode.attrib
   = attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
+TTAF.pixelAspectRatio.attrib
+  = attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
 TTAF.profile.attrib
   = attribute ttp:profile { TTAF.Profile.datatype }?
-TTAF.pixelAspectRatio.attrib
-  = attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
+TTAF.profileCombination.attrib
+  = attribute ttp:profileCombination { TTAF.ProfileCombination.datatype }?
 TTAF.subFrameRate.attrib
   = attribute ttp:subFrameRate { TTAF.SubFrameRate.datatype }?
 TTAF.tickRate.attrib
@@ -40,6 +42,7 @@
   TTAF.markerMode.attrib,
   TTAF.pixelAspectRatio.attrib,
   TTAF.profile.attrib,
+  TTAF.profileCombination.attrib,
   TTAF.subFrameRate.attrib,
   TTAF.tickRate.attrib,
   TTAF.timeBase.attrib
--- a/ttml2/spec/rnc/ttml2-parameter-items.rnc	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/rnc/ttml2-parameter-items.rnc	Thu Sep 05 21:38:20 2013 -0600
@@ -13,6 +13,7 @@
 
 TTAF.parameters.profile.attlist &=
   TTAF.id.attrib,
+  TTAF.profileCombination.attrib,
   attribute combine { TTAF.ProfileCombine.datatype }?,
   attribute designator { TTAF.Profile.datatype }?,
   attribute use { TTAF.Profile.datatype }?
--- a/ttml2/spec/ttml2-changes.html	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/ttml2-changes.html	Thu Sep 05 21:38:20 2013 -0600
@@ -54,6 +54,8 @@
 * In 6.1.5, add 'prohibited' value to 'value' attribute of ttp:extension element,
   including normative processing semantics.
 
+* In 6.2, add 'ttp:profileCombination parameter attribute.
+
 * In 6.2, add 'ttp:version' parameter attribute.
 
 * In 7.1.2, add new 'animation' container element as optional child of 'head'
--- a/ttml2/spec/ttml2.xml	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/ttml2.xml	Thu Sep 05 21:38:20 2013 -0600
@@ -1362,6 +1362,11 @@
 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>
+<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>
+</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
@@ -1723,6 +1728,7 @@
 <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-subFrameRate">ttp:subFrameRate</loc>,
 <loc href="#parameter-attribute-tickRate">ttp:tickRate</loc>,
 <loc href="#parameter-attribute-timeBase">ttp:timeBase</loc>,
@@ -1943,6 +1949,11 @@
 profile 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>
 <olist>
@@ -2790,6 +2801,43 @@
 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 specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-profileCombination-syntax" role="syntax">
+<caption>Syntax Representation &ndash; ttp:profileCombination</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:profileCombination
+  : "leastRestrictive"
+  | "mostRestrictive"
+  | "replace"
+</eg>
+</td>
+</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>
+</div3>
 <div3 id="parameter-attribute-subFrameRate">
 <head>ttp:subFrameRate</head>
 <p>The <att>ttp:subFrameRate</att> attribute is used to specify the sub-frame rate of a related
Binary file ttml2/spec/xsd/schema.zip has changed
--- a/ttml2/spec/xsd/ttml2-datatypes.xsd	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/xsd/ttml2-datatypes.xsd	Thu Sep 05 21:38:20 2013 -0600
@@ -351,11 +351,18 @@
       </xs:simpleType>
     </xs:restriction>
   </xs:simpleType>
+  <xs:simpleType name="profileCombination">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="mostRestrictive"/>
+      <xs:enumeration value="leastRestrictive"/>
+      <xs:enumeration value="replace"/>
+    </xs:restriction>
+  </xs:simpleType>
   <xs:simpleType name="profileCombine">
     <xs:restriction base="xs:token">
+      <xs:enumeration value="intersection"/>
       <xs:enumeration value="replace"/>
       <xs:enumeration value="union"/>
-      <xs:enumeration value="intersection"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="roleItem">
--- a/ttml2/spec/xsd/ttml2-parameter-attribs.xsd	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/xsd/ttml2-parameter-attribs.xsd	Thu Sep 05 21:38:20 2013 -0600
@@ -11,6 +11,7 @@
   <xs:attribute name="frameRateMultiplier" type="ttd:frameRateMultiplier"/>
   <xs:attribute name="markerMode" type="ttd:markerMode"/>
   <xs:attribute name="profile" type="ttd:profile"/>
+  <xs:attribute name="profileCombination" type="ttd:profileCombination"/>
   <xs:attribute name="pixelAspectRatio" type="ttd:pixelAspectRatio"/>
   <xs:attribute name="subFrameRate" type="ttd:subFrameRate"/>
   <xs:attribute name="tickRate" type="ttd:tickRate"/>
@@ -23,6 +24,7 @@
     <xs:attribute ref="ttp:frameRateMultiplier"/>
     <xs:attribute ref="ttp:markerMode"/>
     <xs:attribute ref="ttp:profile"/>
+    <xs:attribute ref="ttp:profileCombination"/>
     <xs:attribute ref="ttp:pixelAspectRatio"/>
     <xs:attribute ref="ttp:subFrameRate"/>
     <xs:attribute ref="ttp:tickRate"/>
--- a/ttml2/spec/xsd/ttml2-parameter-items.xsd	Thu Sep 05 20:35:19 2013 -0600
+++ b/ttml2/spec/xsd/ttml2-parameter-items.xsd	Thu Sep 05 21:38:20 2013 -0600
@@ -12,6 +12,7 @@
   <xs:include schemaLocation="ttml2-parameter-attribs.xsd"/>
   <xs:attributeGroup name="profile.attlist">
     <xs:attributeGroup ref="tt:Core.ID.attrib.class"/>
+    <xs:attribute ref="ttp:profileCombination"/>
     <xs:attribute name="combine" type="ttd:profileCombine"/>
     <xs:attribute name="designator" type="ttd:profile"/>
     <xs:attribute name="use" type="ttd:profile"/>