[ttml10se] narrow textDecoration schema data type; ensure metadata.class children supported on parameter items (xsd); add example files to verify all elements and styles; add validate-examples targets in build
authorGlenn Adams <glenn@skynav.com>
Tue, 14 May 2013 17:27:42 -0600
changeset 388 428c6b4fba46
parent 387 ff85d1234ecb
child 389 74b5545e0787
[ttml10se] narrow textDecoration schema data type; ensure metadata.class children supported on parameter items (xsd); add example files to verify all elements and styles; add validate-examples targets in build
ttml10/spec/build.xml
ttml10/spec/examples/ex3-all-elements.xml
ttml10/spec/examples/ex3-all-styles.xml
ttml10/spec/rnc/ttaf1-dfxp-datatypes.rnc
ttml10/spec/xsd/ttaf1-dfxp-datatypes.xsd
ttml10/spec/xsd/ttaf1-dfxp-parameter-items.xsd
--- a/ttml10/spec/build.xml	Mon May 13 11:32:23 2013 -0600
+++ b/ttml10/spec/build.xml	Tue May 14 17:27:42 2013 -0600
@@ -19,6 +19,7 @@
     <property name="xsd.dir" value="${basedir}/xsd"/>
     <property name="xsd.schema" value="${xsd.dir}/ttaf1-dfxp.xsd"/>
     <property name="profiles.dir" value="${basedir}/profiles"/>
+    <property name="examples.dir" value="${basedir}/examples"/>
 
     <patternset id="escapable">
       <include name="examples/*.xml"/>
@@ -113,6 +114,47 @@
     <target name="validate-profiles"
 	    depends="validate-profile-transformation,validate-profile-presentation,validate-profile-full"/>
 
+    <target name="validate-example-1" description="Validates Example 1.">
+        <!-- validate using RNC schema -->
+        <java fork="true" jar="${jing.jar}">
+            <arg value="-c"/>
+            <arg value="${rnc.schema}"/>
+            <arg value="${examples.dir}/ex1.xml"/>
+        </java>
+        <!-- validate using XSD schema -->
+        <schemavalidate fullchecking="true" warn="true">
+          <schema namespace="http://www.w3.org/ns/ttml" file="${xsd.schema}"/>
+          <fileset dir="${examples.dir}">
+            <include name="ex3.xml"/>
+          </fileset>
+        </schemavalidate>
+    </target>
+
+    <target name="validate-example-3" description="Validates Example 3.">
+        <!-- validate using RNC schema -->
+        <java fork="true" jar="${jing.jar}">
+            <arg value="-c"/>
+            <arg value="${rnc.schema}"/>
+            <arg value="${examples.dir}/ex3-all-elements.xml"/>
+        </java>
+        <java fork="true" jar="${jing.jar}">
+            <arg value="-c"/>
+            <arg value="${rnc.schema}"/>
+            <arg value="${examples.dir}/ex3-all-styles.xml"/>
+        </java>
+        <!-- validate using XSD schema -->
+        <schemavalidate fullchecking="true" warn="true">
+          <schema namespace="http://www.w3.org/ns/ttml" file="${xsd.schema}"/>
+          <fileset dir="${examples.dir}">
+            <include name="ex3-all-elements.xml"/>
+            <include name="ex3-all-styles.xml"/>
+          </fileset>
+        </schemavalidate>
+    </target>
+
+    <target name="validate-examples"
+	    depends="validate-example-1, validate-example-3"/>
+
     <target name="validate-xsl" description="Validates all XML files.">
         <xmlvalidate lenient="true">
             <fileset dir="." includes="*.xsl"/>
@@ -149,7 +191,7 @@
         <xmlvalidate lenient="false" warn="yes" file="ttaf1-dfxp.xml"/>
     </target>
 
-    <target name="validate" depends="validate-xsl,validate-svg,validate-tt-specs,validate-schema-rnc,validate-profiles"/>
+    <target name="validate" depends="validate-schemas,validate-examples,validate-xsl,validate-svg,validate-tt-specs,validate-schema-rnc,validate-profiles"/>
 
     <target name="updateAcks"
         description="Update acknowledgements. Before running this, 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ttml10/spec/examples/ex3-all-elements.xml	Tue May 14 17:27:42 2013 -0600
