[ttml2] add schema support for embedded content
authorGlenn Adams <glenn@skynav.com>
Sat, 22 Nov 2014 10:10:45 -0700
changeset 765 25035c814da5
parent 764 67327764d375
child 766 86ac277fdc7c
[ttml2] add schema support for embedded content
ttml2/spec/rnc/schema.zip
ttml2/spec/rnc/ttml2-animation.rnc
ttml2/spec/rnc/ttml2-classes.rnc
ttml2/spec/rnc/ttml2-content.rnc
ttml2/spec/rnc/ttml2-core-attribs.rnc
ttml2/spec/rnc/ttml2-datatypes.rnc
ttml2/spec/rnc/ttml2-document.rnc
ttml2/spec/rnc/ttml2-head.rnc
ttml2/spec/rnc/ttml2-layout.rnc
ttml2/spec/rnc/ttml2-metadata-attribs.rnc
ttml2/spec/rnc/ttml2-metadata-items.rnc
ttml2/spec/rnc/ttml2-metadata.rnc
ttml2/spec/rnc/ttml2-parameter-attribs.rnc
ttml2/spec/rnc/ttml2-parameter-items.rnc
ttml2/spec/rnc/ttml2-parameters.rnc
ttml2/spec/rnc/ttml2-styling-attribs.rnc
ttml2/spec/rnc/ttml2-styling.rnc
ttml2/spec/rnc/ttml2-timing-attribs.rnc
ttml2/spec/rnc/ttml2.rnc
ttml2/spec/ttml2.xml
ttml2/spec/xsd/schema.zip
ttml2/spec/xsd/ttml2-content.xsd
ttml2/spec/xsd/ttml2-datatypes.xsd
ttml2/spec/xsd/ttml2-document.xsd
ttml2/spec/xsd/ttml2-head.xsd
Binary file ttml2/spec/rnc/schema.zip has changed
--- a/ttml2/spec/rnc/ttml2-animation.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-animation.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Animation Module .......................................
+# TTML2 Animation Module ................................................
 # .......................................................................
 
 namespace xlink = "http://www.w3.org/1999/xlink"
--- a/ttml2/spec/rnc/ttml2-classes.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-classes.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Class Declarations Module ..............................
+# TTML2 Class Declarations Module .......................................
 # .......................................................................
 
 # attribute group classes
@@ -18,8 +18,10 @@
 TTAF.Animation.class = empty
 TTAF.Block.class = empty
 TTAF.BlockNoDiv.class = empty
+TTAF.BlockOrEmbedded.class = empty
 TTAF.Inline.class = empty
 TTAF.InlineNoSpan.class = empty
+TTAF.InlineOrEmbedded.class = empty
 TTAF.MetadataNoAgent.class = empty
 TTAF.Metadata.class = empty
 TTAF.MetadataItems.class = empty
--- a/ttml2/spec/rnc/ttml2-content.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-content.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Content Module .........................................
+# TTML2 Content Module ..................................................
 # .......................................................................
 
 # body - content body
@@ -43,7 +43,7 @@
   (TTAF.Metadata.class*,
    TTAF.Animation.class*,
    TTAF.Layout.class?,
-   (TTAF.Block.class | TTAF.div.content.extra)*)
+   (TTAF.BlockOrEmbedded.class | TTAF.div.content.extra)*)
 
 # p - paragraph
 TTAF.p =
