[ttml2] add xlink:* attributes to span and image elements (issue 303)
authorGlenn Adams <glenn@skynav.com>
Thu, 08 Jan 2015 20:00:08 -0700
changeset 825 df7ee5d3203c
parent 824 192f2e268144
child 826 39e0d9339b44
[ttml2] add xlink:* attributes to span and image elements (issue 303)
ttml2/spec/rnc/ttml2-content.rnc
ttml2/spec/rnc/ttml2-core-attribs.rnc
ttml2/spec/rnc/ttml2-datatypes.rnc
ttml2/spec/rnc/ttml2-embedded.rnc
ttml2/spec/ttml2-changes.html
ttml2/spec/ttml2.xml
ttml2/spec/xsd/ttml2-bindings.xjb
ttml2/spec/xsd/ttml2-content.xsd
ttml2/spec/xsd/xlink.xsd
--- a/ttml2/spec/rnc/ttml2-content.rnc	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-content.rnc	Thu Jan 08 20:00:08 2015 -0700
@@ -81,7 +81,8 @@
   TTAF.AnimationBinding.attrib.class,
   TTAF.RegionBinding.attrib.class,
   TTAF.Styled.attrib.class,
-  TTAF.TimedContainer.attrib.class
+  TTAF.TimedContainer.attrib.class,
+  TTAF.XLink.attrib.class
 
 TTAF.span.content.extra = empty
 TTAF.span.content =
--- a/ttml2/spec/rnc/ttml2-core-attribs.rnc	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-core-attribs.rnc	Thu Jan 08 20:00:08 2015 -0700
@@ -2,6 +2,8 @@
 # TTML2 Core Attributes Module ..........................................
 # .......................................................................
 
+namespace xlink = "http://www.w3.org/1999/xlink"
+
 TTAF.condition.attrib
   = attribute condition { string }?
 
@@ -17,6 +19,21 @@
 TTAF.space.attrib
   = attribute xml:space { TTAF.XMLSpace.datatype }?
 
+TTAF.xlink.arcrole.attrib
+  = attribute xlink:arcrole { TTAF.XLink.ArcRole.datatype }?
+
+TTAF.xlink.href.attrib
+  = attribute xlink:href { TTAF.XLink.HRef.datatype }?
+
+TTAF.xlink.role.attrib
+  = attribute xlink:role { TTAF.XLink.Role.datatype }?
+
+TTAF.xlink.show.attrib
+  = attribute xlink:show { TTAF.XLink.Show.datatype }?
+
+TTAF.xlink.title.attrib
+  = attribute xlink:title { TTAF.XLink.Title.datatype }?
+
 TTAF.Core.extra.attrib
   = empty
 
@@ -34,6 +51,17 @@
   TTAF.space.attrib,
   TTAF.Core.extra.attrib
 
+TTAF.XLink.extra.attrib
+  = empty
+
+TTAF.XLink.attrib.class &=
+  TTAF.xlink.arcrole.attrib,
+  TTAF.xlink.href.attrib,
+  TTAF.xlink.role.attrib,
+  TTAF.xlink.show.attrib,
+  TTAF.xlink.title.attrib,
+  TTAF.XLink.extra.attrib
+
 # .......................................................................
 # .......................................................................
 # .......................................................................
--- a/ttml2/spec/rnc/ttml2-datatypes.rnc	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc	Thu Jan 08 20:00:08 2015 -0700
@@ -467,6 +467,25 @@
   "rl" |
   "tb"
 
+TTAF.XLink.ArcRole.datatype =
+  string
+
+TTAF.XLink.HRef.datatype =
+  TTAF.URI.datatype
+
+TTAF.XLink.Role.datatype =
+  string
+
+TTAF.XLink.Show.datatype =
+  "new" |
+  "replace" |
+  "embed" |
+  "other" |
+  "none"
+
+TTAF.XLink.Title.datatype =
+  string
+
 TTAF.XMLSpace.datatype =
   "default" |
   "preserve"
--- a/ttml2/spec/rnc/ttml2-embedded.rnc	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-embedded.rnc	Thu Jan 08 20:00:08 2015 -0700
@@ -109,7 +109,8 @@
   TTAF.Core.attrib.class,
   TTAF.Metadata.attrib.class,
   TTAF.Styled.attrib.class,
-  TTAF.Data.attrib.class
+  TTAF.Data.attrib.class,
+  TTAF.XLink.attrib.class
 
 TTAF.image.content.extra = empty
 TTAF.image.content =
--- a/ttml2/spec/ttml2-changes.html	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/ttml2-changes.html	Thu Jan 08 20:00:08 2015 -0700
@@ -215,12 +215,17 @@
 * In 8.1.6, extend content model of 'span' to permit the use of embedded content
   'audio' and 'image' element children.
 
+* In 8.1.6, add use of 'xlink:*' attributes to provide linking semantics.
+
 * In 8.1.7, add 'region' attribute to 'br' element.
 
 * In 8.1.7, add timing attributes to 'br' element.
 
 * In 8.1.7, add 'animate' attribute to 'br' element.
 
+* In 8.2, add 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', and
+  'xlink:title' attributes, applicable to span and image element types.
+
 * Insert new top-level section 9, defining embedded content element
   types: audio, chunk, data, font, image, resources, source.
 
--- a/ttml2/spec/ttml2.xml	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/ttml2.xml	Thu Jan 08 20:00:08 2015 -0700
@@ -1122,7 +1122,7 @@
 the <loc href="#terms-content-element">content element</loc> or <loc href="#layout-vocabulary-region"><el>region</el></loc> element associated with the animation.
 An out-of-line animation appears as a child of an <loc href="#animation-vocabulary-animation"><el>animation</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 <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute
+of a <loc href="#terms-document-instance">document instance</loc>, and specifies an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute
 which value is referenced by an <loc href="#animation-attribute-animate"><att>animate</att></loc> attribute
 on the associated element to be animated. There is a one-to-many relation between
 a referenced out-of-line animation element and referencing <loc href="#terms-content-element">content elements</loc> and
@@ -1136,7 +1136,7 @@
 a <loc href="#terms-content-element">content element</loc> associated with (to be selected into) 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
 (<loc href="#document-structure-vocabulary-head"><el>head</el></loc> element)
-of a <loc href="#terms-document-instance">document instance</loc>, and specifies an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute
+of a <loc href="#terms-document-instance">document instance</loc>, and specifies an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute
 which value is referenced by a <loc href="#layout-attribute-region"><att>region</att></loc> attribute
 on the associated element to be selected into the region. There is a one-to-many relation between
 a referenced out-of-line region element and referencing <loc href="#terms-content-element">content elements</loc>.
@@ -2891,9 +2891,9 @@
 Core Attributes
 </td>
 <td>
-<loc href="#content-attribute-id">xml:id</loc>,
-<loc href="#content-attribute-lang">xml:lang</loc>,
-<loc href="#content-attribute-space">xml:space</loc>
+<loc href="#content-attribute-xml-id">xml:id</loc>,
+<loc href="#content-attribute-xml-lang">xml:lang</loc>,
+<loc href="#content-attribute-xml-space">xml:space</loc>
 </td>
 </tr>
 <tr id="attribute-vocab-group-data">
@@ -3148,7 +3148,7 @@
   designator = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   type = (processor|content) : processor
   use = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, ((<loc href="#profile-vocabulary-features">ttp:features</loc>*, <loc href="#profile-vocabulary-extensions">ttp:extensions</loc>*)|<loc href="#profile-vocabulary-profile">ttp:profile</loc>*)
 &lt;/ttp:profile&gt;
@@ -3280,7 +3280,7 @@
 <eg xml:space="preserve">
 &lt;ttp:features
   xml:base = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc> : <emph>TT Feature Namespace</emph>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#profile-vocabulary-feature">ttp:feature</loc>*
 &lt;/ttp:features&gt;
@@ -3316,7 +3316,7 @@
   extends = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   restricts = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   value = (optional|required|<phrase role="obsoleted">use</phrase>|prohibited) : <emph>see prose below</emph>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/ttp:feature&gt;
@@ -3491,7 +3491,7 @@
 <eg xml:space="preserve">
 &lt;ttp:extensions
   xml:base = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc> : <emph>TT Extension Namespace</emph>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#profile-vocabulary-extension">ttp:extension</loc>*
 &lt;/ttp:extensions&gt;
@@ -3527,7 +3527,7 @@
   extends = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   restricts = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   value = (optional|required|<phrase role="obsoleted">use</phrase>|prohibited) : <emph>see prose below</emph>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/ttp:extension&gt;
@@ -5015,9 +5015,9 @@
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
   <loc href="#style-attribute-extent">tts:extent</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   <loc href="#style-attribute-position">tts:position</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang"><phrase role="reqattr">xml:lang</phrase></loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>) : default
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang"><phrase role="reqattr">xml:lang</phrase></loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>) : default
   {<emph>any attribute in TT Parameter namespace</emph>}
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -5105,9 +5105,9 @@
 <eg xml:space="preserve">
 &lt;head
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#element-vocab-group-profile">Profile.class</loc>*, <loc href="#embedded-content-vocabulary-resources">resources</loc>?, <loc href="#styling-vocabulary-styling">styling</loc>?, <loc href="#layout-vocabulary-layout">layout</loc>?, <loc href="#animation-vocabulary-animation">animation</loc>?
 &lt;/head&gt;
