[ttml2] populate section 9.3.2 on inline region semantics; update schemas for inline region support
Binary file ttml2/spec/rnc/schema.zip has changed
--- a/ttml2/spec/rnc/ttml2-content.rnc Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/rnc/ttml2-content.rnc Sat Jun 21 17:40:10 2014 -0600
@@ -40,6 +40,7 @@
TTAF.div.content =
(TTAF.Metadata.class*,
TTAF.Animation.class*,
+ TTAF.Layout.class?,
(TTAF.Block.class | TTAF.div.content.extra)*)
# p - paragraph
@@ -60,6 +61,7 @@
TTAF.p.content =
(TTAF.Metadata.class*,
TTAF.Animation.class*,
+ TTAF.Layout.class?,
(TTAF.Inline.class |
TTAF.p.content.extra)*)
--- a/ttml2/spec/rnc/ttml2-layout.rnc Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/rnc/ttml2-layout.rnc Sat Jun 21 17:40:10 2014 -0600
@@ -47,6 +47,11 @@
TTAF.styling.style*,
TTAF.layout.region.content.extra*)
+TTAF.Layout.extra = empty
+TTAF.Layout.class |=
+ TTAF.layout.region |
+ TTAF.Layout.extra
+
# .......................................................................
# .......................................................................
# .......................................................................
--- a/ttml2/spec/ttml2-changes.html Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/ttml2-changes.html Sat Jun 21 17:40:10 2014 -0600
@@ -85,25 +85,25 @@
ttp:extension element in order to express superset/subset relations between an
extension and another feature or extension.
-* In 6.2, add 'ttp:contentProfiles parameter attribute.
+* In 6.2, add 'ttp:contentProfiles' parameter attribute.
-* In 6.2, add 'ttp:contentProfileCombination parameter attribute.
+* In 6.2, add 'ttp:contentProfileCombination' parameter attribute.
* In 6.2, add 'ttp:inferProcessorProfileMethod' parameter attribute.
* In 6.2, add 'ttp:inferProcessorProfileSource' parameter attribute.
-* In 6.2, add 'ttp:permitFeatureNarrowing parameter attribute.
+* In 6.2, add 'ttp:permitFeatureNarrowing' parameter attribute.
-* In 6.2, add 'ttp:permitFeatureWidening parameter attribute.
+* In 6.2, add 'ttp:permitFeatureWidening' parameter attribute.
-* In 6.2, add 'ttp:processorProfiles parameter attribute.
+* In 6.2, add 'ttp:processorProfiles' parameter attribute.
-* In 6.2, add 'ttp:processorProfileCombination parameter attribute.
+* In 6.2, add 'ttp:processorProfileCombination' parameter attribute.
* In 6.2, add 'ttp:version' parameter attribute.
-* In 6.2.7, deprecate 'ttp:markerMode parameter attribute, requiring it be
+* In 6.2.7, deprecate 'ttp:markerMode' parameter attribute, requiring it be
ignored (and treated as if 'discontinuous' were specified) unless either
#markerMode or #markerMode-discontinuous feature is required by the effective
processor profile.
@@ -114,21 +114,27 @@
* In 7.1.2, add new 'animation' container element as optional child of 'head'
element.
-* In 7.1.4, specify semantics of using tts:extent and/or tts:origin with 'div'
+* In 7.1.4, extend content model of 'div' to permit zero or one 'region' element
+ child (in the Layout.class) prior to any content element.
+
+* In 7.1.4, specify semantics of using 'tts:extent' and/or 'tts:origin' with 'div'
element to imply an anonymous inline region.
-* In 7.1.5, specify semantics of using tts:extent and/or tts:origin with p
+* In 7.1.5, extend content model of 'p' to permit zero or one 'region' element
+ child (in the Layout.class) prior to any content element.
+
+* In 7.1.5, specify semantics of using 'tts:extent' and/or 'tts:origin' with 'p'
element to imply an anonymous inline region.
-* In 7.1.7, add region attribute to 'br' element.
+* In 7.1.7, add 'region' attribute to 'br' element.
* In 7.1.7, add timing attributes to 'br' element.
* In 8.1.2, add Metadata.class children to 'style' element.
-* In 8.2, add tts:border styling attribute.
+* In 8.2, add 'tts:border' styling attribute.
-* In 8.2, add tts:textOrientation styling attribute.
+* In 8.2, add 'tts:textOrientation' styling attribute.
* In 8.2.1, add 'set' element to enumeration of element types to which 'style'
attribute applies.
@@ -172,6 +178,10 @@
* In 8.4.4, add semantics for determining specified style set and computed
style set for 'set' element.
+* In 9.3.1, qualify default region in terms of out-of-line region(s).
+
+* In 9.3.2, define inline region processing semantics.
+
* In 11, add new sub-section (11.3) defining animation specific value
expressions.
@@ -215,7 +225,7 @@
<span class="strong">Editorial Changes</span>
* In 2.2, add definitions: "anonymous profile", "baseline profile",
- "content profile", "designated profile", "enclosing document
+ "content profile", "default profile", "designated profile", "enclosing document
instance", "extension specification", "feature specification",
"fragment identifier", "implied inline region", "inline animation",
"inline region", "nested profile", "nesting profile", "non-nesting profile",
@@ -223,6 +233,9 @@
"profile designator", "profile fragment identifier", "profile specification",
"top-level profile", "undesignated profile".
+* In 2.2, refine definition of "out-of-line region" to better account for
+ default region implication.
+
* In 2.3, add convention for deprecated syntactic features (using distinct
background color).
@@ -241,7 +254,8 @@
* In 9.2.1, add 'br' element to list of elements on which region attribute may
be specified.
-* In 9.3, add "Inline Regions" sub-section.
+* In 9.3, insert "Inline Regions" as sub-section 9.3.2, renumbering following
+ sub-sections.
* In Appendix G, add (normative) reference to RFC2396 (URI).
--- a/ttml2/spec/ttml2.xml Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/ttml2.xml Sat Jun 21 17:40:10 2014 -0600
@@ -608,6 +608,15 @@
performing presentation processing.</p>
</def>
</gitem>
+<gitem id="terms-default-region">
+<label>[default region]</label>
+<def>
+<p>A default <loc href="#terms-out-of-line-region">out-of-line region</loc> that is implied in the absence of
+an explicitly specified out-of-line <loc href="#layout-vocabulary-region"><el>region</el></loc> element, i.e.,
+when no <loc href="#layout-vocabulary-region"><el>region</el></loc> element is specified as a child of
+a <loc href="#layout-vocabulary-layout"><el>layout</el></loc> element.</p>
+</def>
+</gitem>
<gitem id="terms-designated-profile">
<label>[designated profile]</label>
<def>
@@ -722,9 +731,10 @@
<gitem id="terms-implied-inline-region">
<label>[implied inline region]</label>
<def>
-<p>An anonymous (unidentified) <loc href="#terms-inline-region">inline region</loc> that is implied in the context of a block level content element
+<p>An anonymous (unidentified) <loc href="#terms-inline-region">inline region</loc> that is implied in the context of a block level
+<loc href="#terms-content-element">content element</loc>
due the presence of a <loc href="#style-attribute-extent"><att>tts:extent</att></loc> or <loc href="#style-attribute-origin"><att>tts:origin</att></loc>
-style attribute on the content element.</p>
+style attribute on the <loc href="#terms-content-element">content element</loc>.</p>
</def>
</gitem>
<gitem id="terms-inline-animation">
@@ -741,8 +751,11 @@
<gitem id="terms-inline-region">
<label>[inline region]</label>
<def>
-<p>A <loc href="#layout-vocabulary-region"><el>region</el></loc> element that is defined inline as an immediate child of
-a <loc href="#terms-content-element">content element</loc> to be selected into (targetted to) the region.
+<p>A <loc href="#terms-region">region</loc> that is defined in an inline manner with respect to some
+<loc href="#terms-content-element">content element</loc> to be selected into (targetted to) the region.
+An inline region is specified either explicitly by a <loc href="#layout-vocabulary-region"><el>region</el></loc> element child of
+a <loc href="#terms-content-element">content element</loc> or implicitly by specifying a <loc href="#style-attribute-extent">tts:extent</loc>
+or <loc href="#style-attribute-origin">tts:origin</loc> style attribute on a <loc href="#terms-content-element">content element</loc>.
There is a one-to-one relation between an inline <loc href="#layout-vocabulary-region"><el>region</el></loc> element and its
parent <loc href="#terms-content-element">content element</loc>. An inline region is assigned its parent element's time interval as its active
time interval. No <att>region</att> attribute makes reference to an inline region.</p>
@@ -786,13 +799,16 @@
<gitem id="terms-out-of-line-region">
<label>[out-of-line region]</label>
<def>
-<p>A <loc href="#layout-vocabulary-region"><el>region</el></loc> element that is defined out-of-line from
-the <loc href="#terms-content-element">content element(s)</loc> to be selected into (targetted to) the region. An out-of-line region appears
-as a child of a <loc href="#layout-vocabulary-layout"><el>layout</el></loc> element in the header
+<p>A <loc href="#terms-region">region</loc> that is defined in an out-of-line manner from
+the <loc href="#terms-content-element">content element(s)</loc> to be selected into (targetted to) the region. An out-of-line region is
+specified using a <loc href="#layout-vocabulary-region"><el>region</el></loc> element
+child of a <loc href="#layout-vocabulary-layout"><el>layout</el></loc> element in the header
(<loc href="#document-structure-vocabulary-head"><el>head</el></loc> element)
of a <loc href="#terms-document-instance">document instance</loc>, and specifies an <att>xml:id</att> attribute
in order to allow <loc href="#terms-content-element">content elements</loc> to be associated with the region by means of a
-<att>region</att> attribute. There is a one-to-many relationship between an out-of-line region
+<att>region</att> attribute. A <loc href="#terms-default-region">default out-of-line region</loc> is implied if no
+<loc href="#terms-out-of-line-region">out-of-line region</loc> is specified explicitly.
+There is a one-to-many relationship between an out-of-line region
and the <loc href="#terms-content-element">content element(s)</loc> to be selected into (targetted to) the region.</p>
</def>
</gitem>
@@ -1053,8 +1069,13 @@
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 that is <phrase role="deprecated">deprecated</phrase> may but should not appear in a TTML document instance,
+and a validating processor should report a warning if it does appear.
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
+the <phrase role="obsoleted">micro</phrase> value of the <code>size</code> attribute shown above).
+An information item that is <phrase role="obsoleted">obsoleted</phrase> must not appear in a TTML document instance,
+and a validating processor should report an error if it does appear.
+These designations of an 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>
@@ -1151,7 +1172,7 @@
<ednote>
<name>Validation Processing</name>
<date>2014-05-21</date>
-<edtext>Add requirement to invoke validation processing procedure.</edtext>
+<edtext>Add requirement to invoke validation processing procedure. Add and use definition of 'validating processor'.</edtext>
</ednote>
<p>A TTML <loc href="#terms-content-processor">content processor</loc> conforms to this specification if the following
@@ -4422,8 +4443,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
-followed by zero or more
-elements in the <code>Layout.class</code> element group,
+followed by zero or one
+element in the <code>Layout.class</code> element group,
followed by
zero or more
<el>div</el> or
@@ -4454,7 +4475,7 @@
<emph>Content:</emph> <loc
href="#element-vocab-group-table">Metadata.class</loc>*, <loc
href="#element-vocab-group-table">Animation.class</loc>*, <loc
- href="#element-vocab-group-table">Layout.class</loc>*, <loc
+ href="#element-vocab-group-table">Layout.class</loc>?, <loc
href="#element-vocab-group-table">Block.class</loc>*
</div>
</eg>
@@ -4490,8 +4511,8 @@
elements in the <code>Metadata.class</code> element group,
followed by zero or more
elements in the <code>Animation.class</code> element group,
-followed by zero or more
-elements in the <code>Layout.class</code> element group,
+followed by zero or one
+element in the <code>Layout.class</code> element group,
followed by
zero or more intermixed
<code>span</code> elements,
@@ -4523,7 +4544,7 @@
<emph>Content:</emph> <loc
href="#element-vocab-group-table">Metadata.class</loc>*, <loc
href="#element-vocab-group-table">Animation.class</loc>*, <loc
- href="#element-vocab-group-table">Layout.class</loc>*, <loc
+ href="#element-vocab-group-table">Layout.class</loc>?, <loc
href="#element-vocab-group-table">Inline.class</loc>*
</p>
</eg>
@@ -5663,6 +5684,10 @@
<p>In this context, the phrase <emph>closest supported value</emph> means the value for which the Euclidean distance between
the computed extent and the supported extent is minimized. If there are multiple closest supported values equally distant from
the computed value, then the value most distant from [0,0], i.e., of greatest extent, is used.</p>
+<p>Unlike other style attributes, the rule for resolving <emph>closest supported value</emph> for the <att>tts:extent</att> attribute
+makes use of the nearest larger rather than nearest smaller supported distance. The rationale for this difference in treatment is
+that use of a larger extent ensures that the affected content will be contained in the region area without causing region overflow,
+while use of a smaller extent makes region overflow more likely.</p>
</note>
<p>The <att>tts:extent</att> style is illustrated by the following example.</p>
<table id="style-attribute-extent-example-1" role="example">
@@ -9132,12 +9157,12 @@
</p>
<div3 id="semantics-default-region">
<head>Default Region</head>
-<p>If a <loc href="#terms-document-instance">document instance</loc> does not specify a
-<loc href="#layout-vocabulary-region"><el>region</el></loc> element,
+<p>If a <loc href="#terms-document-instance">document instance</loc> does not specify an
+<loc href="#terms-out-of-line-region">out-of-line region</loc>,
then a <emph>default region</emph> is implied with the following characteristics:</p>
<ulist>
<item>
-<p>the identity of the default region is considered to be anonymous;</p>
+<p>the identity of the default region is considered to be an anonymous <loc href="#terms-out-of-line-region">out-of-line region</loc>;</p>
</item>
<item>
<p>the extent of the default region is the same as the extent of the <loc href="#terms-root-container-region">root container region</loc>;</p>
@@ -9146,10 +9171,9 @@
<p>the temporal interval of the default region is the same as the interval defined by the <loc href="#terms-root-temporal-extent">root temporal extent</loc>;</p>
</item>
</ulist>
-<p>Furthermore, if no <loc
-href="#layout-vocabulary-region"><el>region</el></loc> element is
-specified, then the <loc
-href="#layout-attribute-region"><att>region</att></loc> attribute must
+<p>Furthermore, if no
+<loc href="#terms-out-of-line-region">out-of-line region</loc> is specified, then the
+<loc href="#layout-attribute-region"><att>region</att></loc> attribute must
not be specified on any <loc href="#terms-content-element">content element</loc> in the <loc href="#terms-document-instance">document instance</loc>.</p>
<p>If a default region is implied for a given <loc href="#terms-document-instance">document instance</loc>, then
the <loc href="#document-structure-vocabulary-body"><el>body</el></loc> element
@@ -9192,14 +9216,281 @@
</div3>
<div3 id="semantics-inline-regions">
<head>Inline Regions</head>
-<p>&tbd;</p>
+<p>An <loc href="#terms-inline-region">inline region</loc> is a syntactic mechanism for specifying a
+<loc href="#terms-region">region</loc> in a way that minimizes the syntactic distance between a region
+specification and the content that references that region. Semantically, each
+<loc href="#terms-inline-region">inline region</loc> is equivalent to specifying a unique
+<loc href="#terms-out-of-line-region">out-of-line region</loc> referenced implicitly only by the
+<loc href="#terms-content-element">content element</loc> in whose context the
+<loc href="#terms-inline-region">inline region</loc> is specified (or implied).</p>
+<p>An <loc href="#terms-inline-region">inline region</loc> is declared in one of two ways:
+(1) by specifying a <loc href="#style-attribute-extent"><att>tts:extent</att></loc> or
+<loc href="#style-attribute-origin"><att>tts:origin</att></loc> style attribute on
+a <loc href="#terms-content-element">content element</loc>
+in the <loc href="#element-vocab-group-table">Block.class</loc> element group, or
+(2) by specifying an explicit <loc href="#layout-vocabulary-region"><el>region</el></loc> element
+child of a <loc href="#terms-content-element">content element</loc>
+in the <loc href="#element-vocab-group-table">Block.class</loc> element group. The
+former is referred to as an <emph>implied inline region specification</emph>,
+the latter as an <emph>explicit inline region specification</emph>; furthermore, the former is considered
+to be a syntactic shorthand for the latter, and is processed by converting it into the latter as
+described below.</p>
+
+<p>Inline regions are processed in accordance with the procedure
+<phrase role="strong"><loc href="#procedure-process-inline-regions">[process inline regions]</loc></phrase>, which
+entails first generating implied inline regions, and then generating out-of-line regions that correspond with implied
+or explicit inline regions. This latter procedure additionally binds content elements associated with inline regions
+to the corresponding generated out-of-line regions.</p>
+
+<note role="elaboration">
+<p>A <loc href="#terms-content-element">content element</loc> can only be associated with a single
+<loc href="#terms-region">region</loc>. Consequently, if a <loc href="#terms-content-element">content element</loc>
+specifies a <loc href="#layout-attribute-region"><att>region</att></loc> attribute, then any <emph>implied inline region specification</emph>
+or <emph>explicit inline region specification</emph> is ignored. If the <loc href="#terms-content-element">content element</loc> does not specify a
+<loc href="#layout-attribute-region"><att>region</att></loc> attribute, but it includes
+both an <emph>implied inline region specification</emph> and an <emph>explicit inline region specification</emph>,
+then the former is ignored in favor of the latter.</p>
+</note>
+
+<glist>
+<gitem id="procedure-process-inline-regions">
+<label>[process inline regions]</label>
+<def>
+<olist>
+<item>
+<p>perform procedure <phrase role="strong"><loc href="#procedure-generate-inline-regions">[generate inline regions]</loc></phrase>;</p>
+</item>
+<item>
+<p>perform procedure <phrase role="strong"><loc href="procedure-generate-out-of-line-regions">[generate out-of-line regions]</loc></phrase>;</p>
+</item>
+</olist>
+</def>
+</gitem>
+<gitem id="procedure-generate-inline-regions">
+<label>[generate inline regions]</label>
+<def>
+<p>For each <loc href="#terms-content-element">content element</loc> <emph>B</emph>
+in the <loc href="#element-vocab-group-table">Block.class</loc> element group,
+perform the following ordered steps:</p>
+<olist>
+<item>
+<p>if the <code>[attributes]</code> information item property of <emph>B</emph> contains
+neither <loc href="#style-attribute-extent"><att>tts:extent</att></loc> nor
+<loc href="#style-attribute-origin"><att>tts:origin</att></loc> style attribute, then exit this procedure;</p>
+</item>
+<item>
+<p>if the <code>[attributes]</code> information item property of <emph>B</emph> contains a
+<loc href="#layout-attribute-region"><att>region</att></loc> attribute, then exit this procedure</p>
+</item>
+<item>
+<p>if the <code>[children]</code> information item property of <emph>B</emph> contains a
+<loc href="#layout-vocabulary-region"><el>region</el></loc> element, then exit this procedure;</p>
+</item>
+<item>
+<p>create an empty <loc href="#layout-vocabulary-region"><el>region</el></loc> element <emph>R</emph>,
+initialized as follows:</p>
+<ulist>
+<item>
+<p>if the <code>[attributes]</code> information item property of <emph>B</emph> contains a
+<loc href="#style-attribute-extent"><att>tts:extent</att></loc> attribute,
+then copy that attribute to the <code>[attributes]</code> information item property of <emph>R</emph>;
+otherwise, add a <loc href="#style-attribute-extent"><att>tts:extent</att></loc> attribute with value <code>auto</code>
+to the <code>[attributes]</code> information item property of <emph>R</emph>;</p>
+</item>
+<item>
+<p>if the <code>[attributes]</code> information item property of <emph>B</emph> contains a
+<loc href="#style-attribute-origin"><att>tts:origin</att></loc> attribute,
+then copy that attribute to the <code>[attributes]</code> information item property of <emph>R</emph>;
+otherwise, add a <loc href="#style-attribute-origin"><att>tts:origin</att></loc> attribute with value <code>auto</code>
+to the <code>[attributes]</code> information item property of <emph>R</emph>;</p>
+</item>
+</ulist>
+</item>
+<item>
+<p>insert <emph>R</emph> into the <code>[children]</code> information item property of <emph>B</emph>
+such that <emph>R</emph> immediately precedes the first <loc href="#terms-content-element">content element</loc>
+child of <emph>B</emph>, or, if none is present, then <emph>R</emph> is the last child element of <emph>B</emph>;</p>
+</item>
+<item>
+<p>remove the <loc href="#style-attribute-extent"><att>tts:extent</att></loc> and
+<loc href="#style-attribute-origin"><att>tts:origin</att></loc> style attributes, if present, from the
+<code>[attributes]</code> information item property of <emph>B</emph>;</p>
+</item>
+</olist>
+</def>
+</gitem>
+<gitem id="procedure-generate-out-of-line-regions">
+<label>[generate out-of-line regions]</label>
+<def>
+<p>For each <loc href="#terms-content-element">content element</loc> <emph>B</emph>
+in the <loc href="#element-vocab-group-table">Block.class</loc> element group,
+perform the following ordered steps:</p>
+<olist>
+<item>
+<p>if the <code>[attributes]</code> information item property of <emph>B</emph> contains a
+<loc href="#layout-attribute-region"><att>region</att></loc> attribute, then exit this procedure</p>
+</item>
+<item>
+<p>if the <code>[children]</code> information item property of <emph>B</emph> does not contain
+a <loc href="#layout-vocabulary-region"><el>region</el></loc> element <emph>R</emph>, then exit this procedure;</p>
+</item>
+<item><p>create an empty <loc href="#layout-vocabulary-region"><el>region</el></loc> element <emph>R' </emph>,
+initialized as follows:</p>
+<ulist>
+<item>
+<p>set the <code>[children]</code> information item property of <emph>R' </emph> to a deep copy of
+the <code>[children]</code> information item property of <emph>R</emph>;</p>
+</item>
+<item>
+<p>set the <code>[attributes]</code> information item property of <emph>R' </emph> to a deep copy of
+the <code>[attributes]</code> information item property of <emph>R</emph>;</p>
+</item>
+<item>
+<p>if the <code>[attributes]</code> information item property of <emph>R' </emph> does not include
+an <att>xml:id</att> attribute, then add an implied <att>xml:id</att> attribute with a generated value
+<emph>ID</emph> that is unique within the scope of the TTML <loc href="#terms-document-instance">document instance</loc>;
+otherwise, let <emph>ID</emph> be the value of the <att>xml:id</att> attribute of <emph>R' </emph>;</p>
+</item>
+<item>
+<p>if present, remove the following attributes from the <code>[attributes]</code> information item property of <emph>R' </emph>:
+<att>begin</att>,
+<att>dur</att>, and
+<att>end</att>;</p>
+</item>
+<item>
+<p>add a <att>begin</att> attribute to the <code>[attributes]</code> information item property of <emph>R' </emph> with
+a value equivalent to the computed begin time of <emph>B</emph> within the root temporal extent;</p>
+</item>
+<item>
+<p>add a <att>dur</att> attribute to the <code>[attributes]</code> information item property of <emph>R' </emph> with
+a value equivalent to the computed simple duration of <emph>B</emph>;</p>
+</item>
+</ulist>
+</item>
+<item>
+<p>if the TTML <loc href="#terms-document-instance">document instance</loc> does not have a
+<loc href="#document-structure-vocabulary-head"><el>head</el></loc> element, then insert an empty
+<loc href="#document-structure-vocabulary-head"><el>head</el></loc> element as the first child of
+the <loc href="#document-structure-vocabulary-tt"><el>tt</el></loc> element;</p>
+</item>
+<item>
+<p>if the <loc href="#document-structure-vocabulary-head"><el>head</el></loc> element does not have
+a <loc href="#layout-vocabulary-layout"><el>layout</el></loc> child element, then insert an empty
+<loc href="#layout-vocabulary-layout"><el>layout</el></loc> element immediately after a
+<loc href="#styling-vocabulary-styling"><el>styling</el></loc> element, if present, and immediately before an
+<loc href="#animation-vocabulary-styling"><el>animation</el></loc> element, if present, or as the last child of
+the <loc href="#document-structure-vocabulary-head"><el>head</el></loc> element if neither are present;</p>
+</item>
+<item>
+<p>append <emph>R' </emph> to the <code>[children]</code> information item property of the
+<loc href="#layout-vocabulary-layout"><el>layout</el></loc> element child of the
+<loc href="#document-structure-vocabulary-head"><el>head</el></loc> element;</p>
+</item>
+<item>
+<p>add a <loc href="#layout-attribute-region"><att>region</att></loc> attribute with value <emph>ID</emph> to the <code>[attributes]</code> information
+item property of <emph>B</emph>;</p>
+</item>
+<item>
+<p>remove <emph>R</emph> from the <code>[children]</code> information item property of <emph>B</emph>;</p>
+</item>
+</olist>
+</def>
+</gitem>
+</glist>
+
+<p>The use of an <emph>implied inline region specification</emph> and the resulting generated inline region is shown by the following two example documents.</p>
+
+<table id="semantics-inline-region-input-example-1-implied" role="example">
+<caption>Example – Implied Inline Region Specification</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head/>
+ <body>
+ <div <phrase role="strong">tts:extent="540px 100px" tts:origin="50px 339px"</phrase>>
+ <p>Some Content</p>
+ <div/>
+ <body/>
+</tt>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+
<p></p>
-<ednote>
-<name>Multiple Region Reference Semantics</name>
-<date>2014-03-27</date>
-<edtext>Define semantics related to use combination of inline regions and reference to out-of-line region by same content element.
-See also editorial note <phrase role="strong">Inline Region Association</phrase> below under <phrase role="strong">[associate region]</phrase>.</edtext>
-</ednote>
+<table id="semantics-generated-out-of-line-region-example-1-implied" role="example">
+<caption>Example – Generated Inline Region</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head/>
+ <body>
+ <div>
+ <phrase role="strong"><region tts:extent="540px 100px" tts:origin="50px 339px"/></phrase>
+ <p>Some Content</p>
+ <div/>
+ <body/>
+</tt>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+
+<p>The use of an <emph>explicit inline region specification</emph> or a generated inline region that derives from
+an <emph>implicit inline region specification</emph>
+and the resulting generated out-of-line region is shown by the following two example documents.</p>
+
+<table id="semantics-inline-region-input-example-2-explicit" role="example">
+<caption>Example – Explicit or Generated Inline Region Specification</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head/>
+ <body>
+ <div begin="5s" dur="10s">
+ <phrase role="strong"><region tts:extent="540px 100px" tts:origin="50px 339px"/></phrase>
+ <p>Some Content</p>
+ <div/>
+ <body/>
+</tt>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+
+<p></p>
+<table id="semantics-generated-out-of-line-region-example-2-explicit" role="example">
+<caption>Example – Generated Out-of-line Region</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
+ <head>
+ <phrase role="strong"><layout>
+ <region xml:id="region3451" begin="5s" dur="10s" tts:extent="540px 100px" tts:origin="50px 339px"/>
+ </layout></phrase>
+ </head>
+ <body>
+ <div begin="5s" dur="10s" <phrase role="strong">region="region3451"</phrase>>
+ <p>Some Content</p>
+ <div/>
+ <body/>
+</tt>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
</div3>
<div3 id="semantics-region-layout-step-1">
<head>Intermediate Synchronic Document Construction</head>
@@ -9211,13 +9502,16 @@
to an intermediate
synchronic document form,
<emph>DOC<sub>inter</sub></emph> , according to the
-<phrase role="strong">[construct intermediate document]</phrase> procedure:</p>
+<phrase role="strong"><loc href="#procedure-construct-intermediate-document">[construct intermediate document]</loc></phrase> procedure:</p>
<glist>
-<gitem>
+<gitem id="procedure-construct-intermediate-document">
<label>[construct intermediate document]</label>
<def>
<olist>
<item>
+<p>perform procedure <phrase role="strong"><loc href="#procedure-process-inline-regions">[process inline regions]</loc></phrase>;</p>
+</item>
+<item>
<p>for each temporally active region <emph>R</emph>, replicate the
sub-tree
of <emph>DOC<sub>source</sub></emph>
@@ -9227,7 +9521,7 @@
<p>evaluating this sub-tree in a postorder traversal, prune elements if they
are not a <loc href="#terms-content-element">content element</loc>, if they are temporally inactive, if they are empty,
or if they aren't associated with region <emph>R</emph> according to the
-<phrase role="strong">[associate region]</phrase> procedure;</p>
+<phrase role="strong"><loc href="procedure-associate-region">[associate region]</loc></phrase> procedure;</p>
</item>
<item>
<p>if the pruned sub-tree is non-empty, then reparent it to the <emph>R</emph>
@@ -9250,7 +9544,7 @@
</note>
</def>
</gitem>
-<gitem>
+<gitem id="procedure-associate-region">
<label>[associate region]</label>
<def>
<p></p>
Binary file ttml2/spec/xsd/schema.zip has changed
--- a/ttml2/spec/xsd/ttml2-bindings.xjb Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/xsd/ttml2-bindings.xjb Sat Jun 21 17:40:10 2014 -0600
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<jxb:bindings version="2.1" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <jxb:bindings schemaLocation="ttml2-layout.xsd">
+ <jxb:bindings node="//xs:attributeGroup[@name='RegionBinding.attrib.class']/xs:attribute[@name='region']">
+ <jxb:property name="regionAttribute"/>
+ </jxb:bindings>
+ </jxb:bindings>
<jxb:bindings schemaLocation="ttml2-styling.xsd">
<jxb:bindings node="//xs:attributeGroup[@name='StyleBinding.attrib.class']/xs:attribute[@name='style']">
<jxb:property name="styleAttribute"/>
@@ -17,4 +22,4 @@
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
-</jxb:bindings>
\ No newline at end of file
+</jxb:bindings>
--- a/ttml2/spec/xsd/ttml2-content.xsd Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/xsd/ttml2-content.xsd Sat Jun 21 17:40:10 2014 -0600
@@ -59,6 +59,7 @@
<xs:sequence>
<xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Layout.class" minOccurs="0" maxOccurs="1"/>
<xs:group ref="tt:Block.class" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="tt:div.attlist"/>
@@ -67,6 +68,7 @@
<xs:sequence>
<xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Layout.class" minOccurs="0" maxOccurs="1"/>
<xs:group ref="tt:Inline.class" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="tt:p.attlist"/>
--- a/ttml2/spec/xsd/ttml2-layout.xsd Mon May 26 09:07:11 2014 +0800
+++ b/ttml2/spec/xsd/ttml2-layout.xsd Sat Jun 21 17:40:10 2014 -0600
@@ -39,4 +39,9 @@
</xs:complexType>
<xs:element name="layout" type="tt:layout.eltype"/>
<xs:element name="region" type="tt:region.eltype"/>
+ <xs:group name="Layout.class">
+ <xs:choice>
+ <xs:element ref="tt:region"/>
+ </xs:choice>
+ </xs:group>
</xs:schema>