@@ -0,0 +1,71 @@
+<tt:tt
+  tts:extent="640px 480px"
+  xml:lang="en"
+  xml:space="default"
+  ttp:cellResolution="3 5"
+  ttp:clockMode="utc"
+  ttp:dropMode="nonDrop"
+  ttp:frameRate="30"
+  ttp:frameRateMultiplier="1000 1001"
+  ttp:markerMode="discontinuous"
+  ttp:pixelAspectRatio="4 3"
+  ttp:profile="http://www.w3.org/ns/ttml/profile/dfxp-presentation"
+  ttp:subFrameRate="2"
+  ttp:tickRate="60"
+  ttp:timeBase="media"
+  xmlns:tt="http://www.w3.org/ns/ttml"
+  xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+  xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+  xmlns:tts="http://www.w3.org/ns/ttml#styling">
+  <tt:head>
+    <tt:metadata xml:id="m1"/>
+    <ttm:title xml:id="title">A Title</ttm:title>
+    <ttm:desc xml:id="description">This example TTML document attempts to use every element.</ttm:desc>
+    <ttm:copyright xml:id="copyright">Never and Anon.</ttm:copyright>
+    <ttm:agent xml:id="connery" type="person">
+      <ttm:name type="full">Sir Thomas Sean Connery</ttm:name>
+    </ttm:agent>
+    <ttm:agent xml:id="bond" type="character">
+      <ttm:name type="alias">007</ttm:name>
+      <ttm:actor agent="connery"/>
+    </ttm:agent>
+    <ttp:profile xml:id="profile" use="dfxp-presentation">
+      <tt:metadata xml:id="m2"/>
+      <ttp:features xml:id="f1set" xml:base="http://www.w3.org/ns/ttml/feature/">
+        <tt:metadata/>
+        <ttp:feature xml:id="f1" value="required">#fontStyle-italic</ttp:feature>
+      </ttp:features>
+      <ttp:extensions xml:id="e1set" xml:base="http://www.w3.org/ns/ttml/extension/">
+        <tt:metadata/>
+        <ttp:extension xml:id="e1" value="required">#smpte-tt-image</ttp:extension>
+      </ttp:extensions>
+    </ttp:profile>
+    <tt:styling>
+      <tt:metadata xml:id="m3"/>
+      <tt:style xml:id="s1" tts:color="red"/>
+    </tt:styling>
+    <tt:layout>
+      <tt:metadata xml:id="m4"/>
+      <tt:region xml:id="r1" style="s1">
+        <tt:metadata xml:id="m5"/>
+        <tt:set xml:id="a1" tts:zIndex="-1"/>
+        <tt:style xml:id="s2" tts:color="green"/>
+      </tt:region>
+    </tt:layout>
+  </tt:head>
+  <tt:body region="r1">
+    <tt:metadata xml:id="m6"/>
+    <tt:set xml:id="a2" tts:display="auto"/>
+    <tt:div>
+      <tt:metadata xml:id="m7"/>
+      <tt:set xml:id="a3" tts:writingMode="tb"/>
+      <tt:p ttm:agent="bond">
+        <tt:metadata xml:id="m8"/>
+        <tt:set xml:id="a4" tts:visibility="hidden"/>
+        <tt:span><tt:metadata xml:id="m9"/><tt:set xml:id="a5" tts:fontSize="20px"/>Text 1</tt:span>
+        <tt:br><tt:metadata xml:id="m10"/><tt:set xml:id="a6" tts:display="none"/></tt:br>
+        <tt:span><tt:metadata xml:id="m11"/>Text 2</tt:span>
+      </tt:p>
+    </tt:div>
+  </tt:body>
+</tt:tt>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ttml10/spec/examples/ex3-all-styles.xml	Tue May 14 17:27:42 2013 -0600
@@ -0,0 +1,363 @@
+<tt tts:extent="640px 480px" xml:lang="en" xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
+  <head>
+    <layout>
+      <region xml:id="r1">
+        <!-- legal backgroundColor values (not exhaustive) -->
+        <style tts:backgroundColor="#000000"/>
+        <style tts:backgroundColor="#c0c0c0"/>
+        <style tts:backgroundColor="#808080"/>
+        <style tts:backgroundColor="#ffffff"/>
+        <style tts:backgroundColor="#800000"/>
+        <style tts:backgroundColor="#ff0000"/>
+        <style tts:backgroundColor="#800080"/>
+        <style tts:backgroundColor="#ff00ff"/>
+        <style tts:backgroundColor="#008000"/>
+        <style tts:backgroundColor="#00ff00"/>
+        <style tts:backgroundColor="#808000"/>
+        <style tts:backgroundColor="#ffff00"/>
+        <style tts:backgroundColor="#000080"/>
+        <style tts:backgroundColor="#0000ff"/>
+        <style tts:backgroundColor="#008080"/>
+        <style tts:backgroundColor="#00ffff"/>
+        <style tts:backgroundColor="#00000000"/>
+        <style tts:backgroundColor="#000000ff"/>
+        <style tts:backgroundColor="#c0c0c0ff"/>
+        <style tts:backgroundColor="#808080ff"/>
+        <style tts:backgroundColor="#ffffffff"/>
+        <style tts:backgroundColor="#800000ff"/>
+        <style tts:backgroundColor="#ff0000ff"/>
+        <style tts:backgroundColor="#800080ff"/>
+        <style tts:backgroundColor="#ff00ffff"/>
+        <style tts:backgroundColor="#008000ff"/>
+        <style tts:backgroundColor="#00ff00ff"/>
+        <style tts:backgroundColor="#808000ff"/>
+        <style tts:backgroundColor="#ffff00ff"/>
+        <style tts:backgroundColor="#000080ff"/>
+        <style tts:backgroundColor="#0000ffff"/>
+        <style tts:backgroundColor="#008080ff"/>
+        <style tts:backgroundColor="#00ffffff"/>
+        <style tts:backgroundColor="rgb(0,0,0)"/>
+        <style tts:backgroundColor="rgb(192,192,192)"/>
+        <style tts:backgroundColor="rgb(128,128,128)"/>
+        <style tts:backgroundColor="rgb(255,255,255)"/>
+        <style tts:backgroundColor="rgb(128,0,0)"/>
+        <style tts:backgroundColor="rgb(255,0,0)"/>
+        <style tts:backgroundColor="rgb(128,0,128)"/>
+        <style tts:backgroundColor="rgb(255,0,255)"/>
+        <style tts:backgroundColor="rgb(255,0,255)"/>
+        <style tts:backgroundColor="rgb(0,128,0)"/>
+        <style tts:backgroundColor="rgb(0,255,0)"/>
+        <style tts:backgroundColor="rgb(128,128,0)"/>
+        <style tts:backgroundColor="rgb(255,255,0)"/>
+        <style tts:backgroundColor="rgb(0,0,128)"/>
+        <style tts:backgroundColor="rgb(0,0,255)"/>
+        <style tts:backgroundColor="rgb(0,128,128)"/>
+        <style tts:backgroundColor="rgb(0,255,255)"/>
+        <style tts:backgroundColor="rgb(0,255,255)"/>
+        <style tts:backgroundColor="rgba(0,0,0,0)"/>
+        <style tts:backgroundColor="rgba(0,0,0,255)"/>
+        <style tts:backgroundColor="rgba(192,192,192,255)"/>
+        <style tts:backgroundColor="rgba(128,128,128,255)"/>
+        <style tts:backgroundColor="rgba(255,255,255,255)"/>
+        <style tts:backgroundColor="rgba(128,0,0,255)"/>
+        <style tts:backgroundColor="rgba(255,0,0,255)"/>
+        <style tts:backgroundColor="rgba(128,0,128,255)"/>
+        <style tts:backgroundColor="rgba(255,0,255,255)"/>
+        <style tts:backgroundColor="rgba(255,0,255,255)"/>
+        <style tts:backgroundColor="rgba(0,128,0,255)"/>
+        <style tts:backgroundColor="rgba(0,255,0,255)"/>
+        <style tts:backgroundColor="rgba(128,128,0,255)"/>
+        <style tts:backgroundColor="rgba(255,255,0,255)"/>
+        <style tts:backgroundColor="rgba(0,0,128,255)"/>
+        <style tts:backgroundColor="rgba(0,0,255,255)"/>
+        <style tts:backgroundColor="rgba(0,128,128,255)"/>
+        <style tts:backgroundColor="rgba(0,255,255,255)"/>
+        <style tts:backgroundColor="rgba(0,255,255,255)"/>
+        <style tts:backgroundColor="transparent"/>
+        <style tts:backgroundColor="black"/>
+        <style tts:backgroundColor="silver"/>
+        <style tts:backgroundColor="gray"/>
+        <style tts:backgroundColor="white"/>
+        <style tts:backgroundColor="maroon"/>
+        <style tts:backgroundColor="red"/>
+        <style tts:backgroundColor="purple"/>
+        <style tts:backgroundColor="fuchsia"/>
+        <style tts:backgroundColor="magenta"/>
+        <style tts:backgroundColor="green"/>
+        <style tts:backgroundColor="lime"/>
+        <style tts:backgroundColor="olive"/>
+        <style tts:backgroundColor="yellow"/>
+        <style tts:backgroundColor="navy"/>
+        <style tts:backgroundColor="blue"/>
+        <style tts:backgroundColor="teal"/>
+        <style tts:backgroundColor="aqua"/>
+        <style tts:backgroundColor="cyan"/>
+        <!-- legal color values (not exhaustive) -->
+        <style tts:color="#000000"/>
+        <style tts:color="#c0c0c0"/>
+        <style tts:color="#808080"/>
+        <style tts:color="#ffffff"/>
+        <style tts:color="#800000"/>
+        <style tts:color="#ff0000"/>
+        <style tts:color="#800080"/>
+        <style tts:color="#ff00ff"/>
+        <style tts:color="#008000"/>
+        <style tts:color="#00ff00"/>
+        <style tts:color="#808000"/>
+        <style tts:color="#ffff00"/>
+        <style tts:color="#000080"/>
+        <style tts:color="#0000ff"/>
+        <style tts:color="#008080"/>
+        <style tts:color="#00ffff"/>
+        <style tts:color="#00000000"/>
+        <style tts:color="#000000ff"/>
+        <style tts:color="#c0c0c0ff"/>
+        <style tts:color="#808080ff"/>
+        <style tts:color="#ffffffff"/>
+        <style tts:color="#800000ff"/>
+        <style tts:color="#ff0000ff"/>
+        <style tts:color="#800080ff"/>
+        <style tts:color="#ff00ffff"/>
+        <style tts:color="#008000ff"/>
+        <style tts:color="#00ff00ff"/>
+        <style tts:color="#808000ff"/>
+        <style tts:color="#ffff00ff"/>
+        <style tts:color="#000080ff"/>
+        <style tts:color="#0000ffff"/>
+        <style tts:color="#008080ff"/>
+        <style tts:color="#00ffffff"/>
+        <style tts:color="rgb(0,0,0)"/>
+        <style tts:color="rgb(192,192,192)"/>
+        <style tts:color="rgb(128,128,128)"/>
+        <style tts:color="rgb(255,255,255)"/>
+        <style tts:color="rgb(128,0,0)"/>
+        <style tts:color="rgb(255,0,0)"/>
+        <style tts:color="rgb(128,0,128)"/>
+        <style tts:color="rgb(255,0,255)"/>
+        <style tts:color="rgb(255,0,255)"/>
+        <style tts:color="rgb(0,128,0)"/>
+        <style tts:color="rgb(0,255,0)"/>
+        <style tts:color="rgb(128,128,0)"/>
+        <style tts:color="rgb(255,255,0)"/>
+        <style tts:color="rgb(0,0,128)"/>
+        <style tts:color="rgb(0,0,255)"/>
+        <style tts:color="rgb(0,128,128)"/>
+        <style tts:color="rgb(0,255,255)"/>
+        <style tts:color="rgb(0,255,255)"/>
+        <style tts:color="rgba(0,0,0,0)"/>
+        <style tts:color="rgba(0,0,0,255)"/>
+        <style tts:color="rgba(192,192,192,255)"/>
+        <style tts:color="rgba(128,128,128,255)"/>
+        <style tts:color="rgba(255,255,255,255)"/>
+        <style tts:color="rgba(128,0,0,255)"/>
+        <style tts:color="rgba(255,0,0,255)"/>
+        <style tts:color="rgba(128,0,128,255)"/>
+        <style tts:color="rgba(255,0,255,255)"/>
+        <style tts:color="rgba(255,0,255,255)"/>
+        <style tts:color="rgba(0,128,0,255)"/>
+        <style tts:color="rgba(0,255,0,255)"/>
+        <style tts:color="rgba(128,128,0,255)"/>
+        <style tts:color="rgba(255,255,0,255)"/>
+        <style tts:color="rgba(0,0,128,255)"/>
+        <style tts:color="rgba(0,0,255,255)"/>
+        <style tts:color="rgba(0,128,128,255)"/>
+        <style tts:color="rgba(0,255,255,255)"/>
+        <style tts:color="rgba(0,255,255,255)"/>
+        <style tts:color="transparent"/>
+        <style tts:color="black"/>
+        <style tts:color="silver"/>
+        <style tts:color="gray"/>
+        <style tts:color="white"/>
+        <style tts:color="maroon"/>
+        <style tts:color="red"/>
+        <style tts:color="purple"/>
+        <style tts:color="fuchsia"/>
+        <style tts:color="magenta"/>
+        <style tts:color="green"/>
+        <style tts:color="lime"/>
+        <style tts:color="olive"/>
+        <style tts:color="yellow"/>
+        <style tts:color="navy"/>
+        <style tts:color="blue"/>
+        <style tts:color="teal"/>
+        <style tts:color="aqua"/>
+        <style tts:color="cyan"/>
+        <!-- legal direction values -->
+        <style tts:direction="ltr"/>
+        <style tts:direction="rtl"/>
+        <!-- legal display values -->
+        <style tts:display="auto"/>
+        <style tts:display="none"/>
+        <!-- legal displayAlign values -->
+        <style tts:displayAlign="before"/>
+        <style tts:displayAlign="center"/>
+        <style tts:displayAlign="after"/>
+        <!-- legal extent values (not exhaustive) -->
+        <style tts:extent="auto"/>
+        <style tts:extent="620px 96px"/>
+        <!-- legal fontFamily values (not exhaustive) -->
+        <style tts:fontFamily="default"/>
+        <style tts:fontFamily="monospace"/>
+        <style tts:fontFamily="sansSerif"/>
+        <style tts:fontFamily="serif"/>
+        <style tts:fontFamily="monospaceSansSerif"/>
+        <style tts:fontFamily="monospaceSerif"/>
+        <style tts:fontFamily="proportionalSansSerif"/>
+        <style tts:fontFamily="proportionalSerif"/>
+        <style tts:fontFamily="Courier New"/>
+        <style tts:fontFamily="'Courier New'"/>
+        <style tts:fontFamily="default, Courier New"/>
+        <style tts:fontFamily="default, 'Courier New'"/>
+        <style tts:fontFamily="Courier New, default"/>
+        <style tts:fontFamily="'Courier New', default"/>
+        <!-- legal fontSize values (not exhaustive) -->
+        <style tts:fontSize="1c"/>
+        <style tts:fontSize="40px"/>
+        <style tts:fontSize="40px 50px"/>
+        <style tts:fontSize="40px 1c"/>
+        <!-- legal fontStyle values -->
+        <style tts:fontStyle="normal"/>
+        <style tts:fontStyle="italic"/>
+        <style tts:fontStyle="oblique"/>
+        <!-- legal fontWeight values -->
+        <style tts:fontWeight="normal"/>
+        <style tts:fontWeight="bold"/>
+        <!-- legal lineHeight values (not exhaustive) -->
+        <style tts:lineHeight="normal"/>
+        <style tts:lineHeight="1c"/>
+        <style tts:lineHeight="40px"/>
+        <!-- legal opacity values (not exhaustive) -->
+        <style tts:opacity="0"/>
+        <style tts:opacity="0.5"/>
+        <style tts:opacity="1"/>
+        <!-- legal origin values (not exhaustive) -->
+        <style tts:origin="auto"/>
+        <style tts:origin="10px 100px"/>
+        <style tts:origin="1c 10c"/>
+        <style tts:origin="40px 10c"/>
+        <!-- legal overflow values -->
+        <style tts:overflow="visible"/>
+        <style tts:overflow="hidden"/>
+        <!-- legal padding values (not exhaustive) -->
+        <style tts:padding="1px"/>
+        <style tts:padding="1px 2px"/>
+        <style tts:padding="1px 2px 3px"/>
+        <style tts:padding="1px 2px 3px 4px"/>
+        <!-- legal showBackground values -->
+        <style tts:showBackground="always"/>
+        <style tts:showBackground="whenActive"/>
+        <!-- legal textAlign values -->
+        <style tts:textAlign="left"/>
+        <style tts:textAlign="center"/>
+        <style tts:textAlign="right"/>
+        <style tts:textAlign="start"/>
+        <style tts:textAlign="end"/>
+        <!-- legal textDecoration values -->
+        <style tts:textDecoration="none"/>
+        <style tts:textDecoration="underline"/>
+        <style tts:textDecoration="noUnderline"/>
+        <style tts:textDecoration="lineThrough"/>
+        <style tts:textDecoration="noLineThrough"/>
+        <style tts:textDecoration="overline"/>
+        <style tts:textDecoration="noOverline"/>
+        <style tts:textDecoration="noUnderline noLineThrough"/>
+        <style tts:textDecoration="noLineThrough noUnderline"/>
+        <style tts:textDecoration="noUnderline lineThrough"/>
+        <style tts:textDecoration="lineThrough noUnderline"/>
+        <style tts:textDecoration="underline noLineThrough"/>
+        <style tts:textDecoration="noLineThrough underline"/>
+        <style tts:textDecoration="underline lineThrough"/>
+        <style tts:textDecoration="lineThrough underline"/>
+        <style tts:textDecoration="noUnderline noOverline"/>
+        <style tts:textDecoration="noOverline noUnderline"/>
+        <style tts:textDecoration="noUnderline overline"/>
+        <style tts:textDecoration="overline noUnderline"/>
+        <style tts:textDecoration="underline noOverline"/>
+        <style tts:textDecoration="noOverline underline"/>
+        <style tts:textDecoration="underline overline"/>
+        <style tts:textDecoration="overline underline"/>
+        <style tts:textDecoration="noUnderline noLineThrough noOverline"/>
+        <style tts:textDecoration="noUnderline noOverline noLineThrough"/>
+        <style tts:textDecoration="noLineThrough noUnderline noOverline"/>
+        <style tts:textDecoration="noLineThrough noOverline noUnderline"/>
+        <style tts:textDecoration="noOverline noUnderline noLineThrough"/>
+        <style tts:textDecoration="noOverline noLineThrough noUnderline"/>
+        <style tts:textDecoration="noUnderline noLineThrough overline"/>
+        <style tts:textDecoration="noUnderline overline noLineThrough"/>
+        <style tts:textDecoration="noLineThrough noUnderline overline"/>
+        <style tts:textDecoration="noLineThrough overline noUnderline"/>
+        <style tts:textDecoration="overline noUnderline noLineThrough"/>
+        <style tts:textDecoration="overline noLineThrough noUnderline"/>
+        <style tts:textDecoration="noUnderline lineThrough noOverline"/>
+        <style tts:textDecoration="noUnderline noOverline lineThrough"/>
+        <style tts:textDecoration="lineThrough noUnderline noOverline"/>
+        <style tts:textDecoration="lineThrough noOverline noUnderline"/>
+        <style tts:textDecoration="noOverline noUnderline lineThrough"/>
+        <style tts:textDecoration="noOverline lineThrough noUnderline"/>
+        <style tts:textDecoration="noUnderline lineThrough overline"/>
+        <style tts:textDecoration="noUnderline overline lineThrough"/>
+        <style tts:textDecoration="lineThrough noUnderline overline"/>
+        <style tts:textDecoration="lineThrough overline noUnderline"/>
+        <style tts:textDecoration="overline noUnderline lineThrough"/>
+        <style tts:textDecoration="overline lineThrough noUnderline"/>
+        <style tts:textDecoration="underline noLineThrough noOverline"/>
+        <style tts:textDecoration="underline noOverline noLineThrough"/>
+        <style tts:textDecoration="noLineThrough underline noOverline"/>
+        <style tts:textDecoration="noLineThrough noOverline underline"/>
+        <style tts:textDecoration="noOverline underline noLineThrough"/>
+        <style tts:textDecoration="noOverline noLineThrough underline"/>
+        <style tts:textDecoration="underline noLineThrough overline"/>
+        <style tts:textDecoration="underline overline noLineThrough"/>
+        <style tts:textDecoration="noLineThrough underline overline"/>
+        <style tts:textDecoration="noLineThrough overline underline"/>
+        <style tts:textDecoration="overline underline noLineThrough"/>
+        <style tts:textDecoration="overline noLineThrough underline"/>
+        <style tts:textDecoration="underline lineThrough noOverline"/>
+        <style tts:textDecoration="underline noOverline lineThrough"/>
+        <style tts:textDecoration="lineThrough underline noOverline"/>
+        <style tts:textDecoration="lineThrough noOverline underline"/>
+        <style tts:textDecoration="noOverline underline lineThrough"/>
+        <style tts:textDecoration="noOverline lineThrough underline"/>
+        <style tts:textDecoration="underline lineThrough overline"/>
+        <style tts:textDecoration="underline overline lineThrough"/>
+        <style tts:textDecoration="lineThrough underline overline"/>
+        <style tts:textDecoration="lineThrough overline underline"/>
+        <style tts:textDecoration="overline underline lineThrough"/>
+        <style tts:textDecoration="overline lineThrough underline"/>
+        <!-- legal textOutline values (not exhaustive) -->
+        <style tts:textOutline="yellow 1px"/>
+        <style tts:textOutline="yellow 1px 2px"/>
+        <style tts:textOutline="1px"/>
+        <style tts:textOutline="1px 2px"/>
+        <!-- legal unicodeBidi values -->
+        <style tts:unicodeBidi="normal"/>
+        <style tts:unicodeBidi="embed"/>
+        <style tts:unicodeBidi="bidiOverride"/>
+        <!-- legal visibility values -->
+        <style tts:visibility="visible"/>
+        <style tts:visibility="hidden"/>
+        <!-- legal wrapOption values -->
+        <style tts:wrapOption="wrap"/>
+        <style tts:wrapOption="noWrap"/>
+        <!-- legal writingMode values -->
+        <style tts:writingMode="lrtb"/>
+        <style tts:writingMode="rltb"/>
+        <style tts:writingMode="tbrl"/>
+        <style tts:writingMode="tblr"/>
+        <style tts:writingMode="lr"/>
+        <style tts:writingMode="rl"/>
+        <style tts:writingMode="tb"/>
+        <!-- legal zIndex values (not exhaustive) -->
+        <style tts:zIndex="auto"/>
+        <style tts:zIndex="-1"/>
+        <style tts:zIndex="0"/>
+        <style tts:zIndex="1"/>
+      </region>
+    </layout>
+  </head>
+  <body region="r1">
+    <div>
+      <p>Text 1</p>
+    </div>
+  </body>
+</tt>
--- a/ttml10/spec/rnc/ttaf1-dfxp-datatypes.rnc	Mon May 13 11:32:23 2013 -0600
+++ b/ttml10/spec/rnc/ttaf1-dfxp-datatypes.rnc	Tue May 14 17:27:42 2013 -0600
@@ -157,7 +157,77 @@
   "end"
 
 TTAF.TextDecoration.datatype =