@@ -5150,9 +5150,9 @@
   <loc href="#layout-attribute-region">region</loc> = IDREF
   <loc href="#style-attribute-style">style</loc> = IDREFS
   <loc href="#timing-attribute-timeContainer">timeContainer</loc> = (<emph>par</emph>|<emph>seq</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -5243,9 +5243,9 @@
   <loc href="#layout-attribute-region">region</loc> = IDREF
   <loc href="#style-attribute-style">style</loc> = IDREFS
   <loc href="#timing-attribute-timeContainer">timeContainer</loc> = (<emph>par</emph>|<emph>seq</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -5321,9 +5321,9 @@
   <loc href="#layout-attribute-region">region</loc> = IDREF
   <loc href="#style-attribute-style">style</loc> = IDREFS
   <loc href="#timing-attribute-timeContainer">timeContainer</loc> = (<emph>par</emph>|<emph>seq</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -5407,9 +5407,14 @@
   <loc href="#layout-attribute-region">region</loc> = IDREF
   <loc href="#style-attribute-style">style</loc> = IDREFS
   <loc href="#timing-attribute-timeContainer">timeContainer</loc> = (<emph>par</emph>|<emph>seq</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xlink-arcrole">xlink:arcrole</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>+
+  <loc href="#content-attribute-xlink-href">xlink:href</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>
+  <loc href="#content-attribute-xlink-role">xlink:role</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>+
+  <loc href="#content-attribute-xlink-show">xlink:show</loc> = (<emph>new</emph>|<emph>replace</emph>|<emph>embed</emph>|<emph>other</emph>|<emph>none</emph>) : new
+  <loc href="#content-attribute-xlink-title">xlink:title</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -5436,6 +5441,11 @@
 <p>If no <att>timeContainer</att> attribute is specified on
 a <el>span</el> element, then it must be interpreted as having
 <emph>parallel</emph> time containment semantics.</p>
+<p>The linking attributes <att>xlink:*</att> may be used to link a <el>span</el> element with related content, using the
+specified location (<code>href</code>), roles, and title. The behavior of link activation is affected by the <att>xlink:show</att> attribute,
+the precise meaning of which is determined by the <loc href="#terms-document-processing-context">document processing context</loc>.</p>
+<p>If a <el>span</el> element specifies an <att>xlink:href</att> attribute, then a nested <el>span</el> element descendant must not specify
+an <att>xlink:href</att> attribute, and, if it does, then the latter must be ignored for the purpose of presentation or activation processing.</p>
 </div3>
 <div3 id="content-vocabulary-br">
 <head>br</head>
@@ -5459,9 +5469,9 @@
   <loc href="#layout-attribute-region">region</loc> = IDREF
   <loc href="#style-attribute-style">style</loc> = IDREFS
   <loc href="#timing-attribute-timeContainer">timeContainer</loc> = (<emph>par</emph>|<emph>seq</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -5493,9 +5503,18 @@
 in the core vocabulary catalog:</p>
 <ulist>
 <item><p><specref ref="content-attribute-condition"/></p></item>
-<item><p><specref ref="content-attribute-id"/></p></item>
-<item><p><specref ref="content-attribute-lang"/></p></item>
-<item><p><specref ref="content-attribute-space"/></p></item>
+<item><p><specref ref="content-attribute-xml-id"/></p></item>
+<item><p><specref ref="content-attribute-xml-lang"/></p></item>
+<item><p><specref ref="content-attribute-xml-space"/></p></item>
+</ulist>
+<p>In addition, this section defines the following linking vocabulary used by certain element types
+in the core vocabulary catalog:</p>
+<ulist>
+<item><p><specref ref="content-attribute-xlink-arcrole"/></p></item>
+<item><p><specref ref="content-attribute-xlink-href"/></p></item>
+<item><p><specref ref="content-attribute-xlink-role"/></p></item>
+<item><p><specref ref="content-attribute-xlink-show"/></p></item>
+<item><p><specref ref="content-attribute-xlink-title"/></p></item>
 </ulist>
 <div3 id="content-attribute-condition">
 <head>condition</head>
@@ -5512,13 +5531,43 @@
 attribute that evaluates to <code>false</code>, then the content of that element is ignored for presentation purposes.</p>
 </note>
 </div3>
-<div3 id="content-attribute-id">
+<div3 id="content-attribute-xlink-arcrole">
+<head>xlink:arcrole</head>
+<p>The <att>xlink:arcrole</att> attribute is used as defined by <bibref ref="xlink11"/>.</p>
+<p>The <att>xlink:arcrole</att> attribute may be used with any <loc href="#content-vocabulary-span"><el>span</el></loc> or
+<loc href="#embedded-content-vocabulary-image"><el>image</el></loc> element.</p>
+</div3>
+<div3 id="content-attribute-xlink-href">
+<head>xlink:href</head>
+<p>The <att>xlink:href</att> attribute is used as defined by <bibref ref="xlink11"/>.</p>
+<p>The <att>xlink:href</att> attribute may be used with any <loc href="#content-vocabulary-span"><el>span</el></loc> or
+<loc href="#embedded-content-vocabulary-image"><el>image</el></loc> element.</p>
+</div3>
+<div3 id="content-attribute-xlink-role">
+<head>xlink:role</head>
+<p>The <att>xlink:role</att> attribute is used as defined by <bibref ref="xlink11"/>.</p>
+<p>The <att>xlink:role</att> attribute may be used with any <loc href="#content-vocabulary-span"><el>span</el></loc> or
+<loc href="#embedded-content-vocabulary-image"><el>image</el></loc> element.</p>
+</div3>
+<div3 id="content-attribute-xlink-show">
+<head>xlink:show</head>
+<p>The <att>xlink:show</att> attribute is used as defined by <bibref ref="xlink11"/>.</p>
+<p>The <att>xlink:show</att> attribute may be used with any <loc href="#content-vocabulary-span"><el>span</el></loc> or
+<loc href="#embedded-content-vocabulary-image"><el>image</el></loc> element.</p>
+</div3>
+<div3 id="content-attribute-xlink-title">
+<head>xlink:title</head>
+<p>The <att>xlink:title</att> attribute is used as defined by <bibref ref="xlink11"/>.</p>
+<p>The <att>xlink:title</att> attribute may be used with any <loc href="#content-vocabulary-span"><el>span</el></loc> or
+<loc href="#embedded-content-vocabulary-image"><el>image</el></loc> element.</p>
+</div3>
+<div3 id="content-attribute-xml-id">
 <head>xml:id</head>
 <p>The <att>xml:id</att> attribute is used as defined by
 <bibref ref="xmlid"/>.</p>
 <p>The <att>xml:id</att> attribute may be used with any element in the core vocabulary catalog.</p>
 </div3>
-<div3 id="content-attribute-lang">
+<div3 id="content-attribute-xml-lang">
 <head>xml:lang</head>
 <p>The <att>xml:lang</att> attribute is used as defined by
 <bibref ref="xml10"/>, &sect;2.12, <emph>Language Identification</emph>.</p>
@@ -5526,7 +5575,7 @@
 element and may be specified by an instance of any other element type
 in the core vocabulary catalog except parameter vocabulary.</p>
 </div3>
-<div3 id="content-attribute-space">
+<div3 id="content-attribute-xml-space">
 <head>xml:space</head>
 <p>The <att>xml:space</att> attribute is used as defined by
 <bibref ref="xml10"/>, &sect;2.10, <emph>White Space Handling</emph>.</p>
@@ -5979,7 +6028,7 @@
 <loc href="#terms-enclosing-document-instance">enclosing document instance</loc>. In this case, the active time interval of the <el>audio</el> element
 is the same as the active time interval of its parent <loc href="#embedded-content-vocabulary-resource"><el>resource</el></loc> element.</p>
 <note role="elaboration">
-<p>A sharable definition of an <loc href="#terms-audio-resource">audio resource</loc> specifies an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute in order to be referenced
+<p>A sharable definition of an <loc href="#terms-audio-resource">audio resource</loc> specifies an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute in order to be referenced
 by <el>audio</el> elements in an <loc href="#terms-audio-presentation-context">audio presentation context</loc>.</p>
 </note>
 <p>When an <el>audio</el> element appears in an <loc href="#terms-audio-presentation-context">audio presentation context</loc>, it
@@ -5988,7 +6037,7 @@
 <loc href="#terms-content-element">content element</loc>.
 </p>
 <note role="elaboration">
-<p>A non-sharable definition of an <loc href="#terms-audio-resource">audio resource</loc> may or may not specify an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute, but this
+<p>A non-sharable definition of an <loc href="#terms-audio-resource">audio resource</loc> may or may not specify an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute, but this
 identifier is not referenced by other <el>audio</el> elements, or, if it is, the reference is ignored.</p>
 </note>
 <p>The <el>audio</el> element accepts as its children
@@ -6005,9 +6054,9 @@
   <loc href="#embedded-content-attribute-format">format</loc> = <loc href="#embedded-content-value-audio-format">&lt;audio-format&gt;</loc>
   <loc href="#embedded-content-attribute-src">src</loc> = <loc href="#embedded-content-value-audio">&lt;audio&gt;</loc>
   <loc href="#embedded-content-attribute-type">type</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -6067,7 +6116,7 @@
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
   <loc href="#embedded-content-attribute-encoding">encoding</loc> = (base16|base32|base32hex|base64|base64url) : base64
   length = <loc href="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger">xsd:nonNegativeInteger</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/chunk&gt;
@@ -6126,7 +6175,7 @@
 the active time interval of its parent <loc href="#embedded-content-vocabulary-resource"><el>resource</el></loc> element and
 the active time interval of its referring element.</p>
 <note role="elaboration">
-<p>A sharable definition of a data resource specifies an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute in order to be referenced
+<p>A sharable definition of a data resource specifies an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute in order to be referenced
 by a fragment identifier used in a <loc href="#terms-data-binding-context">data binding context</loc>.</p>
 </note>
 <p>When a <el>data</el> element appears in a <loc href="#terms-data-binding-context">data binding context</loc>, it
@@ -6134,7 +6183,7 @@
 of reference. In this case, the active time interval of the <el>data</el> element is the same as the active time interval of its closest ancestor timed element.
 </p>
 <note role="elaboration">
-<p>A non-sharable definition of a data resource may or may not specify an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute, but this
+<p>A non-sharable definition of a data resource may or may not specify an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute, but this
 identifier is not referenced in other <loc href="#terms-data-binding-context">data binding contexts</loc>, or, if it is, has no binding semantics.</p>
 </note>
 <p>The <el>data</el> element accepts one of the following three content models:
@@ -6167,9 +6216,9 @@
   length = <loc href="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger">xsd:nonNegativeInteger</loc>
   <loc href="#embedded-content-attribute-src">src</loc> = <loc href="#embedded-content-value-data">&lt;data&gt;</loc>
   <loc href="#embedded-content-attribute-type">type</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc> : <emph>see prose below</emph>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA | (<loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#embedded-content-vocabulary-chunk">chunk</loc>+) | (<loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#embedded-content-vocabulary-source">source</loc>+)
 &lt;/data&gt;
@@ -6300,9 +6349,9 @@
   <loc href="#embedded-content-attribute-src">src</loc> = <loc href="#embedded-content-value-font">&lt;font&gt;</loc>
   <loc href="#embedded-content-attribute-type">type</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   weight = (normal|bold)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#embedded-content-vocabulary-source">source</loc>*
 &lt;/font&gt;
@@ -6392,7 +6441,7 @@
 in the <loc href="#terms-enclosing-document-instance">enclosing document instance</loc>. In this case, the active time interval of the <el>image</el> element
 is the same as the active time interval of its parent <loc href="#embedded-content-vocabulary-resource"><el>resource</el></loc> element.</p>
 <note role="elaboration">
-<p>A sharable definition of an <loc href="#terms-image-resource">image resource</loc> specifies an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute in order to be referenced
+<p>A sharable definition of an <loc href="#terms-image-resource">image resource</loc> specifies an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute in order to be referenced
 by an <el>image</el> element or by a <loc href="#style-attribute-backgroundImage"><att>tts:backgroundImage</att></loc> style attribute
 in an <loc href="#terms-image-presentation-context">image presentation context</loc>.</p>
 </note>
@@ -6402,7 +6451,7 @@
 <loc href="#terms-content-element">content element</loc>.
 </p>
 <note role="elaboration">
-<p>A non-sharable definition of an <loc href="#terms-image-resource">image resource</loc> may or may not specify an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute, but this
+<p>A non-sharable definition of an <loc href="#terms-image-resource">image resource</loc> may or may not specify an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute, but this
 identifier is not referenced by other <el>image</el> elements, or, if it is, the reference is ignored.</p>
 </note>
 <p>When an <el>image</el> element appears as a child of a <loc href="#contentt-vocabulary-div"><el>div</el></loc> element, then its presentation
@@ -6429,9 +6478,14 @@
   <loc href="#embedded-content-attribute-format">format</loc> = <loc href="#embedded-content-value-image-format">&lt;image-format&gt;</loc>
   <loc href="#embedded-content-attribute-src">src</loc> = <loc href="#embedded-content-value-image">&lt;image&gt;</loc>
   <loc href="#embedded-content-attribute-type">type</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xlink-arcrole">xlink:arcrole</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>+
+  <loc href="#content-attribute-xlink-href">xlink:href</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>
+  <loc href="#content-attribute-xlink-role">xlink:role</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>+
+  <loc href="#content-attribute-xlink-show">xlink:show</loc> = (<emph>new</emph>|<emph>replace</emph>|<emph>embed</emph>|<emph>other</emph>|<emph>none</emph>) : new
+  <loc href="#content-attribute-xlink-title">xlink:title</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
@@ -6467,6 +6521,9 @@
 <el>image</el> element in an <loc href="#terms-image-presentation-context">image presentation context</loc> and on the
 <el>image</el> element in an <loc href="#terms-image-defining-context">image defining context</loc> to which the former refers, then
 these attributes specified on the former take precedence over those specified on the latter.</p>
+<p>The linking attributes <att>xlink:*</att> may be used to link an <el>image</el> element with related content, using the
+specified location (<code>href</code>), roles, and title. The behavior of link activation is affected by the <att>xlink:show</att> attribute,
+the precise meaning of which is determined by the <loc href="#terms-document-processing-context">document processing context</loc>.</p>
 <p>The use of the <el>image</el> element is illustrated by the following examples.</p>
 <table id="embedded-content-vocabulary-image-example-1" role="example">
 <caption>Example Fragment &ndash; External Image Resources</caption>
@@ -6566,9 +6623,9 @@
 <eg xml:space="preserve">
 &lt;resources
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, (<loc href="#element-vocab-group-data">Data.class</loc>|<loc href="#element-vocab-group-embedded">Embedded.class</loc>|<loc href="#element-vocab-group-font">Font.class</loc>)*
 &lt;/resources&gt;
@@ -6608,9 +6665,9 @@
   <loc href="#embedded-content-attribute-format">format</loc> = <loc href="#embedded-content-value-data-format">&lt;data-format&gt;</loc>
   <loc href="#embedded-content-attribute-src">src</loc> = <loc href="#embedded-content-value-data">&lt;data&gt;</loc>
   <loc href="#embedded-content-attribute-type">type</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#embedded-content-vocabulary-data">data</loc>?
 &lt;/source&gt;
@@ -7066,9 +7123,9 @@
 <eg xml:space="preserve">
 &lt;initial
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*
@@ -7115,9 +7172,9 @@
 &lt;style
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
   <loc href="#style-attribute-style">style</loc> = IDREFS
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*
@@ -7155,9 +7212,9 @@
 <eg xml:space="preserve">
 &lt;styling
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#styling-vocabulary-initial">initial</loc>*, <loc href="#styling-vocabulary-style">style</loc>*
 &lt;/styling&gt;
@@ -13665,9 +13722,9 @@
 <eg xml:space="preserve">
 &lt;layout
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#layout-vocabulary-region">region</loc>*
 &lt;/layout&gt;
@@ -13723,9 +13780,9 @@
   <loc href="#style-attribute-style">style</loc> = IDREFS
   <loc href="#timing-attribute-timeContainer">timeContainer</loc> = (<emph>par</emph>|<emph>seq</emph>)
   <loc href="#metadata-attribute-role">ttm:role</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#element-vocab-group-animation">Animation.class</loc>*, <loc href="#styling-vocabulary-style">style</loc>*
@@ -13736,7 +13793,7 @@
 </tbody>
 </table>
 <p>An <loc href="#terms-out-of-line-region">out-of-line</loc> <el>region</el> element
-must specify an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute.</p>
+must specify an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute.</p>
 <p>An <loc href="#terms-out-of-line-region">out-of-line</loc> <el>region</el> element may specify one or more of the timing attributes:
 <att>begin</att>, <att>end</att>, <att>dur</att>. An <loc href="#terms-inline-region">inline</loc> <el>region</el> element must not
 specifiy a timing attribute, and, if specified, must be ignored for the purpose
@@ -14875,9 +14932,9 @@
   keyTimes = <loc href="#animation-value-keyTimes">&lt;keyTimes&gt;</loc>
   repeatCount = <loc href="#animation-value-repeatCount">&lt;repeatCount&gt;</loc>
   <loc href="#style-attribute-style">style</loc> = IDREFS
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*
@@ -14888,7 +14945,7 @@
 </tbody>
 </table>
 <p>An <loc href="#terms-out-of-line-animation">out-of-line</loc> <el>animate</el> element
-must specify an <loc href="#content-attribute-id"><att>xml:id</att></loc> attribute.</p>
+must specify an <loc href="#content-attribute-xml-id"><att>xml:id</att></loc> attribute.</p>
 <p>Style property attributes targeted by an <el>animate</el> element are specified directly using
 attributes in the TT Style namespace or in a namespace that is not a TT namespace, where the list (sequence) of animation (key) values
 adhere to the <loc href="#animation-value-animationValueList">&lt;animationValueList&gt;</loc> syntax, and where each
@@ -15002,9 +15059,9 @@
 <eg xml:space="preserve">
 &lt;animation
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#element-vocab-group-animation">Animation.class</loc>*
 &lt;/animation&gt;
@@ -15045,9 +15102,9 @@
   fill = <loc href="#animation-value-fill">&lt;fill&gt;</loc>
   repeatCount = <loc href="#animation-value-repeatCount">&lt;repeatCount&gt;</loc>
   <loc href="#style-attribute-style">style</loc> = IDREFS
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*
@@ -15441,9 +15498,9 @@
 <eg xml:space="preserve">
 &lt;metadata
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute in TT Metadata namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> (<loc href="#element-vocab-group-data"><code>Data.class</code></loc>|{<emph>any element in TT Metadata namespace</emph>}|{<emph>any element not in any TT namespace</emph>})*
@@ -15571,9 +15628,9 @@
 &lt;ttm:actor
   <phrase role="reqattr">agent</phrase> = IDREF
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> EMPTY
 &lt;/ttm:actor&gt;
@@ -15605,9 +15662,9 @@
 &lt;ttm:agent
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
   <phrase role="reqattr">type</phrase> = (<emph>person</emph>|<emph>character</emph>|<emph>group</emph>|<emph>organization</emph>|<emph>other</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#metadata-vocabulary-name">ttm:name</loc>*, <loc href="#metadata-vocabulary-actor">ttm:actor</loc>?
 &lt;/ttm:agent&gt;
@@ -15701,9 +15758,9 @@
 <eg xml:space="preserve">
 &lt;ttm:copyright
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/ttm:copyright&gt;
@@ -15728,9 +15785,9 @@
 <eg xml:space="preserve">
 &lt;ttm:desc
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/ttm:desc&gt;
@@ -15761,9 +15818,9 @@
 &lt;ttm:item
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
   <phrase role="reqattr">name</phrase> = <loc href="#metadata-value-item-name">&lt;item-name&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA | <loc href="#metadata-vocabulary-item">ttm:item</loc>*
 &lt;/ttm:item&gt;
@@ -15834,9 +15891,9 @@
 &lt;ttm:name
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
   <phrase role="reqattr">type</phrase> = (<emph>full</emph>|<emph>family</emph>|<emph>given</emph>|<emph>alias</emph>|<emph>other</emph>)
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/ttm:name&gt;
@@ -15871,9 +15928,9 @@
 <eg xml:space="preserve">
 &lt;ttm:title
   <loc href="#content-attribute-condition">condition</loc> = <loc href="#content-value-condition">&lt;condition&gt;</loc>
-  <loc href="#content-attribute-id">xml:id</loc> = ID
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+  <loc href="#content-attribute-xml-id">xml:id</loc> = ID
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> #PCDATA
 &lt;/ttm:title&gt;
@@ -16479,7 +16536,7 @@
 &lt;isd:sequence
   size = <loc href="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger">xsd:nonNegativeInteger</loc>
   version = <loc href="http://www.w3.org/TR/xmlschema-2/#positiveInteger">xsd:positiveInteger</loc>
-  <loc href="#content-attribute-lang"><phrase role="reqattr">xml:lang</phrase></loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-lang"><phrase role="reqattr">xml:lang</phrase></loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   {<emph>any attribute in the <loc href="#isd-parameter-attribute-set">ISD Parameter Attribute Set</loc></emph>}&gt;
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#profile-vocabulary-profile">ttp:profile</loc>?, <loc href="#isd-vocabulary-isd">isd:isd</loc>*
@@ -16506,7 +16563,7 @@
 <p>The ISD abstraction referred to or implied by <bibref ref="ttml1"/> &sect;9.3.2 was not concretely defined by that specification. Here we reserve version one (1)
 for informal discussion of that earlier abstraction and its various (non-standardized) realizations.</p>
 </note>
-<p>An <loc href="#content-attribute-lang"><att>xml:lang</att></loc> attribute must be specified on the
+<p>An <loc href="#content-attribute-xml-lang"><att>xml:lang</att></loc> attribute must be specified on the
 <loc href="#isd-vocabulary-sequence"><el>isd:sequence</el></loc> element.
 If its value is empty, it signifies that there is no default language that applies
 to the content within the <loc href="#terms-intermediate-synchronic-document-sequence">Intermediate Synchronic Document Sequence</loc>. Otherwise,
@@ -16553,7 +16610,7 @@
   <loc href="#timing-attribute-begin"><phrase role="reqattr">begin</phrase></loc> = <loc href="#timing-value-timeExpression">&lt;timeExpression&gt;</loc>
   <loc href="#timing-attribute-end"><phrase role="reqattr">end</phrase></loc> = <loc href="#timing-value-timeExpression">&lt;timeExpression&gt;</loc>
   version = <loc href="http://www.w3.org/TR/xmlschema-2/#positiveInteger">xsd:positiveInteger</loc>
-  <loc href="#content-attribute-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
+  <loc href="#content-attribute-xml-lang">xml:lang</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
   {<emph>any attribute in the <loc href="#isd-parameter-attribute-set">ISD Parameter Attribute Set</loc></emph>}&gt;
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#profile-vocabulary-profile">ttp:profile</loc>?, <loc href="#isd-vocabulary-css">isd:css</loc>*, <loc href="#isd-vocabulary-region">isd:region</loc>*
@@ -16577,7 +16634,7 @@
 <p>Expressed in the terminology of <bibref ref="smil3"/>, the values of these <att>begin</att> and <att>end</att> attributes
 correspond to the resolved begin and end times of the <emph>active duration</emph> with respect to the <emph>document begin</emph>.</p>
 </note>
-<p>An <loc href="#content-attribute-lang"><att>xml:lang</att></loc> attribute must be specified on the
+<p>An <loc href="#content-attribute-xml-lang"><att>xml:lang</att></loc> attribute must be specified on the
 <loc href="#isd-vocabulary-isd"><el>isd:isd</el></loc> element if it is a standalone <loc href="#terms-intermediate-synchronic-document">Intermediate
 Synchronic Document</loc> document; otherwise, it may be specified, and should be specified if the default language of the 
 <loc href="#isd-vocabulary-sequence"><el>isd:isd</el></loc> element differs from the default language of its
@@ -16613,7 +16670,7 @@
 <td>
 <eg xml:space="preserve">
 &lt;isd:css
-  <loc href="#content-attribute-id"><phrase role="reqattr">xml:id</phrase></loc> = ID
+  <loc href="#content-attribute-xml-id"><phrase role="reqattr">xml:id</phrase></loc> = ID
   {<emph>any attribute in TT Style namespace</emph>}
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*
@@ -16650,7 +16707,7 @@
 &lt;isd:region
   <loc href="#style-attribute-style">style</loc> = IDREF
   <loc href="#metadata-attribute-role">ttm:role</loc> = <loc href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</loc>
-  <loc href="#content-attribute-id"><phrase role="reqattr">xml:id</phrase></loc> = ID
+  <loc href="#content-attribute-xml-id"><phrase role="reqattr">xml:id</phrase></loc> = ID
   {<emph>any attribute not in default or any TT namespace</emph>}&gt;
   <emph>Content:</emph> <loc href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc href="#animation-vocabulary-animate">animate</loc>*, <loc href="#document-structure-vocabulary-body">body</loc>
 &lt;/isd:region&gt;
@@ -17001,9 +17058,9 @@
 feature if it recognizes and is capable of transforming the following
 core attributes vocabulary defined by <specref ref="content"/>:</p>
 <ulist>
-<item><p><loc href="#content-attribute-id">@<att>xml:id</att></loc></p></item>
-<item><p><loc href="#content-attribute-id">@<att>xml:lang</att></loc></p></item>
-<item><p><loc href="#content-attribute-id">@<att>xml:space</att></loc></p></item>
+<item><p><loc href="#content-attribute-xml-id">@<att>xml:id</att></loc></p></item>
+<item><p><loc href="#content-attribute-xml-id">@<att>xml:lang</att></loc></p></item>
+<item><p><loc href="#content-attribute-xml-id">@<att>xml:space</att></loc></p></item>
 </ulist>
 <p>A TTML <loc href="#terms-presentation-processor">presentation processor</loc> supports the <code>#core</code>
 feature if it implements presentation semantic support for the
@@ -19148,9 +19205,9 @@
 <tr>
 <td><loc href="#feature-core"><code>#core</code></loc></td>
 <td>
-<loc href="#content-attribute-id">@<att>xml:id</att></loc>,
-<loc href="#content-attribute-id">@<att>xml:lang</att></loc>,
-<loc href="#content-attribute-id">@<att>xml:space</att></loc>
+<loc href="#content-attribute-xml-id">@<att>xml:id</att></loc>,
+<loc href="#content-attribute-xml-id">@<att>xml:lang</att></loc>,
+<loc href="#content-attribute-xml-id">@<att>xml:space</att></loc>
 </td>
 </tr>
 <tr>
@@ -19212,9 +19269,9 @@
 <tr>
 <td><loc href="#feature-core"><code>#core</code></loc></td>
 <td>
-<loc href="#content-attribute-id">@<att>xml:id</att></loc>,
-<loc href="#content-attribute-id">@<att>xml:lang</att></loc>,
-<loc href="#content-attribute-id">@<att>xml:space</att></loc>
+<loc href="#content-attribute-xml-id">@<att>xml:id</att></loc>,
+<loc href="#content-attribute-xml-id">@<att>xml:lang</att></loc>,
+<loc href="#content-attribute-xml-id">@<att>xml:space</att></loc>
 </td>
 </tr>
 <tr>
@@ -19449,6 +19506,11 @@
 Content Accessibility Guidelines (WCAG) 2.0</titleref>, W3C Recommendation, 11 December 2008. (See
 <xspecref href="http://www.w3.org/TR/2008/REC-WCAG20-20081211/">http://www.w3.org/TR/2008/REC-WCAG20-20081211/</xspecref>.)
 </bibl>
+<bibl id="xlink11" key="XLink 1.1">Steve DeRose, et al.
+<titleref href="http://www.w3.org/TR/2006/REC-xml11-20060816/">XML Linking Language (XLink) Version 1.1</titleref>,
+W3C Recommendation, 06 May 2010. (See
+<xspecref href="http://www.w3.org/TR/2010/REC-xlink11-20100506/">http://www.w3.org/TR/2010/REC-xlink11-20100506/</xspecref>.)
+</bibl>
 <bibl id="xml10" key="XML 1.0">Tim Bray, et al.
 <titleref href="http://www.w3.org/TR/2008/REC-xml-20081126/">Extensible Markup Language (XML)
 1.0 (Fifth Edition)</titleref>, W3C Recommendation, 26 November 2008. (See
@@ -20756,21 +20818,21 @@
 <td>1</td>
 </tr>
 <tr>
-<td><loc href="#content-attribute-id"><code>xml:id</code></loc></td>
+<td><loc href="#content-attribute-xml-id"><code>xml:id</code></loc></td>
 <td><code>xml:id</code></td>
 <td><bibref ref="xmlid"/></td>
 <td>complies with model</td>
 <td></td>
 </tr>
 <tr>
-<td><loc href="#content-attribute-lang"><code>xml:lang</code></loc></td>
+<td><loc href="#content-attribute-xml-lang"><code>xml:lang</code></loc></td>
 <td><code>xml:lang</code></td>
 <td><bibref ref="xml10"/></td>
 <td>complies with model</td>
 <td></td>
 </tr>
 <tr>
-<td><loc href="#content-attribute-space"><code>xml:space</code></loc></td>
+<td><loc href="#content-attribute-xml-space"><code>xml:space</code></loc></td>
 <td><code>xml:space</code></td>
 <td><bibref ref="xml10"/></td>
 <td>see notes</td>
@@ -20861,7 +20923,7 @@
 <code>default</code>, which is defined in terms of whitespace
 normalization. Semantics of preservation and default normalization are
 defined in terms of presentation semantics by <specref
-ref="content-attribute-space"/>.</p>
+ref="content-attribute-xml-space"/>.</p>
 </item>
 <item>
 <p>Defined to be inheritable.</p>
--- a/ttml2/spec/xsd/ttml2-bindings.xjb	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/xsd/ttml2-bindings.xjb	Thu Jan 08 20:00:08 2015 -0700
@@ -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="xlink.xsd">
+    <jxb:bindings node="//xs:attribute[@name='role']">
+      <jxb:property name="xlinkRole"/>
+    </jxb:bindings>
+  </jxb:bindings>
   <jxb:bindings schemaLocation="ttml2-layout.xsd">
     <jxb:bindings node="//xs:attributeGroup[@name='RegionBinding.attrib.class']/xs:attribute[@name='region']">
       <jxb:property name="regionAttribute"/>
--- a/ttml2/spec/xsd/ttml2-content.xsd	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/xsd/ttml2-content.xsd	Thu Jan 08 20:00:08 2015 -0700
@@ -3,7 +3,8 @@
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:tt="http://www.w3.org/ns/ttml"
   xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
-  xmlns:tts="http://www.w3.org/ns/ttml#styling">
+  xmlns:tts="http://www.w3.org/ns/ttml#styling"
+  xmlns:xlink="http://www.w3.org/1999/xlink">
   <xs:include schemaLocation="ttml2-core-attribs.xsd"/>
   <xs:include schemaLocation="ttml2-timing-attribs.xsd"/>
   <xs:include schemaLocation="ttml2-metadata.xsd"/>
@@ -13,6 +14,8 @@
   <xs:include schemaLocation="ttml2-styling.xsd"/>
   <xs:import namespace="http://www.w3.org/ns/ttml#metadata"
     schemaLocation="ttml2-metadata-attribs.xsd"/>
+  <xs:import namespace="http://www.w3.org/1999/xlink"
+    schemaLocation="xlink.xsd"/>
   <xs:attributeGroup name="body.attlist">
     <xs:attributeGroup ref="tt:Core.attrib.class"/>
     <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
@@ -44,6 +47,7 @@
     <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
     <xs:attributeGroup ref="tt:Styled.attrib.class"/>
     <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+    <xs:attributeGroup ref="xlink:simpleAttrs"/>
   </xs:attributeGroup>
   <xs:attributeGroup name="br.attlist">
     <xs:attributeGroup ref="tt:Core.attrib.class"/>
--- a/ttml2/spec/xsd/xlink.xsd	Thu Jan 08 01:25:49 2015 -0700
+++ b/ttml2/spec/xsd/xlink.xsd	Thu Jan 08 20:00:08 2015 -0700
@@ -1,5 +1,62 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema targetNamespace="http://www.w3.org/1999/xlink" xml:lang="en"
-  xmlns:xs="http://www.w3.org/2001/XMLSchema">
-  <xs:attribute name="href" type="xs:anyURI"/>
+<?xml version='1.0' encoding='UTF-8'?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <xs:attribute name="type" type="xlink:typeType"/>
+ <xs:simpleType name="typeType">
+  <xs:restriction base="xs:token">
+   <xs:enumeration value="simple"/>
+   <xs:enumeration value="extended"/>
+   <xs:enumeration value="title"/>
+   <xs:enumeration value="resource"/>
+   <xs:enumeration value="locator"/>
+   <xs:enumeration value="arc"/>
+  </xs:restriction>
+ </xs:simpleType>
+ <xs:attribute name="href" type="xlink:hrefType"/>
+ <xs:simpleType name="hrefType">
+  <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
+ <xs:attribute name="role" type="xlink:roleType"/>
+ <xs:simpleType name="roleType">
+  <xs:restriction base="xs:anyURI">
+   <xs:minLength value="1"/>
+  </xs:restriction>
+ </xs:simpleType>
+ <xs:attribute name="arcrole" type="xlink:arcroleType"/>
+ <xs:simpleType name="arcroleType">
+  <xs:restriction base="xs:anyURI">
+   <xs:minLength value="1"/>
+  </xs:restriction>
+ </xs:simpleType>
+ <xs:attribute name="title" type="xlink:titleAttrType"/>
+ <xs:simpleType name="titleAttrType">
+  <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:attribute name="show" type="xlink:showType"/>
+ <xs:simpleType name="showType">
+  <xs:restriction base="xs:token">
+   <xs:enumeration value="new"/>
+   <xs:enumeration value="replace"/>
+   <xs:enumeration value="embed"/>
+   <xs:enumeration value="other"/>
+   <xs:enumeration value="none"/>
+  </xs:restriction>
+ </xs:simpleType>
+ <xs:attribute name="actuate" type="xlink:actuateType"/>
+ <xs:simpleType name="actuateType">
+  <xs:restriction base="xs:token">
+   <xs:enumeration value="onLoad"/>
+   <xs:enumeration value="onRequest"/>
+   <xs:enumeration value="other"/>
+   <xs:enumeration value="none"/>
+  </xs:restriction>
+ </xs:simpleType>
+ <xs:attributeGroup name="simpleAttrs">
+  <xs:attribute ref="xlink:type" fixed="simple"/>
+  <xs:attribute ref="xlink:href"/>
+  <xs:attribute ref="xlink:role"/>
+  <xs:attribute ref="xlink:arcrole"/>
+  <xs:attribute ref="xlink:title"/>
+  <xs:attribute ref="xlink:show"/>
+  <xs:attribute ref="xlink:actuate" fixed="onRequest"/>
+ </xs:attributeGroup>
 </xs:schema>