[ttml2] populate section 9.3.2 on inline region semantics; update schemas for inline region support
authorGlenn Adams <glenn@skynav.com>
Sat, 21 Jun 2014 17:40:10 -0600
changeset 640 545ce48ed91b
parent 633 dd04cf802e85
child 641 1afe22c3a70b
[ttml2] populate section 9.3.2 on inline region semantics; update schemas for inline region support
ttml2/spec/rnc/schema.zip
ttml2/spec/rnc/ttml2-content.rnc
ttml2/spec/rnc/ttml2-layout.rnc
ttml2/spec/ttml2-changes.html
ttml2/spec/ttml2.xml
ttml2/spec/xsd/schema.zip
ttml2/spec/xsd/ttml2-bindings.xjb
ttml2/spec/xsd/ttml2-content.xsd
ttml2/spec/xsd/ttml2-layout.xsd
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>*
 &lt;/div&gt;
 </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>*
 &lt;/p&gt;
 </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'&nbsp;</emph>,
+initialized as follows:</p>
+<ulist>
+<item>
+<p>set the <code>[children]</code> information item property of <emph>R'&nbsp;</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'&nbsp;</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'&nbsp;</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'&nbsp;</emph>;</p>
+</item>
+<item>
+<p>if present, remove the following attributes from the <code>[attributes]</code> information item property of <emph>R'&nbsp;</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'&nbsp;</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'&nbsp;</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'&nbsp;</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 &ndash; Implied Inline Region Specification</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+&lt;tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"&gt;
+  &lt;head/&gt;
+  &lt;body&gt;
+    &lt;div <phrase role="strong">tts:extent="540px 100px" tts:origin="50px 339px"</phrase>&gt;
+      &lt;p&gt;Some Content&lt;/p&gt;
+    &lt;div/&gt;
+  &lt;body/&gt;
+&lt;/tt&gt;
+</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 &ndash; Generated Inline Region</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+&lt;tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"&gt;
+  &lt;head/&gt;
+  &lt;body&gt;
+    &lt;div&gt;
+      <phrase role="strong">&lt;region tts:extent="540px 100px" tts:origin="50px 339px"/&gt;</phrase>
+      &lt;p&gt;Some Content&lt;/p&gt;
+    &lt;div/&gt;
+  &lt;body/&gt;
+&lt;/tt&gt;
+</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 &ndash; Explicit or Generated Inline Region Specification</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+&lt;tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"&gt;
+  &lt;head/&gt;
+  &lt;body&gt;
+    &lt;div begin="5s" dur="10s"&gt;
+      <phrase role="strong">&lt;region tts:extent="540px 100px" tts:origin="50px 339px"/&gt;</phrase>
+      &lt;p&gt;Some Content&lt;/p&gt;
+    &lt;div/&gt;
+  &lt;body/&gt;
+&lt;/tt&gt;
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+
+<p></p>
+<table id="semantics-generated-out-of-line-region-example-2-explicit" role="example">
+<caption>Example &ndash; Generated Out-of-line Region</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+&lt;tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"&gt;
+  &lt;head&gt;
+    <phrase role="strong">&lt;layout&gt;
+      &lt;region xml:id="region3451" begin="5s" dur="10s" tts:extent="540px 100px" tts:origin="50px 339px"/&gt;
+    &lt;/layout&gt;</phrase>
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;div begin="5s" dur="10s" <phrase role="strong">region="region3451"</phrase>&gt;
+      &lt;p&gt;Some Content&lt;/p&gt;
+    &lt;div/&gt;
+  &lt;body/&gt;
+&lt;/tt&gt;
+</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>&thinsp;, 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>