-  string
+  "none" |
+  "underline" |
+  "noUnderline" |
+  "lineThrough" |
+  "noLineThrough" |
+  "overline" |
+  "noOverline" |
+  "noUnderline noLineThrough" |
+  "noLineThrough noUnderline" |
+  "noUnderline lineThrough" |
+  "lineThrough noUnderline" |
+  "underline noLineThrough" |
+  "noLineThrough underline" |
+  "underline lineThrough" |
+  "lineThrough underline" |
+  "noUnderline noOverline" |
+  "noOverline noUnderline" |
+  "noUnderline overline" |
+  "overline noUnderline" |
+  "underline noOverline" |
+  "noOverline underline" |
+  "underline overline" |
+  "overline underline" |
+  "noUnderline noLineThrough noOverline" |
+  "noUnderline noOverline noLineThrough" |
+  "noLineThrough noUnderline noOverline" |
+  "noLineThrough noOverline noUnderline" |
+  "noOverline noUnderline noLineThrough" |
+  "noOverline noLineThrough noUnderline" |
+  "noUnderline noLineThrough overline" |
+  "noUnderline overline noLineThrough" |
+  "noLineThrough noUnderline overline" |
+  "noLineThrough overline noUnderline" |
+  "overline noUnderline noLineThrough" |
+  "overline noLineThrough noUnderline" |
+  "noUnderline lineThrough noOverline" |
+  "noUnderline noOverline lineThrough" |
+  "lineThrough noUnderline noOverline" |
+  "lineThrough noOverline noUnderline" |
+  "noOverline noUnderline lineThrough" |
+  "noOverline lineThrough noUnderline" |
+  "noUnderline lineThrough overline" |
+  "noUnderline overline lineThrough" |
+  "lineThrough noUnderline overline" |
+  "lineThrough overline noUnderline" |
+  "overline noUnderline lineThrough" |
+  "overline lineThrough noUnderline" |
+  "underline noLineThrough noOverline" |
+  "underline noOverline noLineThrough" |
+  "noLineThrough underline noOverline" |
+  "noLineThrough noOverline underline" |
+  "noOverline underline noLineThrough" |
+  "noOverline noLineThrough underline" |
+  "underline noLineThrough overline" |
+  "underline overline noLineThrough" |
+  "noLineThrough underline overline" |
+  "noLineThrough overline underline" |
+  "overline underline noLineThrough" |
+  "overline noLineThrough underline" |
+  "underline lineThrough noOverline" |
+  "underline noOverline lineThrough" |
+  "lineThrough underline noOverline" |
+  "lineThrough noOverline underline" |
+  "noOverline underline lineThrough" |
+  "noOverline lineThrough underline" |
+  "underline lineThrough overline" |
+  "underline overline lineThrough" |
+  "lineThrough underline overline" |
+  "lineThrough overline underline" |
+  "overline underline lineThrough" |
+  "overline lineThrough underline"
 
 TTAF.TextOutline.datatype =
   string