@@ -65,7 +65,7 @@
   (TTAF.Metadata.class*,
    TTAF.Animation.class*,
    TTAF.Layout.class?,
-   (TTAF.Inline.class |
+   (TTAF.InlineOrEmbedded.class |
     TTAF.p.content.extra)*)
 
 # span - intra-paragraph inline span
@@ -87,7 +87,7 @@
 TTAF.span.content =
   (TTAF.Metadata.class*,
    TTAF.Animation.class*,
-   (TTAF.Inline.class |
+   (TTAF.InlineOrEmbedded.class |
     TTAF.span.content.extra)*)
 
 # br - manual line break
@@ -117,6 +117,8 @@
   TTAF.p | TTAF.Block.extra
 TTAF.Block.class |=
   TTAF.div | TTAF.BlockNoDiv.class
+TTAF.BlockOrEmbedded.class |=
+  TTAF.Block.class | TTAF.Embedded.class
 
 # Inline.class
 TTAF.Inline.extra = empty
@@ -124,6 +126,8 @@
   text | TTAF.br | TTAF.Inline.extra
 TTAF.Inline.class |=
   TTAF.span | TTAF.InlineNoSpan.class
+TTAF.InlineOrEmbedded.class |=
+  TTAF.Inline.class | TTAF.Embedded.class
 
 # .......................................................................
 # .......................................................................
--- a/ttml2/spec/rnc/ttml2-core-attribs.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-core-attribs.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Core Attributes Module .................................
+# TTML2 Core Attributes Module ..........................................
 # .......................................................................
 
 TTAF.id.attrib
--- a/ttml2/spec/rnc/ttml2-datatypes.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Datatypes Module .......................................
+# TTML2 Datatypes Module ................................................
 # .......................................................................
 
 TTAF.Agent.datatype =
@@ -50,6 +50,25 @@
 TTAF.Color.datatype =
   string
 
+TTAF.DataEncoding.datatype =
+  "base16" |
+  "base32" |
+  "base32hex" |
+  "base64" |
+  "base64url"
+
+TTAF.DataFormat.datatype =
+  xsd:token
+
+TTAF.DataLength.datatype =
+  xsd:nonNegativeInteger
+
+TTAF.DataSource.datatype =
+  TTAF.URI.datatype
+
+TTAF.DataType.datatype =
+  string
+
 TTAF.Direction.datatype =
   "ltr" |
   "rtl"
@@ -389,6 +408,9 @@
   "embed" |
   "bidiOverride"
 
+TTAF.UnicodeRange.datatype =
+  string
+
 TTAF.Validation.datatype =
   "required" |
   "optional"
--- a/ttml2/spec/rnc/ttml2-document.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-document.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Document Module ........................................
+# TTML2 Document Module .................................................
 # .......................................................................
 
 ## tt - generic top-level document element type
--- a/ttml2/spec/rnc/ttml2-head.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-head.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Header Module ..........................................
+# TTML2 Header Module ...................................................
 # .......................................................................
 
 # head - generic header
@@ -16,6 +16,7 @@
 TTAF.head.content =
   (TTAF.Metadata.class*,
    TTAF.Parameters.class*,
+   TTAF.resources?,
    TTAF.styling?,
    TTAF.layout?,
    TTAF.animation?,
--- a/ttml2/spec/rnc/ttml2-layout.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-layout.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Layout Module ..........................................
+# TTML2 Layout Module ...................................................
 # .......................................................................
 
 # region reference attribute; must reference /head/layout/region
--- a/ttml2/spec/rnc/ttml2-metadata-attribs.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-metadata-attribs.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Metadata Attributes Module ..............................
+# TTML2 Metadata Attributes Module ......................................
 # .......................................................................
 
 namespace tt = "http://www.w3.org/ns/ttml"
--- a/ttml2/spec/rnc/ttml2-metadata-items.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-metadata-items.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Metadata Items Module ......................................
+# TTML2 Metadata Items Module ...........................................
 # .......................................................................
 
 namespace ttm = "http://www.w3.org/ns/ttml#metadata"
--- a/ttml2/spec/rnc/ttml2-metadata.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-metadata.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Metadata Module ........................................
+# TTML2 Metadata Module .................................................
 # .......................................................................
 
 # namespace prefix bindings
--- a/ttml2/spec/rnc/ttml2-parameter-attribs.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-parameter-attribs.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Parameter Attributes Module ............................
+# TTML2 Parameter Attributes Module .....................................
 # .......................................................................
 
 namespace ttp = "http://www.w3.org/ns/ttml#parameter"
--- a/ttml2/spec/rnc/ttml2-parameter-items.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-parameter-items.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Parameter Items Module .................................
+# TTML2 Parameter Items Module ..........................................
 # .......................................................................
 
 namespace ttp = "http://www.w3.org/ns/ttml#parameter"
--- a/ttml2/spec/rnc/ttml2-parameters.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-parameters.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Parameters Module ......................................
+# TTML2 Parameters Module ...............................................
 # .......................................................................
 
 TTAF.Parameters.class |=
--- a/ttml2/spec/rnc/ttml2-styling-attribs.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-styling-attribs.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Styling Attributes Module ..............................
+# TTML2 Styling Attributes Module .......................................
 # .......................................................................
 
 namespace tt = "http://www.w3.org/ns/ttml"
--- a/ttml2/spec/rnc/ttml2-styling.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-styling.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Styling Module .........................................
+# TTML2 Styling Module ..................................................
 # .......................................................................
 
 # style reference attribute; must reference /tt/head/styling/style
--- a/ttml2/spec/rnc/ttml2-timing-attribs.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2-timing-attribs.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 DFXP Timing Attributes Module ...............................
+# TTML2 Timing Attributes Module ........................................
 # .......................................................................
 
 # Timing Attributes
--- a/ttml2/spec/rnc/ttml2.rnc	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/rnc/ttml2.rnc	Sat Nov 22 10:10:45 2014 -0700
@@ -1,5 +1,5 @@
 # .......................................................................
-# TT-AF 1.0 Distribution Format Exchange Profile (DFXP) Schema ..........
+# TTML2 Schema ..........................................................
 # .......................................................................
 
 # default namespace
@@ -20,6 +20,7 @@
 include "ttml2-styling.rnc"
 include "ttml2-animation.rnc"
 include "ttml2-layout.rnc"
+include "ttml2-embedded.rnc"
 include "ttml2-content.rnc"
 include "ttml2-head.rnc"
 include "ttml2-document.rnc"
--- a/ttml2/spec/ttml2.xml	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/ttml2.xml	Sat Nov 22 10:10:45 2014 -0700
@@ -4868,7 +4868,7 @@
   <emph>Content:</emph> <loc
   href="#element-vocab-group-metadata">Metadata.class</loc>*, <loc
   href="#element-vocab-group-animation">Animation.class</loc>*, <loc
-  href="#element-vocab-group-layout">Layout.class</loc>?, <loc
+  href="#element-vocab-group-layout">Layout.class</loc>?, (<loc
   href="#element-vocab-group-block">Block.class</loc>|<loc
   href="#element-vocab-group-embedded">Embedded.class</loc>)*
 &lt;/div&gt;
@@ -5217,10 +5217,12 @@
 <td>
 <eg xml:space="preserve">
 &lt;audio
+  format = <loc href="#embedded-content-value-audio-format">&lt;audio-format&gt;</loc>
   src = <loc href="#embedded-content-value-audio">&lt;audio&gt;</loc>
   <loc href="#data-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>)
   {<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-metadata">Metadata.class</loc>*, <loc href="#embedded-content-vocabulary-source">source</loc>*
@@ -5242,6 +5244,12 @@
 a <loc href="#data-attribute-type"><att>type</att></loc> attribute, in which case the value of the
 <loc href="#data-attribute-type"><att>type</att></loc> attribute must correspond with the media (content) type
 of the referenced resource. Otherwise, a <loc href="#data-attribute-type"><att>type</att></loc> attribute must not be specified.</p>
+<p>If a <loc href="#data-attribute-type"><att>type</att></loc> attribute is not specified or is specified as a generic type, such as <code>application/octet-stream</code>,
+and additional format information is known about a referenced audio resource, then a <att>format</att> attribute should be specified as a hint to the
+content processor.</p>
+<p>If an <el>audio</el> element includes a child <loc href="#embedded-content-vocabulary-source"><el>source</el></loc> element, then
+the <att>format</att> attribute of the <el>source</el> child, if specified, must adhere to the <loc href="#embedded-content-value-audio-format">&lt;audio-format&gt;</loc>
+value expression.</p>
 <p>The use of the <el>audio</el> element is illustrated by the following example.</p>
 <table id="embedded-content-vocabulary-audio-example-1" role="example">
 <caption>Example Fragment &ndash; External Audio Resource</caption>
@@ -5331,9 +5339,12 @@
 <eg xml:space="preserve">
 &lt;data
   <loc href="#data-attribute-encoding">encoding</loc> = (base16|base32|base32hex|base64|base64url) : <emph>see prose below</emph>
+  format = <loc href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</loc>
   length = <loc href="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger">xsd:nonNegativeInteger</loc>
   <phrase role="reqattr"><loc href="#data-attribute-type">type</loc></phrase> = <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>)
   {<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>+)
 &lt;/data&gt;
@@ -5357,6 +5368,9 @@
 </note>
 <p>A <loc href="#data-attribute-type"><att>type</att></loc> attribute must be specified, and must correspond with the media (content) type of the data resource.
 In the absence of a defined type, the type <code>application/octet-stream</code> should be used.</p>
+<p>If a <loc href="#data-attribute-type"><att>type</att></loc> attribute is not specified or is specified as a generic type, such as <code>application/octet-stream</code>,
+and additional format information is known about a referenced data resource, then a <att>format</att> attribute should be specified as a hint to the
+content processor.</p>
 <p>The use of simple data is illustrated by the following example.</p>
 <table id="embedded-content-vocabulary-data-example-1" role="example">
 <caption>Example Fragment &ndash; Simple Data</caption>
@@ -5402,6 +5416,8 @@
   <loc href="#data-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>)
   {<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;
@@ -5422,7 +5438,7 @@
 a <loc href="#data-attribute-type"><att>type</att></loc> attribute, in which case the value of the
 <loc href="#data-attribute-type"><att>type</att></loc> attribute must correspond with the media (content) type
 of the referenced resource. Otherwise, a <loc href="#data-attribute-type"><att>type</att></loc> attribute must not be specified.</p>
-<p>If a <loc href="#data-attribute-type"><att>type</att></loc> attribute is specified as a generic type, such as <code>application/octet-stream</code>,
+<p>If a <loc href="#data-attribute-type"><att>type</att></loc> attribute is not specified or is specified as a generic type, such as <code>application/octet-stream</code>,
 and additional format information is known about a referenced font resource, then a <att>format</att> attribute should be specified as a hint to the
 content processor.</p>
 <note role="elaboration">
@@ -5486,9 +5502,12 @@
 <td>
 <eg xml:space="preserve">
 &lt;image
+  format = <loc href="#embedded-content-value-image-format">&lt;image-format&gt;</loc>
   src = <loc href="#embedded-content-value-image">&lt;image&gt;</loc>
   <loc href="#data-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>)
   {<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-metadata">Metadata.class</loc>*, <loc href="#embedded-content-vocabulary-source">source</loc>*
@@ -5510,6 +5529,12 @@
 a <loc href="#data-attribute-type"><att>type</att></loc> attribute, in which case the value of the
 <loc href="#data-attribute-type"><att>type</att></loc> attribute must correspond with the media (content) type
 of the referenced resource. Otherwise, a <loc href="#data-attribute-type"><att>type</att></loc> attribute must not be specified.</p>
+<p>If a <loc href="#data-attribute-type"><att>type</att></loc> attribute is not specified or is specified as a generic type, such as <code>application/octet-stream</code>,
+and additional format information is known about a referenced image resource, then a <att>format</att> attribute should be specified as a hint to the
+content processor.</p>
+<p>If an <el>image</el> element includes a child <loc href="#embedded-content-vocabulary-source"><el>source</el></loc> element, then
+the <att>format</att> attribute of the <el>source</el> child, if specified, must adhere to the <loc href="#embedded-content-value-image-format">&lt;image-format&gt;</loc>
+value expression.</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 Resource</caption>
@@ -5585,6 +5610,8 @@
 <eg xml:space="preserve">
 &lt;resources
   <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>)
   {<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;
@@ -5619,10 +5646,12 @@
 <td>
 <eg xml:space="preserve">
 &lt;source
-  format = <loc href="http://www.w3.org/TR/xmlschema-2/#ident">xsd:ident</loc>
+  format = <loc href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</loc>
   src = <loc href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</loc>
   <loc href="#data-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>)
   {<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;
@@ -5763,9 +5792,11 @@
 <p>Embedded content elements as well as certain style property values include the use of the following expressions:</p>
 <ulist>
 <item><p><specref ref="embedded-content-value-audio"/></p></item>
+<item><p><specref ref="embedded-content-value-audio-format"/></p></item>
 <item><p><specref ref="embedded-content-value-font"/></p></item>
 <item><p><specref ref="embedded-content-value-font-format"/></p></item>
 <item><p><specref ref="embedded-content-value-image"/></p></item>
+<item><p><specref ref="embedded-content-value-image-format"/></p></item>
 <item><p><specref ref="embedded-content-value-unicode-range"/></p></item>
 </ulist>
 <p>In the syntax representations defined in this section, no
@@ -5791,6 +5822,28 @@
 then that fragment identifier must reference an <loc href="#embedded-content-vocabulary-audio"><el>audio</el></loc> element that is a child of a
 <loc href="#embedded-content-vocabulary-resources"><el>resources</el></loc> element in the <loc href="#terms-enclosing-document-instance">enclosing document instance</loc>.</p>
 </div3>
+<div3 id="embedded-content-value-audio-format">
+<head>&lt;audio-format&gt;</head>
+<p>An &lt;audio-format&gt; expression is used to specify the format of a audio resource. Additional format information is useful in the case
+of audio resources that lack of standardization of media (content) type.</p>
+<table id="audio-format-value-expression-syntax" role="syntax">
+<caption>Syntax Representation &ndash; &lt;audio-format&gt;</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+&lt;audio-format&gt;
+  : <loc href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</loc>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="elaboration">
+<p>This specification does not standardize the set of format tokens for use with audio content. Authors are encouraged to
+use tokens in common use, or absent that, to add a prefix <code>"x-"</code> to form a private use token.</p>
+</note>
+</div3>
 <div3 id="embedded-content-value-font">
 <head>&lt;font&gt;</head>
 <p>An &lt;font&gt; expression is used to specify an font resource by reference.</p>
@@ -5826,11 +5879,17 @@
   | otf                                     // opentype
   | ttf                                     // truetype
   | woff                                    // web open font format
-</eg>
-</td>
-</tr>
-</tbody>
-</table>
+  | <loc href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</loc>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="elaboration">
+<p>This specification standardizes a limited set of format tokens for use with font content. In case none of
+these tokens are appropriate, authors are encouraged to use tokens in common use, or absent that, to add a
+prefix <code>"x-"</code> to form a private use token.</p>
+</note>
 </div3>
 <div3 id="embedded-content-value-image">
 <head>&lt;image&gt;</head>
@@ -5852,6 +5911,28 @@
 then that fragment identifier must reference an <loc href="#embedded-content-vocabulary-image"><el>image</el></loc> element that is a child of a
 <loc href="#embedded-content-vocabulary-resources"><el>resources</el></loc> element in the <loc href="#terms-enclosing-document-instance">enclosing document instance</loc>.</p>
 </div3>
+<div3 id="embedded-content-value-image-format">
+<head>&lt;image-format&gt;</head>
+<p>An &lt;image-format&gt; expression is used to specify the format of a image resource. Additional format information is useful in the case
+of image resources that lack of standardization of media (content) type.</p>
+<table id="image-format-value-expression-syntax" role="syntax">
+<caption>Syntax Representation &ndash; &lt;image-format&gt;</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+&lt;image-format&gt;
+  : <loc href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</loc>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="elaboration">
+<p>This specification does not standardize the set of format tokens for use with image content. Authors are encouraged to
+use tokens in common use, or absent that, to add a prefix <code>"x-"</code> to form a private use token.</p>
+</note>
+</div3>
 <div3 id="embedded-content-value-unicode-range">
 <head>&lt;unicode-range&gt;</head>
 <p>A &lt;unicode-range&gt; expression is used to specify a collection of Unicode codepoints by enumerating singleton codepoints or ranges of codepoints.</p>
Binary file ttml2/spec/xsd/schema.zip has changed
--- a/ttml2/spec/xsd/ttml2-content.xsd	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-content.xsd	Sat Nov 22 10:10:45 2014 -0700
@@ -8,6 +8,7 @@
   <xs:include schemaLocation="ttml2-timing-attribs.xsd"/>
   <xs:include schemaLocation="ttml2-metadata.xsd"/>
   <xs:include schemaLocation="ttml2-animation.xsd"/>
+  <xs:include schemaLocation="ttml2-embedded.xsd"/>
   <xs:include schemaLocation="ttml2-layout.xsd"/>
   <xs:include schemaLocation="ttml2-styling.xsd"/>
   <xs:import namespace="http://www.w3.org/ns/ttml#metadata"
@@ -65,7 +66,7 @@
       <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:group ref="tt:BlockOrEmbedded.class" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attributeGroup ref="tt:div.attlist"/>
   </xs:complexType>
@@ -74,7 +75,7 @@
       <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:group ref="tt:InlineOrEmbedded.class" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attributeGroup ref="tt:p.attlist"/>
   </xs:complexType>
@@ -82,7 +83,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:Inline.class" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:group ref="tt:InlineOrEmbedded.class" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attributeGroup ref="tt:span.attlist"/>
   </xs:complexType>
@@ -109,6 +110,12 @@
       <xs:element ref="tt:div"/>
     </xs:choice>
   </xs:group>
+  <xs:group name="BlockOrEmbedded.class">
+    <xs:choice>
+      <xs:group ref="tt:Block.class"/>
+      <xs:group ref="tt:Embedded.class"/>
+    </xs:choice>
+  </xs:group>
   <xs:group name="InlineNoSpan.class">
     <xs:choice>
       <xs:element ref="tt:br"/>
@@ -120,4 +127,10 @@
       <xs:element ref="tt:span"/>
     </xs:choice>
   </xs:group>
+  <xs:group name="InlineOrEmbedded.class">
+    <xs:choice>
+      <xs:group ref="tt:Inline.class"/>
+      <xs:group ref="tt:Embedded.class"/>
+    </xs:choice>
+  </xs:group>
 </xs:schema>
--- a/ttml2/spec/xsd/ttml2-datatypes.xsd	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-datatypes.xsd	Sat Nov 22 10:10:45 2014 -0700
@@ -73,6 +73,27 @@
   <xs:simpleType name="color">
     <xs:restriction base="xs:string"/>
   </xs:simpleType>
+  <xs:simpleType name="dataEncoding">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="base16"/>
+      <xs:enumeration value="base32"/>
+      <xs:enumeration value="base32hex"/>
+      <xs:enumeration value="base64"/>
+      <xs:enumeration value="base64url"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="dataFormat">
+    <xs:restriction base="xs:token"/>
+  </xs:simpleType>
+  <xs:simpleType name="dataLength">
+    <xs:restriction base="xs:nonNegativeInteger"/>
+  </xs:simpleType>
+  <xs:simpleType name="dataSource">
+    <xs:restriction base="xs:anyURI"/>
+  </xs:simpleType>
+  <xs:simpleType name="dataType">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
   <xs:simpleType name="direction">
     <xs:restriction base="xs:token">
       <xs:enumeration value="ltr"/>
@@ -139,6 +160,9 @@
   <xs:simpleType name="fontFamily">
     <xs:restriction base="xs:string"/>
   </xs:simpleType>
+  <xs:simpleType name="fontRange">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
   <xs:simpleType name="fontSize">
     <xs:annotation>
       <xs:documentation>length | length length</xs:documentation>
--- a/ttml2/spec/xsd/ttml2-document.xsd	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-document.xsd	Sat Nov 22 10:10:45 2014 -0700
@@ -15,6 +15,7 @@
   <xs:include schemaLocation="ttml2-timing-attribs.xsd"/>
   <xs:include schemaLocation="ttml2-head.xsd"/>
   <xs:include schemaLocation="ttml2-content.xsd"/>
+  <xs:include schemaLocation="ttml2-embedded.xsd"/>
   <xs:attributeGroup name="tt.attlist">
     <xs:attributeGroup ref="tt:Core.required.attrib.class"/>
     <xs:attributeGroup ref="ttp:Parameter.attrib.class"/>
--- a/ttml2/spec/xsd/ttml2-head.xsd	Sat Nov 22 07:16:43 2014 -0700
+++ b/ttml2/spec/xsd/ttml2-head.xsd	Sat Nov 22 10:10:45 2014 -0700
@@ -8,6 +8,7 @@
   <xs:include schemaLocation="ttml2-core-attribs.xsd"/>
   <xs:include schemaLocation="ttml2-metadata.xsd"/>
   <xs:include schemaLocation="ttml2-parameters.xsd"/>
+  <xs:include schemaLocation="ttml2-embedded.xsd"/>
   <xs:include schemaLocation="ttml2-styling.xsd"/>
   <xs:include schemaLocation="ttml2-layout.xsd"/>
   <xs:include schemaLocation="ttml2-animation.xsd"/>
@@ -18,6 +19,7 @@
     <xs:sequence>
       <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
       <xs:group ref="tt:Parameters.class" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="tt:resources" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="tt:styling" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="tt:layout" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="tt:animation" minOccurs="0" maxOccurs="1"/>