--- a/ttml10/spec/xsd/ttaf1-dfxp-datatypes.xsd	Mon May 13 11:32:23 2013 -0600
+++ b/ttml10/spec/xsd/ttaf1-dfxp-datatypes.xsd	Tue May 14 17:27:42 2013 -0600
@@ -229,7 +229,79 @@
     <xs:annotation>
       <xs:documentation>none | [ [ underline | noUnderline ] || [ lineThrough | noLineThrough ] || [ overline | noOverline ] ]</xs:documentation>
     </xs:annotation>
-    <xs:restriction base="xs:string"/>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="underline"/>
+      <xs:enumeration value="noUnderline"/>
+      <xs:enumeration value="lineThrough"/>
+      <xs:enumeration value="noLineThrough"/>
+      <xs:enumeration value="overline"/>
+      <xs:enumeration value="noOverline"/>
+      <xs:enumeration value="noUnderline noLineThrough"/>
+      <xs:enumeration value="noLineThrough noUnderline"/>
+      <xs:enumeration value="noUnderline lineThrough"/>
+      <xs:enumeration value="lineThrough noUnderline"/>
+      <xs:enumeration value="underline noLineThrough"/>
+      <xs:enumeration value="noLineThrough underline"/>
+      <xs:enumeration value="underline lineThrough"/>
+      <xs:enumeration value="lineThrough underline"/>
+      <xs:enumeration value="noUnderline noOverline"/>
+      <xs:enumeration value="noOverline noUnderline"/>
+      <xs:enumeration value="noUnderline overline"/>
+      <xs:enumeration value="overline noUnderline"/>
+      <xs:enumeration value="underline noOverline"/>
+      <xs:enumeration value="noOverline underline"/>
+      <xs:enumeration value="underline overline"/>
+      <xs:enumeration value="overline underline"/>
+      <xs:enumeration value="noUnderline noLineThrough noOverline"/>
+      <xs:enumeration value="noUnderline noOverline noLineThrough"/>
+      <xs:enumeration value="noLineThrough noUnderline noOverline"/>
+      <xs:enumeration value="noLineThrough noOverline noUnderline"/>
+      <xs:enumeration value="noOverline noUnderline noLineThrough"/>
+      <xs:enumeration value="noOverline noLineThrough noUnderline"/>
+      <xs:enumeration value="noUnderline noLineThrough overline"/>
+      <xs:enumeration value="noUnderline overline noLineThrough"/>
+      <xs:enumeration value="noLineThrough noUnderline overline"/>
+      <xs:enumeration value="noLineThrough overline noUnderline"/>
+      <xs:enumeration value="overline noUnderline noLineThrough"/>
+      <xs:enumeration value="overline noLineThrough noUnderline"/>
+      <xs:enumeration value="noUnderline lineThrough noOverline"/>
+      <xs:enumeration value="noUnderline noOverline lineThrough"/>
+      <xs:enumeration value="lineThrough noUnderline noOverline"/>
+      <xs:enumeration value="lineThrough noOverline noUnderline"/>
+      <xs:enumeration value="noOverline noUnderline lineThrough"/>
+      <xs:enumeration value="noOverline lineThrough noUnderline"/>
+      <xs:enumeration value="noUnderline lineThrough overline"/>
+      <xs:enumeration value="noUnderline overline lineThrough"/>
+      <xs:enumeration value="lineThrough noUnderline overline"/>
+      <xs:enumeration value="lineThrough overline noUnderline"/>
+      <xs:enumeration value="overline noUnderline lineThrough"/>
+      <xs:enumeration value="overline lineThrough noUnderline"/>
+      <xs:enumeration value="underline noLineThrough noOverline"/>
+      <xs:enumeration value="underline noOverline noLineThrough"/>
+      <xs:enumeration value="noLineThrough underline noOverline"/>
+      <xs:enumeration value="noLineThrough noOverline underline"/>
+      <xs:enumeration value="noOverline underline noLineThrough"/>
+      <xs:enumeration value="noOverline noLineThrough underline"/>
+      <xs:enumeration value="underline noLineThrough overline"/>
+      <xs:enumeration value="underline overline noLineThrough"/>
+      <xs:enumeration value="noLineThrough underline overline"/>
+      <xs:enumeration value="noLineThrough overline underline"/>
+      <xs:enumeration value="overline underline noLineThrough"/>
+      <xs:enumeration value="overline noLineThrough underline"/>
+      <xs:enumeration value="underline lineThrough noOverline"/>
+      <xs:enumeration value="underline noOverline lineThrough"/>
+      <xs:enumeration value="lineThrough underline noOverline"/>
+      <xs:enumeration value="lineThrough noOverline underline"/>
+      <xs:enumeration value="noOverline underline lineThrough"/>
+      <xs:enumeration value="noOverline lineThrough underline"/>
+      <xs:enumeration value="underline lineThrough overline"/>
+      <xs:enumeration value="underline overline lineThrough"/>
+      <xs:enumeration value="lineThrough underline overline"/>
+      <xs:enumeration value="lineThrough overline underline"/>
+      <xs:enumeration value="overline underline lineThrough"/>
+      <xs:enumeration value="overline lineThrough underline"/>
+    </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="textOutline">
     <xs:annotation>
--- a/ttml10/spec/xsd/ttaf1-dfxp-parameter-items.xsd	Mon May 13 11:32:23 2013 -0600
+++ b/ttml10/spec/xsd/ttaf1-dfxp-parameter-items.xsd	Tue May 14 17:27:42 2013 -0600
@@ -37,6 +37,7 @@
   </xs:attributeGroup>
   <xs:complexType name="profile.eltype">
     <xs:sequence>
+      <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element ref="ttp:features" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element ref="ttp:extensions" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
@@ -44,6 +45,7 @@
   </xs:complexType>
   <xs:complexType name="features.eltype">
     <xs:sequence>
+      <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element ref="ttp:feature" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attributeGroup ref="ttp:features.attlist"/>
@@ -57,6 +59,7 @@
   </xs:complexType>
   <xs:complexType name="extensions.eltype">
     <xs:sequence>
+      <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element ref="ttp:extension" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attributeGroup ref="ttp:extensions.attlist"/>