Upload (prior) existing TTAF1 REQ and DFXP sources.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/Overview.html Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,14743 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <title>Timed Text (TT) Authoring Format 1.0 – Distribution Format Exchange
+ Profile (DFXP)</title>
+ <style type="text/css">
+ /*<![CDATA[*/
+code { font-family: monospace; }
+div.constraint,
+div.issue,
+div.note,
+div.notice { margin-left: 2em; }
+li p { margin-top: 0.3em;
+ margin-bottom: 0.3em; }
+div.exampleInner pre { margin-left: 1em;
+ margin-top: 0em; margin-bottom: 0em}
+div.exampleOuter {border: 4px double gray;
+ margin: 0em; padding: 0em}
+div.exampleInner { background-color: #d5dee3;
+ border-top-width: 4px;
+ border-top-style: double;
+ border-top-color: #d3d3d3;
+ border-bottom-width: 4px;
+ border-bottom-style: double;
+ border-bottom-color: #d3d3d3;
+ padding: 4px; margin: 0em }
+div.exampleWrapper { margin: 4px }
+div.exampleHeader { font-weight: bold;
+ margin: 4px}
+div.issue { border: 2px solid black; background-color: #ffff66; padding: 0em 1em; margin: 0em 0em }
+table.ednote { border-collapse: collapse; border: 2px solid black; width: 85% }
+table.ednote td { background-color: #ddaa66; border: 2px solid black }
+table.acronyms td.label { width: 15% }
+table.acronyms td.def { width: 65% }
+table.graphic { border: 0px none black; width: 100%; border-collapse: collapse }
+table.graphic caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.graphic td { border: 0px none black; text-align: center }
+table.common { border: 2px solid black; width: 85%; border-collapse: collapse }
+table.common caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+table.common th { padding: 0em 0.5em; border: 2px solid black; text-align: left }
+table.common td { padding: 0em 0.5em; border: 2px solid black }
+table.syntax { border: 0px solid black; width: 85%; border-collapse: collapse }
+table.syntax caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+table.syntax th { border: 0px solid black; text-align: left }
+table.syntax td { border: 0px solid black }
+table.syntax div { background-color: #ffffc8 }
+table.example { border: 0px solid black; width: 85%; border-collapse: collapse }
+table.example caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+table.example th { border: 0px solid black; text-align: left }
+table.example td { border: 0px solid black }
+table.example div { background-color: #c8ffff }
+table.example-images { text-align: center; border: 0px solid black; width: 85%; border-collapse: collapse }
+table.example-images caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.example-images td { border: 0px solid black; text-align: center }
+table.example-images-bordered { text-align: center; border: 0px solid black; width: 85%; border-collapse: collapse }
+table.example-images-bordered caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.example-images-bordered td { border: 1px solid red; text-align: left }
+.tbd { background-color: #ffff33; border: 2px solid black; width: 85% }
+.strong { font-weight: bold }
+.reqattr { font-weight: bold }
+.optattr { font-style: italic }
+.diff-add { color: red; }
+.diff-del { color: red; text-decoration: line-through; }
+.diff-chg { background-color: #99FF99; }
+.diff-off {}
+ /*]]>*/
+ </style>
+ <link rel="stylesheet" type="text/css"
+ href="http://www.w3.org/StyleSheets/TR/W3C-CR.css" />
+ </head>
+ <body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
+ alt="W3C" height="48" width="72" /></a></p>
+ <h1><a name="title" id="title"></a>Timed Text (TT) Authoring Format 1.0 –
+ Distribution Format Exchange Profile (DFXP)</h1>
+ <h2><a name="w3c-doctype" id="w3c-doctype"></a>W3C Candidate Recommendation 10
+ November 2006</h2>
+ <dl>
+ <dt>This version:</dt>
+ <dd><a
+ href="http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061110/">http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061110/</a></dd>
+ <dt>Latest version:</dt>
+ <dd><a
+ href="http://www.w3.org/TR/ttaf1-dfxp/">http://www.w3.org/TR/ttaf1-dfxp/</a></dd>
+ <dt>Previous version:</dt>
+ <dd><a
+ href="http://www.w3.org/TR/2006/WD-ttaf1-dfxp-20060427/">http://www.w3.org/TR/2006/WD-ttaf1-dfxp-20060427/</a></dd>
+ <dt>Editor:</dt>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Glenn Adams, Extensible Formatting Systems, Inc. (XFSI)</td>
+ <td><img src="images/ga.png" alt="glenn at x f s i dot com" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dt>Contributing Authors:</dt>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Mike Dolan, Invited Expert</td>
+ <td><img src="images/md.png" alt="m dolan at new t b t dot com" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Geoff Freed, WGBH National Center for Accessible Media</td>
+ <td><img src="images/gf.png"
+ alt="geoff underbar freed at w g b h dot org" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Sean Hayes, Microsoft</td>
+ <td><img src="images/sh.png"
+ alt="sean dot hayes at microsoft dot com" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Erik Hodge, RealNetworks</td>
+ <td><img src="images/eh.png" alt="e hodge at real dot com" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>David Kirby, British Broadcasting Corporation (BBC)</td>
+ <td><img src="images/dk.png"
+ alt="david dot kirby at r d dot b b c dot c o dot u k" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Thierry Michel, W3C</td>
+ <td><img src="images/tm.png" alt="t michel at w 3 dot org" /></td>
+ </tr>
+ </table>
+ </dd>
+ <dd>
+ <table style="margin: 0em 0em">
+ <tr>
+ <td>Dave Singer, Apple Computer</td>
+ <td><img src="images/ds.png" alt="singer at apple dot com" /></td>
+ </tr>
+ </table>
+ </dd>
+ </dl>
+<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2006 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
+ </div>
+ <hr />
+ <div>
+ <h2><a name="abstract" id="abstract"></a>Abstract</h2>
+ <p>This document specifies the distribution format exchange profile (DFXP) of the
+ timed text authoring format (TT AF) in terms of a vocabulary and semantics
+ thereof.</p>
+ <p>The timed text authoring format is a content type that represents timed text
+ media for the purpose of interchange among authoring systems. Timed text is textual
+ information that is intrinsically or extrinsically associated with timing
+ information.</p>
+ <p>The Distribution Format Exchange Profile is intended to be used for the purpose
+ of transcoding or exchanging timed text information among legacy distribution
+ content formats presently in use for subtitling and captioning functions.</p>
+ <p>In addition to being used for interchange among legacy distribution content
+ formats, DFXP content may be used directly as a distribution format, for example,
+ providing a standard content format to reference from a <code><text></code>
+ or <code><textstream></code> media object element in a <a
+ href="#smil21">[SMIL 2.1]</a> document.</p>
+ </div>
+ <div>
+ <h2><a name="status" id="status"></a>Status of this Document</h2>
+ <p><em>This section describes the status of this document at the time of its
+ publication. Other documents may supersede this document. A list of current W3C
+ publications and the latest revision of this technical report can be found in the
+ <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
+ http://www.w3.org/TR/.</em></p>
+ <p>This is the 10 November 2006 Candidate Recommendation of the Timed Text
+ (TT) Authoring Format 1.0 – Distribution Format Exchange Profile (DFXP). W3C
+ publishes a Candidate Recommendation to indicate that the document is believed to
+ be stable and to encourage implementation by the developer community. The <a
+ href="http://www.w3.org/AudioVideo/TT/">Timed Text (TT) Working Group</a> expects
+ to request that the Director advance this document to Proposed Recommendation once
+ the Working Group has, for each test in the <a
+ href="http://www.w3.org/2006/DFXP/testsuite/Overview.html">DFXP
+ 1.0 Test Suite</a>,
+ demonstrated support by two interoperable implementations. The Working
+ Group, working closely with the developer community, expects to show these
+ implementations by 01 March 2007. This estimate is based in part on the preliminary
+ <a href="http://www.w3.org/2006/DFXP/DFXP-implementation-result.html">DFXP
+ Interoperability Implementation Report</a>. The Working Group does not plan to
+ request to advance to Proposed Recommendation prior to 01 April 2007.</p>
+ <p>This is a W3C Candidate Recommendation. The second Last Call Working Draft for
+ this specification resulted in a number of Last Call comments which have all been
+ addressed by the working group; a list of all Last Call comments can be found in
+ the <a href="http://www.w3.org/2005/03/21/DFXP-2ND-LastCallResponses.html">Second
+ Last Call Comments List</a>. The list of changes made since the last public Working
+ Draft is available in <a href="#change-history-lc2-to-cr"><b>M.2 Changes from
+ Second Last Call Working Draft to Candidate Recommendation</b></a>.</p>
+ <p>During the first Last Call period of this specification, there were <a
+ href="http://lists.w3.org/Archives/Public/public-tt/2005Apr/0040.html">unsatisfied
+ comments</a> that the working group was unable to resolve in a manner that satisfied
+ the commenter(s). The status of these comments has not changed during the second
+ Last Call period, as the working group continues to stand by its <a
+ href="http://lists.w3.org/Archives/Public/public-tt/2005Oct/0000.html">original
+ responses</a>. See also the <a
+ href="http://www.w3.org/2005/03/21/DFXPLastCallResponses.html#Issue11">First
+ Last Call Disposition of Comments</a> for a complete discussion.</p>
+ <p>The <em>dynamic flow processing</em> feature, as specified by the <a
+ href="#style-attribute-dynamicFlow"><code>tts:dynamicFlow</code></a> styling
+ attribute vocabulary, see also <a href="#dynamicFlowModel"><b>B Dynamic Flow
+ Processing Model</b></a>, has been determined to be <a
+ href="http://www.w3.org/2005/10/Process-20051014/tr.html#at-risk-feature">at
+ risk</a>, and is expected to be given the greatest scrutiny in the implementation
+ report.</p>
+ <p>Comments on this document should be sent to the email list <a
+ href="mailto:public-tt@w3.org">public-tt@w3.org</a>, which is the public mailing
+ list of Timed Text Working Group (<a
+ href="http://lists.w3.org/Archives/Public/public-tt/">list archives</a>). To
+ subscribe, send an email to <a
+ href="mailto:public-tt-request@w3.org">public-tt-request@w3.org</a> with the word
+ <code>subscribe</code> in the subject line.</p>
+ <p>This document has been produced by the <a
+ href="http://www.w3.org/AudioVideo/TT/">Timed Text (TT) Working Group</a> as part
+ of the W3C <a href="http://www.w3.org/AudioVideo/Activity">Synchronized Multimedia
+ Activity</a>, following the procedures set out for the W3C <a
+ href="http://www.w3.org/Consortium/Process/">Process</a>. The authors of this
+ document are listed in the header of this document.</p>
+<p> This document is governed by the <a href="http://www.w3.org/TR/2002/NOTE-patent-practice-20020124">24 January 2002 CPP</a> as amended by the <a href="http://www.w3.org/2004/02/05-pp-transition">W3C Patent Policy Transition Procedure</a>. W3C maintains a <a rel="disclosure" href="http://www.w3.org/2003/01/Timed-text-Patent-statements.html">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>. </p>
+ <p>Publication as a Candidate Recommendation does not imply endorsement by the W3C
+ Membership. This is a draft document and may be updated, replaced or obsoleted by
+ other documents at any time. It is inappropriate to cite this document as other
+ than work in progress.</p>
+ </div>
+ <div class="toc">
+ <h2><a name="contents" id="contents"></a>Table of Contents</h2>
+ <p class="toc">1 <a href="#intro">Introduction</a><br />
+ 1.1 <a href="#model">System Model</a><br />
+ 1.2 <a href="#example">Document Example</a><br />
+ 2 <a href="#definitions">Definitions</a><br />
+ 2.1 <a href="#acronyms">Acronyms</a><br />
+ 2.2 <a href="#terms">Terminology</a><br />
+ 2.3 <a href="#conventions">Documentation
+ Conventions</a><br />
+ 3 <a href="#conformance">Conformance</a><br />
+ 3.1 <a href="#conformance-content">Content
+ Conformance</a><br />
+ 3.2 <a href="#conformance-processor">Processor
+ Conformance</a><br />
+ 3.3 <a href="#claims">Claims</a><br />
+ 4 <a href="#doctypes">Document Types</a><br />
+ 4.1 <a href="#dfxp-content-doctype">DFXP Content</a><br />
+ 5 <a href="#vocabulary">Vocabulary</a><br />
+ 5.1 <a href="#vocabulary-namespaces">Namespaces</a><br />
+ 5.2 <a href="#vocabulary-profiles">Profiles</a><br />
+ 5.3 <a href="#vocabulary-overview">Catalog</a><br />
+ 5.3.1 <a
+ href="#core-vocabulary-overview">Core Catalog</a><br />
+ 5.3.2 <a
+ href="#extension-vocabulary-overview">Extension Catalog</a><br />
+ 6 <a href="#parameters">Parameters</a><br />
+ 6.1 <a href="#parameters-element-vocabulary">Element
+ Vocabulary</a><br />
+ 6.2 <a href="#parameters-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 6.2.1 <a
+ href="#parameter-attribute-cellResolution">ttp:cellResolution</a><br />
+ 6.2.2 <a
+ href="#parameter-attribute-clockMode">ttp:clockMode</a><br />
+ 6.2.3 <a
+ href="#parameter-attribute-frameRate">ttp:frameRate</a><br />
+ 6.2.4 <a
+ href="#parameter-attribute-frameRateMultiplier">ttp:frameRateMultiplier</a><br />
+ 6.2.5 <a
+ href="#parameter-attribute-markerMode">ttp:markerMode</a><br />
+ 6.2.6 <a
+ href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a><br />
+ 6.2.7 <a
+ href="#parameter-attribute-profile">ttp:profile</a><br />
+ 6.2.8 <a
+ href="#parameter-attribute-smpteMode">ttp:smpteMode</a><br />
+ 6.2.9 <a
+ href="#parameter-attribute-subFrameRate">ttp:subFrameRate</a><br />
+ 6.2.10 <a
+ href="#parameter-attribute-tickRate">ttp:tickRate</a><br />
+ 6.2.11 <a
+ href="#parameter-attribute-timeBase">ttp:timeBase</a><br />
+ 7 <a href="#content">Content</a><br />
+ 7.1 <a href="#content-element-vocabulary">Element
+ Vocabulary</a><br />
+ 7.1.1 <a
+ href="#document-structure-vocabulary-tt">tt</a><br />
+ 7.1.2 <a
+ href="#document-structure-vocabulary-head">head</a><br />
+ 7.1.3 <a
+ href="#document-structure-vocabulary-body">body</a><br />
+ 7.1.4 <a
+ href="#content-vocabulary-div">div</a><br />
+ 7.1.5 <a
+ href="#content-vocabulary-p">p</a><br />
+ 7.1.6 <a
+ href="#content-vocabulary-span">span</a><br />
+ 7.1.7 <a
+ href="#content-vocabulary-br">br</a><br />
+ 7.2 <a href="#content-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 7.2.1 <a
+ href="#content-attribute-id">xml:id</a><br />
+ 7.2.2 <a
+ href="#content-attribute-lang">xml:lang</a><br />
+ 7.2.3 <a
+ href="#content-attribute-space">xml:space</a><br />
+ 8 <a href="#styling">Styling</a><br />
+ 8.1 <a href="#styling-element-vocabulary">Element
+ Vocabulary</a><br />
+ 8.1.1 <a
+ href="#styling-vocabulary-styling">styling</a><br />
+ 8.1.2 <a
+ href="#styling-vocabulary-style">style</a><br />
+ 8.2 <a href="#styling-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 8.2.1 <a
+ href="#style-attribute-style">style</a><br />
+ 8.2.2 <a
+ href="#style-attribute-backgroundColor">tts:backgroundColor</a><br />
+ 8.2.3 <a
+ href="#style-attribute-color">tts:color</a><br />
+ 8.2.4 <a
+ href="#style-attribute-direction">tts:direction</a><br />
+ 8.2.5 <a
+ href="#style-attribute-display">tts:display</a><br />
+ 8.2.6 <a
+ href="#style-attribute-displayAlign">tts:displayAlign</a><br />
+ 8.2.7 <a
+ href="#style-attribute-dynamicFlow">tts:dynamicFlow</a><br />
+ 8.2.8 <a
+ href="#style-attribute-extent">tts:extent</a><br />
+ 8.2.9 <a
+ href="#style-attribute-fontFamily">tts:fontFamily</a><br />
+ 8.2.10 <a
+ href="#style-attribute-fontSize">tts:fontSize</a><br />
+ 8.2.11 <a
+ href="#style-attribute-fontStyle">tts:fontStyle</a><br />
+ 8.2.12 <a
+ href="#style-attribute-fontWeight">tts:fontWeight</a><br />
+ 8.2.13 <a
+ href="#style-attribute-lineHeight">tts:lineHeight</a><br />
+ 8.2.14 <a
+ href="#style-attribute-opacity">tts:opacity</a><br />
+ 8.2.15 <a
+ href="#style-attribute-origin">tts:origin</a><br />
+ 8.2.16 <a
+ href="#style-attribute-overflow">tts:overflow</a><br />
+ 8.2.17 <a
+ href="#style-attribute-padding">tts:padding</a><br />
+ 8.2.18 <a
+ href="#style-attribute-showBackground">tts:showBackground</a><br />
+ 8.2.19 <a
+ href="#style-attribute-textAlign">tts:textAlign</a><br />
+ 8.2.20 <a
+ href="#style-attribute-textDecoration">tts:textDecoration</a><br />
+ 8.2.21 <a
+ href="#style-attribute-textOutline">tts:textOutline</a><br />
+ 8.2.22 <a
+ href="#style-attribute-unicodeBidi">tts:unicodeBidi</a><br />
+ 8.2.23 <a
+ href="#style-attribute-visibility">tts:visibility</a><br />
+ 8.2.24 <a
+ href="#style-attribute-wrapOption">tts:wrapOption</a><br />
+ 8.2.25 <a
+ href="#style-attribute-writingMode">tts:writingMode</a><br />
+ 8.2.26 <a
+ href="#style-attribute-zIndex">tts:zIndex</a><br />
+ 8.3 <a href="#styling-style-value-expressions">Style Value
+ Expressions</a><br />
+ 8.3.1 <a
+ href="#style-value-alpha"><alpha></a><br />
+ 8.3.2 <a
+ href="#style-value-color"><color></a><br />
+ 8.3.3 <a
+ href="#style-value-digit"><digit></a><br />
+ 8.3.4 <a
+ href="#style-value-duration"><duration></a><br />
+ 8.3.5 <a
+ href="#style-value-familyName"><familyName></a><br />
+ 8.3.6 <a
+ href="#style-value-genericFamilyName"><genericFamilyName></a><br />
+ 8.3.7 <a
+ href="#style-value-flowFunction"><flowFunction></a><br />
+ 8.3.8 <a
+ href="#style-value-flowIntervalFunction"><flowIntervalFunction></a><br />
+ 8.3.9 <a
+ href="#style-value-hexDigit"><hexDigit></a><br />
+ 8.3.10 <a
+ href="#style-value-integer"><integer></a><br />
+ 8.3.11 <a
+ href="#style-value-length"><length></a><br />
+ 8.3.12 <a
+ href="#style-value-namedColor"><namedColor></a><br />
+ 8.3.13 <a
+ href="#style-value-quotedString"><quotedString></a><br />
+ 8.3.14 <a
+ href="#style-value-string"><string></a><br />
+ 8.4 <a href="#semantics-style-association">Style
+ Association</a><br />
+ 8.4.1 <a
+ href="#semantics-style-association-inline">Inline Styling</a><br />
+ 8.4.2 <a
+ href="#semantics-style-association-referential">Referential Styling</a><br />
+ 8.4.3 <a
+ href="#semantics-style-association-chained-referential">Chained Referential
+ Styling</a><br />
+ 8.5 <a href="#semantics-style-inheritance">Style
+ Inheritance</a><br />
+ 8.5.1 <a
+ href="#semantics-style-inheritance-content">Content Style Inheritance</a><br />
+ 8.5.2 <a
+ href="#semantics-style-inheritance-region">Region Style Inheritance</a><br />
+ 9 <a href="#layout">Layout</a><br />
+ 9.1 <a href="#layout-element-vocabulary">Element
+ Vocabulary</a><br />
+ 9.1.1 <a
+ href="#layout-vocabulary-layout">layout</a><br />
+ 9.1.2 <a
+ href="#layout-vocabulary-region">region</a><br />
+ 9.2 <a href="#layout-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 9.2.1 <a
+ href="#layout-attribute-region">region</a><br />
+ 9.3 <a href="#semantics-region-layout">Region Layout and
+ Presentation</a><br />
+ 9.3.1 <a
+ href="#semantics-region-layout-step-1">Synchronic Region Construction</a><br />
+ 9.3.2 <a
+ href="#semantics-region-layout-step-2">Synchronic Flow Processing</a><br />
+ 9.3.3 <a
+ href="#semantics-region-layout-example">Elaborated Example</a><br />
+ 9.4 <a href="#semantics-line-layout">Line Layout</a><br />
+ 10 <a href="#timing">Timing</a><br />
+ 10.1 <a href="#timing-element-vocabulary">Element
+ Vocabulary</a><br />
+ 10.2 <a href="#timing-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 10.2.1 <a
+ href="#timing-attribute-begin">begin</a><br />
+ 10.2.2 <a
+ href="#timing-attribute-end">end</a><br />
+ 10.2.3 <a
+ href="#timing-attribute-dur">dur</a><br />
+ 10.2.4 <a
+ href="#timing-attribute-timeContainer">timeContainer</a><br />
+ 10.3 <a href="#timing-time-value-expressions">Time Value
+ Expressions</a><br />
+ 10.3.1 <a
+ href="#timing-value-timeExpression"><timeExpression></a><br />
+ 10.4 <a href="#timing-time-intervals">Time
+ Intervals</a><br />
+ 11 <a href="#animation">Animation</a><br />
+ 11.1 <a href="#animation-element-vocabulary">Element
+ Vocabulary</a><br />
+ 11.1.1 <a
+ href="#animation-vocabulary-set">set</a><br />
+ 11.2 <a href="#animation-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 12 <a href="#metadata">Metadata</a><br />
+ 12.1 <a href="#metadata-element-vocabulary">Element
+ Vocabulary</a><br />
+ 12.1.1 <a
+ href="#metadata-vocabulary-metadata">metadata</a><br />
+ 12.1.2 <a
+ href="#metadata-vocabulary-title">ttm:title</a><br />
+ 12.1.3 <a
+ href="#metadata-vocabulary-desc">ttm:desc</a><br />
+ 12.1.4 <a
+ href="#metadata-vocabulary-copyright">ttm:copyright</a><br />
+ 12.1.5 <a
+ href="#metadata-vocabulary-agent">ttm:agent</a><br />
+ 12.1.6 <a
+ href="#metadata-vocabulary-name">ttm:name</a><br />
+ 12.1.7 <a
+ href="#metadata-vocabulary-actor">ttm:actor</a><br />
+ 12.2 <a href="#metadata-attribute-vocabulary">Attribute
+ Vocabulary</a><br />
+ 12.2.1 <a
+ href="#metadata-attribute-agent">ttm:agent</a><br />
+ 12.2.2 <a
+ href="#metadata-attribute-role">ttm:role</a><br />
+ </p>
+ <h3><a name="appendices" id="appendices"></a>Appendices</h3>
+ <p class="toc">A <a href="#reduced-infoset">Reduced XML Infoset</a><br />
+ A.1 <a href="#reduced-infoset-document">Document
+ Information Item</a><br />
+ A.2 <a href="#reduced-infoset-element">Element Information
+ Item</a><br />
+ A.3 <a href="#reduced-infoset-attribute">Attribute
+ Information Item</a><br />
+ A.4 <a href="#reduced-infoset-character">Character
+ Information Item</a><br />
+ B <a href="#dynamicFlowModel">Dynamic Flow Processing Model</a><br />
+ B.1 <a
+ href="#dynamicFlowIntroduction">Introduction</a><br />
+ B.2 <a href="#dynamicFlowEvents">Flow Buffer</a><br />
+ B.3 <a href="#dynamicFlowIntervalTimingCalculation">Flow
+ Interval Timing Calculation</a><br />
+ B.3.1 <a
+ href="#flowIntervalFillTiming">Computed Fill Timing Interval</a><br />
+ B.3.2 <a
+ href="#flowIntervalClearTiming">Computed Clear Timing Interval</a><br />
+ B.4 <a href="#dynamicFlowOperations">Flow
+ Operations</a><br />
+ B.4.1 <a
+ href="#flowOperationFill">Fill Operation</a><br />
+ B.4.2 <a
+ href="#flowOperationReflow">Reflow Operation</a><br />
+ B.4.3 <a
+ href="#flowOperationClear">Clear Operation</a><br />
+ B.5 <a href="#dynamicFlowTimers">Flow Timers</a><br />
+ B.5.1 <a href="#flowTimerFill">Fill
+ Timer</a><br />
+ B.5.2 <a
+ href="#flowTimerClear">Clear Timer</a><br />
+ C <a href="#schemas">Schemas</a><br />
+ C.1 <a href="#dfxp-schema-rnc">Relax NG Schema</a><br />
+ C.1.1 <a
+ href="#rnc-dfxp-driver-schema">Driver</a><br />
+ C.1.2 <a
+ href="#rnc-dfxp-modules">Modules</a><br />
+ C.1.2.1 <a
+ href="#rnc-dfxp-animation-module">Animation Module</a><br />
+ C.1.2.2 <a
+ href="#rnc-dfxp-classes-module">Classes Module</a><br />
+ C.1.2.3 <a
+ href="#rnc-dfxp-content-module">Content Module</a><br />
+ C.1.2.4 <a
+ href="#rnc-dfxp-core-attribs-module">Core Attributes Module</a><br />
+ C.1.2.5 <a
+ href="#rnc-dfxp-datatypes-module">Data Types Module</a><br />
+ C.1.2.6 <a
+ href="#rnc-dfxp-document-module">Document Module</a><br />
+ C.1.2.7 <a
+ href="#rnc-dfxp-head-module">Header Module</a><br />
+ C.1.2.8 <a
+ href="#rnc-dfxp-layout-module">Layout Module</a><br />
+ C.1.2.9 <a
+ href="#rnc-dfxp-metdata-module">Metadata Module</a><br />
+ C.1.2.10 <a
+ href="#rnc-dfxp-metdata-items-module">Metadata Items Module</a><br />
+ C.1.2.11 <a
+ href="#rnc-dfxp-metadata-attribs-module">Metadata Attributes Module</a><br />
+ C.1.2.12 <a
+ href="#rnc-dfxp-parameter-attribs-module">Parameter Attributes Module</a><br />
+ C.1.2.13 <a
+ href="#rnc-dfxp-styling-attribs-module">Styling Attributes Module</a><br />
+ C.1.2.14 <a
+ href="#rnc-dfxp-styling-module">Styling Module</a><br />
+ C.1.2.15 <a
+ href="#rnc-dfxp-timing-attribs-module">Timing Attributes Module</a><br />
+ C.2 <a href="#dfxp-schema-xsd">XML Schema Definition (XSD)
+ Schema</a><br />
+ C.2.1 <a
+ href="#xsd-dfxp-driver-schema">Driver</a><br />
+ C.2.2 <a
+ href="#xsd-dfxp-modules">Modules</a><br />
+ C.2.2.1 <a
+ href="#xsd-dfxp-animation-module">Animation Module</a><br />
+ C.2.2.2 <a
+ href="#xsd-dfxp-content-module">Content Module</a><br />
+ C.2.2.3 <a
+ href="#xsd-dfxp-core-attribs-module">Core Attributes Module</a><br />
+ C.2.2.4 <a
+ href="#xsd-dfxp-datatypes-module">Data Types Module</a><br />
+ C.2.2.5 <a
+ href="#xsd-dfxp-document-module">Document Module</a><br />
+ C.2.2.6 <a
+ href="#xsd-dfxp-head-module">Header Module</a><br />
+ C.2.2.7 <a
+ href="#xsd-dfxp-layout-module">Layout Module</a><br />
+ C.2.2.8 <a
+ href="#xsd-dfxp-metdata-module">Metadata Module</a><br />
+ C.2.2.9 <a
+ href="#xsd-dfxp-metdata-items-module">Metadata Items Module</a><br />
+ C.2.2.10 <a
+ href="#xsd-dfxp-metadata-attribs-module">Metadata Attributes Module</a><br />
+ C.2.2.11 <a
+ href="#xsd-dfxp-parameter-attribs-module">Parameter Attributes Module</a><br />
+ C.2.2.12 <a
+ href="#xsd-dfxp-styling-attribs-module">Styling Attributes Module</a><br />
+ C.2.2.13 <a
+ href="#xsd-dfxp-styling-module">Styling Module</a><br />
+ C.2.2.14 <a
+ href="#xsd-dfxp-timing-attribs-module">Timing Attributes Module</a><br />
+ C.2.2.15 <a
+ href="#xsd-dfxp-xml-attrs-module">XML Attributes Module</a><br />
+ D <a href="#media-type-registration">Media Type Registration</a><br />
+ E <a href="#references">References</a><br />
+ F <a href="#other-references">Other References</a> (Non-Normative)<br />
+ G <a href="#sample-code">Sample Code</a> (Non-Normative)<br />
+ G.1 <a href="#code-rxi">Reduced XML Infoset (RXI)
+ – RXI.SCM</a><br />
+ G.2 <a href="#code-adi">Abstract Document Instance (ADI)
+ – ADI.SCM</a><br />
+ G.3 <a href="#code-tir">Time Interval Resolver (TIR)
+ – TIR.SCM</a><br />
+ G.4 <a href="#code-fox">Flow Object Transformer (FOX)
+ – FOX.SCM</a><br />
+ G.5 <a href="#code-dtf">Dynamic Text Flow Processor (DTF)
+ – DTF.SCM</a><br />
+ G.6 <a href="#code-run">Sample Compile, Load, and Run
+ Session</a><br />
+ H <a href="#requirements">Requirements</a> (Non-Normative)<br />
+ I <a href="#derivation">Vocabulary Derivation</a> (Non-Normative)<br />
+ I.1 <a href="#IDA4XGQ">Element Derivation</a><br />
+ I.2 <a href="#IDA3IHQ">Attribute Derivation</a><br />
+ J <a href="#qa">QA Framework Compliance</a> (Non-Normative)<br />
+ J.1 <a href="#IDAZMIQ">Requirements</a><br />
+ J.2 <a href="#IDA0WIQ">Guidelines</a><br />
+ K <a href="#streaming">Streaming DFXP Content</a> (Non-Normative)<br />
+ L <a href="#acknowledgements">Acknowledgments</a> (Non-Normative)<br />
+ M <a href="#change-history">Change History</a> (Non-Normative)<br />
+ M.1 <a href="#change-history-lc1-to-lc2">Changes from First
+ to Second Last Call Working Draft</a><br />
+ M.2 <a href="#change-history-lc2-to-cr">Changes from Second
+ Last Call Working Draft to Candidate Recommendation</a><br />
+ </p>
+ </div>
+ <hr />
+ <div class="body">
+ <div class="div1">
+ <h2><a name="intro" id="intro"></a>1 Introduction</h2>
+ <p><em>Unless specified otherwise, this section and its sub-sections are
+ non-normative.</em></p>
+ <p>The Timed Text Authoring Format (TT AF) Distribution Format Exchange Profile
+ (DFXP) provides a standardized representation of a particular subset of textual
+ information with which stylistic, layout, and timing semantics are associated by
+ an author or an authoring system for the purpose of interchange and potential
+ presentation.</p>
+ <p>DFXP is expressly designed to meet only a limited set of requirements
+ established by <a href="#ttaf1-req">[TTAF1-REQ]</a>, and summarized in <a
+ href="#requirements"><b>H Requirements</b></a>. In particular, only those
+ requirements which service the need of performing interchange with existing,
+ legacy distribution systems are satisfied.</p>
+ <p>In addition to being used for interchange among legacy distribution content
+ formats, DFXP content may be used directly as a distribution format, providing,
+ for example, a standard content format to reference from a
+ <code><text></code> or <code><textstream></code> media object element
+ in a <a href="#smil21">[SMIL 2.1]</a> document. Certain properties of DFXP
+ support streamability of content, as described in <a href="#streaming"><b>K
+ Streaming DFXP Content</b></a>.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>While DFXP was not expressly designed for direct (embedded) integration into
+ a SMIL document instance, such integration is not precluded.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In some contexts of use, it may be appropriate to employ animated content to
+ depict sign language representations of the same content as expressed by a
+ Timed Text document instance. This use case is not explicitly addressed by DFXP
+ mechanisms, but may be addressed by some external multimedia integration
+ technology, such as SMIL.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="model" id="model"></a>1.1 System Model</h3>
+ <p>Use of DFXP is intended to function in a wider context of Timed Text
+ Authoring and Distribution mechanisms that are based upon a system model,
+ depicted in <a href="#model-graphic"><b>Figure 1 – System Model</b></a>,
+ wherein the timed text authoring format serves as a bidirectional interchange
+ format among a heterogeneous collection of authoring systems, and as a
+ unidirectional interchange format to a heterogeneous collection of distribution
+ formats after undergoing transcoding or compilation to the target distribution
+ formats as required, and where one particular distribution format is DFXP.</p>
+ <table summary="HTML Table" id="model-graphic" class="example-images">
+ <caption>
+ Figure 1 – System Model
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/model.png"
+ alt="System Model" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div2">
+ <h3><a name="example" id="example"></a>1.2 Document Example</h3>
+ <p>A DFXP document instance consists of a <code>tt</code> document element that
+ contains a header and a body, where the header specifies document level
+ metadata, styling definitions and layout definitions, and the body specifies
+ text content intermixed with references to style and layout information and
+ inline timing information.</p>
+ <table summary="HTML Table" id="dfxp-example-document-structure"
+ class="example">
+ <caption>
+ Example Fragment – DFXP Document Structure
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1">
+ <head>
+ <metadata/>
+ <styling/>
+ <layout/>
+ </head>
+ <body/>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>Document level metadata may specify a document title, description, and
+ copyright information. In addition, arbitrary metadata drawn from other
+ namespaces may be specified.</p>
+ <table summary="HTML Table" id="dfxp-example-metadata" class="example">
+ <caption>
+ Example Fragment – DFXP Metadata
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<metadata xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <ttm:title>Timed Text DFXP Example</ttm:title>
+ <ttm:copyright>The Authors (c) 2006</ttm:copyright>
+</metadata>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>Styling information may be specified in the form of style specification
+ definitions that are referenced by layout and content information.</p>
+ <p>In <a href="#dfxp-example-styling"><b>Example Fragment – DFXP
+ Styling</b></a>, four style sets of specifications are defined, with one set
+ serving as a collection of default styles.</p>
+ <table summary="HTML Table" id="dfxp-example-styling" class="example">
+ <caption>
+ Example Fragment – DFXP Styling
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<styling xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <!-- s1 specifies default color, font, and text alignment -->
+ <style xml:id="s1"
+ tts:color="white"
+ tts:fontFamily="proportionalSansSerif"
+ tts:fontSize="22px"
+ tts:textAlign="center"
+ />
+ <!-- alternative using yellow text but otherwise the same as style s1 -->
+ <style xml:id="s2" style="s1" tts:color="yellow"/>
+ <!-- a style based on s1 but justified to the right -->
+ <style xml:id="s1Right" style="s1" tts:textAlign="end" />
+ <!-- a style based on s2 but justified to the left -->
+ <style xml:id="s2Left" style="s2" tts:textAlign="start" />
+</styling>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>Layout information defines one or more regions into which content is
+ intended to be presented. A region definition may reference one or more sets of
+ style specifications in order to permit content flowed in the region to inherit
+ from these styles. In <a href="#dfxp-example-layout"><b>Example Fragment – DFXP
+ Layout</b></a>, the region definition makes reference to style specification
+ <code>s1</code> which allows all content flowed into the region to inherit from
+ the region's styles (in the case that a style is not already explicitly
+ specified on content or inherited via the content hierarchy.)</p>
+ <table summary="HTML Table" id="dfxp-example-layout" class="example">
+ <caption>
+ Example Fragment – DFXP Layout
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<layout xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <region xml:id="subtitleArea"
+ style="s1"
+ tts:extent="560px 62px"
+ tts:padding="5px 3px"
+ tts:backgroundColor="black"
+ tts:displayAlign="after"
+ />
+</layout>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The content of a DFXP document instance is expressed in its body, which is
+ organized in terms of block and inline text elements. The hierarchical
+ organization of content elements serves a primary role in determining both
+ spatial and temporal relationships. For example, in <a
+ href="#dfxp-example-body"><b>Example Fragment – DFXP Body</b></a>, each
+ paragraph (<code>p</code> element) is flowed into its target region in the
+ specified lexical order; furthermore, the active time interval of each
+ paragraph is timed in accordance to its parent or sibling according to the
+ applicable time containment semantics — in this case, the division parent is
+ interpreted as a parallel time container.</p>
+ <table summary="HTML Table" id="dfxp-example-body" class="example">
+ <caption>
+ Example Fragment – DFXP Body
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<body region="subtitleArea">
+ <div>
+ <p xml:id="subtitle1" begin="0.76s" end="3.45s">
+ It seems a paradox, does it not,
+ </p>
+ <p xml:id="subtitle2" begin="5.0s" end="10.0s">
+ that the image formed on<br/>
+ the Retina should be inverted?
+ </p>
+ <p xml:id="subtitle3" begin="10.0s" end="16.0s" style="s2">
+ It is puzzling, why is it<br/>
+ we do not see things upside-down?
+ </p>
+ <p xml:id="subtitle4" begin="17.2s" end="23.0s">
+ You have never heard the Theory,<br/>
+ then, that the Brain also is inverted?
+ </p>
+ <p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
+ No indeed! What a beautiful fact!
+ </p>
+ <p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
+ But how is it proved?
+ </p>
+ <p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
+ Thus: what we call
+ </p>
+ <p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
+ the vertex of the Brain<br/>
+ is really its base
+ </p>
+ <p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
+ and what we call its base<br/>
+ is really its vertex,
+ </p>
+ <p xml:id="subtitle9a" begin="53.5s" end="58.7s">
+ it is simply a question of nomenclature.
+ </p>
+ <p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
+ How truly delightful!
+ </p>
+ </div>
+</body>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The first subtitle <a href="#dfxp-example-subtitle-1"><b>Subtitle 1 – Time
+ Interval [0.76, 3.45)</b></a> is presented during the time interval 0.76 to
+ 3.45 seconds. In this example, the default metric for time expressions is
+ seconds since no metric is specified in the expressions. This subtitle inherits
+ its font family, font size, foreground color, and text alignment from the
+ region into which it is presented. Since no region is explicitly specified on
+ the paragraph, the nearest ancestor that specifies a region determines the
+ region. Note also that content is presented at the bottom (after edge) of the
+ containing region due to the <code>tts:displayAlign="after"</code> being
+ specified on the region definition.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The notation "[<em>X</em>,<em>Y</em>]" denotes a closed interval from
+ <em>X</em> to <em>Y</em>, including <em>X</em> and <em>Y</em>;
+ "[<em>X</em>,<em>Y</em>)" denotes a right half-open interval from <em>X</em>
+ to <em>Y</em>, including <em>X</em> but not including <em>Y</em>;
+ "(<em>X</em>,<em>Y</em>]" denotes a left half-open interval from <em>X</em>
+ to <em>Y</em>, not including <em>X</em> but including <em>Y</em>;
+ "(<em>X</em>,<em>Y</em>)" denotes an open interval from <em>X</em> to
+ <em>Y</em>, not including <em>X</em> or <em>Y</em>.</p>
+ </div>
+ <table summary="HTML Table" id="dfxp-example-subtitle-1"
+ class="example-images">
+ <caption>
+ Subtitle 1 – Time Interval [0.76, 3.45)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle1.png"
+ alt="Subtitle 1" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The second subtitle continues with the default style, except that it
+ contains two lines of text with an intervening author-specified line break.
+ Note the effects of the use of <code>tts:textAlign="center"</code> to specify
+ the paragraph's alignment in the inline progression direction.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-2"
+ class="example-images">
+ <caption>
+ Subtitle 2 – Time Interval [5.0, 10.0)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle2.png"
+ alt="Subtitle 2" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The third subtitle continues, using a variant style which overrides the
+ default style's foreground color with a different color.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-3"
+ class="example-images">
+ <caption>
+ Subtitle 3 – Time Interval [10.0, 16.0)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle3.png"
+ alt="Subtitle 3" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The fourth subtitle reverts to the default style.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-4"
+ class="example-images">
+ <caption>
+ Subtitle 4 – Time Interval [17.2, 23.0)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle4.png"
+ alt="Subtitle 4" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The fifth subtitle continues, again using a variant style which overrides
+ the default style's foreground color with a different color.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-5"
+ class="example-images">
+ <caption>
+ Subtitle 5 – Time Interval [23.0, 27.0)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle5.png"
+ alt="Subtitle 5" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>During the next active time interval, two distinct subtitles are
+ simultaneously active, with the paragraph expressing each subtitle using a
+ different style that overrides color and paragraph text alignment of the
+ default style. Note that the flow order is determined by the lexical order of
+ elements as they appear in the content hierarchy.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-6"
+ class="example-images">
+ <caption>
+ Subtitles 6a and 6b – Time Interval [28.0, 34.6)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle6.png"
+ alt="Subtitles 6a and 6b" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The next subtitle is specified in a similar manner using a style override to
+ give a paragraph right (end) justified in the inline progression direction.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-7"
+ class="example-images">
+ <caption>
+ Subtitle 7 – Time Interval [34.6, 45.0)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle7.png"
+ alt="Subtitles 7a and 7b" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The eighth subtitle uses the same style override as the previous subtitle in
+ order to maintain the right (end) justification of the paragraph.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-8"
+ class="example-images">
+ <caption>
+ Subtitle 8 – Time Interval [47.3, 49.0)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle8.png"
+ alt="Subtitle 8" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>During the final (ninth) active time interval, two distinct subtitles are
+ again simultaneously active, but with a different style applied to the second
+ paragraph to override the default color. Note that the flow order is determined
+ by the lexical order of elements as they appear in the content hierarchy.</p>
+ <table summary="HTML Table" id="dfxp-example-subtitle-9"
+ class="example-images">
+ <caption>
+ Subtitles 9a and 9b – Time Interval [53.5, 58.7)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/subtitle9.png"
+ alt="Subtitles 9a and 9b" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The examples shown above demonstrate the primary types of information that
+ may be authored using DFXP: metadata, styling, layout, timing, and content. In
+ typical cases, styling and layout information are separately specified in a
+ document instance. Content information is expressed in a hierarchical fashion
+ that embodies the organization of both spatial (flow) and timing information.
+ Content makes direct or indirect references to styling and layout information
+ and may specify inline overrides to styling.</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="definitions" id="definitions"></a>2 Definitions</h2>
+ <div class="div2">
+ <h3><a name="acronyms" id="acronyms"></a>2.1 Acronyms</h3>
+ <table class="acronyms" summary="Glossary List">
+ <tr>
+ <td class="label"><b>DFXP</b></td>
+ <td class="def">
+ <p>Distribution Format Exchange Profile</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT</b></td>
+ <td class="def">
+ <p>Timed Text</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT AS</b></td>
+ <td class="def">
+ <p>Timed Text Authoring System</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT AF</b></td>
+ <td class="def">
+ <p>Timed Text Authoring Format</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT WG</b></td>
+ <td class="def">
+ <p>Timed Text Working Group</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="div2">
+ <h3><a name="terms" id="terms"></a>2.2 Terminology</h3>
+ <dl>
+ <dt class="label">Abstract Document Instance</dt>
+ <dd>
+ <p>An instance of an abstract data set as represented by a <em>Reduced XML
+ Infoset</em>.</p>
+ </dd>
+ <dt class="label">Abstract Document Type</dt>
+ <dd>
+ <p>A set of constraints that defines a class of <em>XML Information
+ Set</em>s <a href="#infoset">[XML InfoSet]</a>.</p>
+ </dd>
+ <dt class="label">Attribute Information Item</dt>
+ <dd>
+ <p>Each specified or defaulted attribute of an XML document corresponds
+ with an attribute information item as defined by <a href="#infoset">[XML
+ InfoSet]</a>, §2.3.</p>
+ </dd>
+ <dt class="label">Character Information Item</dt>
+ <dd>
+ <p>Each data character appearing in an XML document corresponds with a
+ character information item as defined by <a href="#infoset">[XML
+ InfoSet]</a>, §2.6.</p>
+ </dd>
+ <dt class="label">Content Region</dt>
+ <dd>
+ <p>A logical region into which rendered content is placed when modeling or
+ performing presentation processing.</p>
+ </dd>
+ <dt class="label">Element Information Item</dt>
+ <dd>
+ <p>Each element appearing in an XML document corresponds with an element
+ information item as defined by <a href="#infoset">[XML InfoSet]</a>,
+ §2.2.</p>
+ </dd>
+ <dt class="label">Exchange Profile</dt>
+ <dd>
+ <p>A profile (subset) of the TT AF that serves a set of needs for content
+ exchange.</p>
+ </dd>
+ <dt class="label">Region</dt>
+ <dd>
+ <p>A logical construct that models authorial intention regarding desired or
+ potential presentation processing, and which is represented as a
+ rectangular area of a presentation surface into which content is composed
+ and rendered during presentation processing.</p>
+ </dd>
+ <dt class="label">Reduced XML Infoset</dt>
+ <dd>
+ <p>An XML Information Set <a href="#infoset">[XML InfoSet]</a> that
+ satisfieds the constraints specify by <a href="#reduced-infoset"><b>A
+ Reduced XML Infoset</b></a>.</p>
+ </dd>
+ <dt class="label">Root Container Region</dt>
+ <dd>
+ <p>A logical region that establishes a coordinate system into which content
+ regions are placed and optionally clipped.</p>
+ </dd>
+ <dt class="label">Timed Text</dt>
+ <dd>
+ <p>Textual information that is intrinsically or extrinsically associated
+ with timing information.</p>
+ </dd>
+ <dt class="label">Timed Text Authoring Format</dt>
+ <dd>
+ <p>A content type that represents timed text media for the purpose of
+ interchange among authoring systems.</p>
+ </dd>
+ <dt class="label">Timed Text Authoring System</dt>
+ <dd>
+ <p>A content authoring system capable of importing and exporting timed text
+ authoring format content.</p>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="conventions" id="conventions"></a>2.3 Documentation
+ Conventions</h3>
+ <p>Within normative prose in this specification, the words <em>may</em>,
+ <em>should</em>, and <em>must</em> are defined as follows:</p>
+ <dl class="conformance-keywords">
+ <dt class="label">may</dt>
+ <dd>
+ <p>Conforming documents and/or TT AF processors are permitted to, but need
+ not behave as described.</p>
+ </dd>
+ <dt class="label">should</dt>
+ <dd>
+ <p>Conforming documents and/or TT AF processors are strongly recommended
+ to, but need not behave as described.</p>
+ </dd>
+ <dt class="label">must</dt>
+ <dd>
+ <p>Conforming documents and/or TT AF processors are required to behave as
+ described; otherwise, they are in error.</p>
+ </dd>
+ </dl>
+ <p>All normative syntactic definitions of XML representations and other related
+ terms are depicted with a light orange background color and labeled as "XML
+ Representation" or "Syntax Representation", such as in the following:</p>
+ <table summary="HTML Table" id="elt-syntax-example" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: example
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<example
+ <span class="reqattr">count</span> = integer
+ size = (<em>large</em>|<em>medium</em>|<em>small</em>) : medium>
+ <em>Content:</em> (all | any*)
+</example>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>In an XML representation, bold-face attribute names (e.g. <span
+ class="strong">count</span> above) indicate a required attribute information
+ item, and the rest are optional. Where an attribute information item has an
+ enumerated type definition, the values are shown separated by vertical bars, as
+ for <code>size</code> above; if there is a default value, it is shown following
+ a colon. Where an attribute information item has a built-in simple type
+ definition defined in <a href="#xsd-2">[XML Schema Part 2]</a>, a hyperlink to
+ its definition therein is given.</p>
+ <p>The allowed content of the information item is shown as a grammar fragment,
+ using the Kleene operators <code>?</code>, <code>*</code> and <code>+</code>.
+ Each element name therein is a hyperlink to its own illustration.</p>
+ <p>All content of this specification that is not explicitly marked as
+ non-normative is considered to be normative. If a section or appendix header
+ contains the the expression "Non-Normative", then the entirety of the section
+ or appendix is considered non-normative.</p>
+ <p>All paragraphs marked as a <span class="strong">Note</span> are considered
+ non-normative.</p>
+ <p>Example code fragments are depicted with a light blue-green background color
+ and labeled as "Example Fragment", such as in the following:</p>
+ <table summary="HTML Table" id="example-fragment-1" class="example">
+ <caption>
+ Example Fragment – Sample
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1">
+ <head>
+ <metadata/>
+ <styling/>
+ <layout/>
+ </head>
+ <body/>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="conformance" id="conformance"></a>3 Conformance</h2>
+ <p>This section specifies the general conformance requirements for TT AF content
+ and processors.</p>
+ <div class="div2">
+ <h3><a name="conformance-content" id="conformance-content"></a>3.1 Content
+ Conformance</h3>
+ <p>A TT AF document instance conforms to this specification if the following
+ criteria are satisfied:</p>
+ <ol type="1">
+ <li>
+ <p>When transporting a document instance in a context in which a MIME Media
+ Type <a href="#mime-media">[MIME]</a> identifies the content type of the
+ interchanged document instance, then the specified media type is
+ <code>application/ttaf+xml</code> in conformance with <a
+ href="#rfc3023">[XML Media Types]</a> § 7, with which an optional
+ <code>profile</code> parameter may appear, the value of which conforms to
+ the values defined by <a href="#vocabulary-profiles"><b>5.2
+ Profiles</b></a>.</p>
+ </li>
+ <li>
+ <p>The document instance is or can be represented as a Reduced XML Infoset
+ as defined by <a href="#reduced-infoset"><b>A Reduced XML
+ Infoset</b></a>.</p>
+ </li>
+ <li>
+ <p>The Reduced XML Infoset that corresponds to the document instance is or
+ can be associated with one of the TT AF Abstract Document Types defined by
+ <a href="#doctypes"><b>4 Document Types</b></a>.</p>
+ </li>
+ <li>
+ <p>The Reduced XML Infoset that corresponds to the document instance is a
+ Valid Abstract Document Instance of the associated Abstract Document
+ Type.</p>
+ </li>
+ <li>
+ <p>The Reduced XML Infoset satisfies all additional mandatory syntactic and
+ semantic constraints defined by this specification. In addition, this
+ Infoset should satisfy the web content accessibility guidelines specified
+ by <a href="#wcag">[WCAG]</a>.</p>
+ </li>
+ </ol>
+ </div>
+ <div class="div2">
+ <h3><a name="conformance-processor" id="conformance-processor"></a>3.2
+ Processor Conformance</h3>
+ <p>A TT AF processor conforms to this specification if the following criteria
+ are satisfied:</p>
+ <ol type="1">
+ <li>
+ <p>The processor provides at least one mechanism for notionally
+ instantiating a Reduced XML Infoset representation of a conformant TT AF
+ document instance.</p>
+ </li>
+ <li>
+ <p>If a process does or can perform validation of a candidate TT AF
+ document instance, then it provides at least one mechanism to implicitly or
+ explicitly associate the Reduced XML Infoset representation of a conformant
+ TT AF document instance with one of the TT AF Abstract Document Types
+ defined by <a href="#doctypes"><b>4 Document Types</b></a>.</p>
+ </li>
+ <li>
+ <p>The processor does not <em>a priori</em> reject or abort the processing
+ of a conformant TT AF document instance.</p>
+ </li>
+ <li>
+ <p>The processor supports all mandatory processing semantics defined by
+ this specification.</p>
+ </li>
+ <li>
+ <p>If the processor claims to support presentation processing in order to
+ produce a rendition of TT AF content on a visual medium, then it must
+ implement the region and line layout semantics defined by <a
+ href="#semantics-region-layout"><b>9.3 Region Layout and
+ Presentation</b></a> and <a href="#semantics-line-layout"><b>9.4 Line
+ Layout</b></a>, respectively. In addition, the processor should satisfy the
+ user agent accessibility guidelines specified by <a
+ href="#uaag">[UAAG]</a>.</p>
+ </li>
+ <li>
+ <p>If the processor supports some optional processing semantics defined by
+ this specification, then it does so in a manner consistent with the defined
+ semantics.</p>
+ </li>
+ </ol>
+ </div>
+ <div class="div2">
+ <h3><a name="claims" id="claims"></a>3.3 Claims</h3>
+ <p>Any claim of compliance with respect to TT AF content or processor
+ conformance must make reference to an implementation compliance statement
+ (ICS).</p>
+ <p>An implementation compliance statement must identify all mandatory and
+ optional features of this specification that are satisfied by the content or
+ processor implementation. In particular, the statement must identify the
+ utilized or supported TT AF vocabulary profile(s) as defined by <a
+ href="#vocabulary-profiles"><b>5.2 Profiles</b></a>, and, if a subset or
+ superset profile is used or supported, then what features are excluded or
+ included in the subset or superset profile.</p>
+ <p>A TT AF document instance for which a compliance claim is made must specify
+ a <code>ttp:profile</code> attribute on its root element as defined by <a
+ href="#parameter-attribute-profile"><b>6.2.7 ttp:profile</b></a>.</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="doctypes" id="doctypes"></a>4 Document Types</h2>
+ <p>This section defines the following TT AF Abstract Document Types:</p>
+ <ul>
+ <li>
+ <p><a href="#dfxp-content-doctype"><b>4.1 DFXP Content</b></a></p>
+ </li>
+ </ul>
+ <p>Each abstract document type consists of the following constraints:</p>
+ <ul>
+ <li>
+ <p>a non-empty collection of element types, where each element type consists
+ of a name, a (possibly empty) collection of attributes, and a content
+ specification</p>
+ </li>
+ <li>
+ <p>a non-empty collection of element types that may appear as the document
+ element</p>
+ </li>
+ </ul>
+ <p>An Abstract Document Instance may be assessed in terms of validity, and is
+ considered to be a Valid Abstract Document Instance if it satisfies the following
+ condition: if after</p>
+ <ol type="1">
+ <li>
+ <p>pruning all element information items whose names are not members of the
+ collection of element types defined by the associated abstract document type,
+ then</p>
+ </li>
+ <li>
+ <p>pruning character information item children from any remaining element in
+ case that all character children of the element denote XML whitespace
+ characters and the element's type is defined as empty in the associated
+ Abstract Document Type, and then</p>
+ </li>
+ <li>
+ <p>pruning all attribute information items having expanded names such that
+ the namespace URI of the expanded names are not listed in <a
+ href="#namespace-vocab-table"><b>Table 1 – Namespaces</b></a>,</p>
+ </li>
+ </ol>
+ <p>then the document element is one of the document element types permitted by
+ the associated abstract document type, the descendants of the document element
+ satisfy their respective element type's content specifications, all required
+ attributes are present, and the declared value of each attribute satisfies the
+ type declared by the associated abstract document type.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>While a conformant processor may not <em>a priori</em> reject a conformant
+ document instance, a given document instance may be constrained by the author
+ or authoring tool to satisfy a more restrictive definition of validity.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="dfxp-content-doctype" id="dfxp-content-doctype"></a>4.1 DFXP
+ Content</h3>
+ <p>DFXP Content is an abstract document type of the Timed Text Authoring Format
+ intended to be used for interchange among distribution systems. This document
+ type is defined in terms of the element and attribute vocabulary specified in
+ <a href="#vocabulary"><b>5 Vocabulary</b></a>.</p>
+ <p>This specification defines two types of normative schemas that may be used
+ to validate a subset of conformant DFXP document instances:</p>
+ <ul>
+ <li>
+ <p><a href="#dfxp-schema-rnc"><b>C.1 Relax NG Schema</b></a></p>
+ </li>
+ <li>
+ <p><a href="#dfxp-schema-xsd"><b>C.2 XML Schema Definition (XSD)
+ Schema</b></a></p>
+ </li>
+ </ul>
+ <p>The (root) document element of a DFXP document instance must be a
+ <code>tt</code> element, as defined by <a
+ href="#document-structure-vocabulary-tt"><b>7.1.1 tt</b></a>.</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="vocabulary" id="vocabulary"></a>5 Vocabulary</h2>
+ <p>This section defines the namespaces, profiles, and vocabulary (as an element
+ an attribute catalog) of the Timed Text Authoring Format (TT AF) as follows:</p>
+ <ul>
+ <li>
+ <p><a href="#vocabulary-namespaces"><b>5.1 Namespaces</b></a></p>
+ </li>
+ <li>
+ <p><a href="#vocabulary-profiles"><b>5.2 Profiles</b></a></p>
+ </li>
+ <li>
+ <p><a href="#vocabulary-overview"><b>5.3 Catalog</b></a></p>
+ </li>
+ </ul>
+ <div class="div2">
+ <h3><a name="vocabulary-namespaces" id="vocabulary-namespaces"></a>5.1
+ Namespaces</h3>
+ <p>The Timed Text Authoring Format (TT AF) employs a number of namespaces for
+ elements and certain global attributes. The following table specifies this set
+ of namespaces and indicates the default prefix used within this specification
+ and the normative URI that denotes each namespace.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In a specific document instance, it is not required that the default
+ prefixes shown below are used. Any prefix or namespace binding that satisfies
+ the constraints of XML Namespaces may be used that is associated with the
+ specified namespace URI.</p>
+ </div>
+ <table summary="HTML Table" id="namespace-vocab-table" class="common">
+ <caption>
+ Table 1 – Namespaces
+ </caption>
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <th rowspan="1" colspan="1">Name</th>
+ <th rowspan="1" colspan="1">Prefix</th>
+ <th rowspan="1" colspan="1">Value</th>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">TT</td>
+ <td rowspan="1" colspan="1"><code>tt:</code></td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">TT Parameter</td>
+ <td rowspan="1" colspan="1"><code>ttp:</code></td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1#parameter</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">TT Style</td>
+ <td rowspan="1" colspan="1"><code>tts:</code></td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1#style</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">TT Style Extensions</td>
+ <td rowspan="1" colspan="1"><code>ttsx:</code></td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1#style-extension</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">TT Metadata</td>
+ <td rowspan="1" colspan="1"><code>ttm:</code></td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1#metadata</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">TT Metadata Extensions</td>
+ <td rowspan="1" colspan="1"><code>ttmx:</code></td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1#metadata-extension</code></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>If a reference to an element type is used in this specification and the
+ name of the element type is not namespace qualified, then the TT Namespace
+ applies.</p>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="vocabulary-profiles" id="vocabulary-profiles"></a>5.2
+ Profiles</h3>
+ <p>The Timed Text Authoring Format (TT AF) employs a number of profiles of its
+ vocabulary and associated semantics. The following table specifies this set of
+ profiles and indicates a normative name for each profile.</p>
+ <table summary="HTML Table" id="profile-vocab-table" class="common">
+ <caption>
+ Table 2 – Profiles
+ </caption>
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <th rowspan="1" colspan="1">Name</th>
+ <th rowspan="1" colspan="1">Value</th>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">DFXP</td>
+ <td rowspan="1" colspan="1">
+ <code>http://www.w3.org/2006/10/ttaf1#profile-dfxp</code></td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <p>A convention is defined for use by content authors to indicate use of a
+ subtractive or additive delta to a predefined profile by using an optional
+ <em>sub-profile</em> suffix of a profile URI: if a sub-profile is subtractive
+ (results in a proper subset), then the <em>sub-profile</em> is expressed as
+ "-token"; if additive (results in a proper superset), then it is expressed as
+ "+token", where <em>token</em> expresses an author determined sub-profile that
+ adheres to the <code>xsd:NCName</code> data type defined in <a
+ href="#xsd-2">[XML Schema Part 2]</a>, §3.3.7.</p>
+ <p>All tokens used in a sub-profile suffix that do not start with the prefix
+ <code>x-</code> are reserved for future standardization.</p>
+ <p>The profile of a document instance is specified using a
+ <code>ttp:profile</code> attribute as defined by <a
+ href="#parameter-attribute-profile"><b>6.2.7 ttp:profile</b></a>.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A TT AF authoring system may indicate the profile of TT AF used in a
+ document instance by specifying a <code>ttp:profile</code> attribute. A TT AF
+ content processor may make use of this profile value to associate a document
+ instance with a schema or processing functions.</p>
+ </div>
+ <p>An example of an author defined "tiny" subtractive sub-profile of DFXP is
+ shown below in <a href="#dfxp-example-sub-profile"><b>Example Fragment – DFXP
+ Subtractive Profile</b></a>.</p>
+ <table summary="HTML Table" id="dfxp-example-sub-profile" class="example">
+ <caption>
+ Example Fragment – DFXP Subtractive Profile
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt
+ ttp:profile="http://www.w3.org/2006/10/ttaf1#profile-dfxp-x-tiny"
+ xml:lang=""
+ xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter">
+ ...
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Because the above example is an author defined sub-profile (as opposed to
+ a future W3C defined profile), the sub-profile token contains the prefix
+ <code>x-</code>.</p>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="vocabulary-overview" id="vocabulary-overview"></a>5.3 Catalog</h3>
+ <p>The vocabulary of the Timed Text Authoring Format (TT AF) is defined in the
+ following major catalogs (divisions of vocabulary):</p>
+ <ul>
+ <li>
+ <p><a href="#core-vocabulary-overview"><b>5.3.1 Core Catalog</b></a></p>
+ </li>
+ <li>
+ <p><a href="#extension-vocabulary-overview"><b>5.3.2 Extension
+ Catalog</b></a></p>
+ </li>
+ </ul>
+ <p>The core catalog defines the baseline, core vocabulary of the TT AF, and, in
+ particular, the vocabulary of DFXP. The extensions catalog serves as a
+ placeholder for extensions to the core vocabulary defined by DFXP.</p>
+ <div class="div3">
+ <h4><a name="core-vocabulary-overview"
+ id="core-vocabulary-overview"></a>5.3.1 Core Catalog</h4>
+ <p>The core vocabulary catalog is intended to satisfy the needs of DFXP while
+ providing a baseline vocabulary for future profiles. This vocabulary is
+ divided into distinct categories, specified in detail in the following
+ sections:</p>
+ <ul>
+ <li>
+ <p><a href="#parameters"><b>6 Parameters</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content"><b>7 Content</b></a></p>
+ </li>
+ <li>
+ <p><a href="#styling"><b>8 Styling</b></a></p>
+ </li>
+ <li>
+ <p><a href="#layout"><b>9 Layout</b></a></p>
+ </li>
+ <li>
+ <p><a href="#timing"><b>10 Timing</b></a></p>
+ </li>
+ <li>
+ <p><a href="#animation"><b>11 Animation</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata"><b>12 Metadata</b></a></p>
+ </li>
+ </ul>
+ <p>The core element vocabulary specified for use with a TT AF document
+ instance is enumerated in <a href="#element-vocab-table"><b>Table 3 – Element
+ Vocabulary</b></a>.</p>
+ <table summary="HTML Table" id="element-vocab-table" class="common">
+ <caption>
+ Table 3 – Element Vocabulary
+ </caption>
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <th rowspan="1" colspan="1">Module</th>
+ <th rowspan="1" colspan="1">Elements</th>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Animation</td>
+ <td rowspan="1" colspan="1"><a
+ href="#animation-vocabulary-set">set</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Content</td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body">body</a>, <a
+ href="#content-vocabulary-div">div</a>, <a
+ href="#content-vocabulary-p">p</a>, <a
+ href="#content-vocabulary-span">span</a>, <a
+ href="#content-vocabulary-br">br</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Document</td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-tt">tt</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Head</td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-head">head</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Layout</td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-layout">layout</a>, <a
+ href="#layout-vocabulary-region">region</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Metadata</td>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-metadata">metadata</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Metadata Items</td>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-actor">ttm:actor</a>, <a
+ href="#metadata-vocabulary-agent">ttm:agent</a>, <a
+ href="#metadata-vocabulary-copyright">ttm:copyright</a>, <a
+ href="#metadata-vocabulary-desc">ttm:desc</a>, <a
+ href="#metadata-vocabulary-name">ttm:name</a>, <a
+ href="#metadata-vocabulary-title">ttm:title</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Styling</td>
+ <td rowspan="1" colspan="1"><a
+ href="#styling-vocabulary-styling">styling</a>, <a
+ href="#styling-vocabulary-style">style</a></td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <p>Element vocabulary groups that are used in defining content models for TT
+ AF element types are enumerated in <a
+ href="#element-vocab-group-table"><b>Table 4 – Element Vocabulary
+ Groups</b></a>.</p>
+ <table summary="HTML Table" id="element-vocab-group-table" class="common">
+ <caption>
+ Table 4 – Element Vocabulary Groups
+ </caption>
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <th rowspan="1" colspan="1">Group</th>
+ <th rowspan="1" colspan="1">Elements</th>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Animation.class</td>
+ <td rowspan="1" colspan="1"><a
+ href="#animation-vocabulary-set">set</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Block.class</td>
+ <td rowspan="1" colspan="1"><a href="#content-vocabulary-div">div</a> |
+ <a href="#content-vocabulary-p">p</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Inline.class</td>
+ <td rowspan="1" colspan="1"><a href="#content-vocabulary-span">span</a>
+ | <a href="#content-vocabulary-span">br</a> | <code>#PCDATA</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Metadata.class</td>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-metadata">metadata</a> | <a
+ href="#metadata-vocabulary-copyright">ttm:agent</a> | <a
+ href="#metadata-vocabulary-copyright">ttm:copyright</a> | <a
+ href="#metadata-vocabulary-desc">ttm:desc</a> | <a
+ href="#metadata-vocabulary-title">ttm:title</a></td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <p>The attribute vocabulary specified for use with the core vocabulary
+ catalog is enumerated in <a href="#attribute-vocab-table"><b>Table 5 –
+ Attribute Vocabulary</b></a>.</p>
+ <table summary="HTML Table" id="attribute-vocab-table" class="common">
+ <caption>
+ Table 5 – Attribute Vocabulary
+ </caption>
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <th rowspan="1" colspan="1">Module</th>
+ <th rowspan="1" colspan="1">Attributes</th>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Core Attributes</td>
+ <td rowspan="1" colspan="1"><a href="#content-attribute-id">xml:id</a>,
+ <a href="#content-attribute-lang">xml:lang</a>, <a
+ href="#content-attribute-space">xml:space</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Layout</td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-attribute-region">region</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Metadata Attributes</td>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-attribute-agent">ttm:agent</a>, <a
+ href="#metadata-attribute-role">ttm:role</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Parameter Attributes</td>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-cellResolution">ttp:cellResolution</a>, <a
+ href="#parameter-attribute-clockMode">ttp:clockMode</a>, <a
+ href="#parameter-attribute-frameRate">ttp:frameRate</a>, <a
+ href="#parameter-attribute-frameRateMultiplier">ttp:frameRateMultipler</a>,
+ <a href="#parameter-attribute-markerMode">ttp:markerMode</a>, <a
+ href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</a>,
+ <a href="#parameter-attribute-profile">ttp:profile</a>, <a
+ href="#parameter-attribute-smpteMode">ttp:smpteMode</a>, <a
+ href="#parameter-attribute-subFrameRate">ttp:subFrameRate</a>, <a
+ href="#parameter-attribute-tickRate">ttp:tickRate</a>, <a
+ href="#parameter-attribute-timeBase">ttp:timeBase</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Styling</td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-style">style</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Styling Attributes</td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-backgroundColor">tts:backgroundColor</a>, <a
+ href="#style-attribute-color">tts:color</a>, <a
+ href="#style-attribute-direction">tts:direction</a>, <a
+ href="#style-attribute-display">tts:display</a>, <a
+ href="#style-attribute-displayAlign">tts:displayAlign</a>, <a
+ href="#style-attribute-dynamicFlow">tts:dynamicFlow</a>, <a
+ href="#style-attribute-extent">tts:extent</a>, <a
+ href="#style-attribute-fontFamily">tts:fontFamily</a>, <a
+ href="#style-attribute-fontSize">tts:fontSize</a>, <a
+ href="#style-attribute-fontStyle">tts:fontStyle</a>, <a
+ href="#style-attribute-fontWeight">tts:fontWeight</a>, <a
+ href="#style-attribute-lineHeight">tts:lineHeight</a>, <a
+ href="#style-attribute-opacity">tts:opacity</a>, <a
+ href="#style-attribute-origin">tts:origin</a>, <a
+ href="#style-attribute-overflow">tts:overflow</a>, <a
+ href="#style-attribute-padding">tts:padding</a>, <a
+ href="#style-attribute-showBackground">tts:showBackground</a>, <a
+ href="#style-attribute-textAlign">tts:textAlign</a>, <a
+ href="#style-attribute-textDecoration">tts:textDecoration</a>, <a
+ href="#style-attribute-textOutline">tts:textOutline</a>, <a
+ href="#style-attribute-unicodeBidi">tts:unicodeBidi</a>, <a
+ href="#style-attribute-visibility">tts:visibility</a>, <a
+ href="#style-attribute-wrapOption">tts:wrapOption</a>, <a
+ href="#style-attribute-writingMode">tts:writingMode</a>, <a
+ href="#style-attribute-zIndex">tts:zIndex</a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">Timing Attributes</td>
+ <td rowspan="1" colspan="1"><a
+ href="#timing-attribute-begin">begin</a>, <a
+ href="#timing-attribute-dur">dur</a>, <a
+ href="#timing-attribute-end">end</a>, <a
+ href="#timing-attribute-timeContainer">timeContainer</a></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>All vocabulary defined by the TT AF consistently makes use of the
+ so-called <em>lowerCamelCase</em> naming convention. In some cases, this
+ results in the change of a name when the name was based upon another
+ specification that used a different naming convention.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="extension-vocabulary-overview"
+ id="extension-vocabulary-overview"></a>5.3.2 Extension Catalog</h4>
+ <p>The extension vocabulary catalog is intended for use by future profiles of
+ the TT AF.</p>
+ <p>In this version of this specification, no standardized extension
+ vocabulary is defined. Two namespaces are specifically reserved by <a
+ href="#namespace-vocab-table"><b>Table 1 – Namespaces</b></a> for metadata
+ and style extension vocabulary:</p>
+ <ul>
+ <li>
+ <p>TT Style Extensions</p>
+ </li>
+ <li>
+ <p>TT Metadata Extensions</p>
+ </li>
+ </ul>
+ <p>In addition to standardized extension vocabulary, a conforming TT AF
+ document instance may contain arbitrary namespace qualified elements that
+ reside in any namespace other than those namespaces defined for use with this
+ specification. Furthermore, a conforming TT AF document instance may contain
+ arbitrary namespace qualified attributes on TT AF defined vocabulary where
+ such attributes reside in any namespace other than those defined for use with
+ this specification.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="parameters" id="parameters"></a>6 Parameters</h2>
+ <p>This section specifies the <em>parameters</em> matter of the core vocabulary
+ catalog, where parameters are to be understood as information that is either (1)
+ essential or (2) of significant importance for the purpose of interpreting the
+ semantics of other types of information expressed by core vocabulary items or for
+ establishing a processing context by means of which TT AF content can be related
+ to an external environment.</p>
+ <div class="div2">
+ <h3><a name="parameters-element-vocabulary"
+ id="parameters-element-vocabulary"></a>6.1 Element Vocabulary</h3>
+ <p>No parameters related element vocabulary is defined for use in the core
+ vocabulary catalog.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="parameters-attribute-vocabulary"
+ id="parameters-attribute-vocabulary"></a>6.2 Attribute Vocabulary</h3>
+ <p>The following attributes are defined in the TT Parameter Namespace.</p>
+ <ul>
+ <li>
+ <p><a href="#parameter-attribute-cellResolution"><b>6.2.1
+ ttp:cellResolution</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-clockMode"><b>6.2.2
+ ttp:clockMode</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-frameRate"><b>6.2.3
+ ttp:frameRate</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-frameRateMultiplier"><b>6.2.4
+ ttp:frameRateMultiplier</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-markerMode"><b>6.2.5
+ ttp:markerMode</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-pixelAspectRatio"><b>6.2.6
+ ttp:pixelAspectRatio</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-profile"><b>6.2.7 ttp:profile</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-smpteMode"><b>6.2.8
+ ttp:smpteMode</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-subFrameRate"><b>6.2.9
+ ttp:subFrameRate</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-tickRate"><b>6.2.10
+ ttp:tickRate</b></a></p>
+ </li>
+ <li>
+ <p><a href="#parameter-attribute-timeBase"><b>6.2.11
+ ttp:timeBase</b></a></p>
+ </li>
+ </ul>
+ <p>Unless explicitly stated otherwise, linear white-space (LWSP) may appear
+ between tokens of a value of a TT Parameter.</p>
+ <div class="div3">
+ <h4><a name="parameter-attribute-cellResolution"
+ id="parameter-attribute-cellResolution"></a>6.2.1 ttp:cellResolution</h4>
+ <p>The <code>ttp:cellResolution</code> attribute may be used by an author to
+ express the number of horizontal and vertical cells into which the root
+ container region area is divided for the purpose of expressing presentation
+ semantics in terms of a uniform grid.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-cellResolution-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:cellResolution
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:cellResolution
+ : columns rows // <em>columns</em> != 0; <em>rows</em> != 0
+columns | rows
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If not specified, the number of columns and rows must be considered to be
+ 32 and 15, respectively. If specified, then columns or rows must not be zero
+ (0).</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The choice of values 32 and 15 are based on this being the maximum
+ number of columns and rows defined by <a
+ href="#cea608c">[CEA-608-C]</a>.</p>
+ </div>
+ <p>A <code>ttp:cellResolution</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of a uniform grid is employed only for the purpose of measuring
+ lengths and expressing coordinates. In particular, it is not assumed that
+ the presentation of text or the alignment of individual glyph areas is
+ coordinated with this grid. Such alignment is possible, but requires the
+ use of a monospaced font and a font size whose EM square exactly matches
+ the cell size.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-clockMode"
+ id="parameter-attribute-clockMode"></a>6.2.2 ttp:clockMode</h4>
+ <p>The <code>ttp:clockMode</code> attribute is used to specify the
+ interpretation of time expressions as real-time time coordinates when
+ operating with time base of <code>clock</code> as defined by <a
+ href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See <a href="#timing-time-value-expressions"><b>10.3 Time Value
+ Expressions</b></a> for the specification of time expression syntax.</p>
+ </div>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-clockMode-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:clockMode
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:clockMode
+ : "local"
+ | "gps"
+ | "utc"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the time base, defined by <a
+ href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, is
+ designated as <code>clock</code>, then this parameter applies as follows: if
+ the parameter's value is <code>local</code>, then time expressions are
+ interpreted as local wall-clock time coordinates; if <code>utc</code>, then
+ time expressions are interpreted as UTC time coordinates <a
+ href="#utc">[UTC]</a>; if <code>gps</code>, then time expressions are
+ interpreted as GPS time coordinates <a href="#gps">[GPS]</a>.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The primary difference between GPS time and UTC time is that GPS time is
+ not adjusted for leap seconds, while UTC time is adjusted as follows: UTC =
+ TAI (<em>Temp Atomique International</em>) + <em>leap seconds accumulated
+ since 1972</em>. TAI is maintained by the <em>Bureau International des
+ Poids et Mesures</em> (BIPM) in Sevres, France. The GPS system time is
+ steered to a Master Clock (MC) at the US Naval Observatory which is kept
+ within a close but unspecified tolerance of TAI.</p>
+ </div>
+ <p>If not specified, the value of this parameter must be considered to be
+ <code>utc</code>.</p>
+ <p>A <code>ttp:clockMode</code> attribute is considered to be significant
+ only when specified on the <code>tt</code> element.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-frameRate"
+ id="parameter-attribute-frameRate"></a>6.2.3 ttp:frameRate</h4>
+ <p>The <code>ttp:frameRate</code> attribute is used to specify the frame rate
+ of a related media object or the intrinsic frame rate of a document instance
+ in case it is intended to function as an independent media object.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-frameRate-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:frameRate
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:frameRate
+ : <a
+href="#style-value-digit"><digit></a>+ // <em>value</em> > 0
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The frame rate that applies to a document instance is used to interpret
+ time expressions that are expressed in <em>frames</em> as defined by <a
+ href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+ <p>A frame is interpreted as a division of a second of media time, such that
+ if the frame rate is specified as <em>F</em>, then a second of media time is
+ divided into <em>F</em> intervals of equal duration, where each interval is
+ labeled as frame <em>f</em>, with <em>f</em> ∈ [0…<em>F−1</em>].</p>
+ <p>If not specified, the frame rate must be considered to be equal to some
+ application defined frame rate, or if no application defined frame rate
+ applies, then thirty (30) frames per second. If specified, then the frame
+ rate must be greater than zero (0).</p>
+ <p>A <code>ttp:frameRate</code> attribute is considered to be significant
+ only when specified on the <code>tt</code> element.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-frameRateMultiplier"
+ id="parameter-attribute-frameRateMultiplier"></a>6.2.4
+ ttp:frameRateMultiplier</h4>
+ <p>The <code>ttp:frameRateMultiplier</code> attribute is used to specify a
+ multiplier to be applied to the frame rate specified by a
+ <code>ttp:frameRate</code> attribute in order to compute the effective frame
+ rate.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table"
+ id="parameter-attribute-frameRateMultiplier-syntax" class="syntax">
+ <caption>
+ Syntax Representation – ttp:frameRateMultiplier
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:frameRateMultiplier
+ : numerator ( ":" denominator )? // <em>denominator</em> != 0
+numerator | denominator
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>A frame rate multiplier is used when the desired frame rate cannot be
+ expressed as an integral number of frames per second.</p>
+ <p>If not specified, the frame rate multiplier must be considered to be equal
+ to one (1:1). If a denominator is specified, then it must not be zero
+ (0).</p>
+ <p>A <code>ttp:frameRateMultiplier</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The frame rate multiplier used for synchronizing with NTSC <a
+ href="#smpte170m">[SMPTE 170M]</a> formatted video objects at 30 frames per
+ second is nominally 1000:1001. The nominal frame rate of NTSC video is
+ defined as the chrominance sub-carrier frequency of 3,579,545.45…Hz (=
+ 5.0MHz × 63/88) times the ratio 2/455 divided by the number of horizontal
+ lines per frame of 525, which yields a frame rate of 29.970029970029… (= 30
+ × 1000/1001) frames per second. Other frame rate multipliers apply to
+ different regions of usage and video format standards.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Except in the case of PAL/M, the frame rate multiplier used for
+ synchronizing with PAL formatted video objects at 25 frames per second is
+ nominally 1:1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-markerMode"
+ id="parameter-attribute-markerMode"></a>6.2.5 ttp:markerMode</h4>
+ <p>The <code>ttp:markerMode</code> attribute is used to specify constraints
+ on the interpretation and use of time expressions that correspond with <a
+ href="#smpte12m">[SMPTE 12M]</a> time coordinates when operating with time
+ base of <code>smpte</code> as defined by <a
+ href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-markerMode-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:markerMode
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:markerMode
+ : "continuous"
+ | "discontinuous"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the time base, defined by <a
+ href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, is
+ designated as <code>smpte</code>, then this parameter applies as follows: if
+ the parameter's value is <code>continuous</code>, then <a
+ href="#smpte12m">[SMPTE 12M]</a> time coordinates may be assumed to be linear
+ and either monotonically increasing or decreasing; however, if
+ <code>discontinuous</code>, then any assumption must not be made regarding
+ linearity or monotonicity of time coordinates.</p>
+ <p>If not specified, the value of this parameter must be considered to be
+ <code>continuous</code>.</p>
+ <p>A <code>ttp:markerMode</code> attribute is considered to be significant
+ only when specified on the <code>tt</code> element.</p>
+ <p>If a value of <code>discontinuous</code> applies, then time expressions
+ must not be converted to either media time or real time coordinates,
+ arithmetical operators (addition, multiplication) are not defined on time
+ expressions, and, consequently, any expression of a duration must be
+ ignored.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>When operating with <code>smpte</code> time base and
+ <code>discontinuous</code> marker mode, there is no effective time
+ coordinate space; rather, all time expressions are interpreted as labeled
+ synchronization events (markers), where some external synchronization
+ context emits these events, which, when they correspond with time
+ expressions that denote the same label, cause a temporal interval to begin
+ or end accordingly.</p>
+ <p>An additional side-effect of operating in <code>discontinuous</code>
+ mode is that time expressions of children have no necessary relationship
+ with time expressions of their temporal container; that is, temporal
+ containers and children of these containers are temporally activated and
+ inactivated independently based on the occurrence of a labeled
+ synchronization (marker) event.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The notion of marker discontinuity as captured by this parameter is
+ logically independent from the method used to count frames as expressed by
+ the <code>ttp:smpteMode</code> parameter. In particular, even if the
+ <code>ttp:smpteMode</code> parameter is specified as <code>dropNTSC</code>
+ or <code>dropPAL</code>, the marker mode may be specified as
+ <code>continuous</code>, even in the presence of frame count
+ discontinuities induced by the frame counting method, unless there were
+ some other non-linearity or discontinuity in marker labeling, for example,
+ two consecutive frames labeled as <code>10:00:00:00</code> and
+ <code>10:00:01:00</code>.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-pixelAspectRatio"
+ id="parameter-attribute-pixelAspectRatio"></a>6.2.6 ttp:pixelAspectRatio</h4>
+ <p>The <code>ttp:pixelAspectRatio</code> attribute may be used by a content
+ author to express the aspect ratio of non-square pixels in the production of
+ content that makes use of pixel coordinates.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-pixelAspectRatio-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:pixelAspectRatio
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:pixelAspectRatio
+ : width ":" height // <em>width</em> != 0; <em>height</em> != 0
+width | height
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If not specified, then square pixels (i.e., aspect ratio 1:1) must be
+ assumed to apply. If specified, then width or height must not be zero.</p>
+ <p>A <code>ttp:pixelAspectRatio</code> attribute is considered to be
+ significant only when specified on the <code>tt</code> element.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This parameter may be used by a content transcoder or translator in
+ order to convert pixel measurements between different pixel aspect ratios
+ while still maintaining authorial layout intentions.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-profile"
+ id="parameter-attribute-profile"></a>6.2.7 ttp:profile</h4>
+ <p>The <code>ttp:profile</code> attribute may be used by a content author to
+ express the profile of the Timed Text Authoring Format (TT AF) used in a
+ document instance.</p>
+ <p>If specified, the value of this attribute must adhere to the
+ <code>xsd:anyURI</code> data type defined by <a href="#xsd-2">[XML Schema
+ Part 2]</a>, §3.2.17, and, further, must specify a profile URI as defined by
+ <a href="#vocabulary-profiles"><b>5.2 Profiles</b></a>.</p>
+ <p>If not specified, then the Distribution Format Exchange Profile (DFXP)
+ must be assumed to apply.</p>
+ <p>A <code>ttp:profile</code> attribute is considered to be significant only
+ when specified on the <code>tt</code> element.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-smpteMode"
+ id="parameter-attribute-smpteMode"></a>6.2.8 ttp:smpteMode</h4>
+ <p>The <code>ttp:smpteMode</code> attribute is used to specify constraints on
+ the interpretation and use of frame counts that correspond with <a
+ href="#smpte12m">[SMPTE 12M]</a> time coordinates when operating with time
+ base of <code>smpte</code> as defined by <a
+ href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-smpteMode-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:smpteMode
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:smpteMode
+ : "dropNTSC"
+ | "dropPAL"
+ | "nonDrop"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the time base, defined by <a
+ href="#parameter-attribute-timeBase"><b>6.2.11 ttp:timeBase</b></a>, is
+ designated as <code>smpte</code>, then this parameter applies as follows: if
+ the parameter's value is <code>nonDrop</code>, then, within any given second
+ of a time expression, frames count from 0 to <em>N−1</em>, where <em>N</em>
+ is the value specified by the <code>ttp:frameRate</code> parameter, but while
+ ignoring any value specified by the <code>ttp:frameRateMultiplier</code>
+ parameter.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>When operating in <code>nonDrop</code> mode, a second of a time
+ expression may or may not be equal to a second of real time during normal
+ (1x speed) forward playback. If the <code>ttp:frameRateMultiplier</code>
+ parameter is specified and is not equal to 1:1, then a second of a time
+ expression will either be shorter or longer than a second of elapsed play
+ in real time.</p>
+ </div>
+ <p>If this parameter's value is <code>dropNTSC</code>, then, within any given
+ second of a time expression except the second <code>00</code>, frames count
+ from 0 to <em>N−1</em>, where <em>N</em> is the value specified by the
+ <code>ttp:frameRate</code> parameter, but while ignoring any value specified
+ by the <code>ttp:frameRateMultiplier</code> parameter. If the second of a
+ time expression is <code>00</code> and the minute of the time expression is
+ not <code>00</code>, <code>10</code>, <code>20</code>, <code>30</code>,
+ <code>40</code>, or <code>50</code>, then frame codes <code>00</code> and
+ <code>01</code> are dropped during that second; otherwise, these frame codes
+ are not dropped.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For example, when operating in <code>dropNTSC</code> mode with
+ <code>ttp:frameRate</code> of <code>30</code>, a discontinuity in frame
+ count occurs between consecutive frames as shown in the following sequence
+ of time expressions: <code>01:08:59:28</code>, <code>01:08:59:29</code>,
+ <code>01:09:00:02</code>, <code>01:09:00:03</code>.</p>
+ </div>
+ <p>If this parameter's value is <code>dropPAL</code>, then, within any given
+ second of a time expression except the second <code>00</code>, frames count
+ from 0 to <em>N−1</em>, where <em>N</em> is the value specified by the
+ <code>ttp:frameRate</code> parameter, but while ignoring any value specified
+ by the <code>ttp:frameRateMultiplier</code> parameter. If the second of a
+ time expression is <code>00</code> and the minute of the time expression is
+ even but not <code>00</code>, <code>20</code>, or <code>40</code>, then frame
+ codes <code>00</code> through <code>03</code> are dropped during that second;
+ otherwise, these frame codes are not dropped.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For example, when operating in <code>dropPAL</code> mode with
+ <code>ttp:frameRate</code> of <code>30</code>, a discontinuity in frame
+ count occurs between consecutive frames as shown in the following sequence
+ of time expressions: <code>01:09:59:28</code>, <code>01:09:59:29</code>,
+ <code>01:10:00:04</code>, <code>01:10:00:04</code>.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The <code>dropPAL</code> mode is also known as the <em>M/PAL</em> or
+ <em>PAL (M)</em> drop-frame code, which uses PAL modulation with the NTSC
+ frame rate of ~29.97 frames/second. The M/PAL system is used primarily in
+ Brazil.</p>
+ </div>
+ <p>If not specified, then <code>nonDrop</code> must be assumed to apply.</p>
+ <p>A <code>ttp:smpteMode</code> attribute is considered to be significant
+ only when specified on the <code>tt</code> element.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-subFrameRate"
+ id="parameter-attribute-subFrameRate"></a>6.2.9 ttp:subFrameRate</h4>
+ <p>The <code>ttp:subFrameRate</code> attribute is used to specify the
+ sub-frame rate of a related media object or the intrinsic sub-frame rate of a
+ document instance in case it is intended to function as an independent media
+ object.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-subFrameRate-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:subFrameRate
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:subFrameRate
+ : <a
+href="#style-value-digit"><digit></a>+ // <em>value</em> > 0
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The sub-frame rate that applies to a document instance is used to
+ interpret time expressions that are expressed in <em>sub-frames</em> as
+ defined by <a href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+ <p>A sub-frame is interpreted as a division of a frame of media time, such
+ that if the sub-frame rate is specified as <em>S</em>, then a frame of media
+ time is divided into <em>S</em> intervals of equal duration, where each
+ interval is labeled as sub-frame <em>s</em>, with <em>s</em> ∈
+ [0…<em>S−1</em>].</p>
+ <p>If not specified, the sub-frame rate must be considered to be equal to one
+ (1). If specified, then the sub-frame rate must be greater than zero (0).</p>
+ <p>A <code>ttp:subFrameRate</code> attribute is considered to be significant
+ only when specified on the <code>tt</code> element.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The sub-frame is sometimes referred to as a <em>field</em> in the
+ context of synchronization with an interlaced video media object.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-tickRate"
+ id="parameter-attribute-tickRate"></a>6.2.10 ttp:tickRate</h4>
+ <p>The <code>ttp:tickRate</code> attribute is used to specify the tick rate
+ of a related media object or the intrinsic tick rate of content of a document
+ instance in case it is intended to function as an independent media
+ object.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-tickRate-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:tickRate
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:tickRate
+ : <a
+href="#style-value-digit"><digit></a>+ // <em>value</em> > 0
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The tick rate that applies to a document instance is used to interpret
+ time expressions that are expressed in <em>ticks</em> by using the
+ <code>t</code> metric as defined by <a
+ href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+ <p>A tick is interpreted as an integral division of a second of media time,
+ such that if the tick rate is specified as <em>T</em>, then a second of media
+ time is divided into <em>T</em> intervals of equal duration, where each
+ interval is labeled as tick <em>t</em>, with <em>t</em> ∈
+ [0…<em>T−1</em>].</p>
+ <p>If not specified, then if a frame rate is specified, the tick rate must be
+ considered to be the effective frame rate multiplied by the sub-frame rate
+ (i.e., ticks are interpreted as sub-frames); or, if no frame rate is
+ specified, the tick rate must be considered to be one (1) tick per second of
+ media time. If specified, then the tick rate must not be zero (0).</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>There is no predefined relationship between ticks and frames or
+ sub-frames. Ticks are an arbitrary division of seconds that permit use of
+ fixed point arithmetic rather than fractional (and potentially inexact)
+ expressions of seconds.</p>
+ </div>
+ <p>A <code>ttp:tickRate</code> attribute is considered to be significant only
+ when specified on the <code>tt</code> element.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="parameter-attribute-timeBase"
+ id="parameter-attribute-timeBase"></a>6.2.11 ttp:timeBase</h4>
+ <p>The <code>ttp:timeBase</code> attribute is used to specify the temporal
+ coordinate system by means of which time expressions are interpreted in a
+ document instance.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="parameter-attribute-timeBase-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttp:timeBase
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttp:timeBase
+ : "media"
+ | "smpte"
+ | "clock"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the time base is designated as <code>media</code>, then a time
+ expression denotes a coordinate in some media object's time line, where the
+ media object may be an external media object with which the content of a
+ document instance is to be synchronized, or it may be the content of a
+ document instance itself in a case where the timed text content is intended
+ to establish an independent time line.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>When using a media time base, if that time base is paused or scaled
+ positively or negatively, then it is expected that the presentation of
+ associated Timed Text content will be similarly paused, accelerated, or
+ decelerated, respectively. The means for controlling an external media time
+ base is outside the scope of this specification.</p>
+ </div>
+ <p>If the time base is designated as <code>smpte</code>, then a time
+ expression denotes a <a href="#smpte12m">[SMPTE 12M]</a> time coordinate with
+ which the content of a document instance is to be synchronized. In this case,
+ the value of the <code>ttp:markerMode</code> and <code>ttp:smpteMode</code>
+ parameters apply, as defined by <a
+ href="#parameter-attribute-markerMode"><b>6.2.5 ttp:markerMode</b></a> and <a
+ href="#parameter-attribute-smpteMode"><b>6.2.8 ttp:smpteMode</b></a>,
+ respectively</p>
+ <p>If the time base is designated as <code>clock</code>, then the time
+ expression denotes a coordinate in some real-world time line as established
+ by some real-time clock, such as the local wall-clock time or UTC
+ (Coordinated Universal Time) or GPS (Global Positioning System) time
+ lines.</p>
+ <p>If not specified, the default time base must be considered to be
+ <code>media</code>.</p>
+ <p>A <code>ttp:timeBase</code> attribute is considered to be significant only
+ when specified on the <code>tt</code> element.</p>
+ <p>When operating with either <code>media</code> or <code>smpte</code> time
+ bases, a diachronic presentation of a document instance may be subject to
+ transformations of the controlling time line, such as temporal reversal,
+ dilation (expansion), or constriction (compression); however, when operating
+ with the <code>clock</code> time base, no transformations are permitted, and
+ diacrhonic presentation proceeds on a linear, monotonically increasing time
+ line based on the passage of real time.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Due to there being only one time base parameter that applies to a given
+ document instance, the interpretation of time expressions is uniform
+ throughout the document instance.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="content" id="content"></a>7 Content</h2>
+ <p>This section specifies the <em>content</em> matter of the core vocabulary
+ catalog.</p>
+ <div class="div2">
+ <h3><a name="content-element-vocabulary"
+ id="content-element-vocabulary"></a>7.1 Element Vocabulary</h3>
+ <p>The following elements specify the structure and principal content aspects
+ of a document instance:</p>
+ <ul>
+ <li>
+ <p><a href="#document-structure-vocabulary-tt"><b>7.1.1 tt</b></a></p>
+ </li>
+ <li>
+ <p><a href="#document-structure-vocabulary-head"><b>7.1.2 head</b></a></p>
+ </li>
+ <li>
+ <p><a href="#document-structure-vocabulary-body"><b>7.1.3 body</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-div"><b>7.1.4 div</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-p"><b>7.1.5 p</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-span"><b>7.1.6 span</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-br"><b>7.1.7 br</b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="document-structure-vocabulary-tt"
+ id="document-structure-vocabulary-tt"></a>7.1.1 tt</h4>
+ <p>The <code>tt</code> element serves as the root, document element of a
+ document instance.</p>
+ <p>The <code>tt</code> element accepts as its children zero or one
+ <code>head</code> element followed by zero or one <code>body</code>
+ element.</p>
+ <table summary="HTML Table" id="elt-syntax-tt" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: tt
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang"><span class="reqattr">xml:lang</span></a> = string
+ <a
+href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>) : default
+ {<em>any attribute in TT Parameter namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#document-structure-vocabulary-head">head</a>?, <a
+href="#document-structure-vocabulary-body">body</a>?
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The temporal beginning and ending of a document instance represented by a
+ <code>tt</code> element is defined in relationship with some external
+ application or presentation context. The temporal interval defined by these
+ points is referred to subsequently as the <em>external time
+ interval</em>.</p>
+ <p>A document instance has an implicit duration that is equal to the implicit
+ duration of the <code>body</code> element of the document, if present, or
+ zero, if not present.</p>
+ <p>An <code>xml:lang</code> attribute must be specified on the
+ <code>tt</code> element. If the attribute value is empty, it signifies that
+ there is no default language that applies to the text contained within the
+ document instance.</p>
+ <p>If no <code>xml:space</code> attribute is specified upon the
+ <code>tt</code> element, then it must be considered as if the attribute had
+ been specified with a value of <code>default</code>.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="document-structure-vocabulary-head"
+ id="document-structure-vocabulary-head"></a>7.1.2 head</h4>
+ <p>The <code>head</code> element is a container element used to group header
+ matter, including metadata, styling, and layout information.</p>
+ <p>The <code>head</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed by zero
+ or one <code>styling</code> element, followed by zero or one
+ <code>layout</code> element.</p>
+ <p>Any metadata specified by children in the <code>Metadata.class</code>
+ element group applies semantically to the document instance as a whole, and
+ not just the <code>head</code> element.</p>
+ <p>A <code>styling</code> child element is used to specify style constructs
+ that are referenced from other style constructs, by layout constructs, and by
+ content elements.</p>
+ <p>A <code>layout</code> child element is used to specify layout constructs
+ that are referenced by content elements.</p>
+ <table summary="HTML Table" id="elt-syntax-head" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: head
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<head
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a
+href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#styling-vocabulary-styling">styling</a>?, <a
+href="#layout-vocabulary-layout">layout</a>?
+</head>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>To the extent that time semantics apply to the content of the
+ <code>head</code> element, the implied time interval of this element is
+ defined to be coterminous with the external time interval.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="document-structure-vocabulary-body"
+ id="document-structure-vocabulary-body"></a>7.1.3 body</h4>
+ <p>The <code>body</code> element functions as a logical container and a
+ temporal structuring element for a sequence of textual content units
+ represented as logical divisions.</p>
+ <p>The <code>body</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed by zero
+ or more elements in the <code>Animation.class</code> element group, followed
+ by zero or more <code>div</code> elements.</p>
+ <p>Any metadata specified by children in the <code>Metadata.class</code>
+ element group applies semantically to the <code>body</code> element and its
+ descendants as a whole.</p>
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>body</code> element.</p>
+ <table summary="HTML Table" id="elt-syntax-body" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: body
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<body
+ <a href="#timing-attribute-begin">begin</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a
+href="#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace ...</em>}
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#element-vocab-group-table">Animation.class</a>*, <a
+href="#content-vocabulary-div">div</a>*
+</body>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>An author may specify a temporal interval for a <code>body</code> element
+ using the <code>begin</code>, <code>dur</code>, and <code>end</code>
+ attributes. If the begin point of this interval remains unspecified, then the
+ begin point is interpreted as the begin point of the external time interval.
+ Similarly, if the end point of this interval remains unspecified, then the
+ end point is interpreted as the end point of the external time interval.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A TT AF document instance referenced from a SMIL presentation is
+ expected to follow the same timing rules as apply to other SMIL media
+ objects.</p>
+ </div>
+ <p>If relative begin or end times are specified on the <code>body</code>
+ element, then these times are resolved by reference to the begin and end time
+ of the external time interval.</p>
+ <p>If the external time interval is shorter than the computed duration of the
+ <code>body</code> element, then the active time interval of a document
+ instance is truncated to the active end point of the external time
+ interval.</p>
+ <p>If no <code>timeContainer</code> attribute is specified, then a
+ <code>body</code> element must be interpreted as having <em>sequential</em>
+ time containment semantics.</p>
+ <p>If the <code>tts:extent</code> attribute is specified on the
+ <code>body</code> element, then it specifies the spatial extent of the root
+ container region in which content regions are located and presented. If no
+ <code>tts:extent</code> attribute is specified, then the spatial extent of
+ the root container region is considered to be determined by the external
+ authoring or presentation context.</p>
+ <p>An author may associate a set of style properties with a <code>body</code>
+ element by means of either the <code>style</code> attribute or inline style
+ attributes or a combination thereof.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Style properties that are associated with a <code>body</code> element in
+ a document instance are available for style inheritance by descendant
+ content elements such as <code>div</code>, <code>p</code>, and
+ <code>span</code>.</p>
+ </div>
+ <p>The declared value of an inline style attribute on a <code>body</code>
+ element must not be <code>inherit</code>.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="content-vocabulary-div" id="content-vocabulary-div"></a>7.1.4
+ div</h4>
+ <p>The <code>div</code> element functions as a logical container and a
+ temporal structuring element for a sequence of textual content units
+ represented as logical paragraphs.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>When rendered on a continuous (non-paged) visual presentation medium, a
+ <code>div</code> element is expected to generate a single block area that
+ contains zero or more child block areas generated by the <code>div</code>
+ element's child <code>p</code> elements.</p>
+ <p>If the single block area generated by a <code>div</code> element does
+ not contain any child areas, then it is not expected to be presented.</p>
+ </div>
+ <p>The <code>div</code> element accepts as its children zero or more elements
+ in the <code>Metadata.class</code> element group, followed by zero or more
+ elements in the <code>Animation.class</code> element group, followed by zero
+ or more <code>p</code> elements.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The core vocabulary intentionally does not support nested divisions in
+ order to reduce the complexity of the profile to match that of the legacy
+ distribution formats with which the core vocabulary was designed to
+ interoperate.</p>
+ </div>
+ <p>Any metadata specified by children in the <code>Metadata.class</code>
+ element group applies semantically to the <code>div</code> element and its
+ descendants as a whole.</p>
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>div</code> element.</p>
+ <table summary="HTML Table" id="elt-syntax-div" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: div
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<div
+ <a href="#timing-attribute-begin">begin</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a
+href="#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace ...</em>}
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#element-vocab-group-table">Animation.class</a>*, <a
+href="#element-vocab-group-table">Block.class</a>*
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If no <code>timeContainer</code> attribute is specified, then a
+ <code>div</code> element must be interpreted as having <em>parallel</em> time
+ containment semantics.</p>
+ <p>An author may associate a set of style properties with a <code>div</code>
+ element by means of either the <code>style</code> attribute or inline style
+ attributes or a combination thereof.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Style properties that are associated to a <code>div</code> element in a
+ document instance are available for style inheritance by descendant content
+ elements such as <code>p</code> and <code>span</code>.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="content-vocabulary-p" id="content-vocabulary-p"></a>7.1.5 p</h4>
+ <p>A <code>p</code> element represents a logical paragraph, serving as a
+ transition between block level and inline level formatting semantics.</p>
+ <p>The <code>p</code> element accepts as its children zero or more elements
+ in the <code>Metadata.class</code> element group, followed by zero or more
+ elements in the <code>Animation.class</code> element group, followed by zero
+ or more <code>span</code> element, <code>br</code> element, or text nodes
+ interpreted as anonymous spans.</p>
+ <p>Any metadata specified by children in the <code>Metadata.class</code>
+ element group applies semantically to the <code>p</code> element and its
+ descendants as a whole.</p>
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>p</code> element.</p>
+ <table summary="HTML Table" id="elt-syntax-p" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: p
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<p
+ <a href="#timing-attribute-begin">begin</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a
+href="#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace ...</em>}
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#element-vocab-group-table">Animation.class</a>*, <a
+href="#element-vocab-group-table">Inline.class</a>*
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If a sequence of children of a <code>p</code> element consists solely of
+ character information items, then that sequence must be considered to be an
+ <em>anonymous span</em> for the purpose of applying style properties that
+ apply to <code>span</code> elements.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="content-vocabulary-span" id="content-vocabulary-span"></a>7.1.6
+ span</h4>
+ <p>The <code>span</code> element functions as a logical container and a
+ temporal structuring element for a sequence of textual content units having
+ inline level formatting semantics.</p>
+ <p>When presented on a visual medium, a <code>span</code> element is intended
+ to generate a sequence of inline areas, each containing one or more glyph
+ areas.</p>
+ <p>The <code>span</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed by zero
+ or more elements in the <code>Animation.class</code> element group, followed
+ by zero or more <code>br</code> element or text nodes interpreted as
+ anonymous spans.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The core vocabulary intentionally does not support nested spans in order
+ to reduce the complexity of the profile to match that of the legacy
+ distribution formats with which the core vocabulary was designed to
+ interoperate.</p>
+ </div>
+ <p>Any metadata specified by children in the <code>Metadata.class</code>
+ element group applies semantically to the <code>span</code> element and its
+ descendants as a whole.</p>
+ <p>Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>span</code> element.</p>
+ <table summary="HTML Table" id="elt-syntax-span" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: span
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<span
+ <a href="#timing-attribute-begin">begin</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#layout-attribute-region">region</a> = IDREF
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a
+href="#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace ...</em>}
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#element-vocab-group-table">Animation.class</a>*, <a
+href="#element-vocab-group-table">Inline.class</a>*
+</span>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="content-vocabulary-br" id="content-vocabulary-br"></a>7.1.7
+ br</h4>
+ <p>The <code>br</code> element denotes an explicit line break.</p>
+ <table summary="HTML Table" id="elt-syntax-br" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: br
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<br
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace ...</em>}
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#element-vocab-group-table">Animation.class</a>*
+</br>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>When presented on a visual medium, the presence of a <code>br</code>
+ element must be interpreted as a forced line break.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The visual presentation of a <code>br</code> element is intended to
+ produce the same effect as the ASCII control code <code>CR</code> followed
+ by the control code <code>NL</code> when presented on a teletype device.
+ Therefore, two <code>br</code> elements in sequence will produce a
+ different effect than a single <code>br</code> element.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="content-attribute-vocabulary"
+ id="content-attribute-vocabulary"></a>7.2 Attribute Vocabulary</h3>
+ <p>This section defines the following common attributes used with many or all
+ element types in the core vocabulary catalog:</p>
+ <ul>
+ <li>
+ <p><a href="#content-attribute-id"><b>7.2.1 xml:id</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content-attribute-lang"><b>7.2.2 xml:lang</b></a></p>
+ </li>
+ <li>
+ <p><a href="#content-attribute-space"><b>7.2.3 xml:space</b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="content-attribute-id" id="content-attribute-id"></a>7.2.1
+ xml:id</h4>
+ <p>The <code>xml:id</code> attribute is used as defined by <a
+ href="#xmlid">[XML ID]</a>.</p>
+ <p>The <code>xml:id</code> attribute may be used with any element in the core
+ vocabulary catalog.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="content-attribute-lang" id="content-attribute-lang"></a>7.2.2
+ xml:lang</h4>
+ <p>The <code>xml:lang</code> attribute is used as defined by <a
+ href="#xml11">[XML 1.1]</a>, §2.12, <em>Language Identification</em>.</p>
+ <p>The <code>xml:lang</code> attribute must be specified on the
+ <code>tt</code> element and may be specified by an instance of any other
+ element type in the core vocabulary catalog.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="content-attribute-space" id="content-attribute-space"></a>7.2.3
+ xml:space</h4>
+ <p>The <code>xml:space</code> attribute is used as defined by <a
+ href="#xml11">[XML 1.1]</a>, §2.10, <em>White Space Handling</em>.</p>
+ <p>The <code>xml:space</code> attribute may be used with any element in the
+ core vocabulary catalog.</p>
+ <p>The semantics of the value <code>default</code> are fixed to mean that
+ when performing presentation processing of a document instance as described
+ by <a href="#semantics-region-layout-step-2"><b>9.3.2 Synchronic Flow
+ Processing</b></a>, processing must occur as if the following properties were
+ specified on the affected elements of the intermediate XSL-FO document:</p>
+ <ul>
+ <li>
+ <p><code>suppress-at-line-break="auto"</code></p>
+ </li>
+ <li>
+ <p><code>linefeed-treatment="treat-as-space"</code></p>
+ </li>
+ <li>
+ <p><code>white-space-collapse="true"</code></p>
+ </li>
+ <li>
+ <p>
+ <code>white-space-treatment="ignore-if-surrounding-linefeed"</code></p>
+ </li>
+ </ul>
+ <p>Similarly, the semantics of the value <code>preserve</code> are fixed to
+ mean that when performing presentation processing, processing must occur as
+ if the following properties were specified on the affected elements of the
+ intermediate XSL-FO document:</p>
+ <ul>
+ <li>
+ <p><code>suppress-at-line-break="retain"</code></p>
+ </li>
+ <li>
+ <p><code>linefeed-treatment="preserve"</code></p>
+ </li>
+ <li>
+ <p><code>white-space-collapse="false"</code></p>
+ </li>
+ <li>
+ <p><code>white-space-treatment="preserve"</code></p>
+ </li>
+ </ul>
+ <p>When performing other types of processing intended to eventually result in
+ a visual presentation by means other than those described in this
+ specification, the semantics of space collapsing and preservation as
+ described above should be respected. For other types of processing, the
+ treatment of the <code>xml:space</code> attribute is processor dependent, but
+ should respect the semantics described above if possible.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="styling" id="styling"></a>8 Styling</h2>
+ <p>This section specifies the <em>styling</em> matter of the core vocabulary
+ catalog, where styling is to be understood as a separable layer of information
+ that applies to content and that denotes authorial intentions about the
+ presentation of that content.</p>
+ <p>No normative use of an <code><?xml-stylesheet ... ?></code> processing
+ instruction is defined by this specification.</p>
+ <div class="div2">
+ <h3><a name="styling-element-vocabulary"
+ id="styling-element-vocabulary"></a>8.1 Element Vocabulary</h3>
+ <p>The following elements specify the structure and principal styling aspects
+ of a document instance:</p>
+ <ul>
+ <li>
+ <p><a href="#styling-vocabulary-styling"><b>8.1.1 styling</b></a></p>
+ </li>
+ <li>
+ <p><a href="#styling-vocabulary-style"><b>8.1.2 style</b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="styling-vocabulary-styling"
+ id="styling-vocabulary-styling"></a>8.1.1 styling</h4>
+ <p>The <code>styling</code> element is a container element used to group
+ styling matter, including metadata that applies to styling matter.</p>
+ <p>The <code>styling</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed by zero
+ or more <code>style</code> elements.</p>
+ <table summary="HTML Table" id="elt-syntax-styling" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: styling
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<styling
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#styling-vocabulary-style">style</a>*
+</styling>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>To the extent that time semantics apply to the content of the
+ <code>styling</code> element, the implied time interval of this element is
+ defined to be coterminous with the external time interval.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="styling-vocabulary-style"
+ id="styling-vocabulary-style"></a>8.1.2 style</h4>
+ <p>The <code>style</code> element is used to define a single style
+ specification or a set of style specifications.</p>
+ <p>The <code>style</code> element accepts as its children zero or more
+ <code>metadata</code> elements.</p>
+ <table summary="HTML Table" id="elt-syntax-style" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: style
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<style
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute in TT Style Extension namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*
+</style>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The declared value of an inline style attribute on a <code>style</code>
+ element must not be <code>inherit</code>.</p>
+ <p>A <code>style</code> element is considered to define a <em>computed style
+ specification set</em>, where the set is determined using the following
+ ordered rules:</p>
+ <ol type="1">
+ <li>
+ <p>If a <code>style</code> attribute is specified on the
+ <code>style</code> element, then the set must be initialized so as to
+ include each style specification contained in the <em>computed style
+ specification set</em> of each element referenced by the
+ <code>style</code> attribute. If the same named style property is
+ specified by more than one such referenced computed style specification
+ set, then the value of the named style property in following referenced
+ sets takes precedence over the value of the named style property in prior
+ referenced sets, where following and prior are determined according to
+ the order of the referenced ID in the IDREFS value of the
+ <code>style</code> attribute.</p>
+ </li>
+ <li>
+ <p>If the <code>style</code> element specifies an attribute from the TT
+ Style Namespace or TT Style Extension Namespace, then each style
+ specification defined by that attribute either overrides an existing
+ style specification already contained within the set or augments the set
+ with a new style specification according to whether or not the named
+ style property of the style specification matches the named style
+ property of an existing style specification already included in the
+ set.</p>
+ </li>
+ </ol>
+ <p>Two named style properties are considered to match if their expanded names
+ match, where <em>expanded name</em> is defined by <a href="#xmlns11">[XML
+ Namespaces 1.1]</a>, §2.1, and the expanded name of a named style property is
+ the expanded name of the attribute that specifies the named style
+ property.</p>
+ <p>If a <code>style</code> element appears as a descendant of a
+ <code>region</code> element, then the <code>style</code> element must be
+ ignored for the purpose of computing referential styles as defined by <a
+ href="#semantics-style-association-referential"><b>8.4.2 Referential
+ Styling</b></a> and <a
+ href="#semantics-style-association-chained-referential"><b>8.4.3 Chained
+ Referential Styling</b></a>.</p>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="styling-attribute-vocabulary"
+ id="styling-attribute-vocabulary"></a>8.2 Attribute Vocabulary</h3>
+ <p>This section defines the <a href="#style-attribute-style"><b>8.2.1
+ style</b></a> attribute used with both style definition elements as well as
+ content elements.</p>
+ <p>In addition, this section specifies the following attributes in the TT Style
+ Namespace for use with style definition elements, certain layout elements, and
+ content elements that support inline style specifications:</p>
+ <ul>
+ <li>
+ <p><a href="#style-attribute-backgroundColor"><b>8.2.2
+ tts:backgroundColor</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-color"><b>8.2.3 tts:color</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-direction"><b>8.2.4 tts:direction</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-display"><b>8.2.5 tts:display</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-displayAlign"><b>8.2.6
+ tts:displayAlign</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-dynamicFlow"><b>8.2.7
+ tts:dynamicFlow</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-extent"><b>8.2.8 tts:extent</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-fontFamily"><b>8.2.9
+ tts:fontFamily</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-fontSize"><b>8.2.10 tts:fontSize</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-fontStyle"><b>8.2.11 tts:fontStyle</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-fontWeight"><b>8.2.12
+ tts:fontWeight</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-lineHeight"><b>8.2.13
+ tts:lineHeight</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-opacity"><b>8.2.14 tts:opacity</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-origin"><b>8.2.15 tts:origin</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-overflow"><b>8.2.16 tts:overflow</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-padding"><b>8.2.17 tts:padding</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-showBackground"><b>8.2.18
+ tts:showBackground</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-textAlign"><b>8.2.19 tts:textAlign</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-textDecoration"><b>8.2.20
+ tts:textDecoration</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-textOutline"><b>8.2.21
+ tts:textOutline</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-unicodeBidi"><b>8.2.22
+ tts:unicodeBidi</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-visibility"><b>8.2.23
+ tts:visibility</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-wrapOption"><b>8.2.24
+ tts:wrapOption</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-writingMode"><b>8.2.25
+ tts:writingMode</b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-attribute-zIndex"><b>8.2.26 tts:zIndex</b></a></p>
+ </li>
+ </ul>
+ <p>Unless explicitly stated otherwise, linear white-space (LWSP) may appear
+ between tokens of a value of a TT Style Property.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This specification makes use of <em>lowerCamelCased</em> local names for
+ style attributes that are based upon like-named properties defined by <a
+ href="#xsl10">[XSL 1.0]</a>. This convention is likewise extended to token
+ values of such properties.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A style property may be expressed as a specified attribute on any content
+ element type independently of whether the property applies to that element
+ type. This capability permits the expression of an inheritable style property
+ on ancestor elements to which the property property does not apply.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-style" id="style-attribute-style"></a>8.2.1
+ style</h4>
+ <p>The <code>style</code> attribute is used to reference one or more
+ <code>style</code> elements each of which define a computed style
+ specification set.</p>
+ <p>The <code>style</code> attribute may be specified by an instance of the
+ following element types:</p>
+ <ul>
+ <li>
+ <p><a
+ href="#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+ <li>
+ <p><a href="#layout-vocabulary-region"><code>region</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+ <li>
+ <p><a href="#styling-vocabulary-style"><code>style</code></a></p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See the specific element type definitions that permit use of the
+ <code>style</code> attribute for further information on its semantics.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-backgroundColor"
+ id="style-attribute-backgroundColor"></a>8.2.2 tts:backgroundColor</h4>
+ <p>The <code>tts:backgroundColor</code> attribute is used to specify a style
+ property that defines the background color of a region or an area generated
+ by content flowed into a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-backgroundColor"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-value-color"><color></a> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>transparent</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body"><code>body</code></a>, <a
+ href="#content-vocabulary-div"><code>div</code></a>, <a
+ href="#content-vocabulary-p"><code>p</code></a>, <a
+ href="#layout-vocabulary-region"><code>region</code></a>, <a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>tts:backgroundColor</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-backgroundColor-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Background Color
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="306px 114px"/>
+ <style <span class="strong">tts:backgroundColor="red"</span>/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:padding="3px 40px"/>
+</region>
+...
+<p region="r1" <span
+class="strong">tts:backgroundColor="purple"</span> tts:textAlign="center">
+ Twinkle, twinkle, little bat!<br/>
+ How <span <span
+class="strong">tts:backgroundColor="green"</span>>I wonder</span> where you're at!
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table"
+ id="style-attribute-backgroundColor-example-1-images" class="example-images">
+ <caption>
+ Example Rendition – Background Color
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/backgroundColor.png"
+ alt="TT AF backgroundColor style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.7.2.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-color" id="style-attribute-color"></a>8.2.3
+ tts:color</h4>
+ <p>The <code>tts:color</code> attribute is used to specify a style property
+ that defines the foreground color of marks associated with an area generated
+ by content flowed into a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-color" class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-value-color"><color></a> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>transparent</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For the purpose of determining applicability of this style property,
+ each character child of a <code>p</code> element is considered to be
+ enclosed in an anonymous span.</p>
+ </div>
+ <p>The <code>tts:color</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-color-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Color
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:backgroundColor="black"/>
+ <style <span class="strong">tts:color="white"</span>/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ In spring, when woods are <span <span
+class="strong">tts:color="green"</span>>getting green</span>,<br/>
+ I'll try and tell you what I mean.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-color-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Color
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/color.png"
+ alt="DFXP color style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.17.1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-direction"
+ id="style-attribute-direction"></a>8.2.4 tts:direction</h4>
+ <p>The <code>tts:direction</code> attribute is used to specify a style
+ property that defines the directionality of an embedding or override
+ according to the Unicode bidirectional algorithm.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-direction"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>ltr</code> | <code>rtl</code> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>ltr</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-p"><code>p</code></a>, <a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <p>The <code>tts:direction</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-direction-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Direction
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span tts:unicodeBidi="bidiOverride" <span
+class="strong">tts:direction="rtl"</span>>where the tourists snore.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-direction-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Direction
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/direction.png"
+ alt="DFXP direction style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.27.1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-display" id="style-attribute-display"></a>8.2.5
+ tts:display</h4>
+ <p>The <code>tts:display</code> attribute is used to specify a style property
+ that defines whether an element is a candidate for layout and composition in
+ a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-display"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code> | <code>none</code> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body"><code>body</code></a>, <a
+ href="#content-vocabulary-div"><code>div</code></a>, <a
+ href="#content-vocabulary-p"><code>p</code></a>, <a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute is <code>auto</code>, then the affected
+ element is a candidate for region layout and presentation; however, if the
+ value is <code>none</code>, then the affected element and its descendants
+ must be considered ineligible for region layout and presentation.</p>
+ <p>The <code>tts:display</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-display-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Display
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="369px 119px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+...
+<div region="r1">
+ <p dur="5s">
+ [[[
+ <span <span class="strong">tts:display="none"</span>>
+ <set begin="1s" dur="1s" <span class="strong">tts:display="auto"</span>/>
+ Beautiful soup,
+ </span>
+ <span <span class="strong">tts:display="none"</span>>
+ <set begin="2s" dur="1s" <span class="strong">tts:display="auto"</span>/>
+ so rich and green,
+ </span>
+ <span <span class="strong">tts:display="none"</span>>
+ <set begin="3s" dur="1s" <span class="strong">tts:display="auto"</span>/>
+ waiting in a hot tureen!
+ </span>
+ ]]]
+ </p>
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-display-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Display
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/display_0.png"
+ alt="DFXP display style property - [0,1)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/display_1.png"
+ alt="DFXP display style property - [1,2)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/display_2.png"
+ alt="DFXP display style property - [2,3)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/display_3.png"
+ alt="DFXP display style property - [3,4)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/display_4.png"
+ alt="DFXP display style property - [4,5)" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#css2">[CSS2]</a>, § 9.2.5.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-displayAlign"
+ id="style-attribute-displayAlign"></a>8.2.6 tts:displayAlign</h4>
+ <p>The <code>tts:displayAlign</code> attribute is used to specify a style
+ property that defines the alignment of block areas in the block progression
+ direction.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-displayAlign"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>before</code> | <code>center</code> |
+ <code>after</code> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>before</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <p>The <code>tts:displayAlign</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-displayAlign-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Display Align
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="128px 66px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="before"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="192px 66px"/>
+ <style tts:origin="128px 66px"/>
+ <style tts:backgroundColor="green"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="after"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r3">
+ <style tts:extent="128px 66px"/>
+ <style tts:origin="0px 132px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="before"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r4">
+ <style tts:extent="192px 66px"/>
+ <style tts:origin="128px 198px"/>
+ <style tts:backgroundColor="green"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:displayAlign="after"</span>/>
+ <style tts:textAlign="start"/>
+</region>
+...
+<div>
+ <p region="r1">I sent a message to the fish:</p>
+ <p region="r2">I told them<br/> "This is what I wish."</p>
+ <p region="r3">The little fishes of the sea,</p>
+ <p region="r4">They sent an<br/> answer back to me.</p>
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table"
+ id="style-attribute-displayAlign-example-1-images" class="example-images">
+ <caption>
+ Example Rendition – Display Align
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/displayAlign.png"
+ alt="DFXP displayAlign style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.13.4.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-dynamicFlow"
+ id="style-attribute-dynamicFlow"></a>8.2.7 tts:dynamicFlow</h4>
+ <p>The <code>tts:dynamicFlow</code> attribute is used to specify a style
+ property that defines how to dynamically flow content into and out of a
+ region over some time interval.</p>
+ <p>This style property applies only to a region when the
+ <code>tts:overflow</code> property for that region has the value
+ <code>scroll</code>.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-dynamicFlow"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>none</code> | <a
+ href="#style-value-flowFunction"><flowFunction></a>+ <a
+ href="#style-value-flowIntervalFunction"><flowIntervalFunction></a>*</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>none</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute is <code>none</code>, then no dynamic flow
+ semantics apply.</p>
+ <p>If the value of this attribute contains a single <a
+ href="#style-value-flowFunction"><flowFunction></a>, then that flow
+ function applies equally to <em>fill into</em>, <em>reflow within</em>, and
+ <em>clear from</em> dynamic flow operations.</p>
+ <p>If a reflow <code>within()</code> flow function is specified, but no clear
+ <code>out()</code> flow function is specified, or vice-versa, then the
+ function applies equally to both <em>reflow within</em> and <em>clear
+ from</em> dynamic flow operations.</p>
+ <p>If either <code>intra()</code> or <code>inter()</code> <a
+ href="#style-value-flowIntervalFunction"><flowIntervalFunction></a> is
+ not specified, then the <code>auto</code> value for the missing <a
+ href="#style-value-flowIntervalFunction"><flowIntervalFunction></a>
+ applies.</p>
+ <p>The normative processing model for dynamic flow behavior is specified in
+ <a href="#dynamicFlowModel"><b>B Dynamic Flow Processing Model</b></a>.</p>
+ <p>The <code>tts:dynamicFlow</code> style is illustrated by the following
+ example, and depicted in an <a href="images/dynamicFlow_RU_animated.svg">SVG
+ Animation</a>.</p>
+ <table summary="HTML Table" id="style-attribute-dynamicFlow-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Dynamic Flow
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="140px 70px"/>
+ <style tts:displayAlign="after"/>
+ <style tts:backgroundColor="transparent"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style <span class="strong">tts:overflow="scroll"</span>/>
+ <style <span
+class="strong">tts:dynamicFlow="in(word,jump) out(line,smooth) inter(3s)"</span>/>
+</region>
+...
+<p region="r1">
+ <span tts:backgroundColor="black" tts:color="white">
+ Five o'clock tea!<br/>
+ Ever to thee,<br/>
+ Faithful I'll be,<br/>
+ Five o'clock tea!<br/>
+ <br/>
+ <br/>
+ <br/>
+ </span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-dynamicFlow-example-2-images"
+ class="example-images-bordered">
+ <caption>
+ Example Rendition – Dynamic Flow – Discrete Frames
+ </caption>
+ <col width="136px" span="1" />
+ <col width="136px" span="1" />
+ <col width="136px" span="1" />
+ <col width="136px" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_0.png"
+ alt="DFXP dynamic flow style property - frame 0" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_1.png"
+ alt="DFXP dynamic flow style property - frame 1" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_2.png"
+ alt="DFXP dynamic flow style property - frame 2" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_3.png"
+ alt="DFXP dynamic flow style property - frame 3" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_4.png"
+ alt="DFXP dynamic flow style property - frame 4" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_5.png"
+ alt="DFXP dynamic flow style property - frame 5" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_6.png"
+ alt="DFXP dynamic flow style property - frame 6" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_7.png"
+ alt="DFXP dynamic flow style property - frame 7" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_8.png"
+ alt="DFXP dynamic flow style property - frame 8" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_9.png"
+ alt="DFXP dynamic flow style property - frame 9" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_10.png"
+ alt="DFXP dynamic flow style property - frame 10" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_11.png"
+ alt="DFXP dynamic flow style property - frame 11" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_12.png"
+ alt="DFXP dynamic flow style property - frame 12" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_13.png"
+ alt="DFXP dynamic flow style property - frame 13" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_14.png"
+ alt="DFXP dynamic flow style property - frame 14" /></td>
+ <td rowspan="1" colspan="1"><img src="images/dynamicFlow_snake_15.png"
+ alt="DFXP dynamic flow style property - frame 15" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-extent" id="style-attribute-extent"></a>8.2.8
+ tts:extent</h4>
+ <p>The <code>tts:extent</code> attribute is used to specify the
+ <em>width</em> and <em>height</em> of a region area (which may be the root
+ container region).</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-extent"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code> | <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body"><code>body</code></a>, <a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">relative to width and height of root
+ container region</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute consists of two <a
+ href="#style-value-length"><length></a> specifications, then they must
+ be interpreted as <em>width</em> and <em>height</em>, where the first
+ specification is the <em>width</em>, and the second specification is the
+ <em>height</em>.</p>
+ <p>If the value of this attribute is <code>auto</code>, then the initial
+ value of the style property must be considered to be the same as the root
+ container extent. The root container extent is determined either by a
+ <code>tts:extent</code> specified on the <code>body</code> element, if
+ present, or by the external authoring context, if not present. In the former
+ case, if the width and height is expressed in terms of two <a
+ href="#style-value-length"><length></a> specifications, then these
+ specifications must be expressed as non-percentage, definite lengths using
+ pixel units.</p>
+ <p>The <code>tts:extent</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-extent-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Extent
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style <span class="strong">tts:extent="330px 122px"</span>/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ 'Tis the voice of the Lobster:<br/>
+ I heard him declare,<br/>
+ "You have baked me too brown,<br/>
+ I must sugar my hair."
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-extent-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Extent
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/extent.png"
+ alt="DFXP extent style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-fontFamily"
+ id="style-attribute-fontFamily"></a>8.2.9 tts:fontFamily</h4>
+ <p>The <code>tts:fontFamily</code> attribute is used to specify a style
+ property that defines the font family from which glyphs are selected for
+ glyph areas generated by content flowed into a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-fontFamily"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1">(<a
+ href="#style-value-familyName"><familyName></a> | <a
+ href="#style-value-genericFamilyName"><genericFamilyName></a>)
+ (<code>","</code> (<a
+ href="#style-value-familyName"><familyName></a> | <a
+ href="#style-value-genericFamilyName"><genericFamilyName></a>))*
+ | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>default</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For the purpose of determining applicability of this style property,
+ each character child of a <code>p</code> element is considered to be
+ enclosed in an anonymous span.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The initial value, <code>default</code>, is a generic font family name,
+ and is further described in <a
+ href="#style-value-genericFamilyName"><b>8.3.6
+ <genericFamilyName></b></a> below.</p>
+ </div>
+ <p>The <code>tts:fontFamily</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-fontFamily-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Font Family
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="474px 146px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style <span class="strong">tts:fontFamily="proportionalSansSerif"</span>/>
+</region>
+...
+<div region="r1">
+ <p>
+ "The time has come," the Walrus said,<br/>
+ "to talk of many things:
+ </p>
+ <p tts:textAlign="end" <span
+class="strong">tts:fontFamily="monospaceSerif"</span>>
+ Of shoes, and ships, and sealing wax,<br/>
+ Of cabbages and kings,
+ </p>
+ <p>
+ And why the sea is boiling hot,<br/>
+ and whether pigs have wings."
+ </p>
+</div>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-fontFamily-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Font Family
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/fontFamily.png"
+ alt="DFXP fontFamily style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.8.2.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-fontSize"
+ id="style-attribute-fontSize"></a>8.2.10 tts:fontSize</h4>
+ <p>The <code>tts:fontSize</code> attribute is used to specify a style
+ property that defines the font size for glyphs that are selected for glyph
+ areas generated by content flowed into a region, where font size is
+ interpreted as a scaling transform to the font's design EM square.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-fontSize"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a>? |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>1c</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">relative to parent element's font size</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If a single <a href="#style-value-length"><length></a> value is
+ specified, then this length applies equally to horizontal and vertical
+ scaling of a glyph's EM square; if two <a
+ href="#style-value-length"><length></a> values are specified, then the
+ first expresses the horizontal scaling and the second expresses vertical
+ scaling.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Use of independent horizontal and vertical font sizes is expected to be
+ used with cell based metrics in order to denote fonts that are two rows in
+ height and one column in width.</p>
+ </div>
+ <p>If horizontal and vertical sizes are expressed independently, then the
+ metrics of the <a href="#style-value-length"><length></a> values must
+ be the same.</p>
+ <p>The <a href="#style-value-length"><length></a> value(s) used to
+ express font size must be non-negative.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For the purpose of determining applicability of this style property,
+ each character child of a <code>p</code> element is considered to be
+ enclosed in an anonymous span.</p>
+ </div>
+ <p>The <code>tts:fontSize</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-fontSize-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Font Size
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="299px 97px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style <span class="strong">tts:fontSize="18px"</span>/>
+</region>
+...
+<p region="r1">
+ Then fill up the glasses<br/>
+ with treacle and ink,<br/>
+ Or anything else<br/>
+ that is <span <span
+class="strong">tts:fontSize="24px"</span>>pleasant</span> to drink.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-fontSize-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Font Size
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/fontSize.png"
+ alt="DFXP fontSize style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.8.4.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-fontStyle"
+ id="style-attribute-fontStyle"></a>8.2.11 tts:fontStyle</h4>
+ <p>The <code>tts:fontStyle</code> attribute is used to specify a style
+ property that defines the font style to apply to glyphs that are selected for
+ glyph areas generated by content flowed into a region, where the mapping from
+ font style value to specific font face or style parameterization is not
+ determined by this specification.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-fontStyle"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code> | <code>italic</code> |
+ <code>oblique</code> | <code>reverseOblique</code> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For the purpose of determining applicability of this style property,
+ each character child of a <code>p</code> element is considered to be
+ enclosed in an anonymous span.</p>
+ </div>
+ <p>Use of values <code>oblique</code> and <code>reverseOblique</code> denote
+ a shear and reverse shear transformation (at an unspecified angle) in the
+ inline progression dimension. A conformant processor may perform such a
+ transform on a font in order to satisfy this authorial intent for the purpose
+ of presentation processing. If a specified font style is not available or a
+ shear or reverse shear transformation is not supported, then the processor
+ must interpret the font style as if the value <code>normal</code> were
+ specified for the purpose of presentation processing.</p>
+ <p>The <code>tts:fontStyle</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-fontStyle-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Font Style
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="331px 84px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+...
+<p region="r1">
+ In autumn, when the leaves are brown,<br/>
+ Take pen and ink, and <span <span
+class="strong">tts:fontStyle="italic"</span>>write it down.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-fontStyle-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Font Style
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/fontStyle.png"
+ alt="DFXP fontStyle style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.8.7.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-fontWeight"
+ id="style-attribute-fontWeight"></a>8.2.12 tts:fontWeight</h4>
+ <p>The <code>tts:fontWeight</code> attribute is used to specify a style
+ property that defines the font weight to apply to glyphs that are selected
+ for glyph areas generated by content flowed into a region, where the mapping
+ from font weight value to specific font face or weight parameterization is
+ not determined by this specification.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-fontWeight"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code> | <code>bold</code> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For the purpose of determining applicability of this style property,
+ each character child of a <code>p</code> element is considered to be
+ enclosed in an anonymous span.</p>
+ </div>
+ <p>If a specified font weight is not available, then a conformant processor
+ must interpret the font weight as if the value <code>normal</code> were
+ specified for the purpose of presentation processing.</p>
+ <p>The <code>tts:fontWeight</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-fontWeight-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Font Weight
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="376px 95px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+...
+<p region="r1">
+ They told me you had been to her,<br/>
+ <span <span
+class="strong">tts:fontWeight="bold"</span>>and mentioned me to him:</span><br/>
+ She gave me a good character<br/>
+ <span <span
+class="strong">tts:fontWeight="bold"</span>>but said I could not swim.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-fontWeight-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Font Weight
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/fontWeight.png"
+ alt="DFXP fontWeight style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.8.9.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-lineHeight"
+ id="style-attribute-lineHeight"></a>8.2.13 tts:lineHeight</h4>
+ <p>The <code>tts:lineHeight</code> attribute is used to specify a style
+ property that defines the inter-baseline separation between line areas
+ generated by content flowed into a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-lineHeight"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code> | <a
+ href="#style-value-length"><length></a> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-p"><code>p</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">relative to this element's font size</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute is <code>normal</code>, then the initial
+ value of the style property must be considered to be the same as the largest
+ font size that applies to any child element.</p>
+ <p>If specified as a <a href="#style-value-length"><length></a>, then
+ the length must be non-negative.</p>
+ <p>The <code>tts:lineHeight</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-lineHeight-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Line Height
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="255px 190px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="16px"/>
+ <style <span class="strong">tts:lineHeight="32px"</span>/>
+</region>
+...
+<p region="r1">
+ He thought he saw an elephant,<br/>
+ That practised on a fife:<br/>
+ He looked again, and found it was<br/>
+ A letter from his wife.<br/>
+ "At length I realise," he said,<br/>
+ "The bitterness of Life.
+"</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-lineHeight-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Line Height
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/lineHeight.png"
+ alt="DFXP lineHeight style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.15.4.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-opacity" id="style-attribute-opacity"></a>8.2.14
+ tts:opacity</h4>
+ <p>The <code>tts:opacity</code> attribute is used to specify a style property
+ that defines the opacity (or transparency) of marks associated with a region
+ (such as a region's background color) or marks associated with areas
+ generated by a given content element to which opacity applies.</p>
+ <p>When presented onto a visual medium, the opacity of the affacted element
+ is applied uniformly and on a linear scale to all marks produced by the
+ affected element (and its descendants).</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-opacity"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-value-alpha"><alpha></a> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>1.0</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>An <a href="#style-value-alpha"><alpha></a> value greater than 1.0
+ must be considered equivalent to an <a
+ href="#style-value-alpha"><alpha></a> value of 1.0.</p>
+ <p>The <code>tts:opacity</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-opacity-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Opacity
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1" dur="5s">
+ <set begin="0s" dur="1s" <span class="strong">tts:opacity="1.00"</span>/>
+ <set begin="1s" dur="1s" <span class="strong">tts:opacity="0.75"</span>/>
+ <set begin="2s" dur="1s" <span class="strong">tts:opacity="0.50"</span>/>
+ <set begin="3s" dur="1s" <span class="strong">tts:opacity="0.25"</span>/>
+ <set begin="4s" dur="1s" <span class="strong">tts:opacity="0.00"</span>/>
+ <style tts:extent="304px 77px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ The sun was shining on the sea
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-opacity-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Opacity
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/opacity_0.png"
+ alt="DFXP opacity style property - [0,1)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/opacity_1.png"
+ alt="DFXP opacity style property - [1,2)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/opacity_2.png"
+ alt="DFXP opacity style property - [2,3)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/opacity_3.png"
+ alt="DFXP opacity style property - [3,4)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/opacity_4.png"
+ alt="DFXP opacity style property - [4,5)" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#css3-color">[CSS3 Color]</a>, §
+ 3.2.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-origin" id="style-attribute-origin"></a>8.2.15
+ tts:origin</h4>
+ <p>The <code>tts:origin</code> attribute is used to specify the <em>x</em>
+ and <em>y</em> coordinates of the origin of a region area with respect to the
+ origin of the root container extent, if specified, or the external authoring
+ context, if not specified.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-origin"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code> | <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">relative to width and height of root
+ container region</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute consists of two <a
+ href="#style-value-length"><length></a> specifications, then they must
+ be interpreted as <em>x</em> and <em>y</em> coordinates, where the first
+ specification is the <em>x</em> coordinate, and the second specification is
+ the <em>y</em> coordinate.</p>
+ <p>If the value of this attribute is <code>auto</code>, then the initial
+ value of the style property must be considered to be the same as the root
+ container origin. The root container origin is determined by the external
+ authoring context.</p>
+ <p>The <code>tts:origin</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-origin-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Origin
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style <span class="strong">tts:origin="40px 40px"</span>/>
+ <style tts:extent="308px 92px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ "To dine!" she shrieked in dragon-wrath.<br/>
+ "To swallow wines all foam and froth!<br/>
+ To simper at a table-cloth!"
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-origin-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Origin
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/origin.png"
+ alt="DFXP origin style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-overflow"
+ id="style-attribute-overflow"></a>8.2.16 tts:overflow</h4>
+ <p>The <code>tts:overflow</code> attribute is used to specify a style
+ property that defines whether a region area is clipped or not if the
+ descendant areas of the region overflow its extent.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-overflow"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>visible</code> | <code>hidden</code>
+ | <code>scroll</code> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>hidden</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute is <code>visible</code>, then content
+ should not be clipped outside of the affected region, and region composition
+ and layout must be performed as if the region's width and height were
+ infinite, but with a well-defined origin. If the value is
+ <code>hidden</code>, then content should be clipped outside of the affected
+ region.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Unless a manual line break element <code>br</code> is used by the
+ content author, a paragraph of a given region will generate no more than
+ one line area in that region if the value of the <code>tts:overflow</code>
+ style that applies to the region is <code>visible</code> and if the
+ applicable <code>tts:wrapOption</code> style is <code>noWrap</code>.</p>
+ </div>
+ <p>If the value of this attribute is <code>scroll</code>, then content is
+ dynamically flowed into and out of the affected region according to the
+ values of the <code>tts:dynamicFlow</code> style property; in this case, the
+ semantics of the <code>tts:dynamicFlow</code> apply whether or not the
+ affected region has overflowed.</p>
+ <p>The <code>tts:overflow</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-overflow-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Overflow
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style <span class="strong">tts:overflow="visible"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 43px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style <span class="strong">tts:overflow="hidden"</span>/>
+</region>
+...
+<p region="r1">
+ "But wait a bit," the Oysters cried,<br/>
+ "Before we have our chat;
+</p>
+<p region="r2">
+ For some of us are out of breath,<br/>
+ And all of us are fat!"
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-overflow-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Overflow
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/overflow.png"
+ alt="DFXP overflow style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the above example, the <code>tts:noWrap</code> is set to
+ <code>noWrap</code> to prevent automatic line wrapping (breaking); if this
+ were not specified, then overflow would occur in the block progression
+ direction as opposed to the inline progression direction.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.20.2.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-padding" id="style-attribute-padding"></a>8.2.17
+ tts:padding</h4>
+ <p>The <code>tts:padding</code> attribute is used to specify padding (or
+ inset) space on all sides of a region area or a content area produced by a
+ content element.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-padding"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#style-value-length"><length></a> | <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> | <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> | <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>0</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">relative to width and height of region</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute consists of one <a
+ href="#style-value-length"><length></a> specification, then that length
+ applies to all edges of the affected areas. If the value consists of two <a
+ href="#style-value-length"><length></a> specifications, then the first
+ applies to the before and after edges, and the second applies to the start
+ and end edges. If three <a href="#style-value-length"><length></a>
+ specifications are provided, then the first applies to the before edge, the
+ second applies to the start and end edges, and the third applies to the after
+ edge. If four <a href="#style-value-length"><length></a> specifications
+ are provided, then they apply to before, end, after, and start edges,
+ respectively.</p>
+ <p>The <code>tts:padding</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-padding-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Padding
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="446px 104px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style <span class="strong">tts:padding="10px 40px"</span>/>
+</region>
+...
+<p region="r1" tts:backgroundColor="red">
+ Just the place for a Snark! I have said it twice:<br/>
+ That alone should encourage the crew.<br/>
+ Just the place for a Snark! I have said it thrice:<br/>
+ What I tell you three times is true.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>When rendering an area to which padding applies, the background color that
+ applies to the area is rendered into the padded portion of the area.</p>
+ <table summary="HTML Table" id="style-attribute-padding-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Padding
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/padding.png"
+ alt="DFXP padding style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.29.15,
+ except that individual shorthand values map to writing mode relative
+ padding values as defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.7.31,
+ 7.7.32, 7.7.33, and 7.7.34.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-showBackground"
+ id="style-attribute-showBackground"></a>8.2.18 tts:showBackground</h4>
+ <p>The <code>tts:showBackground</code> attribute is used to specify
+ constraints on when the background color of a region is intended to be
+ presented.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-showBackground"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>always</code> |
+ <code>whenActive</code> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>always</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If the value of this attribute is <code>always</code>, then the background
+ color of a region is always rendered when performing presentation processing
+ on a visual medium; if the value is <code>whenActive</code>, then the
+ background color of a region is rendered only when some content is selected
+ into the region.</p>
+ <p>The <code>tts:showBackground</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-showBackground-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Show Background
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="265px 100px"/>
+ <style tts:backgroundColor="black"/>
+ <style <span class="strong">tts:showBackground="always"</span>/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r2">
+ <style tts:origin="205px 60px"/>
+ <style tts:extent="290px 100px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="end"/>
+ <style <span class="strong">tts:showBackground="whenActive"</span>/>
+</region>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#smil21">[SMIL 2.1]</a>, § 5.3.1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-textAlign"
+ id="style-attribute-textAlign"></a>8.2.19 tts:textAlign</h4>
+ <p>The <code>tts:textAlign</code> attribute is used to specify a style
+ property that defines how inline areas are aligned within a containing block
+ area in the inline progression direction.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-textAlign"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>left</code> | <code>center</code> |
+ <code>right</code> | <code>start</code> | <code>end</code> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>start</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-p"><code>p</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>tts:textAlign</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-textAlign-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Text Align
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:textAlign="start"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 47px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:textAlign="end"</span>/>
+</region>
+...
+<p region="r1">
+ Beware the Jabberwock, my son!<br/>
+ The jaws that bite, the claws that catch!
+</p>
+<p region="r2">
+ Beware the Jubjub bird, and shun<br/>
+ The frumious Bandersnatch!
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-textAlign-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Text Align
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/textAlign.png"
+ alt="DFXP textAlign style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.15.9.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-textDecoration"
+ id="style-attribute-textDecoration"></a>8.2.20 tts:textDecoration</h4>
+ <p>The <code>tts:textDecoration</code> attribute is used to specify a style
+ property that defines a text decoration effect to apply to glyph areas or
+ other inline areas that are generated by content flowed into a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-textDecoration"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>none</code> | [ [
+ <code>underline</code> | <code>noUnderline</code> ] || [
+ <code>throughline</code> | <code>noThroughline</code> ] || [
+ <code>overline</code> | <code>noOverline</code> ] ] |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>none</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body"><code>body</code></a>, <a
+ href="#content-vocabulary-div"><code>div</code></a>, <a
+ href="#content-vocabulary-p"><code>p</code></a>, <a
+ href="#layout-vocabulary-region"><code>region</code></a>, <a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no, but see prose of <a href="#xsl10">[XSL
+ 1.0]</a>, § 7.16.4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>tts:textDecoration</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-textDecoration-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Text Decoration
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="385px 82px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:padding="5px 2px"/>
+ <style <span class="strong">tts:textDecoration="underline"</span>/>
+</region>
+...
+<p region="r1">
+ The sea was wet<span <span
+class="strong">tts:textDecoration="noUnderline"</span>> as </span>wet<span
+ <span class="strong">tts:textDecoration="noUnderline"</span>>
+ could be,<br/>
+ The sand was dry as dry.<br/>
+ <span <span
+class="strong">tts:textDecoration="lineThrough"</span>>There weren't any</span>
+ You
+ <span <span
+class="strong">tts:textDecoration="lineThrough"</span>>couldn't</span>
+ could not see a cloud<br/>
+ Because no cloud was in the sky.
+ </span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table"
+ id="style-attribute-textDecoration-example-1-images" class="example-images">
+ <caption>
+ Example Rendition – Text Decoration
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/textDecoration.png"
+ alt="DFXP textDecoration style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.16.4.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-textOutline"
+ id="style-attribute-textOutline"></a>8.2.21 tts:textOutline</h4>
+ <p>The <code>tts:textOutline</code> attribute is used to specify a style
+ property that defines a text outline effect to apply to glyphs that are
+ selected for glyph areas generated by content flowed into a region.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-textOutline"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>none</code> | <a
+ href="#style-value-color"><color></a>? <a
+ href="#style-value-length"><length></a> <a
+ href="#style-value-length"><length></a>? |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>none</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">relative to this element's font size</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For the purpose of determining applicability of this style property,
+ each character child of a <code>p</code> element is considered to be
+ enclosed in an anonymous span.</p>
+ </div>
+ <p>The value of this attribute consists of an optional <a
+ href="#style-value-color"><color></a> term followed by one or two <a
+ href="#style-value-length"><length></a> terms. If a <em>color</em> term
+ is present, then it denotes the outline color; if no <em>color</em> term is
+ present, the computed value of the <code>tts:color</code> applies. The first
+ <em>length</em> term denotes the outline thickness and the second length
+ term, if present, indicates the blur radius.</p>
+ <p>The <code>tts:textOutline</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-textOutline-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Text Outline
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:backgroundColor="transparent"/>
+ <style tts:color="yellow"/>
+ <style <span class="strong">tts:textOutline="black 2px 0px"</span>/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="24px"/>
+</region>
+...
+<p>
+ How doth the little crocodile<br/>
+ Improve its shining tail,<br/>
+ And pour the waters of the Nile<br/>
+ On every golden scale!<br/>
+ How cheerfully he seems to grin,<br/>
+ How neatly spreads his claws,<br/>
+ And welcomes little fishes in,<br/>
+ With gently smiling jaws!
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-textOutline-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Text Outline
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/textOutline.png"
+ alt="backgroundColor style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-unicodeBidi"
+ id="style-attribute-unicodeBidi"></a>8.2.22 tts:unicodeBidi</h4>
+ <p>The <code>tts:unicodeBidi</code> attribute is used to specify a style
+ property that defines a directional embedding or override according to the
+ Unicode bidirectional algorithm.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-unicodeBidi"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code> | <code>embed</code> |
+ <code>bidiOverride</code> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>normal</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-p"><code>p</code></a>, <a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <p>The <code>tts:unicodeBidi</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-unicodeBidi-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Unicode Bidirectionality
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span <span
+class="strong">tts:unicodeBidi="bidiOverride"</span> tts:direction="rtl">where the tourists snore.</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-unicodeBidi-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Unicode Bidirectionality
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/unicodeBidi.png"
+ alt="DFXP unicodeBidi style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.27.6.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-visibility"
+ id="style-attribute-visibility"></a>8.2.23 tts:visibility</h4>
+ <p>The <code>tts:visibility</code> attribute is used to specify a style
+ property that defines whether generated areas are visible or not when
+ rendered on a visual presentation medium.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-visibility"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>visible</code> | <code>hidden</code>
+ | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>visible</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body"><code>body</code></a>, <a
+ href="#content-vocabulary-div"><code>div</code></a>, <a
+ href="#content-vocabulary-p"><code>p</code></a>, <a
+ href="#layout-vocabulary-region"><code>region</code></a>, <a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>tts:visibility</code> style has no affect on content layout or
+ composition, but merely determines whether composed content is visible or
+ not.</p>
+ <p>The <code>tts:visibility</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-visibility-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Visibility
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="398px 121px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style/>
+</region>
+...
+<p region="r1" dur="4s">
+ <span <span class="strong">tts:visibility="hidden"</span>>
+ <set begin="1s" <span class="strong">tts:visibility="visible"</span>/>
+ Curiouser
+ </span>
+ <span <span class="strong">tts:visibility="hidden"</span>>
+ <set begin="2s" <span class="strong">tts:visibility="visible"</span>/>
+ and
+ </span>
+ <span <span class="strong">tts:visibility="hidden"</span>>
+ <set begin="3s" <span class="strong">tts:visibility="visible"</span>/>
+ curiouser!
+ </span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-visibility-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Visibility
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/visibility_0.png"
+ alt="DFXP visibility style property - [0,1)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/visibility_1.png"
+ alt="DFXP visibility style property - [1,2)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/visibility_2.png"
+ alt="DFXP visibility style property - [2,3)" /></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/visibility_3.png"
+ alt="DFXP visibility style property - [3,4)" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.28.8.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-wrapOption"
+ id="style-attribute-wrapOption"></a>8.2.24 tts:wrapOption</h4>
+ <p>The <code>tts:wrapOption</code> attribute is used to specify a style
+ property that defines whether or not automatic line wrapping (breaking)
+ applies within the context of the affected element.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-wrapOption"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>wrap</code> | <code>noWrap</code> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>wrap</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>span</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">yes</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>For the purpose of determining applicability of this style property, each
+ character child of a <code>p</code> element is considered to be enclosed in
+ an anonymous span.</p>
+ <p>The <code>tts:wrapOption</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-wrapOption-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Wrap Option
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="192px 117px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:overflow="hidden"/>
+ <style <span class="strong">tts:wrapOption="noWrap"</span>/>
+</region>
+...
+<p>
+ I'll tell thee everything I can:<br/>
+ There's little to relate.<br/>
+ I saw an aged aged man,<br/>
+ A-sitting on a gate."
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-wrapOption-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Wrap Option
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/wrapOption.png"
+ alt="DFXP wrapOption style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.15.13.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-writingMode"
+ id="style-attribute-writingMode"></a>8.2.25 tts:writingMode</h4>
+ <p>The <code>tts:writingMode</code> attribute is used to specify a style
+ property that defines the block and inline progression directions to be used
+ for the purpose of stacking block and inline areas within a region area.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-writingMode"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>lrtb</code> | <code>rltb</code> |
+ <code>tbrl</code> | <code>tblr</code> | <code>lr</code> |
+ <code>rl</code> | <code>tb</code> | <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>lrtb</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">none</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>tts:writingMode</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-writingMode-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Writing Mode
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:extent="50px 570px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:writingMode="tbrl"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="310px 50px"/>
+ <style tts:origin="70px 120px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:writingMode="rltb"</span>/>
+</region>
+...
+<p region="r1">
+ I sometimes dig for buttered rolls,<br/>
+ Or set limed twigs for crabs:
+</p>
+<p region="r2" tts:direction="rtl" tts:unicodeBidi="bidiOverride">
+ I sometimes search the grassy knolls for the wheels of Hansom-cabs.
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/>
+ <table summary="HTML Table" id="style-attribute-writingMode-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Writing Mode
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/writingMode.png"
+ alt="DFXP writingMode style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the second paragraph in the above example that targets region
+ <code>r2</code>, the <code>tts:unicodeBidi</code> and
+ <code>tts:direction</code> properties are set to <code>bidiOverride</code>
+ and <code>rtl</code>, respectively, in order to override the normally
+ left-to-right directionality of characters in the Latin script.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.27.7.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-attribute-zIndex" id="style-attribute-zIndex"></a>8.2.26
+ tts:zIndex</h4>
+ <p>The <code>tts:zIndex</code> attribute is used to specify a style property
+ that defines the front-to-back ordering of region areas in the case that they
+ overlap.</p>
+ <p>This attribute may be specified by any style specification element or
+ content element that permits use of attributes in the TT Style Namespace;
+ however, this attribute applies as a style property only to those element
+ types indicated in the following table.</p>
+ <table summary="HTML Table" id="style-property-details-zIndex"
+ class="common">
+ <col width="25%" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Values:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code> | <a
+ href="#style-value-integer"><integer></a> |
+ <code>inherit</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Initial:</em></td>
+ <td rowspan="1" colspan="1"><code>auto</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Applies to:</em></td>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>region</code></a></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Inherited:</em></td>
+ <td rowspan="1" colspan="1">no</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Percentages:</em></td>
+ <td rowspan="1" colspan="1">N/A</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><em>Animatable:</em></td>
+ <td rowspan="1" colspan="1">discrete</td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If two areas are associated with the same Z-index value, then, if those
+ areas overlap in space, the area(s) generated by lexically subsequent
+ elements must be rendered over area(s) generated by lexically prior elements,
+ where lexical order is defined as the postorder traversal of a document
+ instance.</p>
+ <p>The semantics of the value <code>auto</code> are those defined by <a
+ href="#xsl10">[XSL 1.0]</a>, § 7.28.9, where the <code>tt</code> element is
+ considered to establish the root stacking context.</p>
+ <p>The <code>tts:zIndex</code> style is illustrated by the following
+ example.</p>
+ <table summary="HTML Table" id="style-attribute-zIndex-example-1"
+ class="example">
+ <caption>
+ Example Fragment – Z Index
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region xml:id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:zIndex="0"</span>/>
+</region>
+<region xml:id="r2">
+ <style tts:origin="100px 60px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style <span class="strong">tts:zIndex="1"</span>/>
+</region>
+<region xml:id="r3">
+ <style tts:origin="0px 120px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <span class="strong">tts:zIndex="2"</span>/>
+</region>
+<region xml:id="r4">
+ <style tts:origin="100px 180px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style <span class="strong">tts:zIndex="3"</span>/>
+</region>
+...
+<p region="r1">
+ I passed by his garden, and marked, with one eye,<br/>
+ How the Owl and the Panther were sharing a pie.
+</p>
+<p region="r2">
+ The Panther took pie-crust, and gravy, and meat,<br/>
+ While the Owl had the dish as its share of the treat.
+</p>
+<p region="r3">
+ When the pie was all finished, the Owl, as a boon,<br/>
+ Was kindly permitted to pocket the spoon:
+</p>
+<p region="r4">
+ While the Panther received knife and fork<br/>
+ with a growl,<br/>
+ And concluded the banquet by...
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p/><p/>
+ <table summary="HTML Table" id="style-attribute-zIndex-example-1-images"
+ class="example-images">
+ <caption>
+ Example Rendition – Z Index
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/zIndex.png"
+ alt="DFXP zIndex style property" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the style property represented by this attribute are
+ based upon that defined by <a href="#xsl10">[XSL 1.0]</a>, § 7.28.9.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="styling-style-value-expressions"
+ id="styling-style-value-expressions"></a>8.3 Style Value Expressions</h3>
+ <p>Style property values include the use of the following expressions:</p>
+ <ul>
+ <li>
+ <p><a href="#style-value-alpha"><b>8.3.1 <alpha></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-color"><b>8.3.2 <color></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-digit"><b>8.3.3 <digit></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-duration"><b>8.3.4 <duration></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-familyName"><b>8.3.5
+ <familyName></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-flowFunction"><b>8.3.7
+ <flowFunction></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-flowIntervalFunction"><b>8.3.8
+ <flowIntervalFunction></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-genericFamilyName"><b>8.3.6
+ <genericFamilyName></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-hexDigit"><b>8.3.9 <hexDigit></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-integer"><b>8.3.10 <integer></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-namedColor"><b>8.3.12
+ <namedColor></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-quotedString"><b>8.3.13
+ <quotedString></b></a></p>
+ </li>
+ <li>
+ <p><a href="#style-value-string"><b>8.3.14 <string></b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="style-value-alpha" id="style-value-alpha"></a>8.3.1
+ <alpha></h4>
+ <p>An <alpha> expression is used to express an opacity value, where 0
+ means fully transparent and 1 means fully opaque.</p>
+ <table summary="HTML Table" id="alpha-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <alpha>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<alpha>
+ : <em>float</em>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>In the above syntax representation, the syntactic element
+ <em><code>float</code></em> must adhere to the lexical representation defined
+ by <a href="#xsd-2">[XML Schema Part 2]</a> § 3.2.4.1.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-color" id="style-value-color"></a>8.3.2
+ <color></h4>
+ <p>A <color> expression is used to specify a named color, exact RGB
+ color triple, or exact RGBA color tuple, where the alpha component, if
+ expressed, is maximum (255) at 100% opacity and minimum (0) at 0% opacity,
+ and where the applicable color space is defined by <a
+ href="#srgb">[SRGB]</a>.</p>
+ <table summary="HTML Table" id="color-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <color>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<color>
+ : "#" rrggbb
+ | "#" rrggbbaa
+ | "rgb" "(" r-value "," g-value "," b-value ")"
+ | "rgba" "(" r-value "," g-value "," b-value "," a-value ")"
+ | <a href="#style-value-namedColor"><namedColor></a>
+rrggbb
+ : <a href="#style-value-hexDigit"><hexDigit></a>{6}
+rrggbbaa
+ : <a href="#style-value-hexDigit"><hexDigit></a>{8}
+r-value | g-value | b-value | a-value
+ : component-value
+component-value
+ : non-negative-integer // valid range: [0,255]
+non-negative-integer
+ : <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>When expressing RGB component values, these values are considered to <span
+ class="strong">not</span> be premultiplied by alpha.</p>
+ <p>For the purpose of performing presentation processing such that non-opaque
+ or non-transparent alpha or opacity values apply, then the semantics of
+ compositing functions are defined with respect to the use of the <a
+ href="#srgb">[SRGB]</a> color space for both inputs and outputs of the
+ composition function.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of <a href="#srgb">[SRGB]</a> for the stated semantics of
+ composition is not mean to prevent an actual processor from using some
+ other color space either for internal or external purposes. For example, a
+ presentation processor may ultimately convert the SRGB values used here to
+ the YUV color space for rendition on a television device.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-digit" id="style-value-digit"></a>8.3.3
+ <digit></h4>
+ <p>A <digit> is used to express integers and other types of numbers or
+ tokens.</p>
+ <table summary="HTML Table" id="digit-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <digit>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<digit>
+ : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-duration" id="style-value-duration"></a>8.3.4
+ <duration></h4>
+ <p>A <duration> expression is used to express a temporal duration
+ value.</p>
+ <table summary="HTML Table" id="duration-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <duration>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<duration>
+ : <a href="#style-value-digit"><digit></a> ( "." <a
+href="#style-value-digit"><digit></a>+ )? metric
+metric
+ : "s" // seconds
+ | "ms" // milliseconds
+ | "f" // frames
+ | "t" // ticks
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>It is an error to omit the metric component of a duration.</p>
+ <p>When operating with <code>smpte</code> time base and
+ <code>discontinuous</code> mode, a duration expression must be considered to
+ denote a duration in (local) real-time, independently of the governing time
+ base.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-familyName" id="style-value-familyName"></a>8.3.5
+ <familyName></h4>
+ <p>A <familyName> expression specifies a font family name.</p>
+ <p>If the name contains a whitespace or quotation delimiter character, then
+ it must be expressed as a <quotedString>.</p>
+ <table summary="HTML Table" id="familyName-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <familyName>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<familyName>
+ : <a href="#style-value-string"><string></a>
+ | <a href="#style-value-quotedString"><quotedString></a>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-genericFamilyName"
+ id="style-value-genericFamilyName"></a>8.3.6 <genericFamilyName></h4>
+ <p>A <genericFamilyName> expression specifies a font family using a
+ general token that indicates a class of font families.</p>
+ <p>The resolution of a generic family name to a concrete font instance is
+ considered to be implementation dependent, both in the case of content
+ authoring and content interpretation.</p>
+ <table summary="HTML Table" id="genericFamilyName-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <genericFamilyName>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<genericFamilyName>
+ : "default"
+ | "monospace"
+ | "sansSerif"
+ | "serif"
+ | "monospaceSansSerif"
+ | "monospaceSerif"
+ | "proportionalSansSerif"
+ | "proportionalSerif"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The mapping between a generic (font) family name and an actual font is not
+ determined by this specification; however, the distinction of monospace
+ versus proportional and serif versus sans-serif should be maintained if
+ possible when performing presentation.</p>
+ <p>If a generic (font) family name of <code>monospace</code> is specified,
+ then it may be interpreted as equivalent to either
+ <code>monospaceSansSerif</code> or <code>monospaceSerif</code>. The generic
+ family names <code>sansSerif</code> and <code>serif</code> are to be
+ interpreted as equivalent to <code>proportionalSansSerif</code> and
+ <code>proportionalSerif</code>, respectively.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-flowFunction"
+ id="style-value-flowFunction"></a>8.3.7 <flowFunction></h4>
+ <p>A <flowFunction> expression specifies a unit of content to be
+ dynamic flowed into, within, and from a region according to an optional
+ dynamic flow style, flow transition effect, and flow transition effect
+ style.</p>
+ <table summary="HTML Table" id="flowFunction-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <flowFunction>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<flowFunction>
+ : "in(" flowArguments ")"
+ | "within(" flowArguments ")"
+ | "out(" flowArguments ")"
+flowArguments
+ : flowUnit [ "," flowStyle [ "," flowTransition [ "," flowTransitionStyle ]]]
+flowUnit
+ : "pixel"
+ | "glyph"
+ | "inline"
+ | "line"
+ | "block"
+ | "character"
+ | "word"
+ | extensionToken
+flowStyle
+ : "jump"
+ | "smooth"
+ | "fade"
+ | extensionToken
+flowTransition
+ : "barWipe"
+ | extensionToken
+flowTransitionStyle
+ : "leftToRight"
+ | "topToBottom"
+ | extensionToken
+extensionToken
+ : "x-" <token>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>Dynamic flow can be specified independently for flowing content into its
+ region, flowing it within its region, and flowing it out of its region. These
+ three phases of dynamic flow are specified using the <code>in()</code>,
+ <code>within()</code>, and <code>out()</code> flow functions
+ respectively.</p>
+ <p>Dynamic flow occurs on the basis of specific visual or semantic content
+ units. In the case of <code>pixel</code>, <code>glyph</code>,
+ <code>inline</code>, <code>line</code>, and <code>block</code>, the unit of
+ dynamic flow is based upon a visually rendered construct (<code>pixel</code>
+ or <code>glyph</code>) or upon an area of the area tree produced by
+ formatting the affected content. In the case of <code>character</code> and
+ <code>word</code>, the unit of dynamic flow is based upon a semantic unit
+ associated with one or more visually rendered or area units.</p>
+ <p>The dynamic flow unit <code>word</code> must be interpreted as being
+ dependent upon the language or writing system of the affected content. If the
+ language or writing system is unknown or unspecified, then <code>word</code>
+ is interpreted as follows:</p>
+ <ol type="1">
+ <li>
+ <p>If the affected content consists solely or mostly of Unified CJK
+ Ideographic characters or of characters of another Unicode character
+ block that are afforded similar treatment to that of Unified CJK
+ Ideographic characters, then <code>word</code> is to be interpreted as if
+ <code>character</code> were specified.</p>
+ </li>
+ <li>
+ <p>Otherwise, <code>word</code> is to be interpreted as denoting a
+ sequence of one or more characters that are not interpreted as an XML
+ whitespace character.</p>
+ </li>
+ </ol>
+ <p>When a flow unit is flowed into, within, or out of its region, the manner
+ by which the unit is flowed is controlled by the optional
+ <code>flowStyle</code> argument of the relevant flow function. If the flow
+ style is specified as <code>jump</code>, or if no flow style is specified,
+ then the flow unit is instantaneously transitioned into, within, or out of
+ the region. If the flow style is <code>smooth</code>, then the flow unit is
+ smoothly transitioned by means of pixel based exposure, movement, or hiding,
+ respectively. If the flow style is <code>fade</code>, then the flow unit is
+ faded into or out of the region by continuously incrementing or decrementing
+ the alpha component of the affected content.</p>
+ <p>In addition to the primary flow style, an optional flow transition effect
+ and flow transition effect style may be specified, in which case the
+ transition effect is additively (and simultaneously) applied to the primary
+ flow style transition.</p>
+ <p>For the permitted values of <code>flowTransition</code> and
+ <code>flowTransitionStyle</code>, the semantics specified by <a
+ href="#smil21">[SMIL 2.1]</a>, § 12.8, apply.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-flowIntervalFunction"
+ id="style-value-flowIntervalFunction"></a>8.3.8
+ <flowIntervalFunction></h4>
+ <p>A <flowIntervalFunction> expression specifies an interval or
+ duration that affects dynamic flow timing behavior.</p>
+ <table summary="HTML Table" id="flowIntervalFunction-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <flowIntervalFunction>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<flowIntervalFunction>
+ : "intra(" flowIntervalArguments ")"
+ | "inter(" flowIntervalArguments ")"
+flowIntervalArguments
+ : "auto"
+ | <a href="#style-value-duration"><duration></a>
+ | flowIntervalRate
+flowIntervalRate
+ : <a href="#style-value-digit"><digit></a>+ ( "." <a
+href="#style-value-digit"><digit></a>+ )?
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>intra()</code> flow interval function is used to determine the
+ <em>computed fill interval</em> state parameter for performing dynamic flow
+ processing, which expresses the duration of time between fill timer events,
+ as specified by <a href="#flowTimerFill"><b>B.5.1 Fill Timer</b></a>, which
+ in turn, limits the dynamic flowed content fill rate.</p>
+ <p>The <code>inter()</code> flow interval function is used to determine the
+ <em>computed clear interval</em> state parameter for performing dynamic flow
+ processing, which expresses the duration of time between clear timer events,
+ as specified by <a href="#flowTimerClear"><b>B.5.2 Clear Timer</b></a>, which
+ in turn, limits the dynamic flowed content retention period.</p>
+ <p>If a <a href="#style-value-duration"><duration></a> is specified as
+ an argument to a flow interval function, then it is considered to represent a
+ <em>definite duration</em>. If a flow interval rate is specified as an
+ argument to a flow interval function, then it is considered to represent a
+ <em>definite rate</em> in units per second, where the applicable unit is
+ determined in the context of whether the rate is used with an
+ <code>intra()</code> or <code>inter()</code> flow interval function.</p>
+ <p>The computed fill and clear interval values are defined by <a
+ href="#dynamicFlowIntervalTimingCalculation"><b>B.3 Flow Interval Timing
+ Calculation</b></a>.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-hexDigit" id="style-value-hexDigit"></a>8.3.9
+ <hexDigit></h4>
+ <p>A <hexDigit> is used to express integers and other types of numbers
+ or tokens that employ base 16 arithmetic.</p>
+ <p>For the purpose of parsing, no distinction must be made between lower and
+ upper case.</p>
+ <table summary="HTML Table" id="hexDigit-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <hexDigit>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<hexDigit>
+ : <a href="#style-value-digit"><digit></a>
+ | "a" | "b" | "c" | "d" | "e" | "f"
+ | "A" | "B" | "C" | "D" | "E" | "F"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-integer" id="style-value-integer"></a>8.3.10
+ <integer></h4>
+ <p>An <integer> expression is used to express an arbitrary, signed
+ integral value.</p>
+ <table summary="HTML Table" id="integer-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <integer>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<integer>
+ : ( "+" | "-" )? <a href="#style-value-digit"><digit></a>+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-length" id="style-value-length"></a>8.3.11
+ <length></h4>
+ <p>A <length> expression is used to express either a coordinate
+ component of point in a cartesian space or a distance between two points in a
+ cartesian space.</p>
+ <table summary="HTML Table" id="length-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <length>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<length>
+ : scalar
+ | percentage
+scalar
+ : number units
+percentage
+ : number "%"
+sign
+ : "+" | "-"
+number
+ : sign? non-negative-number
+non-negative-number
+ : non-negative-integer
+ | non-negative-real
+non-negative-integer
+ : <a href="#style-value-digit"><digit></a>+
+non-negative-real
+ : <a href="#style-value-digit"><digit></a>* "." <a
+href="#style-value-digit"><digit></a>+
+units
+ : "px"
+ | "em"
+ | "c" // abbreviation of "cell"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>It is an error to omit the units component of a scalar length value.</p>
+ <p>The semantics of the unit of measure <code>px</code> (pixel) are as
+ defined by <a href="#xsl10">[XSL 1.0]</a>, § 5.9.13.</p>
+ <p>When specified relative to a font whose size is expressed as a single
+ length measure or as two length measures of equal length, the unit of measure
+ <code>em</code> is considered to be identical to that defined by <a
+ href="#xsl10">[XSL 1.0]</a>, § 5.9.13; however, when specified relative to a
+ font whose size is expressed as two length measures of non-equal lengths,
+ then one <code>em</code> is equal to the inline progression dimension of the
+ anisomorphically scaled font when used to specify lengths in the inline
+ progression direction and equal to the block progression dimension of the
+ scaled font when used to specify lengths in the block progression
+ direction.</p>
+ <p>The semantics of the unit of measure <code>c</code> (cell) are defined by
+ the parameter <a href="#parameter-attribute-cellResolution"><b>6.2.1
+ ttp:cellResolution</b></a>.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-namedColor" id="style-value-namedColor"></a>8.3.12
+ <namedColor></h4>
+ <p>A <namedColor> is used to express an RGBA color with a convenient
+ name, and where the applicable color space is defined by <a
+ href="#srgb">[SRGB]</a>.</p>
+ <p>For the purpose of parsing, no distinction must be made between lower and
+ upper case.</p>
+ <table summary="HTML Table" id="namedColor-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <namedColor>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<namedColor>
+ : "transparent" // #00000000
+ | "black" // #000000ff
+ | "silver" // #c0c0c0ff
+ | "gray" // #808080ff
+ | "white" // #ffffffff
+ | "maroon" // #800000ff
+ | "red" // #ff0000ff
+ | "purple" // #800080ff
+ | "fuchsia" // #ff00ffff
+ | "magenta" // #ff00ffff (= fuchsia)
+ | "green" // #008000ff
+ | "lime" // #00ff00ff
+ | "olive" // #808000ff
+ | "yellow" // #ffff00ff
+ | "navy" // #000080ff
+ | "blue" // #0000ffff
+ | "teal" // #008080ff
+ | "aqua" // #00ffffff
+ | "cyan" // #00ffffff (= aqua)
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Except for <code>transparent</code>, the set of named colors specified
+ above constitutes a proper subset of the set of named colors specified by
+ <a href="#svg11">[SVG 1.1]</a>, § 4.2.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-quotedString"
+ id="style-value-quotedString"></a>8.3.13 <quotedString></h4>
+ <p>A <quotedString> is used to express a delimited string that may
+ contain a whitespace or a quotation delimiter character. Two types of
+ quotation delimiters are provided in order to accommodate strings that
+ contain the other delimiter.</p>
+ <table summary="HTML Table" id="quotedString-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <quotedString>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<quotedString>
+ : "\"" ( <em>char</em> - { "\"" } )* "\""
+ | "\'" ( <em>char</em> - { "\'" } )* "\'"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>In the above syntax representation, the syntactic element
+ <em><code>char</code></em> must adhere to production [2] <code>Char</code> as
+ defined by <a href="#xml11">[XML 1.1]</a> § 2.2.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="style-value-string" id="style-value-string"></a>8.3.14
+ <string></h4>
+ <p>A <string> expression consists of a sequence of characters where no
+ character is a whitespace or quotation delimiter character.</p>
+ <table summary="HTML Table" id="string-style-expression-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – <string>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<string>
+ : ( <em>char</em> - { <em>S</em> | "\"" | "\'" } )+
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>In the above syntax representation, the syntactic element
+ <em><code>char</code></em> must adhere to production [2] <code>Char</code> as
+ defined by <a href="#xml11">[XML 1.1]</a> § 2.2, while the syntactic
+ element <em><code>S</code></em> must adhere to production [3] <code>S</code>
+ as defined by <a href="#xml11">[XML 1.1]</a> § 2.3.</p>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="semantics-style-association"
+ id="semantics-style-association"></a>8.4 Style Association</h3>
+ <p>Style matter may be associated with content matter in a number of ways:</p>
+ <ul>
+ <li>
+ <p>inline styling</p>
+ </li>
+ <li>
+ <p>referential styling</p>
+ </li>
+ <li>
+ <p>chained referential styling</p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="semantics-style-association-inline"
+ id="semantics-style-association-inline"></a>8.4.1 Inline Styling</h4>
+ <p>Style properties may be expressed in an inline manner by direct
+ specification of an attribute from the TT Style Namespace or TT Style
+ Extension Namespace on the affected element. When expressed in this manner,
+ the association of style information is referred to as <em>inline
+ styling</em>.</p>
+ <p>Style properties associated by inline styling are afforded a higher
+ priority than all other forms of style association.</p>
+ <table summary="HTML Table" id="style-association-example-1" class="example">
+ <caption>
+ Example – Inline Styling
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<p <span class="strong">tts:color="white"</span>>White 1 <span <span
+class="strong">tts:color="yellow"</span>>Yellow</span> White 2</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the above example, the two text fragments <code>"White 1 "</code> and
+ <code>" White 2"</code>, which are interpreted as anonymous spans, are not
+ associated with a color style property; rather, they inherit their color
+ style from their parent <code>p</code> element as described in <a
+ href="#semantics-style-inheritance-content"><b>8.5.1 Content Style
+ Inheritance</b></a> below.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="semantics-style-association-referential"
+ id="semantics-style-association-referential"></a>8.4.2 Referential
+ Styling</h4>
+ <p>Style properties may be expressed in an out-of-line manner and referenced
+ by the affected element using the <code>style</code> attribute. When
+ expressed in this manner, the association of style information is referred to
+ as <em>referential styling</em>.</p>
+ <p>If a <code>style</code> attribute specifies multiple references, then
+ those references are evaluated in the specified order, and that order applies
+ to resolution of the value of a style property in the case that it is
+ specified along multiple reference paths.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of referential styling encourages the reuse of style
+ specifications while sacrificing locality of reference.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A single content element may be associated with style properties by a
+ hybrid mixture of inline and referential styling, in which case inline
+ styling is given priority as described above by <a
+ href="#semantics-style-association-inline"><b>8.4.1 Inline
+ Styling</b></a>.</p>
+ </div>
+ <table summary="HTML Table" id="style-association-example-2" class="example">
+ <caption>
+ Example – Referential Styling
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<style <span class="strong">xml:id="s1"</span> tts:color="white"/>
+<style <span class="strong">xml:id="s2"</span> tts:color="yellow"/>
+...
+<p <span class="strong">style="s1"</span>>White 1 <span <span
+class="strong">style="s2"</span>>Yellow</span> White 2</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the above example, the two text fragments <code>"White 1 "</code> and
+ <code>" White 2"</code>, which are interpreted as anonymous spans, are not
+ associated with a color style property; rather, they inherit their color
+ style from their parent <code>p</code> element as described in <a
+ href="#semantics-style-inheritance-content"><b>8.5.1 Content Style
+ Inheritance</b></a> below.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="semantics-style-association-chained-referential"
+ id="semantics-style-association-chained-referential"></a>8.4.3 Chained
+ Referential Styling</h4>
+ <p>Style properties may be expressed in an out-of-line manner and may
+ themselves reference other out-of-line style properties, thus creating a
+ chain of references starting at the affected element. When expressed in this
+ manner, the association of style information is referred to as <em>chained
+ referential styling</em>.</p>
+ <p>If the same style property is specified in more than one referenced
+ specification, then the last referenced style specification applies, where
+ the order of application starts from the affected element and proceeds to
+ referenced style specifications, and, in turn, to subsequent referenced style
+ specifications.</p>
+ <p>A loop in a sequence of chained style references must be considered an
+ error.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of chained referential styling encourages the grouping of style
+ specifications into general and specific sets, which further aids in style
+ specification reuse.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A single content element may be associated with style properties by a
+ hybrid mixture of inline, referential styling, and chained referential
+ styling, in which case inline styling is given priority as described above
+ by <a href="#semantics-style-association-inline"><b>8.4.1 Inline
+ Styling</b></a>.</p>
+ </div>
+ <table summary="HTML Table" id="style-association-example-3" class="example">
+ <caption>
+ Example – Chained Referential Styling
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<style <span
+class="strong">xml:id="s1"</span> tts:color="white" tts:fontFamily="monospaceSerif"/>
+<style <span class="strong">xml:id="s2"</span> <span
+class="strong">style="s1"</span> tts:color="yellow"/>
+...
+<p <span class="strong">style="s1"</span>>White Monospace</p>
+<p <span class="strong">style="s2"</span>>Yellow Monospace</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="semantics-style-inheritance"
+ id="semantics-style-inheritance"></a>8.5 Style Inheritance</h3>
+ <p>Subsequent to the association of style matter with content matter as
+ described above in <a href="#semantics-style-association"><b>8.4 Style
+ Association</b></a>, styles are further propagated to content matter using:</p>
+ <ul>
+ <li>
+ <p>content style inheritance</p>
+ </li>
+ <li>
+ <p>region style inheritance</p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="semantics-style-inheritance-content"
+ id="semantics-style-inheritance-content"></a>8.5.1 Content Style
+ Inheritance</h4>
+ <p>Style properties are inherited from ancestor elements in the following
+ case:</p>
+ <ol type="1">
+ <li>
+ <p>if a style property is not associated with an element (or an anonymous
+ span) and the style property is designated as inheritable, or</p>
+ </li>
+ <li>
+ <p>if a style property is associated with an element, that element is not
+ the <code>body</code> element, and the associated style property value is
+ <code>inherit</code>.</p>
+ </li>
+ </ol>
+ <p>If a style property is determined to require inheritance, then the
+ inherited value must be the value of the same named style property in the
+ computed style specification set of the element's immediate ancestor
+ element.</p>
+ <table summary="HTML Table" id="style-inheritance-example-1" class="example">
+ <caption>
+ Example – Content Style Inheritance
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<p <span class="strong">tts:fontFamily="monospaceSansSerif"</span>>
+ <span tts:color="yellow">Yellow Monospace</span>
+</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the above example, the <code>span</code> element that encloses the
+ character items <code>Yellow Monospace</code> is not associated with a
+ <code>tts:fontFamily</code> style property and this property is
+ inheritable; therefore, the value of the <code>tts:fontFamily</code> style
+ is inherited from the computed style specification set of the ancestor
+ <code>p</code> element, and is added to the computed style specification
+ set of the <code>span</code> element.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="semantics-style-inheritance-region"
+ id="semantics-style-inheritance-region"></a>8.5.2 Region Style
+ Inheritance</h4>
+ <p>Style properties are inherited from a region element in the following
+ case:</p>
+ <ol type="1">
+ <li>
+ <p>if a style property <em>P</em> is not associated with an element (or
+ an anonymous span) <em>E</em> and the style property is designated as
+ inheritable, and</p>
+ </li>
+ <li>
+ <p>if that style property <em>P</em> is in the computed style
+ specification set of region <em>R</em> as defined by <a
+ href="#layout-vocabulary-region"><b>9.1.2 region</b></a> below, and</p>
+ </li>
+ <li>
+ <p>if that element <em>E</em> is flowed into region <em>R</em>.</p>
+ </li>
+ </ol>
+ <table summary="HTML Table" id="style-inheritance-example-2" class="example">
+ <caption>
+ Example – Region Style Inheritance
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region <span class="strong">xml:id="r1"</span>>
+ <style tts:color="yellow"/>
+ <style tts:fontFamily="monospaceSerif"/>
+</region>
+...
+<p <span class="strong">region="r1"</span>>Yellow Monospace</p>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="layout" id="layout"></a>9 Layout</h2>
+ <p>This section specifies the <em>layout</em> matter of the core vocabulary
+ catalog, where layout is to be understood as a separable layer of information
+ that applies to content and that denotes authorial intentions about the
+ presentation of that content.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The two layers of layout and style matter are considered to be independently
+ separable. Layout matter specifies one or more spaces or areas into which
+ content is intended to be presented, while style matter specifies the manner in
+ which presentation occurs within the layout.</p>
+ <p>In certain cases, a content author may choose to embed (inline) style matter
+ directly into layout or content matter. In such cases, an alternative exists –
+ use of referential styling – in which the style matter is not embedded
+ (inlined).</p>
+ </div>
+ <div class="div2">
+ <h3><a name="layout-element-vocabulary" id="layout-element-vocabulary"></a>9.1
+ Element Vocabulary</h3>
+ <p>The following elements specify the structure and principal layout aspects of
+ a document instance:</p>
+ <ul>
+ <li>
+ <p><a href="#layout-vocabulary-layout"><b>9.1.1 layout</b></a></p>
+ </li>
+ <li>
+ <p><a href="#layout-vocabulary-region"><b>9.1.2 region</b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="layout-vocabulary-layout"
+ id="layout-vocabulary-layout"></a>9.1.1 layout</h4>
+ <p>The <code>layout</code> element is a container element used to group
+ layout matter, including metadata that applies to layout matter.</p>
+ <p>The <code>layout</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed by zero
+ or more <code>region</code> elements.</p>
+ <table summary="HTML Table" id="elt-syntax-layout" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: layout
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<layout
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#layout-vocabulary-region">region</a>*
+</layout>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>To the extent that time semantics apply to the content of the
+ <code>layout</code> element, the implied time interval of this element is
+ defined to be coterminous with the external time interval.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="layout-vocabulary-region"
+ id="layout-vocabulary-region"></a>9.1.2 region</h4>
+ <p>The <code>region</code> element is used to define a space or area into
+ which content is to be flowed for the purpose of presentation.</p>
+ <p>The <code>region</code> element accepts as its children zero or more
+ elements in the <code>Metadata.class</code> element group, followed by zero
+ or more elements in the <code>Animation.class</code> element group, followed
+ by zero or more <code>style</code> elements.</p>
+ <p>Any metadata specified by children in the <code>Metadata.class</code>
+ element group applies semantically to the <code>region</code> element and its
+ descendants as a whole. Any animation elements specified by children in the
+ <code>Animation.class</code> element group apply semantically to the
+ <code>region</code> element. Any <code>style</code> child element must be
+ considered a local style definition that applies only to the containing
+ <code>region</code> element, i.e., does not apply for resolving referential
+ styling.</p>
+ <table summary="HTML Table" id="elt-syntax-region" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: region
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<region
+ <a href="#timing-attribute-begin">begin</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#style-attribute-style">style</a> = IDREFS
+ <a
+href="#timing-attribute-timeContainer">timeContainer</a> = (<em>par</em>|<em>seq</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Style namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*, <a
+href="#element-vocab-group-table">Animation.class</a>*, <a
+href="#styling-vocabulary-style">style</a>*
+</region>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The declared value of an inline style attribute on a <code>region</code>
+ element must not be <code>inherit</code>.</p>
+ <p>A <code>region</code> element is considered to define a computed style
+ specification set, where the set is determined using the following ordered
+ rules:</p>
+ <ol type="1">
+ <li>
+ <p>If a <code>style</code> attribute is specified on the
+ <code>region</code> element, then the set must be initialized so as to
+ include each style specification contained in the computed style
+ specification set of each element referenced by the <code>style</code>
+ attribute. If the same named style property is specified by more than one
+ such referenced computed style specification set, then the value of the
+ named style property in following referenced sets takes precedence over
+ the value of the named style property in prior referenced sets, where
+ following and prior are determined according to the order of the
+ referenced ID in the IDREFS value of the <code>style</code>
+ attribute.</p>
+ </li>
+ <li>
+ <p>If the <code>region</code> element has any <code>style</code> element
+ children, then each style specification of the computed style
+ specification set of each child <code>style</code> element either
+ overrides an existing style specification already contained within the
+ set or augments the set with a new style specification according to
+ whether or not the named style property of the style specification
+ matches the named style property of an existing style specification
+ already included in the set, where the order of evaluation of child
+ <code>style</code> elements proceeds from first to last such child
+ element.</p>
+ </li>
+ <li>
+ <p>If the <code>style</code> element specifies an attribute from the TT
+ Style Namespace or TT Style Extension Namespace, then each style
+ specification defined by that attribute either overrides an existing
+ style specification already contained within the set or augments the set
+ with a new style specification according to whether or not the named
+ style property of the style specification matches the named style
+ property of an existing style specification already included in the
+ set.</p>
+ </li>
+ </ol>
+ <p>Two named style properties are considered to match if their expanded names
+ match, where <em>expanded name</em> is defined by <a href="#xmlns11">[XML
+ Namespaces 1.1]</a>, §2.1, and the expanded name of a named style property is
+ the expanded name of the attribute that specifies the named style
+ property.</p>
+ <p>If <code>begin</code> and (or) <code>end</code> attributes are specified
+ on a <code>region</code> element, then they specify the beginning and (or)
+ ending points of a time interval during which the region is eligible for
+ activation and with respect to which animation child elements of the region
+ are timed. If specified, these begin and end points are relative to the time
+ interval of the nearest ancestor element associated with a time interval,
+ irregardless of whether that interval is explicit or implied.</p>
+ <p>The nearest ancestor element of a <code>region</code> element that is
+ associated with a time interval is the document instance's root
+ <code>tt</code> element.</p>
+ <p>If a <code>dur</code> attribute is specified on the <code>region</code>
+ element, then it specifies the simple duration of the region.</p>
+ <p>For the purpose of determining the semantics of presentation processing, a
+ region that is temporally inactive must not produce any visible marks when
+ presented on a visual medium.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A <code>region</code> element may be associated with a time interval for
+ two purposes: (1) in order to temporally bound the presentation of the
+ region and its content, and (2) to provide a temporal context in which
+ animations of region styles may be effected.</p>
+ <p>For example, an author may wish a region that is otherwise empty, but
+ may have a visible background color to be presented starting at some time
+ and continuing over the region's duration. The simple duration of the
+ region serves additionaly to scope the presentation effects of content that
+ is targeted to the region. An author may also wish to move a region within
+ the root container extent or change a region's background color by means of
+ animation effects. In both of these cases, it is necessary to posit an
+ active time interval for a region.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="layout-attribute-vocabulary"
+ id="layout-attribute-vocabulary"></a>9.2 Attribute Vocabulary</h3>
+ <p>This section defines the <a href="#layout-attribute-region"><b>9.2.1
+ region</b></a> attribute used with content elements.</p>
+ <div class="div3">
+ <h4><a name="layout-attribute-region" id="layout-attribute-region"></a>9.2.1
+ region</h4>
+ <p>The <code>region</code> attribute is used to reference a
+ <code>region</code> element which defines a space or area into which a
+ content element is intended to be flowed.</p>
+ <p>The <code>region</code> attribute may be specified by an instance of the
+ following element types:</p>
+ <ul>
+ <li>
+ <p><a
+ href="#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See <a href="#semantics-region-layout"><b>9.3 Region Layout and
+ Presentation</b></a> below for further information on content flow in a
+ region.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="semantics-region-layout" id="semantics-region-layout"></a>9.3
+ Region Layout and Presentation</h3>
+ <p>This section defines the semantics of region layout and presentation in
+ terms of a standard processing model. Any implementation is permitted provided
+ that the externally observable results are consistent with the results produced
+ by this model.</p>
+ <div class="div3">
+ <h4><a name="semantics-region-layout-step-1"
+ id="semantics-region-layout-step-1"></a>9.3.1 Synchronic Region
+ Construction</h4>
+ <p>For the purposes of performing presentation processing, the active time
+ duration of a document instance is divided into a sequence of time
+ coordinates where at each time coordinate, some element becomes temporally
+ active or inactive, then, at each such time coordinate, a document instance
+ is mapped from its original, source form to an intermediate form, <em>I</em>,
+ as follows:</p>
+ <ol type="1">
+ <li>
+ <p>for each temporally active region <em>R</em>, replicate the portion of
+ the document's sub-tree headed by the <code>body</code> element;</p>
+ </li>
+ <li>
+ <p>evaluating this sub-tree in a postorder traversal, prune elements if
+ they are not a content element, if they are temporally inactive, if they
+ are empty, or if they aren't associated with region <em>R</em>;</p>
+ </li>
+ <li>
+ <p>if the pruned sub-tree is non-empty, then reparent it to the
+ <em>R</em> element;</p>
+ </li>
+ <li>
+ <p>finally, after completing the above steps, prune the original
+ <code>body</code> element from the intermediate document, then prune all
+ <code>region</code>, <code>begin</code>, <code>end</code>, and
+ <code>dur</code> attributes, which are no longer semantically
+ relevant;</p>
+ </li>
+ </ol>
+ <p>The pseudo-code shown in <a
+ href="#content-hierarchy-region-mapping"><b>Example – Content Hierarchy
+ Region Mapping</b></a> provides one possible algorithm that implements these
+ processing steps.</p>
+ <table summary="HTML Table" id="content-hierarchy-region-mapping"
+ class="example">
+ <caption>
+ Example – Content Hierarchy Region Mapping
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+PREPARE-CONTENT ( D ) :=
+ foreach R in SELECT ( D, "/tt/head/layout/region" )
+ if TEMPORALLY-ACTIVE? ( R )
+ APPEND-CHILDREN ( R, SELECT ( D, "/tt/body" ) )
+ foreach E in POSTORDER-TRAVERSE ( R )
+ if CONTENT-ELEMENT? ( E ) and TEMPORALLY-ACTIVE? ( E )
+ if EMPTY? ( E ) or REGION-OF ( E ) != R and
+ then PRUNE ( E )
+ PRUNE ( SELECT ( D, "/tt/body" ) )
+ PRUNE ( SELECT ( D, "//*/@region" ) )
+ PRUNE ( SELECT ( D, "//*/@begin" ) )
+ PRUNE ( SELECT ( D, "//*/@end" ) )
+ PRUNE ( SELECT ( D, "//*/@dur" ) )
+
+REGION-OF ( E ) :=
+ if NULL? ( E )
+ return NULL
+ else if HAS-ATTRIBUTE? ( E, "region" )
+ return VALUE-OF-ATTRIBUTE ( E, "region" )
+ else
+ return REGION-OF ( PARENT-OF ( E ) )
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The result of performing the processing described above will be a sequence
+ of <em>N</em> intermediate documents instances, <em>I<sub>0</sub></em> …
+ <em>I<sub>N−1</sub></em>.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="semantics-region-layout-step-2"
+ id="semantics-region-layout-step-2"></a>9.3.2 Synchronic Flow Processing</h4>
+ <p>Subsequent to performing a temporal (synchronic) slice and subsequent
+ remapping of regionally selected content hierarchy, the resulting
+ intermediate document is subjected to a flow transformation step that
+ produces a rooted flow object tree represented as an XSL FO document instance
+ as defined by <a href="#xsl10">[XSL 1.0]</a>, and semantically extended by TT
+ AF specific style properties that have no XSL FO counterpart.</p>
+ <p>Each intermediate document produced by <a
+ href="#semantics-region-layout-step-1"><b>9.3.1 Synchronic Region
+ Construction</b></a> is mapped to an XSL FO document instance, <em>F</em>, as
+ follows:</p>
+ <ol type="1">
+ <li>
+ <p>for each significant text node in a content element that is not a
+ child of a <code>span</code> element, synthesize an anonymous span to
+ enclose the text node, substituting the new anonymous span for the
+ original text node child in its sibling and parent hierarchy;</p>
+ </li>
+ <li>
+ <p>for each element, determine its computed style specification set, if
+ applicable;</p>
+ </li>
+ <li>
+ <p>map the <code>tt</code> element to an <code>fo:root</code> element,
+ populated initially with an <code>fo:layout-master-set</code> element
+ that contains a valid <code>fo:simple-page-master</code> that, in turn,
+ contains an <code>fo:region-body</code> child, where the root container
+ extent expressed on the <code>tt</code> element is mapped to
+ <code>page-width</code> and <code>page-height</code> attributes on the
+ <code>fo:simple-page-master</code> element;</p>
+ </li>
+ <li>
+ <p>map the <code>layout</code> element to an
+ <code>fo:page-sequence</code> element and a child <code>fo:flow</code>
+ element that reference the page master and page region defined by the
+ simple page master produced above;</p>
+ </li>
+ <li>
+ <p>map each non-empty <code>region</code> element to an
+ <code>fo:block-container</code> element with an
+ <code>absolute-position</code> attribute with value
+ <code>absolute</code>, and where the region's position and extent are
+ mapped to equivalent <code>top</code>, <code>left</code>,
+ <code>width</code>, and <code>height</code> attributes;</p>
+ </li>
+ <li>
+ <p>for each <code>body</code>, <code>div</code>, and <code>p</code>
+ element that is not associated with a <code>tts:display</code> style
+ property with the value <code>none</code>, map the element to a distinct
+ <code>fo:block</code> element, populating the style properties of
+ <code>fo:block</code> by using the computed style specification set
+ associated with each original TT AF content element;</p>
+ </li>
+ <li>
+ <p>for each <code>span</code> element that is not associated with a
+ <code>tts:display</code> style property with the value <code>none</code>
+ and for each anonymous span, map the element or sequence of character
+ items to a distinct <code>fo:inline</code> element, populating the style
+ properties of <code>fo:inline</code> by using the computed style
+ specification set associated with each original TT AF content element or
+ anonymous span;</p>
+ </li>
+ <li>
+ <p>for each <code>br</code> element that is not associated with a
+ <code>tts:display</code> style property with the value <code>none</code>,
+ map the element to a distinct <code>fo:character</code> element having
+ the following properties:</p>
+ <ul>
+ <li>
+ <p><code>character="&#x000A;"</code></p>
+ </li>
+ <li>
+ <p><code>suppress-at-line-break="retain"</code></p>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <p>for each TT AF style property attribute in some computed style
+ specification set that has no counterpart in <a href="#xsl10">[XSL
+ 1.0]</a>, map that attribute directly through to the relevant formatting
+ object produced by the input TT AF content element to which the style
+ property applies;</p>
+ </li>
+ <li>
+ <p>optionally, synthesize a unique <code>id</code> attribute on each
+ resulting formatting object element that relates that element to the
+ input element that resulted in that formatting object element;</p>
+ </li>
+ </ol>
+ <p>For each resulting XSL FO document instance <em>F</em>, if processing
+ requires presentation on a visual medium, then apply the formatting semantics
+ prescribed by <a href="#xsl10">[XSL 1.0]</a> in order to produce an XSL FO
+ area tree that may then be subsequently rendered onto the visual medium.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Due to the possible presence of TT AF style properties or style property
+ values in a given DFXP document instance for which there is no <a
+ href="#xsl10">[XSL 1.0]</a> counterpart, the use of a compliant <a
+ href="#xsl10">[XSL 1.0]</a> formatting processor is not necessarily
+ sufficient to satisfy the presentation semantics defined by this
+ specification.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="semantics-region-layout-example"
+ id="semantics-region-layout-example"></a>9.3.3 Elaborated Example</h4>
+ <p>An example of the processing steps described above is elaborated below,
+ starting with <a href="#region-mapping-example-1-s"><b>Example – Sample
+ Source Document</b></a>.</p>
+ <table summary="HTML Table" id="region-mapping-example-1-s" class="example">
+ <caption>
+ Example – Sample Source Document
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ </layout>
+ </head>
+ <body tts:extent="640px 480px" xml:id="b1">
+ <div xml:id="d1" begin="0s" dur="2s">
+ <p xml:id="p1" region="r1">Text 1</p>
+ <p xml:id="p2" region="r2">Text 2</p>
+ </div>
+ <div xml:id="d2" begin="1s" dur="2s">
+ <p xml:id="p3" region="r2">Text 3</p>
+ <p xml:id="p4" region="r1">Text 4</p>
+ </div>
+ </body>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>In the above document, the content hierarchy consists of two divisions,
+ each containing two paragraphs. This content is targeted (selected into) one
+ of two non-overlapping regions that are styled identically except for their
+ position and their foreground colors, the latter of which is inherited by and
+ applies to the (and, in this case, anonymous) spans reparented into the
+ regions.</p>
+ <p>The following, first intermediate document shows the synchronic state at
+ time interval [0,1), during which time only division <code>d1</code> is
+ temporally active, and where paragraphs <code>p1</code> and <code>p2</code>
+ (and their ancestors) are selected into regions <code>r1</code> and
+ <code>r2</code>, respectively.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The intermediate documents shown below are not valid DFXP document
+ instances, but rather, are representations of possible internal processing
+ states used for didactic purposes.</p>
+ </div>
+ <table summary="HTML Table" id="region-mapping-example-1-i0" class="example">
+ <caption>
+ Example – Intermediate Document – [0s,1s)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>An XSL FO document instance produced by performing flow processing upon
+ the first intermediate document is shown below.</p>
+ <table summary="HTML Table" id="region-mapping-example-1-f0" class="example">
+ <caption>
+ Example – XSL FO Document – [0s,1s)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="m1"
+ page-width="640px" page-height="480px">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="m1">
+ <fo:flow flow-name="xsl-region-body">
+ <!-- region (r1) -->
+ <fo:block-container id="r1" absolute-position="absolute"
+ left="10px" top="100px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-1">
+ <!-- div (d1) -->
+ <fo:block id="d1-1">
+ <!-- p (p1) -->
+ <fo:block id="p1" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="red">Text 1</fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block-container>
+ <!-- region (r2) -->
+ <fo:block-container id="r2" absolute-position="absolute"
+ left="10px" top="300px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-2">
+ <!-- div (d1) -->
+ <fo:block id="d1-2">
+ <!-- p (p2) -->
+ <fo:block id="p2" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="yellow">Text 2</fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The following, second intermediate document shows the synchronic state at
+ time interval [1,2), at which time both divisions <code>d1</code> and
+ <code>d2</code> are temporally active, and where paragraphs <code>p1</code>
+ and <code>p4</code> (and their ancestors) are selected into region
+ <code>r1</code> and paragraphs <code>p2</code> and <code>p3</code> (and their
+ ancestors) are selected into region <code>r2</code>.</p>
+ <table summary="HTML Table" id="region-mapping-example-1-i1" class="example">
+ <caption>
+ Example – Intermediate Document – [1s,2s)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The following, third intermediate document shows the synchronic state at
+ time interval [2,3), at which time only division <code>d2</code> is
+ temporally active, and where paragraphs <code>p4</code> and <code>p3</code>
+ (and their ancestors) are selected into regions <code>r1</code> and
+ <code>r2</code>, respectively.</p>
+ <table summary="HTML Table" id="region-mapping-example-1-i2" class="example">
+ <caption>
+ Example – Intermediate Document – [2s,3s)
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="semantics-line-layout" id="semantics-line-layout"></a>9.4 Line
+ Layout</h3>
+ <p>The semantics of line layout, including line breaking, defined by <a
+ href="#xsl10">[XSL 1.0]</a> apply to the performance of the composition and
+ layout of lines for presentation processing of a document instance on a visual
+ medium.</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="timing" id="timing"></a>10 Timing</h2>
+ <p>This section specifies the <em>timing</em> matter of the core vocabulary
+ catalog, where timing is to be understood as a separable layer of information
+ that applies to content and that denotes authorial intentions about the temporal
+ presentation of that content.</p>
+ <div class="div2">
+ <h3><a name="timing-element-vocabulary" id="timing-element-vocabulary"></a>10.1
+ Element Vocabulary</h3>
+ <p>No timing related element vocabulary is defined for use in the core
+ vocabulary catalog.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="timing-attribute-vocabulary"
+ id="timing-attribute-vocabulary"></a>10.2 Attribute Vocabulary</h3>
+ <p>This section defines the following basic timing attributes for use with
+ timed elements:</p>
+ <ul>
+ <li>
+ <p><a href="#timing-attribute-begin"><b>10.2.1 begin</b></a></p>
+ </li>
+ <li>
+ <p><a href="#timing-attribute-end"><b>10.2.2 end</b></a></p>
+ </li>
+ <li>
+ <p><a href="#timing-attribute-dur"><b>10.2.3 dur</b></a></p>
+ </li>
+ </ul>
+ <p>In addition, this section defines the <a
+ href="#timing-attribute-timeContainer"><b>10.2.4 timeContainer</b></a>
+ attribute for use with timed elements that serve simultaneously as timing
+ containers.</p>
+ <div class="div3">
+ <h4><a name="timing-attribute-begin" id="timing-attribute-begin"></a>10.2.1
+ begin</h4>
+ <p>The <code>begin</code> attribute is used to specify the begin point of a
+ temporal interval associated with a timed element. If specified, the value of
+ a <code>begin</code> attribute must adhere to a <timeExpression>
+ specification as defined by <a href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+ <p>The begin point of a temporal interval is included in the interval; i.e.,
+ the interval is left-wise closed.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the <code>begin</code> attribute are based upon that
+ defined by <a href="#smil21">[SMIL 2.1]</a>, § 10.3.1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="timing-attribute-end" id="timing-attribute-end"></a>10.2.2
+ end</h4>
+ <p>The <code>end</code> attribute is used to specify the ending point of a
+ temporal interval associated with a timed element. If specified, the value of
+ an <code>end</code> attribute must adhere to a <timeExpression>
+ specification as defined by <a href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+ <p>The ending point of a temporal interval is not included in the interval;
+ i.e., the interval is right-wise open.</p>
+ <p>The presentation effects of a non-empty active temporal interval include
+ the frame immediately prior to the frame (or tick) equal to or immediately
+ following the time specified by the ending point, but do not extend into this
+ latter frame (or tick).</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For example, if an active interval is [10s,10.33333s), and the frame
+ rate is 30 frames per second, then the presentation effects of the interval
+ are limited to frames 300 through 309 only (assuming that 0s corresponds
+ with frame 0). The same holds if the active interval is specified as
+ [300f,310f).</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the <code>end</code> attribute are based upon that
+ defined by <a href="#smil21">[SMIL 2.1]</a>, § 10.3.1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="timing-attribute-dur" id="timing-attribute-dur"></a>10.2.3
+ dur</h4>
+ <p>The <code>dur</code> attribute is used to specify the duration of a
+ temporal interval associated with a timed element. If specified, the value of
+ a <code>dur</code> attribute must adhere to a <timeExpression>
+ specification as defined by <a href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a>.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the <code>dur</code> attribute are based upon that
+ defined by <a href="#smil21">[SMIL 2.1]</a>, § 10.3.1.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="timing-attribute-timeContainer"
+ id="timing-attribute-timeContainer"></a>10.2.4 timeContainer</h4>
+ <p>The <code>timeContainer</code> attribute is used to specify a local
+ temporal context by means of which timed child elements are temporally
+ situated.</p>
+ <p>If specified, the value of a <code>timeContainer</code> attribute must be
+ one of the following:</p>
+ <ul>
+ <li>
+ <p><code>par</code></p>
+ </li>
+ <li>
+ <p><code>seq</code></p>
+ </li>
+ </ul>
+ <p>If the time container semantics of an element instance is
+ <code>par</code>, then the temporal intervals of child elements are
+ considered to apply in parallel, i.e., simultaneously in time. Furthermore,
+ the specification of the time interval of each child element is considered to
+ be relative to the temporal interval of the container element instance.</p>
+ <p>If the time container semantics of an element instance is
+ <code>seq</code>, then the temporal intervals of child elements are
+ considered to apply in sequence, i.e., sequentially in time. Furthermore, the
+ specification of the time interval of each child element is considered to be
+ relative to the temporal interval of its sibling elements, unless it is the
+ first child element, in which case it is considered to be relative to the
+ temporal interval of the container element instance.</p>
+ <p>Each time container is considered to constitute an independent time base,
+ i.e., time coordinate system.</p>
+ <p>If a <code>timeContainer</code> attribute is not specified on an element
+ that has time container semantics, then <code>par</code> time container
+ semantics must apply.</p>
+ <p>Time container semantics applies only to the following element types:</p>
+ <ul>
+ <li>
+ <p><a
+ href="#document-structure-vocabulary-body"><code>body</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-div"><code>div</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-p"><code>p</code></a></p>
+ </li>
+ <li>
+ <p><a href="#layout-vocabulary-region"><code>region</code></a></p>
+ </li>
+ <li>
+ <p><a href="#content-vocabulary-span"><code>span</code></a></p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of parallel and sequential time containment are based upon
+ that defined by <a href="#smil21">[SMIL 2.1]</a>, § 10.3.2.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="timing-time-value-expressions"
+ id="timing-time-value-expressions"></a>10.3 Time Value Expressions</h3>
+ <p>Timing attribute values include the use of the following expressions:</p>
+ <ul>
+ <li>
+ <p><a href="#timing-value-timeExpression"><b>10.3.1
+ <timeExpression></b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="timing-value-timeExpression"
+ id="timing-value-timeExpression"></a>10.3.1 <timeExpression></h4>
+ <p>A <timeExpression> is used to specify a coordinate along some time
+ base, where the applicable time base is determined by the
+ <code>ttp:timeBase</code> parameter.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See <a href="#parameter-attribute-timeBase"><b>6.2.11
+ ttp:timeBase</b></a>, <a href="#parameter-attribute-frameRate"><b>6.2.3
+ ttp:frameRate</b></a>, <a href="#parameter-attribute-subFrameRate"><b>6.2.9
+ ttp:subFrameRate</b></a>, and <a
+ href="#parameter-attribute-tickRate"><b>6.2.10 ttp:tickRate</b></a> for
+ further information on explicit specification of time base, frame rate,
+ sub-frame rate, and tick rate.</p>
+ </div>
+ <table summary="HTML Table" id="timeExpression-syntax" class="syntax">
+ <caption>
+ Syntax Representation – <timeExpression>
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<timeExpression>
+ : clock-time
+ | offset-time
+clock-time
+ : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
+offset-time
+ : time-count fraction? metric
+hours
+ : <a href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a>
+ | <a href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a>+
+minutes | seconds
+ : <a href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a>
+frames
+ : <a href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a>
+ | <a href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a> <a
+href="#style-value-digit"><digit></a>+
+sub-frames
+ : <a href="#style-value-digit"><digit></a>+
+fraction
+ : "." <a href="#style-value-digit"><digit></a>+
+time-count
+ : <a href="#style-value-digit"><digit></a>+
+metric
+ : "h" // hours
+ | "m" // minutes
+ | "s" // seconds
+ | "ms" // milliseconds
+ | "f" // frames
+ | "t" // ticks
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>If a <timeExpression> is expressed in terms of a
+ <em>clock-time</em>, then leading zeroes are used when expressing hours,
+ minutes, seconds, and frames less than 10. Minutes are constrained to the
+ range [0…59], while seconds are constrained to [0…60], where the value 60
+ applies only to leap seconds.</p>
+ <p>If a <timeExpression> is expressed in terms of a <em>clock-time</em>
+ and a <em>frames</em> term is specified, then the value of this term must be
+ constrained to the interval [0…<em>F-1</em>], where <em>F</em> is the frame
+ rate determined by the the <code>ttp:frameRate</code> parameter as defined by
+ <a href="#parameter-attribute-frameRate"><b>6.2.3 ttp:frameRate</b></a>.</p>
+ <p>If a <timeExpression> is expressed in terms of a <em>clock-time</em>
+ and a <em>sub-frames</em> term is specified, then the value of this term must
+ be constrained to the interval [0…<em>S-1</em>], where <em>S</em> is the
+ sub-frame rate determined by the the <code>ttp:subFrameRate</code> parameter
+ as defined by <a href="#parameter-attribute-subFrameRate"><b>6.2.9
+ ttp:subFrameRate</b></a>.</p>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="timing-time-intervals" id="timing-time-intervals"></a>10.4 Time
+ Intervals</h3>
+ <p>The semantics of time containment, durations, and intervals defined by <a
+ href="#smil21">[SMIL 2.1]</a> apply to the interpretation of like-named timed
+ elements and timing vocabulary defined by this specification, given the
+ following constraints:</p>
+ <ul>
+ <li>
+ <p>The implicit duration of <code>body</code>, <code>div</code>,
+ <code>p</code>, and <code>span</code> (whether anonyous or not) is defined
+ as follows: if the element's parent time container is a parallel time
+ container, then the implicit duration is equivalent to the
+ <code>indefinite</code> duration value as defined by <a
+ href="#smil21">[SMIL 2.1]</a>; if the element's parent time container is a
+ sequential time container, then the implicit duration is equivalent to
+ zero.</p>
+ </li>
+ <li>
+ <p>The implicit duration of the <code>region</code> element is defined to
+ be equivalent to the <code>indefinite</code> duration value as defined by
+ <a href="#smil21">[SMIL 2.1]</a>.</p>
+ </li>
+ <li>
+ <p>If the governing time mode is <code>media</code> or <code>smpte</code>
+ with mode <code>continuous</code>, then time expressions must be
+ interpreted as equivalent to offset clock values related to the associated
+ media time line.</p>
+ </li>
+ <li>
+ <p>If the governing time mode is <code>smpte</code> with mode
+ <code>discontinuous</code>, then time expressions must be interpreted as
+ equivalent to marker values produced by an external marker event source, in
+ which case all time expressions are equivalent to event based timing in <a
+ href="#smil21">[SMIL 2.1]</a>.</p>
+ </li>
+ <li>
+ <p>If the governing time mode is <code>clock</code>, then time expressions
+ must be interpreted as equivalent to wallclock time expressions in <a
+ href="#smil21">[SMIL 2.1]</a>, where the applicable wallclock used is
+ determined by the clock mode parameter.</p>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="animation" id="animation"></a>11 Animation</h2>
+ <p>This section specifies the <em>animation</em> matter of the core vocabulary
+ catalog, where animation is to be understood as a separable layer of information
+ that combines timing and styling in order to denote authorial intention about
+ (temporally) dynamic styling of content.</p>
+ <div class="div2">
+ <h3><a name="animation-element-vocabulary"
+ id="animation-element-vocabulary"></a>11.1 Element Vocabulary</h3>
+ <p>The following elements specify the structure and principal animation aspects
+ of a document instance:</p>
+ <ul>
+ <li>
+ <p><a href="#animation-vocabulary-set"><b>11.1.1 set</b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="animation-vocabulary-set"
+ id="animation-vocabulary-set"></a>11.1.1 set</h4>
+ <p>The <code>set</code> element is used as a child element of a content
+ element in order to express a discrete change of some style parameter value
+ that applies over some time interval.</p>
+ <p>The <code>set</code> element accepts as its children zero or more elements
+ in the <code>Metadata.class</code> element group.</p>
+ <table summary="HTML Table" id="elt-syntax-set" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: set
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<set
+ <a href="#timing-attribute-begin">begin</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-dur">dur</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#timing-attribute-end">end</a> = <a
+href="#timing-value-timeExpression"><timeExpression></a>
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>a single attribute in TT Style or TT Style Extension namespace</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#element-vocab-group-table">Metadata.class</a>*
+</set>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of multiple <code>set</code> element children may be used to
+ effect fade and position transitions.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of the <code>set</code> element are based upon that
+ defined by <a href="#smil21">[SMIL 2.1]</a>, § 3.5.2.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="animation-attribute-vocabulary"
+ id="animation-attribute-vocabulary"></a>11.2 Attribute Vocabulary</h3>
+ <p>No animation related attribute vocabulary is defined for use in the core
+ vocabulary catalog.</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="metadata" id="metadata"></a>12 Metadata</h2>
+ <p>This section specifies the <em>metadata</em> matter of the core vocabulary
+ catalog, where metadata is to be understood as a separable layer of information
+ that applies to content, style, layout, timing, and even metadata itself, where
+ the information represented by metadata takes one of two forms: (1) metadata
+ defined by this specification for standardized use in a document instance, and
+ (2) arbitrary metadata defined outside of the scope of this specification, whose
+ use and semantics depend entirely upon an application's use of TT AF content.</p>
+ <div class="div2">
+ <h3><a name="metadata-element-vocabulary"
+ id="metadata-element-vocabulary"></a>12.1 Element Vocabulary</h3>
+ <p>The <a href="#metadata-vocabulary-metadata"><b>12.1.1 metadata</b></a>
+ element serves as a generic container element for grouping metadata
+ information.</p>
+ <p>In addition, the following elements, all defined in the TT Metadata
+ Namespace, provide standard representations for common metadata that is
+ expected to be commonly used in a document instances:</p>
+ <ul>
+ <li>
+ <p><a href="#metadata-vocabulary-title"><b>12.1.2 ttm:title</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata-vocabulary-desc"><b>12.1.3 ttm:desc</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata-vocabulary-copyright"><b>12.1.4
+ ttm:copyright</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata-vocabulary-agent"><b>12.1.5 ttm:agent</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata-vocabulary-name"><b>12.1.6 ttm:name</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata-vocabulary-actor"><b>12.1.7 ttm:actor</b></a></p>
+ </li>
+ </ul>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-metadata"
+ id="metadata-vocabulary-metadata"></a>12.1.1 metadata</h4>
+ <p>The <code>metadata</code> element functions as a generic container for
+ metadata information.</p>
+ <p>Metadata information may be expressed by a <code>metadata</code> element
+ in one of two (non-mutually exclusive) manners: (1) by specifying one or more
+ metadata attributes on the element, and (2) by specifying one or more
+ <code>metadata</code> child elements that express metadata. Both types of
+ metadata are referred to in this document as <em>metadata items</em>.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: metadata
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<metadata
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute in TT Metadata namespace ...</em>}
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> {<em>any element not in TT namespace</em>}*
+</metadata>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The meaning of a specific metadata item must be evaluated in the context
+ of where it appears. The core vocabulary catalog permits an arbitrary
+ number of <code>metadata</code> element children of any non-empty element
+ type except for the <code>body</code> element. See specific element
+ vocabulary definitions for any constraints that apply to such usage.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-title"
+ id="metadata-vocabulary-title"></a>12.1.2 ttm:title</h4>
+ <p>The <code>ttm:title</code> element is used to express a human-readable
+ title of a specific element instance.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata-title" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:title
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<ttm:title
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:title>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>No specific use of the <code>ttm:title</code> element is defined by this
+ specification.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-desc"
+ id="metadata-vocabulary-desc"></a>12.1.3 ttm:desc</h4>
+ <p>The <code>ttm:desc</code> element is used to express a human-readable
+ description of a specific element instance.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata-desc" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:desc
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<ttm:desc
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:desc>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>No specific use of the <code>ttm:desc</code> element is defined by this
+ specification.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-copyright"
+ id="metadata-vocabulary-copyright"></a>12.1.4 ttm:copyright</h4>
+ <p>The <code>ttm:copyright</code> element is used to express a human-readable
+ copyright that applies to some scoping level.</p>
+ <p>A copyright statement that applies to a document as a whole should appear
+ as a child of the <code>head</code> element.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata-copyright"
+ class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:copyright
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<ttm:copyright
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:copyright>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>No specific use of the <code>ttm:copyright</code> element is defined by
+ this specification.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-agent"
+ id="metadata-vocabulary-agent"></a>12.1.5 ttm:agent</h4>
+ <p>The <code>ttm:agent</code> element is used to define an agent for the
+ purpose of associating content information with an agent who is involved in
+ the production or expression of that content.</p>
+ <p>The <code>ttm:agent</code> element accepts as its children zero or more
+ <code>ttm:name</code> elements followed by zero or one <code>ttm:actor</code>
+ element.</p>
+ <p>At least one <code>ttm:name</code> element child should be specified that
+ expresses a name for the agent, whether it be the name of a person,
+ character, group, or organization.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata-agent" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:agent
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<ttm:agent
+ <span
+class="reqattr">type</span> = (<em>person</em>|<em>character</em>|<em>group</em>|<em>organization</em>|<em>other</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> <a href="#metadata-vocabulary-name">ttm:name</a>*, <a
+href="#metadata-vocabulary-actor">ttm:actor</a>?
+</ttm:agent>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>A <code>type</code> attribute must be specified on each
+ <code>ttm:agent</code> element, and, if specified, must have one of the
+ following values:</p>
+ <ul>
+ <li>
+ <p><code>person</code></p>
+ </li>
+ <li>
+ <p><code>character</code></p>
+ </li>
+ <li>
+ <p><code>group</code></p>
+ </li>
+ <li>
+ <p><code>organization</code></p>
+ </li>
+ <li>
+ <p><code>other</code></p>
+ </li>
+ </ul>
+ <p>If the value of the <code>type</code> attribute is <code>character</code>,
+ then the <code>ttm:agent</code> element instance should specify a
+ <code>ttm:actor</code> child that specifies the agent that plays the role of
+ the actor.</p>
+ <p>A <code>ttm:agent</code> metadata item is considered to be significant
+ only when specified as a child of the <code>head</code> element or as a child
+ of a <code>metadata</code> element child of the <code>head</code>
+ element.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A <code>ttm:agent</code> element instance is typically referenced using
+ a <code>ttm:agent</code> attribute on a content element.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>If a character agent is played by multiple actors, then multiple
+ character agents may be specified (and referenced) wherein different
+ definitions of the character specify different actors.</p>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-name"
+ id="metadata-vocabulary-name"></a>12.1.6 ttm:name</h4>
+ <p>The <code>ttm:name</code> element is used to specify a name of a person,
+ character, group, or organization.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata-name" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:name
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<ttm:name
+ <span
+class="reqattr">type</span> = (<em>full</em>|<em>family</em>|<em>given</em>|<em>alias</em>|<em>other</em>)
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> #PCDATA
+</ttm:name>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>A <code>type</code> attribute must be specified on each
+ <code>ttm:name</code> element, and, if specified, must have one of the
+ following values:</p>
+ <ul>
+ <li>
+ <p><code>full</code></p>
+ </li>
+ <li>
+ <p><code>family</code></p>
+ </li>
+ <li>
+ <p><code>given</code></p>
+ </li>
+ <li>
+ <p><code>alias</code></p>
+ </li>
+ <li>
+ <p><code>other</code></p>
+ </li>
+ </ul>
+ <p>The relationship between the type of a name and the syntactic expression
+ of the name is not defined by this specification.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-vocabulary-actor"
+ id="metadata-vocabulary-actor"></a>12.1.7 ttm:actor</h4>
+ <p>The <code>ttm:actor</code> element is used to link the definition of a
+ (role-based) character agent with another agent that portrays the
+ character.</p>
+ <table summary="HTML Table" id="elt-syntax-metadata-actor" class="syntax">
+ <caption>
+ XML Representation – Element Information Item: ttm:actor
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+<ttm:actor
+ <span class="reqattr">agent</span> = IDREF
+ <a href="#content-attribute-id">xml:id</a> = ID
+ <a href="#content-attribute-lang">xml:lang</a> = string
+ <a href="#content-attribute-space">xml:space</a> = (<em>default</em>|<em>preserve</em>)
+ {<em>any attribute not in default or any TT namespace ...</em>}>
+ <em>Content:</em> EMPTY
+</ttm:actor>
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>The <code>agent</code> attribute of a <code>ttm:actor</code> element must
+ reference a <code>ttm:agent</code> element that denotes the person, group, or
+ organization acting the part of a character.</p>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="metadata-attribute-vocabulary"
+ id="metadata-attribute-vocabulary"></a>12.2 Attribute Vocabulary</h3>
+ <p>This section specifies the following attributes in the TT Metadata Namespace
+ for use with the <code>metadata</code> element and with certain content
+ elements:</p>
+ <ul>
+ <li>
+ <p><a href="#metadata-attribute-agent"><b>12.2.1 ttm:agent</b></a></p>
+ </li>
+ <li>
+ <p><a href="#metadata-attribute-role"><b>12.2.2 ttm:role</b></a></p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Only certain metadata item attributes may be used with content elements.
+ See the definitions of content elements to determine permissible usage.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-attribute-agent"
+ id="metadata-attribute-agent"></a>12.2.1 ttm:agent</h4>
+ <p>The <code>ttm:agent</code> attribute takes an <code>IDREFS</code> value,
+ and is used with certain content elements to designate the agent that
+ performs or is involved in the performance of the content.</p>
+ <p>If specified, a <code>ttm:agent</code> attribute must reference a
+ <code>ttm:agent</code> element instance that appears as a descendent of the
+ same document instance as that of the referring element.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="metadata-attribute-role" id="metadata-attribute-role"></a>12.2.2
+ ttm:role</h4>
+ <p>The <code>ttm:role</code> attribute may be used by a content author to
+ express a role, function, or characteristic of some content element that is
+ so labeled.</p>
+ <p>If specified, the value of this attribute must adhere to the following
+ syntax:</p>
+ <table summary="HTML Table" id="metadata-attribute-role-syntax"
+ class="syntax">
+ <caption>
+ Syntax Representation – ttm:role
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1">
+ <div class="exampleInner">
+<pre>
+ttm:role
+ : "action"
+ | "caption"
+ | "dialog"
+ | "expletive"
+ | "kinesic"
+ | "lyrics"
+ | "music"
+ | "narration"
+ | "quality"
+ | "sound"
+ | "source"
+ | "suppressed"
+ | "reproduction"
+ | "thought"
+ | "title"
+ | "transcription"
+ | extension-role
+extension-role
+ : "x-" token-char+
+token-char
+ : { XML NameChar } // XML 1.1 Production [4a]
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>All values of <code>ttm:role</code> that do not start with the prefix
+ <code>x-</code> are reserved for future standardization.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="back">
+ <div class="div1">
+ <h2><a name="reduced-infoset" id="reduced-infoset"></a>A Reduced XML Infoset</h2>
+ <p><em>This appendix is normative.</em></p>
+ <p>For the purposes of this specification, a Reduced XML Infoset is an XML
+ Information Set <a href="#infoset">[XML InfoSet]</a> that consists of only the
+ following information items and information item properties:</p>
+ <div class="div2">
+ <h3><a name="reduced-infoset-document" id="reduced-infoset-document"></a>A.1
+ Document Information Item</h3>
+ <ul>
+ <li>
+ <p><code>[document element]</code></p>
+ </li>
+ </ul>
+ </div>
+ <div class="div2">
+ <h3><a name="reduced-infoset-element" id="reduced-infoset-element"></a>A.2
+ Element Information Item</h3>
+ <ul>
+ <li>
+ <p><code>[namespace URI]</code></p>
+ </li>
+ <li>
+ <p><code>[local name]</code></p>
+ </li>
+ <li>
+ <p><code>[children]</code></p>
+ </li>
+ <li>
+ <p><code>[attributes]</code></p>
+ </li>
+ </ul>
+ <p>Child information items <code>[children]</code> are reduced to only element
+ and character information items.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="reduced-infoset-attribute" id="reduced-infoset-attribute"></a>A.3
+ Attribute Information Item</h3>
+ <ul>
+ <li>
+ <p><code>[namespace URI]</code></p>
+ </li>
+ <li>
+ <p><code>[local name]</code></p>
+ </li>
+ <li>
+ <p><code>[normalized value]</code></p>
+ </li>
+ </ul>
+ </div>
+ <div class="div2">
+ <h3><a name="reduced-infoset-character" id="reduced-infoset-character"></a>A.4
+ Character Information Item</h3>
+ <ul>
+ <li>
+ <p><code>[character code]</code></p>
+ </li>
+ </ul>
+ <p>Contiguous character information items are not required to be represented
+ distinctly, but may be aggregated (chunked) into a sequence of character codes
+ (i.e., a character string).</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="dynamicFlowModel" id="dynamicFlowModel"></a>B Dynamic Flow
+ Processing Model</h2>
+ <p><em>This appendix is normative.</em></p>
+ <p>This appendix specifies a dynamic flow processing model that is used to
+ present content in a region whose <code>tts:overflow</code> property is assigned
+ a value of <code>scroll</code>.</p>
+ <div class="div2">
+ <h3><a name="dynamicFlowIntroduction" id="dynamicFlowIntroduction"></a>B.1
+ Introduction</h3>
+ <p><em>This sub-section is non-normative.</em></p>
+ <p>Dynamic flow provides a mechanism by means of which content may be flowed
+ through a presentation region over time where the rate of presentation is
+ dynamically determined by a presentation processor based upon the region's
+ extent, the textual content to be presented in the region, the formatting
+ styles applied to this content, and a set of parameters that control in-flow
+ and out-flow rates of content.</p>
+ <p>It is expected that this mechanism will be used by authors in a variety of
+ circumstances in order to specify behavior that would otherwise be impossible
+ or impractical to pre-compute at authoring time, since, for example, a region's
+ absolute size or the font metrics used to present content may not be known at
+ authoring time. In certain real-time streaming contexts, even the content is
+ not known at authoring time, but is only known at time of streaming.</p>
+ <p>In describing dynamic flow, the flow process is logically divided into three
+ types of flow operations:</p>
+ <ul>
+ <li>
+ <p><em>fill into</em> – causes new content to consume extent in the
+ designated presentation region;</p>
+ </li>
+ <li>
+ <p><em>reflow within</em> – causes content presently consuming extent
+ to be moved, possibly entailing new line break positions, within its
+ designated presentation region;</p>
+ </li>
+ <li>
+ <p><em>clear out</em> – causes content presently consuming extent in
+ the designated presentation region to no longer consume extent.</p>
+ </li>
+ </ul>
+ <p>Each region subject to dynamic flow processing may be modeled in terms
+ of:</p>
+ <ol type="1">
+ <li>
+ <p>the region with a definite extent, into which content is to be
+ flowed;</p>
+ </li>
+ <li>
+ <p>a content buffer consisting of a sequence of content blocks, each of
+ which consists of a sequence of content inlines (spans), where each block
+ and inline has a computed style set, and where an inline has a (possibly
+ empty) sequence of characters that express the textual content of the
+ inline;</p>
+ </li>
+ <li>
+ <p>two independent flow operation single-shot timers: a fill timer and a
+ clear timer;</p>
+ </li>
+ <li>
+ <p>a set of state parameters that includes:</p>
+ <ol type="a">
+ <li>
+ <p><em>fill unit</em>, as specified by the <code>flowUnit</code>
+ argument of the <code>in()</code> flow function;</p>
+ </li>
+ <li>
+ <p><em>fill style</em>, as specified by the <code>flowStyle</code>
+ argument of the <code>in()</code> flow function;</p>
+ </li>
+ <li>
+ <p><em>fill transition</em>, as specified by the
+ <code>flowTransition</code> argument of the <code>in()</code> flow
+ function;</p>
+ </li>
+ <li>
+ <p><em>fill transition style</em>, as specified by the
+ <code>flowTransitionStyle</code> argument of the <code>in()</code> flow
+ function;</p>
+ </li>
+ <li>
+ <p><em>reflow unit</em>, as specified by the <code>flowUnit</code>
+ argument of the <code>within()</code> flow function;</p>
+ </li>
+ <li>
+ <p><em>reflow style</em>, as specified by the <code>flowStyle</code>
+ argument of the <code>within()</code> flow function;</p>
+ </li>
+ <li>
+ <p><em>reflow transition</em>, as specified by the
+ <code>flowTransition</code> argument of the <code>within()</code> flow
+ function;</p>
+ </li>
+ <li>
+ <p><em>reflow transition style</em>, as specified by the
+ <code>flowTransitionStyle</code> argument of the <code>within()</code>
+ flow function;</p>
+ </li>
+ <li>
+ <p><em>clear unit</em>, as specified by the <code>flowUnit</code>
+ argument of the <code>out()</code> flow function;</p>
+ </li>
+ <li>
+ <p><em>clear style</em>, as specified by the <code>flowStyle</code>
+ argument of the <code>out()</code> flow function;</p>
+ </li>
+ <li>
+ <p><em>clear transition</em>, as specified by the
+ <code>flowTransition</code> argument of the <code>out()</code> flow
+ function;</p>
+ </li>
+ <li>
+ <p><em>clear transition style</em>, as specified by the
+ <code>flowTransitionStyle</code> argument of the <code>out()</code>
+ flow function;</p>
+ </li>
+ <li>
+ <p><em>fill interval</em>, as specified by the <code>intra()</code>
+ flow interval function;</p>
+ </li>
+ <li>
+ <p><em>clear interval</em>, as specified by the <code>inter()</code>
+ flow interval function;</p>
+ </li>
+ <li>
+ <p><em>computed fill interval, as determined by the flow interval
+ timing calculation below;</em></p>
+ </li>
+ <li>
+ <p><em>computed clear interval, as determined by the flow interval
+ timing calculation below;</em></p>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ <p>Except for the computed fill and clear intervals, the flow interval state
+ parameters enumerated above are static and specified at authoring time.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="dynamicFlowEvents" id="dynamicFlowEvents"></a>B.2 Flow Buffer</h3>
+ <p>Each region which is assigned a <code>tts:overflow</code> property with the
+ value <code>scroll</code> is associated with a <em>flow buffer</em>, whose
+ implementation is not defined by this specification.</p>
+ <p>The content of a flow buffer is defined to be equivalent (in form) to the
+ content of an <code>fo:block-container</code> element produced by <a
+ href="#semantics-region-layout-step-2"><b>9.3.2 Synchronic Flow
+ Processing</b></a>, and represents content that is awaiting, but has not yet
+ been flowed into (made visible in) the presentation region with which the flow
+ buffer is associated.</p>
+ <p>The temporal content of a flow buffer is related to the performance of <a
+ href="#semantics-region-layout"><b>9.3 Region Layout and Presentation</b></a>
+ as follows:</p>
+ <ol type="1">
+ <li>
+ <p>At the time a dynamically flowed presentation region becomes temporally
+ active, its flow buffer is reset to the empty state;</p>
+ </li>
+ <li>
+ <p>If times <code>T<sub>k</sub></code> and <code>T<sub>k+1</sub></code> are
+ two immediately adjacent time coordinates at which synchronic region
+ construction occurs, with <code>T<sub>k</sub>≤T<sub>k+1</sub></code>, then
+ compute the difference between the content produced for use in the region
+ between time <code>T<sub>k</sub></code> and time
+ <code>T<sub>k+1</sub></code>, characterizing the difference as one of the
+ following:</p>
+ <ol type="a">
+ <li>
+ <p>no difference present;</p>
+ </li>
+ <li>
+ <p>difference present, but only before the logical content position
+ that corresponds with the most logically prior content presently
+ visible in the region;</p>
+ </li>
+ <li>
+ <p>difference present, but only between the logical content positions
+ that correspond with the most logically prior and subsequent content
+ presently visible in the region;</p>
+ </li>
+ <li>
+ <p>difference present, but only after the logical content position that
+ corresponds with the most logically subsequent content presently
+ visible in the region;</p>
+ </li>
+ <li>
+ <p>difference present, but not limited to before, between, or after the
+ positions that correspond with the most logically prior and subsequent
+ content presently visible in the region;</p>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <p>If any one of the conditions 2a, 2b, and 2c applies, then do not change
+ the flow buffer.</p>
+ </li>
+ <li>
+ <p>If condition 2d applies, then instantaneously replace the content of the
+ flow buffer with the new content (in part or in whole) that corresponds
+ with time <code>T<sub>k+1</sub></code> such that the position of the
+ content that corresponds with the start of the flow buffer does not change
+ with respect to the corresponding position of the previous content.</p>
+ </li>
+ <li>
+ <p>If condition 2e applies, then subdivide the new content that corresponds
+ with time <code>T<sub>k+1</sub></code> into two parts: (1) that part that
+ wholly precedes the position that corresponds with the most logically
+ subsequent content presently visible in the region, and (2) that part that
+ corresponds with or wholly follows the position that corresponds with the
+ most logically subsequent content presently visible in the region, then
+ ignore the first part and process the second part in the same manner as if
+ condition 2d had originally applied.</p>
+ </li>
+ <li>
+ <p>If after performing the above steps the flow buffer is non-empty, then
+ perform the following steps:</p>
+ <ol type="a">
+ <li>
+ <p>If using automatic flow interval timing, then re-perform the process
+ described in <a href="#dynamicFlowIntervalTimingCalculation"><b>B.3
+ Flow Interval Timing Calculation</b></a>.</p>
+ </li>
+ <li>
+ <p>If the fill timer is not active, then restart the timer.</p>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ <div class="div2">
+ <h3><a name="dynamicFlowIntervalTimingCalculation"
+ id="dynamicFlowIntervalTimingCalculation"></a>B.3 Flow Interval Timing
+ Calculation</h3>
+ <p>Flow interval timing is either statically specified at authoring time or is
+ dependent upon the content of the flow buffer or the presentation region or
+ both, in which case timing is recomputed dynamically upon changes to the
+ content of the flow buffer or the presentation region or both.</p>
+ <div class="div3">
+ <h4><a name="flowIntervalFillTiming" id="flowIntervalFillTiming"></a>B.3.1
+ Computed Fill Timing Interval</h4>
+ <p>The computed fill timing interval is determined as follows:</p>
+ <ol type="1">
+ <li>
+ <p>If the value of the <em>fill interval</em> parameter is a definite
+ duration, then use this duration as the computed fill interval;</p>
+ </li>
+ <li>
+ <p>otherwise, if the value of the <em>fill interval</em> parameter is a
+ definite rate, then the computed fill interval is equal to the number of
+ fill units currently available in the <em>flow buffer</em> divided by
+ specified rate (in fill units per second);</p>
+ </li>
+ <li>
+ <p>otherwise, if the value of the <em>fill interval</em> is
+ <code>auto</code>, then the computed fill interval is equal to the
+ difference between the time coordinate associated with the most
+ temporally prior beginning point of an active duration of some content
+ unit present in the flow buffer and the most temporally subsequent ending
+ point of an active duration of some content unit present in the flow
+ buffer divided by the number of fill units currently available in the
+ flow buffer.</p>
+ </li>
+ </ol>
+ </div>
+ <div class="div3">
+ <h4><a name="flowIntervalClearTiming" id="flowIntervalClearTiming"></a>B.3.2
+ Computed Clear Timing Interval</h4>
+ <p>The computed clear timing interval is determined as follows:</p>
+ <ol type="1">
+ <li>
+ <p>If the value of the <em>clear interval</em> parameter is a definite
+ duration, then use this duration as the computed clear interval;</p>
+ </li>
+ <li>
+ <p>otherwise, if the value of the <em>clear interval</em> parameter is a
+ definite rate, then the computed clear interval is equal to the number of
+ clear units currently available in the <em>presentation region</em>
+ divided by specified rate (in clear units per second);</p>
+ </li>
+ <li>
+ <p>otherwise, if the value of the <em>clear interval</em> is
+ <code>auto</code>, then the computed clear interval is equal to the
+ difference between the time coordinate associated with the most
+ temporally prior beginning point of an active duration of some content
+ unit present in the presentation region and the most temporally
+ subsequent ending point of an active duration of some content unit
+ present in the presentation region divided by the number of clear units
+ currently available in the presentation region.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="dynamicFlowOperations" id="dynamicFlowOperations"></a>B.4 Flow
+ Operations</h3>
+ <p>Flow operations perform the filling, reflowing, and clearing of formatted
+ content into, withing, and from a presentation undergoing dynamic flow
+ processing.</p>
+ <div class="div3">
+ <h4><a name="flowOperationFill" id="flowOperationFill"></a>B.4.1 Fill
+ Operation</h4>
+ <p>A <em>fill operation</em> causes the following ordered steps to be
+ performed:</p>
+ <ol type="1">
+ <li>
+ <p>remove sufficient content from the beginning of the <em>flow
+ buffer</em> to constitute a <em>fill unit</em>;</p>
+ </li>
+ <li>
+ <p>format the content removed from the <em>flow buffer</em> in the
+ previous step in order to create a sequence of glyph areas or a sequence
+ of (full or partial measure) line areas each containing a sequence of
+ glyph areas;</p>
+ </li>
+ <li>
+ <p>append the sequence of areas produced in the previous step to the
+ sequence of areas currently associated with the presentation region,
+ where new glyph areas are appended to the current line area and new line
+ areas are appended to the sequence of line areas;</p>
+ </li>
+ <li>
+ <p>cause the newly appended areas to be made visible according to the
+ <em>fill style</em>, <em>fill transition</em>, and <em>fill transition
+ style</em> state parameters in force.</p>
+ </li>
+ </ol>
+ </div>
+ <div class="div3">
+ <h4><a name="flowOperationReflow" id="flowOperationReflow"></a>B.4.2 Reflow
+ Operation</h4>
+ <p>A <em>reflow operation</em> causes the following ordered steps to be
+ performed:</p>
+ <ol type="1">
+ <li>
+ <p>translate glyph areas or (full or partial measure) line areas that
+ correspond with a <em>reflow unit</em> of formatted content that follows
+ (in inline or block progression dimension order) the space cleared by the
+ immediately preceding <em>clear operation</em> to a new position such
+ that the glyph area that corresponds to the most logically prior content
+ is aligned with the before and start edges of the presentation region,
+ and where the translation adheres to the <em>reflow style</em>,
+ <em>reflow transition</em>, and <em>reflow transition style</em> state
+ parameters in force.</p>
+ </li>
+ </ol>
+ </div>
+ <div class="div3">
+ <h4><a name="flowOperationClear" id="flowOperationClear"></a>B.4.3 Clear
+ Operation</h4>
+ <p>A <em>clear operation</em> causes the following ordered steps to be
+ performed:</p>
+ <ol type="1">
+ <li>
+ <p>remove glyph areas or (full or partial measure) line areas that
+ correspond with a <em>clear unit</em> of formatted content from the
+ starting edge or the before edge of the presentation region in inline or
+ block progression direction, respectively, applying the <em>clear
+ style</em>, <em>clear transition</em>, and <em>clear transition
+ style</em> state parameters in force.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="dynamicFlowTimers" id="dynamicFlowTimers"></a>B.5 Flow Timers</h3>
+ <p>Flow timers control the filling and clearing of formatted content from a
+ presentation undergoing dynamic flow processing.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The semantics of flow timer initiated processing expressed below reflects
+ the intent that clear and reflow operations or clear, reflow, and flow
+ operations are performed simultaneously if the (logically, but not
+ necesesarily temporally) prior operation would create sufficient space in the
+ presentation region to accept the subsequent unit of formatted content.</p>
+ </div>
+ <div class="div3">
+ <h4><a name="flowTimerFill" id="flowTimerFill"></a>B.5.1 Fill Timer</h4>
+ <p>The fill timer is used to pace the addition of formatted content to the
+ presentation region undergoing dynamic flow processing.</p>
+ <p>Each time the fill timer expires, the following ordered steps are
+ performed:</p>
+ <ol type="1">
+ <li>
+ <p>If the <em>fill buffer</em> is non-empty and contains sufficient
+ content to compose a <em>fill unit</em> and if sufficient space is
+ present in the presentation region to accept a unit of formatted content
+ that corresponds to a <em>fill unit</em>, then perform the processing
+ described in <a href="#flowOperationFill"><b>B.4.1 Fill
+ Operation</b></a>, where, if the fill timer was expired or simulated as a
+ result of performing a prior reflow operation, this operation commences
+ at the same time as the reflow operation;</p>
+ </li>
+ <li>
+ <p>If the <em>fill buffer</em> is non-empty, then reset the fill timer to
+ the current value of the computed fill interval;</p>
+ </li>
+ <li>
+ <p>If the <em>presentation region</em> is non-empty and if the clear
+ timer is not active, then reset the clear timer to the current value of
+ the computed clear interval.</p>
+ </li>
+ </ol>
+ </div>
+ <div class="div3">
+ <h4><a name="flowTimerClear" id="flowTimerClear"></a>B.5.2 Clear Timer</h4>
+ <p>The clear timer is used to pace the removal of formatted content from the
+ presentation region undergoing dynamic flow processing.</p>
+ <ol type="1">
+ <li>
+ <p>If the <em>presentation region</em> is non-empty and contains
+ sufficient formatted content to compose a <em>clear unit</em>, then
+ perform the processing described in <a
+ href="#flowOperationClear"><b>B.4.3 Clear Operation</b></a>;</p>
+ </li>
+ <li>
+ <p>If the space created by performing the clear operation indicated by
+ the above step would be sufficient to accept a unit of formatted content
+ that corresponds to a <em>reflow unit</em> and if sufficient formatted
+ content remains after this point in the presentation region, then perform
+ the processing described in <a href="#flowOperationReflow"><b>B.4.2
+ Reflow Operation</b></a>, where this operation commences at the same time
+ as the clear operation;</p>
+ </li>
+ <li>
+ <p>If a reflow operation would be performed as indicated by the above
+ step and if the space created by performing this reflow operation would
+ be sufficient to accept a unit of formatted content that corresponds to a
+ <em>fill unit</em> and if the fill buffer is non-empty, then, if active,
+ cause the fill timer to immediately expire or, if not active, simulate
+ fill timer expiration, such that the expiration permits a fill operation
+ to commence simultaneously with the reflow operation;</p>
+ </li>
+ <li>
+ <p>If the previous step did not cause the fill timer to expire and if the
+ <em>presentation region</em> is non-empty, then reset the clear timer to
+ the current value of the computed clear interval.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="schemas" id="schemas"></a>C Schemas</h2>
+ <p><em>This appendix is normative.</em></p>
+ <p>This appendix specifies the following schemas for use with DFXP document
+ instances:</p>
+ <ul>
+ <li>
+ <p>Relax NG, Compact Syntax (RNC) Schema</p>
+ </li>
+ <li>
+ <p>XML Schema Definition (XSD) Schema</p>
+ </li>
+ </ul>
+ <p>In any case where a schema specified by this appendix differs from the
+ normative definitions of document type, element type, or attribute type as
+ defined by the body of this specification, then the body of this specification
+ takes precedence.</p>
+ <div class="div2">
+ <h3><a name="dfxp-schema-rnc" id="dfxp-schema-rnc"></a>C.1 Relax NG Schema</h3>
+ <p>This section specifies a Relax NG Compact Syntax (RNC) <a href="#rng">[RELAX
+ NG]</a> based schema for DFXP, also available in a <a href="rnc/schema.zip">ZIP
+ Archive</a>.</p>
+ <div class="div3">
+ <h4><a name="rnc-dfxp-driver-schema" id="rnc-dfxp-driver-schema"></a>C.1.1
+ Driver</h4>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 Distribution Format Exchange Profile (DFXP) Schema ..........
+# .......................................................................
+# default namespace
+default namespace tt = "http://www.w3.org/2006/10/ttaf1"
+# generic tt modules
+include "ttaf1-dfxp-datatypes.rnc"
+include "ttaf1-dfxp-classes.rnc"
+include "ttaf1-dfxp-core-attribs.rnc"
+include "ttaf1-dfxp-parameter-attribs.rnc"
+include "ttaf1-dfxp-metadata-attribs.rnc"
+include "ttaf1-dfxp-styling-attribs.rnc"
+include "ttaf1-dfxp-timing-attribs.rnc"
+include "ttaf1-dfxp-metadata.rnc"
+include "ttaf1-dfxp-metadata-items.rnc"
+include "ttaf1-dfxp-styling.rnc"
+include "ttaf1-dfxp-animation.rnc"
+include "ttaf1-dfxp-layout.rnc"
+include "ttaf1-dfxp-content.rnc"
+include "ttaf1-dfxp-head.rnc"
+include "ttaf1-dfxp-document.rnc"
+start = TTAF.tt
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="rnc-dfxp-modules" id="rnc-dfxp-modules"></a>C.1.2 Modules</h4>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-animation-module"
+ id="rnc-dfxp-animation-module"></a>C.1.2.1 Animation Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Animation Module .......................................
+# .......................................................................
+# set - discrete animation
+TTAF.set =
+ element set {
+ TTAF.set.attlist,
+ TTAF.set.content
+ }
+TTAF.set.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Timed.attrib.class,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+TTAF.set.content.extra = empty
+TTAF.set.content =
+ (TTAF.Metadata.class*,
+ TTAF.set.content.extra*)
+TTAF.Animation.extra = empty
+TTAF.Animation.class |=
+ TTAF.set |
+ TTAF.Animation.extra
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-classes-module"
+ id="rnc-dfxp-classes-module"></a>C.1.2.2 Classes Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Class Declarations Module ..............................
+# .......................................................................
+# attribute group classes
+TTAF.Core.attrib.class = empty
+TTAF.Metadata.attrib.class = empty
+TTAF.Parameter.attrib.class = empty
+TTAF.RegionBinding.attrib.class = empty
+TTAF.StyleBinding.attrib.class = empty
+TTAF.Styled.attrib.class = empty
+TTAF.Styling.attrib.class = empty
+TTAF.Timed.attrib.class = empty
+TTAF.TimedContainer.attrib.class = empty
+TTAF.TimingInterval.attrib.class = empty
+# element group classes
+TTAF.Animation.class = empty
+TTAF.Block.class = empty
+TTAF.BlockNoDiv.class = empty
+TTAF.Inline.class = empty
+TTAF.InlineNoSpan.class = empty
+TTAF.MetadataNoAgent.class = empty
+TTAF.Metadata.class = empty
+TTAF.MetadataItems.class = empty
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-content-module"
+ id="rnc-dfxp-content-module"></a>C.1.2.3 Content Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Content Module .........................................
+# .......................................................................
+# body - content body
+TTAF.body =
+ element body {
+ TTAF.body.attlist,
+ TTAF.body.content
+ }
+TTAF.body.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+TTAF.body.content.extra = empty
+TTAF.body.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Block.class | TTAF.body.content.extra)*)
+# div - division
+TTAF.div =
+ element div {
+ TTAF.div.attlist,
+ TTAF.div.content
+ }
+TTAF.div.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+TTAF.div.content.extra = empty
+TTAF.div.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Block.class | TTAF.div.content.extra)*)
+# p - paragraph
+TTAF.p =
+ element p {
+ TTAF.p.attlist,
+ TTAF.p.content
+ }
+TTAF.p.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+TTAF.p.content.extra = empty
+TTAF.p.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Inline.class |
+ TTAF.p.content.extra)*)
+# span - intra-paragraph inline span
+TTAF.span =
+ element span {
+ TTAF.span.attlist,
+ TTAF.span.content
+ }
+TTAF.span.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+TTAF.span.content.extra = empty
+TTAF.span.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Inline.class |
+ TTAF.span.content.extra)*)
+# br - manual line break
+TTAF.br =
+ element br {
+ TTAF.br.attlist,
+ TTAF.br.content
+ }
+TTAF.br.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.Styled.attrib.class
+TTAF.br.content.extra = empty
+TTAF.br.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ TTAF.br.content.extra*)
+# Block.class
+TTAF.Block.extra = empty
+TTAF.BlockNoDiv.class |=
+ TTAF.p | TTAF.Block.extra
+TTAF.Block.class |=
+ TTAF.div | TTAF.BlockNoDiv.class
+# Inline.class
+TTAF.Inline.extra = empty
+TTAF.InlineNoSpan.class |=
+ text | TTAF.br | TTAF.Inline.extra
+TTAF.Inline.class |=
+ TTAF.span | TTAF.InlineNoSpan.class
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-core-attribs-module"
+ id="rnc-dfxp-core-attribs-module"></a>C.1.2.4 Core Attributes Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Core Attributes Module .................................
+# .......................................................................
+TTAF.id.attrib
+ = attribute xml:id { xsd:ID }?
+TTAF.lang.attrib
+ = attribute xml:lang { TTAF.LanguageCode.datatype }?
+TTAF.lang.required.attrib
+ = attribute xml:lang { TTAF.LanguageCode.datatype }
+TTAF.space.attrib
+ = attribute xml:space { TTAF.XMLSpace.datatype }?
+TTAF.Core.extra.attrib
+ = empty
+TTAF.Core.attrib.class &=
+ TTAF.id.attrib,
+ TTAF.lang.attrib,
+ TTAF.space.attrib,
+ TTAF.Core.extra.attrib
+TTAF.Core.required.attrib.class &=
+ TTAF.id.attrib,
+ TTAF.lang.required.attrib,
+ TTAF.space.attrib,
+ TTAF.Core.extra.attrib
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-datatypes-module"
+ id="rnc-dfxp-datatypes-module"></a>C.1.2.5 Data Types Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Datatypes Module .......................................
+# .......................................................................
+TTAF.Alpha.datatype =
+ xsd:float { minInclusive = "0" maxInclusive = "1" }
+TTAF.Agent.datatype =
+ xsd:IDREFS
+TTAF.CellResolution.datatype =
+ string
+TTAF.ClockMode.datatype =
+ "local" |
+ "gps" |
+ "utc"
+TTAF.Color.datatype =
+ string
+TTAF.Direction.datatype =
+ "ltr" |
+ "rtl" |
+ "inherit"
+TTAF.Display.datatype =
+ "auto" |
+ "none" |
+ "inherit"
+TTAF.DisplayAlign.datatype =
+ "before" |
+ "center" |
+ "after" |
+ "inherit"
+TTAF.DynamicFlow.datatype =
+ string
+TTAF.Extent.datatype =
+ string
+TTAF.FontFamily.datatype =
+ string
+TTAF.FontSize.datatype =
+ string
+TTAF.FontStyle.datatype =
+ "normal" |
+ "italic" |
+ "oblique" |
+ "reverseOblique" |
+ "inherit"
+TTAF.FontWeight.datatype =
+ "normal" |
+ "bold" |
+ "inherit"
+TTAF.FrameRate.datatype =
+ xsd:nonNegativeInteger
+TTAF.FrameRateMultiplier.datatype =
+ xsd:string { pattern = "\p{Nd}+(\s*:\s*\p{Nd}+)?" }
+TTAF.LanguageCode.datatype =
+ xsd:NMTOKEN
+TTAF.LineHeight.datatype =
+ string
+TTAF.MarkerMode.datatype =
+ "continuous" |
+ "discontinuous"
+TTAF.MetadataAgentType.datatype =
+ "person" |
+ "character" |
+ "group" |
+ "organization" |
+ "other"
+TTAF.MetadataNameType.datatype =
+ "full" |
+ "family" |
+ "given" |
+ "alias" |
+ "other"
+TTAF.MetadataRoleBaseType.datatype =
+ "action" |
+ "caption" |
+ "dialog" |
+ "expletive" |
+ "kinesic" |
+ "lyrics" |
+ "music" |
+ "narration" |
+ "quality" |
+ "sound" |
+ "source" |
+ "suppressed" |
+ "reproduction" |
+ "thought" |
+ "title" |
+ "transcription"
+TTAF.Opacity.datatype =
+ string
+TTAF.Origin.datatype =
+ string
+TTAF.Overflow.datatype =
+ "visible" |
+ "hidden" |
+ "scroll" |
+ "inherit"
+TTAF.Padding.datatype =
+ string
+TTAF.PixelAspectRatio.datatype =
+ xsd:string { pattern = "\p{Nd}+\s*:\s*\p{Nd}+" }
+TTAF.Profile.datatype =
+ TTAF.URI.datatype
+TTAF.Role.datatype =
+ xsd:NMTOKEN
+TTAF.ShowBackground.datatype =
+ "always" |
+ "whenActive" |
+ "inherit"
+TTAF.SMPTEMode.datatype =
+ "dropNTSC" |
+ "dropPAL" |
+ "nonDrop"
+TTAF.SubFrameRate.datatype =
+ xsd:positiveInteger
+TTAF.TextAlign.datatype =
+ "left" |
+ "center" |
+ "right" |
+ "start" |
+ "end" |
+ "inherit"
+TTAF.TextDecoration.datatype =
+ "none" |
+ "underline" |
+ "noUnderline" |
+ "overline" |
+ "noOverline" |
+ "lineThrough" |
+ "noLineThrough" |
+ "inherit"
+TTAF.TextOutline.datatype =
+ string
+TTAF.TickRate.datatype =
+ xsd:positiveInteger
+TTAF.TimeBase.datatype =
+ "media" |
+ "smpte" |
+ "clock"
+TTAF.TimeContainer.datatype =
+ "par" |
+ "seq"
+TTAF.TimeCoordinate.datatype =
+ string
+TTAF.TimeDuration.datatype =
+ string
+TTAF.URI.datatype =
+ xsd:anyURI
+TTAF.UnicodeBidi.datatype =
+ "normal" |
+ "embed" |
+ "bidiOverride" |
+ "inherit"
+TTAF.Visibility.datatype =
+ "hidden" |
+ "visible" |
+ "inherit"
+TTAF.WrapOption.datatype =
+ "wrap" |
+ "noWrap" |
+ "inherit"
+TTAF.WritingMode.datatype =
+ "lrtb" |
+ "rltb" |
+ "tbrl" |
+ "tblr" |
+ "lr" |
+ "rl" |
+ "tb" |
+ "inherit"
+TTAF.XMLSpace.datatype =
+ "default" |
+ "preserve"
+TTAF.ZIndex.datatype =
+ string
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-document-module"
+ id="rnc-dfxp-document-module"></a>C.1.2.6 Document Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Document Module ........................................
+# .......................................................................
+## tt - generic top-level document element type
+TTAF.tt =
+ element tt {
+ TTAF.tt.attlist,
+ TTAF.tt.content
+ }
+TTAF.tt.attlist &=
+ TTAF.Core.required.attrib.class,
+ TTAF.Parameter.attrib.class
+TTAF.tt.content =
+ (TTAF.head?, TTAF.body?)
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-head-module" id="rnc-dfxp-head-module"></a>C.1.2.7
+ Header Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Header Module ..........................................
+# .......................................................................
+# head - generic header
+TTAF.head =
+ element head {
+ TTAF.head.attlist,
+ TTAF.head.content
+ }
+TTAF.head.attlist &=
+ TTAF.Core.attrib.class
+TTAF.head.content.extra = empty
+TTAF.head.content =
+ (TTAF.Metadata.class*,
+ TTAF.styling?,
+ TTAF.layout?,
+ TTAF.head.content.extra*)
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-layout-module"
+ id="rnc-dfxp-layout-module"></a>C.1.2.8 Layout Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Layout Module ..........................................
+# .......................................................................
+# region reference attribute; must reference /head/layout/region
+TTAF.region.attrib
+ = attribute region { xsd:IDREF }?
+# region binding attribute class
+TTAF.RegionBinding.attrib.class &=
+ TTAF.region.attrib
+# layout - generic layout container
+TTAF.layout =
+ element layout {
+ TTAF.layout.attlist,
+ TTAF.layout.content
+ }
+TTAF.layout.attlist &=
+ TTAF.Core.attrib.class
+TTAF.layout.content.extra = empty
+TTAF.layout.content =
+ (TTAF.Metadata.class*,
+ TTAF.layout.region*,
+ TTAF.layout.content.extra*)
+# region - region declaration
+TTAF.layout.region =
+ element region {
+ TTAF.layout.region.attlist,
+ TTAF.layout.region.content
+ }
+TTAF.layout.region.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.TimedContainer.attrib.class,
+ TTAF.style.attrib,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+TTAF.layout.region.content.extra = empty
+TTAF.layout.region.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ TTAF.styling.style*,
+ TTAF.layout.region.content.extra*)
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-metdata-module"
+ id="rnc-dfxp-metdata-module"></a>C.1.2.9 Metadata Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Module ........................................
+# .......................................................................
+# namespace prefix bindings
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace local = ""
+# meta - generic metadata
+TTAF.metadata =
+ element metadata {
+ TTAF.metadata.attlist,
+ TTAF.metadata.content
+ }
+TTAF.metadata.attlist &=
+ TTAF.Core.attrib.class
+TTAF.External.class =
+ element * - tt:* {
+ ( attribute * - ( xml:* | local:* ) { text }
+ | text
+ | TTAF.External.class
+ )*
+ }
+TTAF.metadata.content.extra = empty
+TTAF.metadata.content =
+ (TTAF.External.class |
+ TTAF.metadata.content.extra)*
+TTAF.MetadataNoAgent.class |=
+ TTAF.MetadataItems.class |
+ TTAF.metadata
+TTAF.Metadata.class |=
+ TTAF.MetadataNoAgent.class |
+ TTAF.meta.agent
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-metdata-items-module"
+ id="rnc-dfxp-metdata-items-module"></a>C.1.2.10 Metadata Items Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Items Module ......................................
+# .......................................................................
+namespace ttm = "http://www.w3.org/2006/10/ttaf1#metadata"
+namespace ttmx = "http://www.w3.org/2006/10/ttaf1#metadata-extension"
+## actor - specifies actor
+TTAF.meta.actor =
+ element ttm:actor {
+ TTAF.meta.actor.attlist,
+ TTAF.meta.actor.content
+ }
+TTAF.meta.actor.attlist &=
+ TTAF.Core.attrib.class,
+ attribute agent { xsd:IDREF }
+TTAF.meta.actor.content.extra = empty
+TTAF.meta.actor.content = empty
+## agent - specifies agent
+TTAF.meta.agent =
+ element ttm:agent {
+ TTAF.meta.agent.attlist,
+ TTAF.meta.agent.content
+ }
+TTAF.meta.agent.attlist &=
+ TTAF.Core.attrib.class,
+ attribute type { TTAF.MetadataAgentType.datatype }
+TTAF.meta.agent.content.extra = empty
+TTAF.meta.agent.content =
+ (TTAF.meta.name*,
+ TTAF.meta.actor?,
+ TTAF.meta.agent.content.extra*)
+## copyright - specifies copyright statement
+TTAF.meta.copyright =
+ element ttm:copyright {
+ TTAF.meta.copyright.attlist,
+ TTAF.meta.copyright.content
+ }
+TTAF.meta.copyright.attlist &=
+ TTAF.Core.attrib.class
+TTAF.meta.copyright.content.extra = empty
+TTAF.meta.copyright.content = text
+## desc - specifies description
+TTAF.meta.desc =
+ element ttm:desc {
+ TTAF.meta.desc.attlist,
+ TTAF.meta.desc.content
+ }
+TTAF.meta.desc.attlist &=
+ TTAF.Core.attrib.class
+TTAF.meta.desc.content.extra = empty
+TTAF.meta.desc.content = text
+## name - specifies name
+TTAF.meta.name =
+ element ttm:name {
+ TTAF.meta.name.attlist,
+ TTAF.meta.name.content
+ }
+TTAF.meta.name.attlist &=
+ TTAF.Core.attrib.class,
+ attribute type { TTAF.MetadataNameType.datatype }
+TTAF.meta.name.content.extra = empty
+TTAF.meta.name.content = text
+## title - describes title
+TTAF.meta.title =
+ element ttm:title {
+ TTAF.meta.title.attlist,
+ TTAF.meta.title.content
+ }
+TTAF.meta.title.attlist &=
+ TTAF.Core.attrib.class
+TTAF.meta.title.content.extra = empty
+TTAF.meta.title.content = text
+## MetadataItems.class
+TTAF.MetadataItems.extra = empty
+TTAF.MetadataItems.class |=
+ TTAF.meta.title |
+ TTAF.meta.desc |
+ TTAF.meta.copyright |
+ TTAF.MetadataItems.extra
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-metadata-attribs-module"
+ id="rnc-dfxp-metadata-attribs-module"></a>C.1.2.11 Metadata Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Attributes Module ..............................
+# .......................................................................
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace ttm = "http://www.w3.org/2006/10/ttaf1#metadata"
+namespace ttmx = "http://www.w3.org/2006/10/ttaf1#metadata-extension"
+namespace local = ""
+# Standard Metadata Attributes
+TTAF.agent.attrib
+ = attribute ttm:agent { TTAF.Agent.datatype }?
+TTAF.role.attrib
+ = attribute ttm:role { TTAF.Role.datatype }?
+# Extension Metadata Attributes
+TTAF.Metadata.Extension.attrib =
+ attribute ttmx:* { text }
+# Metadata Attribute Class
+TTAF.Metadata.attrib.class &=
+ TTAF.agent.attrib,
+ TTAF.role.attrib
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-parameter-attribs-module"
+ id="rnc-dfxp-parameter-attribs-module"></a>C.1.2.12 Parameter Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Parameter Attributes Module ............................
+# .......................................................................
+namespace ttp = "http://www.w3.org/2006/10/ttaf1#parameter"
+# Standard Metadata Attributes
+TTAF.cellResolution.attrib
+ = attribute ttp:cellResolution { TTAF.CellResolution.datatype }?
+TTAF.clockMode.attrib
+ = attribute ttp:clockMode { TTAF.ClockMode.datatype }?
+TTAF.frameRate.attrib
+ = attribute ttp:frameRate { TTAF.FrameRate.datatype }?
+TTAF.frameRateMultiplier.attrib
+ = attribute ttp:frameRateMultiplier { TTAF.FrameRateMultiplier.datatype }?
+TTAF.markerMode.attrib
+ = attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
+TTAF.profile.attrib
+ = attribute ttp:profile { TTAF.Profile.datatype }?
+TTAF.pixelAspectRatio.attrib
+ = attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
+TTAF.smpteMode.attrib
+ = attribute ttp:smpteMode { TTAF.SMPTEMode.datatype }?
+TTAF.subFrameRate.attrib
+ = attribute ttp:subFrameRate { TTAF.SubFrameRate.datatype }?
+TTAF.tickRate.attrib
+ = attribute ttp:tickRate { TTAF.TickRate.datatype }?
+TTAF.timeBase.attrib
+ = attribute ttp:timeBase { TTAF.TimeBase.datatype }?
+# Parameter Attribute Class
+TTAF.Parameter.attrib.class &=
+ TTAF.cellResolution.attrib,
+ TTAF.clockMode.attrib,
+ TTAF.frameRate.attrib,
+ TTAF.frameRateMultiplier.attrib,
+ TTAF.markerMode.attrib,
+ TTAF.pixelAspectRatio.attrib,
+ TTAF.profile.attrib,
+ TTAF.smpteMode.attrib,
+ TTAF.subFrameRate.attrib,
+ TTAF.tickRate.attrib,
+ TTAF.timeBase.attrib
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-styling-attribs-module"
+ id="rnc-dfxp-styling-attribs-module"></a>C.1.2.13 Styling Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Styling Attributes Module ..............................
+# .......................................................................
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace tts = "http://www.w3.org/2006/10/ttaf1#style"
+namespace ttsx = "http://www.w3.org/2006/10/ttaf1#style-extension"
+namespace local = ""
+# Standard Style Attributes
+TTAF.backgroundColor.attrib
+ = attribute tts:backgroundColor { TTAF.Color.datatype }?
+TTAF.color.attrib
+ = attribute tts:color { TTAF.Color.datatype }?
+TTAF.direction.attrib
+ = attribute tts:direction { TTAF.Direction.datatype }?
+TTAF.display.attrib
+ = attribute tts:display { TTAF.Display.datatype }?
+TTAF.displayAlign.attrib
+ = attribute tts:displayAlign { TTAF.DisplayAlign.datatype }?
+TTAF.dynamicFlow.attrib
+ = attribute tts:dynamicFlow { TTAF.DynamicFlow.datatype }?
+TTAF.extent.attrib
+ = attribute tts:extent { TTAF.Extent.datatype }?
+TTAF.fontFamily.attrib
+ = attribute tts:fontFamily { TTAF.FontFamily.datatype }?
+TTAF.fontSize.attrib
+ = attribute tts:fontSize { TTAF.FontSize.datatype }?
+TTAF.fontStyle.attrib
+ = attribute tts:fontStyle { TTAF.FontStyle.datatype }?
+TTAF.fontWeight.attrib
+ = attribute tts:fontWeight { TTAF.FontWeight.datatype }?
+TTAF.lineHeight.attrib
+ = attribute tts:lineHeight { TTAF.LineHeight.datatype }?
+TTAF.opacity.attrib
+ = attribute tts:opacity { TTAF.Opacity.datatype }?
+TTAF.origin.attrib
+ = attribute tts:origin { TTAF.Origin.datatype }?
+TTAF.overflow.attrib
+ = attribute tts:overflow { TTAF.Overflow.datatype }?
+TTAF.padding.attrib
+ = attribute tts:padding { TTAF.Padding.datatype }?
+TTAF.showBackground.attrib
+ = attribute tts:showBackground { TTAF.ShowBackground.datatype }?
+TTAF.textAlign.attrib
+ = attribute tts:textAlign { TTAF.TextAlign.datatype }?
+TTAF.textDecoration.attrib
+ = attribute tts:textDecoration { TTAF.TextDecoration.datatype }?
+TTAF.textOutline.attrib
+ = attribute tts:textOutline { TTAF.TextOutline.datatype }?
+TTAF.unicodeBidi.attrib
+ = attribute tts:unicodeBidi { TTAF.UnicodeBidi.datatype }?
+TTAF.visibility.attrib
+ = attribute tts:visibility { TTAF.Visibility.datatype }?
+TTAF.wrapOption.attrib
+ = attribute tts:wrapOption { TTAF.WrapOption.datatype }?
+TTAF.writingMode.attrib
+ = attribute tts:writingMode { TTAF.WritingMode.datatype }?
+TTAF.zIndex.attrib
+ = attribute tts:zIndex { TTAF.ZIndex.datatype }?
+# Extension Style Attributes
+TTAF.Styling.Extension.attrib =
+ attribute ttsx:* { text }
+TTAF.Styling.ForeignExtension.attrib =
+ attribute * - ( tt:* | tts:* | ttsx:* | xml:* | local:* ) { text }
+# Styling Attribute Class
+TTAF.Styling.attrib.class &=
+ TTAF.backgroundColor.attrib,
+ TTAF.color.attrib,
+ TTAF.display.attrib,
+ TTAF.displayAlign.attrib,
+ TTAF.dynamicFlow.attrib,
+ TTAF.extent.attrib,
+ TTAF.fontFamily.attrib,
+ TTAF.fontSize.attrib,
+ TTAF.fontStyle.attrib,
+ TTAF.fontWeight.attrib,
+ TTAF.lineHeight.attrib,
+ TTAF.opacity.attrib,
+ TTAF.origin.attrib,
+ TTAF.overflow.attrib,
+ TTAF.padding.attrib,
+ TTAF.showBackground.attrib,
+ TTAF.textAlign.attrib,
+ TTAF.textDecoration.attrib,
+ TTAF.textOutline.attrib,
+ TTAF.visibility.attrib,
+ TTAF.wrapOption.attrib,
+ TTAF.writingMode.attrib,
+ TTAF.zIndex.attrib
+# Style Binding Attribute Class
+TTAF.StyleBinding.attrib.class &=
+ TTAF.style.attrib
+# Styled Content Attribute Class
+TTAF.Styled.extra.attrib = empty
+TTAF.Styled.attrib.class &=
+ TTAF.Styling.attrib.class,
+ TTAF.StyleBinding.attrib.class,
+ TTAF.Styled.extra.attrib
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-styling-module"
+ id="rnc-dfxp-styling-module"></a>C.1.2.14 Styling Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Styling Module .........................................
+# .......................................................................
+# style reference attribute; must reference /tt/head/styling/style
+TTAF.style.attrib
+ = attribute style { xsd:IDREFS }?
+# styling - generic styling container
+TTAF.styling =
+ element styling {
+ TTAF.styling.attlist,
+ TTAF.styling.content
+ }
+TTAF.styling.attlist &=
+ TTAF.Core.attrib.class
+TTAF.styling.content.extra = empty
+TTAF.styling.content =
+ (TTAF.Metadata.class*,
+ TTAF.styling.defs.class*,
+ TTAF.styling.content.extra*)
+# style - style declaration
+TTAF.styling.style =
+ element style {
+ TTAF.styling.style.attlist,
+ TTAF.styling.style.content
+ }
+TTAF.styling.style.attlist =
+ TTAF.Core.attrib.class,
+ TTAF.style.attrib,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+TTAF.styling.style.content.extra = empty
+TTAF.styling.style.content =
+ (TTAF.Metadata.class*,
+ (TTAF.styling.style.content.extra)*)
+# style definitions class
+TTAF.styling.defs.extra = empty
+TTAF.styling.defs.class =
+ TTAF.styling.style
+ | TTAF.styling.defs.extra
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="rnc-dfxp-timing-attribs-module"
+ id="rnc-dfxp-timing-attribs-module"></a>C.1.2.15 Timing Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+# .......................................................................
+# TT-AF 1.0 DFXP Timing Attributes Module ...............................
+# .......................................................................
+# Timing Attributes
+TTAF.timing.begin.attrib
+ = attribute begin { TTAF.TimeCoordinate.datatype }?
+TTAF.timing.dur.attrib
+ = attribute dur { TTAF.TimeDuration.datatype }?
+TTAF.timing.end.attrib
+ = attribute end { TTAF.TimeCoordinate.datatype }?
+TTAF.timing.timeContainer.attrib
+ = attribute timeContainer { TTAF.TimeContainer.datatype }?
+# Timing Interval Attribute class
+TTAF.TimingInterval.extra.attrib = empty
+TTAF.TimingInterval.attrib.class &=
+ TTAF.timing.begin.attrib,
+ TTAF.timing.dur.attrib,
+ TTAF.timing.end.attrib,
+ TTAF.TimingInterval.extra.attrib
+# Timing Container Attribute class
+TTAF.TimingContainer.extra.attrib = empty
+TTAF.TimingContainer.attrib.class &=
+ TTAF.timing.timeContainer.attrib,
+ TTAF.TimingContainer.extra.attrib
+# Timed Content Attribute Class
+TTAF.Timed.extra.attrib = empty
+TTAF.Timed.attrib.class &=
+ TTAF.TimingInterval.attrib.class,
+ TTAF.Timed.extra.attrib
+# Timed Content Container Attribute Class
+TTAF.TimedContainer.extra.attrib = empty
+TTAF.TimedContainer.attrib.class &=
+ TTAF.Timed.attrib.class,
+ TTAF.TimingContainer.attrib.class,
+ TTAF.TimedContainer.extra.attrib
+# .......................................................................
+# .......................................................................
+# .......................................................................
+</pre>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="dfxp-schema-xsd" id="dfxp-schema-xsd"></a>C.2 XML Schema
+ Definition (XSD) Schema</h3>
+ <p>This section specifies a W3C XML Schema Definition (XSD) <a
+ href="#xsd-1">[XML Schema Part 1]</a> based schema for DFXP, also available in
+ a <a href="xsd/schema.zip">ZIP Archive</a>.</p>
+ <div class="div3">
+ <h4><a name="xsd-dfxp-driver-schema" id="xsd-dfxp-driver-schema"></a>C.2.1
+ Driver</h4>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1">
+ <xs:include schemaLocation="ttaf1-dfxp-document.xsd"/>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div3">
+ <h4><a name="xsd-dfxp-modules" id="xsd-dfxp-modules"></a>C.2.2 Modules</h4>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-animation-module"
+ id="xsd-dfxp-animation-module"></a>C.2.2.1 Animation Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="set.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class" />
+ <xs:attributeGroup ref="tt:Timed.attrib.class" />
+ <xs:attributeGroup ref="tts:Styling.attrib.class" />
+ </xs:attributeGroup>
+ <xs:complexType name="set.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:set.attlist"/>
+ </xs:complexType>
+ <xs:element name="set" type="tt:set.eltype"/>
+ <xs:group name="Animation.class">
+ <xs:choice>
+ <xs:element ref="tt:set"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-content-module"
+ id="xsd-dfxp-content-module"></a>C.2.2.2 Content Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
+ <xs:attributeGroup name="body.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="div.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="p.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="span.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="br.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="body.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:div" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:body.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="div.eltype">
+ <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:Block.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:div.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="p.eltype" mixed="true">
+ <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:sequence>
+ <xs:attributeGroup ref="tt:p.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="span.eltype" mixed="true">
+ <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:sequence>
+ <xs:attributeGroup ref="tt:span.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="br.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:br.attlist"/>
+ </xs:complexType>
+ <xs:element name="body" type="tt:body.eltype"/>
+ <xs:element name="div" type="tt:div.eltype"/>
+ <xs:element name="p" type="tt:p.eltype"/>
+ <xs:element name="span" type="tt:span.eltype"/>
+ <xs:element name="br" type="tt:br.eltype"/>
+ <xs:group name="BlockNoDiv.class">
+ <xs:choice>
+ <xs:element ref="tt:p"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Block.class">
+ <xs:choice>
+ <xs:group ref="tt:BlockNoDiv.class"/>
+ <xs:element ref="tt:div"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="InlineNoSpan.class">
+ <xs:choice>
+ <xs:element ref="tt:br"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Inline.class">
+ <xs:choice>
+ <xs:group ref="tt:InlineNoSpan.class"/>
+ <xs:element ref="tt:span"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-core-attribs-module"
+ id="xsd-dfxp-core-attribs-module"></a>C.2.2.3 Core Attributes Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="xml.xsd"/>
+ <xs:attributeGroup name="Core.attrib.class">
+ <xs:attribute ref="xml:id"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Core.required.attrib.class">
+ <xs:attribute ref="xml:id"/>
+ <xs:attribute ref="xml:lang" use="required"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-datatypes-module"
+ id="xsd-dfxp-datatypes-module"></a>C.2.2.4 Data Types Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype">
+ <xs:simpleType name="alpha">
+ <xs:restriction base="xs:float">
+ <xs:minInclusive value="0"/>
+ <xs:maxInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="agent">
+ <xs:restriction base="xs:IDREFS"/>
+ </xs:simpleType>
+ <xs:simpleType name="cellResolution">
+ <xs:annotation>
+ <xs:documentation>positiveInteger positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="clockMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="local"/>
+ <xs:enumeration value="gps"/>
+ <xs:enumeration value="utc"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="color">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="direction">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ltr"/>
+ <xs:enumeration value="rtl"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="display">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="auto"/>
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="displayAlign">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="before"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="after"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="dynamicFlow">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="extent">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontFamily">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontSize">
+ <xs:annotation>
+ <xs:documentation>inherit | length | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontStyle">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="italic"/>
+ <xs:enumeration value="oblique"/>
+ <xs:enumeration value="reverseOblique"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontWeight">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="bold"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="frameRate">
+ <xs:restriction base="xs:nonNegativeInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="frameRateMultiplier">
+ <xs:annotation>
+ <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\p{Nd}+(\s*:\s*\p{Nd}+)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="lineHeight">
+ <xs:annotation>
+ <xs:documentation>normal | inherit | length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="markerMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="continuous"/>
+ <xs:enumeration value="discontinuous"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataAgentType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="person"/>
+ <xs:enumeration value="character"/>
+ <xs:enumeration value="group"/>
+ <xs:enumeration value="organization"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataNameType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="full"/>
+ <xs:enumeration value="family"/>
+ <xs:enumeration value="given"/>
+ <xs:enumeration value="alias"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataRoleBaseType">
+ <xs:annotation>
+ <xs:documentation>orphan simpleType retained in hope it can be used for role</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="action"/>
+ <xs:enumeration value="caption"/>
+ <xs:enumeration value="dialog"/>
+ <xs:enumeration value="expletive"/>
+ <xs:enumeration value="kinesic"/>
+ <xs:enumeration value="lyrics"/>
+ <xs:enumeration value="music"/>
+ <xs:enumeration value="narration"/>
+ <xs:enumeration value="quality"/>
+ <xs:enumeration value="sound"/>
+ <xs:enumeration value="source"/>
+ <xs:enumeration value="suppressed"/>
+ <xs:enumeration value="reproduction"/>
+ <xs:enumeration value="thought"/>
+ <xs:enumeration value="title"/>
+ <xs:enumeration value="transcription"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="opacity">
+ <xs:annotation>
+ <xs:documentation>inherit | alpha</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="origin">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="overflow">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="visible"/>
+ <xs:enumeration value="hidden"/>
+ <xs:enumeration value="scroll"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="padding">
+ <xs:annotation>
+ <xs:documentation>inherit | length length | length length length | length length length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="pixelAspectRatio">
+ <xs:annotation>
+ <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\p{Nd}+\s*:\s*\p{Nd}+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="profile">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="role">
+ <xs:annotation>
+ <xs:documentation>metadataRoleBaseType | "x-"string</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN"/>
+ </xs:simpleType>
+ <xs:simpleType name="showBackground">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="always"/>
+ <xs:enumeration value="whenActive"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="smpteMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="dropNTSC"/>
+ <xs:enumeration value="dropPAL"/>
+ <xs:enumeration value="nonDrop"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="subFrameRate">
+ <xs:restriction base="xs:positiveInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="textAlign">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="start"/>
+ <xs:enumeration value="end"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="textDecoration">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="underline"/>
+ <xs:enumeration value="noUnderline"/>
+ <xs:enumeration value="overline"/>
+ <xs:enumeration value="noOverline"/>
+ <xs:enumeration value="lineThrough"/>
+ <xs:enumeration value="noLineThrough"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="textOutline">
+ <xs:annotation>
+ <xs:documentation>none | inherit | length | length length | color length | color length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="tickRate">
+ <xs:restriction base="xs:positiveInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="timeBase">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="media"/>
+ <xs:enumeration value="smpte"/>
+ <xs:enumeration value="clock"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeContainer">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="par"/>
+ <xs:enumeration value="seq"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeCoordinate">
+ <xs:annotation>
+ <xs:documentation>timeExpression</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="timeDuration">
+ <xs:annotation>
+ <xs:documentation>timeExpression</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="unicodeBidi">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="embed"/>
+ <xs:enumeration value="bidiOverride"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="visibility">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="hidden"/>
+ <xs:enumeration value="visible"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="wrapOption">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="wrap"/>
+ <xs:enumeration value="noWrap"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="writingMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="lrtb"/>
+ <xs:enumeration value="rltb"/>
+ <xs:enumeration value="tbrl"/>
+ <xs:enumeration value="tblr"/>
+ <xs:enumeration value="lr"/>
+ <xs:enumeration value="rl"/>
+ <xs:enumeration value="tb"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="zIndex">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | integer</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-document-module"
+ id="xsd-dfxp-document-module"></a>C.2.2.5 Document Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#parameter"
+ schemaLocation="ttaf1-dfxp-parameter-attribs.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-head.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-content.xsd"/>
+ <xs:attributeGroup name="tt.attlist">
+ <xs:attributeGroup ref="tt:Core.required.attrib.class"/>
+ <xs:attributeGroup ref="ttp:Parameter.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="tt.eltype">
+ <xs:sequence>
+ <xs:element ref="tt:head" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="tt:body" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:tt.attlist"/>
+ </xs:complexType>
+ <xs:element name="tt" type="tt:tt.eltype"/>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-head-module" id="xsd-dfxp-head-module"></a>C.2.2.6
+ Header Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
+ <xs:attributeGroup name="head.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="head.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:styling" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="tt:layout" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:head.attlist"/>
+ </xs:complexType>
+ <xs:element name="head" type="tt:head.eltype"/>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-layout-module"
+ id="xsd-dfxp-layout-module"></a>C.2.2.7 Layout Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="RegionBinding.attrib.class">
+ <xs:attribute name="region" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="layout.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="region.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="layout.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:region" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:layout.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="region.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:region.attlist"/>
+ </xs:complexType>
+ <xs:element name="layout" type="tt:layout.eltype"/>
+ <xs:element name="region" type="tt:region.eltype"/>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-metdata-module"
+ id="xsd-dfxp-metdata-module"></a>C.2.2.8 Metadata Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
+ <xs:attributeGroup name="metadata.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="metadata.eltype" mixed="true">
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:metadata.attlist"/>
+ </xs:complexType>
+ <xs:element name="metadata" type="tt:metadata.eltype"/>
+ <xs:group name="MetadataNoAgent.class">
+ <xs:choice>
+ <xs:group ref="ttm:MetadataItems.class"/>
+ <xs:element ref="tt:metadata"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Metadata.class">
+ <xs:choice>
+ <xs:group ref="tt:MetadataNoAgent.class"/>
+ <xs:element ref="ttm:agent"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-metdata-items-module"
+ id="xsd-dfxp-metdata-items-module"></a>C.2.2.9 Metadata Items Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1"
+ schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
+ <xs:attributeGroup name="actor.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="agent" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="agent.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="type" type="ttd:metadataAgentType"
+ use="required"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="copyright.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="desc.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="name.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="type" type="ttd:metadataNameType"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="title.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="actor.eltype">
+ <xs:attributeGroup ref="ttm:actor.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="agent.eltype">
+ <xs:sequence>
+ <xs:element ref="ttm:name" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="ttm:actor" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ttm:agent.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="copyright.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:copyright.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="desc.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:desc.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="name.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:name.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="title.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:title.attlist"/>
+ </xs:complexType>
+ <xs:element name="actor" type="ttm:actor.eltype"/>
+ <xs:element name="agent" type="ttm:agent.eltype"/>
+ <xs:element name="copyright" type="ttm:copyright.eltype"/>
+ <xs:element name="desc" type="ttm:desc.eltype"/>
+ <xs:element name="name" type="ttm:name.eltype"/>
+ <xs:element name="title" type="ttm:title.eltype"/>
+ <xs:group name="MetadataItems.class">
+ <xs:choice>
+ <xs:element ref="ttm:title"/>
+ <xs:element ref="ttm:desc"/>
+ <xs:element ref="ttm:copyright"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-metadata-attribs-module"
+ id="xsd-dfxp-metadata-attribs-module"></a>C.2.2.10 Metadata Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="agent" type="ttd:agent"/>
+ <xs:attribute name="role" type="ttd:role"/>
+ <xs:attributeGroup name="Metadata.attrib.class">
+ <xs:attribute ref="ttm:agent"/>
+ <xs:attribute ref="ttm:role"/>
+ </xs:attributeGroup>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-parameter-attribs-module"
+ id="xsd-dfxp-parameter-attribs-module"></a>C.2.2.11 Parameter Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#parameter"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="cellResolution" type="ttd:cellResolution"/>
+ <xs:attribute name="clockMode" type="ttd:clockMode"/>
+ <xs:attribute name="frameRate" type="ttd:frameRate"/>
+ <xs:attribute name="frameRateMultiplier" type="ttd:frameRateMultiplier"/>
+ <xs:attribute name="markerMode" type="ttd:markerMode"/>
+ <xs:attribute name="profile" type="ttd:profile"/>
+ <xs:attribute name="pixelAspectRatio" type="ttd:pixelAspectRatio"/>
+ <xs:attribute name="smpteMode" type="ttd:smpteMode"/>
+ <xs:attribute name="subFrameRate" type="ttd:subFrameRate"/>
+ <xs:attribute name="tickRate" type="ttd:tickRate"/>
+ <xs:attribute name="timeBase" type="ttd:timeBase"/>
+ <xs:attributeGroup name="Parameter.attrib.class">
+ <xs:attribute ref="ttp:cellResolution"/>
+ <xs:attribute ref="ttp:clockMode"/>
+ <xs:attribute ref="ttp:frameRate"/>
+ <xs:attribute ref="ttp:frameRateMultiplier"/>
+ <xs:attribute ref="ttp:markerMode"/>
+ <xs:attribute ref="ttp:profile"/>
+ <xs:attribute ref="ttp:pixelAspectRatio"/>
+ <xs:attribute ref="ttp:smpteMode"/>
+ <xs:attribute ref="ttp:subFrameRate"/>
+ <xs:attribute ref="ttp:tickRate"/>
+ <xs:attribute ref="ttp:timeBase"/>
+ </xs:attributeGroup>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-styling-attribs-module"
+ id="xsd-dfxp-styling-attribs-module"></a>C.2.2.12 Styling Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#style" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="backgroundColor" type="ttd:color"/>
+ <xs:attribute name="color" type="ttd:color"/>
+ <xs:attribute name="direction" type="ttd:direction"/>
+ <xs:attribute name="display" type="ttd:display"/>
+ <xs:attribute name="displayAlign" type="ttd:displayAlign"/>
+ <xs:attribute name="dynamicFlow" type="ttd:dynamicFlow"/>
+ <xs:attribute name="extent" type="ttd:extent"/>
+ <xs:attribute name="fontFamily" type="ttd:fontFamily"/>
+ <xs:attribute name="fontSize" type="ttd:fontSize"/>
+ <xs:attribute name="fontStyle" type="ttd:fontStyle"/>
+ <xs:attribute name="fontWeight" type="ttd:fontWeight"/>
+ <xs:attribute name="lineHeight" type="ttd:lineHeight"/>
+ <xs:attribute name="opacity" type="ttd:opacity"/>
+ <xs:attribute name="origin" type="ttd:origin"/>
+ <xs:attribute name="overflow" type="ttd:overflow"/>
+ <xs:attribute name="padding" type="ttd:padding"/>
+ <xs:attribute name="showBackground" type="ttd:showBackground"/>
+ <xs:attribute name="textAlign" type="ttd:textAlign"/>
+ <xs:attribute name="textDecoration" type="ttd:textDecoration"/>
+ <xs:attribute name="textOutline" type="ttd:textOutline"/>
+ <xs:attribute name="unicodeBidi" type="ttd:unicodeBidi"/>
+ <xs:attribute name="visibility" type="ttd:visibility"/>
+ <xs:attribute name="wrapOption" type="ttd:wrapOption"/>
+ <xs:attribute name="writingMode" type="ttd:writingMode"/>
+ <xs:attribute name="zIndex" type="ttd:zIndex"/>
+ <xs:attributeGroup name="Styling.attrib.class">
+ <xs:attribute ref="tts:backgroundColor"/>
+ <xs:attribute ref="tts:color"/>
+ <xs:attribute ref="tts:direction"/>
+ <xs:attribute ref="tts:display"/>
+ <xs:attribute ref="tts:displayAlign"/>
+ <xs:attribute ref="tts:dynamicFlow"/>
+ <xs:attribute ref="tts:extent"/>
+ <xs:attribute ref="tts:fontFamily"/>
+ <xs:attribute ref="tts:fontSize"/>
+ <xs:attribute ref="tts:fontStyle"/>
+ <xs:attribute ref="tts:fontWeight"/>
+ <xs:attribute ref="tts:lineHeight"/>
+ <xs:attribute ref="tts:opacity"/>
+ <xs:attribute ref="tts:origin"/>
+ <xs:attribute ref="tts:overflow"/>
+ <xs:attribute ref="tts:padding"/>
+ <xs:attribute ref="tts:showBackground"/>
+ <xs:attribute ref="tts:textAlign"/>
+ <xs:attribute ref="tts:textDecoration"/>
+ <xs:attribute ref="tts:textOutline"/>
+ <xs:attribute ref="tts:unicodeBidi"/>
+ <xs:attribute ref="tts:visibility"/>
+ <xs:attribute ref="tts:wrapOption"/>
+ <xs:attribute ref="tts:writingMode"/>
+ <xs:attribute ref="tts:zIndex"/>
+ </xs:attributeGroup>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-styling-module"
+ id="xsd-dfxp-styling-module"></a>C.2.2.13 Styling Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="StyleBinding.attrib.class">
+ <xs:attribute name="style" type="xs:IDREFS"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Styled.attrib.class">
+ <xs:attributeGroup ref="tt:StyleBinding.attrib.class"/>
+ <xs:attributeGroup ref="tts:Styling.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="styling.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="style.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="styling.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:styling.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="style.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:style.attlist"/>
+ </xs:complexType>
+ <xs:element name="styling" type="tt:styling.eltype"/>
+ <xs:element name="style" type="tt:style.eltype"/>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-timing-attribs-module"
+ id="xsd-dfxp-timing-attribs-module"></a>C.2.2.14 Timing Attributes
+ Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attributeGroup name="TimingInterval.attrib.class">
+ <xs:attribute name="begin" type="ttd:timeCoordinate"/>
+ <xs:attribute name="dur" type="ttd:timeDuration"/>
+ <xs:attribute name="end" type="ttd:timeCoordinate"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="TimingContainer.attrib.class">
+ <xs:attribute name="timeContainer" type="ttd:timeContainer"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Timed.attrib.class">
+ <xs:attributeGroup ref="tt:TimingInterval.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="TimedContainer.attrib.class">
+ <xs:attributeGroup ref="tt:Timed.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimingContainer.attrib.class"/>
+ </xs:attributeGroup>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ <div class="div4">
+ <h5><a name="xsd-dfxp-xml-attrs-module"
+ id="xsd-dfxp-xml-attrs-module"></a>C.2.2.15 XML Attributes Module</h5>
+ <div class="exampleInner">
+<pre>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="lang" type="xs:language"/>
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+</xs:schema>
+</pre>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="media-type-registration" id="media-type-registration"></a>D Media
+ Type Registration</h2>
+ <p><em>This appendix is normative.</em></p>
+ <p>This appendix registers a new MIME media type, "application/ttaf+xml" in
+ conformance with <a href="http://www.ietf.org/rfc/rfc4288.txt">BCP 13</a> and <a
+ href="http://www.w3.org/2002/06/registering-mediatype.html">W3CRegMedia</a>. The
+ information in this appendix is being submitted to the Internet Engineering
+ Steering Group (IESG) for review, approval, and registration with the Internet
+ Assigned Numbers Authority (IANA).</p>
+ <dl>
+ <dt class="label">MIME media type name:</dt>
+ <dd>
+ <p>application</p>
+ </dd>
+ <dt class="label">MIME subtype name:</dt>
+ <dd>
+ <p>ttaf+xml</p>
+ </dd>
+ <dt class="label">Required parameters:</dt>
+ <dd>
+ <p>None.</p>
+ </dd>
+ <dt class="label">Optional parameters:</dt>
+ <dd>
+ <p>The encoding of a TT AF document must be determined by the XML encoding
+ declaration. This has identical semantics to the application/xml media type
+ in the case where the charset parameter is omitted, as specified in <a
+ href="#xml-media">[XML Media]</a>, Sections 8.9, 8.10 and 8.11.</p>
+ <p>The document profile of a TT AF document may be specified using an
+ optional <code>profile</code> parameter, which, if specified, the value of
+ which must adhere to the syntax and semantics of <code>ttp:profile</code>
+ parameter defined by Section <a href="#parameter-attribute-profile"><b>6.2.7
+ ttp:profile</b></a> of the published specification.</p>
+ </dd>
+ <dt class="label">Encoding considerations:</dt>
+ <dd>
+ <p>Same for application/xml. See <a href="#xml-media">[XML Media]</a>,
+ Section 3.2.</p>
+ </dd>
+ <dt class="label">Restrictions on usage:</dt>
+ <dd>
+ <p>None.</p>
+ </dd>
+ <dt class="label">Security considerations:</dt>
+ <dd>
+ <p>As with other XML types and as noted in <a href="#xml-media">[XML
+ Media]</a> Section 10, repeated expansion of maliciously constructed XML
+ entities can be used to consume large amounts of memory, which may cause XML
+ processors in constrained environments to fail.</p>
+ <p>In addition, because of the extensibility features for TT AF and of XML in
+ general, it is possible that "application/ttaf+xml" may describe content that
+ has security implications beyond those described here. However, if the
+ processor follows only the normative semantics of the published
+ specification, this content will be outside TT AF namespaces and may be
+ ignored. Only in the case where the processor recognizes and processes the
+ additional content, or where further processing of that content is dispatched
+ to other processors, would security issues potentially arise. And in that
+ case, they would fall outside the domain of this registration document.</p>
+ </dd>
+ <dt class="label">Interoperability considerations:</dt>
+ <dd>
+ <p>The published specification describes processing semantics that dictate
+ behavior that must be followed when dealing with, among other things,
+ unrecognized elements and attributes, both in TT AF namespaces and in other
+ namespaces.</p>
+ <p>Because TT AF is extensible, conformant "application/ttaf+xml" processors
+ must expect that content received is well-formed XML, but it cannot be
+ guaranteed that the content is valid to a particular DTD or Schema or that
+ the processor will recognize all of the elements and attributes in the
+ document.</p>
+ </dd>
+ <dt class="label">Published specification:</dt>
+ <dd>
+ <p>This media type registration is extracted from Appendix <a
+ href="#media-type-registration"><b>D Media Type Registration</b></a> of the
+ <a href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text (TT) Authoring Format
+ 1.0 - Distribution Format Exchange Profile (DFXP)</a> specification.</p>
+ </dd>
+ <dt class="label">Additional information:</dt>
+ <dd>
+ <p>None.</p>
+ </dd>
+ <dt class="label">Person & email address to contact for further
+ information:</dt>
+ <dd>
+ <p>Glenn Adams (public-tt@w3.org)</p>
+ </dd>
+ <dt class="label">Intended usage:</dt>
+ <dd>
+ <p>COMMON</p>
+ </dd>
+ <dt class="label">Author/Change controller:</dt>
+ <dd>
+ <p>The published specification is a work product of the World Wide Web
+ Consortium's Timed Text (TT) Working Group. The W3C has change control over
+ this specification.</p>
+ </dd>
+ </dl>
+ </div>
+ <div class="div1">
+ <h2><a name="references" id="references"></a>E References</h2>
+ <p><em>This appendix is normative.</em></p>
+ <dl>
+ <dt class="label"><a name="css2" id="css2"></a>CSS2</dt>
+ <dd>Bert Bos et al., <a
+ href="http://www.w3.org/TR/1998/REC-CSS2-19980512/"><cite>Cascading Style
+ Sheets, Level 2</cite></a>, W3C Recommendation, 12 May 1998. (See <a
+ href="http://www.w3.org/TR/1998/REC-CSS2-19980512/">http://www.w3.org/TR/1998/REC-CSS2-19980512/</a>.)</dd>
+ <dt class="label"><a name="gps" id="gps"></a>GPS</dt>
+ <dd><a href="http://tycho.usno.navy.mil/gpsinfo.html"><cite>Global Positioning
+ System</cite></a>, US Naval Observatory. (See <a
+ href="http://tycho.usno.navy.mil/gpsinfo.html">http://tycho.usno.navy.mil/gpsinfo.html</a>.)</dd>
+ <dt class="label"><a name="mime-media" id="mime-media"></a>MIME</dt>
+ <dd>Ned Freed and Nathaniel Borenstein, <a
+ href="http://www.rfc-editor.org/rfc/rfc2046.txt"><cite>Multipurpose Internet
+ Mail Extensions (MIME) Part Two: Media Types</cite></a>, RFC 2046, November
+ 1996, IETF.(See <a
+ href="http://www.rfc-editor.org/rfc/rfc2046.txt">http://www.rfc-editor.org/rfc/rfc2046.txt</a>.)</dd>
+ <dt class="label"><a name="rng" id="rng"></a>RELAX NG</dt>
+ <dd>ISO/IEC 19757-2, <a href="http://www.iso.org/"><cite>Information technology
+ – Document Schema Definition Language (DSDL) – Part 2: Regular-grammar-based
+ validation – RELAX NG</cite></a>, International Organization for
+ Standardization (ISO).</dd>
+ <dt class="label"><a name="smil21" id="smil21"></a>SMIL 2.1</dt>
+ <dd>Dick Bultermann, et al., <a
+ href="http://www.w3.org/TR/2005/REC-SMIL2-20051213/"><cite>Synchronized
+ Multimedia Integration Language (SMIL 2.1)</cite></a>, W3C Recommendation, 13
+ December 2005. (See <a
+ href="http://www.w3.org/TR/2005/REC-SMIL2-20051213/">http://www.w3.org/TR/2005/REC-SMIL2-20051213/</a>.)</dd>
+ <dt class="label"><a name="smpte12m" id="smpte12m"></a>SMPTE 12M</dt>
+ <dd>ANSI/SMPTE 12M, <a href="http://www.smpte.org/"><cite>Television, Audio and
+ Film – Time and Control Code</cite></a>, SMPTE Standard.</dd>
+ <dt class="label"><a name="srgb" id="srgb"></a>SRGB</dt>
+ <dd>IEC 61966-2-1, <a href="http://www.iec.ch/"><cite>Multimedia systems and
+ equipment – Colour measurement and management – Part 2-1: Colour management –
+ Default RGB colour space – sRGB</cite></a>, International Electrotechnical
+ Commission (IEC).</dd>
+ <dt class="label"><a name="uaag" id="uaag"></a>UAAG</dt>
+ <dd>Ian Jacobs, Jon Gunderson, and Eric Hansen, Eds., <a
+ href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/"><cite>User Agent
+ Accessibility Guidelines 1.0</cite></a>, W3C Recommendation, 17 December 2002.
+ (See <a
+ href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">http://www.w3.org/TR/2002/REC-UAAG10-20021217/</a>.)</dd>
+ <dt class="label"><a name="utc" id="utc"></a>UTC</dt>
+ <dd>Recommendation TF.460, <a
+ href="http://www.itu.int/rec/"><cite>Standard-Frequency and Time-Signal
+ Emissions</cite></a>, International Telecommunciations Union, Radio Sector
+ (ITU-R).</dd>
+ <dt class="label"><a name="wcag" id="wcag"></a>WCAG</dt>
+ <dd>Wendy Chisholm, Gregg Vanderheiden, and Ian Jacobs, Eds., <a
+ href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/"><cite>Web Content
+ Accessibility Guidelines 1.0</cite></a>, W3C Recommendation, 05 May 1999. (See
+ <a
+ href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/">http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/</a>.)</dd>
+ <dt class="label"><a name="xml11" id="xml11"></a>XML 1.1</dt>
+ <dd>Tim Bray, et al. <a
+ href="http://www.w3.org/TR/2004/REC-xml11-20040204/"><cite>Extensible Markup
+ Language (XML) 1.1</cite></a>, W3C Recommendation, 04 February 2004, updated 15
+ Apr 2004. (See <a
+ href="http://www.w3.org/TR/2004/REC-xml11-20040204/">http://www.w3.org/TR/2004/REC-xml11-20040204/</a>.)</dd>
+ <dt class="label"><a name="xmlid" id="xmlid"></a>XML ID</dt>
+ <dd>Jonathan Marsh, Daniel Veillard, Norman Walsh, Eds., <a
+ href="http://www.w3.org/TR/2005/REC-xml-id-20050909/"><cite>xml:id Version
+ 1.0</cite></a>, W3C Recommendation, 09 September 2005. (See <a
+ href="http://www.w3.org/TR/2005/REC-xml-id-20050909/">http://www.w3.org/TR/2005/REC-xml-id-20050909/</a>.)</dd>
+ <dt class="label"><a name="xml-media" id="xml-media"></a>XML Media</dt>
+ <dd>Makato Murata, Simon St. Laurent, Kan Khon, <a
+ href="http://www.rfc-editor.org/rfc/rfc3023.txt"><cite>XML Media
+ Types</cite></a>, RFC 3023, January 2001, IETF.(See <a
+ href="http://www.rfc-editor.org/rfc/rfc3023.txt">http://www.rfc-editor.org/rfc/rfc3023.txt</a>.)</dd>
+ <dt class="label"><a name="infoset" id="infoset"></a>XML InfoSet</dt>
+ <dd>John Cowan and Richard Tobin, <a
+ href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/"><cite>XML
+ Information Set (Second Edition)</cite></a>, W3C Recommendation, 04 February
+ 2004. (See <a
+ href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">http://www.w3.org/TR/2004/REC-xml-infoset-20040204/</a>.)</dd>
+ <dt class="label"><a name="rfc3023" id="rfc3023"></a>XML Media Types</dt>
+ <dd>Makato Murata, et al., <a
+ href="http://www.rfc-editor.org/rfc/rfc3023.txt"><cite>XML Media
+ Types</cite></a>, RFC 3023, January 2001, IETF.(See <a
+ href="http://www.rfc-editor.org/rfc/rfc3023.txt">http://www.rfc-editor.org/rfc/rfc3023.txt</a>.)</dd>
+ <dt class="label"><a name="xmlns11" id="xmlns11"></a>XML Namespaces 1.1</dt>
+ <dd>Tim Bray, et al. <a
+ href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/"><cite>Namespaces in
+ XML 1.1</cite></a>, W3C Recommendation, 04 February 2004. (See <a
+ href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/">http://www.w3.org/TR/2004/REC-xml-names11-20040204/</a>.)</dd>
+ <dt class="label"><a name="xsd-1" id="xsd-1"></a>XML Schema Part 1</dt>
+ <dd>Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, Eds., <a
+ href="http://www.w3.org/TR/xmlschema-1/"><cite>XML Schema Part 1:
+ Structures</cite></a>, W3C Recommendation, 28 October 2004. (See <a
+ href="http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1/</a>.)</dd>
+ <dt class="label"><a name="xsd-2" id="xsd-2"></a>XML Schema Part 2</dt>
+ <dd>Paul Biron and Ashok Malhotra, <a
+ href="http://www.w3.org/TR/xmlschema-2/"><cite>XML Schema Part 2:
+ Datatypes</cite></a>, W3C Recommendation, 28 October 2004. (See <a
+ href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.)</dd>
+ <dt class="label"><a name="xsl10" id="xsl10"></a>XSL 1.0</dt>
+ <dd>Sharon Adler, Anders Berglund, et al., Eds., <a
+ href="http://www.w3.org/TR/2001/REC-xsl-20011015/"><cite>Extensible Stylesheet
+ Language, Version 1.0</cite></a>, W3C Recommendation, 15 October 2001. (See <a
+ href="http://www.w3.org/TR/2001/REC-xsl-20011015/">http://www.w3.org/TR/2001/REC-xsl-20011015/</a>.)</dd>
+ </dl>
+ </div>
+ <div class="div1">
+ <h2><a name="other-references" id="other-references"></a>F Other References
+ (Non-Normative)</h2>
+ <dl>
+ <dt class="label"><a name="cea608c" id="cea608c"></a>CEA-608-C</dt>
+ <dd>EIA/CEA-608-C, <a
+ href="http://members.ce.org/standards/StandardDetails.aspx?Id=1506"><cite>Line
+ 21 Data Services</cite></a>, EIA/CEA Standard, Consumer Electronics Association
+ (CEA).</dd>
+ <dt class="label"><a name="css3-color" id="css3-color"></a>CSS3 Color</dt>
+ <dd>Tantek Çelik and Chris Lilley, <a
+ href="http://www.w3.org/TR/2003/CR-css3-color-20030514/"><cite>CSS3 Color
+ Module</cite></a>, W3C Candidate Recommendation, 14 May 2003. (See <a
+ href="http://www.w3.org/TR/2003/CR-css3-color-20030514/">http://www.w3.org/TR/2003/CR-css3-color-20030514/</a>.)</dd>
+ <dt class="label"><a name="dcmes" id="dcmes"></a>DCMES 1.1</dt>
+ <dd>Dublin Core Metadata Initiative, <a
+ href="http://dublincore.org/documents/dces/"><cite>Dublin Core Metadata Element
+ Set, Version 1.1: Reference Description</cite></a>. (See <a
+ href="http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</a>.)</dd>
+ <dt class="label"><a name="mpeg7-5" id="mpeg7-5"></a>MPEG7-5</dt>
+ <dd>ISO/IEC 15938-5, <a href="http://www.iso.org/"><cite>Information technology
+ – Multimedia content description interface – Part 5: Multimedia description
+ schemes</cite></a>, International Organization for Standardization (ISO).</dd>
+ <dt class="label"><a name="qaf-sg" id="qaf-sg"></a>QAF SG</dt>
+ <dd>Karl Dubost, et al., <a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/"><cite>QA Framework:
+ Specifications Guidelines</cite></a>, W3C Recommendation, 17 August 2005. (See
+ <a
+ href="http://www.w3.org/TR/qaframe-spec/">http://www.w3.org/TR/qaframe-spec/</a>.)</dd>
+ <dt class="label"><a name="scheme" id="scheme"></a>SCHEME</dt>
+ <dd>Guy Steele and Gerald Sussman, <a
+ href="http://swiss.csail.mit.edu/projects/scheme/"><cite>Scheme Programming
+ Environment</cite></a>, Massachusetts Institute of Technology. (See <a
+ href="http://swiss.csail.mit.edu/projects/scheme/">http://swiss.csail.mit.edu/projects/scheme/</a>.)</dd>
+ <dt class="label"><a name="smpte170m" id="smpte170m"></a>SMPTE 170M</dt>
+ <dd>ANSI/SMPTE 170M, <a href="http://www.smpte.org/"><cite>Television –
+ Composite Analog Video Signal – NTSC for Studio Applications</cite></a>, SMPTE
+ Standard.</dd>
+ <dt class="label"><a name="svg11" id="svg11"></a>SVG 1.1</dt>
+ <dd>Jon Ferraiolo, Jun Fujisawa, Dean Jackson, Eds., <a
+ href="http://www.w3.org/TR/2003/REC-SVG11-20030114/"><cite>Scalable Vector
+ Graphics (SVG) 1.1 Specification</cite></a>, W3C Recommendation, 14 January
+ 2003. (See <a
+ href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a>.)</dd>
+ <dt class="label"><a name="ttaf1-req" id="ttaf1-req"></a>TTAF1-REQ</dt>
+ <dd>Glenn Adams, Editor, <a
+ href="http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/"><cite>Timed Text (TT)
+ Authoring Format 1.0 Use Cases and Requirements</cite></a>, W3C Working Group
+ Note, 27 April 2006. (See <a
+ href="http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/">http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/</a>.)</dd>
+ <dt class="label"><a name="xhtml10" id="xhtml10"></a>XHTML 1.0</dt>
+ <dd>Steven Pemberton, et al., <a
+ href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/"><cite>XHTML™ 1.0, The
+ Extensible Hypertext Markup Language (Second Edition)</cite></a>, W3C
+ Recommendation, 01 August 2002. (See <a
+ href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/">http://www.w3.org/TR/2002/REC-xhtml1-20020801/</a>.)</dd>
+ </dl>
+ </div>
+ <div class="div1">
+ <h2><a name="sample-code" id="sample-code"></a>G Sample Code
+ (Non-Normative)</h2>
+ <p>This appendix contains sample code, also available in a <a
+ href="scm/code.zip">ZIP Archive</a> along with related files, that implements
+ certain algorithms described by this specification. This code makes use of the
+ MIT Scheme <a href="#scheme">[SCHEME]</a> dialect of the Lisp Programming
+ Language.</p>
+ <p>The following algorithms are implemented by this code:</p>
+ <ul>
+ <li>
+ <p>Reduced XML Infoset (RXI)</p>
+ </li>
+ <li>
+ <p>Abstract Document Instance (ADI)</p>
+ </li>
+ <li>
+ <p>Time Interval Resolver (TIR)</p>
+ </li>
+ <li>
+ <p>Flow Object Transformer (FOX)</p>
+ </li>
+ <li>
+ <p>Dynamic Text Flow Processor (DTF)</p>
+ </li>
+ </ul>
+ <p>Subsequent to the sample code listings, a transcript of a sample compile,
+ load, and run session is provided.</p>
+ <div class="div2">
+ <h3><a name="code-rxi" id="code-rxi"></a>G.1 Reduced XML Infoset (RXI)
+ – <code>RXI.SCM</code></h3>
+ <div class="exampleInner">
+<pre>
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi)
+
+;
+; DFXP Reduced XML Infoset Load, Save, Transformer
+;
+
+(declare (usual-integrations))
+
+;
+; The default reverse binding for the XML namespace is represented
+; by *XML-DEFAULT-REVERSE-BINDING*.
+;
+(define *xml-default-reverse-binding*
+ '("http://www.w3.org/XML/1998/namespace" . "xml"))
+
+;
+; An RXI-BINDINGS structure consists of a BINDINGS slot that contains a
+; stack represented as a list of association lists whose keys are XMLNS name
+; prefixes and whose values are XMLNS namespace URIs. A binding for the
+; "empty" or "null" namespace is designated by a prefix whose value is "".
+;
+(define-structure
+ (rxi-bindings
+ (conc-name rxi-bindings/)
+ (constructor make-rxi-bindings (#!optional bindings)))
+ (bindings '() read-only #f))
+
+;
+; Push a list of NEW bindings onto BINDINGS.
+;
+(define (rxi-bindings/push! bindings new)
+ (set-rxi-bindings/bindings!
+ bindings
+ (cons new (rxi-bindings/bindings bindings))))
+
+;
+; Pop the list of bindings at the top of BINDINGS.
+;
+(define (rxi-bindings/pop! bindings)
+ (set-rxi-bindings/bindings!
+ bindings
+ (let ((old (rxi-bindings/bindings bindings)))
+ (if (pair? old)
+ (cdr old)
+ '()))))
+
+;
+; Look up a binding for the designated XMLNS name PREFIX in BINDINGS,
+; returning either an associated XMLNS namespace URI string or '() if
+; not found.
+;
+
+(define (rxi-bindings/lookup bindings prefix)
+ (let find
+ ((bindings (rxi-bindings/bindings bindings)))
+ (cond ((null? bindings)
+ '())
+ (else
+ (let
+ ((b (find-matching-item
+ (car bindings)
+ (lambda (b) (string=? (car b) prefix)))))
+ (if (not (false? b))
+ (cdr b)
+ (find (cdr bindings))))))))
+
+;
+; Resolve qualified name QNAME to (VALUES LOCAL NSURI) where LOCAL is
+; the local (unqualified) component of QNAME and NSURI is the
+; associated namespace URI or '() if there is no associated namepsace
+; URI, where IS-ATTRIBUTE? indicates whether the QNAME is the name of
+; an attribute or an element.
+;
+; N.B. the lack of a namespace URI is permitted only for unqualified
+; attribute names; all element names must have an associated namespace URI
+; or an error is signaled. This implies that there must exist a binding for
+; the empty (null) namespace prefix when resolving unqualified element
+; names.
+;
+(define (rxi-bindings/resolve bindings qname is-attribute?)
+ (let* ((i (string-find-next-char qname #\:))
+ (pfx (substring qname 0 (if (false? i) 0 i)))
+ (local (string-tail qname (if (false? i) 0 (+ i 1)))))
+ (values
+ local
+ (if (or (> (string-length pfx) 0) (not is-attribute?))
+ (let ((uri (rxi-bindings/lookup bindings pfx)))
+ (or uri
+ (error "unbound XMLNS prefix on prefix" pfx)))
+ '()))))
+
+;
+; An RXI-NAME structure represents the name and namespace properties of a
+; reduced XML infoset element or attribute information item and consists of
+; a local name LOCAL and an associated namespace NAMESPACE, a non-empty
+; string or '(), denoting that the name is not namespace qualified. An
+; RXI-NAME is essentially a representation of an XMLNS "expanded name".
+;
+(define-structure
+ (rxi-name (conc-name rxi-name/))
+ (local "" read-only #t)
+ (namespace '() read-only #t))
+
+;
+; Convert an RXI-NAME instance NAME to a list consisting of its constituent
+; slots.
+;
+(define (rxi-name->list name)
+ (list (rxi-name/local name)
+ (rxi-name/namespace name)))
+
+;
+; Transform an XML name IQNAME as defined by the XML package as an uninterned
+; symbol to an RXI-NAME, resolving qualified names into their XMLNS
+; "expanded name" form, where IS-ATTRIBUTE? indicates whether the QNAME is
+; the name of an attribute or an element.
+;
+(define (rxi-name/transform-from-xml iqname is-attribute? bindings)
+ (call-with-values
+ (lambda ()
+ (rxi-bindings/resolve bindings (symbol-name iqname) is-attribute?))
+ make-rxi-name))
+
+;
+; An RXI-ATTRIBUTE structure represents a reduced XML infoset attribute
+; information item and consists of a NAME represented as an RXI-NAME
+; instance and a VALUE represented as a string.
+;
+(define-structure
+ (rxi-attribute (conc-name rxi-attribute/))
+ (name '() read-only #t)
+ (value "" read-only #t))
+
+;
+; Convert an RXI-ATTRIBUTE instance ATTRIBUTE to a list consisting of its
+; constituent slots.
+;
+(define (rxi-attribute->list attribute)
+ (list (rxi-name->list (rxi-attribute/name attribute))
+ (rxi-attribute/value attribute)))
+
+;
+; Transform XML-ATTRIBUTE instance ATTRIBUTE to RXI-ATTRIBUTE instance,
+; where BINDINGS is the current bindings stack.
+;
+(define (rxi-attribute/transform-from-xml attribute bindings)
+ (let ((n (car attribute)) (v (cdr attribute)))
+ (make-rxi-attribute (rxi-name/transform-from-xml n #t bindings) v)))
+
+;
+; An RXI-ELEMENT structure represents a reduced XML infoset element
+; information item and consists of a NAME represented as an RXI-NAME
+; instance, a possibly empty set of ATTRIBUTES represented as a list of
+; RXI-ATTRIBUTE instances, and a possibly empty set of CHILDREN represented
+; as a list of string or RXI-ELEMENT instances.
+;
+(define-structure
+ (rxi-element (conc-name rxi-element/))
+ (name "" read-only #t)
+ (attributes '() read-only #f)
+ (children '() read-only #f))
+
+;
+; Convert an RXI-ELEMENT instance ELEMENT to a list consisting of its
+; constituent slots.
+;
+(define (rxi-element->list element)
+ (list (rxi-name->list (rxi-element/name element))
+ (map
+ rxi-attribute->list
+ (rxi-element/attributes element))
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (rxi-element->list c)))
+ (rxi-element/children element))))
+
+;
+; Determine if XML-ATTRIBUTE instance ATTRIBUTE, represented as a pair
+; (NAME . VALUE), is an XMLNS attribute or not, i.e., has a qualified name
+; whose prefix is "xmlns" or is the unqualified name "xmlns".
+;
+(define (namespace-attribute? attribute)
+ (let ((qname (symbol-name (car attribute))))
+ (and (string-prefix? "xmlns" qname)
+ (or (= (string-length qname) 5)
+ (let ((i (string-find-next-char qname #\:)))
+ (and (not (false? i)) (= i 5)))))))
+
+;
+; Given a list ATTRIBUTES of XML-ATTRIBUTE instances consisting only of
+; XMLNS attributes as determined by NAMESPACE-ATTRIBUTE? above, return a set
+; of bindings as an association list whose keys are namespace prefixes and
+; whose values are the associated namespace URIs.
+;
+(define (extract-namespace-bindings attributes)
+ (map
+ (lambda (a)
+ (let ((qname (symbol-name (car a))))
+ (if (= (string-match-forward qname "xmlns") 5)
+ (cons
+ (if (>= (string-length qname) 6)
+ (string-tail qname 6)
+ "")
+ (cdr a))
+ (error "Invalid namespace attribute" qname))))
+ attributes))
+
+;
+; Transform XML-ELEMENT instance ELEMENT to RXI-ELEMENT instance,
+; where BINDINGS is the current bindings stack.
+;
+(define (rxi-element/transform-from-xml element bindings)
+ (let* ((attributes
+ (xml-element-attributes element))
+ (ns-attributes
+ (keep-matching-items attributes namespace-attribute?))
+ (other-attributes
+ (keep-matching-items
+ attributes
+ (lambda (a) (not (namespace-attribute? a))))))
+ (rxi-bindings/push! bindings (extract-namespace-bindings ns-attributes))
+ (let ((rxi-element
+ (make-rxi-element
+ (rxi-name/transform-from-xml
+ (xml-element-name element) #f bindings)
+ (map
+ (lambda (a) (rxi-attribute/transform-from-xml a bindings))
+ other-attributes)
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (rxi-element/transform-from-xml c bindings)))
+ (xml-element-contents element)))))
+ (rxi-bindings/pop! bindings)
+ rxi-element)))
+
+;
+; An RXI-DOCUMENT structure represents a reduced XML infoset document
+; information item and consists of an ANNOTATIONS association list, used for
+; internal book-keeping purposes, and an RXI-ELEMENT instance representing
+; the document's root element or '() if there is no root element.
+;
+(define-structure
+ (rxi-document (conc-name rxi-document/))
+ (annotations '() read-only #f)
+ (root '() read-only #f))
+
+;
+; Look up value of annotation named KEY on RXI-DOCUMENT instance DOCUMENT.
+;
+(define (rxi-document/annotation document key)
+ (assq key (rxi-document/annotations document)))
+
+;
+; Add annotation (KEY . VALUE) to RXI-DOCUMENT instance DOCUMENT.
+;
+(define (set-rxi-document/annotation! document key value)
+ (set-rxi-document/annotations! document (cons (cons key value) (rxi-document/annotations document))))
+
+;
+; Remove all annotations named KEY from RXI-DOCUMENT instance DOCUMENT.
+;
+(define (rxi-document/remove-annotation! document key)
+ (del-assq! key (rxi-document/annotations document)))
+
+;
+; Convert an RXI-DOCUMENT instance DOCUMENT to a list consisting of its
+; constituent slots.
+;
+(define (rxi-document->list document)
+ (list (rxi-document/annotations document)
+ (rxi-element->list (rxi-document/root document))))
+
+;
+; Transform XML-DOCUMENT instance DOCUMENT to RXI-DOCUMENT instance.
+;
+(define (rxi-document/transform-from-xml document)
+ (let
+ ((bindings
+ (make-rxi-bindings
+ (list (list (cons (cdr *xml-default-reverse-binding*)
+ (car *xml-default-reverse-binding*)))))))
+ (make-rxi-document
+ '()
+ (rxi-element/transform-from-xml (xml-document-root document) bindings))))
+
+;
+; Load XML document instance from PATHNAME using XML package's XML parser,
+; then transform resulting XML-DOCUMENT instance to an RXI-DOCUMENT
+; instance.
+;
+(define (rxi-document/load pathname)
+ (rxi-document/transform-from-xml
+ (call-with-input-file pathname
+ (lambda (port)
+ (parse-xml-document (input-port->parser-buffer port))))))
+
+;
+; An RXI-REVERSE-BINDINGS structure consists of a REVERSE-BINDINGS slot
+; that contains an association list whose keys are XMLNS namespace URIs and
+; whose values are XMLNS name prefixes. The URI component of a reverse
+; binding entry MUST be a non-empty string.
+;
+(define-structure
+ (rxi-reverse-bindings
+ (conc-name rxi-reverse-bindings/)
+ (constructor make-rxi-reverse-bindings (#!optional reverse-bindings)))
+ (reverse-bindings '() read-only #f))
+
+(define (rxi-reverse-bindings/lookup reverse-bindings uri)
+ (if (and (string? uri)
+ (not (string-null? uri)))
+ (let find
+ ((rb (rxi-reverse-bindings/reverse-bindings reverse-bindings)))
+ (cond ((null? rb)
+ '())
+ (else
+ (let
+ ((b (car rb)))
+ (if (string=? (car b) uri)
+ (cdr b)
+ (find (cdr rb)))))))
+ (error "non-string or empty XMLNS namespace URI" uri)))
+
+(define (rxi-reverse-bindings/generate-prefix reverse-bindings)
+ (let ((g (lambda () (string-downcase (symbol-name (generate-uninterned-symbol)))))
+ (rb (rxi-reverse-bindings/reverse-bindings reverse-bindings)))
+ (let loop
+ ((pfx '()))
+ (cond ((null? pfx)
+ (loop (g)))
+ (else
+ (if (not (find-matching-item
+ rb
+ (lambda (b)
+ (and (string? (cdr b)) (string=? (cdr b) pfx)))))
+ pfx
+ (loop (g))))))))
+
+(define (rxi-reverse-bindings/add! reverse-bindings uri pfx)
+ (set-rxi-reverse-bindings/reverse-bindings!
+ reverse-bindings
+ (cons (cons uri pfx) (rxi-reverse-bindings/reverse-bindings reverse-bindings))))
+
+(define (rxi-reverse-bindings/sort! reverse-bindings)
+ (let
+ ((rb (rxi-reverse-bindings/reverse-bindings reverse-bindings)))
+ (set-rxi-reverse-bindings/reverse-bindings!
+ reverse-bindings
+ (sort rb
+ (lambda (x y)
+ (string<? (cdr x) (cdr y)))))))
+
+(define (rxi-reverse-bindings/normalize-preferred preferred-reverse-bindings)
+ (let ((rbt (make-string-hash-table (length preferred-reverse-bindings)))
+ (xrb *xml-default-reverse-binding*))
+ (let loop
+ ((prb preferred-reverse-bindings))
+ (cond ((null? prb)
+ (if (not (hash-table/get rbt (car xrb) #f))
+ (hash-table/put! rbt (car xrb) (cdr xrb)))
+ (hash-table->alist rbt))
+ (else
+ (let ((b (car prb)))
+ (if (not (pair? b))
+ (error "preferred reverse binding not a pair" b)
+ (let ((u (car b))
+ (p (cdr b)))
+ (if (not (hash-table/get rbt u #f))
+ (hash-table/put! rbt u p))
+ (loop (cdr prb))))))))))
+
+;
+; Transform an RXI-NAME instance NAME to an XML name IQNAME as defined by the
+; XML package as an uninterned symbol, where IS-ATTRIBUTE? indicates whether
+; the IQNAME is the name of an attribute or an element, and where REVERSE-BINDINGS
+; is the current reverse bindings.
+;
+(define (rxi-name/transform-to-xml name is-attribute? reverse-bindings)
+ (let ((uri (rxi-name/namespace name))
+ (loc (rxi-name/local name)))
+ (xml-intern
+ (if (null? uri)
+ loc
+ (let ((pfx (rxi-reverse-bindings/lookup reverse-bindings uri)))
+ (if (string-null? pfx)
+ loc
+ (string-append
+ pfx
+ (string-append ":" loc))))))))
+
+;
+; Transform RXI-ATTRIBUTE instance ATTRIBUTE to XML-ATTRIBUTE instance.
+;
+(define (rxi-attribute/transform-to-xml attribute reverse-bindings)
+ (cons
+ (rxi-name/transform-to-xml (rxi-attribute/name attribute) #t reverse-bindings)
+ (rxi-attribute/value attribute)))
+
+(define (maybe-add-reverse-binding! reverse-bindings name)
+ (let ((uri (rxi-name/namespace name)))
+ (if (not (null? uri))
+ (if (not (rxi-reverse-bindings/lookup reverse-bindings uri))
+ (rxi-reverse-bindings/add! reverse-bindings uri (rxi-reverse-bindings/generate-prefix reverse-bindings))))))
+
+(define (rxi-element/collect-reverse-bindings element reverse-bindings)
+ ;; collect element's binding
+ (maybe-add-reverse-binding! reverse-bindings (rxi-element/name element))
+ ;; collect attribute reverse-bindings
+ (let ((attributes (rxi-element/attributes element)))
+ (for-each
+ (lambda (a)
+ (maybe-add-reverse-binding! reverse-bindings (rxi-attribute/name a)))
+ attributes))
+ ;; collect childrens' reverse bindings
+ (let ((children (rxi-element/children element)))
+ (for-each
+ (lambda (c)
+ (if (not (string? c))
+ (rxi-element/collect-reverse-bindings c reverse-bindings)))
+ children)))
+
+;
+; Transform RXI-ELEMENT instance ELEMENT to XML-ELEMENT instance.
+;
+(define (rxi-element/transform-to-xml element reverse-bindings)
+ (make-xml-element
+ (rxi-name/transform-to-xml (rxi-element/name element) #f reverse-bindings)
+ (map
+ (lambda (a)
+ (rxi-attribute/transform-to-xml a reverse-bindings))
+ (rxi-element/attributes element))
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (rxi-element/transform-to-xml c reverse-bindings)))
+ (rxi-element/children element))))
+
+;
+; Add XMLNS attributes that correspond with REVERSE-BINDINGS to the root
+; element of XML-DOCUMENT instance DOCUMENT. If DOCUMENT has no root
+; element, then do nothing.
+;
+(define (xml-document-add-bindings! document reverse-bindings)
+ (let ((root (xml-document-root document)))
+ (if (not (null? root))
+ (set-xml-element-attributes!
+ root
+ (append
+ (xml-element-attributes root)
+ (map
+ (lambda (b)
+ (let*
+ ((prefix (cdr b))
+ (ns-attr-name
+ (if (string-null? prefix)
+ "xmlns"
+ (string-append "xmlns:" prefix))))
+ (cons (xml-intern ns-attr-name) (car b))))
+ (rxi-reverse-bindings/reverse-bindings reverse-bindings)))))))
+
+;
+; Collect
+;
+(define (rxi-document/collect-reverse-bindings document reverse-bindings)
+ (let ((root (rxi-document/root document)))
+ (if (not (null? root))
+ (rxi-element/collect-reverse-bindings root reverse-bindings))
+ (rxi-reverse-bindings/sort! reverse-bindings)
+ reverse-bindings))
+
+;
+; Transform RXI-DOCUMENT instance DOCUMENT to XML-DOCUMENT instance.
+;
+(define (rxi-document/transform-to-xml document preferred-reverse-bindings)
+ (let
+ ((reverse-bindings
+ (make-rxi-reverse-bindings
+ (rxi-reverse-bindings/normalize-preferred preferred-reverse-bindings))))
+ (rxi-document/collect-reverse-bindings document reverse-bindings)
+ (let
+ ((xml-document
+ (make-xml-document
+ '() ; declaration
+ '() ; misc-1
+ '() ; dtd
+ '() ; misc-2
+ (rxi-element/transform-to-xml
+ (rxi-document/root document) reverse-bindings)
+ '()))) ; misc-3
+ (xml-document-add-bindings! xml-document reverse-bindings)
+ xml-document)))
+
+;
+; Save RXI-DOCUMENT instance DOCUMENT by transforming to an XML-DOCUMENT
+; instance and serializing to PATHNAME using XML package's document serializer,
+; where optional argument PREFERRED-REVERSE-BINDINGS, if specified, consists
+; of an association list whose keys are namespace URIs and values are the
+; preferred namespace prefixes to use to designate those namespaces.
+;
+; If a namepsace URI appears in DOCUMENT and it has no preferred binding
+; specified, then a prefix is generated unless the namespace URI is
+; "http://www.w3.org/XML/1998/namespace", in which case the prefix "xml" is
+; used.
+;
+(define (rxi-document/save document pathname #!optional preferred-reverse-bindings)
+ (let
+ ((xml-document
+ (rxi-document/transform-to-xml
+ document
+ (if (default-object? preferred-reverse-bindings)
+ '()
+ preferred-reverse-bindings))))
+ (call-with-output-file pathname
+ (lambda (port)
+ (write-xml xml-document port)))))
+</pre>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="code-adi" id="code-adi"></a>G.2 Abstract Document Instance (ADI)
+ – <code>ADI.SCM</code></h3>
+ <div class="exampleInner">
+<pre>
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi)
+
+;
+; DFXP Abstract Document Instance Load, Save, Transformer
+;
+
+(declare (usual-integrations))
+
+(define *dfxp-preferred-reverse-bindings*
+ '(("http://www.w3.org/2006/10/ttaf1" . "")
+ ("http://www.w3.org/2006/10/ttaf1#parameter" . "ttp")
+ ("http://www.w3.org/2006/10/ttaf1#style" . "tts")
+ ("http://www.w3.org/2006/10/ttaf1#style-extension" . "ttsx")
+ ("http://www.w3.org/2006/10/ttaf1#metadata" . "ttm")
+ ("http://www.w3.org/2006/10/ttaf1#metadata-extension" . "ttmx")))
+
+(define *dfxp-namespaces-table*
+ (let ((t (make-string-hash-table)))
+ (for-each
+ (lambda (b)
+ (hash-table/put! t (car b) #t))
+ *dfxp-preferred-reverse-bindings*)
+ t))
+
+(define *dfxp-empty-element-types*
+ '(("br" . "http://www.w3.org/2006/10/ttaf1")
+ ("metadata" . "http://www.w3.org/2006/10/ttaf1")))
+
+(define (in-per-element-namespace? attr)
+ (let* ((name (rxi-attribute/name attr))
+ (namespace (rxi-name/namespace name)))
+ (null? namespace)))
+
+(define (in-dfxp-namespace? name)
+ (hash-table/get *dfxp-namespaces-table* (rxi-name/namespace name) #f))
+
+(define (in-xml-namespace? name)
+ (string=? (rxi-name/namespace name) (car *xml-default-reverse-binding*)))
+
+(define (in-dfxp-or-xml-namespace? name)
+ (or (in-dfxp-namespace? name)
+ (in-xml-namespace? name)))
+
+(define (empty-dfxp-element-type? elt)
+ (let* ((name (rxi-element/name elt))
+ (local (rxi-name/local name))
+ (namespace (rxi-name/namespace name)))
+ (find-matching-item
+ *dfxp-empty-element-types*
+ (lambda (n)
+ (and (string=? local (car n))
+ (string=? namespace (cdr n)))))))
+
+(define (only-whitespace-children? elt)
+ (let ((children (rxi-element/children elt)))
+ (not
+ (find-matching-item
+ children
+ (lambda (c)
+ (or (not (string? c))
+ (string-find-next-char-in-set c char-set:not-whitespace)))))))
+
+(define (rxi-document/adi-transform-element elt)
+ ;; prune and transform children
+ (set-rxi-element/children!
+ elt
+ (delete-matching-items
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (if (not (in-dfxp-namespace? (rxi-element/name c)))
+ '()
+ (rxi-document/adi-transform-element c))))
+ (rxi-element/children elt))
+ null?))
+ ;; prune remaining children if empty element type and only whitespace remains
+ (if (and (empty-dfxp-element-type? elt)
+ (only-whitespace-children? elt))
+ (set-rxi-element/children! elt '()))
+ ;; prune foreign namespace attributes
+ (set-rxi-element/attributes!
+ elt
+ (delete-matching-items
+ (rxi-element/attributes elt)
+ (lambda (a)
+ (not (or (in-per-element-namespace? a)
+ (in-dfxp-or-xml-namespace? (rxi-attribute/name a)))))))
+ elt)
+
+(define (rxi-document/adi-transform document)
+ (if (not (null? (rxi-document/annotation document 'adi-transform)))
+ (warn "Document already transformed, ignoring re-transform.")
+ (let ((root (rxi-document/root document)))
+ (set-rxi-document/root! document (rxi-document/adi-transform-element root))
+ (set-rxi-document/annotation! document 'adi-transform #t)))
+ document)
+
+;
+; Load TT AF document instance from PATHNAME using RXI loader,
+; then transform resulting RXI-DOCUMENT instance to an ADI-DOCUMENT
+; instance.
+;
+(define (adi-document/load pathname)
+ (rxi-document/adi-transform
+ (rxi-document/load pathname)))
+
+;
+; Save ADI-DOCUMENT instance DOCUMENT, which was created by ADI-DOCUMENT/LOAD,
+; to PATHNAME using underlying RXI-DOCUMENT's document serializer,
+; where optional argument OTHER-REVERSE-BINDINGS, if specified, consists
+; of an association list whose keys are namespace URIs and values are the
+; namespace prefixes to use to designate those namespaces.
+;
+; By default the set of refeverse bindings defined by *DFXP-PREFERRED-REVERSE-BINDING*
+; are used when serializaing. However, reverse bindings specified by using
+; OTHER-REVERSE-BINDINGS take precedence, overriding default reverse bindings.
+;
+(define (adi-document/save document pathname #!optional other-reverse-bindings)
+ (rxi-document/save document pathname
+ (if (default-object? other-reverse-bindings)
+ *dfxp-preferred-reverse-bindings*
+ (append other-reverse-bindings *dfxp-preferred-reverse-bindings*))))
+</pre>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="code-tir" id="code-tir"></a>G.3 Time Interval Resolver (TIR)
+ – <code>TIR.SCM</code></h3>
+ <div class="exampleInner">
+<pre>
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi tir)
+
+;;;; DFXP Timing Interval Resolver
+
+(declare (usual-integrations))
+
+;
+; NOT YET IMPLEMENTED - TO BE PROVIDED PRIOR TO PROPOSED RECOMMENDATION PHASE
+;
+
+(define (adi-document/tir-transform document) document)
+</pre>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="code-fox" id="code-fox"></a>G.4 Flow Object Transformer (FOX)
+ – <code>FOX.SCM</code></h3>
+ <div class="exampleInner">
+<pre>
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi tir)
+
+;;;; DFXP Timing Interval Resolver
+
+(declare (usual-integrations))
+
+;
+; NOT YET IMPLEMENTED - TO BE PROVIDED PRIOR TO PROPOSED RECOMMENDATION PHASE
+;
+
+(define (adi-document/tir-transform document) document)
+</pre>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="code-dtf" id="code-dtf"></a>G.5 Dynamic Text Flow Processor (DTF)
+ – <code>DTF.SCM</code></h3>
+ <div class="exampleInner">
+<pre>
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi tir dtf)
+
+;;;; Dynamic Text Flow Processor
+
+(declare (usual-integrations))
+
+;
+; NOT YET IMPLEMENTED - TO BE PROVIDED PRIOR TO PROPOSED RECOMMENDATION PHASE
+;
+
+(define (adi-document/dtf-process document) document)
+</pre>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="code-run" id="code-run"></a>G.6 Sample Compile, Load, and Run
+ Session</h3>
+ <p>The following transcript shows a sample compile, load, and run session of
+ the sample code, where the following steps are performed:</p>
+ <ol type="1">
+ <li>
+ <p>Start scheme using Edwin editor (included with MIT Scheme).</p>
+ </li>
+ <li>
+ <p>Change working directory to sample code directory.</p>
+ </li>
+ <li>
+ <p>Compile DFXP optional package by loading <code>compile.scm</code>.</p>
+ </li>
+ <li>
+ <p>Load DFXP optional package by loading <code>load.scm</code>.</p>
+ </li>
+ <li>
+ <p>Dump world identity to show that the just compiled, DFXP optional
+ package has been loaded (MIT Scheme SOS, CREF, and XML optional packages
+ are also loaded a side effect.)</p>
+ </li>
+ <li>
+ <p>Load DFXP document instance using <code>ADI-DOCUMENT/LOAD</code>
+ function and save resulting <code>ADI-DOCUMENT</code> instance into
+ variable <code>D</code>.</p>
+ </li>
+ <li>
+ <p>Convert loaded <code>ADI-DOCUMENT</code> into a list structure and
+ pretty print this structure using <code>PP</code> environment function.</p>
+ </li>
+ <li>
+ <p>Serialize loaded <code>ADI-DOCUMENT</code> to file
+ <code>out.xml</code>.</p>
+ </li>
+ <li>
+ <p>Exit scheme interpreter.</p>
+ </li>
+ </ol>
+ <p>The forms to be entered to accomplish the above tasks are depicted in
+ boldface.</p>
+ <div class="exampleInner">
+<pre>
+Scheme saved on Tuesday June 18, 2002 at 12:25:05 AM
+ Release 7.7.1
+ Microcode 14.9
+ Runtime 15.1
+ Win32 1.6
+ SF 4.40
+ Liar (Intel i386) 4.115
+ Edwin 3.112
+;You are in an interaction window of the Edwin editor.
+;Type C-h for help. C-h m will describe some commands.
+;Package: (user)
+<span class="strong">(cd "/work/dfxp/scm")</span>
+;Value 12: #[pathname 12 "c:\\work\\dfxp\\scm\\"]
+<span class="strong">(load "compile")</span>
+;Loading "compile.scm"
+;Loading "load.scm"
+;Loading "load.scm"
+;Loading "sos-w32.pkd" -- done
+;Loading "slot.com" -- done
+;Loading "class.com" -- done
+;Loading "instance.com" -- done
+;Loading "method.com" -- done
+;Loading "printer.com" -- done
+;Loading "macros.com" -- done
+ -- done
+;Loading "xml-w32.pkd" -- done
+;Loading "xml-struct.com" -- done
+;Loading "xml-chars.com" -- done
+;Loading "xml-parser.com" -- done
+;Loading "xml-output.com" -- done
+ -- done
+;Loading "make.com" -- done
+;Loading "cref-w32.pkd" -- done
+;Loading "mset.com" -- done
+;Loading "object.com" -- done
+;Loading "toplev.com" -- done
+;Loading "anfile.com" -- done
+;Loading "conpkg.com" -- done
+;Loading "forpkg.com" -- done
+;Loading "redpkg.com" -- done
+;Generating "rxi.bin" because of: "rxi.scm"
+Syntax file: "rxi.scm" "rxi.bin"
+ Read...
+ Time taken: .031 (process time); .031 (real time)
+ Syntax...
+ Time taken: .032 (process time); .031 (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+;Warning: Unreferenced bound variable: is-attribute? (rxi-name/transform-to-xml)
+ Time taken: .015 (process time); .016 (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "rxi.ext" -- done
+;Dumping "rxi.bin" -- done
+;Generating "rxi.com" because of: "rxi.bin"
+Compile File: "rxi.bin" => "rxi.com"
+;Loading "rxi.bin" -- done
+ Compiling procedure: rxi-bindings/bindings...
+ Compiling procedure: set-rxi-bindings/bindings!...
+ Compiling procedure: rxi-bindings/push!...
+ Compiling procedure: rxi-bindings/pop!...
+ Compiling procedure: rxi-bindings/lookup...
+ Compiling procedure: rxi-bindings/resolve...
+ Compiling procedure: rxi-name/local...
+ Compiling procedure: rxi-name/namespace...
+ Compiling procedure: rxi-name->list...
+ Compiling procedure: rxi-name/transform-from-xml...
+ Compiling procedure: rxi-attribute/name...
+ Compiling procedure: rxi-attribute/value...
+ Compiling procedure: rxi-attribute->list...
+ Compiling procedure: rxi-attribute/transform-from-xml...
+ Compiling procedure: rxi-element/name...
+ Compiling procedure: rxi-element/attributes...
+ Compiling procedure: rxi-element/children...
+ Compiling procedure: set-rxi-element/attributes!...
+ Compiling procedure: set-rxi-element/children!...
+ Compiling procedure: rxi-element->list...
+ Compiling procedure: namespace-attribute?...
+ Compiling procedure: extract-namespace-bindings...
+ Compiling procedure: rxi-element/transform-from-xml...
+ Compiling procedure: rxi-document/annotations...
+ Compiling procedure: rxi-document/root...
+ Compiling procedure: set-rxi-document/annotations!...
+ Compiling procedure: set-rxi-document/root!...
+ Compiling procedure: rxi-document/annotation...
+ Compiling procedure: set-rxi-document/annotation!...
+ Compiling procedure: rxi-document/remove-annotation!...
+ Compiling procedure: rxi-document->list...
+ Compiling procedure: rxi-document/transform-from-xml...
+ Compiling procedure: rxi-document/load...
+ Compiling procedure: rxi-reverse-bindings/reverse-bindings...
+ Compiling procedure: set-rxi-reverse-bindings/reverse-bindings!...
+ Compiling procedure: rxi-reverse-bindings/lookup...
+ Compiling procedure: rxi-reverse-bindings/generate-prefix...
+ Compiling procedure: rxi-reverse-bindings/add!...
+ Compiling procedure: rxi-reverse-bindings/sort!...
+ Compiling procedure: rxi-reverse-bindings/normalize-preferred...
+ Compiling procedure: rxi-name/transform-to-xml...
+ Compiling procedure: rxi-attribute/transform-to-xml...
+ Compiling procedure: maybe-add-reverse-binding!...
+ Compiling procedure: rxi-element/collect-reverse-bindings...
+ Compiling procedure: rxi-element/transform-to-xml...
+ Compiling procedure: xml-document-add-bindings!...
+ Compiling procedure: rxi-document/collect-reverse-bindings...
+ Compiling procedure: rxi-document/transform-to-xml...
+ Compiling procedure: rxi-document/save...
+;"rxi.bci" dumped
+;Dumping "rxi.com" -- done
+;Generating "adi.bin" because of: "adi.scm"
+Syntax file: "adi.scm" "adi.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: .016 (process time); .015 (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "adi.bin" -- done
+;Generating "adi.com" because of: "adi.bin"
+Compile File: "adi.bin" => "adi.com"
+;Loading "adi.bin" -- done
+ Compiling procedure: in-per-element-namespace?...
+ Compiling procedure: in-dfxp-namespace?...
+ Compiling procedure: in-xml-namespace?...
+ Compiling procedure: in-dfxp-or-xml-namespace?...
+ Compiling procedure: empty-dfxp-element-type?...
+ Compiling procedure: only-whitespace-children?...
+ Compiling procedure: rxi-document/adi-transform-element...
+ Compiling procedure: rxi-document/adi-transform...
+ Compiling procedure: adi-document/load...
+ Compiling procedure: adi-document/save...
+;"adi.bci" dumped
+;Dumping "adi.com" -- done
+;Generating "tir.bin" because of: "tir.scm"
+Syntax file: "tir.scm" "tir.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "tir.bin" -- done
+;Generating "tir.com" because of: "tir.bin"
+Compile File: "tir.bin" => "tir.com"
+;Loading "tir.bin" -- done
+ Compiling procedure: adi-document/tir-transform...
+;"tir.bci" dumped
+;Dumping "tir.com" -- done
+;Generating "fox.bin" because of: "fox.scm"
+Syntax file: "fox.scm" "fox.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "fox.bin" -- done
+;Generating "fox.com" because of: "fox.bin"
+Compile File: "fox.bin" => "fox.com"
+;Loading "fox.bin" -- done
+ Compiling procedure: adi-document/fox-transform...
+;"fox.bci" dumped
+;Dumping "fox.com" -- done
+;Generating "dtf.bin" because of: "dtf.scm"
+Syntax file: "dtf.scm" "dtf.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "dtf.bin" -- done
+;Generating "dtf.com" because of: "dtf.bin"
+Compile File: "dtf.bin" => "dtf.com"
+;Loading "dtf.bin" -- done
+ Compiling procedure: adi-document/dtf-process...
+;"dtf.bci" dumped
+;Dumping "dtf.com" -- done
+;Loading "dtf.bin" -- done
+;Loading "fox.bin" -- done
+;Loading "tir.bin" -- done
+;Loading "adi.bin" -- done
+;Loading "rxi.bin" -- done
+;Dumping "dfxp-w32.fre" -- done
+;Dumping "dfxp-w32.pkd" -- done
+ -- done
+;Unspecified return value
+<span class="strong">(load "load")</span>
+;Loading "load.scm"
+;Loading "dfxp-w32.pkd" -- done
+;Loading "rxi.com" -- done
+;Loading "adi.com" -- done
+;Loading "tir.com" -- done
+;Loading "fox.com" -- done
+;Loading "dtf.com" -- done
+ -- done
+;Unspecified return value
+<span class="strong">(identify-world)</span>
+Scheme saved on Tuesday June 18, 2002 at 12:25:05 AM
+ Release 7.7.1
+ Microcode 14.9
+ Runtime 15.1
+ Win32 1.6
+ SF 4.40
+ Liar (Intel i386) 4.115
+ Edwin 3.112
+ SOS 1.7
+ XML 0.2
+ CREF 2.3
+ DFXP 0.8
+;Unspecified return value
+<span class="strong">(define d (adi-document/load "test.xml"))</span>
+;Value: d
+<span class="strong">(pp (rxi-document->list d))</span>
+(((adi-transform . #t))
+ (("tt" "http://www.w3.org/2006/10/ttaf1")
+ ((("profile" "http://www.w3.org/2006/10/ttaf1#parameter")
+ "http://www.w3.org/2006/10/ttaf1#profile-dfxp")
+ (("lang" "http://www.w3.org/XML/1998/namespace") "en"))
+ ("\n "
+ (("head" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("metadata" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("title" "http://www.w3.org/2006/10/ttaf1#metadata") () ("Timed Text DFXP Example"))
+ "\n "
+ (("copyright" "http://www.w3.org/2006/10/ttaf1#metadata") () ("The Authors (c) 2006"))
+ "\n "))
+ "\n "
+ (("styling" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s1")
+ (("color" "http://www.w3.org/2006/10/ttaf1#style") "white")
+ (("fontFamily" "http://www.w3.org/2006/10/ttaf1#style") "proportionalSansSerif")
+ (("fontSize" "http://www.w3.org/2006/10/ttaf1#style") "22px")
+ (("textAlign" "http://www.w3.org/2006/10/ttaf1#style") "center"))
+ ())
+ "\n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s2") (("style" ()) "s1")
+ (("color" "http://www.w3.org/2006/10/ttaf1#style") "yellow"))
+ ())
+ "\n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s1Right") (("style" ()) "s1")
+ (("textAlign" "http://www.w3.org/2006/10/ttaf1#style") "end"))
+ ())
+ " \n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s2Left") (("style" ()) "s2")
+ (("textAlign" "http://www.w3.org/2006/10/ttaf1#style") "start"))
+ ())
+ "\n "))
+ "\n "
+ (("layout" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("region" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitleArea")
+ (("style" ()) "s1")
+ (("extent" "http://www.w3.org/2006/10/ttaf1#style") "560px 62px")
+ (("padding" "http://www.w3.org/2006/10/ttaf1#style") "5px 3px")
+ (("backgroundColor" "http://www.w3.org/2006/10/ttaf1#style") "black")
+ (("displayAlign" "http://www.w3.org/2006/10/ttaf1#style") "after"))
+ ())
+ "\n "))
+ " \n "))
+ "\n "
+ (("body" "http://www.w3.org/2006/10/ttaf1")
+ ((("region" ()) "subtitleArea"))
+ ("\n "
+ (("div" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle1") (("begin" ()) "0.76s") (("end" ()) "3.45s"))
+ ("\n It seems a paradox, does it not,\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle2") (("begin" ()) "5.0s") (("end" ()) "10.0s"))
+ ("\n that the image formed on" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n the Retina should be inverted?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle3") (("begin" ()) "10.0s") (("end" ()) "16.0s") (("style" ()) "s2"))
+ ("\n It is puzzling, why is it" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n we do not see things upside-down?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle4") (("begin" ()) "17.2s") (("end" ()) "23.0s"))
+ ("\n You have never heard the Theory,"
+ (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n then, that the Brain also is inverted?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle5") (("begin" ()) "23.0s") (("end" ()) "27.0s") (("style" ()) "s2"))
+ ("\n No indeed! What a beautiful fact!\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle6a") (("begin" ()) "28.0s") (("end" ()) "34.6s") (("style" ()) "s2Left"))
+ ("\n But how is it proved?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle6b") (("begin" ()) "28.0s") (("end" ()) "34.6s") (("style" ()) "s1Right"))
+ ("\n Thus: what we call\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle7") (("begin" ()) "34.6s") (("end" ()) "45.0s") (("style" ()) "s1Right"))
+ ("\n the vertex of the Brain" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n is really its base\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle8") (("begin" ()) "45.0s") (("end" ()) "52.0s") (("style" ()) "s1Right"))
+ ("\n and what we call its base" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n is really its vertex,\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle9a") (("begin" ()) "53.5s") (("end" ()) "58.7s"))
+ ("\n it is simply a question of nomenclature.\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle9b") (("begin" ()) "53.5s") (("end" ()) "58.7s") (("style" ()) "s2"))
+ ("\n How truly delightful!\n "))
+ "\n "))
+ " \n "))
+ "\n")))
+;Unspecified return value
+<span class="strong">(adi-document/save d "out.xml")</span>
+;Unspecified return value
+<span class="strong">(exit)</span>
+</pre>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="requirements" id="requirements"></a>H Requirements
+ (Non-Normative)</h2>
+ <p>The Distribution Format Exchange Profile (DFXP) of the Timed Text Authoring
+ Format (TT AF) satisfies a subset of the requirements established by <a
+ href="#ttaf1-req">[TTAF1-REQ]</a>. The following table enumerates these
+ requirements and indicates the extent to which they are satisfied by this
+ specification, where <em>S</em> denotes a requirement is satisfied, <em>P</em>
+ denotes a requirement is partially satisfied, and <em>N</em> denotes a
+ requirement is not satisfied.</p>
+ <table summary="HTML Table" id="requirements-table" class="common">
+ <caption>
+ Table H-1 – Requirement Satisfaction
+ </caption>
+ <col width="10%" span="1" />
+ <col width="40%" span="1" />
+ <col width="10%" span="1" />
+ <tbody>
+ <tr>
+ <th rowspan="1" colspan="1">ID</th>
+ <th rowspan="1" colspan="1">Name</th>
+ <th rowspan="1" colspan="1">Status</th>
+ <th rowspan="1" colspan="1">Comments</th>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R100</td>
+ <td rowspan="1" colspan="1">Specification Format</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R101</td>
+ <td rowspan="1" colspan="1">Specification Modularity</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R102</td>
+ <td rowspan="1" colspan="1">Specification Organization</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R103</td>
+ <td rowspan="1" colspan="1">Core and Periphery</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">TT extension namespaces</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R104</td>
+ <td rowspan="1" colspan="1">Evolution of Core</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">TT extension namespaces</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R105</td>
+ <td rowspan="1" colspan="1">Ownership of Core</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">TT namespaces</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R106</td>
+ <td rowspan="1" colspan="1">Surjection of Core</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R107</td>
+ <td rowspan="1" colspan="1">Evolution of Periphery</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">TT extension namespaces</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R108</td>
+ <td rowspan="1" colspan="1">Ownership of Periphery</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Non-TT namespaces</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R109</td>
+ <td rowspan="1" colspan="1">Transformation</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Supports 3GPP, QText, RealText, SAMI</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R110</td>
+ <td rowspan="1" colspan="1">Streamable Transformation</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Progressive decoding</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R111</td>
+ <td rowspan="1" colspan="1">Accessibility – Content</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Alternative document instances</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R112</td>
+ <td rowspan="1" colspan="1">Accessibility – Authoring System</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R200</td>
+ <td rowspan="1" colspan="1">Authorability</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R201</td>
+ <td rowspan="1" colspan="1">Multiple Natural Languages</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Alternative document instances</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R202</td>
+ <td rowspan="1" colspan="1">Natural Language Coverage</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Unicode 4.0</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R203</td>
+ <td rowspan="1" colspan="1">Natural Language Association Granularity</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>xml:lang</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R204</td>
+ <td rowspan="1" colspan="1">Minimum Character Representability</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Unicode 4.0</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R205</td>
+ <td rowspan="1" colspan="1">Intrinsic and Extrinsic Text Content</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Intrinsic only</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R206</td>
+ <td rowspan="1" colspan="1">Markup Association</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Intrinsic only</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R207</td>
+ <td rowspan="1" colspan="1">Conditional Content</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R208</td>
+ <td rowspan="1" colspan="1">Flowed Text</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R209</td>
+ <td rowspan="1" colspan="1">Logical Flowed Text Vocabulary</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R210</td>
+ <td rowspan="1" colspan="1">Presentational Flowed Text Vocabulary</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">Implied mapping from logical flowed text.</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R211</td>
+ <td rowspan="1" colspan="1">Flowed Text Vocabulary Relationship</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R212</td>
+ <td rowspan="1" colspan="1">Flowed Text Vocabulary Separation</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R213</td>
+ <td rowspan="1" colspan="1">Non-Flowed Text</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R214</td>
+ <td rowspan="1" colspan="1">Non-Flowed Text Vocabulary</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R215</td>
+ <td rowspan="1" colspan="1">Hybrid Flowed and Non-Flowed Text</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R216</td>
+ <td rowspan="1" colspan="1">Hyperlinking</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">Can support via XLink</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R217</td>
+ <td rowspan="1" colspan="1">Embedded Graphics</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R218</td>
+ <td rowspan="1" colspan="1">Non-Embedded Graphics</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R219</td>
+ <td rowspan="1" colspan="1">Embedded Fonts</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R220</td>
+ <td rowspan="1" colspan="1">Non-Embedded Fonts</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R221</td>
+ <td rowspan="1" colspan="1">Descriptive Vocabulary</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>ttm:agent</code>,
+ <code>ttm:role</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R222</td>
+ <td rowspan="1" colspan="1">Embedded Audio</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R223</td>
+ <td rowspan="1" colspan="1">Non-Embedded Audio</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R290</td>
+ <td rowspan="1" colspan="1">Markup Format</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R291</td>
+ <td rowspan="1" colspan="1">Markup Format and Unicode Interaction</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R292</td>
+ <td rowspan="1" colspan="1">Extrinsic Resource References</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">No extrinsic references</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R293</td>
+ <td rowspan="1" colspan="1">Schema Validity Specification</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R300</td>
+ <td rowspan="1" colspan="1">Inline Styling</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R301</td>
+ <td rowspan="1" colspan="1">Inline Styling Form</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Inline and referential styling</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R301</td>
+ <td rowspan="1" colspan="1">Out-of-Line Styling</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R301</td>
+ <td rowspan="1" colspan="1">Out-of-Line Styling Form</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R304</td>
+ <td rowspan="1" colspan="1">Styling Prioritization</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R305</td>
+ <td rowspan="1" colspan="1">Style Parameters – Aural</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R306</td>
+ <td rowspan="1" colspan="1">Style Parameters – Visual</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports absolute position, background color,
+ color, display none, display alignment, font family, font size, font style,
+ font weight, height, line height, origin, opacity, overflow, padding
+ (before, after, start, end), text alignment, text shadow (as outline),
+ visibility, width, writing mode, z-index</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R307</td>
+ <td rowspan="1" colspan="1">Style Parameters – Temporal Fill Mode</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>tts:dynamicFlow</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R390</td>
+ <td rowspan="1" colspan="1">Style Parameter Symmetry</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R391</td>
+ <td rowspan="1" colspan="1">Style Parameter Definitions</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R392</td>
+ <td rowspan="1" colspan="1">Style Parameter Shorthands</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R401</td>
+ <td rowspan="1" colspan="1">Inline Timing</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R402</td>
+ <td rowspan="1" colspan="1">Out-of-Line Timing</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R403</td>
+ <td rowspan="1" colspan="1">Synchronization Parameters</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports begin, end, dur</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R404</td>
+ <td rowspan="1" colspan="1">Synchronization Parameter Value Spaces</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports offset values, media marker values
+ (SMPTE 12M), wallclock values</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R405</td>
+ <td rowspan="1" colspan="1">Time Containment Semantics</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports sequential, parallel</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R500</td>
+ <td rowspan="1" colspan="1">Animation Modes</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports discrete</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R501</td>
+ <td rowspan="1" colspan="1">Scroll Animation</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>tts:dynamicFlow</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R502</td>
+ <td rowspan="1" colspan="1">Highlight Animation</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1"><code><set
+ tts:backgroundColor="..."/></code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R503</td>
+ <td rowspan="1" colspan="1">Fade Transition Animation</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1"><code><set
+ tts:opacity="..."/></code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R504</td>
+ <td rowspan="1" colspan="1">Animated Style Parameters – Aural</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R505</td>
+ <td rowspan="1" colspan="1">Animated Style Parameters – Visual</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports animating background color, color,
+ display, opacity, origin, visibility</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">N506</td>
+ <td rowspan="1" colspan="1">Animated Content</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R600</td>
+ <td rowspan="1" colspan="1">Metadata Item Association</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>metadata</code>,
+ <code>Metadata.class</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R601</td>
+ <td rowspan="1" colspan="1">Metadata Item Constituents</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">Supports name, value</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R602</td>
+ <td rowspan="1" colspan="1">Metadata Item Value Representation</td>
+ <td rowspan="1" colspan="1">P</td>
+ <td rowspan="1" colspan="1">See <code>metadata</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R603</td>
+ <td rowspan="1" colspan="1">Metadata Item Extensibility</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>metadata</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R604</td>
+ <td rowspan="1" colspan="1">Metadata Item Validation</td>
+ <td rowspan="1" colspan="1">S</td>
+ <td rowspan="1" colspan="1">See <code>metadata</code></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">R690</td>
+ <td rowspan="1" colspan="1">Dublin Core Preference</td>
+ <td rowspan="1" colspan="1">N</td>
+ <td rowspan="1" colspan="1">Uses <code>ttm:copyright</code>,
+ <code>ttm:desc</code>, <code>ttm:title</code></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="div1">
+ <h2><a name="derivation" id="derivation"></a>I Vocabulary Derivation
+ (Non-Normative)</h2>
+ <p>This appendix provides information about the derivation of TT AF vocabulary,
+ separately describing derivation of elements and attributes.</p>
+ <div class="div2">
+ <h3><a name="IDA4XGQ" id="IDA4XGQ"></a>I.1 Element Derivation</h3>
+ <p>The first column of <a href="#element-vocab-derivation-table"><b>Table I-1 –
+ Elements</b></a> specifies a TT AF element vocabulary item; the second column
+ specifies the syntactic and/or semantic model on which the vocabulary item is
+ based; the third column specifies the reference that defines the model (if a
+ model is indicated); the fourth column specifies details about the derivation;
+ the last column refers to additional notes describing the nature of the
+ derivation.</p>
+ <p>In the fourth column, which describes details of derivation, a notation is
+ use to indicate the addition or removal of an attribute. For example, in the
+ derivation of the <code>tt:div</code> element, the details column includes
+ "-@class", which denotes that the <code>class</code> attribute that is
+ specified for use with the <code>xhtml:div</code> model element is not
+ specified for use with the corresponding TT AF element; in contrast, the
+ details column includes "+@begin", which denotes that a <code>begin</code>
+ attribute is added that is not specified for use with the
+ <code>xhtml:div</code> model element.</p>
+ <table summary="HTML Table" id="element-vocab-derivation-table" class="common">
+ <caption>
+ Table I-1 – Elements
+ </caption>
+ <col width="20%" span="1" />
+ <col width="17%" span="1" />
+ <col width="13%" align="center" span="1" />
+ <col width="40%" span="1" />
+ <col width="10%" align="center" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><span class="strong">Element</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Model</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Reference</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Details</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Notes</span></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-body"><code>tt:body</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:body</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@dir, -@lang, -@on*, -@title;
+ +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*;
+ content model subsetted to zero or more division (div) children, and
+ supersetted by optional metadata and animation children</td>
+ <td rowspan="1" colspan="1">1,2</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-br"><code>tt:br</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:br</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@title; +@ttm:*, +@tts:*,
+ +@xml:lang, +@xml:space; content model supersetted by optional metadata
+ and animation children for congruity with other content vocabulary</td>
+ <td rowspan="1" colspan="1">1,2</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-div"><code>tt:div</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:div</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@dir, -@lang, -@on*, -@title;
+ +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*,
+ +@xml:space; content model subsetted to zero or more paragraph (p)
+ children, and supersetted by optional metadata and animation
+ children</td>
+ <td rowspan="1" colspan="1">1,2,3</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-head"><code>tt:head</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:head</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@dir, -@lang, -@profile; +@id, +@xml:space;
+ content model changed to optional metadata children, followed by optional
+ styling child, followed by optional layout child</td>
+ <td rowspan="1" colspan="1">1,3</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-layout"><code>tt:layout</code></a></td>
+ <td rowspan="1" colspan="1"><code>fo:simple-page-master</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-metadata"><code>tt:metadata</code></a></td>
+ <td rowspan="1" colspan="1"><code>svg:metadata</code></td>
+ <td rowspan="1" colspan="1"><a href="#svg11">[SVG 1.1]</a></td>
+ <td rowspan="1" colspan="1">-@xml:base; +@ttm:*, +@xml:lang, +@xml:space;
+ content model subsetted to foreign namespace element content only (no
+ #PCDATA)</td>
+ <td rowspan="1" colspan="1">3,5</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-p"><code>tt:p</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:p</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@dir, -@lang, -@on*, -@title;
+ +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*,
+ +@xml:space; content model subsetted to zero or more span children, and
+ supersetted by optional metadata and animation children</td>
+ <td rowspan="1" colspan="1">1,2,3</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-vocabulary-region"><code>tt:region</code></a></td>
+ <td rowspan="1" colspan="1"><code>fo:region-*</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#animation-vocabulary-set"><code>tt:set</code></a></td>
+ <td rowspan="1" colspan="1"><code>svg:set</code></td>
+ <td rowspan="1" colspan="1"><a href="#svg11">[SVG 1.1]</a></td>
+ <td rowspan="1" colspan="1">-@* except begin, dur, end; +@tts:*,
+ +@xml:lang, +@xml:space</td>
+ <td rowspan="1" colspan="1">3,6</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-vocabulary-span"><code>tt:span</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:span</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@dir, -@lang, -@on*, -@title;
+ +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*,
+ +@xml:space; content model subsetted to zero or more #PCDATA or break
+ (br) children, and supersetted by optional metadata and animation
+ children</td>
+ <td rowspan="1" colspan="1">1,2,3</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#styling-vocabulary-style"><code>tt:style</code></a></td>
+ <td rowspan="1" colspan="1"><em>style specification</em></td>
+ <td rowspan="1" colspan="1"><a href="#css2">[CSS2]</a></td>
+ <td rowspan="1" colspan="1">XML representation of identified set of pairs
+ of style property name and value, with optional inclusion of other styles
+ by reference to other style elements</td>
+ <td rowspan="1" colspan="1">7</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#styling-vocabulary-styling"><code>tt:styling</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:style</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">XML representation of a set of style
+ specifications sets, each represented by a style child element</td>
+ <td rowspan="1" colspan="1">1,7</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#document-structure-vocabulary-tt"><code>tt:tt</code></a></td>
+ <td rowspan="1" colspan="1"><code>xhtml:html</code></td>
+ <td rowspan="1" colspan="1"><a href="#xhtml10">[XHTML 1.0]</a></td>
+ <td rowspan="1" colspan="1">-@dir, -@lang; +@id, +@ttp:*, +@xml:space;
+ content model subsetted by permitting body and/or head to be
+ optional</td>
+ <td rowspan="1" colspan="1">1,8</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-actor"><code>ttm:actor</code></a></td>
+ <td rowspan="1" colspan="1"><code>mpeg7:Creator</code></td>
+ <td rowspan="1" colspan="1"><a href="#mpeg7-5">[MPEG7-5]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-agent"><code>ttm:agent</code></a></td>
+ <td rowspan="1" colspan="1"><code>mpeg7:Agent</code></td>
+ <td rowspan="1" colspan="1"><a href="#mpeg7-5">[MPEG7-5]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-copyright"><code>ttm:copyright</code></a></td>
+ <td rowspan="1" colspan="1"><code>mpeg7:CopyrightString</code></td>
+ <td rowspan="1" colspan="1"><a href="#mpeg7-5">[MPEG7-5]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-desc"><code>ttm:desc</code></a></td>
+ <td rowspan="1" colspan="1"><code>svg:desc</code></td>
+ <td rowspan="1" colspan="1"><a href="#svg11">[SVG 1.1]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@style, -@xml:base</td>
+ <td rowspan="1" colspan="1">2,5,9</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-name"><code>ttm:name</code></a></td>
+ <td rowspan="1" colspan="1"><code>mpeg7:Name</code></td>
+ <td rowspan="1" colspan="1"><a href="#mpeg7-5">[MPEG7-5]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-vocabulary-title"><code>ttm:title</code></a></td>
+ <td rowspan="1" colspan="1"><code>svg:title</code></td>
+ <td rowspan="1" colspan="1"><a href="#svg11">[SVG 1.1]</a></td>
+ <td rowspan="1" colspan="1">-@class, -@style, -@xml:base</td>
+ <td rowspan="1" colspan="1">2,5,9</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <ol type="1">
+ <li>
+ <p>Derivation is indicated with respect to the strict DTD defined by <a
+ href="#xhtml10">[XHTML 1.0]</a>, §A.1.</p>
+ </li>
+ <li>
+ <p>The <code>class</code> attribute is effectively replaced by the
+ <code>style</code> attribute, which, instead of specifying an inline
+ style, refers indirectly to one or more <a
+ href="#styling-vocabulary-style"><code>style</code></a> elements that
+ define a set of style specification sets.</p>
+ </li>
+ <li>
+ <p>The <code>xml:lang</code> and <code>xml:space</code> attributes are
+ defined for all element types in order to support their inheritance
+ semantics to operate in the context of foreign namespace elements.</p>
+ </li>
+ <li>
+ <p>Derivation is conceptual (notional) only.</p>
+ </li>
+ <li>
+ <p>The <code>xml:base</code> attribute is not used since there are no
+ external references from core vocabulary.</p>
+ </li>
+ <li>
+ <p>The <code>attributeName</code> and <code>to</code> attributes of
+ <code>svg:set</code> are replaced by the direct expression of the target
+ attribute name and value by use of a <code>tts:*</code> attribute.</p>
+ </li>
+ <li>
+ <p>CSS style specification syntax is mapped to XML by use of attributes
+ defined in the TT Style Namespace.</p>
+ </li>
+ <li>
+ <p>The <code>xml:id</code> attribute is defined for use on all element
+ types.</p>
+ </li>
+ <li>
+ <p>The <code>style</code> attribute is supported only on content
+ elements.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="IDA3IHQ" id="IDA3IHQ"></a>I.2 Attribute Derivation</h3>
+ <p>The first column of <a href="#attribute-vocab-derivation-table"><b>Table I-2
+ – Attributes</b></a> specifies a TT AF attribute vocabulary item; the second
+ column specifies the syntactic and/or semantic model on which the vocabulary
+ item is based; the third column specifies the reference that defines the model
+ (if a model is indicated); the fourth column specifies details about the
+ derivation; the last column refers to additional notes describing the nature of
+ the derivation.</p>
+ <p>In the fourth column, which describes details of derivation, a notation is
+ use to indicate the addition or removal of an attribute value. For example, in
+ the derivation of the <code>timeContainer</code> attribute, the details column
+ includes "-excl", which denotes that the <code>excl</code> value that is
+ specified for use with the <code>timeContainer</code> model attribute is not
+ specified for use with the corresponding TT AF attribute; similarly, an
+ "+<em>value</em>" in the details column indicates that the attribute's values
+ have been extended to include <em>value</em>.</p>
+ <p>Only those attributes that are specified for use on more than one TT AF
+ element type are listed below. Those per-element namespace attributes that are
+ uniquely defined for a specific TT AF element type are not listed below, but
+ are considered to be part of the specific element type's derivation described
+ in <a href="#element-vocab-derivation-table"><b>Table I-1 – Elements</b></a>
+ above.</p>
+ <table summary="HTML Table" id="attribute-vocab-derivation-table"
+ class="common">
+ <caption>
+ Table I-2 – Attributes
+ </caption>
+ <col width="20%" span="1" />
+ <col width="17%" span="1" />
+ <col width="13%" align="center" span="1" />
+ <col width="40%" span="1" />
+ <col width="10%" align="center" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><span class="strong">Attribute</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Model</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Reference</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Details</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Notes</span></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#timing-attribute-begin"><code>begin</code></a></td>
+ <td rowspan="1" colspan="1"><code>begin</code></td>
+ <td rowspan="1" colspan="1"><a href="#smil21">[SMIL 2.1]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">2,3,4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#timing-attribute-dur"><code>dur</code></a></td>
+ <td rowspan="1" colspan="1"><code>dur</code></td>
+ <td rowspan="1" colspan="1"><a href="#smil21">[SMIL 2.1]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">2,3,4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#timing-attribute-end"><code>end</code></a></td>
+ <td rowspan="1" colspan="1"><code>end</code></td>
+ <td rowspan="1" colspan="1"><a href="#smil21">[SMIL 2.1]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">2,3,4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#layout-attribute-region"><code>region</code></a></td>
+ <td rowspan="1" colspan="1"><code>master-reference</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">conceptual derivation</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-style"><code>style</code></a></td>
+ <td rowspan="1" colspan="1"><code>class</code></td>
+ <td rowspan="1" colspan="1"><a href="#css2">[CSS2]</a></td>
+ <td rowspan="1" colspan="1">dereferences style specification(s)
+ directly</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#timing-attribute-timeContainer"><code>timeContainer</code></a></td>
+ <td rowspan="1" colspan="1"><code>timeContainer</code></td>
+ <td rowspan="1" colspan="1"><a href="#smil21">[SMIL 2.1]</a></td>
+ <td rowspan="1" colspan="1">-excl, -none; no default attribute value</td>
+ <td rowspan="1" colspan="1">5</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-attribute-agent"><code>ttm:agent</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">used to attribute agent of content</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#metadata-attribute-role"><code>ttm:role</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">used to attribute role of content</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-cellResolution"><code>ttp:cellResolution</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses uniform grid resolution for cell
+ based coordinates</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-clockMode"><code>ttp:clockMode</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">determines how to interpret time
+ expressions</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-frameRate"><code>ttp:frameRate</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses integral frame rate</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-frameRateMultiplier"><code>ttp:frameRateMultiplier</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">used to express non-integral, rational frame
+ rates</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-markerMode"><code>ttp:markerMode</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses marker continuity semantics</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-pixelAspectRatio"><code>ttp:pixelAspectRatio</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses pixel aspect ratio of related
+ media</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-profile"><code>ttp:profile</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses profile of TT AF used by document
+ instance</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-smpteMode"><code>ttp:smpteMode</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses frame counting (drop) modes</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-subFrameRate"><code>ttp:subFrameRate</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">expresses sub-frame rate</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-tickRate"><code>ttp:tickRate</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">used to interpret tick based time
+ expressions</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#parameter-attribute-timeBase"><code>ttp:timeBase</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">used to interpret semantics of time
+ expressions</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-backgroundColor"><code>tts:backgroundColor</code></a></td>
+ <td rowspan="1" colspan="1"><code>background-color</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">1,6</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-color"><code>tts:color</code></a></td>
+ <td rowspan="1" colspan="1"><code>color</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">initial value specified as
+ <code>transparent</code></td>
+ <td rowspan="1" colspan="1">6</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-direction"><code>tts:direction</code></a></td>
+ <td rowspan="1" colspan="1"><code>direction</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">complies with model</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-display"><code>tts:display</code></a></td>
+ <td rowspan="1" colspan="1"><code>display</code></td>
+ <td rowspan="1" colspan="1"><a href="#css2">[CSS2]</a></td>
+ <td rowspan="1" colspan="1">only auto, none, inherit</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-displayAlign"><code>tts:displayAlign</code></a></td>
+ <td rowspan="1" colspan="1"><code>display-align</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">except for name normalization, complies with
+ model</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-dynamicFlow"><code>tts:dynamicFlow</code></a></td>
+ <td rowspan="1" colspan="1"><em>none</em></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">defines scroll overflow behavior</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-extent"><code>tts:extent</code></a></td>
+ <td rowspan="1" colspan="1"><code>width</code>, <code>height</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">shorthand property</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-fontFamily"><code>tts:fontFamily</code></a></td>
+ <td rowspan="1" colspan="1"><code>font-family</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">extends generic family names</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-fontSize"><code>tts:fontSize</code></a></td>
+ <td rowspan="1" colspan="1"><code>font-size</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">1,7</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-fontStyle"><code>tts:fontStyle</code></a></td>
+ <td rowspan="1" colspan="1"><code>font-style</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">uses alias <code>reverseOblique</code> for
+ <code>backslant</code></td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-fontWeight"><code>tts:fontWeight</code></a></td>
+ <td rowspan="1" colspan="1"><code>font-weight</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">-bolder, -lighter, -<number></td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-lineHeight"><code>tts:lineHeight</code></a></td>
+ <td rowspan="1" colspan="1"><code>line-height</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">-<number>, -<space></td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-opacity"><code>tts:opacity</code></a></td>
+ <td rowspan="1" colspan="1"><code>opacity</code></td>
+ <td rowspan="1" colspan="1"><a href="#css3-color">[CSS3 Color]</a></td>
+ <td rowspan="1" colspan="1">complies with model</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-origin"><code>tts:origin</code></a></td>
+ <td rowspan="1" colspan="1"><code>top</code>, <code>left</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">shorthand property</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-overflow"><code>tts:overflow</code></a></td>
+ <td rowspan="1" colspan="1"><code>overflow</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">-auto, -error-if-overflow; scroll
+ redefined</td>
+ <td rowspan="1" colspan="1">8</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-padding"><code>tts:padding</code></a></td>
+ <td rowspan="1" colspan="1"><code>padding</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">9</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-showBackground"><code>tts:showBackground</code></a></td>
+ <td rowspan="1" colspan="1"><code>showBackground</code></td>
+ <td rowspan="1" colspan="1"><a href="#smil21">[SMIL 2.1]</a></td>
+ <td rowspan="1" colspan="1">complies with model</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-textAlign"><code>tts:textAlign</code></a></td>
+ <td rowspan="1" colspan="1"><code>text-align</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">except for name normalization, complies with
+ model</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-textDecoration"><code>tts:textDecoration</code></a></td>
+ <td rowspan="1" colspan="1"><code>text-decoration</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">except for name normalization, complies with
+ model</td>
+ <td rowspan="1" colspan="1">1,10</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-textOutline"><code>tts:textOutline</code></a></td>
+ <td rowspan="1" colspan="1"><code>text-shadow</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">11</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-unicodeBidi"><code>tts:unicodeBidi</code></a></td>
+ <td rowspan="1" colspan="1"><code>unicode-bidi</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">except for name normalization, complies with
+ model</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-visibility"><code>tts:visibility</code></a></td>
+ <td rowspan="1" colspan="1"><code>visibility</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">-collapse</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-wrapOption"><code>tts:wrapOption</code></a></td>
+ <td rowspan="1" colspan="1"><code>wrap-option</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">except for name normalization, complies with
+ model</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-writingMode"><code>tts:writingMode</code></a></td>
+ <td rowspan="1" colspan="1"><code>writing-mode</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">+tblr</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#style-attribute-zIndex"><code>tts:zIndex</code></a></td>
+ <td rowspan="1" colspan="1"><code>z-index</code></td>
+ <td rowspan="1" colspan="1"><a href="#xsl10">[XSL 1.0]</a></td>
+ <td rowspan="1" colspan="1">except for name normalization, complies with
+ model</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-attribute-id"><code>xml:id</code></a></td>
+ <td rowspan="1" colspan="1"><code>xml:id</code></td>
+ <td rowspan="1" colspan="1"><a href="#xmlid">[XML ID]</a></td>
+ <td rowspan="1" colspan="1">complies with model</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-attribute-lang"><code>xml:lang</code></a></td>
+ <td rowspan="1" colspan="1"><code>xml:lang</code></td>
+ <td rowspan="1" colspan="1"><a href="#xml11">[XML 1.1]</a></td>
+ <td rowspan="1" colspan="1">complies with model</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="#content-attribute-space"><code>xml:space</code></a></td>
+ <td rowspan="1" colspan="1"><code>xml:space</code></td>
+ <td rowspan="1" colspan="1"><a href="#xml11">[XML 1.1]</a></td>
+ <td rowspan="1" colspan="1">see notes</td>
+ <td rowspan="1" colspan="1">12</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <ol type="1">
+ <li>
+ <p>Attribute name and/or value(s) are normalized to use
+ <em>lowerCamelCase</em> naming convention.</p>
+ </li>
+ <li>
+ <p>Restricted to expressing a clock value that denotes one of the
+ following in accordance to whether the parameter expressed by the
+ <code>ttp:timeBase</code> attribute is <code>media</code>,
+ <code>smpte</code>, or <code>clock</code>, respectively: (1) an offset
+ from an implicit syncbase that is linked to a media time line, (2) an
+ event time that represents the occurrence of an implicit media marker, or
+ (3) a wallclock time.</p>
+ </li>
+ <li>
+ <p>Syntactically subsets and supersets the <a href="#smil21">[SMIL
+ 2.1]</a> <code>Clock-value</code> syntax as follows: (1) requires
+ non-negative <code>Full-clock-value</code> or
+ <code>Timecount-value</code>; (2) if <code>Full-clock-value</code> then
+ <em>hours</em> must be two or more digits; (3) if
+ <code>Timecount-value</code>, then <em>metric</em> must be specified; (4)
+ uses <code>m</code> as alias for <code>min</code> metric to denote
+ minutes; (5) adds <code>f</code> and <code>t</code> metrics denoting
+ frames and ticks, respectively; (6) adds alternative expression of
+ optional <code>Fraction</code> in <code>Full-clock-value</code> by
+ specifying frame count or frame count with subframe count.</p>
+ </li>
+ <li>
+ <p>Interpretation of time expression is further constrained by parameters
+ expressed by <code>ttp:clockMode</code>, <code>ttp:frameRate</code>,
+ <code>ttp:frameRateMultiplier</code>, <code>ttp:markerMode</code>,
+ <code>ttp:smpteMode</code>, <code>ttp:subFrameRate</code>,
+ <code>ttp:tickRate</code>, and <code>ttp:timeBase</code> attributes.</p>
+ </li>
+ <li>
+ <p>Uses subset of named colors from model to which two aliases are added
+ as follows: <code>magenta</code> as <code>fuchsia</code>, and
+ <code>cyan</code> as <code>aqua</code>.</p>
+ </li>
+ <li>
+ <p>If not specified, then parallel (par) container semantics apply to the
+ element types specified by <a
+ href="#timing-attribute-timeContainer"><b>10.2.4
+ timeContainer</b></a>.</p>
+ </li>
+ <li>
+ <p>Restricts size to length specification which can be a percentage; adds
+ optional second length (or percentage) for specifying separate horizontal
+ and vertical scaling of glyph's EM square.</p>
+ </li>
+ <li>
+ <p>The value <code>scroll</code> is defined in terms of the <a
+ href="#style-attribute-dynamicFlow"><code>tts:dynamicFlow</code></a>
+ style property.</p>
+ </li>
+ <li>
+ <p>Expressed in terms of writing mode relative padding properties rather
+ than absolute padding properties.</p>
+ </li>
+ <li>
+ <p>Excludes <code>blink</code> and <code>no-blink</code> values.</p>
+ </li>
+ <li>
+ <p>Uses only one length specification instead of two, where one length
+ defines distance of outline effect from nominal edge of glyph contour
+ outline perpendicular to point of glyph contour. Percentage lengths are
+ also added to express outline effect in relative to font size. Outline
+ effects are intended to be drawn both outside of outer closed contours
+ and inside of inner closed contours.</p>
+ </li>
+ <li>
+ <p>On root element, default attribute value specified as
+ <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 <a
+ href="#content-attribute-space"><b>7.2.3 xml:space</b></a>.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="qa" id="qa"></a>J QA Framework Compliance (Non-Normative)</h2>
+ <p>This appendix specifies the compliance of this specification with the
+ requirements and guidelines defined by <a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA Framework
+ Specifications Guidelines</a> <a href="#qaf-sg">[QAF SG]</a>.</p>
+ <div class="div2">
+ <h3><a name="IDAZMIQ" id="IDAZMIQ"></a>J.1 Requirements</h3>
+ <table summary="HTML Table" id="qa-framework-requirements-table"
+ class="common">
+ <caption>
+ Table J-1 – QA Framework Requirements Checklist
+ </caption>
+ <col width="76%" span="1" />
+ <col width="6%" align="center" span="1" />
+ <col width="6%" align="center" span="1" />
+ <col width="6%" align="center" span="1" />
+ <col width="6%" align="center" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><span class="strong">Requirement</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">YES</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">NO</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">N/A</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Notes</span></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">
+ Requirement 01: Include a conformance clause</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-scope-principle">
+ Requirement 02: Define the scope.</a></td>
+ <td rowspan="1" colspan="1"><a href="#intro">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#implement-principle">
+ Requirement 03: Identify who or what will implement the
+ specification.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-norm-principle">
+ Requirement 04: Make a list of normative references.</a></td>
+ <td rowspan="1" colspan="1"><a href="#references">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-principle">
+ Requirement 05: Define the terms used in the normative parts of the
+ specification.</a></td>
+ <td rowspan="1" colspan="1"><a href="#definitions">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conf-label-principle">
+ Requirement 06: Create conformance labels for each part of the
+ conformance model.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#consistent-style-principle">
+ Requirement 07: Use a consistent style for conformance requirements and
+ explain how to distinguish them.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conventions">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#req-opt-conf-principle">
+ Requirement 08: Indicate which conformance requirements are mandatory,
+ which are recommended, and which are optional.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conventions">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-mandatory-principle">
+ Requirement 09: If the technology is subdivided, then indicate which
+ subdivisions are mandatory for conformance.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdiv-constraints-principle">
+ Requirement 10: If the technology is subdivided, then address subdivision
+ constraints.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#likehood-extension-principle">
+ Requirement 11: Address Extensibility.</a></td>
+ <td rowspan="1" colspan="1"><a href="#doctypes">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#deprecated-feature-principle">
+ Requirement 12: Identify deprecated features.</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">N/A</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#degree-support-principle">
+ Requirement 13: Define how each class of product handles each deprecated
+ feature.</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">N/A</td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <ol type="1">
+ <li>
+ <p>No feature is deprecated by this version of this specification.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="IDA0WIQ" id="IDA0WIQ"></a>J.2 Guidelines</h3>
+ <table summary="HTML Table" id="qa-framework-guidelines-table" class="common">
+ <caption>
+ Table J-2 – QA Framework Guidelines Checklist
+ </caption>
+ <col width="76%" span="1" />
+ <col width="6%" align="center" span="1" />
+ <col width="6%" align="center" span="1" />
+ <col width="6%" align="center" span="1" />
+ <col width="6%" align="center" span="1" />
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><span class="strong">Guideline</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">YES</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">NO</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">N/A</span></td>
+ <td rowspan="1" colspan="1"><span class="strong">Notes</span></td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">
+ Good Practice 01: Define the specification's conformance model in the
+ conformance clause.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">
+ Good Practice 02: Specify in the conformance clause how to distinguish
+ normative from informative content.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conventions">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">
+ Good Practice 03: Provide the wording for conformance claims.</a></td>
+ <td rowspan="1" colspan="1"><a href="#claims">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good
+ Practice 04: Provide an Implementation Conformance Statement Pro
+ Forma.</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">NO</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good
+ Practice 05: Require an Implementation Conformance Statement as part of
+ valid conformance claims.</a></td>
+ <td rowspan="1" colspan="1"><a href="#claims">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">
+ Good Practice 06: Provide examples, use cases, and graphics.</a></td>
+ <td rowspan="1" colspan="1"><a href="#example">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">
+ Good Practice 07: Write sample code or tests.</a></td>
+ <td rowspan="1" colspan="1"><a href="#sample-code">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">
+ Good Practice 08: When imposing requirements by normative references,
+ address conformance dependencies.</a></td>
+ <td rowspan="1" colspan="1"><a href="#references">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">1</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">
+ Good Practice 09: Define unfamiliar terms in-line and consolidate the
+ definitions in a glossary section.</a></td>
+ <td rowspan="1" colspan="1"><a href="#definitions">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">
+ Good Practice 10: Use terms already defined without changing their
+ definition.</a></td>
+ <td rowspan="1" colspan="1"><a href="#definitions">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">2</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">
+ Good Practice 11: Use formal languages when possible.</a></td>
+ <td rowspan="1" colspan="1"><a href="#schemas">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">
+ Good Practice 12: Write Test Assertions.</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">NO</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">3</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">
+ Good Practice 13: Create subdivisions of the technology when
+ warranted.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">
+ Good Practice 14: If the technology is profiled, define rules for
+ creating new profiles.</a></td>
+ <td rowspan="1" colspan="1"><a href="#vocabulary-profiles">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">
+ Good Practice 15:Use optional features as warranted.</a></td>
+ <td rowspan="1" colspan="1">YES</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">
+ Good Practice 16: Clearly identify optional features.</a></td>
+ <td rowspan="1" colspan="1">YES</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">
+ Good Practice 17: Indicate any limitations or constraints on optional
+ features.</a></td>
+ <td rowspan="1" colspan="1">YES</td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">
+ Good Practice 18: If extensibility is allowed, define an extension
+ mechanism.</a></td>
+ <td rowspan="1" colspan="1"><a
+ href="#extension-vocabulary-overview">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">
+ Good Practice 19: Warn extension creators to create extensions that do
+ not interfere with conformance.</a></td>
+ <td rowspan="1" colspan="1"><a
+ href="#extension-vocabulary-overview">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">
+ Good Practice 20: Define error-handling for unknown extensions.</a></td>
+ <td rowspan="1" colspan="1"><a href="#conformance-processor">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">4</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">
+ Good Practice 21: Explain how to avoid using a deprecated
+ feature.</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">N/A</td>
+ <td rowspan="1" colspan="1">5</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good
+ Practice 22: Identify obsolete features.</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">N/A</td>
+ <td rowspan="1" colspan="1">5</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1"><a
+ href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">
+ Good Practice 23: Define an error handling mechanism.</a></td>
+ <td rowspan="1" colspan="1"><a href="#reduced-infoset">YES</a></td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ <td rowspan="1" colspan="1">
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <ol type="1">
+ <li>
+ <p>When making normative references to external specifications, specific
+ clauses or sections are cited.</p>
+ </li>
+ <li>
+ <p>See also <a href="#derivation"><b>I Vocabulary Derivation</b></a>.</p>
+ </li>
+ <li>
+ <p>Test assertions and test suites will be provided prior to entering
+ Proposed Recommendation (PR) phase.</p>
+ </li>
+ <li>
+ <p>See criterion #3 in <a href="#conformance-processor"><b>3.2 Processor
+ Conformance</b></a> and definition of <a href="#doctypes">TT AF Abstract
+ Document Instance</a>.</p>
+ </li>
+ <li>
+ <p>No feature is deprecated or obsoleted by this version of this
+ specification.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="streaming" id="streaming"></a>K Streaming DFXP Content
+ (Non-Normative)</h2>
+ <p>DFXP Content is designed to support streamability by implementing the
+ following properties:</p>
+ <ul>
+ <li>
+ <p>can be progressively encoded (i.e., does not require computing subsequent
+ data prior to sending current data);</p>
+ </li>
+ <li>
+ <p>can be progressively decoded (i.e., does not require forward references,
+ but uses only reverse references when necessary);</p>
+ </li>
+ <li>
+ <p>does not require dereferencing (and subsequent loading) of any resources
+ other than DFXP content (i.e., no embedded URIs);</p>
+ </li>
+ <li>
+ <p>does not support alternative content forms (e.g., different language,
+ graphics formats, time bases) in a single document;</p>
+ </li>
+ <li>
+ <p>has timing structure compiled into inline format that makes possible a
+ temporal ordering of content that follows temporal presentation order;</p>
+ </li>
+ <li>
+ <p>constrains content models to prevent arbitrary nested content
+ structures;</p>
+ </li>
+ </ul>
+ <p>One possible means by which DFXP Content may be streamed is to partition a
+ DFXP document instance's information set into non-overlapping fragments, where
+ one particular fragment, call it the <em>root fragment</em>, represents the front
+ matter (head) of the document instance as well as its top level structural
+ elements, and other fragments represent content whose time intervals are expected
+ to be active in parallel.</p>
+ <p>In applications that require arbitrary (random) entry into a stream, i.e., the
+ property of being able to start reading data at an arbitrary data access unit,
+ the root fragment will be repetitively transmitted (inserted) into the stream in
+ order to permit a decoder to resynchronize and acquire sufficient structural
+ information in the information set in order to interpret subsequent content
+ fragments.</p>
+ <p>An example of such a fragmentation of a DFXP document instance is shown in <a
+ href="#fragment-streaming-graphic"><b>Figure 2 – Fragment Streaming</b></a>.</p>
+ <table summary="HTML Table" id="fragment-streaming-graphic"
+ class="example-images">
+ <caption>
+ Figure 2 – Fragment Streaming
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="images/streaming.png"
+ alt="Fragment Streaming" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This specification does not define a transport buffer model or a decoder
+ capabilities model.</p>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="acknowledgements" id="acknowledgements"></a>L Acknowledgments
+ (Non-Normative)</h2>
+ <p>The editor acknowledges the members of the Timed Text Working Group, the
+ members of other W3C Working Groups, and industry experts in other forums who
+ have contributed directly or indirectly to the process or content of creating
+ this document.</p>
+ <p>The current and former members of the Timed Text Working Group are: Glenn
+ Adams, Extensible Formatting Systems, Inc. (chair); Kees Blom, CWI; Brad Botkin,
+ WGBH National Center for Accessible Media; Dick Bulterman, CWI; Michael Dolan,
+ Invited Expert; Gerry Fields, WGBH (formerly); Geoff Freed, WGBH National Center
+ for Accessible Media; Markus Gylling, DAISY Consortium; Markku Hakkinen, Japanese
+ Society for Rehabilitation of Persons with Disabilities; Sean Hayes, Microsoft;
+ Erik Hodge, RealNetworks; Masahiko Kaneko, Microsoft; George Kerscher, DAISY
+ Consortium; David Kirby, BBC; Thierry Michel, W3C (team contact); Patrick Schmitz,
+ Invited Expert; and, Dave Singer, Apple Computer.</p> <p>The editor wishes to
+ especially acknowledge the following contributions by members: Micheal Dolan
+ (SMPTE time codes, streaming; SMPTE liaison), David Kirby (introductory example
+ document; SMPTE time codes, descriptive metadata; EBU/AAF liaison), Geoff Freed
+ (styling and example images of style properties), Sean Hayes (advanced profile
+ concepts, including applicative timing), Eric Hodge (timing), Thierry Michel
+ (metadata), and Dave Singer (animation, scrolling).</p> <p>The Timed Text Working
+ Group has benefited in its work from the participation and contributions of a
+ number of people not currently members of the Working Group, including in
+ particular those named below. Affiliations given are those current at the time of
+ their work with the WG.</p> <p>John Birch, Screen Subtitling Systems; Bert Bos,
+ W3C (chair, CSS WG); Martin Dürst, W3C (leader, I18N Activity); Al Gilman (chair,
+ WAI Protocol and Formats WG); Philipp Hoschka, W3C (leader, Interaction Domain);
+ Chris Lilley, W3C (chair, SVG WG).</p> <p>The editor wishes to especially
+ acknowledge the following contributions by non-members: John Birch (dynamic
+ flow).</p>
+ </div>
+ <div class="div1">
+ <h2><a name="change-history" id="change-history"></a>M Change History
+ (Non-Normative)</h2>
+ <div class="div2">
+ <h3><a name="change-history-lc1-to-lc2" id="change-history-lc1-to-lc2"></a>M.1
+ Changes from First to Second Last Call Working Draft</h3>
+ <div class="exampleInner">
+<pre>
+<span class="strong">Technical Changes</span>
+
+The following changes result in a technical change of the conformance
+criteria, the normative abstract document type that is defined
+for use with DFXP, or the defined value space of an attribute or
+property:
+
+* Update namespace URIs to use 2006/04 instead of 2004/11;
+* Remove ttp:defaultLengthUnit definition and all references;
+ + change initial (default) value definition of tts:fontSize to
+ be 1/24th of the height of the root container in all cases;
+ + change syntax of scalar form of <length> to require units
+* Remove ttp:defaultTimeMetric definition and all references;
+ + change syntax of <duration> to require a metric
+* Add "transcription" to ttm:role enumeration in section 12.2.2;
+* In section 8.2.16, change "dynamic" value to read "scroll" instead,
+ which is already defined by CSS/XSL and given UA dependent
+ semantics; here we will specify fixed semantics and map to dynamic
+ flow; change also usage in 8.1.7 to refer to "scroll";
+* In section 6.2.1, change implied default value of ttp:cellResolution
+ from 1col/1row to 32cols/15rows, based on CEA/EIA-608-C maximum values;
+* In 8.3.12, add "cyan" and "magenta" as aliases for "aqua" and
+ "fucshia", since it turns out these are defined by SVG1.0;
+* Add following new values for ttm:role to support EIA/CEA-708 caption
+ text functions: dialog, expletive, narration, quality, source,
+ suppressed; remove associated editorial note;
+* In 3.1, add new conformance criteria item 1 that specifies the use
+ of application/ttaf+xml as MIME media type with optional "profile"
+ parameter; use new references to MIME and XML Media Types;
+* Remove begin, dur, and end attributes and descriptions thereof from
+ <tt/> and <layout/>;
+* Move description of tts:extent attribute from <tt/> to
+ <body/>;
+* Change "meta" element name to "metadata" to match SVG usage, on
+ which this vocabulary item is modeled;
+* Remove name attribute from <metadata/> element;
+* Change initial (default) value definition of tts:fontSize to
+ be 1c (one grid cell) in order to match implied default value for
+ ttp:cellResolution row count;
+* For sake of symmetry, add Metadata.class and Animation.class children to
+ content model of <br/>;
+* Add style, ttm:*, tts:* and foreign namespace attributes to
+ <br/>;
+* Add usage of tts:padding property that takes three length specifications;
+* Add left and right values to textAlign;
+* Add monospace, serif, and sansSerif to generic font family names;
+* Add missing "auto" value to zIndex, and make "auto" initial value
+ in order to comply with XSL/CSS usage;
+* Add means to specify rate (in units per second) to definition of
+ flowIntervalArguments in section 8.3.8;
+* Populate Appendix B on Dynamic Flow Processing which defines normative
+ semantics (previously unspecified);
+
+<span class="strong">Editorial Changes</span>
+
+The following changes are editorial in nature or entail semantic
+clarifications that do not affect the abstract document type or defined
+schemas for DFXP:
+
+* Add "Contributing Authors" to preamble, listing contributors;
+* Merge current and former members description in Appendix H (now
+ Appendix K);
+* Remove references to AFXP as follows:
+ + remove 1st note in section 1
+ + remove 1st note in section 1.1
+ + remove definition of AFXP from glossary
+ + remove section 4.2
+ + remove AFXP profile entry from Table 2 - Profiles
+ + remove reference to 2nd catalog in section 5.3 preamble
+ + remove last clause of 2nd para of section 5.3
+ + change "AFXP" to "future profiles" in 1st para of section 5.3.1
+ + remove section 5.3.2
+ + remove last sentence of 2nd note in section 7.1.4
+ + remove last sentence of 1st note in section 7.1.6
+ + change "AFXP" to "advanced profiles" in 3rd para of Appendix H (now
+ Appendix K);
+* Add clarifying language in the last para of section 8.3.6;
+* Clarify definition of "Valid Abstract Document Instance" in section 4
+ to account for the pruning of attributes in other namespaces and
+ residual requirements on the presence and value type of attributes;
+ + remove redundant definition in glossary to prevent competing
+ definitions
+* Add informative reference to SMPTE170M (for NTSC); add a
+ reference to this bibliographic entry from the 1st note under
+ section 6.2.4; add new sentence to this same note indicating
+ that other frame rate multipliers apply in other regions and
+ with other video formats;
+* Add normative reference to UAAG; add recommendation in
+ conformance clause 3.2 item (5) that a presentation processor
+ should satisfy UAAG defined guidelines;
+* Add note in introduction expressing that a related sign language
+ representation may be appropriate in some circumstances, but that
+ this is not addressed explicitly by DFXP;
+* Add note in section 6.2.11 indicating that control over state of
+ external media time base is outside the scope of DFXP;
+* Add note in section 5.2 indicating possible uses of profile
+ information;
+* Fix typos:
+ + section 6.2.1: s/express number/express the number/
+ + section 6.2.5 (now 6.2.3): s/in document/in a document/
+ + section 6.2.6 (now 6.2.4): s/MHz/Hz/
+* Add note to 6.2.2 referring to section 10.3 Time Value Expressions;
+* Add normative reference to UTC, using reference in section 6.2.2;
+* Add normative reference to GPS, using reference in section 6.2.2;
+* Add note to 6.2.2 summarizing difference between GPS and UTC;
+* Add para to 6.2.2 clarifying that ttp:clockMode is significant
+ only on <tt/> element;
+* In section 8.3.11, add or refer to definitions of "px", "em", and
+ "c";
+* In section 7.2.3, replace definition of semantics of xml:space
+ values with a new definition that maps to XSL-FO properties;
+* In section 9.3.2, add new item (8) that specifies mapping for
+ <br/> elements to <fo:character/>;
+* In section 4, add new step 2 to definition of Abstract Document
+ Instance, which is needed to remove certain XML whitespace that
+ remains after pruning elements; e.g., a <br/> element may have
+ children from another namespace, that, after pruning, would result
+ in a non-empty <br/> element; this new step ensures that the
+ element is emptied prior to validation against its abstract
+ document type;
+* In section 8 preamble, add new para indicating that no normative
+ use of a stylesheet PI is defined;
+* In section 8.2.16, add condition tts:wrapOption="noWrap" in note;
+* In section 8.2.22, move visibility="hidden" from <p/> to <span/>s;
+ otherwise, content would remain hidden due to <p/> being hidden;
+* Add informative reference to CEA/EIA-608-C; use this reference
+ in a new note in 6.2.1;
+* Add note in 6.2.1 explaining that it is not expected that glyph
+ areas align with uniform grid defined by ttp:cellResolution,
+ indicate that such alignment would occur only when using monospace
+ font whose EM square exactly matches grid's cell size;
+* Add normative reference to SRGB definition;
+* Add normative use of SRGB in section 8.3.2 <color> and 8.3.12 <namedColor>
+* In 8.3.2, add para indicating that SRGB is used for both input and
+ output of notional composition functions; add note indicating that
+ a presentation processor may actually use another color space for
+ internal or external purposes;
+* In 8.2.14, specify that opacity applies on a linear scale;
+* Add informative reference to SVG 1.0;
+* Add note in 8.3.12 indicating that named color set is a strict
+ subset of SVG 1.0 named color set;
+* Add empty informative Appendices H, I, and L, to document Vocabulary
+ Derivation, QA Framework Compliance, and Change History,
+ respectively; renumber former appendices G and H as Appendices J
+ and K, respectively;
+* Add normative reference to RFC2046, MIME Media Types;
+* Add normative reference to RFC3023, XML Media Types;
+* Change description of implied begin/end on <tt/> to refer to
+ external context temporal interval;
+* Change description of implied begin/end on <body/> to refer to
+ external time interval;
+* In 7.1.2, 8.1.1, and 9.1.1, specify that implied time intervals of
+ head, styling, and layout are coterminous with external time
+ interval;
+* In 9.1.2, indicate that begin/end points specified on <region/>
+ are relative to the time interval of the nearest ancestor associated
+ with a time interval;
+* In 9.1.2, remove constraint that if no tts:extent is specified in
+ computed style set then no content is flowed into region; this
+ constraint is redundant since the initial value of tts:extent is
+ "auto" which is defined to be extent of root container;
+* Fix typos:
+ + section 9.1.2, s/layout/region/ in para describing dur attribute;
+* Add note at end of the preamble to section 8.2, [Styling] Attribute
+ Vocabulary, indicating that (to support inheritance) any style
+ property may be specified on any content element independently of
+ whether it applies to that element;
+* Remove note in 7.1.7 that indicated that <br/> is empty in
+ the reduced XML infoset, which no longer holds as both metadata and
+ animation children may be present;
+* In Appendix I, add table I-1 with element vocabulary derivation;
+* Define monospace to be either serifed or not; define serif and
+ sansSerif to be equivalent to proportionalSerif and proportionalSansSerif,
+ respectively;
+* Add time metric to time expressions in example content;
+* Add definition of implicit duration of document instance in section 7.1.1;
+* In definition of <time-expression> syntax in section 10.3.1,
+ remove paragraph referring to default time metric, which no longer
+ applies now that time metric must be specified;
+* In Appendix I, add table I-2 with attribute vocabulary derivation;
+* Add definition of percentage lengths to each style property
+ definition. Percentages apply to the following styles: extent,
+ fontSize, lineHeight, origin, padding, and textOutline;
+* Fill in Appendix I with QA Framework compliance information;
+* Add section 5.3.2 defining a presently empty "Extension Catalog"
+ that serves as a placeholder for future standardized extensions and
+ additionally specifies that document instance may contain arbitrary
+ namespace qualified elements and attributes from other namespaces;
+* Add section 3.3 defining conformance claims and requirements
+ regarding for providing an implementation compliance statement;
+* Add hyperlinks throughout document for references to elements,
+ attributes, and value expressions;
+* Add new Appendix F containing sample code and sample compile,
+ load, run session transcript;
+* Change IDREF to IDREFS as value of ttm:agent as found in prose in
+ section 12.2.1;
+</pre>
+ </div>
+ </div>
+ <div class="div2">
+ <h3><a name="change-history-lc2-to-cr" id="change-history-lc2-to-cr"></a>M.2
+ Changes from Second Last Call Working Draft to Candidate Recommendation</h3>
+ <div class="exampleInner">
+<pre>
+<span class="strong">Technical Changes</span>
+
+The following changes result in a technical change of the conformance
+criteria, the normative abstract document type that is defined
+for use with DFXP, or the defined value space of an attribute or
+property:
+
+* Restore support for nested div and span elements [that had
+ been removed in an early working draft].
+* Change "id" attribute to "xml:id".
+* Add tts:textDecoration style property.
+* Update namespace URIs to use 2006/10 instead of 2006/04.
+* Update profile URIs to use 2006/10 instead of 2006/04.
+
+<span class="strong">Editorial Changes</span>
+
+The following changes are editorial in nature or entail semantic
+clarifications that do not affect the abstract document type, defined
+schemas, or conformance criteria for DFXP:
+
+* Update "status of this document" (SOTD) section to
+ reflect CR transition.
+* Add normative reference to xml:id recommendation.
+* Add note in section 9.3.3 indicating that intermediate document
+ examples are internal processing states and do not represent
+ valid DFXP documents.
+* Add "Except for transparent, " to note in section 8.3.12.
+* Add recommendation, in section 3.1 item 5, that conformant
+ reduced infoset "should" adhere to WCAG1.0.
+* Add normative reference to WCAG1.0.
+* Update informative reference to SVG1.0 to reference SVG1.1
+ instead.
+* Insert new (normative) Appendix D that specifies the
+ MIME Media Type registration information for application/ttaf+xml.
+* Add normative reference to RFC3023 tagged as [XML Media Types],
+ for use by new Appendix D.
+* Normalize and add missing dates of W3C Recs cited in
+ Appendices E (References) and F (Other References).
+* In Table 4, express groups as choice lists instead of
+ sequences (which might have been confusing).
+* Revise content models of XML Representation of div, p,
+ and span element information items in order to make
+ reference to Block.class and Inline.class element
+ groups.
+* Add "This appendix is normative" to beginning of each
+ normative appendix.
+* Add clarifications in sections 8.3.13 and 8.3.14 that
+ syntactic element "char" adheres to production [2] of
+ XML1.1, while syntactic element "S" adheres to
+ production [3] of XML1.1.
+* Add note to section 7.1.7 (and rearrange paragraph ordering)
+ to indicate that two <br> elements are intended to
+ produce two forced line breaks in a sequence.
+* Add note to section 6.2.4 that indicates that PAL
+ formatted video nominally uses a 1:1 frame rate multiplier
+ (except for PAL/M).
+* Add note to end of section 9.3.2 that indicates that a
+ compliant XSL1.0 presentation processor may be insufficient
+ to satisfy the presentation semantics of DFXP.
+* Clarify syntax of <alpha> style value expression to
+ use XML Scheme Datatype lexical representation of xs:float,
+ which was the intended syntactic value space for this
+ expression.
+* Clarify that ttp:cellResolution columns or rows must not be zero
+ if present.
+* Clarify that ttp:frameRate must be greater than zero if present.
+* Clarify that ttp:frameRateMultipler denominator must not be zero
+ if present. Correct misspelling "demoninator".
+* Clarify that ttp:pixelAspectRatio width or height must not be zero
+ if present.
+* Clarify that ttp:subFrameRate must not be zero if present.
+* Clarify that ttp:tickRate must not be zero if present.
+* Remove superfluous end tag close (>) in XML representation of
+ metadata element information item in section 12.1.1.
+* Add clarification that the declared value of an inline style
+ attribute on body, region, and style elements must not be "inherit".
+* Add clarification in section 8.5.1 item 2 that use of value
+ "inherit" does not apply if element is body element.
+* Clarify that tt element establishes the root stacking context
+ for the purpose of interpreting the tts:zIndex style property;
+ this corresponds with the prescribed mapping of tt:tt to fo:root
+ as described in section 9.3.2 item 3.
+* Clarify that ttp:{markerMode,smpteMode,tickRate,timeBase} are
+ significant only when specified on tt element.
+* Add note at end of section 8.2.17 that padding style attribute
+ is based on XSL 1.0 shorthand "padding" property except that
+ the individual values map to writing mode relative padding
+ properties, i.e., padding-before, padding-after, etc.
+* Update attribute derivation table (Appendix I.2) to reflect
+ addition of tts:textDecoration and change from id to xml:id.
+* Update publishing date and dates in SOTD CR publication.
+* Update SOTD to remove use of sample code as satisfying 2
+ implementation convention for exit criteria. Note that sample
+ code can still serve as 1 implementation of 2 required.
+* Add paragraph to SOTD describing unsatisfied comments during
+ first LC.
+* Change "reference code" to read "sample code".
+</pre>
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/Overview.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,10274 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE spec SYSTEM "xmlspec-tt-f.dtd" [
+<!ENTITY draft.month.name "November">
+<!ENTITY draft.month "11">
+<!ENTITY draft.day "10">
+<!ENTITY draft.year "2006">
+<!ENTITY versionOfTT "1.0">
+<!ENTITY doc.designation.nodate "ttaf1-dfxp">
+<!ENTITY doc.status "Candidate Recommendation">
+<!ENTITY doc.status.abbr "CR">
+<!ENTITY doc.base.uri.root "/TR">
+<!ENTITY doc.base.uri.noyear "http://www.w3.org&doc.base.uri.root;/">
+<!ENTITY doc.base.uri "&doc.base.uri.noyear;&draft.year;/">
+<!ENTITY doc.audience "internal review and discussion">
+<!ENTITY doc.distribution "may be distributed freely, as long as
+all text and legal notices remain intact">
+<!ENTITY iso6.doc.date "&draft.year;&draft.month;&draft.day;">
+<!ENTITY doc.designation.nostatus "&doc.designation.nodate;-&iso6.doc.date;">
+<!ENTITY doc.designation.full "&doc.status.abbr;-&doc.designation.nostatus;">
+<!ENTITY doc.designation "&doc.designation.full;">
+<!ENTITY tbd "<phrase role='tbd'>To Be Defined</phrase>">
+<!ENTITY sp " ">
+<!ENTITY sect "§">
+<!ENTITY aring "å">
+<!ENTITY ccedil "ç">
+<!ENTITY Ccedil "Ç">
+<!ENTITY mult "×">
+<!ENTITY uuml "ü">
+<!ENTITY nbsp " ">
+<!ENTITY ndash "–">
+<!ENTITY mdash "—">
+<!ENTITY hArr "⇔">
+<!ENTITY trade "™">
+<!ENTITY hellip "…">
+<!ENTITY isin "∈">
+<!ENTITY minus "−">
+<!ENTITY le "≤">
+<!ENTITY ge "≥">
+<!ENTITY plusmn "±">
+<!ENTITY dfxp-ex1 SYSTEM "./examples/ex1.xml.esc">
+<!ENTITY dfxp-ex1-x-0 SYSTEM "./examples/ex1-x-0.xml.esc">
+<!ENTITY dfxp-ex1-p-0 SYSTEM "./examples/ex1-p-0.xml.esc">
+<!ENTITY dfxp-ex1-x-1 SYSTEM "./examples/ex1-x-1.xml.esc">
+<!ENTITY dfxp-ex1-x-2 SYSTEM "./examples/ex1-x-2.xml.esc">
+<!ENTITY rnc-dfxp-driver SYSTEM "./rnc/ttaf1-dfxp.rnc.esc">
+<!ENTITY rnc-dfxp-animation-module SYSTEM "./rnc/ttaf1-dfxp-animation.rnc.esc">
+<!ENTITY rnc-dfxp-classes-module SYSTEM "./rnc/ttaf1-dfxp-classes.rnc.esc">
+<!ENTITY rnc-dfxp-content-module SYSTEM "./rnc/ttaf1-dfxp-content.rnc.esc">
+<!ENTITY rnc-dfxp-core-attribs-module SYSTEM "./rnc/ttaf1-dfxp-core-attribs.rnc.esc">
+<!ENTITY rnc-dfxp-datatypes-module SYSTEM "./rnc/ttaf1-dfxp-datatypes.rnc.esc">
+<!ENTITY rnc-dfxp-document-module SYSTEM "./rnc/ttaf1-dfxp-document.rnc.esc">
+<!ENTITY rnc-dfxp-head-module SYSTEM "./rnc/ttaf1-dfxp-head.rnc.esc">
+<!ENTITY rnc-dfxp-metadata-module SYSTEM "./rnc/ttaf1-dfxp-metadata.rnc.esc">
+<!ENTITY rnc-dfxp-metadata-items-module SYSTEM "./rnc/ttaf1-dfxp-metadata-items.rnc.esc">
+<!ENTITY rnc-dfxp-metadata-attribs-module SYSTEM "./rnc/ttaf1-dfxp-metadata-attribs.rnc.esc">
+<!ENTITY rnc-dfxp-parameter-attribs-module SYSTEM "./rnc/ttaf1-dfxp-parameter-attribs.rnc.esc">
+<!ENTITY rnc-dfxp-styling-attribs-module SYSTEM "./rnc/ttaf1-dfxp-styling-attribs.rnc.esc">
+<!ENTITY rnc-dfxp-styling-module SYSTEM "./rnc/ttaf1-dfxp-styling.rnc.esc">
+<!ENTITY rnc-dfxp-layout-module SYSTEM "./rnc/ttaf1-dfxp-layout.rnc.esc">
+<!ENTITY rnc-dfxp-timing-attribs-module SYSTEM "./rnc/ttaf1-dfxp-timing-attribs.rnc.esc">
+<!ENTITY xsd-dfxp-driver SYSTEM "./xsd/ttaf1-dfxp.xsd.esc">
+<!ENTITY xsd-dfxp-animation-module SYSTEM "./xsd/ttaf1-dfxp-animation.xsd.esc">
+<!ENTITY xsd-dfxp-content-module SYSTEM "./xsd/ttaf1-dfxp-content.xsd.esc">
+<!ENTITY xsd-dfxp-core-attribs-module SYSTEM "./xsd/ttaf1-dfxp-core-attribs.xsd.esc">
+<!ENTITY xsd-dfxp-datatypes-module SYSTEM "./xsd/ttaf1-dfxp-datatypes.xsd.esc">
+<!ENTITY xsd-dfxp-document-module SYSTEM "./xsd/ttaf1-dfxp-document.xsd.esc">
+<!ENTITY xsd-dfxp-head-module SYSTEM "./xsd/ttaf1-dfxp-head.xsd.esc">
+<!ENTITY xsd-dfxp-metadata-module SYSTEM "./xsd/ttaf1-dfxp-metadata.xsd.esc">
+<!ENTITY xsd-dfxp-metadata-items-module SYSTEM "./xsd/ttaf1-dfxp-metadata-items.xsd.esc">
+<!ENTITY xsd-dfxp-metadata-attribs-module SYSTEM "./xsd/ttaf1-dfxp-metadata-attribs.xsd.esc">
+<!ENTITY xsd-dfxp-parameter-attribs-module SYSTEM "./xsd/ttaf1-dfxp-parameter-attribs.xsd.esc">
+<!ENTITY xsd-dfxp-styling-attribs-module SYSTEM "./xsd/ttaf1-dfxp-styling-attribs.xsd.esc">
+<!ENTITY xsd-dfxp-styling-module SYSTEM "./xsd/ttaf1-dfxp-styling.xsd.esc">
+<!ENTITY xsd-dfxp-layout-module SYSTEM "./xsd/ttaf1-dfxp-layout.xsd.esc">
+<!ENTITY xsd-dfxp-timing-attribs-module SYSTEM "./xsd/ttaf1-dfxp-timing-attribs.xsd.esc">
+<!ENTITY xsd-dfxp-xml-attrs-module SYSTEM "./xsd/xml.xsd.esc">
+<!ENTITY code-rxi SYSTEM "./scm/rxi.scm.esc">
+<!ENTITY code-adi SYSTEM "./scm/adi.scm.esc">
+<!ENTITY code-tir SYSTEM "./scm/tir.scm.esc">
+<!ENTITY code-fox SYSTEM "./scm/fox.scm.esc">
+<!ENTITY code-dtf SYSTEM "./scm/dtf.scm.esc">
+]>
+<?xml-stylesheet type="text/xsl" href="ttaf1-dfxp.xsl"?>
+<spec w3c-doctype="cr" status="final">
+<header>
+<title>Timed Text (TT) Authoring Format &versionOfTT; – Distribution Format Exchange Profile (DFXP)</title>
+<w3c-designation>&doc.designation;</w3c-designation>
+<w3c-doctype>W3C &doc.status;</w3c-doctype>
+<pubdate>
+<day>&draft.day;</day>
+<month>&draft.month.name;</month>
+<year>&draft.year;</year>
+</pubdate>
+<publoc>
+<loc
+href="http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061110/">http://www.w3.org/TR/2006/CR-ttaf1-dfxp-20061110/</loc>
+</publoc>
+<prevlocs>
+<loc
+href="http://www.w3.org/TR/2006/WD-ttaf1-dfxp-20060427/">http://www.w3.org/TR/2006/WD-ttaf1-dfxp-20060427/</loc>
+</prevlocs>
+<latestloc>
+<loc href="&doc.base.uri.noyear;&doc.designation.nodate;/">&doc.base.uri.noyear;&doc.designation.nodate;/</loc>
+</latestloc>
+<authlist role="editor">
+<author>
+<name>Glenn Adams</name>
+<affiliation>Extensible Formatting Systems, Inc. (XFSI)</affiliation>
+<graphic source="images/ga.png" alt="glenn at x f s i dot com"/>
+</author>
+</authlist>
+<authlist role="contributor">
+<author>
+<name>Mike Dolan</name>
+<affiliation>Invited Expert</affiliation>
+<graphic source="images/md.png" alt="m dolan at new t b t dot com"/>
+</author>
+<author>
+<name>Geoff Freed</name>
+<affiliation>WGBH National Center for Accessible Media</affiliation>
+<graphic source="images/gf.png" alt="geoff underbar freed at w g b h dot org"/>
+</author>
+<author>
+<name>Sean Hayes</name>
+<affiliation>Microsoft</affiliation>
+<graphic source="images/sh.png" alt="sean dot hayes at microsoft dot com"/>
+</author>
+<author>
+<name>Erik Hodge</name>
+<affiliation>RealNetworks</affiliation>
+<graphic source="images/eh.png" alt="e hodge at real dot com"/>
+</author>
+<author>
+<name>David Kirby</name>
+<affiliation>British Broadcasting Corporation (BBC)</affiliation>
+<graphic source="images/dk.png" alt="david dot kirby at r d dot b b c dot c o dot u k"/>
+</author>
+<author>
+<name>Thierry Michel</name>
+<affiliation>W3C</affiliation>
+<graphic source="images/tm.png" alt="t michel at w 3 dot org"/>
+</author>
+<author>
+<name>Dave Singer</name>
+<affiliation>Apple Computer</affiliation>
+<graphic source="images/ds.png" alt="singer at apple dot com"/>
+</author>
+</authlist>
+<abstract id="abstract">
+<p>This document specifies the distribution format exchange profile
+(DFXP) of the timed text authoring format (TT AF) in terms of a
+vocabulary and semantics thereof.</p>
+<p>The timed text authoring format is a content type that represents
+timed text media for the purpose of interchange among authoring
+systems. Timed text is textual information that is intrinsically or
+extrinsically associated with timing information.</p>
+<p>The Distribution Format Exchange Profile is intended to be used
+for the purpose of transcoding or exchanging timed text information
+among legacy distribution content formats presently in use for
+subtitling and captioning functions.</p>
+<p>In addition to being used for interchange among legacy distribution content
+formats, DFXP content may be used directly as a distribution format,
+for example, providing a standard content format to reference from a <el><text></el> or
+<el><textstream></el> media object element in a <bibref
+ref="smil21"/> document.</p>
+</abstract>
+<status id="status">
+<p>
+<emph>This section describes the status of this document at the
+time of its publication. Other documents may supersede this document.
+A list of current W3C publications and the latest revision of this
+technical report can be found in the <loc
+href="http://www.w3.org/TR/">W3C technical reports index</loc> at
+http://www.w3.org/TR/.</emph>
+</p>
+<p>
+This is the &draft.day; &draft.month.name; &draft.year; Candidate
+Recommendation of the Timed Text (TT) Authoring Format
+&versionOfTT; – Distribution Format Exchange Profile (DFXP). W3C
+publishes a Candidate Recommendation to indicate that the document is believed
+to be stable and to encourage implementation by the developer community. The
+<loc href="http://www.w3.org/AudioVideo/TT/">Timed Text (TT) Working Group</loc>
+expects to request that the Director advance this document to Proposed
+Recommendation once the Working Group has, for each test in the <loc
+href="http://www.w3.org/2006/DFXP/testsuite/Overview.html">DFXP 1.0 Test
+Suite</loc> (<loc href="http://www.w3.org/2005/10/Process-20051014/comm.html#Member-only">Member Only</loc>), demonstrated support by two interoperable
+implementations. The Working Group, working closely with the developer community,
+expects to show these implementations by 01 March 2007. This estimate is based in
+part on the preliminary <loc
+href="http://www.w3.org/2006/DFXP/DFXP-implementation-result.html">DFXP
+Interoperability Implementation Report</loc>
+(<loc href="http://www.w3.org/2005/10/Process-20051014/comm.html#Member-only">Member Only</loc>). The Working Group does not plan
+to request to advance to Proposed Recommendation prior to 01 April 2007.
+</p>
+<p>
+This is a W3C Candidate Recommendation. The second Last Call Working Draft for
+this specification resulted in a number of Last Call comments which have all
+been addressed by the working group; a list of all Last Call comments can be
+found in the <loc
+href="http://www.w3.org/2005/03/21/DFXP-2ND-LastCallResponses.html">Second Last Call
+Comments List</loc> (<loc href="http://www.w3.org/2005/10/Process-20051014/comm.html#Member-only">Member Only</loc>). The list of changes made since the last public Working
+Draft is available in <specref ref="change-history-lc2-to-cr"/>.
+</p>
+<p>
+During the first Last Call period of this specification, there were <loc
+href="http://lists.w3.org/Archives/Public/public-tt/2005Apr/0040.html">unsatisfied
+comments</loc> that the working group was unable to resolve in a manner that satisfied
+the commenter(s). The status of these comments has not changed during the second
+Last Call period, as the working group continues to stand by its <loc
+href="http://lists.w3.org/Archives/Public/public-tt/2005Oct/0000.html">original
+responses</loc>. See also the <loc
+href="http://www.w3.org/2005/03/21/DFXPLastCallResponses.html#Issue11">First
+Last Call Disposition of Comments</loc> for a complete discussion.
+</p>
+<p>
+The <emph>dynamic flow processing</emph> feature, as specified by
+the <loc
+href="#style-attribute-dynamicFlow"><att>tts:dynamicFlow</att></loc>
+styling attribute vocabulary, see
+also <specref ref="dynamicFlowModel"/>, has been determined to be
+<loc
+href="http://www.w3.org/2005/10/Process-20051014/tr.html#at-risk-feature">at
+risk</loc>, and is expected to be given the greatest scrutiny in the
+implementation report.
+</p>
+<p>
+Comments on this document should be sent to the email list <loc
+href="mailto:public-tt@w3.org">public-tt@w3.org</loc>, which is the public
+mailing list of Timed Text Working Group (<loc
+href="http://lists.w3.org/Archives/Public/public-tt/">list archives</loc>). To
+subscribe, send an email to <loc
+href="mailto:public-tt-request@w3.org">public-tt-request@w3.org</loc> with the
+word <code>subscribe</code> in the subject line.
+</p>
+<p>
+This document has been produced by the <loc
+href="http://www.w3.org/AudioVideo/TT/">Timed Text (TT) Working Group</loc> as
+part of the W3C <loc href="http://www.w3.org/AudioVideo/Activity">Synchronized
+Multimedia Activity</loc>, following the procedures set out for the W3C <loc
+href="http://www.w3.org/Consortium/Process/">Process</loc>. The authors of this
+document are listed in the header of this document.
+</p>
+<p> This document is governed by the <loc href="http://www.w3.org/TR/2002/NOTE-patent-practice-20020124">24 January 2002 CPP</loc> as amended by the <loc href="http://www.w3.org/2004/02/05-pp-transition">W3C Patent Policy Transition Procedure</loc>. W3C maintains a <loc rel="disclosure" href="http://www.w3.org/2003/01/Timed-text-Patent-statements.html">public list of any patent disclosures</loc> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</loc> must disclose the information in accordance with <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</loc>. </p>
+<p>
+Publication as a Candidate Recommendation does not imply endorsement by the W3C
+Membership. This is a draft document and may be updated, replaced or obsoleted
+by other documents at any time. It is inappropriate to cite this document as
+other than work in progress.
+</p>
+</status>
+<langusage><language id="en">English</language></langusage>
+<revisiondesc><p>$Id$</p></revisiondesc>
+</header>
+<body>
+<div1 id="intro">
+<head>Introduction</head>
+<p><emph>Unless specified otherwise, this section and its sub-sections are non-normative.</emph></p>
+<p>The Timed Text Authoring Format (TT AF) Distribution Format Exchange Profile (DFXP)
+provides a standardized representation of a particular subset of
+textual information with which stylistic, layout, and timing semantics are associated by
+an author or an authoring system for the purpose of interchange and potential presentation.</p>
+<p>DFXP is expressly designed to meet only a limited set of requirements
+established by <bibref ref="ttaf1-req"/>, and summarized in <specref
+ref="requirements"/>. In particular, only those requirements which service the
+need of performing interchange with existing, legacy distribution systems are
+satisfied.</p>
+<p>In addition to being used for interchange among legacy distribution content
+formats, DFXP content may be used directly as a distribution format, providing, for
+example, a standard content format to reference from a <el><text></el> or
+<el><textstream></el> media object element in a <bibref
+ref="smil21"/> document. Certain properties of DFXP support
+streamability of content, as described in <specref ref="streaming"/>.</p>
+<note>
+<p>While DFXP was not expressly designed for direct (embedded) integration into a
+SMIL document instance, such integration is not precluded.</p>
+</note>
+<note>
+<p>In some contexts of use, it may be appropriate to employ
+animated content to depict sign language representations of the same content
+as expressed by a Timed Text document instance. This use case is not
+explicitly addressed by DFXP mechanisms, but may be addressed by some
+external multimedia integration technology, such as SMIL.</p>
+</note>
+<div2 id="model">
+<head>System Model</head>
+<p>Use of DFXP is intended to function in a wider context of Timed Text
+Authoring and Distribution mechanisms that are based upon a system
+model, depicted in <specref ref="model-graphic"/>, wherein the timed text authoring format
+serves as a bidirectional interchange format among a heterogeneous collection of
+authoring systems, and as a unidirectional interchange format to a
+heterogeneous collection of distribution formats after undergoing transcoding
+or compilation to the target distribution formats as required, and where one
+particular distribution format is DFXP.</p>
+<table id="model-graphic" role="example-images">
+<caption>Figure 1 – System Model</caption>
+<tbody>
+<tr>
+<td><graphic id="graphic-model" source="images/model.png" alt="System Model"/></td>
+</tr>
+</tbody>
+</table>
+</div2>
+<div2 id="example">
+<head>Document Example</head>
+<p>A DFXP document instance consists of a <el>tt</el> document element that contains
+a header and a body, where the header specifies document level metadata, styling
+definitions and layout definitions, and the body specifies text content intermixed
+with references to style and layout information and inline timing information.</p>
+<table id="dfxp-example-document-structure" role="example">
+<caption>Example Fragment – DFXP Document Structure</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1">
+ <head>
+ <metadata/>
+ <styling/>
+ <layout/>
+ </head>
+ <body/>
+</tt>
+</eg>
+</td></tr>
+</tbody>
+</table>
+<p>Document level metadata may specify a document title, description,
+and copyright information. In addition, arbitrary metadata drawn from
+other namespaces may be specified.</p>
+<table id="dfxp-example-metadata" role="example">
+<caption>Example Fragment – DFXP Metadata</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<metadata xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <ttm:title>Timed Text DFXP Example</ttm:title>
+ <ttm:copyright>The Authors (c) 2006</ttm:copyright>
+</metadata>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Styling information may be specified in the form of style specification
+definitions that are referenced by layout and content information.</p>
+<p>In <specref ref="dfxp-example-styling"/>, four style sets of specifications
+are defined, with one set serving as a collection of default styles.</p>
+<table id="dfxp-example-styling" role="example">
+<caption>Example Fragment – DFXP Styling</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<styling xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <!-- s1 specifies default color, font, and text alignment -->
+ <style xml:id="s1"
+ tts:color="white"
+ tts:fontFamily="proportionalSansSerif"
+ tts:fontSize="22px"
+ tts:textAlign="center"
+ />
+ <!-- alternative using yellow text but otherwise the same as style s1 -->
+ <style xml:id="s2" style="s1" tts:color="yellow"/>
+ <!-- a style based on s1 but justified to the right -->
+ <style xml:id="s1Right" style="s1" tts:textAlign="end" />
+ <!-- a style based on s2 but justified to the left -->
+ <style xml:id="s2Left" style="s2" tts:textAlign="start" />
+</styling>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Layout information defines one or more regions into which content
+is intended to be presented. A region definition may reference one or
+more sets of style specifications in order to permit content flowed in the
+region to inherit from these styles.
+In <specref ref="dfxp-example-layout"/>, the region definition makes
+reference to style specification <code>s1</code> which allows all content
+flowed into the region to inherit from the region's styles (in the case
+that a style is not already explicitly specified on content or inherited
+via the content hierarchy.)</p>
+<table id="dfxp-example-layout" role="example">
+<caption>Example Fragment – DFXP Layout</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<layout xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <region xml:id="subtitleArea"
+ style="s1"
+ tts:extent="560px 62px"
+ tts:padding="5px 3px"
+ tts:backgroundColor="black"
+ tts:displayAlign="after"
+ />
+</layout>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The content of a DFXP document instance is expressed in its
+body, which is organized in terms of block and inline text elements.
+The hierarchical organization of content elements serves a primary role in
+determining both spatial and temporal relationships. For example, in
+<specref ref="dfxp-example-body"/>, each paragraph (<el>p</el> element)
+is flowed into its target region in the specified lexical order; furthermore,
+the active time interval of each paragraph is timed in accordance to its
+parent or sibling according to the applicable time containment semantics —
+in this case, the division parent is interpreted as a parallel time
+container.</p>
+<table id="dfxp-example-body" role="example">
+<caption>Example Fragment – DFXP Body</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<body region="subtitleArea">
+ <div>
+ <p xml:id="subtitle1" begin="0.76s" end="3.45s">
+ It seems a paradox, does it not,
+ </p>
+ <p xml:id="subtitle2" begin="5.0s" end="10.0s">
+ that the image formed on<br/>
+ the Retina should be inverted?
+ </p>
+ <p xml:id="subtitle3" begin="10.0s" end="16.0s" style="s2">
+ It is puzzling, why is it<br/>
+ we do not see things upside-down?
+ </p>
+ <p xml:id="subtitle4" begin="17.2s" end="23.0s">
+ You have never heard the Theory,<br/>
+ then, that the Brain also is inverted?
+ </p>
+ <p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
+ No indeed! What a beautiful fact!
+ </p>
+ <p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
+ But how is it proved?
+ </p>
+ <p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
+ Thus: what we call
+ </p>
+ <p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
+ the vertex of the Brain<br/>
+ is really its base
+ </p>
+ <p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
+ and what we call its base<br/>
+ is really its vertex,
+ </p>
+ <p xml:id="subtitle9a" begin="53.5s" end="58.7s">
+ it is simply a question of nomenclature.
+ </p>
+ <p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
+ How truly delightful!
+ </p>
+ </div>
+</body>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The first subtitle <specref ref="dfxp-example-subtitle-1"/> is
+presented during the time interval 0.76 to 3.45 seconds. In this
+example, the default metric for time expressions is seconds since no
+metric is specified in the expressions.
+This subtitle inherits its font family, font size,
+foreground color, and text alignment from the region into which it is
+presented. Since no region is explicitly specified on the paragraph,
+the nearest ancestor that specifies a region determines the
+region. Note also that content is presented
+at the bottom (after edge) of the containing region due to the <code>tts:displayAlign="after"</code>
+being specified on the region definition.</p>
+<note role="explanation">
+<p>The notation "[<emph>X</emph>,<emph>Y</emph>]" denotes a closed
+interval from <emph>X</emph> to <emph>Y</emph>, including
+<emph>X</emph> and <emph>Y</emph>;
+"[<emph>X</emph>,<emph>Y</emph>)" denotes a right half-open
+interval from <emph>X</emph> to <emph>Y</emph>, including
+<emph>X</emph> but not including <emph>Y</emph>;
+"(<emph>X</emph>,<emph>Y</emph>]" denotes a left half-open
+interval from <emph>X</emph> to <emph>Y</emph>, not including
+<emph>X</emph> but including <emph>Y</emph>;
+"(<emph>X</emph>,<emph>Y</emph>)" denotes an open
+interval from <emph>X</emph> to <emph>Y</emph>, not including
+<emph>X</emph> or <emph>Y</emph>.
+</p>
+</note>
+<table id="dfxp-example-subtitle-1" role="example-images">
+<caption>Subtitle 1 – Time Interval [0.76, 3.45)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle1.png" alt="Subtitle 1"/></td>
+</tr>
+</tbody>
+</table>
+<p>The second subtitle continues with the default style, except that it contains
+two lines of text with an intervening author-specified line break. Note the effects of
+the use of <code>tts:textAlign="center"</code> to specify the paragraph's alignment
+in the inline progression direction.</p>
+<table id="dfxp-example-subtitle-2" role="example-images">
+<caption>Subtitle 2 – Time Interval [5.0, 10.0)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle2.png" alt="Subtitle 2"/></td>
+</tr>
+</tbody>
+</table>
+<p>The third subtitle continues, using a variant style which overrides the default style's
+foreground color with a different color.</p>
+<table id="dfxp-example-subtitle-3" role="example-images">
+<caption>Subtitle 3 – Time Interval [10.0, 16.0)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle3.png" alt="Subtitle 3"/></td>
+</tr>
+</tbody>
+</table>
+<p>The fourth subtitle reverts to the default style.</p>
+<table id="dfxp-example-subtitle-4" role="example-images">
+<caption>Subtitle 4 – Time Interval [17.2, 23.0)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle4.png" alt="Subtitle 4"/></td>
+</tr>
+</tbody>
+</table>
+<p>The fifth subtitle continues, again using a variant style which
+overrides the default style's foreground color with a different color.</p>
+<table id="dfxp-example-subtitle-5" role="example-images">
+<caption>Subtitle 5 – Time Interval [23.0, 27.0)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle5.png" alt="Subtitle 5"/></td>
+</tr>
+</tbody>
+</table>
+<p>During the next active time interval, two distinct subtitles are simultaneously active, with
+the paragraph expressing each subtitle using a different style that overrides color and paragraph
+text alignment of the default style. Note that the flow order is determined by the lexical
+order of elements as they appear in the content hierarchy.</p>
+<table id="dfxp-example-subtitle-6" role="example-images">
+<caption>Subtitles 6a and 6b – Time Interval [28.0, 34.6)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle6.png" alt="Subtitles 6a and 6b"/></td>
+</tr>
+</tbody>
+</table>
+<p>The next subtitle is specified in a similar manner using
+a style override to give a paragraph right (end) justified in the
+inline progression direction.</p>
+<table id="dfxp-example-subtitle-7" role="example-images">
+<caption>Subtitle 7 – Time Interval [34.6, 45.0)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle7.png" alt="Subtitles 7a and 7b"/></td>
+</tr>
+</tbody>
+</table>
+<p>The eighth subtitle uses the same style override as the previous
+subtitle in order to maintain the right (end) justification of the
+paragraph.</p>
+<table id="dfxp-example-subtitle-8" role="example-images">
+<caption>Subtitle 8 – Time Interval [47.3, 49.0)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle8.png" alt="Subtitle 8"/></td>
+</tr>
+</tbody>
+</table>
+<p>During the final (ninth) active time interval, two distinct
+subtitles are again simultaneously active, but with a different
+style applied to the second paragraph to override the default color.
+Note that the flow order is determined by the lexical order of
+elements as they appear in the content hierarchy.</p>
+<table id="dfxp-example-subtitle-9" role="example-images">
+<caption>Subtitles 9a and 9b – Time Interval [53.5, 58.7)</caption>
+<tbody>
+<tr>
+<td><graphic source="images/subtitle9.png" alt="Subtitles 9a and 9b"/></td>
+</tr>
+</tbody>
+</table>
+<p>The examples shown above demonstrate the primary types of information that may
+be authored using DFXP: metadata, styling, layout, timing, and content. In typical cases,
+styling and layout information are separately specified in a document instance. Content information
+is expressed in a hierarchical fashion that embodies the organization of both spatial (flow) and
+timing information. Content makes direct or indirect references to styling and layout information
+and may specify inline overrides to styling.</p>
+</div2>
+</div1>
+<div1 id="definitions">
+<head>Definitions</head>
+<div2 id="acronyms">
+<head>Acronyms</head>
+<glist role="acronyms">
+<gitem>
+<label>DFXP</label>
+<def>
+<p>Distribution Format Exchange Profile</p>
+</def>
+</gitem>
+<gitem>
+<label>TT</label>
+<def>
+<p>Timed Text</p>
+</def>
+</gitem>
+<gitem>
+<label>TT AS</label>
+<def>
+<p>Timed Text Authoring System</p>
+</def>
+</gitem>
+<gitem>
+<label>TT AF</label>
+<def>
+<p>Timed Text Authoring Format</p>
+</def>
+</gitem>
+<gitem>
+<label>TT WG</label>
+<def>
+<p>Timed Text Working Group</p>
+</def>
+</gitem>
+</glist>
+</div2>
+<div2 id="terms">
+<head>Terminology</head>
+<glist>
+<gitem>
+<label>Abstract Document Instance</label>
+<def>
+<p>An instance of an abstract data set as represented by a
+<emph>Reduced XML Infoset</emph>.</p>
+</def>
+</gitem>
+<gitem>
+<label>Abstract Document Type</label>
+<def>
+<p>A set of constraints that defines a class of <emph>XML Information
+Set</emph>s <bibref ref="infoset"/>.</p>
+</def>
+</gitem>
+<gitem>
+<label>Attribute Information Item</label>
+<def>
+<p>Each specified or defaulted attribute of an XML document corresponds with an attribute information
+item as defined by <bibref ref="infoset"/>, §2.3.</p>
+</def>
+</gitem>
+<gitem>
+<label>Character Information Item</label>
+<def>
+<p>Each data character appearing in an XML document corresponds with a character information
+item as defined by <bibref ref="infoset"/>, §2.6.</p>
+</def>
+</gitem>
+<gitem>
+<label>Content Region</label>
+<def>
+<p>A logical region into which rendered content is placed when modeling or
+performing presentation processing.</p>
+</def>
+</gitem>
+<gitem>
+<label>Element Information Item</label>
+<def>
+<p>Each element appearing in an XML document corresponds with an element information
+item as defined by <bibref ref="infoset"/>, §2.2.</p>
+</def>
+</gitem>
+<gitem>
+<label>Exchange Profile</label>
+<def>
+<p>A profile (subset) of the TT AF that serves a set of needs for content exchange.</p>
+</def>
+</gitem>
+<gitem>
+<label>Region</label>
+<def>
+<p>A logical construct that models authorial intention regarding
+desired or potential presentation processing, and which is represented as
+a rectangular area of a presentation surface into which content
+is composed and rendered during presentation processing.</p>
+</def>
+</gitem>
+<gitem>
+<label>Reduced XML Infoset</label>
+<def>
+<p>An XML Information Set <bibref ref="infoset"/> that satisfieds the
+constraints specify by <specref ref="reduced-infoset"/>.</p>
+</def>
+</gitem>
+<gitem>
+<label>Root Container Region</label>
+<def>
+<p>A logical region that establishes a coordinate system into which
+content regions are placed and optionally clipped.</p>
+</def>
+</gitem>
+<gitem>
+<label>Timed Text</label>
+<def>
+<p>Textual information that is intrinsically or extrinsically
+associated with timing information.</p>
+</def>
+</gitem>
+<gitem>
+<label>Timed Text Authoring Format</label>
+<def>
+<p>A content type that represents timed text media for the purpose of
+interchange among authoring systems.</p>
+</def>
+</gitem>
+<gitem>
+<label>Timed Text Authoring System</label>
+<def>
+<p>A content authoring system capable of importing and exporting
+timed text authoring format content.</p>
+</def>
+</gitem>
+</glist>
+</div2>
+<div2 id="conventions">
+<head>Documentation Conventions</head>
+<p>Within normative prose in this specification, the words
+<emph>may</emph>, <emph>should</emph>, and <emph>must</emph> are
+defined as follows:</p>
+<glist role="conformance-keywords">
+<gitem>
+<label>may</label>
+<def>
+<p>Conforming documents and/or TT AF processors are permitted to,
+but need not behave as described. </p>
+</def>
+</gitem>
+<gitem>
+<label>should</label>
+<def>
+<p>Conforming documents and/or TT AF processors are strongly
+recommended to, but need not behave as described.</p>
+</def>
+</gitem>
+<gitem>
+<label>must</label>
+<def>
+<p>Conforming documents and/or TT AF processors are required
+to behave as described; otherwise, they are in error. </p>
+</def>
+</gitem>
+</glist>
+<p>All normative syntactic definitions of XML representations and
+other related terms are depicted with a light orange background color
+and labeled as "XML Representation" or "Syntax Representation", such
+as in the following:</p>
+<table id="elt-syntax-example" role="syntax">
+<caption>XML Representation – Element Information Item: example</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<example
+ <phrase role="reqattr">count</phrase> = integer
+ size = (<emph>large</emph>|<emph>medium</emph>|<emph>small</emph>) : medium>
+ <emph>Content:</emph> (all | any*)
+</example>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>In an XML representation, bold-face attribute names (e.g. <phrase
+role="strong">count</phrase> above) indicate a required attribute
+information item, and the rest are optional. Where an attribute
+information item has an enumerated type definition, the values are
+shown separated by vertical bars, as for <code>size</code> above; if
+there is a default value, it is shown following a colon. Where an
+attribute information item has a built-in simple type definition
+defined in <bibref ref="xsd-2"/>, a hyperlink to its definition
+therein is given.</p>
+<p>The allowed content of the information item is shown as a grammar
+fragment, using the Kleene operators <code>?</code>, <code>*</code>
+and <code>+</code>. Each element name therein is a hyperlink to its
+own illustration.</p>
+<p>All content of this specification that is not explicitly marked as
+non-normative is considered to be normative. If a section or appendix
+header contains the the expression "Non-Normative", then the entirety
+of the section or appendix is considered non-normative.</p>
+<p>All paragraphs marked as a <phrase role="strong">Note</phrase> are considered non-normative.</p>
+<p>Example code fragments are depicted with a light blue-green
+background color and labeled as "Example Fragment", such as in
+the following:</p>
+<table id="example-fragment-1" role="example">
+<caption>Example Fragment – Sample</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<tt xml:lang="" xmlns="http://www.w3.org/2006/10/ttaf1">
+ <head>
+ <metadata/>
+ <styling/>
+ <layout/>
+ </head>
+ <body/>
+</tt>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div2>
+</div1>
+<div1 id="conformance">
+<head>Conformance</head>
+<p>This section specifies the general conformance requirements for
+TT AF content and processors.</p>
+<div2 id="conformance-content">
+<head>Content Conformance</head>
+<p>A TT AF document instance conforms to this specification if the following criteria are
+satisfied:</p>
+<olist>
+<item>
+<p>When transporting a document instance in a context in which a MIME
+Media Type <bibref ref="mime-media"/> identifies the content type of the interchanged document
+instance, then the specified media type is
+<code>application/ttaf+xml</code> in conformance with <bibref
+ref="rfc3023"/> § 7, with which an optional
+<code>profile</code> parameter may appear, the value of which
+conforms to the values defined by
+<specref ref="vocabulary-profiles"/>.</p>
+</item>
+<item>
+<p>The document instance is or can be represented as a Reduced XML
+Infoset as defined by <specref ref="reduced-infoset"/>.</p>
+</item>
+<item>
+<p>The Reduced XML
+Infoset that corresponds to the document instance is or can
+be associated with one of the TT AF Abstract
+Document Types defined by
+<specref ref="doctypes"/>.</p>
+</item>
+<item>
+<p>The Reduced XML Infoset that corresponds to the document instance is a
+Valid Abstract Document Instance of the associated
+Abstract Document Type.</p>
+</item>
+<item>
+<p>The Reduced XML Infoset satisfies all additional mandatory syntactic and
+semantic constraints defined by this specification. In addition, this Infoset
+should satisfy the web content accessibility guidelines specified by
+<bibref ref="wcag"/>.</p>
+</item>
+</olist>
+</div2>
+<div2 id="conformance-processor">
+<head>Processor Conformance</head>
+<p>A TT AF processor conforms to this specification if the following criteria are
+satisfied:</p>
+<olist>
+<item>
+<p>The processor provides at least one mechanism for notionally
+instantiating a Reduced XML
+Infoset representation of a conformant TT AF document
+instance.</p>
+</item>
+<item>
+<p>If a process does or can perform validation of a candidate TT AF
+document instance, then it provides at least one mechanism to
+implicitly or explicitly associate the
+Reduced XML Infoset representation
+of a conformant TT AF document instance with one of the
+TT AF Abstract Document Types defined by
+<specref ref="doctypes"/>.</p>
+</item>
+<item>
+<p>The processor does not <emph>a priori</emph> reject or abort the
+processing of a conformant TT AF document instance.</p>
+</item>
+<item>
+<p>The processor supports all mandatory processing semantics defined by this specification.</p>
+</item>
+<item>
+<p>If the processor claims to support presentation processing in order
+to produce a rendition of TT AF content on a visual medium, then it
+must implement the region and line layout
+semantics defined by <specref ref="semantics-region-layout"/> and
+<specref ref="semantics-line-layout"/>, respectively. In addition, the
+processor should satisfy the user agent accessibility guidelines specified by
+<bibref ref="uaag"/>.
+</p>
+</item>
+<item>
+<p>If the processor supports some optional processing semantics defined by this specification,
+then it does so in a manner consistent with the defined semantics.</p>
+</item>
+</olist>
+</div2>
+<div2 id="claims">
+<head>Claims</head>
+<p>Any claim of compliance with respect to TT AF content or processor
+conformance must make
+reference to an implementation compliance statement (ICS).</p>
+<p>An implementation compliance statement must identify all mandatory
+and optional features of this specification that are satisfied by the
+content or processor implementation. In particular, the statement must
+identify the utilized or supported TT AF vocabulary profile(s) as
+defined by <specref ref="vocabulary-profiles"/>, and, if a subset or
+superset profile is used or supported, then what features are excluded
+or included in the subset or superset profile.</p>
+<p>A TT AF document instance for which a compliance claim is made
+must specify a <att>ttp:profile</att> attribute on its root element
+as defined by <specref ref="parameter-attribute-profile"/>.</p>
+</div2>
+</div1>
+<div1 id="doctypes">
+<head>Document Types</head>
+<p>This section defines the following TT AF Abstract Document Types:</p>
+<ulist>
+<item><p><specref ref="dfxp-content-doctype"/></p></item>
+</ulist>
+<p>Each abstract document type consists of the following constraints:</p>
+<ulist>
+<item><p>a non-empty collection of element types, where each element type consists of a name,
+a (possibly empty) collection of attributes, and a content specification</p></item>
+<item><p>a non-empty collection of element types that may appear as the document element</p></item>
+</ulist>
+<p>An Abstract Document Instance may be assessed in terms of validity,
+and is considered to be a Valid Abstract Document Instance if it
+satisfies the following condition: if after</p>
+<olist>
+<item>
+<p>pruning all element information
+items whose names are not members of the collection of element types defined
+by the associated abstract document type, then</p>
+</item>
+<item>
+<p>pruning character
+information item children from any remaining element in case that all
+character children of the element denote XML whitespace characters and the element's type
+is defined as empty in the associated Abstract Document Type, and then</p>
+</item>
+<item>
+<p>pruning all attribute
+information items having expanded names such that the namespace URI of the
+expanded names are not listed in <specref
+ref="namespace-vocab-table"/>,</p>
+</item>
+</olist>
+<p>then the document element is one of the document
+element types permitted by the associated abstract document type,
+the descendants of the document
+element satisfy their respective element type's content
+specifications, all required attributes are present, and the declared
+value of each attribute satisfies the type declared by the
+associated abstract document type.</p>
+<note>
+<p>While a conformant processor may not <emph>a priori</emph> reject a conformant document
+instance, a given document instance may be constrained by the author or authoring tool
+to satisfy a more restrictive definition of validity.</p>
+</note>
+<div2 id="dfxp-content-doctype">
+<head>DFXP Content</head>
+<p>DFXP Content is an abstract document type of the Timed Text Authoring Format intended
+to be used for interchange among distribution systems. This document type
+is defined in terms of the
+element and attribute vocabulary
+specified in <specref ref="vocabulary"/>.</p>
+<p>This specification defines two types of normative schemas that may be used to validate a subset of
+conformant DFXP document instances:</p>
+<ulist>
+<item><p><specref ref="dfxp-schema-rnc"/></p></item>
+<item><p><specref ref="dfxp-schema-xsd"/></p></item>
+</ulist>
+<p>The (root) document element of a DFXP document instance must be a
+<el>tt</el> element, as defined by <specref
+ref="document-structure-vocabulary-tt"/>.</p>
+</div2>
+</div1>
+<div1 id="vocabulary">
+<head>Vocabulary</head>
+<p>This section defines the
+namespaces, profiles, and vocabulary (as an element an attribute
+catalog) of the Timed Text Authoring Format (TT AF) as follows:</p>
+<ulist>
+<item><p><specref ref="vocabulary-namespaces"/></p></item>
+<item><p><specref ref="vocabulary-profiles"/></p></item>
+<item><p><specref ref="vocabulary-overview"/></p></item>
+</ulist>
+<div2 id="vocabulary-namespaces">
+<head>Namespaces</head>
+<p>The Timed Text Authoring Format (TT AF) employs a number of
+namespaces for elements and certain
+global attributes. The following table specifies this set of namespaces
+and indicates the default prefix used within this specification and the
+normative URI that denotes each namespace.</p>
+<note role="explanation">
+<p>In a specific document instance, it is not required that the default
+prefixes shown below are used. Any prefix or namespace binding that satisfies the constraints
+of XML Namespaces may be used that is associated with the specified namespace URI.</p>
+</note>
+<table id="namespace-vocab-table" role="common">
+<caption>Table 1 – Namespaces</caption>
+<col width="25%"/>
+<tbody>
+<tr>
+<th>Name</th>
+<th>Prefix</th>
+<th>Value</th>
+</tr>
+<tr>
+<td>TT</td>
+<td><code>tt:</code></td>
+<td><code>http://www.w3.org/2006/10/ttaf1</code></td>
+</tr>
+<tr>
+<td>TT Parameter</td>
+<td><code>ttp:</code></td>
+<td><code>http://www.w3.org/2006/10/ttaf1#parameter</code></td>
+</tr>
+<tr>
+<td>TT Style</td>
+<td><code>tts:</code></td>
+<td><code>http://www.w3.org/2006/10/ttaf1#style</code></td>
+</tr>
+<tr>
+<td>TT Style Extensions</td>
+<td><code>ttsx:</code></td>
+<td><code>http://www.w3.org/2006/10/ttaf1#style-extension</code></td>
+</tr>
+<tr>
+<td>TT Metadata</td>
+<td><code>ttm:</code></td>
+<td><code>http://www.w3.org/2006/10/ttaf1#metadata</code></td>
+</tr>
+<tr>
+<td>TT Metadata Extensions</td>
+<td><code>ttmx:</code></td>
+<td><code>http://www.w3.org/2006/10/ttaf1#metadata-extension</code></td>
+</tr>
+</tbody>
+</table>
+<note role="clarification">
+<p>If a reference to an element type is used in this specification and the name
+of the element type is not namespace qualified, then the TT Namespace applies.</p>
+</note>
+</div2>
+<div2 id="vocabulary-profiles">
+<head>Profiles</head>
+<p>The Timed Text Authoring Format (TT AF) employs a number of profiles of its
+vocabulary and associated semantics.
+The following table specifies this set of profiles
+and indicates a normative name for each profile.</p>
+<table id="profile-vocab-table" role="common">
+<caption>Table 2 – Profiles</caption>
+<col width="25%"/>
+<tbody>
+<tr>
+<th>Name</th>
+<th>Value</th>
+</tr>
+<tr>
+<td>DFXP</td>
+<td><code>http://www.w3.org/2006/10/ttaf1#profile-dfxp</code></td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p>A convention is defined for use by content authors to indicate use of a
+subtractive or additive delta to a predefined profile by using an
+optional <emph>sub-profile</emph> suffix of a profile URI: if a sub-profile
+is subtractive (results in a proper subset), then the <emph>sub-profile</emph>
+is expressed as "-token"; if additive (results in a proper superset), then it is
+expressed as "+token", where <emph>token</emph> expresses an author determined
+sub-profile that adheres to the <code>xsd:NCName</code> data type
+defined in <bibref ref="xsd-2"/>, §3.3.7.</p>
+<p>All tokens used in a sub-profile suffix that do not start with the
+prefix <code>x-</code> are reserved for future standardization.</p>
+<p>The profile of a document instance is specified using a
+<att>ttp:profile</att> attribute as defined by <specref
+ref="parameter-attribute-profile"/>.</p>
+<note role="explanation">
+<p>A TT AF authoring system may indicate the profile of TT AF used in
+a document instance by
+specifying a <att>ttp:profile</att> attribute.
+A TT AF content processor may make use of this profile value to
+associate a document instance with a schema or processing functions.</p>
+</note>
+<p>An example of an author defined "tiny" subtractive sub-profile of DFXP is shown
+below in <specref ref="dfxp-example-sub-profile"/>.</p>
+<table id="dfxp-example-sub-profile" role="example">
+<caption>Example Fragment – DFXP Subtractive Profile</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<tt
+ ttp:profile="http://www.w3.org/2006/10/ttaf1#profile-dfxp-x-tiny"
+ xml:lang=""
+ xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter">
+ ...
+</tt>
+</eg>
+</td></tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>Because the above example is an author defined sub-profile (as
+opposed to a future W3C defined profile), the sub-profile token
+contains the prefix <code>x-</code>.</p>
+</note>
+</div2>
+<div2 id="vocabulary-overview">
+<head>Catalog</head>
+<p>The vocabulary of the Timed Text Authoring Format (TT AF) is
+defined in the following major catalogs (divisions of vocabulary):</p>
+<ulist>
+<item><p><specref ref="core-vocabulary-overview"/></p></item>
+<item><p><specref ref="extension-vocabulary-overview"/></p></item>
+</ulist>
+<p>The core catalog defines the baseline, core vocabulary of the TT
+AF, and, in particular, the vocabulary of DFXP. The extensions catalog
+serves as a placeholder for extensions to the core vocabulary defined
+by DFXP.</p>
+<div3 id="core-vocabulary-overview">
+<head>Core Catalog</head>
+<p>The core vocabulary catalog is intended to satisfy the needs of
+DFXP while providing a baseline vocabulary for future profiles. This vocabulary
+is divided into distinct categories, specified in detail
+in the following sections:</p>
+<ulist>
+<item><p><specref ref="parameters"/></p></item>
+<item><p><specref ref="content"/></p></item>
+<item><p><specref ref="styling"/></p></item>
+<item><p><specref ref="layout"/></p></item>
+<item><p><specref ref="timing"/></p></item>
+<item><p><specref ref="animation"/></p></item>
+<item><p><specref ref="metadata"/></p></item>
+</ulist>
+<p>The core element vocabulary specified for use with a TT AF document
+instance is enumerated in
+<specref ref="element-vocab-table"/>.</p>
+<table id="element-vocab-table" role="common">
+<caption>Table 3 – Element Vocabulary</caption>
+<col width="25%"/>
+<tbody>
+<tr>
+<th>Module</th>
+<th>Elements</th>
+</tr>
+<tr>
+<td>
+Animation
+</td>
+<td>
+<loc href="#animation-vocabulary-set">set</loc>
+</td>
+</tr>
+<tr>
+<td>
+Content
+</td>
+<td>
+<loc href="#document-structure-vocabulary-body">body</loc>,
+<loc href="#content-vocabulary-div">div</loc>,
+<loc href="#content-vocabulary-p">p</loc>,
+<loc href="#content-vocabulary-span">span</loc>,
+<loc href="#content-vocabulary-br">br</loc>
+</td>
+</tr>
+<tr>
+<td>
+Document
+</td>
+<td>
+<loc href="#document-structure-vocabulary-tt">tt</loc>
+</td>
+</tr>
+<tr>
+<td>
+Head
+</td>
+<td>
+<loc href="#document-structure-vocabulary-head">head</loc>
+</td>
+</tr>
+<tr>
+<td>
+Layout
+</td>
+<td>
+<loc href="#layout-vocabulary-layout">layout</loc>,
+<loc href="#layout-vocabulary-region">region</loc>
+</td>
+</tr>
+<tr>
+<td>
+Metadata
+</td>
+<td>
+<loc href="#metadata-vocabulary-metadata">metadata</loc>
+</td>
+</tr>
+<tr>
+<td>
+Metadata Items
+</td>
+<td>
+<loc href="#metadata-vocabulary-actor">ttm:actor</loc>,
+<loc href="#metadata-vocabulary-agent">ttm:agent</loc>,
+<loc href="#metadata-vocabulary-copyright">ttm:copyright</loc>,
+<loc href="#metadata-vocabulary-desc">ttm:desc</loc>,
+<loc href="#metadata-vocabulary-name">ttm:name</loc>,
+<loc href="#metadata-vocabulary-title">ttm:title</loc>
+</td>
+</tr>
+<tr>
+<td>
+Styling
+</td>
+<td>
+<loc href="#styling-vocabulary-styling">styling</loc>,
+<loc href="#styling-vocabulary-style">style</loc>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p>Element vocabulary groups that are used in defining content models
+for TT AF element types are enumerated in <specref ref="element-vocab-group-table"/>.</p>
+<table id="element-vocab-group-table" role="common">
+<caption>Table 4 – Element Vocabulary Groups</caption>
+<col width="25%"/>
+<tbody>
+<tr>
+<th>Group</th>
+<th>Elements</th>
+</tr>
+<tr>
+<td>
+Animation.class
+</td>
+<td>
+<loc href="#animation-vocabulary-set">set</loc>
+</td>
+</tr>
+<tr>
+<td>
+Block.class
+</td>
+<td>
+<loc href="#content-vocabulary-div">div</loc> |
+<loc href="#content-vocabulary-p">p</loc>
+</td>
+</tr>
+<tr>
+<td>
+Inline.class
+</td>
+<td>
+<loc href="#content-vocabulary-span">span</loc> |
+<loc href="#content-vocabulary-span">br</loc> |
+<code>#PCDATA</code>
+</td>
+</tr>
+<tr>
+<td>
+Metadata.class
+</td>
+<td>
+<loc href="#metadata-vocabulary-metadata">metadata</loc> |
+<loc href="#metadata-vocabulary-copyright">ttm:agent</loc> |
+<loc href="#metadata-vocabulary-copyright">ttm:copyright</loc> |
+<loc href="#metadata-vocabulary-desc">ttm:desc</loc> |
+<loc href="#metadata-vocabulary-title">ttm:title</loc>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p>The attribute vocabulary specified for use with the core vocabulary
+catalog is enumerated in
+<specref ref="attribute-vocab-table"/>.</p>
+<table id="attribute-vocab-table" role="common">
+<caption>Table 5 – Attribute Vocabulary</caption>
+<col width="25%"/>
+<tbody>
+<tr>
+<th>Module</th>
+<th>Attributes</th>
+</tr>
+<tr>
+<td>
+Core Attributes
+</td>
+<td>
+<loc href="#content-attribute-requiredExtensions">requiredExtensions</loc>,
+<loc href="#content-attribute-requiredFeatures">requiredFeatures</loc>,
+<loc href="#content-attribute-requiredFonts">requiredFonts</loc>,
+<loc href="#content-attribute-id">xml:id</loc>,
+<loc href="#content-attribute-lang">xml:lang</loc>,
+<loc href="#content-attribute-space">xml:space</loc>
+</td>
+</tr>
+<tr>
+<td>
+Layout
+</td>
+<td>
+<loc href="#layout-attribute-region">region</loc>
+</td>
+</tr>
+<tr>
+<td>
+Metadata Attributes
+</td>
+<td>
+<loc href="#metadata-attribute-agent">ttm:agent</loc>,
+<loc href="#metadata-attribute-role">ttm:role</loc>
+</td>
+</tr>
+<tr>
+<td>
+Parameter Attributes
+</td>
+<td>
+<loc href="#parameter-attribute-cellResolution">ttp:cellResolution</loc>,
+<loc href="#parameter-attribute-clockMode">ttp:clockMode</loc>,
+<loc href="#parameter-attribute-frameRate">ttp:frameRate</loc>,
+<loc href="#parameter-attribute-frameRateMultiplier">ttp:frameRateMultipler</loc>,
+<loc href="#parameter-attribute-markerMode">ttp:markerMode</loc>,
+<loc href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</loc>,
+<loc href="#parameter-attribute-profile">ttp:profile</loc>,
+<loc href="#parameter-attribute-smpteMode">ttp:smpteMode</loc>,
+<loc href="#parameter-attribute-subFrameRate">ttp:subFrameRate</loc>,
+<loc href="#parameter-attribute-tickRate">ttp:tickRate</loc>,
+<loc href="#parameter-attribute-timeBase">ttp:timeBase</loc>
+</td>
+</tr>
+<tr>
+<td>
+Styling
+</td>
+<td>
+<loc href="#style-attribute-style">style</loc>
+</td>
+</tr>
+<tr>
+<td>
+Styling Attributes
+</td>
+<td>
+<loc href="#style-attribute-backgroundColor">tts:backgroundColor</loc>,
+<loc href="#style-attribute-color">tts:color</loc>,
+<loc href="#style-attribute-direction">tts:direction</loc>,
+<loc href="#style-attribute-display">tts:display</loc>,
+<loc href="#style-attribute-displayAlign">tts:displayAlign</loc>,
+<loc href="#style-attribute-dynamicFlow">tts:dynamicFlow</loc>,
+<loc href="#style-attribute-extent">tts:extent</loc>,
+<loc href="#style-attribute-fontFamily">tts:fontFamily</loc>,
+<loc href="#style-attribute-fontSize">tts:fontSize</loc>,
+<loc href="#style-attribute-fontStyle">tts:fontStyle</loc>,
+<loc href="#style-attribute-fontWeight">tts:fontWeight</loc>,
+<loc href="#style-attribute-lineHeight">tts:lineHeight</loc>,
+<loc href="#style-attribute-opacity">tts:opacity</loc>,
+<loc href="#style-attribute-origin">tts:origin</loc>,
+<loc href="#style-attribute-overflow">tts:overflow</loc>,
+<loc href="#style-attribute-padding">tts:padding</loc>,
+<loc href="#style-attribute-showBackground">tts:showBackground</loc>,
+<loc href="#style-attribute-textAlign">tts:textAlign</loc>,
+<loc href="#style-attribute-textDecoration">tts:textDecoration</loc>,
+<loc href="#style-attribute-textOutline">tts:textOutline</loc>,
+<loc href="#style-attribute-unicodeBidi">tts:unicodeBidi</loc>,
+<loc href="#style-attribute-visibility">tts:visibility</loc>,
+<loc href="#style-attribute-wrapOption">tts:wrapOption</loc>,
+<loc href="#style-attribute-writingMode">tts:writingMode</loc>,
+<loc href="#style-attribute-zIndex">tts:zIndex</loc>
+</td>
+</tr>
+<tr>
+<td>
+Timing Attributes
+</td>
+<td>
+<loc href="#timing-attribute-begin">begin</loc>,
+<loc href="#timing-attribute-dur">dur</loc>,
+<loc href="#timing-attribute-end">end</loc>,
+<loc href="#timing-attribute-timeContainer">timeContainer</loc>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>All vocabulary defined by the TT AF consistently makes use of
+the so-called <emph>lowerCamelCase</emph> naming convention. In some cases, this results in the
+change of a name when the name was based upon another specification
+that used a different naming convention.</p>
+</note>
+</div3>
+<div3 id="extension-vocabulary-overview">
+<head>Extension Catalog</head>
+<p>The extension vocabulary catalog is intended for use by future
+profiles of the TT AF.</p>
+<p>In this version of this specification, no
+standardized extension vocabulary is defined. Two namespaces are
+specifically reserved by <specref ref="namespace-vocab-table"/>
+for metadata and style extension vocabulary:</p>
+<ulist>
+<item>
+<p>TT Style Extensions</p>
+</item>
+<item>
+<p>TT Metadata Extensions</p>
+</item>
+</ulist>
+<p>In addition to standardized extension vocabulary, a conforming TT
+AF document instance may contain arbitrary namespace qualified
+elements that reside in any namespace other than those namespaces
+defined for use with this specification. Furthermore, a conforming TT
+AF document instance may contain arbitrary namespace qualified
+attributes on TT AF defined vocabulary where such attributes reside in
+any namespace other than those defined for use with this
+specification.</p>
+</div3>
+</div2>
+</div1>
+<div1 id="parameters">
+<head>Parameters</head>
+<p>This section specifies the <emph>parameters</emph> matter of the
+core vocabulary catalog, where
+parameters are to be understood as information that is either (1)
+essential or (2) of significant importance for the purpose of
+interpreting the semantics of other types of information expressed by
+core vocabulary items or for establishing a processing context by means
+of which TT AF content can be related to an external environment.</p>
+<div2 id="parameters-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>No parameters related element vocabulary is defined for use in the
+core vocabulary catalog.</p>
+</div2>
+<div2 id="parameters-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>The following attributes are defined in the TT Parameter Namespace.</p>
+<ulist>
+<item><p><specref ref="parameter-attribute-cellResolution"/></p></item>
+<item><p><specref ref="parameter-attribute-clockMode"/></p></item>
+<item><p><specref ref="parameter-attribute-frameRate"/></p></item>
+<item><p><specref ref="parameter-attribute-frameRateMultiplier"/></p></item>
+<item><p><specref ref="parameter-attribute-markerMode"/></p></item>
+<item><p><specref ref="parameter-attribute-pixelAspectRatio"/></p></item>
+<item><p><specref ref="parameter-attribute-profile"/></p></item>
+<item><p><specref ref="parameter-attribute-smpteMode"/></p></item>
+<item><p><specref ref="parameter-attribute-subFrameRate"/></p></item>
+<item><p><specref ref="parameter-attribute-tickRate"/></p></item>
+<item><p><specref ref="parameter-attribute-timeBase"/></p></item>
+</ulist>
+<p>Unless explicitly stated otherwise, linear white-space (LWSP) may
+appear between tokens of a value of a TT Parameter.</p>
+<div3 id="parameter-attribute-cellResolution">
+<head>ttp:cellResolution</head>
+<p>The <att>ttp:cellResolution</att> attribute may be used by an author
+to express the number of horizontal and vertical cells into which the root container region
+area is divided for the purpose of expressing presentation semantics in terms of
+a uniform grid.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-cellResolution-syntax" role="syntax">
+<caption>Syntax Representation – ttp:cellResolution</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:cellResolution
+ : columns rows // <emph>columns</emph> != 0; <emph>rows</emph> != 0
+
+columns | rows
+ : <loc href="#style-value-digit"><digit></loc>+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If not specified, the number of columns and rows must be considered
+to be 32 and 15, respectively. If specified, then columns or rows must not be zero (0).</p>
+<note role="motivation">
+<p>The choice of values 32 and 15 are based on this being the
+maximum number of columns and rows defined by <bibref
+ref="cea608c"/>.</p>
+</note>
+<p>A <att>ttp:cellResolution</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<note role="explanation">
+<p>The use of a uniform grid is employed only for the purpose of
+measuring lengths and expressing coordinates. In particular, it is not
+assumed that the presentation of text or the alignment of individual
+glyph areas is
+coordinated with this grid. Such alignment is possible, but
+requires the use of a monospaced font and a font size whose EM square exactly
+matches the cell size.</p>
+</note>
+</div3>
+<div3 id="parameter-attribute-clockMode">
+<head>ttp:clockMode</head>
+<p>The <att>ttp:clockMode</att> attribute is used to specify the
+interpretation of time expressions as real-time time coordinates when
+operating with time base of <code>clock</code> as defined by <specref
+ref="parameter-attribute-timeBase"/>.</p>
+<note role="explanation">
+<p>See <specref ref="timing-time-value-expressions"/> for the
+specification of time expression syntax.</p>
+</note>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-clockMode-syntax" role="syntax">
+<caption>Syntax Representation – ttp:clockMode</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:clockMode
+ : "local"
+ | "gps"
+ | "utc"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If the time base, defined by <specref
+ref="parameter-attribute-timeBase"/>, is designated as
+<code>clock</code>, then this parameter applies as follows: if the
+parameter's value is <code>local</code>, then time expressions are
+interpreted as local wall-clock time coordinates;
+if <code>utc</code>, then time expressions are
+interpreted as UTC time coordinates
+<bibref ref="utc"/>;
+if <code>gps</code>, then time expressions are
+interpreted as GPS time coordinates
+<bibref ref="gps"/>.</p>
+<note role="explanation">
+<p>The primary difference between GPS time and UTC time is that GPS
+time is not adjusted for leap seconds, while UTC time is adjusted as
+follows: UTC = TAI (<emph>Temp Atomique International</emph>) + <emph>leap seconds
+accumulated since 1972</emph>. TAI is maintained by the <emph>Bureau
+International des Poids et Mesures</emph> (BIPM) in Sevres, France.
+The GPS system time is steered to a Master Clock (MC) at the US Naval
+Observatory which is kept within a close but unspecified
+tolerance of TAI.</p>
+</note>
+<p>If not specified, the value of this parameter must be considered
+to be <code>utc</code>.</p>
+<p>A <att>ttp:clockMode</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-frameRate">
+<head>ttp:frameRate</head>
+<p>The <att>ttp:frameRate</att> attribute is used to specify the frame rate of a related
+media object or the intrinsic frame rate of a document instance in case it is intended
+to function as an independent media object.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-frameRate-syntax" role="syntax">
+<caption>Syntax Representation – ttp:frameRate</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:frameRate
+ : <loc href="#style-value-digit"><digit></loc>+ // <emph>value</emph> > 0
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The frame rate that applies to a document instance is used to
+interpret time expressions that are expressed in <emph>frames</emph>
+as defined by <specref ref="timing-value-timeExpression"/>.</p>
+<p>A frame is interpreted as a division of a second of media
+time, such that if the frame rate is specified as <emph>F</emph>, then
+a second of media time is divided into <emph>F</emph> intervals of
+equal duration, where each interval is labeled as frame <emph>f</emph>,
+with <emph>f</emph> ∈ [0…<emph>F−1</emph>].</p>
+<p>If not specified, the frame rate must be considered to be equal to some
+application defined frame rate, or if no application defined frame rate applies,
+then thirty (30) frames per second. If specified, then the frame rate must
+be greater than zero (0).</p>
+<p>A <att>ttp:frameRate</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-frameRateMultiplier">
+<head>ttp:frameRateMultiplier</head>
+<p>The <att>ttp:frameRateMultiplier</att> attribute is used to
+specify a multiplier to be applied to the frame rate specified by a
+<att>ttp:frameRate</att> attribute in order to compute the effective
+frame rate.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-frameRateMultiplier-syntax" role="syntax">
+<caption>Syntax Representation – ttp:frameRateMultiplier</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:frameRateMultiplier
+ : numerator ( ":" denominator )? // <emph>denominator</emph> != 0
+
+numerator | denominator
+ : <loc href="#style-value-digit"><digit></loc>+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>A frame rate multiplier is used when the desired frame rate cannot
+be expressed as an integral number of frames per second.</p>
+<p>If not specified, the frame rate multiplier must be considered to
+be equal to one (1:1). If a denominator is specified, then it must not be zero (0).</p>
+<p>A <att>ttp:frameRateMultiplier</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<note role="example">
+<p>The frame rate multiplier used for synchronizing with NTSC <bibref
+ref="smpte170m"/>
+formatted video objects at 30 frames per second is nominally
+1000:1001. The nominal frame rate of NTSC video is defined as the chrominance
+sub-carrier frequency of 3,579,545.45…Hz (= 5.0MHz &mult; 63/88) times the ratio 2/455 divided by
+the number of horizontal lines per frame of 525, which yields a frame
+rate of 29.970029970029… (= 30 &mult; 1000/1001) frames per
+second. Other frame rate multipliers apply to different regions of
+usage and video format standards.</p>
+</note>
+<note role="example">
+<p>Except in the case of PAL/M, the frame rate multiplier used for synchronizing with PAL
+formatted video objects at 25 frames per second is nominally 1:1.</p>
+</note>
+</div3>
+<div3 id="parameter-attribute-markerMode">
+<head>ttp:markerMode</head>
+<p>The <att>ttp:markerMode</att> attribute is used to specify
+constraints on the interpretation and use of time expressions
+that correspond with <bibref ref="smpte12m"/> time coordinates when operating
+with time base of <code>smpte</code> as defined by
+<specref ref="parameter-attribute-timeBase"/>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-markerMode-syntax" role="syntax">
+<caption>Syntax Representation – ttp:markerMode</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:markerMode
+ : "continuous"
+ | "discontinuous"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If the time base, defined by <specref
+ref="parameter-attribute-timeBase"/>, is designated as
+<code>smpte</code>, then this parameter applies as follows: if the
+parameter's value is <code>continuous</code>, then <bibref ref="smpte12m"/> time coordinates
+may be assumed to be linear and either monotonically increasing or
+decreasing; however, if <code>discontinuous</code>, then any assumption
+must not be made regarding linearity or monotonicity of time coordinates.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>continuous</code>.</p>
+<p>A <att>ttp:markerMode</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<p>If a value of <code>discontinuous</code> applies, then time
+expressions must not be converted to either media time or real time
+coordinates, arithmetical operators (addition, multiplication) are not
+defined on time expressions, and, consequently, any expression of a
+duration must be ignored.</p>
+<note role="explanation">
+<p>When operating with <code>smpte</code> time base and
+<code>discontinuous</code> marker mode, there is no effective time coordinate
+space; rather, all time expressions are interpreted as labeled
+synchronization events (markers), where some external synchronization
+context emits these events, which, when they correspond with time
+expressions that denote the same label, cause a temporal interval to
+begin or end accordingly.</p>
+<p>An additional side-effect of operating in <code>discontinuous</code>
+mode is that time expressions of children have no necessary
+relationship with time expressions of their temporal container; that
+is, temporal containers and children of these containers are
+temporally activated and inactivated independently based on the
+occurrence of a labeled synchronization (marker) event.</p>
+</note>
+<note role="explanation">
+<p>The notion of marker discontinuity as captured by this parameter
+is logically independent from the method used to count frames as
+expressed by the <att>ttp:smpteMode</att> parameter. In particular,
+even if the <att>ttp:smpteMode</att> parameter is specified as
+<code>dropNTSC</code> or <code>dropPAL</code>, the marker mode may be
+specified as <code>continuous</code>, even in the presence of frame count
+discontinuities induced by the frame counting method, unless there
+were some other non-linearity or discontinuity in marker labeling, for
+example, two consecutive frames labeled as <code>10:00:00:00</code>
+and <code>10:00:01:00</code>.
+</p>
+</note>
+</div3>
+<div3 id="parameter-attribute-pixelAspectRatio">
+<head>ttp:pixelAspectRatio</head>
+<p>The <att>ttp:pixelAspectRatio</att> attribute may be used by a content author
+to express the aspect ratio of non-square pixels in the production of content that
+makes use of pixel coordinates.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-pixelAspectRatio-syntax" role="syntax">
+<caption>Syntax Representation – ttp:pixelAspectRatio</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:pixelAspectRatio
+ : width ":" height // <emph>width</emph> != 0; <emph>height</emph> != 0
+
+width | height
+ : <loc href="#style-value-digit"><digit></loc>+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If not specified, then square pixels (i.e., aspect ratio 1:1) must be assumed to apply.
+If specified, then width or height must not be zero.</p>
+<p>A <att>ttp:pixelAspectRatio</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<note role="explanation">
+<p>This parameter may be used by a content transcoder or translator in
+order to convert pixel measurements between different pixel aspect
+ratios while still maintaining authorial layout intentions.</p>
+</note>
+</div3>
+<div3 id="parameter-attribute-profile">
+<head>ttp:profile</head>
+<p>The <att>ttp:profile</att> attribute may be used by a content author
+to express the profile of the Timed Text Authoring Format (TT AF) used
+in a document instance.</p>
+<p>If specified, the value of this attribute must adhere to the
+<code>xsd:anyURI</code> data type defined by <bibref ref="xsd-2"/>,
+§3.2.17, and, further, must specify a profile URI as defined
+by <specref ref="vocabulary-profiles"/>.</p>
+<p>If not specified, then the Distribution Format Exchange Profile
+(DFXP) must be assumed to apply.</p> <p>A <att>ttp:profile</att>
+attribute is considered to be significant only when specified on the
+<el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-smpteMode">
+<head>ttp:smpteMode</head>
+<p>The <att>ttp:smpteMode</att> attribute is used to specify
+constraints on the interpretation and use of frame counts
+that correspond with <bibref ref="smpte12m"/> time coordinates when operating
+with time base of <code>smpte</code> as defined by
+<specref ref="parameter-attribute-timeBase"/>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-smpteMode-syntax" role="syntax">
+<caption>Syntax Representation – ttp:smpteMode</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:smpteMode
+ : "dropNTSC"
+ | "dropPAL"
+ | "nonDrop"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If the time base, defined by <specref
+ref="parameter-attribute-timeBase"/>, is designated as
+<code>smpte</code>, then this parameter applies as follows: if the
+parameter's value is <code>nonDrop</code>, then, within any given
+second of a time expression, frames count from 0 to
+<emph>N−1</emph>, where <emph>N</emph> is the value specified by
+the <att>ttp:frameRate</att> parameter, but while ignoring any value
+specified by the <att>ttp:frameRateMultiplier</att> parameter.</p>
+<note role="clarification"> <p>When operating in <code>nonDrop</code>
+mode, a second of a time expression may or may not be equal to a
+second of real time during normal (1x speed) forward playback. If the
+<att>ttp:frameRateMultiplier</att> parameter is specified and is not
+equal to 1:1, then a second of a time expression will either be
+shorter or longer than a second of elapsed play in real
+time.</p></note>
+<p>If this parameter's value is <code>dropNTSC</code>, then, within any
+given second of a time expression except the second <code>00</code>,
+frames count from 0 to <emph>N−1</emph>, where <emph>N</emph> is
+the value specified by the <att>ttp:frameRate</att> parameter, but
+while ignoring any value specified by the
+<att>ttp:frameRateMultiplier</att> parameter. If the second of a time
+expression is <code>00</code> and the minute of the time expression is
+not <code>00</code>, <code>10</code>, <code>20</code>, <code>30</code>,
+<code>40</code>, or <code>50</code>, then frame codes <code>00</code>
+and <code>01</code> are dropped during that second; otherwise, these
+frame codes are not dropped.</p>
+<note role="example"> <p>For example, when operating in <code>dropNTSC</code>
+mode with <att>ttp:frameRate</att> of <code>30</code>, a discontinuity
+in frame count occurs between consecutive frames as shown in the
+following sequence of time expressions: <code>01:08:59:28</code>,
+<code>01:08:59:29</code>, <code>01:09:00:02</code>,
+<code>01:09:00:03</code>.</p></note>
+<p>If this parameter's value is <code>dropPAL</code>, then, within any
+given second of a time expression except the second <code>00</code>,
+frames count from 0 to <emph>N−1</emph>, where <emph>N</emph> is
+the value specified by the <att>ttp:frameRate</att> parameter, but
+while ignoring any value specified by the
+<att>ttp:frameRateMultiplier</att> parameter. If the second of a time
+expression is <code>00</code> and the minute of the time expression is
+even but not <code>00</code>, <code>20</code>, or <code>40</code>,
+then frame codes <code>00</code> through <code>03</code> are dropped
+during that second; otherwise, these frame codes are not dropped.</p>
+<note role="example"><p>For example, when operating in <code>dropPAL</code>
+mode with <att>ttp:frameRate</att> of <code>30</code>, a discontinuity
+in frame count occurs between consecutive frames as shown in the
+following sequence of time expressions: <code>01:09:59:28</code>,
+<code>01:09:59:29</code>, <code>01:10:00:04</code>,
+<code>01:10:00:04</code>.</p></note>
+<note role="explanation">
+<p>The <code>dropPAL</code> mode is also known as the
+<emph>M/PAL</emph> or <emph>PAL (M)</emph> drop-frame
+code, which uses PAL modulation with the NTSC frame rate of ~29.97
+frames/second. The M/PAL system is used primarily in Brazil.</p>
+</note>
+<p>If not specified, then <code>nonDrop</code> must be assumed to apply.</p>
+<p>A <att>ttp:smpteMode</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-subFrameRate">
+<head>ttp:subFrameRate</head>
+<p>The <att>ttp:subFrameRate</att> attribute is used to specify the sub-frame rate of a related
+media object or the intrinsic sub-frame rate of a document instance in case it is intended
+to function as an independent media object.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-subFrameRate-syntax" role="syntax">
+<caption>Syntax Representation – ttp:subFrameRate</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:subFrameRate
+ : <loc href="#style-value-digit"><digit></loc>+ // <emph>value</emph> > 0
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The sub-frame rate that applies to a document instance is used to
+interpret time expressions that are expressed in <emph>sub-frames</emph>
+as defined by <specref ref="timing-value-timeExpression"/>.</p>
+<p>A sub-frame is interpreted as a division of a frame of media
+time, such that if the sub-frame rate is specified as <emph>S</emph>, then
+a frame of media time is divided into <emph>S</emph> intervals of
+equal duration, where each interval is labeled as sub-frame <emph>s</emph>,
+with <emph>s</emph> ∈ [0…<emph>S−1</emph>].</p>
+<p>If not specified, the sub-frame rate must be considered to be
+equal to one (1). If specified, then the sub-frame rate must be greater than zero (0).</p>
+<p>A <att>ttp:subFrameRate</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<note role="clarification">
+<p>The sub-frame is sometimes referred to as a <emph>field</emph> in
+the context of synchronization with an interlaced video media object.</p>
+</note>
+</div3>
+<div3 id="parameter-attribute-tickRate">
+<head>ttp:tickRate</head>
+<p>The <att>ttp:tickRate</att> attribute is used to specify the tick rate of a related
+media object or the intrinsic tick rate of content of a document instance in case it is intended
+to function as an independent media object.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-tickRate-syntax" role="syntax">
+<caption>Syntax Representation – ttp:tickRate</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:tickRate
+ : <loc href="#style-value-digit"><digit></loc>+ // <emph>value</emph> > 0
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The tick rate that applies to a document instance is used to
+interpret time expressions that are expressed in <emph>ticks</emph> by
+using the <code>t</code> metric as defined by <specref
+ref="timing-value-timeExpression"/>.</p>
+<p>A tick is interpreted as an integral division of a second of media
+time, such that if the tick rate is specified as <emph>T</emph>, then
+a second of media time is divided into <emph>T</emph> intervals of
+equal duration, where each interval is labeled as tick <emph>t</emph>,
+with <emph>t</emph> ∈ [0…<emph>T−1</emph>].</p>
+<p>If not specified, then if a frame rate is specified, the tick rate
+must be considered to be the effective frame rate multiplied by the
+sub-frame rate (i.e., ticks are interpreted as sub-frames); or, if no
+frame rate is specified, the tick rate must be considered to be one (1)
+tick per second of media time. If specified, then the tick rate
+must not be zero (0).</p>
+<note role="clarification">
+<p>There is no predefined relationship between ticks and frames or
+sub-frames. Ticks are an arbitrary division of seconds that permit
+use of fixed point arithmetic rather than fractional (and potentially
+inexact) expressions of seconds.</p>
+</note>
+<p>A <att>ttp:tickRate</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+</div3>
+<div3 id="parameter-attribute-timeBase">
+<head>ttp:timeBase</head>
+<p>The <att>ttp:timeBase</att> attribute is used to specify the
+temporal coordinate system by means of which time expressions are
+interpreted in a document instance.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-timeBase-syntax" role="syntax">
+<caption>Syntax Representation – ttp:timeBase</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:timeBase
+ : "media"
+ | "smpte"
+ | "clock"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If the time base is designated as <code>media</code>, then a time
+expression denotes a coordinate in some media object's time line,
+where the media object may be an external media object with which the
+content of a document instance is to be synchronized, or it may
+be the content of a document instance itself in a case where
+the timed text content is intended to establish an independent time
+line.</p>
+<note role="explanation">
+<p>When using a media time base, if that time base is paused or
+scaled positively or negatively, then it is expected that the
+presentation of associated Timed Text content will be similarly
+paused, accelerated, or decelerated, respectively. The means for
+controlling an external
+media time base is outside the scope of this specification.</p>
+</note>
+<p>If the time base is designated as <code>smpte</code>,
+then a time expression denotes a <bibref ref="smpte12m"/> time
+coordinate with which the content of a document instance is to
+be synchronized. In this case, the value of the <att>ttp:markerMode</att>
+and <att>ttp:smpteMode</att> parameters apply, as defined by <specref
+ref="parameter-attribute-markerMode"/> and <specref
+ref="parameter-attribute-smpteMode"/>, respectively</p>
+<p>If the time base is designated as <code>clock</code>, then the time
+expression denotes a coordinate in some real-world time line as
+established by some real-time clock, such as the local wall-clock time
+or UTC (Coordinated Universal Time) or GPS (Global Positioning System)
+time lines.</p>
+<p>If not specified, the default time base must be considered to be
+<code>media</code>.</p>
+<p>A <att>ttp:timeBase</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<p>When operating with either <code>media</code> or <code>smpte</code>
+time bases, a diachronic presentation of a document instance may
+be subject to transformations of the controlling time line, such as
+temporal reversal, dilation (expansion), or constriction
+(compression); however, when operating with the <code>clock</code>
+time base, no transformations are permitted, and diacrhonic
+presentation proceeds on a linear, monotonically increasing time line
+based on the passage of real time.</p>
+<note role="example">
+<p>Due to there being only one time base parameter that applies to a
+given document instance, the interpretation of time expressions
+is uniform throughout the document instance.</p>
+</note>
+</div3>
+</div2>
+</div1>
+<div1 id="content">
+<head>Content</head>
+<p>This section specifies the <emph>content</emph> matter of the core
+vocabulary catalog.</p>
+<div2 id="content-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>The following elements specify the structure and principal content aspects of a
+document instance:</p>
+<ulist>
+<item><p><specref ref="document-structure-vocabulary-tt"/></p></item>
+<item><p><specref ref="document-structure-vocabulary-head"/></p></item>
+<item><p><specref ref="document-structure-vocabulary-body"/></p></item>
+<item><p><specref ref="content-vocabulary-div"/></p></item>
+<item><p><specref ref="content-vocabulary-p"/></p></item>
+<item><p><specref ref="content-vocabulary-span"/></p></item>
+<item><p><specref ref="content-vocabulary-br"/></p></item>
+</ulist>
+<div3 id="document-structure-vocabulary-tt">
+<head>tt</head>
+<p>The <el>tt</el> element serves as the root, document element of a document
+instance.</p>
+<p>The <el>tt</el> element accepts as its children zero or one <el>head</el> element followed by
+zero or one <el>body</el> element.</p>
+<table id="elt-syntax-tt" role="syntax">
+<caption>XML Representation – Element Information Item: tt</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<tt
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang"><phrase role="reqattr">xml:lang</phrase></loc> = string
+ <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>) : default
+ {<emph>any attribute in TT Parameter namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc href="#document-structure-vocabulary-head">head</loc>?, <loc href="#document-structure-vocabulary-body">body</loc>?
+</tt>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The temporal beginning and ending of a document instance represented by a
+<el>tt</el> element is defined in relationship with some external
+application or presentation context. The temporal interval defined by
+these points is referred to subsequently as the <emph>external time interval</emph>.
+</p>
+<p>A document instance has an implicit duration that is equal to the
+implicit duration of the <el>body</el> element of the document, if present, or zero,
+if not present.</p>
+<p>An <att>xml:lang</att> attribute must be specified on the <el>tt</el> element.
+If the attribute value is empty, it signifies that there is no default language that applies
+to the text contained within the document instance.</p>
+<p>If no <att>xml:space</att> attribute is specified upon the <el>tt</el> element, then it must
+be considered as if the attribute had been specified with a value of <code>default</code>.</p>
+</div3>
+<div3 id="document-structure-vocabulary-head">
+<head>head</head>
+<p>The <el>head</el> element is a container element used to group
+header matter, including metadata, styling, and layout information.</p>
+<p>The <el>head</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group,
+followed by
+zero or one <el>styling</el> element, followed by zero or one
+<el>layout</el> element.</p>
+<p>Any metadata specified by children in the <code>Metadata.class</code>
+element group applies semantically to the document instance as a
+whole, and not just the <el>head</el> element.</p>
+<p>A <el>styling</el> child element is used to specify style constructs
+that are referenced from other style constructs, by layout constructs, and by
+content elements.</p>
+<p>A <el>layout</el> child element is used to specify layout constructs that
+are referenced by content elements.</p>
+<table id="elt-syntax-head" role="syntax">
+<caption>XML Representation – Element Information Item: head</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<head
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#styling-vocabulary-styling">styling</loc>?, <loc href="#layout-vocabulary-layout">layout</loc>?
+</head>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>To the extent that time semantics apply to the content of the
+<el>head</el> element, the implied time interval of this element is
+defined to be coterminous with the external time interval.</p>
+</div3>
+<div3 id="document-structure-vocabulary-body">
+<head>body</head>
+<p>The <el>body</el> element functions as a logical container and a temporal
+structuring element for a sequence of textual content units represented as
+logical divisions.</p>
+<p>The <el>body</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group,
+followed by zero or more
+elements in the <code>Animation.class</code> element group,
+followed by
+zero or more <el>div</el> elements.</p>
+<p>Any metadata specified by children in the <code>Metadata.class</code>
+element group applies semantically to the <el>body</el> element and its descendants as a whole.</p>
+<p>Any animation elements specified by children in the <code>Animation.class</code>
+element group apply semantically to the <el>body</el> element.</p>
+<table id="elt-syntax-body" role="syntax">
+<caption>XML Representation – Element Information Item: body</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<body
+ <loc href="#timing-attribute-begin">begin</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-dur">dur</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-end">end</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#layout-attribute-region">region</loc> = IDREF
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <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 in TT Style namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#element-vocab-group-table">Animation.class</loc>*, <loc href="#content-vocabulary-div">div</loc>*
+</body>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>An author may specify a temporal interval for a <el>body</el> element using
+the <att>begin</att>, <att>dur</att>, and <att>end</att> attributes. If the begin point
+of this interval remains unspecified, then the begin point is interpreted as the begin
+point of the external time interval. Similarly, if the end point of this interval remains unspecified, then the
+end point is interpreted as the end point of the external time interval.</p>
+<note role="explanation">
+<p>A TT AF document instance referenced from a SMIL presentation
+is expected to follow the same timing rules as apply to other SMIL media
+objects.</p>
+</note>
+<p>If relative begin or end times are specified on the <el>body</el> element, then
+these times are resolved by reference to the begin and end time of the external time interval.</p>
+<p>If the external time interval is shorter than the computed duration of the
+<el>body</el> element, then the active time interval of a document instance is
+truncated to the active end point of the external time interval.</p>
+<p>If no <att>timeContainer</att> attribute is specified, then a <el>body</el> element must be
+interpreted as having <emph>sequential</emph> time containment semantics.</p>
+<p>If the <att>tts:extent</att> attribute is specified on the <el>body</el>
+element, then it specifies the spatial extent of the root container region in
+which content regions are located and presented. If no <att>tts:extent</att>
+attribute is specified, then the spatial extent of the root container region is
+considered to be determined by the external authoring or presentation
+context.</p>
+<p>An author may associate a set of style properties with a <el>body</el> element by means of either
+the <att>style</att> attribute or inline style attributes or a
+combination thereof.</p>
+<note role="explanation">
+<p>Style properties that are associated with a <el>body</el> element in a document instance
+are available for style inheritance by descendant content elements such as <el>div</el>,
+<el>p</el>, and <el>span</el>.</p>
+</note>
+<p>The declared value of an inline style attribute on a <el>body</el>
+element must not be <code>inherit</code>.</p>
+</div3>
+<div3 id="content-vocabulary-div">
+<head>div</head>
+<p>The <el>div</el> element functions as a logical container and a temporal
+structuring element for a sequence of textual content units represented as
+logical paragraphs.</p>
+<note role="explanation">
+<p>When rendered on a continuous (non-paged) visual presentation medium,
+a <el>div</el> element is expected to generate a single block area that
+contains zero or more child block areas generated by the <el>div</el>
+element's child <el>p</el> elements.
+</p>
+<p>If the single block area generated by a <el>div</el> element does
+not contain any child areas, then it is not expected to be presented.</p>
+</note>
+<p>The <el>div</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group,
+followed by zero or more
+elements in the <code>Animation.class</code> element group,
+followed by
+zero or more <el>p</el> elements.</p>
+<note role="motivation">
+<p>The core vocabulary intentionally does not support nested divisions in order to reduce
+the complexity of the profile to match that of the legacy distribution formats with which
+the core vocabulary was designed to interoperate.</p>
+</note>
+<p>Any metadata specified by children in the <code>Metadata.class</code>
+element group applies semantically to the <el>div</el> element and its descendants as a whole.</p>
+<p>Any animation elements specified by children in the <code>Animation.class</code>
+element group apply semantically to the <el>div</el> element.</p>
+<table id="elt-syntax-div" role="syntax">
+<caption>XML Representation – Element Information Item: div</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<div
+ <loc href="#timing-attribute-begin">begin</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-dur">dur</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-end">end</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#layout-attribute-region">region</loc> = IDREF
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <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 in TT Style namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc
+ href="#element-vocab-group-table">Metadata.class</loc>*, <loc
+ href="#element-vocab-group-table">Animation.class</loc>*, <loc
+ href="#element-vocab-group-table">Block.class</loc>*
+</div>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If no <att>timeContainer</att> attribute is specified, then a <el>div</el> element must be
+interpreted as having <emph>parallel</emph> time containment semantics.</p>
+<p>An author may associate a set of style properties with a <el>div</el> element by means of either
+the <att>style</att> attribute or inline style attributes or a combination thereof.</p>
+<note role="explanation">
+<p>Style properties that are associated to a <el>div</el> element in a document instance
+are available for style inheritance by descendant content elements such as
+<el>p</el> and <el>span</el>.</p>
+</note>
+</div3>
+<div3 id="content-vocabulary-p">
+<head>p</head>
+<p>A <el>p</el> element represents a logical paragraph, serving as
+a transition between block level and inline level formatting semantics.</p>
+<p>The <el>p</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group,
+followed by zero or more
+elements in the <code>Animation.class</code> element group,
+followed by
+zero or more
+<code>span</code> element,
+<code>br</code> element,
+or text nodes interpreted as anonymous spans.</p>
+<p>Any metadata specified by children in the <code>Metadata.class</code>
+element group applies semantically to the <el>p</el> element and its descendants as a whole.</p>
+<p>Any animation elements specified by children in the <code>Animation.class</code>
+element group apply semantically to the <el>p</el> element.</p>
+<table id="elt-syntax-p" role="syntax">
+<caption>XML Representation – Element Information Item: p</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<p
+ <loc href="#timing-attribute-begin">begin</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-dur">dur</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-end">end</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#layout-attribute-region">region</loc> = IDREF
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <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 in TT Style namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc
+ href="#element-vocab-group-table">Metadata.class</loc>*, <loc
+ href="#element-vocab-group-table">Animation.class</loc>*, <loc
+ href="#element-vocab-group-table">Inline.class</loc>*
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If a sequence of children of a <el>p</el> element
+consists solely of character information items, then that sequence must
+be considered to be an <emph>anonymous span</emph> for the purpose of
+applying style properties that apply to <el>span</el> elements.</p>
+</div3>
+<div3 id="content-vocabulary-span">
+<head>span</head>
+<p>The <el>span</el> element functions as a logical container and a temporal
+structuring element for a sequence of textual content units having inline
+level formatting semantics.</p>
+<p>When presented on a visual medium, a <el>span</el> element is intended to
+generate a sequence of inline areas, each containing one or more glyph areas.</p>
+<p>The <el>span</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group,
+followed by zero or more
+elements in the <code>Animation.class</code> element group,
+followed by
+zero or more
+<code>br</code> element
+or text nodes interpreted as anonymous spans.</p>
+<note role="motivation">
+<p>The core vocabulary intentionally does not support nested spans in order to reduce
+the complexity of the profile to match that of the legacy distribution formats with which
+the core vocabulary was designed to interoperate.</p>
+</note>
+<p>Any metadata specified by children in the <code>Metadata.class</code>
+element group applies semantically to the <el>span</el> element and its descendants as a whole.</p>
+<p>Any animation elements specified by children in the <code>Animation.class</code>
+element group apply semantically to the <el>span</el> element.</p>
+<table id="elt-syntax-span" role="syntax">
+<caption>XML Representation – Element Information Item: span</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<span
+ <loc href="#timing-attribute-begin">begin</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-dur">dur</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-end">end</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#layout-attribute-region">region</loc> = IDREF
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <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 in TT Style namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc
+ href="#element-vocab-group-table">Metadata.class</loc>*, <loc
+ href="#element-vocab-group-table">Animation.class</loc>*, <loc
+ href="#element-vocab-group-table">Inline.class</loc>*
+</span>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="content-vocabulary-br">
+<head>br</head>
+<p>The <el>br</el> element denotes an explicit line break.</p>
+<table id="elt-syntax-br" role="syntax">
+<caption>XML Representation – Element Information Item: br</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<br
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <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 in TT Style namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#element-vocab-group-table">Animation.class</loc>*
+</br>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>When presented on a visual medium, the presence of a <el>br</el> element must be
+interpreted as a forced line break.</p>
+<note>
+<p>The visual presentation of a <el>br</el> element is
+intended to produce the same effect as the ASCII control code
+<code>CR</code>
+followed by the control code <code>NL</code> when presented on a teletype device.
+Therefore, two <el>br</el> elements in sequence will produce a
+different effect than a single <el>br</el> element.</p>
+</note>
+</div3>
+</div2>
+<div2 id="content-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>This section defines the following common attributes used with many or all element types
+in the core vocabulary catalog:</p>
+<ulist>
+<item><p><specref ref="content-attribute-requiredExtensions"/></p></item>
+<item><p><specref ref="content-attribute-requiredFeatures"/></p></item>
+<item><p><specref ref="content-attribute-requiredFonts"/></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>
+</ulist>
+<div3 id="content-attribute-requiredExtensions">
+<head>requiredExtensions</head>
+<p>The <att>requiredExtensions</att> attribute is used as &tbd;.</p>
+<p>The <att>requiredExtensions</att> attribute may be used with any element in the
+core vocabulary catalog.</p>
+</div3>
+<div3 id="content-attribute-requiredFeatures">
+<head>requiredFeatures</head>
+<p>The <att>requiredFeatures</att> attribute is used as &tbd;.</p>
+<p>The <att>requiredFeatures</att> attribute may be used with any element in the
+core vocabulary catalog.</p>
+</div3>
+<div3 id="content-attribute-requiredFonts">
+<head>requiredFonts</head>
+<p>The <att>requiredFonts</att> attribute is used as &tbd;.</p>
+<p>The <att>requiredFonts</att> attribute may be used with any element in the
+core vocabulary catalog.</p>
+</div3>
+<div3 id="content-attribute-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">
+<head>xml:lang</head>
+<p>The <att>xml:lang</att> attribute is used as defined by
+<bibref ref="xml11"/>, §2.12, <emph>Language Identification</emph>.</p>
+<p>The <att>xml:lang</att> attribute must be specified on the <el>tt</el>
+element and may be specified by an instance of any other element type
+in the core vocabulary catalog.</p>
+</div3>
+<div3 id="content-attribute-space">
+<head>xml:space</head>
+<p>The <att>xml:space</att> attribute is used as defined by
+<bibref ref="xml11"/>, §2.10, <emph>White Space Handling</emph>.</p>
+<p>The <att>xml:space</att> attribute may be used with any element in
+the core vocabulary catalog.</p>
+<!-- OLD DEFINITION
+<p>The semantics of the value <code>default</code> are fixed to mean that
+white space that appears in element content as defined by <bibref
+ref="xml11"/>, §3.2.1, must be normalized at the
+application layer during subsequent processing, such as presentation or
+transformation processing, as follows:</p>
+<olist>
+<item><p>replace each TAB character (<code>&#x0009;</code>) and NEWLINE character (<code>&#x000A;</code>) with a SPACE
+character (<code>&#x0020;</code>);</p></item>
+<item><p>replace each sequence of two or more SPACE characters with a
+single SPACE character;</p></item>
+<item><p>for every maximum sequence of sibling character information
+items, if there is a leading or trailing SPACE character in the
+sequence, then remove the character.</p></item>
+</olist>
+-->
+<!-- NEW DEFINITION -->
+<p>The semantics of the value <code>default</code> are fixed to mean that
+when performing presentation processing of a document instance as
+described by <specref ref="semantics-region-layout-step-2"/>,
+processing must occur as
+if the following properties were specified on the affected
+elements of the intermediate XSL-FO document:</p>
+<ulist>
+<item>
+<p><code>suppress-at-line-break="auto"</code></p>
+</item>
+<item>
+<p><code>linefeed-treatment="treat-as-space"</code></p>
+</item>
+<item>
+<p><code>white-space-collapse="true"</code></p>
+</item>
+<item>
+<p><code>white-space-treatment="ignore-if-surrounding-linefeed"</code></p>
+</item>
+</ulist>
+<p>Similarly, the semantics of the value <code>preserve</code> are fixed to mean that
+when performing presentation processing, processing must occur as
+if the following properties were specified on the affected
+elements of the intermediate XSL-FO document:</p>
+<ulist>
+<item>
+<p><code>suppress-at-line-break="retain"</code></p>
+</item>
+<item>
+<p><code>linefeed-treatment="preserve"</code></p>
+</item>
+<item>
+<p><code>white-space-collapse="false"</code></p>
+</item>
+<item>
+<p><code>white-space-treatment="preserve"</code></p>
+</item>
+</ulist>
+<p>When performing other types of processing intended to eventually
+result in a visual presentation by means other than those described
+in this specification, the semantics of space collapsing and
+preservation as described above should be respected. For other types
+of processing, the treatment of the <att>xml:space</att> attribute
+is processor dependent, but should respect the semantics described
+above if possible.</p>
+</div3>
+</div2>
+</div1>
+<div1 id="styling">
+<head>Styling</head>
+<p>This section specifies the <emph>styling</emph> matter of the core
+vocabulary catalog, where
+styling is to be understood as a separable layer of information that applies to
+content and that denotes authorial intentions about the presentation of
+that content.</p>
+<p>No normative use of an
+<code><?xml-stylesheet ... ?></code> processing instruction is defined
+by this specification.</p>
+<div2 id="styling-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>The following elements specify the structure and principal styling aspects of a
+document instance:</p>
+<ulist>
+<item><p><specref ref="styling-vocabulary-styling"/></p></item>
+<item><p><specref ref="styling-vocabulary-style"/></p></item>
+</ulist>
+<div3 id="styling-vocabulary-styling">
+<head>styling</head>
+<p>The <el>styling</el> element is a container element used to group
+styling matter, including metadata that applies to styling matter.</p>
+<p>The <el>styling</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group, followed by
+zero or more <el>style</el> elements.</p>
+<table id="elt-syntax-styling" role="syntax">
+<caption>XML Representation – Element Information Item: styling</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<styling
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#styling-vocabulary-style">style</loc>*
+</styling>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>To the extent that time semantics apply to the content of the
+<el>styling</el> element, the implied time interval of this element is
+defined to be coterminous with the external time interval.</p>
+</div3>
+<div3 id="styling-vocabulary-style">
+<head>style</head>
+<p>The <el>style</el> element is used to define a single style specification or a set
+of style specifications.</p>
+<p>The <el>style</el> element accepts as its children zero or more <el>metadata</el> elements.</p>
+<table id="elt-syntax-style" role="syntax">
+<caption>XML Representation – Element Information Item: style</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<style
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+ {<emph>any attribute in TT Style namespace ...</emph>}
+ {<emph>any attribute in TT Style Extension namespace ...</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*
+</style>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The declared value of an inline style attribute on a <el>style</el>
+element must not be <code>inherit</code>.</p>
+<p>A <el>style</el> element is considered to define a
+<emph>computed style specification set</emph>, where the set is determined using the
+following ordered rules:</p>
+<olist>
+<item>
+<p>If a <att>style</att> attribute is specified on the <el>style</el> element,
+then the set must be initialized so as to include each style specification contained in
+the <emph>computed style specification set</emph> of each element referenced by
+the <att>style</att> attribute. If the same named style property is specified
+by more than one such referenced computed style specification set, then the value
+of the named style property in following referenced sets takes precedence over the value
+of the named style property in prior referenced sets, where following and prior are
+determined according to the order of the referenced ID in the IDREFS value of the <att>style</att>
+attribute.</p>
+</item>
+<item>
+<p>If the <el>style</el> element specifies an attribute from the TT Style Namespace
+or TT Style Extension Namespace, then each style
+specification defined by that attribute either overrides an existing style
+specification already contained within the set or augments the set with a new style
+specification according to whether or not the named style property of the style specification
+matches the named style property of an existing style specification already included in
+the set.</p>
+</item>
+</olist>
+<p>Two named style properties are considered to match if their expanded names match,
+where <emph>expanded name</emph> is defined by <bibref ref="xmlns11"/>, §2.1,
+and the expanded name of a named style property is the expanded name of the attribute
+that specifies the named style property.</p>
+<p>If a <el>style</el> element appears as a descendant of a
+<el>region</el> element, then the <el>style</el> element must be
+ignored for the purpose of computing referential styles as defined by
+<specref ref="semantics-style-association-referential"/> and <specref
+ref="semantics-style-association-chained-referential"/>. </p>
+</div3>
+</div2>
+<div2 id="styling-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>This section defines the <specref ref="style-attribute-style"/> attribute used
+with both style definition elements as well as content elements.</p>
+<p>In addition, this section specifies the following attributes in the TT Style Namespace
+for use with style definition elements, certain layout elements, and content elements
+that support inline style specifications:</p>
+<ulist>
+<item><p><specref ref="style-attribute-backgroundColor"/></p></item>
+<item><p><specref ref="style-attribute-color"/></p></item>
+<item><p><specref ref="style-attribute-direction"/></p></item>
+<item><p><specref ref="style-attribute-display"/></p></item>
+<item><p><specref ref="style-attribute-displayAlign"/></p></item>
+<item><p><specref ref="style-attribute-dynamicFlow"/></p></item>
+<item><p><specref ref="style-attribute-extent"/></p></item>
+<item><p><specref ref="style-attribute-fontFamily"/></p></item>
+<item><p><specref ref="style-attribute-fontSize"/></p></item>
+<item><p><specref ref="style-attribute-fontStyle"/></p></item>
+<item><p><specref ref="style-attribute-fontWeight"/></p></item>
+<item><p><specref ref="style-attribute-lineHeight"/></p></item>
+<item><p><specref ref="style-attribute-opacity"/></p></item>
+<item><p><specref ref="style-attribute-origin"/></p></item>
+<item><p><specref ref="style-attribute-overflow"/></p></item>
+<item><p><specref ref="style-attribute-padding"/></p></item>
+<item><p><specref ref="style-attribute-showBackground"/></p></item>
+<item><p><specref ref="style-attribute-textAlign"/></p></item>
+<item><p><specref ref="style-attribute-textDecoration"/></p></item>
+<item><p><specref ref="style-attribute-textOutline"/></p></item>
+<item><p><specref ref="style-attribute-unicodeBidi"/></p></item>
+<item><p><specref ref="style-attribute-visibility"/></p></item>
+<item><p><specref ref="style-attribute-wrapOption"/></p></item>
+<item><p><specref ref="style-attribute-writingMode"/></p></item>
+<item><p><specref ref="style-attribute-zIndex"/></p></item>
+</ulist>
+<p>Unless explicitly stated otherwise, linear white-space (LWSP) may
+appear between tokens of a value of a TT Style Property.</p>
+<note role="explanation">
+<p>This specification makes use of <emph>lowerCamelCased</emph> local
+names for style attributes that
+are based upon like-named properties defined by <bibref ref="xsl10"/>.
+This convention is likewise extended to token values of such
+properties.</p>
+</note>
+<note role="clarification">
+<p>A style property may be expressed as a specified attribute on any content
+element type independently of whether the property applies to that
+element type. This capability permits the expression of an inheritable
+style property on ancestor elements to which the property property
+does not apply.</p>
+</note>
+<div3 id="style-attribute-style">
+<head>style</head>
+<p>The <att>style</att> attribute is used to reference one or more <el>style</el>
+elements each of which define a computed style specification set.</p>
+<p>The <att>style</att> attribute may be specified by an instance of the following
+element types:</p>
+<ulist>
+<item><p><loc href="#document-structure-vocabulary-body"><el>body</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-div"><el>div</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-p"><el>p</el></loc></p></item>
+<item><p><loc href="#layout-vocabulary-region"><el>region</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-span"><el>span</el></loc></p></item>
+<item><p><loc href="#styling-vocabulary-style"><el>style</el></loc></p></item>
+</ulist>
+<note role="usage">
+<p>See the specific element type definitions that permit use of the <att>style</att>
+attribute for further information on its semantics.</p>
+</note>
+</div3>
+<div3 id="style-attribute-backgroundColor">
+<head>tts:backgroundColor</head>
+<p>The <att>tts:backgroundColor</att> attribute is used to specify a style property that
+defines the background color of a region or an area generated by content flowed into a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-backgroundColor" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<loc href="#style-value-color"><color></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>transparent</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#document-structure-vocabulary-body"><el>body</el></loc>,
+<loc href="#content-vocabulary-div"><el>div</el></loc>,
+<loc href="#content-vocabulary-p"><el>p</el></loc>,
+<loc href="#layout-vocabulary-region"><el>region</el></loc>,
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>The <att>tts:backgroundColor</att> style is illustrated by the following example.</p>
+<table id="style-attribute-backgroundColor-example-1" role="example">
+<caption>Example Fragment – Background Color</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="306px 114px"/>
+ <style <phrase role="strong">tts:backgroundColor="red"</phrase>/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:padding="3px 40px"/>
+</region>
+...
+<p region="r1" <phrase role="strong">tts:backgroundColor="purple"</phrase> tts:textAlign="center">
+ Twinkle, twinkle, little bat!<br/>
+ How <span <phrase role="strong">tts:backgroundColor="green"</phrase>>I wonder</span> where you're at!
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-backgroundColor-example-1-images" role="example-images">
+<caption>Example Rendition – Background Color</caption>
+<tbody>
+<tr>
+<td><graphic source="images/backgroundColor.png" alt="TT AF backgroundColor style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.7.2.</p>
+</note>
+</div3>
+<div3 id="style-attribute-color">
+<head>tts:color</head>
+<p>The <att>tts:color</att> attribute is used to specify a style property that
+defines the foreground color of marks associated with an area generated by content flowed into a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-color" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<loc href="#style-value-color"><color></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>transparent</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+</note>
+<p>The <att>tts:color</att> style is illustrated by the following example.</p>
+<table id="style-attribute-color-example-1" role="example">
+<caption>Example Fragment – Color</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:backgroundColor="black"/>
+ <style <phrase role="strong">tts:color="white"</phrase>/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ In spring, when woods are <span <phrase role="strong">tts:color="green"</phrase>>getting green</span>,<br/>
+ I'll try and tell you what I mean.
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-color-example-1-images" role="example-images">
+<caption>Example Rendition – Color</caption>
+<tbody>
+<tr>
+<td><graphic source="images/color.png" alt="DFXP color style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.17.1.</p>
+</note>
+</div3>
+<div3 id="style-attribute-direction">
+<head>tts:direction</head>
+<p>The <att>tts:direction</att> attribute is used to specify a style property that
+defines the directionality of an embedding or override according to
+the Unicode bidirectional algorithm.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-direction" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>ltr</code> |
+<code>rtl</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>ltr</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-p"><el>p</el></loc>,
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p>The <att>tts:direction</att> style is illustrated by the following example.</p>
+<table id="style-attribute-direction-example-1" role="example">
+<caption>Example Fragment – Direction</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span tts:unicodeBidi="bidiOverride" <phrase role="strong">tts:direction="rtl"</phrase>>where the tourists snore.</span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-direction-example-1-images" role="example-images">
+<caption>Example Rendition – Direction</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/direction.png" alt="DFXP direction style property"/>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.27.1.</p>
+</note>
+</div3>
+<div3 id="style-attribute-display">
+<head>tts:display</head>
+<p>The <att>tts:display</att> attribute is used to specify a style property that
+defines whether an element is a candidate for layout and composition
+in a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-display" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>auto</code> |
+<code>none</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>auto</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#document-structure-vocabulary-body"><el>body</el></loc>,
+<loc href="#content-vocabulary-div"><el>div</el></loc>,
+<loc href="#content-vocabulary-p"><el>p</el></loc>,
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute is <code>auto</code>,
+then the affected element is a candidate for region layout and
+presentation; however, if the value is <code>none</code>, then the
+affected element and its descendants must be considered ineligible for region
+layout and presentation.</p>
+<p>The <att>tts:display</att> style is illustrated by the following example.</p>
+<table id="style-attribute-display-example-1" role="example">
+<caption>Example Fragment – Display</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="369px 119px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+...
+<div region="r1">
+ <p dur="5s">
+ [[[
+ <span <phrase role="strong">tts:display="none"</phrase>>
+ <set begin="1s" dur="1s" <phrase role="strong">tts:display="auto"</phrase>/>
+ Beautiful soup,
+ </span>
+ <span <phrase role="strong">tts:display="none"</phrase>>
+ <set begin="2s" dur="1s" <phrase role="strong">tts:display="auto"</phrase>/>
+ so rich and green,
+ </span>
+ <span <phrase role="strong">tts:display="none"</phrase>>
+ <set begin="3s" dur="1s" <phrase role="strong">tts:display="auto"</phrase>/>
+ waiting in a hot tureen!
+ </span>
+ ]]]
+ </p>
+</div>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-display-example-1-images" role="example-images">
+<caption>Example Rendition – Display</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/display_0.png" alt="DFXP display style property - [0,1)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/display_1.png" alt="DFXP display style property - [1,2)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/display_2.png" alt="DFXP display style property - [2,3)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/display_3.png" alt="DFXP display style property - [3,4)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/display_4.png" alt="DFXP display style property - [4,5)"/>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref
+ref="css2"/>,
+§ 9.2.5.</p>
+</note>
+</div3>
+<div3 id="style-attribute-displayAlign">
+<head>tts:displayAlign</head>
+<p>The <att>tts:displayAlign</att> attribute is used to specify a style property that
+defines the alignment of block areas in the block progression direction.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-displayAlign" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>before</code> |
+<code>center</code> |
+<code>after</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>before</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p>The <att>tts:displayAlign</att> style is illustrated by the following example.</p>
+<table id="style-attribute-displayAlign-example-1" role="example">
+<caption>Example Fragment – Display Align</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="128px 66px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:displayAlign="before"</phrase>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="192px 66px"/>
+ <style tts:origin="128px 66px"/>
+ <style tts:backgroundColor="green"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:displayAlign="after"</phrase>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r3">
+ <style tts:extent="128px 66px"/>
+ <style tts:origin="0px 132px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:displayAlign="before"</phrase>/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r4">
+ <style tts:extent="192px 66px"/>
+ <style tts:origin="128px 198px"/>
+ <style tts:backgroundColor="green"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:displayAlign="after"</phrase>/>
+ <style tts:textAlign="start"/>
+</region>
+...
+<div>
+ <p region="r1">I sent a message to the fish:</p>
+ <p region="r2">I told them<br/> "This is what I wish."</p>
+ <p region="r3">The little fishes of the sea,</p>
+ <p region="r4">They sent an<br/> answer back to me.</p>
+</div>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-displayAlign-example-1-images" role="example-images">
+<caption>Example Rendition – Display Align</caption>
+<tbody>
+<tr>
+<td><graphic source="images/displayAlign.png" alt="DFXP displayAlign style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.13.4.</p>
+</note>
+</div3>
+<div3 id="style-attribute-dynamicFlow">
+<head>tts:dynamicFlow</head>
+<p>The <att>tts:dynamicFlow</att> attribute is used to specify a style property that
+defines how to dynamically flow content into and out of a region over some time
+interval.</p>
+<p>This style property applies only to a region when the <att>tts:overflow</att>
+property for that region has the value <code>scroll</code>.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-dynamicFlow" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>none</code> |
+<loc href="#style-value-flowFunction"><flowFunction></loc>+ <loc href="#style-value-flowIntervalFunction"><flowIntervalFunction></loc>*
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>none</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute is <code>none</code>, then no
+dynamic flow semantics apply.</p>
+<p>If the value of this attribute contains a single
+<loc href="#style-value-flowFunction"><flowFunction></loc>, then that flow function applies equally to
+<emph>fill into</emph>, <emph>reflow within</emph>, and <emph>clear
+from</emph> dynamic flow operations.</p>
+<p>If a reflow <code>within()</code> flow function is specified, but
+no clear <code>out()</code> flow function is specified, or vice-versa,
+then the function applies equally to both <emph>reflow within</emph>
+and <emph>clear from</emph> dynamic flow operations.</p>
+<p>If either <code>intra()</code> or <code>inter()</code>
+<loc href="#style-value-flowIntervalFunction"><flowIntervalFunction></loc> is not specified, then the
+<code>auto</code> value for the missing <loc href="#style-value-flowIntervalFunction"><flowIntervalFunction></loc>
+applies.</p>
+<p>The normative processing model for dynamic flow behavior is
+specified in <specref ref="dynamicFlowModel"/>.</p>
+<p>The <att>tts:dynamicFlow</att> style is illustrated by the
+following example, and depicted in an <loc href="images/dynamicFlow_RU_animated.svg">SVG Animation</loc>.</p>
+<table id="style-attribute-dynamicFlow-example-1" role="example">
+<caption>Example Fragment – Dynamic Flow</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="140px 70px"/>
+ <style tts:displayAlign="after"/>
+ <style tts:backgroundColor="transparent"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style <phrase role="strong">tts:overflow="scroll"</phrase>/>
+ <style <phrase role="strong">tts:dynamicFlow="in(word,jump) out(line,smooth) inter(3s)"</phrase>/>
+</region>
+...
+<p region="r1">
+ <span tts:backgroundColor="black" tts:color="white">
+ Five o'clock tea!<br/>
+ Ever to thee,<br/>
+ Faithful I'll be,<br/>
+ Five o'clock tea!<br/>
+ <br/>
+ <br/>
+ <br/>
+ </span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-dynamicFlow-example-2-images" role="example-images-bordered">
+<caption>Example Rendition – Dynamic Flow – Discrete Frames</caption>
+<col width="136px"/>
+<col width="136px"/>
+<col width="136px"/>
+<col width="136px"/>
+<tbody>
+<tr>
+<td><graphic source="images/dynamicFlow_snake_0.png" alt="DFXP dynamic flow style property - frame 0"/></td>
+<td><graphic source="images/dynamicFlow_snake_1.png" alt="DFXP dynamic flow style property - frame 1"/></td>
+<td><graphic source="images/dynamicFlow_snake_2.png" alt="DFXP dynamic flow style property - frame 2"/></td>
+<td><graphic source="images/dynamicFlow_snake_3.png" alt="DFXP dynamic flow style property - frame 3"/></td>
+</tr>
+<tr>
+<td><graphic source="images/dynamicFlow_snake_4.png" alt="DFXP dynamic flow style property - frame 4"/></td>
+<td><graphic source="images/dynamicFlow_snake_5.png" alt="DFXP dynamic flow style property - frame 5"/></td>
+<td><graphic source="images/dynamicFlow_snake_6.png" alt="DFXP dynamic flow style property - frame 6"/></td>
+<td><graphic source="images/dynamicFlow_snake_7.png" alt="DFXP dynamic flow style property - frame 7"/></td>
+</tr>
+<tr>
+<td><graphic source="images/dynamicFlow_snake_8.png" alt="DFXP dynamic flow style property - frame 8"/></td>
+<td><graphic source="images/dynamicFlow_snake_9.png" alt="DFXP dynamic flow style property - frame 9"/></td>
+<td><graphic source="images/dynamicFlow_snake_10.png" alt="DFXP dynamic flow style property - frame 10"/></td>
+<td><graphic source="images/dynamicFlow_snake_11.png" alt="DFXP dynamic flow style property - frame 11"/></td>
+</tr>
+<tr>
+<td><graphic source="images/dynamicFlow_snake_12.png" alt="DFXP dynamic flow style property - frame 12"/></td>
+<td><graphic source="images/dynamicFlow_snake_13.png" alt="DFXP dynamic flow style property - frame 13"/></td>
+<td><graphic source="images/dynamicFlow_snake_14.png" alt="DFXP dynamic flow style property - frame 14"/></td>
+<td><graphic source="images/dynamicFlow_snake_15.png" alt="DFXP dynamic flow style property - frame 15"/></td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-attribute-extent">
+<head>tts:extent</head>
+<p>The <att>tts:extent</att> attribute is used to specify the
+<emph>width</emph> and <emph>height</emph> of a region area
+(which may be the root container region).</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-extent" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>auto</code> |
+<loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>auto</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#document-structure-vocabulary-body"><el>body</el></loc>,
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to width and height of root container region</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute consists of two <loc href="#style-value-length"><length></loc>
+specifications, then they must be interpreted as <emph>width</emph>
+and <emph>height</emph>, where the first specification is the
+<emph>width</emph>, and the second specification is the
+<emph>height</emph>.</p>
+<p>If the value of this attribute is <code>auto</code>, then the initial value
+of the style property must be considered to be the same as the root container extent.
+The root container extent is determined either by a
+<att>tts:extent</att> specified on the <el>body</el> element, if
+present, or by the external authoring context, if not present. In the
+former case, if the width and height is expressed in terms of two
+<loc href="#style-value-length"><length></loc> specifications,
+then these specifications must be expressed as non-percentage,
+definite lengths using pixel units.</p>
+<p>The <att>tts:extent</att> style is illustrated by the following example.</p>
+<table id="style-attribute-extent-example-1" role="example">
+<caption>Example Fragment – Extent</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style <phrase role="strong">tts:extent="330px 122px"</phrase>/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ 'Tis the voice of the Lobster:<br/>
+ I heard him declare,<br/>
+ "You have baked me too brown,<br/>
+ I must sugar my hair."
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-extent-example-1-images" role="example-images">
+<caption>Example Rendition – Extent</caption>
+<tbody>
+<tr>
+<td><graphic source="images/extent.png" alt="DFXP extent style property"/></td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-attribute-fontFamily">
+<head>tts:fontFamily</head>
+<p>The <att>tts:fontFamily</att> attribute is used to specify a style property that
+defines the font family from which glyphs are selected for glyph areas generated
+by content flowed into a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-fontFamily" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+(<loc href="#style-value-familyName"><familyName></loc> | <loc href="#style-value-genericFamilyName"><genericFamilyName></loc>)
+(<code>","</code>
+ (<loc href="#style-value-familyName"><familyName></loc> | <loc href="#style-value-genericFamilyName"><genericFamilyName></loc>))* |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>default</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+</note>
+<note role="clarification">
+<p>The initial value, <code>default</code>, is a generic font family name, and is
+further described in <specref ref="style-value-genericFamilyName"/> below.</p>
+</note>
+<p>The <att>tts:fontFamily</att> style is illustrated by the following example.</p>
+<table id="style-attribute-fontFamily-example-1" role="example">
+<caption>Example Fragment – Font Family</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="474px 146px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style <phrase role="strong">tts:fontFamily="proportionalSansSerif"</phrase>/>
+</region>
+...
+<div region="r1">
+ <p>
+ "The time has come," the Walrus said,<br/>
+ "to talk of many things:
+ </p>
+ <p tts:textAlign="end" <phrase role="strong">tts:fontFamily="monospaceSerif"</phrase>>
+ Of shoes, and ships, and sealing wax,<br/>
+ Of cabbages and kings,
+ </p>
+ <p>
+ And why the sea is boiling hot,<br/>
+ and whether pigs have wings."
+ </p>
+</div>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-fontFamily-example-1-images" role="example-images">
+<caption>Example Rendition – Font Family</caption>
+<tbody>
+<tr>
+<td><graphic source="images/fontFamily.png" alt="DFXP fontFamily style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.8.2.</p>
+</note>
+</div3>
+<div3 id="style-attribute-fontSize">
+<head>tts:fontSize</head>
+<p>The <att>tts:fontSize</att> attribute is used to specify a style property
+that defines the font size for glyphs that are selected for glyph areas
+generated by content flowed into a region, where font size is interpreted as a
+scaling transform to the font's design EM square.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-fontSize" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc>? |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>1c</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to parent element's font size</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>If a single <loc href="#style-value-length"><length></loc> value is specified, then this length applies
+equally to horizontal and vertical scaling of a glyph's EM square; if two
+<loc href="#style-value-length"><length></loc> values are specified, then the first expresses the horizontal
+scaling and the second expresses vertical scaling.</p>
+<note role="example">
+<p>Use of independent horizontal and vertical font sizes is expected to be used
+with cell based metrics in order to denote fonts that are two rows in height and
+one column in width.</p>
+</note>
+<p>If horizontal and vertical sizes are expressed independently, then the
+metrics of the <loc href="#style-value-length"><length></loc> values must be the same.</p>
+<p>The <loc href="#style-value-length"><length></loc> value(s) used to express font size must be non-negative.</p>
+<note role="explanation">
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+</note>
+<p>The <att>tts:fontSize</att> style is illustrated by the following example.</p>
+<table id="style-attribute-fontSize-example-1" role="example">
+<caption>Example Fragment – Font Size</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="299px 97px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style <phrase role="strong">tts:fontSize="18px"</phrase>/>
+</region>
+...
+<p region="r1">
+ Then fill up the glasses<br/>
+ with treacle and ink,<br/>
+ Or anything else<br/>
+ that is <span <phrase role="strong">tts:fontSize="24px"</phrase>>pleasant</span> to drink.
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-fontSize-example-1-images" role="example-images">
+<caption>Example Rendition – Font Size</caption>
+<tbody>
+<tr>
+<td><graphic source="images/fontSize.png" alt="DFXP fontSize style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.8.4.</p>
+</note>
+</div3>
+<div3 id="style-attribute-fontStyle">
+<head>tts:fontStyle</head>
+<p>The <att>tts:fontStyle</att> attribute is used to specify a style property that
+defines the font style to apply to glyphs that are selected for glyph areas generated
+by content flowed into a region, where the mapping from font
+style value to specific font face or style parameterization is not determined
+by this specification.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-fontStyle" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>normal</code> |
+<code>italic</code> |
+<code>oblique</code> |
+<code>reverseOblique</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>normal</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+</note>
+<p>Use of values <code>oblique</code> and <code>reverseOblique</code>
+denote a shear and reverse shear transformation (at an unspecified
+angle) in the inline progression dimension. A conformant processor may
+perform such a transform on a font in order to satisfy this authorial
+intent for the purpose of presentation processing. If a specified font
+style is not available or a shear or reverse shear transformation is
+not supported, then the processor must interpret the font style as if
+the value <code>normal</code> were specified for the purpose of
+presentation processing.</p>
+<p>The <att>tts:fontStyle</att> style is illustrated by the following example.</p>
+<table id="style-attribute-fontStyle-example-1" role="example">
+<caption>Example Fragment – Font Style</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="331px 84px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+...
+<p region="r1">
+ In autumn, when the leaves are brown,<br/>
+ Take pen and ink, and <span <phrase role="strong">tts:fontStyle="italic"</phrase>>write it down.</span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-fontStyle-example-1-images" role="example-images">
+<caption>Example Rendition – Font Style</caption>
+<tbody>
+<tr>
+<td><graphic source="images/fontStyle.png" alt="DFXP fontStyle style property"/></td>
+</tr>
+</tbody>
+</table>
+<p/>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.8.7.</p>
+</note>
+</div3>
+<div3 id="style-attribute-fontWeight">
+<head>tts:fontWeight</head>
+<p>The <att>tts:fontWeight</att> attribute is used to specify a style property
+that defines the font weight to apply to glyphs that are selected for glyph
+areas generated by content flowed into a region, where the mapping from font
+weight value to specific font face or weight parameterization is not determined
+by this specification.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-fontWeight" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>normal</code> |
+<code>bold</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>normal</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+</note>
+<p>If a specified font weight is not available, then a conformant
+processor must interpret the font weight as if the value <code>normal</code> were
+specified for the purpose of presentation processing.</p>
+<p>The <att>tts:fontWeight</att> style is illustrated by the following example.</p>
+<table id="style-attribute-fontWeight-example-1" role="example">
+<caption>Example Fragment – Font Weight</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="376px 95px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+...
+<p region="r1">
+ They told me you had been to her,<br/>
+ <span <phrase role="strong">tts:fontWeight="bold"</phrase>>and mentioned me to him:</span><br/>
+ She gave me a good character<br/>
+ <span <phrase role="strong">tts:fontWeight="bold"</phrase>>but said I could not swim.</span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-fontWeight-example-1-images" role="example-images">
+<caption>Example Rendition – Font Weight</caption>
+<tbody>
+<tr>
+<td><graphic source="images/fontWeight.png" alt="DFXP fontWeight style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.8.9.</p>
+</note>
+</div3>
+<div3 id="style-attribute-lineHeight">
+<head>tts:lineHeight</head>
+<p>The <att>tts:lineHeight</att> attribute is used to specify a style property that
+defines the inter-baseline separation between line areas generated by content flowed into a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-lineHeight" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>normal</code> |
+<loc href="#style-value-length"><length></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>normal</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-p"><el>p</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to this element's font size</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute is <code>normal</code>, then the initial value
+of the style property must be considered to be the same as the largest font size
+that applies to any child element.</p>
+<p>If specified as a <loc href="#style-value-length"><length></loc>, then the length must be non-negative.</p>
+<p>The <att>tts:lineHeight</att> style is illustrated by the following example.</p>
+<table id="style-attribute-lineHeight-example-1" role="example">
+<caption>Example Fragment – Line Height</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="255px 190px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="16px"/>
+ <style <phrase role="strong">tts:lineHeight="32px"</phrase>/>
+</region>
+...
+<p region="r1">
+ He thought he saw an elephant,<br/>
+ That practised on a fife:<br/>
+ He looked again, and found it was<br/>
+ A letter from his wife.<br/>
+ "At length I realise," he said,<br/>
+ "The bitterness of Life.
+"</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-lineHeight-example-1-images" role="example-images">
+<caption>Example Rendition – Line Height</caption>
+<tbody>
+<tr>
+<td><graphic source="images/lineHeight.png" alt="DFXP lineHeight style property"/></td>
+</tr>
+</tbody>
+</table>
+<p/>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.15.4.</p>
+</note>
+</div3>
+<div3 id="style-attribute-opacity">
+<head>tts:opacity</head>
+<p>The <att>tts:opacity</att> attribute is used to specify a style property that
+defines the opacity (or transparency) of marks associated with a region (such as
+a region's background color) or marks associated with areas generated by a given
+content element to which opacity applies.</p>
+<p>When presented onto a visual medium, the opacity of the affacted
+element is applied uniformly and on a linear scale to all marks produced by the affected
+element (and its descendants).</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-opacity" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<loc href="#style-value-alpha"><alpha></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>1.0</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>An <loc href="#style-value-alpha"><alpha></loc> value greater than 1.0 must be considered equivalent
+to an <loc href="#style-value-alpha"><alpha></loc> value of 1.0.</p>
+<p>The <att>tts:opacity</att> style is illustrated by the following example.</p>
+<table id="style-attribute-opacity-example-1" role="example">
+<caption>Example Fragment – Opacity</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1" dur="5s">
+ <set begin="0s" dur="1s" <phrase role="strong">tts:opacity="1.00"</phrase>/>
+ <set begin="1s" dur="1s" <phrase role="strong">tts:opacity="0.75"</phrase>/>
+ <set begin="2s" dur="1s" <phrase role="strong">tts:opacity="0.50"</phrase>/>
+ <set begin="3s" dur="1s" <phrase role="strong">tts:opacity="0.25"</phrase>/>
+ <set begin="4s" dur="1s" <phrase role="strong">tts:opacity="0.00"</phrase>/>
+ <style tts:extent="304px 77px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ The sun was shining on the sea
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-opacity-example-1-images" role="example-images">
+<caption>Example Rendition – Opacity</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/opacity_0.png" alt="DFXP opacity style property - [0,1)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/opacity_1.png" alt="DFXP opacity style property - [1,2)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/opacity_2.png" alt="DFXP opacity style property - [2,3)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/opacity_3.png" alt="DFXP opacity style property - [3,4)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/opacity_4.png" alt="DFXP opacity style property - [4,5)"/>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="css3-color"/>,
+§ 3.2.</p>
+</note>
+</div3>
+<div3 id="style-attribute-origin">
+<head>tts:origin</head>
+<p>The <att>tts:origin</att> attribute is used to specify the
+<emph>x</emph> and <emph>y</emph> coordinates of the origin of a
+region area with respect to the origin of the root container extent,
+if specified, or the external authoring context, if not specified.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-origin" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>auto</code> |
+<loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>auto</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to width and height of root container region</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute consists of two <loc href="#style-value-length"><length></loc> specifications,
+then they must be interpreted as <emph>x</emph> and <emph>y</emph> coordinates, where the first specification
+is the <emph>x</emph> coordinate, and the second specification is the <emph>y</emph> coordinate.</p>
+<p>If the value of this attribute is <code>auto</code>, then the initial value
+of the style property must be considered to be the same as the root container origin.
+The root container origin is determined by the external authoring context.</p>
+<p>The <att>tts:origin</att> style is illustrated by the following example.</p>
+<table id="style-attribute-origin-example-1" role="example">
+<caption>Example Fragment – Origin</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style <phrase role="strong">tts:origin="40px 40px"</phrase>/>
+ <style tts:extent="308px 92px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ "To dine!" she shrieked in dragon-wrath.<br/>
+ "To swallow wines all foam and froth!<br/>
+ To simper at a table-cloth!"
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-origin-example-1-images" role="example-images">
+<caption>Example Rendition – Origin</caption>
+<tbody>
+<tr>
+<td><graphic source="images/origin.png" alt="DFXP origin style property"/></td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-attribute-overflow">
+<head>tts:overflow</head>
+<p>The <att>tts:overflow</att> attribute is used to specify a style property that
+defines whether a region area is clipped or not if the descendant areas of the region overflow
+its extent.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-overflow" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>visible</code> |
+<code>hidden</code> |
+<code>scroll</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>hidden</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute is <code>visible</code>, then content should
+not be clipped outside of the affected region, and region composition and layout
+must be performed as if the region's width and height were infinite, but with
+a well-defined origin. If the value is <code>hidden</code>, then content should
+be clipped outside of the affected region.</p>
+<note role="explanation">
+<p>Unless a manual line break element <el>br</el> is used by the content author,
+a paragraph of a given region will generate no more than one line area in that
+region if the value of the <att>tts:overflow</att> style that applies to the
+region is <code>visible</code> and if the applicable <att>tts:wrapOption</att>
+style is <code>noWrap</code>.</p>
+</note>
+<p>If the value of this attribute is <code>scroll</code>, then content is
+dynamically flowed into and out of the affected region according to the values
+of the <att>tts:dynamicFlow</att> style property; in this case, the
+semantics of the <att>tts:dynamicFlow</att> apply whether or not the
+affected region has overflowed.</p>
+<p>The <att>tts:overflow</att> style is illustrated by the following example.</p>
+<table id="style-attribute-overflow-example-1" role="example">
+<caption>Example Fragment – Overflow</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style <phrase role="strong">tts:overflow="visible"</phrase>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 43px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style <phrase role="strong">tts:overflow="hidden"</phrase>/>
+</region>
+...
+<p region="r1">
+ "But wait a bit," the Oysters cried,<br/>
+ "Before we have our chat;
+</p>
+<p region="r2">
+ For some of us are out of breath,<br/>
+ And all of us are fat!"
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-overflow-example-1-images" role="example-images">
+<caption>Example Rendition – Overflow</caption>
+<tbody>
+<tr>
+<td><graphic source="images/overflow.png" alt="DFXP overflow style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the above example, the <att>tts:noWrap</att> is set to
+<code>noWrap</code> to prevent automatic line wrapping (breaking);
+if this were not specified, then overflow would occur in the block
+progression direction as opposed to the inline progression direction.</p>
+</note>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.20.2.</p>
+</note>
+</div3>
+<div3 id="style-attribute-padding">
+<head>tts:padding</head>
+<p>The <att>tts:padding</att> attribute is used to specify padding (or inset)
+space on all sides of a region area or a content area produced by a content
+element.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-padding" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<loc href="#style-value-length"><length></loc> |
+<loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> |
+<loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> |
+<loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> <loc href="#style-value-length"><length></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>0</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to width and height of region</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute consists of one <loc href="#style-value-length"><length></loc> specification,
+then that length applies to all edges of the affected areas. If the value
+consists of two <loc href="#style-value-length"><length></loc> specifications, then the first applies to the
+before and after edges, and the second applies to the start and end edges.
+If three <loc href="#style-value-length"><length></loc> specifications are provided, then the first applies to the
+before edge, the second applies to the start and end edges, and the third applies
+to the after edge.
+If four <loc href="#style-value-length"><length></loc> specifications are provided, then they apply to before, end,
+after, and start edges, respectively.</p>
+<p>The <att>tts:padding</att> style is illustrated by the following example.</p>
+<table id="style-attribute-padding-example-1" role="example">
+<caption>Example Fragment – Padding</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="446px 104px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style <phrase role="strong">tts:padding="10px 40px"</phrase>/>
+</region>
+...
+<p region="r1" tts:backgroundColor="red">
+ Just the place for a Snark! I have said it twice:<br/>
+ That alone should encourage the crew.<br/>
+ Just the place for a Snark! I have said it thrice:<br/>
+ What I tell you three times is true.
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>When rendering an area to which padding applies, the background color that
+applies to the area is rendered into the padded portion of the area.</p>
+<table id="style-attribute-padding-example-1-images" role="example-images">
+<caption>Example Rendition – Padding</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/padding.png" alt="DFXP padding style property"/>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.29.15, except that individual shorthand values map to writing
+mode relative padding values as defined by <bibref ref="xsl10"/>,
+§ 7.7.31, 7.7.32, 7.7.33, and 7.7.34.</p>
+</note>
+</div3>
+<div3 id="style-attribute-showBackground">
+<head>tts:showBackground</head>
+<p>The <att>tts:showBackground</att> attribute is used to specify
+constraints on when the background color of a region is intended to be
+presented.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-showBackground" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>always</code> |
+<code>whenActive</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>always</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute is <code>always</code>, then the
+background color of a region is always rendered when performing presentation
+processing on a visual medium; if the value is <code>whenActive</code>,
+then the background color of a region is rendered only when some
+content is selected into the region.</p>
+<p>The <att>tts:showBackground</att> style is illustrated by the following example.</p>
+<table id="style-attribute-showBackground-example-1" role="example">
+<caption>Example Fragment – Show Background</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="265px 100px"/>
+ <style tts:backgroundColor="black"/>
+ <style <phrase role="strong">tts:showBackground="always"</phrase>/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+<region xml:id="r2">
+ <style tts:origin="205px 60px"/>
+ <style tts:extent="290px 100px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="end"/>
+ <style <phrase role="strong">tts:showBackground="whenActive"</phrase>/>
+</region>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<!--
+<table id="style-attribute-showBackground-example-1-images" role="example-images">
+<caption>Example Rendition – Show Background</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/showBackground.png" alt="DFXP showBackground style property"/>
+</td>
+</tr>
+</tbody>
+</table>
+-->
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="smil21"/>,
+§ 5.3.1.</p>
+</note>
+</div3>
+<div3 id="style-attribute-textAlign">
+<head>tts:textAlign</head>
+<p>The <att>tts:textAlign</att> attribute is used to specify a style property that
+defines how inline areas are aligned within a containing block area in the inline progression
+direction.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-textAlign" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>left</code> |
+<code>center</code> |
+<code>right</code> |
+<code>start</code> |
+<code>end</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>start</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-p"><el>p</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>The <att>tts:textAlign</att> style is illustrated by the following example.</p>
+<table id="style-attribute-textAlign-example-1" role="example">
+<caption>Example Fragment – Text Align</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:textAlign="start"</phrase>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 47px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:textAlign="end"</phrase>/>
+</region>
+...
+<p region="r1">
+ Beware the Jabberwock, my son!<br/>
+ The jaws that bite, the claws that catch!
+</p>
+<p region="r2">
+ Beware the Jubjub bird, and shun<br/>
+ The frumious Bandersnatch!
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-textAlign-example-1-images" role="example-images">
+<caption>Example Rendition – Text Align</caption>
+<tbody>
+<tr>
+<td><graphic source="images/textAlign.png" alt="DFXP textAlign style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.15.9.</p>
+</note>
+</div3>
+<div3 id="style-attribute-textDecoration">
+<head>tts:textDecoration</head>
+<p>The <att>tts:textDecoration</att> attribute is used to specify a style property that
+defines a text decoration effect to apply to glyph areas or other inline
+areas that are generated by content flowed into a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-textDecoration" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>none</code> |
+[ [
+<code>underline</code> |
+<code>noUnderline</code>
+] || [
+<code>throughline</code> |
+<code>noThroughline</code>
+] || [
+<code>overline</code> |
+<code>noOverline</code>
+] ] |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>none</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#document-structure-vocabulary-body"><el>body</el></loc>,
+<loc href="#content-vocabulary-div"><el>div</el></loc>,
+<loc href="#content-vocabulary-p"><el>p</el></loc>,
+<loc href="#layout-vocabulary-region"><el>region</el></loc>,
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no, but see prose of <bibref ref="xsl10"/>, § 7.16.4</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>The <att>tts:textDecoration</att> style is illustrated by the following example.</p>
+<table id="style-attribute-textDecoration-example-1" role="example">
+<caption>Example Fragment – Text Decoration</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="385px 82px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:padding="5px 2px"/>
+ <style <phrase role="strong">tts:textDecoration="underline"</phrase>/>
+</region>
+...
+<p region="r1">
+ The sea was wet<span <phrase role="strong">tts:textDecoration="noUnderline"</phrase>> as </span>wet<span
+ <phrase role="strong">tts:textDecoration="noUnderline"</phrase>>
+ could be,<br/>
+ The sand was dry as dry.<br/>
+ <span <phrase role="strong">tts:textDecoration="lineThrough"</phrase>>There weren't any</span>
+ You
+ <span <phrase role="strong">tts:textDecoration="lineThrough"</phrase>>couldn't</span>
+ could not see a cloud<br/>
+ Because no cloud was in the sky.
+ </span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-textDecoration-example-1-images" role="example-images">
+<caption>Example Rendition – Text Decoration</caption>
+<tbody>
+<tr>
+<td><graphic source="images/textDecoration.png" alt="DFXP textDecoration style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.16.4.</p>
+</note>
+</div3>
+<div3 id="style-attribute-textOutline">
+<head>tts:textOutline</head>
+<p>The <att>tts:textOutline</att> attribute is used to specify a style property that
+defines a text outline effect to apply to glyphs that are selected for glyph areas generated
+by content flowed into a region.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-textOutline" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>none</code> |
+<loc href="#style-value-color"><color></loc>?
+<loc href="#style-value-length"><length></loc>
+<loc href="#style-value-length"><length></loc>? |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>none</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to this element's font size</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+</note>
+<p>The value of this attribute consists of an optional <loc href="#style-value-color"><color></loc> term
+followed by one or two <loc href="#style-value-length"><length></loc> terms. If a <emph>color</emph> term is
+present, then it denotes the outline color; if no <emph>color</emph> term is
+present, the computed value of the <att>tts:color</att> applies. The first
+<emph>length</emph> term denotes the outline thickness and the second length
+term, if present, indicates the blur radius.</p>
+<p>The <att>tts:textOutline</att> style is illustrated by the following
+example.</p>
+<table id="style-attribute-textOutline-example-1" role="example">
+<caption>Example Fragment – Text Outline</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:backgroundColor="transparent"/>
+ <style tts:color="yellow"/>
+ <style <phrase role="strong">tts:textOutline="black 2px 0px"</phrase>/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="24px"/>
+</region>
+...
+<p>
+ How doth the little crocodile<br/>
+ Improve its shining tail,<br/>
+ And pour the waters of the Nile<br/>
+ On every golden scale!<br/>
+ How cheerfully he seems to grin,<br/>
+ How neatly spreads his claws,<br/>
+ And welcomes little fishes in,<br/>
+ With gently smiling jaws!
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-textOutline-example-1-images" role="example-images">
+<caption>Example Rendition – Text Outline</caption>
+<tbody>
+<tr>
+<td><graphic source="images/textOutline.png" alt="backgroundColor style property"/></td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-attribute-unicodeBidi">
+<head>tts:unicodeBidi</head>
+<p>The <att>tts:unicodeBidi</att> attribute is used to specify a style property that
+defines a directional embedding or override according to
+the Unicode bidirectional algorithm.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-unicodeBidi" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>normal</code> |
+<code>embed</code> |
+<code>bidiOverride</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>normal</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-p"><el>p</el></loc>,
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p>The <att>tts:unicodeBidi</att> style is illustrated by the following example.</p>
+<table id="style-attribute-unicodeBidi-example-1" role="example">
+<caption>Example Fragment – Unicode Bidirectionality</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+...
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span <phrase role="strong">tts:unicodeBidi="bidiOverride"</phrase> tts:direction="rtl">where the tourists snore.</span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-unicodeBidi-example-1-images" role="example-images">
+<caption>Example Rendition – Unicode Bidirectionality</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/unicodeBidi.png" alt="DFXP unicodeBidi style property"/>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.27.6.</p>
+</note>
+</div3>
+<div3 id="style-attribute-visibility">
+<head>tts:visibility</head>
+<p>The <att>tts:visibility</att> attribute is used to specify a style property that
+defines whether generated areas are visible or not when rendered on a visual
+presentation medium.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-visibility" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>visible</code> |
+<code>hidden</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td>
+<code>visible</code>
+</td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#document-structure-vocabulary-body"><el>body</el></loc>,
+<loc href="#content-vocabulary-div"><el>div</el></loc>,
+<loc href="#content-vocabulary-p"><el>p</el></loc>,
+<loc href="#layout-vocabulary-region"><el>region</el></loc>,
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>The <att>tts:visibility</att> style has no affect on content layout or
+composition, but merely determines whether composed content is visible or not.</p>
+<p>The <att>tts:visibility</att> style is illustrated by the following example.</p>
+<table id="style-attribute-visibility-example-1" role="example">
+<caption>Example Fragment – Visibility</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="398px 121px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style/>
+</region>
+...
+<p region="r1" dur="4s">
+ <span <phrase role="strong">tts:visibility="hidden"</phrase>>
+ <set begin="1s" <phrase role="strong">tts:visibility="visible"</phrase>/>
+ Curiouser
+ </span>
+ <span <phrase role="strong">tts:visibility="hidden"</phrase>>
+ <set begin="2s" <phrase role="strong">tts:visibility="visible"</phrase>/>
+ and
+ </span>
+ <span <phrase role="strong">tts:visibility="hidden"</phrase>>
+ <set begin="3s" <phrase role="strong">tts:visibility="visible"</phrase>/>
+ curiouser!
+ </span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-visibility-example-1-images" role="example-images">
+<caption>Example Rendition – Visibility</caption>
+<tbody>
+<tr>
+<td>
+<graphic source="images/visibility_0.png" alt="DFXP visibility style property - [0,1)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/visibility_1.png" alt="DFXP visibility style property - [1,2)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/visibility_2.png" alt="DFXP visibility style property - [2,3)"/>
+</td>
+</tr>
+<tr>
+<td>
+<graphic source="images/visibility_3.png" alt="DFXP visibility style property - [3,4)"/>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.28.8.</p>
+</note>
+</div3>
+<div3 id="style-attribute-wrapOption">
+<head>tts:wrapOption</head>
+<p>The <att>tts:wrapOption</att> attribute is used to specify a style property that
+defines whether or not automatic line wrapping (breaking) applies within the context of
+the affected element.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-wrapOption" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>wrap</code> |
+<code>noWrap</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>wrap</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+<p>The <att>tts:wrapOption</att> style is illustrated by the following example.</p>
+<table id="style-attribute-wrapOption-example-1" role="example">
+<caption>Example Fragment – Wrap Option</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="192px 117px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:overflow="hidden"/>
+ <style <phrase role="strong">tts:wrapOption="noWrap"</phrase>/>
+</region>
+...
+<p>
+ I'll tell thee everything I can:<br/>
+ There's little to relate.<br/>
+ I saw an aged aged man,<br/>
+ A-sitting on a gate.
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-wrapOption-example-1-images" role="example-images">
+<caption>Example Rendition – Wrap Option</caption>
+<tbody>
+<tr>
+<td><graphic source="images/wrapOption.png" alt="DFXP wrapOption style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.15.13.</p>
+</note>
+</div3>
+<div3 id="style-attribute-writingMode">
+<head>tts:writingMode</head>
+<p>The <att>tts:writingMode</att> attribute is used to specify a style property that
+defines the block and inline progression directions to be used for the purpose of
+stacking block and inline areas within a region area.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-writingMode" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>lrtb</code> |
+<code>rltb</code> |
+<code>tbrl</code> |
+<code>tblr</code> |
+<code>lr</code> |
+<code>rl</code> |
+<code>tb</code> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>lrtb</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>none</td>
+</tr>
+</tbody>
+</table>
+<p>The <att>tts:writingMode</att> style is illustrated by the following example.</p>
+<table id="style-attribute-writingMode-example-1" role="example">
+<caption>Example Fragment – Writing Mode</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:extent="50px 570px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:writingMode="tbrl"</phrase>/>
+</region>
+<region xml:id="r2">
+ <style tts:extent="310px 50px"/>
+ <style tts:origin="70px 120px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:writingMode="rltb"</phrase>/>
+</region>
+...
+<p region="r1">
+ I sometimes dig for buttered rolls,<br/>
+ Or set limed twigs for crabs:
+</p>
+<p region="r2" tts:direction="rtl" tts:unicodeBidi="bidiOverride">
+ I sometimes search the grassy knolls for the wheels of Hansom-cabs.
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<table id="style-attribute-writingMode-example-1-images" role="example-images">
+<caption>Example Rendition – Writing Mode</caption>
+<tbody>
+<tr>
+<td><graphic source="images/writingMode.png" alt="DFXP writingMode style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the second paragraph in the above example that targets region
+<code>r2</code>, the <att>tts:unicodeBidi</att> and
+<att>tts:direction</att> properties are set to
+<code>bidiOverride</code> and <code>rtl</code>, respectively, in order
+to override the normally left-to-right directionality of characters in
+the Latin script.</p>
+</note>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.27.7.</p>
+</note>
+</div3>
+<div3 id="style-attribute-zIndex">
+<head>tts:zIndex</head>
+<p>The <att>tts:zIndex</att> attribute is used to specify a style property that
+defines the front-to-back ordering of region areas in the case that they overlap.</p>
+<p>This attribute may be specified by any style specification element or content element
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-zIndex" role="common">
+<col width="25%"/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>auto</code> |
+<loc href="#style-value-integer"><integer></loc> |
+<code>inherit</code>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>auto</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#layout-vocabulary-region"><el>region</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>no</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete</td>
+</tr>
+</tbody>
+</table>
+<p>If two areas are associated with the same Z-index value, then, if those areas
+overlap in space, the area(s) generated by lexically subsequent elements must be
+rendered over area(s) generated by lexically prior elements, where lexical
+order is defined as the postorder traversal of a document
+instance.</p>
+<p>The semantics of the value <code>auto</code> are those defined by
+<bibref ref="xsl10"/>, § 7.28.9, where the <el>tt</el> element
+is considered to establish the root stacking context.</p>
+<p>The <att>tts:zIndex</att> style is illustrated by the following example.</p>
+<table id="style-attribute-zIndex-example-1" role="example">
+<caption>Example Fragment – Z Index</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region xml:id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:zIndex="0"</phrase>/>
+</region>
+<region xml:id="r2">
+ <style tts:origin="100px 60px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style <phrase role="strong">tts:zIndex="1"</phrase>/>
+</region>
+<region xml:id="r3">
+ <style tts:origin="0px 120px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style <phrase role="strong">tts:zIndex="2"</phrase>/>
+</region>
+<region xml:id="r4">
+ <style tts:origin="100px 180px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style <phrase role="strong">tts:zIndex="3"</phrase>/>
+</region>
+...
+<p region="r1">
+ I passed by his garden, and marked, with one eye,<br/>
+ How the Owl and the Panther were sharing a pie.
+</p>
+<p region="r2">
+ The Panther took pie-crust, and gravy, and meat,<br/>
+ While the Owl had the dish as its share of the treat.
+</p>
+<p region="r3">
+ When the pie was all finished, the Owl, as a boon,<br/>
+ Was kindly permitted to pocket the spoon:
+</p>
+<p region="r4">
+ While the Panther received knife and fork<br/>
+ with a growl,<br/>
+ And concluded the banquet by...
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p/>
+<p/>
+<table id="style-attribute-zIndex-example-1-images" role="example-images">
+<caption>Example Rendition – Z Index</caption>
+<tbody>
+<tr>
+<td><graphic source="images/zIndex.png" alt="DFXP zIndex style property"/></td>
+</tr>
+</tbody>
+</table>
+<note role="derivation">
+<p>The semantics of the style property
+represented by this attribute are based upon that defined by <bibref ref="xsl10"/>,
+§ 7.28.9.</p>
+</note>
+</div3>
+</div2>
+<div2 id="styling-style-value-expressions">
+<head>Style Value Expressions</head>
+<p>Style property values include the use of the following expressions:</p>
+<ulist>
+<item><p><specref ref="style-value-alpha"/></p></item>
+<item><p><specref ref="style-value-color"/></p></item>
+<item><p><specref ref="style-value-digit"/></p></item>
+<item><p><specref ref="style-value-duration"/></p></item>
+<item><p><specref ref="style-value-familyName"/></p></item>
+<item><p><specref ref="style-value-flowFunction"/></p></item>
+<item><p><specref ref="style-value-flowIntervalFunction"/></p></item>
+<item><p><specref ref="style-value-genericFamilyName"/></p></item>
+<item><p><specref ref="style-value-hexDigit"/></p></item>
+<item><p><specref ref="style-value-integer"/></p></item>
+<item><p><specref ref="style-value-namedColor"/></p></item>
+<item><p><specref ref="style-value-quotedString"/></p></item>
+<item><p><specref ref="style-value-string"/></p></item>
+</ulist>
+<div3 id="style-value-alpha">
+<head><alpha></head>
+<p>An <alpha> expression is used to express an opacity value,
+where 0 means fully transparent and 1 means fully opaque.</p>
+<table id="alpha-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <alpha></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<alpha>
+ : <emph>float</emph>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>In the above syntax representation, the syntactic element
+<emph><code>float</code></emph> must adhere to the lexical representation defined
+by <bibref ref="xsd-2"/> §
+3.2.4.1.</p>
+</div3>
+<div3 id="style-value-color">
+<head><color></head>
+<p>A <color> expression is used to specify a named color, exact RGB color triple,
+or exact RGBA color tuple, where the alpha component, if expressed,
+is maximum (255) at 100% opacity
+and minimum (0) at 0% opacity, and where the applicable color space is
+defined by <bibref ref="srgb"/>.</p>
+<table id="color-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <color></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<color>
+ : "#" rrggbb
+ | "#" rrggbbaa
+ | "rgb" "(" r-value "," g-value "," b-value ")"
+ | "rgba" "(" r-value "," g-value "," b-value "," a-value ")"
+ | <loc href="#style-value-namedColor"><namedColor></loc>
+
+rrggbb
+ : <loc href="#style-value-hexDigit"><hexDigit></loc>{6}
+
+rrggbbaa
+ : <loc href="#style-value-hexDigit"><hexDigit></loc>{8}
+
+r-value | g-value | b-value | a-value
+ : component-value
+
+component-value
+ : non-negative-integer // valid range: [0,255]
+
+non-negative-integer
+ : <loc href="#style-value-digit"><digit></loc>+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>When expressing RGB component values, these values are considered
+to <phrase role="strong">not</phrase> be premultiplied by alpha.</p>
+<p>For the purpose of performing presentation processing such that
+non-opaque or non-transparent alpha or opacity values apply, then the
+semantics of compositing functions are defined with respect to the use of
+the <bibref ref="srgb"/> color space for both inputs and outputs of
+the composition function.</p>
+<note role="clarification">
+<p>The use of <bibref ref="srgb"/> for the stated semantics of
+composition is not mean to prevent an actual processor from using some
+other color space either for internal or external purposes. For
+example, a presentation processor may ultimately convert the SRGB values
+used here to the YUV color space for rendition on a television device.</p>
+</note>
+</div3>
+<div3 id="style-value-digit">
+<head><digit></head>
+<p>A <digit> is used to express integers and other types of numbers or tokens.</p>
+<table id="digit-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <digit></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<digit>
+ : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-value-duration">
+<head><duration></head>
+<p>A <duration> expression is used to express a temporal duration value.</p>
+<table id="duration-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <duration></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<duration>
+ : <loc href="#style-value-digit"><digit></loc> ( "." <loc href="#style-value-digit"><digit></loc>+ )? metric
+
+metric
+ : "s" // seconds
+ | "ms" // milliseconds
+ | "f" // frames
+ | "t" // ticks
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>It is an error to omit the metric component of a duration.</p>
+<p>When operating with <code>smpte</code> time base and
+<code>discontinuous</code> mode, a duration expression must be
+considered to denote a duration in (local) real-time, independently of the
+governing time base.</p>
+</div3>
+<div3 id="style-value-familyName">
+<head><familyName></head>
+<p>A <familyName> expression specifies a font family name.</p>
+<p>If the name contains a whitespace or quotation delimiter character,
+then it must be expressed as a <quotedString>.</p>
+<table id="familyName-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <familyName></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<familyName>
+ : <loc href="#style-value-string"><string></loc>
+ | <loc href="#style-value-quotedString"><quotedString></loc>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-value-genericFamilyName">
+<head><genericFamilyName></head>
+<p>A <genericFamilyName> expression specifies a font family using a general
+token that indicates a class of font families.</p>
+<p>The resolution of a generic family name to a concrete font instance is considered to
+be implementation dependent, both in the case of content authoring and content interpretation.</p>
+<table id="genericFamilyName-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <genericFamilyName></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<genericFamilyName>
+ : "default"
+ | "monospace"
+ | "sansSerif"
+ | "serif"
+ | "monospaceSansSerif"
+ | "monospaceSerif"
+ | "proportionalSansSerif"
+ | "proportionalSerif"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The mapping between a generic (font) family name and an actual font is not
+determined by this specification; however, the
+distinction of monospace versus proportional and serif versus sans-serif
+should be maintained if possible when performing presentation.</p>
+<p>If a generic (font) family name of <code>monospace</code> is specified,
+then it may be interpreted as equivalent to either <code>monospaceSansSerif</code>
+or <code>monospaceSerif</code>. The generic family names <code>sansSerif</code>
+and <code>serif</code> are to be interpreted as equivalent to <code>proportionalSansSerif</code>
+and <code>proportionalSerif</code>, respectively.</p>
+</div3>
+<div3 id="style-value-flowFunction">
+<head><flowFunction></head>
+<p>A <flowFunction> expression specifies a unit of content to be dynamic
+flowed into, within, and from a region according to an optional
+dynamic flow style, flow transition effect, and flow transition effect
+style.</p>
+<table id="flowFunction-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <flowFunction></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<flowFunction>
+ : "in(" flowArguments ")"
+ | "within(" flowArguments ")"
+ | "out(" flowArguments ")"
+
+flowArguments
+ : flowUnit [ "," flowStyle [ "," flowTransition [ "," flowTransitionStyle ]]]
+
+flowUnit
+ : "pixel"
+ | "glyph"
+ | "inline"
+ | "line"
+ | "block"
+ | "character"
+ | "word"
+ | extensionToken
+
+flowStyle
+ : "jump"
+ | "smooth"
+ | "fade"
+ | extensionToken
+
+flowTransition
+ : "barWipe"
+ | extensionToken
+
+flowTransitionStyle
+ : "leftToRight"
+ | "topToBottom"
+ | extensionToken
+
+extensionToken
+ : "x-" <token>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Dynamic flow can be specified independently for flowing content
+into its region, flowing it within its region, and flowing it out of
+its region. These three phases of dynamic flow are specified using the
+<code>in()</code>, <code>within()</code>, and <code>out()</code> flow
+functions respectively.</p>
+<p>Dynamic flow occurs on the basis of specific visual or semantic
+content units. In the case of <code>pixel</code>, <code>glyph</code>,
+<code>inline</code>, <code>line</code>, and <code>block</code>, the
+unit of dynamic flow is based upon a visually rendered construct
+(<code>pixel</code> or <code>glyph</code>) or upon an area of the area
+tree produced by formatting the affected content. In the case of
+<code>character</code> and <code>word</code>, the unit of dynamic flow
+is based upon a semantic unit associated with one or more visually
+rendered or area units.</p>
+<p>The dynamic flow unit <code>word</code> must be interpreted as
+being dependent upon the language or writing system of the affected
+content. If the language or writing system is unknown or unspecified,
+then <code>word</code> is interpreted as follows:</p>
+<olist>
+<item><p>If the affected content consists solely or mostly of Unified CJK
+Ideographic characters or of characters of another Unicode character
+block that are afforded similar treatment to that of Unified CJK
+Ideographic characters, then <code>word</code> is to be interpreted
+as if <code>character</code> were specified.</p></item>
+<item><p>Otherwise, <code>word</code> is to be interpreted as denoting
+a sequence of one or more characters that are not interpreted as an
+XML whitespace character.</p></item>
+</olist>
+<p>When a flow unit is flowed into, within, or out of its region, the
+manner by which the unit is flowed is controlled by the optional
+<code>flowStyle</code> argument of the relevant flow function. If the
+flow style is specified as <code>jump</code>, or if no flow style is
+specified, then the flow unit is instantaneously transitioned into,
+within, or out of the region. If the flow style is
+<code>smooth</code>, then the flow unit is smoothly transitioned by
+means of pixel based exposure, movement, or hiding, respectively. If
+the flow style is <code>fade</code>, then the flow unit is faded into
+or out of the region by continuously incrementing or decrementing the
+alpha component of the affected content.</p>
+<p>In addition to the primary flow style, an optional flow transition
+effect and flow transition effect style may be specified, in which
+case the transition effect is additively (and simultaneously) applied
+to the primary flow style transition.</p>
+<p>For the permitted values of <code>flowTransition</code> and
+<code>flowTransitionStyle</code>, the semantics specified by
+<bibref ref="smil21"/>, § 12.8, apply.</p>
+</div3>
+<div3 id="style-value-flowIntervalFunction">
+<head><flowIntervalFunction></head>
+<p>A <flowIntervalFunction> expression specifies an interval or
+duration that affects dynamic flow timing behavior.</p>
+<table id="flowIntervalFunction-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <flowIntervalFunction></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<flowIntervalFunction>
+ : "intra(" flowIntervalArguments ")"
+ | "inter(" flowIntervalArguments ")"
+
+flowIntervalArguments
+ : "auto"
+ | <loc href="#style-value-duration"><duration></loc>
+ | flowIntervalRate
+
+flowIntervalRate
+ : <loc href="#style-value-digit"><digit></loc>+ ( "." <loc href="#style-value-digit"><digit></loc>+ )?
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The <code>intra()</code> flow interval function is used to
+determine the <emph>computed fill interval</emph> state parameter for performing
+dynamic flow processing, which expresses the
+duration of time between fill
+timer events, as specified by <specref ref="flowTimerFill"/>, which
+in turn, limits the dynamic flowed content fill rate.</p>
+<p>The <code>inter()</code> flow interval function is used to
+determine the <emph>computed clear interval</emph> state parameter for performing
+dynamic flow processing, which expresses the
+duration of time between clear
+timer events, as specified by <specref ref="flowTimerClear"/>, which in turn,
+limits the dynamic flowed content retention period.</p>
+<p>If a <loc href="#style-value-duration"><duration></loc> is
+specified as an argument to a flow interval function, then it is
+considered to represent a <emph>definite duration</emph>.
+If a flow interval rate is
+specified as an argument to a flow interval function, then it is
+considered to represent a <emph>definite rate</emph> in units per
+second, where the applicable unit is determined in the context of
+whether the rate is used with an <code>intra()</code> or
+<code>inter()</code> flow interval function.</p>
+<p>The computed fill and clear interval values are defined by
+<specref ref="dynamicFlowIntervalTimingCalculation"/>.</p>
+</div3>
+<div3 id="style-value-hexDigit">
+<head><hexDigit></head>
+<p>A <hexDigit> is used to express integers and other types of numbers or tokens
+that employ base 16 arithmetic.</p>
+<p>For the purpose of parsing, no distinction must be made between lower and upper case.</p>
+<table id="hexDigit-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <hexDigit></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<hexDigit>
+ : <loc href="#style-value-digit"><digit></loc>
+ | "a" | "b" | "c" | "d" | "e" | "f"
+ | "A" | "B" | "C" | "D" | "E" | "F"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-value-integer">
+<head><integer></head>
+<p>An <integer> expression is used to express an arbitrary, signed integral value.</p>
+<table id="integer-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <integer></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<integer>
+ : ( "+" | "-" )? <loc href="#style-value-digit"><digit></loc>+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-value-length">
+<head><length></head>
+<p>A <length> expression is used to express either a coordinate component of point
+in a cartesian space or a distance between two points in a cartesian space.</p>
+<table id="length-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <length></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<length>
+ : scalar
+ | percentage
+
+scalar
+ : number units
+
+percentage
+ : number "%"
+
+sign
+ : "+" | "-"
+
+number
+ : sign? non-negative-number
+
+non-negative-number
+ : non-negative-integer
+ | non-negative-real
+
+non-negative-integer
+ : <loc href="#style-value-digit"><digit></loc>+
+
+non-negative-real
+ : <loc href="#style-value-digit"><digit></loc>* "." <loc href="#style-value-digit"><digit></loc>+
+
+units
+ : "px"
+ | "em"
+ | "c" // abbreviation of "cell"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>It is an error to omit the units component of a scalar length
+value.</p>
+<p>The semantics of
+the unit of measure <code>px</code> (pixel)
+are as defined by <bibref ref="xsl10"/>, § 5.9.13.</p>
+<p>When specified relative to a font whose size is expressed as a single length
+measure or as two length measures of equal length, the unit of measure <code>em</code> is considered to be
+identical to that defined by <bibref ref="xsl10"/>, § 5.9.13;
+however, when specified relative to a font whose size is expressed as
+two length measures of non-equal lengths, then one <code>em</code> is
+equal to the inline progression dimension of the anisomorphically
+scaled font when used to specify lengths in the inline progression
+direction and equal to the block progression dimension of the scaled
+font when used to specify lengths in the block progression direction.</p>
+<p>The semantics of the unit of measure <code>c</code> (cell) are
+defined by the parameter <specref
+ref="parameter-attribute-cellResolution"/>.</p>
+</div3>
+<div3 id="style-value-namedColor">
+<head><namedColor></head>
+<p>A <namedColor> is used to express an RGBA color with a convenient name, and where the applicable color space is
+defined by <bibref ref="srgb"/>.</p>
+<p>For the purpose of parsing, no distinction must be made between lower and upper case.</p>
+<table id="namedColor-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <namedColor></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<namedColor>
+ : "transparent" // #00000000
+ | "black" // #000000ff
+ | "silver" // #c0c0c0ff
+ | "gray" // #808080ff
+ | "white" // #ffffffff
+ | "maroon" // #800000ff
+ | "red" // #ff0000ff
+ | "purple" // #800080ff
+ | "fuchsia" // #ff00ffff
+ | "magenta" // #ff00ffff (= fuchsia)
+ | "green" // #008000ff
+ | "lime" // #00ff00ff
+ | "olive" // #808000ff
+ | "yellow" // #ffff00ff
+ | "navy" // #000080ff
+ | "blue" // #0000ffff
+ | "teal" // #008080ff
+ | "aqua" // #00ffffff
+ | "cyan" // #00ffffff (= aqua)
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="clarification">
+<p>Except for <code>transparent</code>, the set of named colors specified above constitutes a proper
+subset of the set of named colors specified by <bibref ref="svg11"/>, § 4.2.</p>
+</note>
+</div3>
+<div3 id="style-value-quotedString">
+<head><quotedString></head>
+<p>A <quotedString> is used to express a delimited string that may contain
+a whitespace or a quotation delimiter character. Two types of quotation delimiters
+are provided in order to accommodate strings that contain the other delimiter.</p>
+<table id="quotedString-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <quotedString></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<quotedString>
+ : "\"" ( <emph>char</emph> - { "\"" } )* "\""
+ | "\'" ( <emph>char</emph> - { "\'" } )* "\'"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>In the above syntax representation, the syntactic element <emph><code>char</code></emph> must adhere to production
+[2] <code>Char</code> as defined by <bibref ref="xml11"/> §
+2.2.</p>
+</div3>
+<div3 id="style-value-string">
+<head><string></head>
+<p>A <string> expression consists of a sequence of characters where no character
+is a whitespace or quotation delimiter character.</p>
+<table id="string-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <string></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<string>
+ : ( <emph>char</emph> - { <emph>S</emph> | "\"" | "\'" } )+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>In the above syntax representation, the syntactic element <emph><code>char</code></emph> must adhere to production
+[2] <code>Char</code> as defined by <bibref ref="xml11"/> §
+2.2, while the syntactic element <emph><code>S</code></emph> must adhere to production
+[3] <code>S</code> as defined by <bibref ref="xml11"/> §
+2.3.</p>
+</div3>
+</div2>
+<div2 id="semantics-style-association">
+<head>Style Association</head>
+<p>Style matter may be associated with content matter in a number of ways:</p>
+<ulist>
+<item><p>inline styling</p></item>
+<item><p>referential styling</p></item>
+<item><p>chained referential styling</p></item>
+</ulist>
+<div3 id="semantics-style-association-inline">
+<head>Inline Styling</head>
+<p>Style properties may be expressed in an inline manner by direct specification of an
+attribute from the TT Style Namespace or TT Style Extension Namespace
+on the affected element. When expressed in this manner, the association of style information
+is referred to as <emph>inline styling</emph>.</p>
+<p>Style properties associated by inline styling are afforded a higher priority than all other
+forms of style association.</p>
+<table id="style-association-example-1" role="example">
+<caption>Example – Inline Styling</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<p <phrase role="strong">tts:color="white"</phrase>>White 1 <span <phrase role="strong">tts:color="yellow"</phrase>>Yellow</span> White 2</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the above example, the two text fragments <code>"White 1 "</code> and
+<code>" White 2"</code>, which are interpreted as anonymous spans, are not
+associated with a color style property; rather, they inherit their color style
+from their parent <el>p</el> element as described in <specref
+ref="semantics-style-inheritance-content"/> below. </p>
+</note>
+</div3>
+<div3 id="semantics-style-association-referential">
+<head>Referential Styling</head>
+<p>Style properties may be expressed in an out-of-line manner and referenced by the
+affected element using the <att>style</att> attribute. When expressed in this manner,
+the association of style information is referred to as <emph>referential styling</emph>.</p>
+<p>If a <att>style</att> attribute specifies multiple references, then those references are
+evaluated in the specified order, and that order applies to resolution of the value of a
+style property in the case that it is specified along multiple reference paths.</p>
+<note role="explanation">
+<p>The use of referential styling encourages the reuse of style specifications while
+sacrificing locality of reference.</p>
+</note>
+<note role="explanation">
+<p>A single content element may be associated with style properties by a hybrid mixture of
+inline and referential styling, in which case inline styling is given priority as described above
+by <specref ref="semantics-style-association-inline"/>.</p>
+</note>
+<table id="style-association-example-2" role="example">
+<caption>Example – Referential Styling</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<style <phrase role="strong">xml:id="s1"</phrase> tts:color="white"/>
+<style <phrase role="strong">xml:id="s2"</phrase> tts:color="yellow"/>
+...
+<p <phrase role="strong">style="s1"</phrase>>White 1 <span <phrase role="strong">style="s2"</phrase>>Yellow</span> White 2</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the above example, the two text fragments <code>"White 1 "</code> and
+<code>" White 2"</code>, which are interpreted as anonymous spans, are not
+associated with a color style property; rather, they inherit their color style
+from their parent <el>p</el> element as described in <specref
+ref="semantics-style-inheritance-content"/> below.</p>
+</note>
+</div3>
+<div3 id="semantics-style-association-chained-referential">
+<head>Chained Referential Styling</head>
+<p>Style properties may be expressed in an out-of-line manner and may themselves reference
+other out-of-line style properties, thus creating a chain of references starting at the
+affected element. When expressed in this manner, the association of style information
+is referred to as <emph>chained referential styling</emph>.</p>
+<p>If the same style property is specified in more than one referenced specification,
+then the last referenced style specification applies, where the order of application starts from
+the affected element and proceeds to referenced style specifications, and, in turn, to subsequent
+referenced style specifications.</p>
+<p>A loop in a sequence of chained style references must be considered an error.</p>
+<note role="explanation">
+<p>The use of chained referential styling encourages the grouping of style specifications
+into general and specific sets, which further aids in style specification reuse.</p>
+</note>
+<note role="explanation">
+<p>A single content element may be associated with style properties by a hybrid mixture of
+inline, referential styling, and chained referential styling, in which case inline styling is
+given priority as described above by <specref ref="semantics-style-association-inline"/>.</p>
+</note>
+<table id="style-association-example-3" role="example">
+<caption>Example – Chained Referential Styling</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<style <phrase role="strong">xml:id="s1"</phrase> tts:color="white" tts:fontFamily="monospaceSerif"/>
+<style <phrase role="strong">xml:id="s2"</phrase> <phrase role="strong">style="s1"</phrase> tts:color="yellow"/>
+...
+<p <phrase role="strong">style="s1"</phrase>>White Monospace</p>
+<p <phrase role="strong">style="s2"</phrase>>Yellow Monospace</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+</div2>
+<div2 id="semantics-style-inheritance">
+<head>Style Inheritance</head>
+<p>Subsequent to the association of style matter with content matter as described above in
+<specref ref="semantics-style-association"/>, styles are further propagated to content
+matter using:
+</p>
+<ulist>
+<item><p>content style inheritance</p></item>
+<item><p>region style inheritance</p></item>
+</ulist>
+<div3 id="semantics-style-inheritance-content">
+<head>Content Style Inheritance</head>
+<p>Style properties are inherited from ancestor elements in the following case:</p>
+<olist>
+<item><p>if a style property is not associated with an element (or an anonymous span)
+and the style property is designated as inheritable, or</p></item>
+<item><p>if a style property is associated with an element, that
+element is not the <el>body</el> element, and the associated style property value is <code>inherit</code>.</p></item>
+</olist>
+<p>If a style property is determined to require inheritance, then the inherited value must
+be the value of the same named style property in the computed style specification set of the
+element's immediate ancestor element.</p>
+<table id="style-inheritance-example-1" role="example">
+<caption>Example – Content Style Inheritance</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<p <phrase role="strong">tts:fontFamily="monospaceSansSerif"</phrase>>
+ <span tts:color="yellow">Yellow Monospace</span>
+</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the above example, the <el>span</el> element that encloses the character items
+<code>Yellow Monospace</code> is not associated with a <att>tts:fontFamily</att> style
+property and this property is inheritable; therefore, the value of the <att>tts:fontFamily</att> style
+is inherited from the computed style specification set of the ancestor <el>p</el> element,
+and is added to the computed style specification set of the <el>span</el> element.</p>
+</note>
+</div3>
+<div3 id="semantics-style-inheritance-region">
+<head>Region Style Inheritance</head>
+<p>Style properties are inherited from a region element in the following case:</p>
+<olist>
+<item><p>if a style property <emph>P</emph> is not associated with an element (or an anonymous span)
+<emph>E</emph> and the style property is designated as inheritable, and</p></item>
+<item><p>if that style property <emph>P</emph> is in the computed style specification set
+of region <emph>R</emph> as defined by <specref ref="layout-vocabulary-region"/> below, and</p></item>
+<item><p>if that element <emph>E</emph> is flowed into region <emph>R</emph>.</p></item>
+</olist>
+<table id="style-inheritance-example-2" role="example">
+<caption>Example – Region Style Inheritance</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region <phrase role="strong">xml:id="r1"</phrase>>
+ <style tts:color="yellow"/>
+ <style tts:fontFamily="monospaceSerif"/>
+</region>
+...
+<p <phrase role="strong">region="r1"</phrase>>Yellow Monospace</p>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+</div2>
+</div1>
+<div1 id="layout">
+<head>Layout</head>
+<p>This section specifies the <emph>layout</emph> matter of the core
+vocabulary catalog, where
+layout is to be understood as a separable layer of information that applies to
+content and that denotes authorial intentions about the presentation of
+that content.</p>
+<note role="elaboration">
+<p>The two layers of layout and style matter are considered to be independently
+separable. Layout matter specifies one or more spaces or areas into
+which content is intended to be presented, while style matter specifies the manner in
+which presentation occurs within the layout.</p>
+<p>In certain cases, a content author may choose to embed (inline) style matter directly
+into layout or content matter. In such cases, an alternative
+exists – use of referential styling –
+in which the style
+matter is not embedded (inlined).</p>
+</note>
+<div2 id="layout-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>The following elements specify the structure and principal layout aspects of a
+document instance:</p>
+<ulist>
+<item><p><specref ref="layout-vocabulary-layout"/></p></item>
+<item><p><specref ref="layout-vocabulary-region"/></p></item>
+</ulist>
+<div3 id="layout-vocabulary-layout">
+<head>layout</head>
+<p>The <el>layout</el> element is a container element used to group
+layout matter, including metadata that applies to layout matter.</p>
+<p>The <el>layout</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group, followed by
+zero or more <el>region</el> elements.</p>
+<table id="elt-syntax-layout" role="syntax">
+<caption>XML Representation – Element Information Item: layout</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<layout
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#layout-vocabulary-region">region</loc>*
+</layout>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>To the extent that time semantics apply to the content of the
+<el>layout</el> element, the implied time interval of this element is
+defined to be coterminous with the external time interval.</p>
+</div3>
+<div3 id="layout-vocabulary-region">
+<head>region</head>
+<p>The <el>region</el> element is used to define a space or area into which content is
+to be flowed for the purpose of presentation.</p>
+<p>The <el>region</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group,
+followed by zero or more
+elements in the <code>Animation.class</code> element group,
+followed by
+zero or more <el>style</el> elements.</p>
+<p>Any metadata specified by children in the <code>Metadata.class</code>
+element group applies semantically to the <el>region</el> element and its descendants as a whole.
+Any animation elements specified by children in the <code>Animation.class</code>
+element group apply semantically to the <el>region</el> element.
+Any <el>style</el> child element must be considered a local style
+definition that applies only to the containing <el>region</el>
+element, i.e., does not apply for resolving referential styling.</p>
+<table id="elt-syntax-region" role="syntax">
+<caption>XML Representation – Element Information Item: region</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<region
+ <loc href="#timing-attribute-begin">begin</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-dur">dur</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-end">end</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <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> = string
+ <loc href="#content-attribute-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>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*, <loc href="#element-vocab-group-table">Animation.class</loc>*, <loc href="#styling-vocabulary-style">style</loc>*
+</region>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The declared value of an inline style attribute on a <el>region</el>
+element must not be <code>inherit</code>.</p>
+<p>A <el>region</el> element is considered to define a computed style
+specification set, where the set is determined using the
+following ordered rules:</p>
+<olist>
+<item>
+<p>If a <att>style</att> attribute is specified on the <el>region</el> element,
+then the set must be initialized so as to include each style specification contained in
+the computed style specification set of each element referenced by
+the <att>style</att> attribute. If the same named style property is specified
+by more than one such referenced computed style specification set, then the value
+of the named style property in following referenced sets takes precedence over the value
+of the named style property in prior referenced sets, where following and prior are
+determined according to the order of the referenced ID in the IDREFS value of the <att>style</att>
+attribute.</p>
+</item>
+<item>
+<p>If the <el>region</el> element has any <el>style</el> element children, then each
+style specification of the computed style specification set of each child <el>style</el>
+element either overrides an existing style
+specification already contained within the set or augments the set with a new style
+specification according to whether or not the named style property of the style specification
+matches the named style property of an existing style specification already included in
+the set, where the order of evaluation of child <el>style</el> elements proceeds from first
+to last such child element.</p>
+</item>
+<item>
+<p>If the <el>style</el> element specifies an attribute from the TT Style Namespace
+or TT Style Extension Namespace, then each style
+specification defined by that attribute either overrides an existing style
+specification already contained within the set or augments the set with a new style
+specification according to whether or not the named style property of the style specification
+matches the named style property of an existing style specification already included in
+the set.</p>
+</item>
+</olist>
+<p>Two named style properties are considered to match if their expanded names match,
+where <emph>expanded name</emph> is defined by <bibref ref="xmlns11"/>, §2.1,
+and the expanded name of a named style property is the expanded name of the attribute
+that specifies the named style property.</p>
+<p>If <att>begin</att> and (or) <att>end</att> attributes are specified on a
+<el>region</el> element, then they specify the beginning and (or) ending points
+of a time interval during which the region is eligible for activation and with
+respect to which animation child elements of the region are timed.
+If specified, these begin and end points are relative to the time
+interval of the nearest ancestor element associated with a time
+interval, irregardless of whether that interval is explicit or implied.</p>
+<p>The nearest ancestor element of a <el>region</el> element that is associated
+with a time interval is the document instance's root <el>tt</el> element.</p>
+<p>If a <att>dur</att> attribute is specified on the <el>region</el> element, then it
+specifies the simple duration of the region.</p>
+<p>For the purpose of determining the semantics of presentation processing, a
+region that is temporally inactive must not produce any visible marks when
+presented on a visual medium.</p>
+<note role="motivation">
+<p>A <el>region</el> element may be associated with a time interval for two
+purposes: (1) in order to temporally bound the presentation of the region and
+its content, and (2) to provide a temporal context in which animations of region
+styles may be effected.</p>
+<p>For example, an author may wish a region that is otherwise empty, but
+may have a visible background color to be presented starting at some time and
+continuing over the region's duration. The simple duration of the region serves
+additionaly to scope the presentation effects of content that is targeted to the
+region. An author may also wish to move a region within the root container
+extent or change a region's background color by means of animation effects. In
+both of these cases, it is necessary to posit an active time interval for a
+region.</p>
+</note>
+</div3>
+</div2>
+<div2 id="layout-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>This section defines the <specref ref="layout-attribute-region"/> attribute used with content elements.</p>
+<div3 id="layout-attribute-region">
+<head>region</head>
+<p>The <att>region</att> attribute is used to reference a <el>region</el>
+element which defines a space or area into which a content element is intended to be flowed.</p>
+<p>The <att>region</att> attribute may be specified by an instance of the following
+element types:</p>
+<ulist>
+<item><p><loc href="#document-structure-vocabulary-body"><el>body</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-div"><el>div</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-p"><el>p</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-span"><el>span</el></loc></p></item>
+</ulist>
+<note role="seealso">
+<p>See <specref ref="semantics-region-layout"/> below for further information on content
+flow in a region.</p>
+</note>
+</div3>
+</div2>
+<div2 id="semantics-region-layout">
+<head>Region Layout and Presentation</head>
+<p>This section defines the semantics of region layout and
+presentation in terms of a standard processing model. Any
+implementation is permitted provided that the externally observable
+results are consistent with the results produced by this model.
+</p>
+<div3 id="semantics-region-layout-step-1">
+<head>Synchronic Region Construction</head>
+<p>For the purposes of performing presentation processing, the active time
+duration of a document instance is divided into a sequence of time coordinates where at
+each time coordinate, some element becomes temporally active or inactive,
+then, at each such time coordinate, a document
+instance is mapped from its original, source form to an intermediate form,
+<emph>I</emph>, as follows:</p>
+<olist>
+<item>
+<p>for each temporally active region <emph>R</emph>, replicate the
+portion of the document's sub-tree headed by the <el>body</el> element;</p>
+</item>
+<item>
+<p>evaluating this sub-tree in a postorder traversal, prune elements if they
+are not a content element, if they are temporally inactive, if they are empty,
+or if they aren't associated with region <emph>R</emph>;</p>
+</item>
+<item>
+<p>if the pruned sub-tree is non-empty, then reparent it to the <emph>R</emph>
+element;</p>
+</item>
+<item>
+<p>finally, after completing the above steps, prune the original <el>body</el>
+element from the intermediate document, then prune all <att>region</att>,
+<att>begin</att>, <att>end</att>, and <att>dur</att> attributes, which are no
+longer semantically relevant;</p>
+</item>
+</olist>
+<p>The pseudo-code shown in <specref ref="content-hierarchy-region-mapping"/>
+provides one possible algorithm that implements these processing steps.</p>
+<table id="content-hierarchy-region-mapping" role="example">
+<caption>Example – Content Hierarchy Region Mapping</caption>
+<tbody>
+<tr>
+<td>
+<eg>
+PREPARE-CONTENT ( D ) :=
+ foreach R in SELECT ( D, "/tt/head/layout/region" )
+ if TEMPORALLY-ACTIVE? ( R )
+ APPEND-CHILDREN ( R, SELECT ( D, "/tt/body" ) )
+ foreach E in POSTORDER-TRAVERSE ( R )
+ if CONTENT-ELEMENT? ( E ) and TEMPORALLY-ACTIVE? ( E )
+ if EMPTY? ( E ) or REGION-OF ( E ) != R and
+ then PRUNE ( E )
+ PRUNE ( SELECT ( D, "/tt/body" ) )
+ PRUNE ( SELECT ( D, "//*/@region" ) )
+ PRUNE ( SELECT ( D, "//*/@begin" ) )
+ PRUNE ( SELECT ( D, "//*/@end" ) )
+ PRUNE ( SELECT ( D, "//*/@dur" ) )
+
+REGION-OF ( E ) :=
+ if NULL? ( E )
+ return NULL
+ else if HAS-ATTRIBUTE? ( E, "region" )
+ return VALUE-OF-ATTRIBUTE ( E, "region" )
+ else
+ return REGION-OF ( PARENT-OF ( E ) )
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The result of performing the processing described above will be a sequence of
+<emph>N</emph> intermediate documents instances, <emph>I<sub>0</sub></emph> …
+<emph>I<sub>N−1</sub></emph>.</p>
+</div3>
+<div3 id="semantics-region-layout-step-2">
+<head>Synchronic Flow Processing</head>
+<p>Subsequent to performing a temporal (synchronic) slice and subsequent
+remapping of regionally selected content hierarchy, the resulting intermediate document is
+subjected to a flow transformation step that produces a rooted flow object tree
+represented as an XSL FO document instance as defined by <bibref ref="xsl10"/>,
+and semantically extended by TT AF specific style properties that have no XSL
+FO counterpart.</p>
+<p>Each intermediate document produced by <specref
+ref="semantics-region-layout-step-1"/> is mapped to an XSL FO document instance,
+<emph>F</emph>, as follows:</p>
+<olist>
+<item>
+<p>for each significant text node in a content element that is not a child of a
+<el>span</el> element, synthesize an anonymous span to enclose the text node,
+substituting the new anonymous span for the original text node child in its
+sibling and parent hierarchy;</p>
+</item>
+<item>
+<p>for each element, determine its computed style specification set, if
+applicable;</p>
+</item>
+<item>
+<p>map the <el>tt</el> element to an <el>fo:root</el> element, populated
+initially with an <el>fo:layout-master-set</el> element that contains a valid
+<el>fo:simple-page-master</el> that, in turn, contains an
+<el>fo:region-body</el> child, where the root container extent expressed on the
+<el>tt</el> element is mapped to <att>page-width</att> and
+<att>page-height</att> attributes on the <el>fo:simple-page-master</el>
+element;</p>
+</item>
+<item>
+<p>map the <el>layout</el> element to an <el>fo:page-sequence</el> element and a
+child <el>fo:flow</el> element that reference the page master and page region
+defined by the simple page master produced above;</p>
+</item>
+<item>
+<p>map each non-empty <el>region</el> element to an <el>fo:block-container</el>
+element with an <att>absolute-position</att> attribute with value
+<code>absolute</code>, and where the region's position and extent are mapped to equivalent
+<att>top</att>, <att>left</att>, <att>width</att>, and <att>height</att>
+attributes;</p>
+</item>
+<item>
+<p>for each <el>body</el>, <el>div</el>, and <el>p</el> element that is not
+associated with a <att>tts:display</att> style property with the value
+<code>none</code>, map the element to a distinct <el>fo:block</el> element,
+populating the style properties of <el>fo:block</el> by using the computed style
+specification set associated with each original TT AF content element;</p>
+</item>
+<item>
+<p>for each <el>span</el> element that is not
+associated with a <att>tts:display</att> style property with the value
+<code>none</code> and for each anonymous span, map the element or
+sequence of character items to a distinct <el>fo:inline</el> element,
+populating the style properties of <el>fo:inline</el> by using the computed style
+specification set associated with each original TT AF content element
+or anonymous span;</p>
+</item>
+<item>
+<p>for each <el>br</el> element that is not
+associated with a <att>tts:display</att> style property with the value
+<code>none</code>, map the element
+to a distinct <el>fo:character</el> element having the following
+properties:</p>
+<ulist>
+<item>
+<p><code>character="&#x000A;"</code></p>
+</item>
+<item>
+<p><code>suppress-at-line-break="retain"</code></p>
+</item>
+</ulist>
+</item>
+<item>
+<p>for each TT AF style property attribute in some computed style specification set that
+has no counterpart in <bibref ref="xsl10"/>, map that attribute directly through
+to the relevant formatting object produced by the input TT AF content element to
+which the style property applies;</p>
+</item>
+<item>
+<p>optionally, synthesize a unique <att>id</att> attribute on each resulting
+formatting object element that relates that element to the input element that
+resulted in that formatting object element;</p>
+</item>
+</olist>
+<p>For each resulting XSL FO document instance <emph>F</emph>, if processing
+requires presentation on a visual medium, then apply the formatting semantics
+prescribed by <bibref ref="xsl10"/> in order to produce an XSL FO area tree that
+may then be subsequently rendered onto the visual medium.</p>
+<note>
+<p>Due to the possible presence of TT AF style properties
+or style property values in a given DFXP document instance for which
+there is no <bibref ref="xsl10"/> counterpart, the use of a compliant <bibref ref="xsl10"/> formatting processor
+is not necessarily sufficient to satisfy the presentation
+semantics defined by this specification.</p>
+</note>
+</div3>
+<div3 id="semantics-region-layout-example">
+<head>Elaborated Example</head>
+<p>An example of the processing steps described above is elaborated below, starting with <specref
+ref="region-mapping-example-1-s"/>.</p>
+<table id="region-mapping-example-1-s" role="example">
+<caption>Example – Sample Source Document</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">&dfxp-ex1;</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>In the above document, the content hierarchy consists of two divisions, each
+containing two paragraphs. This content is targeted (selected into) one of two
+non-overlapping regions that are styled identically except for their position
+and their foreground colors, the latter of which is inherited by and applies to
+the (and, in this case, anonymous) spans reparented into the regions.</p>
+<p>The following, first intermediate document shows the synchronic state at time
+interval [0,1), during which time only division <code>d1</code> is temporally active,
+and where paragraphs <code>p1</code> and <code>p2</code> (and their ancestors)
+are selected into regions <code>r1</code> and <code>r2</code>, respectively.</p>
+<note>
+<p>The intermediate documents shown below are not valid DFXP document instances,
+but rather, are representations of possible internal processing states used for
+didactic purposes.</p>
+</note>
+<table id="region-mapping-example-1-i0" role="example">
+<caption>Example – Intermediate Document – [0s,1s)</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">&dfxp-ex1-x-0;</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>An XSL FO document instance produced by performing flow processing
+upon the first intermediate document is shown below.</p>
+<table id="region-mapping-example-1-f0" role="example">
+<caption>Example – XSL FO Document – [0s,1s)</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">&dfxp-ex1-p-0;</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The following, second intermediate document shows the synchronic state at
+time interval [1,2), at which time both divisions <code>d1</code> and
+<code>d2</code> are temporally active, and where paragraphs <code>p1</code> and
+<code>p4</code> (and their ancestors) are selected into region <code>r1</code>
+and paragraphs <code>p2</code> and <code>p3</code> (and their ancestors) are
+selected into region <code>r2</code>.</p>
+<table id="region-mapping-example-1-i1" role="example">
+<caption>Example – Intermediate Document – [1s,2s)</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">&dfxp-ex1-x-1;</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The following, third intermediate document shows the synchronic state at time
+interval [2,3), at which time only division <code>d2</code> is temporally active,
+and where paragraphs <code>p4</code> and <code>p3</code> (and their ancestors)
+are selected into regions <code>r1</code> and <code>r2</code>, respectively.</p>
+<table id="region-mapping-example-1-i2" role="example">
+<caption>Example – Intermediate Document – [2s,3s)</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">&dfxp-ex1-x-2;</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+</div2>
+<div2 id="semantics-line-layout">
+<head>Line Layout</head>
+<p>The semantics of line layout, including line breaking, defined by
+<bibref ref="xsl10"/> apply to the performance of the composition and layout of
+lines for presentation processing of a document instance on a visual medium.</p>
+</div2>
+</div1>
+<div1 id="timing">
+<head>Timing</head>
+<p>This section specifies the <emph>timing</emph> matter of the core
+vocabulary catalog, where
+timing is to be understood as a separable layer of information that applies to
+content and that denotes authorial intentions about the temporal presentation of
+that content.</p>
+<div2 id="timing-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>No timing related element vocabulary is defined for use in the core
+vocabulary catalog.</p>
+</div2>
+<div2 id="timing-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>This section defines the following basic timing attributes for use with timed elements:</p>
+<ulist>
+<item><p><specref ref="timing-attribute-begin"/></p></item>
+<item><p><specref ref="timing-attribute-end"/></p></item>
+<item><p><specref ref="timing-attribute-dur"/></p></item>
+</ulist>
+<p>In addition, this section defines the <specref
+ref="timing-attribute-timeContainer"/> attribute for use with timed elements
+that serve simultaneously as timing containers.</p>
+<div3 id="timing-attribute-begin">
+<head>begin</head>
+<p>The <att>begin</att> attribute is used to specify the begin
+point of a temporal interval associated with a timed element. If
+specified, the value of a <att>begin</att> attribute must adhere to
+a <timeExpression> specification as defined by <specref
+ref="timing-value-timeExpression"/>.</p>
+<p>The begin point of a temporal interval is included in the
+interval; i.e., the interval is left-wise closed.</p>
+<note role="derivation">
+<p>The semantics of the <att>begin</att> attribute are based upon that defined
+by <bibref ref="smil21"/>, § 10.3.1.</p>
+</note>
+</div3>
+<div3 id="timing-attribute-end">
+<head>end</head>
+<p>The <att>end</att> attribute is used to specify the ending point
+of a temporal interval associated with a timed element. If
+specified, the value of an <att>end</att> attribute must adhere to a
+<timeExpression> specification as defined by <specref
+ref="timing-value-timeExpression"/>.</p>
+<p>The ending point of a temporal interval is not included in the
+interval; i.e., the interval is right-wise open.</p>
+<p>The presentation effects of a non-empty active
+temporal interval include the frame immediately prior to the frame
+(or tick) equal to or immediately following the time specified by the ending
+point, but do not extend into this latter frame (or tick).</p>
+<note role="example">
+<p>For example, if an active interval is [10s,10.33333s), and the
+frame rate is 30 frames per second, then the presentation effects of the interval
+are limited to frames 300 through 309 only (assuming that 0s corresponds
+with frame 0). The same holds if the active interval is specified
+as [300f,310f).</p>
+</note>
+<note role="derivation">
+<p>The semantics of the <att>end</att> attribute are based upon that defined
+by <bibref ref="smil21"/>, § 10.3.1.</p>
+</note>
+</div3>
+<div3 id="timing-attribute-dur">
+<head>dur</head>
+<p>The <att>dur</att> attribute is used to specify the duration of a
+temporal interval associated with a timed element. If specified,
+the value of a <att>dur</att> attribute must adhere to a
+<timeExpression> specification as defined by <specref
+ref="timing-value-timeExpression"/>.</p>
+<note role="derivation">
+<p>The semantics of the <att>dur</att> attribute are based upon that defined
+by <bibref ref="smil21"/>, § 10.3.1.</p>
+</note>
+</div3>
+<div3 id="timing-attribute-timeContainer">
+<head>timeContainer</head>
+<p>The <att>timeContainer</att> attribute is used to specify a local temporal
+context by means of which timed child elements are temporally situated.</p>
+<p>If specified, the value of a <att>timeContainer</att> attribute must be one
+of the following:</p>
+<ulist>
+<item><p><code>par</code></p></item>
+<item><p><code>seq</code></p></item>
+</ulist>
+<p>If the time container semantics of an element instance is <code>par</code>,
+then the temporal intervals of child elements are considered to apply in
+parallel, i.e., simultaneously in time. Furthermore, the specification of
+the time interval of each child element is considered to be relative to the temporal
+interval of the container element instance.</p>
+<p>If the time container semantics of an element instance is <code>seq</code>,
+then the temporal intervals of child elements are considered to apply in
+sequence, i.e., sequentially in time. Furthermore, the specification of
+the time interval of each child element is considered to be relative to the temporal
+interval of its sibling elements, unless it is the first child element, in which case
+it is considered to be relative to the temporal interval of the container
+element instance.</p>
+<p>Each time container is considered to constitute an independent time base, i.e.,
+time coordinate system.</p>
+<p>If a <att>timeContainer</att> attribute is not specified on an element that
+has time container semantics, then <code>par</code> time container semantics must apply.</p>
+<p>Time container semantics applies only to the following element types:</p>
+<ulist>
+<item><p><loc href="#document-structure-vocabulary-body"><el>body</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-div"><el>div</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-p"><el>p</el></loc></p></item>
+<item><p><loc href="#layout-vocabulary-region"><el>region</el></loc></p></item>
+<item><p><loc href="#content-vocabulary-span"><el>span</el></loc></p></item>
+</ulist>
+<note role="derivation"> <p>The semantics of parallel and sequential time
+containment are based upon that defined by <bibref ref="smil21"/>, §
+10.3.2.</p> </note>
+</div3>
+</div2>
+<div2 id="timing-time-value-expressions">
+<head>Time Value Expressions</head>
+<p>Timing attribute values include the use of the following expressions:</p>
+<ulist>
+<item><p><specref ref="timing-value-timeExpression"/></p></item>
+</ulist>
+<div3 id="timing-value-timeExpression">
+<head><timeExpression></head>
+<p>A <timeExpression> is used to specify a coordinate along
+some time base, where the applicable time base is determined by the
+<att>ttp:timeBase</att> parameter.</p>
+<note role="example">
+<p>See <specref ref="parameter-attribute-timeBase"/>, <specref
+ref="parameter-attribute-frameRate"/>, <specref
+ref="parameter-attribute-subFrameRate"/>, and <specref
+ref="parameter-attribute-tickRate"/> for further information on
+explicit specification of time base, frame rate, sub-frame rate, and
+tick rate.</p>
+</note>
+<table id="timeExpression-syntax" role="syntax">
+<caption>Syntax Representation – <timeExpression></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<timeExpression>
+ : clock-time
+ | offset-time
+
+clock-time
+ : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
+
+offset-time
+ : time-count fraction? metric
+
+hours
+ : <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc>
+ | <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc>+
+
+minutes | seconds
+ : <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc>
+
+frames
+ : <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc>
+ | <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc> <loc href="#style-value-digit"><digit></loc>+
+
+sub-frames
+ : <loc href="#style-value-digit"><digit></loc>+
+
+fraction
+ : "." <loc href="#style-value-digit"><digit></loc>+
+
+time-count
+ : <loc href="#style-value-digit"><digit></loc>+
+
+metric
+ : "h" // hours
+ | "m" // minutes
+ | "s" // seconds
+ | "ms" // milliseconds
+ | "f" // frames
+ | "t" // ticks
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<!--
+<p>If a <timeExpression> is expressed in terms of an
+<emph>offset-time</emph> and no <emph>metric</emph> term is specified,
+then the default metric specified by a
+<att>ttp:defaultTimeMetric</att> parameter is used. If no
+default metric is specified, then the time count must be interpreted
+as seconds.</p>
+-->
+<p>If a <timeExpression> is expressed in terms of a
+<emph>clock-time</emph>, then leading zeroes are used when expressing hours,
+minutes, seconds, and frames less than 10. Minutes are constrained to the range
+[0…59], while seconds are constrained to [0…60], where the value 60
+applies only to leap seconds.</p>
+<p>If a <timeExpression> is expressed in terms of a
+<emph>clock-time</emph> and a <emph>frames</emph> term is specified,
+then the value of this term must be constrained to the interval
+[0…<emph>F-1</emph>], where <emph>F</emph> is the frame rate
+determined by the the <att>ttp:frameRate</att> parameter as defined
+by <specref ref="parameter-attribute-frameRate"/>.</p>
+<p>If a <timeExpression> is expressed in terms of a
+<emph>clock-time</emph> and a <emph>sub-frames</emph> term is specified,
+then the value of this term must be constrained to the interval
+[0…<emph>S-1</emph>], where <emph>S</emph> is the sub-frame rate
+determined by the the <att>ttp:subFrameRate</att> parameter as defined
+by <specref ref="parameter-attribute-subFrameRate"/>.</p>
+</div3>
+</div2>
+<div2 id="timing-time-intervals">
+<head>Time Intervals</head>
+<p>The semantics of time containment, durations, and intervals defined by
+<bibref ref="smil21"/> apply to the interpretation of like-named timed elements and timing
+vocabulary defined by this specification, given the following
+constraints:</p>
+<ulist>
+<item>
+<p>The implicit duration of <el>body</el>, <el>div</el>, <el>p</el>,
+and <el>span</el> (whether anonyous or not) is defined as follows: if
+the element's parent time container is a parallel time container, then
+the implicit duration is equivalent to the <code>indefinite</code>
+duration value as defined by <bibref ref="smil21"/>; if the element's
+parent time container is a sequential time container, then the
+implicit duration is equivalent to zero.</p>
+</item>
+<item>
+<p>The implicit duration of the <el>region</el> element is defined to
+be equivalent to the <code>indefinite</code>
+duration value as defined by <bibref ref="smil21"/>.</p>
+</item>
+<item>
+<p>If the governing time mode is <code>media</code> or
+<code>smpte</code> with mode <code>continuous</code>, then time
+expressions must be interpreted as equivalent to offset clock values
+related to the associated media time line.</p>
+</item>
+<item>
+<p>If the governing time mode is <code>smpte</code> with mode
+<code>discontinuous</code>, then time expressions must be interpreted
+as equivalent to marker values produced by an external marker event
+source, in which case all time expressions are equivalent to event
+based timing in <bibref ref="smil21"/>.</p>
+</item>
+<item>
+<p>If the governing time mode is <code>clock</code>, then time
+expressions must be interpreted as equivalent to wallclock time
+expressions in <bibref ref="smil21"/>, where the applicable wallclock
+used is determined by the clock mode parameter.</p>
+</item>
+</ulist>
+</div2>
+</div1>
+<div1 id="animation">
+<head>Animation</head>
+<p>This section specifies the <emph>animation</emph> matter of the
+core vocabulary catalog, where
+animation is to be understood as a separable layer of information that combines
+timing and styling in order to denote authorial intention about (temporally) dynamic
+styling of content.</p>
+<div2 id="animation-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>The following elements specify the structure and principal animation aspects of a
+document instance:</p>
+<ulist>
+<item><p><specref ref="animation-vocabulary-set"/></p></item>
+</ulist>
+<div3 id="animation-vocabulary-set">
+<head>set</head>
+<p>The <el>set</el> element is used as a child element of a content
+element in order to express a discrete change of some style parameter value
+that applies over some time interval.</p>
+<p>The <el>set</el> element accepts as its children zero or more
+elements in the <code>Metadata.class</code> element group.</p>
+<table id="elt-syntax-set" role="syntax">
+<caption>XML Representation – Element Information Item: set</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<set
+ <loc href="#timing-attribute-begin">begin</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-dur">dur</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#timing-attribute-end">end</loc> = <loc href="#timing-value-timeExpression"><timeExpression></loc>
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <loc href="#content-attribute-space">xml:space</loc> = (<emph>default</emph>|<emph>preserve</emph>)
+ {<emph>a single attribute in TT Style or TT Style Extension namespace</emph>}
+ {<emph>any attribute not in default or any TT namespace ...</emph>}>
+ <emph>Content:</emph> <loc href="#element-vocab-group-table">Metadata.class</loc>*
+</set>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="example">
+<p>The use of multiple <el>set</el> element children may be used to effect fade and
+position transitions.</p>
+</note>
+<note role="derivation">
+<p>The semantics of the <el>set</el> element
+are based upon that defined by <bibref ref="smil21"/>,
+§ 3.5.2.</p>
+</note>
+</div3>
+</div2>
+<div2 id="animation-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>No animation related attribute vocabulary is defined for use in the
+core vocabulary catalog.</p>
+</div2>
+</div1>
+<div1 id="metadata">
+<head>Metadata</head>
+<p>This section specifies the <emph>metadata</emph> matter of the core
+vocabulary catalog, where
+metadata is to be understood as a separable layer of information that applies to
+content, style, layout, timing, and even metadata itself, where the information
+represented by metadata takes one of two forms: (1) metadata defined by this
+specification for standardized use in a document instance, and (2) arbitrary
+metadata defined outside of the scope of this specification, whose use and
+semantics depend entirely upon an application's use of TT AF content.</p>
+<div2 id="metadata-element-vocabulary">
+<head>Element Vocabulary</head>
+<p>The <specref ref="metadata-vocabulary-metadata"/> element serves as
+a generic container element for grouping metadata information.</p>
+<p>In addition, the following elements, all defined in the TT Metadata Namespace,
+provide standard representations for common metadata that is expected to be commonly
+used in a document instances:
+</p>
+<ulist>
+<item><p><specref ref="metadata-vocabulary-title"/></p></item>
+<item><p><specref ref="metadata-vocabulary-desc"/></p></item>
+<item><p><specref ref="metadata-vocabulary-copyright"/></p></item>
+<item><p><specref ref="metadata-vocabulary-agent"/></p></item>
+<item><p><specref ref="metadata-vocabulary-name"/></p></item>
+<item><p><specref ref="metadata-vocabulary-actor"/></p></item>
+</ulist>
+<div3 id="metadata-vocabulary-metadata">
+<head>metadata</head>
+<p>The <el>metadata</el> element functions as a generic container for metadata
+information.</p>
+<p>Metadata information may be expressed by a <el>metadata</el> element
+in one of two (non-mutually exclusive) manners: (1) by specifying one
+or more metadata attributes on the element, and (2) by specifying one
+or more <el>metadata</el> child elements that express metadata. Both types of metadata
+are referred to in this document as <emph>metadata items</emph>.</p>
+<table id="elt-syntax-metadata" role="syntax">
+<caption>XML Representation – Element Information Item: metadata</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<metadata
+ <loc href="#content-attribute-requiredExtensions">requiredExtensions</loc> = string
+ <loc href="#content-attribute-requiredFeatures">requiredFeatures</loc> = string
+ <loc href="#content-attribute-requiredFonts">requiredFeatures</loc> = string
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> {<emph>any element not in TT namespace</emph>}*
+</metadata>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>The meaning of a specific metadata item must be evaluated in the
+context of where it appears. The core vocabulary catalog permits an arbitrary number of
+<el>metadata</el> element children of any non-empty element type except
+for the <el>body</el> element. See specific element vocabulary
+definitions for any constraints that apply to such usage.</p>
+</note>
+</div3>
+<div3 id="metadata-vocabulary-title">
+<head>ttm:title</head>
+<p>The <el>ttm:title</el> element is used to express a human-readable title of
+a specific element instance.</p>
+<table id="elt-syntax-metadata-title" role="syntax">
+<caption>XML Representation – Element Information Item: ttm:title</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<ttm:title
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> #PCDATA
+</ttm:title>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="elaboration">
+<p>No specific use of the <el>ttm:title</el> element is defined by this specification.</p>
+</note>
+</div3>
+<div3 id="metadata-vocabulary-desc">
+<head>ttm:desc</head>
+<p>The <el>ttm:desc</el> element is used to express a human-readable description of
+a specific element instance.</p>
+<table id="elt-syntax-metadata-desc" role="syntax">
+<caption>XML Representation – Element Information Item: ttm:desc</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<ttm:desc
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> #PCDATA
+</ttm:desc>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="elaboration">
+<p>No specific use of the <el>ttm:desc</el> element is defined by this specification.</p>
+</note>
+</div3>
+<div3 id="metadata-vocabulary-copyright">
+<head>ttm:copyright</head>
+<p>The <el>ttm:copyright</el> element is used to express a human-readable copyright that
+applies to some scoping level.</p>
+<p>A copyright statement that applies to a document as a whole should appear as a
+child of the <el>head</el> element.</p>
+<table id="elt-syntax-metadata-copyright" role="syntax">
+<caption>XML Representation – Element Information Item: ttm:copyright</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<ttm:copyright
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> #PCDATA
+</ttm:copyright>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="elaboration">
+<p>No specific use of the <el>ttm:copyright</el> element is defined by this specification.</p>
+</note>
+</div3>
+<div3 id="metadata-vocabulary-agent">
+<head>ttm:agent</head>
+<p>The <el>ttm:agent</el> element is used to define an agent for the purpose of associating
+content information with an agent who is involved in the production or expression of that content.</p>
+<p>The <el>ttm:agent</el> element accepts as its children zero or more <el>ttm:name</el> elements followed by
+zero or one <el>ttm:actor</el> element.</p>
+<p>At least one <el>ttm:name</el> element child should be specified that expresses a name for the
+agent, whether it be the name of a person, character, group, or organization.</p>
+<table id="elt-syntax-metadata-agent" role="syntax">
+<caption>XML Representation – Element Information Item: ttm:agent</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<ttm:agent
+ <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> = string
+ <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>}>
+ <emph>Content:</emph> <loc href="#metadata-vocabulary-name">ttm:name</loc>*, <loc href="#metadata-vocabulary-actor">ttm:actor</loc>?
+</ttm:agent>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>A <att>type</att> attribute must be specified on each <el>ttm:agent</el> element, and,
+if specified, must have one of the following values:</p>
+<ulist>
+<item><p><el>person</el></p></item>
+<item><p><el>character</el></p></item>
+<item><p><el>group</el></p></item>
+<item><p><el>organization</el></p></item>
+<item><p><el>other</el></p></item>
+</ulist>
+<p>If the value of the <att>type</att> attribute is <code>character</code>, then the
+<el>ttm:agent</el> element instance should specify a <el>ttm:actor</el> child that
+specifies the agent that plays the role of the actor.</p>
+<p>A <att>ttm:agent</att> metadata item is considered to be significant only
+when specified as a child of the <el>head</el> element or as a child of a
+<el>metadata</el> element child of the <el>head</el> element.</p>
+<note role="elaboration">
+<p>A <el>ttm:agent</el> element instance is typically referenced using a <att>ttm:agent</att>
+attribute on a content element.</p>
+</note>
+<note role="elaboration">
+<p>If a character agent is played by multiple actors, then multiple character
+agents may be specified (and referenced) wherein different definitions of the
+character specify different actors.</p>
+</note>
+</div3>
+<div3 id="metadata-vocabulary-name">
+<head>ttm:name</head>
+<p>The <el>ttm:name</el> element is used to specify a name of a person, character,
+group, or organization.</p>
+<table id="elt-syntax-metadata-name" role="syntax">
+<caption>XML Representation – Element Information Item: ttm:name</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<ttm:name
+ <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> = string
+ <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>}>
+ <emph>Content:</emph> #PCDATA
+</ttm:name>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>A <att>type</att> attribute must be specified on each <el>ttm:name</el> element, and,
+if specified, must have one of the following values:</p>
+<ulist>
+<item><p><el>full</el></p></item>
+<item><p><el>family</el></p></item>
+<item><p><el>given</el></p></item>
+<item><p><el>alias</el></p></item>
+<item><p><el>other</el></p></item>
+</ulist>
+<p>The relationship between the type of a name and the syntactic expression of the name
+is not defined by this specification.</p>
+</div3>
+<div3 id="metadata-vocabulary-actor">
+<head>ttm:actor</head>
+<p>The <el>ttm:actor</el> element is used to link the definition of a (role-based) character
+agent with another agent that portrays the character.</p>
+<table id="elt-syntax-metadata-actor" role="syntax">
+<caption>XML Representation – Element Information Item: ttm:actor</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<ttm:actor
+ <phrase role="reqattr">agent</phrase> = IDREF
+ <loc href="#content-attribute-id">xml:id</loc> = ID
+ <loc href="#content-attribute-lang">xml:lang</loc> = string
+ <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>}>
+ <emph>Content:</emph> EMPTY
+</ttm:actor>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>The <att>agent</att> attribute of a <el>ttm:actor</el> element must
+reference a <el>ttm:agent</el> element that denotes the person,
+group, or organization acting the part of a character.</p>
+</div3>
+</div2>
+<div2 id="metadata-attribute-vocabulary">
+<head>Attribute Vocabulary</head>
+<p>This section specifies the following attributes in the TT Metadata Namespace
+for use with the <el>metadata</el> element and with certain content elements:</p>
+<ulist>
+<item><p><specref ref="metadata-attribute-agent"/></p></item>
+<item><p><specref ref="metadata-attribute-role"/></p></item>
+</ulist>
+<note role="explanation">
+<p>Only certain metadata item attributes may be used with content elements. See
+the definitions of content elements to determine permissible usage.</p>
+</note>
+<div3 id="metadata-attribute-agent">
+<head>ttm:agent</head>
+<p>The <att>ttm:agent</att> attribute takes an <code>IDREFS</code>
+value, and is used with certain content elements to designate the agent that performs
+or is involved in the performance of the content.</p>
+<p>If specified, a <att>ttm:agent</att> attribute must reference a <el>ttm:agent</el> element
+instance that appears as a descendent of the same document instance as
+that of the referring element.</p>
+</div3>
+<div3 id="metadata-attribute-role">
+<head>ttm:role</head>
+<p>The <att>ttm:role</att> attribute may be used by a content author
+to express a role, function, or characteristic of some content element that is so labeled.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="metadata-attribute-role-syntax" role="syntax">
+<caption>Syntax Representation – ttm:role</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttm:role
+ : "action"
+ | "caption"
+ | "dialog"
+ | "expletive"
+ | "kinesic"
+ | "lyrics"
+ | "music"
+ | "narration"
+ | "quality"
+ | "sound"
+ | "source"
+ | "suppressed"
+ | "reproduction"
+ | "thought"
+ | "title"
+ | "transcription"
+ | extension-role
+
+extension-role
+ : "x-" token-char+
+
+token-char
+ : { XML NameChar } // XML 1.1 Production [4a]
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<note role="extensibility">
+<p>All values of <att>ttm:role</att> that do not start with the prefix
+<code>x-</code> are reserved for future standardization.</p>
+</note>
+</div3>
+</div2>
+</div1>
+</body>
+<back>
+<div1 id="reduced-infoset">
+<head>Reduced XML Infoset</head>
+<p><emph>This appendix is normative.</emph></p>
+<p>For the purposes of this specification, a Reduced XML Infoset is
+an XML Information Set <bibref ref="infoset"/> that consists of only the following information items
+and information item properties:</p>
+<div2 id="reduced-infoset-document">
+<head>Document Information Item</head>
+<ulist>
+<item><p><code>[document element]</code></p></item>
+</ulist>
+</div2>
+<div2 id="reduced-infoset-element">
+<head>Element Information Item</head>
+<ulist>
+<item><p><code>[namespace URI]</code></p></item>
+<item><p><code>[local name]</code></p></item>
+<item><p><code>[children]</code></p></item>
+<item><p><code>[attributes]</code></p></item>
+</ulist>
+<p>Child information items <code>[children]</code> are reduced to
+only element and character information items.</p>
+</div2>
+<div2 id="reduced-infoset-attribute">
+<head>Attribute Information Item</head>
+<ulist>
+<item><p><code>[namespace URI]</code></p></item>
+<item><p><code>[local name]</code></p></item>
+<item><p><code>[normalized value]</code></p></item>
+</ulist>
+</div2>
+<div2 id="reduced-infoset-character">
+<head>Character Information Item</head>
+<ulist>
+<item><p><code>[character code]</code></p></item>
+</ulist>
+<p>Contiguous character information items are not required to be represented distinctly,
+but may be aggregated (chunked) into a sequence of character codes (i.e., a character string).</p>
+</div2>
+</div1>
+<div1 id="dynamicFlowModel">
+<head>Dynamic Flow Processing Model</head>
+<p><emph>This appendix is normative.</emph></p>
+<p>This appendix specifies a dynamic flow processing model that is
+used to present content in a region whose <att>tts:overflow</att>
+property is assigned a value of <code>scroll</code>.</p>
+<div2 id="dynamicFlowIntroduction">
+<head>Introduction</head>
+<p><emph>This sub-section is non-normative.</emph></p>
+<p>Dynamic flow provides a mechanism by means of which content may be
+flowed through a presentation region over time where the rate of
+presentation is dynamically determined by a presentation processor
+based upon the region's extent, the textual content to be presented in
+the region, the formatting styles applied to this content, and a set
+of parameters that control in-flow and out-flow rates of content.</p>
+<p>It is expected that this mechanism will be used by authors in a
+variety of circumstances in order to specify behavior that would
+otherwise be impossible or impractical to pre-compute at authoring time, since, for
+example, a region's absolute size or the font metrics used to present
+content may not be known at authoring time. In certain real-time
+streaming contexts, even the content is not known at authoring time,
+but is only known at time of streaming.</p>
+<p>In describing dynamic flow, the flow process is logically divided
+into three types of flow operations:</p>
+<ulist>
+<item><p><emph>fill into</emph> – causes new content
+to consume extent in the designated presentation region;</p></item>
+<item><p><emph>reflow within</emph> – causes content
+presently consuming extent to be moved, possibly entailing new line break
+positions, within its designated
+presentation region;</p></item>
+<item><p><emph>clear out</emph> – causes content
+presently consuming extent in the designated presentation region to no
+longer consume extent.</p></item>
+</ulist>
+<p>Each region subject to dynamic flow processing may be modeled in terms of:</p>
+<olist>
+<item><p>the region with a definite extent, into which content is to be
+flowed;</p></item>
+<item><p>a content buffer consisting of a sequence of content blocks,
+each of which consists of a sequence of content inlines (spans), where
+each block and inline has a computed style set, and where an inline
+has a (possibly empty) sequence of characters that express the textual
+content of the inline;</p></item>
+<item><p>two independent flow operation single-shot timers: a fill timer and a clear
+timer;</p></item>
+<item><p>a set of state parameters that includes:</p>
+<olist>
+<item><p><emph>fill unit</emph>, as specified by the <code>flowUnit</code> argument
+of the <code>in()</code> flow function;</p></item>
+<item><p><emph>fill style</emph>, as specified by the <code>flowStyle</code> argument
+of the <code>in()</code> flow function;</p></item>
+<item><p><emph>fill transition</emph>, as specified by the <code>flowTransition</code> argument
+of the <code>in()</code> flow function;</p></item>
+<item><p><emph>fill transition style</emph>, as specified by the
+<code>flowTransitionStyle</code> argument
+of the <code>in()</code> flow function;</p></item>
+<item><p><emph>reflow unit</emph>, as specified by the <code>flowUnit</code> argument
+of the <code>within()</code> flow function;</p></item>
+<item><p><emph>reflow style</emph>, as specified by the <code>flowStyle</code> argument
+of the <code>within()</code> flow function;</p></item>
+<item><p><emph>reflow transition</emph>, as specified by the <code>flowTransition</code> argument
+of the <code>within()</code> flow function;</p></item>
+<item><p><emph>reflow transition style</emph>, as specified by the
+<code>flowTransitionStyle</code> argument
+of the <code>within()</code> flow function;</p></item>
+<item><p><emph>clear unit</emph>, as specified by the <code>flowUnit</code> argument
+of the <code>out()</code> flow function;</p></item>
+<item><p><emph>clear style</emph>, as specified by the <code>flowStyle</code> argument
+of the <code>out()</code> flow function;</p></item>
+<item><p><emph>clear transition</emph>, as specified by the <code>flowTransition</code> argument
+of the <code>out()</code> flow function;</p></item>
+<item><p><emph>clear transition style</emph>, as specified by the
+<code>flowTransitionStyle</code> argument
+of the <code>out()</code> flow function;</p></item>
+<item><p><emph>fill interval</emph>, as specified by the <code>intra()</code>
+flow interval function;</p></item>
+<item><p><emph>clear interval</emph>, as specified by the <code>inter()</code>
+flow interval function;</p></item>
+<item><p><emph>computed fill interval, as determined by the flow
+interval timing calculation below;</emph></p></item>
+<item><p><emph>computed clear interval, as determined by the flow
+interval timing calculation below;</emph></p></item>
+</olist>
+</item>
+</olist>
+<p>Except for the computed fill and clear intervals, the flow interval
+state parameters enumerated above are static and specified at authoring time.</p>
+</div2>
+<div2 id="dynamicFlowEvents">
+<head>Flow Buffer</head>
+<p>Each region which is assigned a <att>tts:overflow</att> property
+with the value <code>scroll</code> is associated with a <emph>flow
+buffer</emph>, whose implementation is not defined by this
+specification.</p>
+<p>The content of a flow buffer is defined to be equivalent (in form) to the
+content of an <el>fo:block-container</el> element produced by
+<specref ref="semantics-region-layout-step-2"/>, and represents
+content that is awaiting, but has not yet been flowed into (made
+visible in) the
+presentation region with which the flow buffer is associated.</p>
+<p>The temporal content of a flow buffer is related to the performance
+of <specref ref="semantics-region-layout"/> as follows:</p>
+<olist>
+<item><p>At the time a dynamically flowed presentation region becomes
+temporally active, its flow buffer is reset to the empty state;</p></item>
+<item><p>If times <code>T<sub>k</sub></code> and
+<code>T<sub>k+1</sub></code> are two immediately adjacent time
+coordinates at which synchronic region construction occurs, with
+<code>T<sub>k</sub>≤T<sub>k+1</sub></code>, then compute the
+difference between the content produced for use in the region between
+time <code>T<sub>k</sub></code> and time <code>T<sub>k+1</sub></code>,
+characterizing the difference as one of the following:</p>
+<olist>
+<item><p>no difference present;</p></item>
+<item><p>difference present, but only before the logical content
+position that corresponds with the most logically prior content presently
+visible in the region;</p></item>
+<item><p>difference present, but only between the logical content
+positions that correspond with the most logically prior and subsequent
+content presently visible in the region;</p></item>
+<item><p>difference present, but only after the logical content
+position that corresponds with the most logically subsequent content presently
+visible in the region;</p></item>
+<item><p>difference present, but not limited to before, between, or after
+the positions that correspond with the most logically prior
+and subsequent content presently visible in the region;</p></item>
+</olist>
+</item>
+<item><p>If any one of the conditions 2a, 2b, and 2c applies, then do not
+change the flow buffer.</p></item>
+<item><p>If condition 2d applies, then instantaneously replace the
+content of the flow buffer with the new content (in part or in whole) that corresponds with
+time <code>T<sub>k+1</sub></code> such that the position of the content that
+corresponds with the start of the flow buffer does not change with
+respect to the corresponding position of the previous content.</p></item>
+<item><p>If condition 2e applies, then subdivide the new content that
+corresponds with time <code>T<sub>k+1</sub></code> into two parts: (1)
+that part that wholly precedes the position that corresponds with the
+most logically subsequent content presently visible in the region, and
+(2) that part that corresponds with or wholly follows the position
+that corresponds with the most logically subsequent content presently
+visible in the region, then ignore the first part and process the second part
+in the same manner as if condition 2d had originally applied.</p></item>
+<item><p>If after performing the above steps the flow buffer is
+non-empty, then perform the following steps:</p>
+<olist>
+<item><p>If using automatic flow interval timing, then re-perform the process
+described in <specref ref="dynamicFlowIntervalTimingCalculation"/>.</p></item>
+<item><p>If the fill timer is not active, then restart the
+timer.</p></item>
+</olist>
+</item>
+</olist>
+</div2>
+<div2 id="dynamicFlowIntervalTimingCalculation">
+<head>Flow Interval Timing Calculation</head>
+<p>Flow interval timing is either statically specified at authoring
+time or is dependent upon the content of the flow buffer or the
+presentation region or both, in which case timing is recomputed
+dynamically upon changes to the content of the flow buffer or the
+presentation region or both.</p>
+<div3 id="flowIntervalFillTiming">
+<head>Computed Fill Timing Interval</head>
+<p>The computed fill timing interval is determined as follows:</p>
+<olist>
+<item><p>If the value of the <emph>fill interval</emph> parameter is a
+definite duration, then use this duration as the computed fill
+interval;</p></item>
+<item><p>otherwise, if the value of the <emph>fill interval</emph> parameter is a
+definite rate, then the computed fill interval is equal to the number of fill units currently
+available in the <emph>flow buffer</emph> divided by specified rate
+(in fill units per second);</p></item>
+<item><p>otherwise, if the value of the <emph>fill interval</emph> is
+<code>auto</code>, then the computed fill interval is equal to the
+difference between the time coordinate associated with the most
+temporally prior beginning point of an active duration of some
+content unit present in the flow buffer and the most temporally
+subsequent ending point of an active duration of some content unit
+present in the flow buffer divided by the number of fill units
+currently available in the flow buffer.</p></item>
+</olist>
+</div3>
+<div3 id="flowIntervalClearTiming">
+<head>Computed Clear Timing Interval</head>
+<p>The computed clear timing interval is determined as follows:</p>
+<olist>
+<item><p>If the value of the <emph>clear interval</emph> parameter is a
+definite duration, then use this duration as the computed clear
+interval;</p></item>
+<item><p>otherwise, if the value of the <emph>clear interval</emph> parameter is a
+definite rate, then the computed clear interval is equal to the number of clear units currently
+available in the <emph>presentation region</emph> divided by specified rate
+(in clear units per second);</p></item>
+<item><p>otherwise, if the value of the <emph>clear interval</emph> is
+<code>auto</code>, then the computed clear interval is equal to the
+difference between the time coordinate associated with the most
+temporally prior beginning point of an active duration of some
+content unit present in the presentation region and the most temporally
+subsequent ending point of an active duration of some content unit
+present in the presentation region divided by the number of clear units
+currently available in the presentation region.</p></item>
+</olist>
+</div3>
+</div2>
+<div2 id="dynamicFlowOperations">
+<head>Flow Operations</head>
+<p>Flow operations perform the filling, reflowing, and clearing of
+formatted content into, within, and from a presentation undergoing dynamic flow processing.</p>
+<div3 id="flowOperationFill">
+<head>Fill Operation</head>
+<p>A <emph>fill operation</emph> causes the following ordered steps
+to be performed:</p>
+<olist>
+<item><p>remove sufficient content from the beginning of the
+<emph>flow buffer</emph> to constitute a <emph>fill
+unit</emph>;</p></item>
+<item><p>format the content removed from the
+<emph>flow buffer</emph> in the previous step in order to
+create a sequence of glyph areas or a sequence of (full or
+partial measure) line areas each containing a sequence of glyph
+areas;</p></item>
+<item><p>append the sequence of areas produced in the previous step to
+the sequence of areas currently associated with the presentation
+region, where new glyph areas are appended to the current line area
+and new line areas are appended to the sequence of line areas;</p></item>
+<item><p>cause the newly appended areas to be made visible according
+to the <emph>fill style</emph>, <emph>fill transition</emph>, and <emph>fill transition
+style</emph> state parameters in force.</p></item>
+</olist>
+</div3>
+<div3 id="flowOperationReflow">
+<head>Reflow Operation</head>
+<p>A <emph>reflow operation</emph> causes the following ordered steps
+to be performed:</p>
+<olist>
+<item><p>translate glyph areas or (full or partial measure) line areas
+that correspond with a <emph>reflow unit</emph> of formatted content
+that follows (in inline or block progression dimension order) the space
+cleared by the immediately preceding <emph>clear operation</emph> to a
+new position such that the glyph area that corresponds to the most
+logically prior content is aligned with the before and start edges of
+the presentation region, and where the translation adheres to
+the <emph>reflow style</emph>, <emph>reflow transition</emph>, and <emph>reflow transition
+style</emph> state parameters in force.</p></item>
+</olist>
+</div3>
+<div3 id="flowOperationClear">
+<head>Clear Operation</head>
+<p>A <emph>clear operation</emph> causes the following ordered steps
+to be performed:</p>
+<olist>
+<item><p>remove glyph areas or (full or partial measure) line areas
+that correspond with a <emph>clear unit</emph> of formatted content
+from the starting edge or the before edge of the presentation region
+in inline or block progression direction, respectively, applying
+the <emph>clear style</emph>, <emph>clear transition</emph>, and <emph>clear transition
+style</emph> state parameters in force.</p></item>
+</olist>
+</div3>
+</div2>
+<div2 id="dynamicFlowTimers">
+<head>Flow Timers</head>
+<p>Flow timers control the filling and clearing of formatted content
+from a presentation undergoing dynamic flow processing.</p>
+<note> <p>The semantics of flow timer initiated processing expressed
+below reflects the intent that clear and reflow
+operations or clear, reflow, and flow operations are performed
+simultaneously if the (logically, but not necesesarily temporally)
+prior operation would create sufficient space in the presentation
+region to accept the subsequent unit of formatted content.</p> </note>
+<div3 id="flowTimerFill">
+<head>Fill Timer</head>
+<p>The fill timer is used to pace the addition of formatted content to the
+presentation region undergoing dynamic flow processing.</p>
+<p>Each time the fill timer expires, the following ordered steps are
+performed:</p>
+<olist>
+<item><p>
+If the <emph>fill buffer</emph> is non-empty and contains sufficient
+content to compose a <emph>fill unit</emph> and if
+sufficient space is present in the presentation region to accept a
+unit of formatted content that corresponds to a <emph>fill unit</emph>, then
+perform the processing described in <specref
+ref="flowOperationFill"/>, where, if the fill timer was expired or
+simulated as a result of performing a prior reflow operation, this operation commences at the same
+time as the reflow operation;</p></item>
+<item><p>If the <emph>fill buffer</emph> is non-empty, then
+reset the fill timer to the current value of the computed fill
+interval;</p></item>
+<item><p>
+If the <emph>presentation region</emph> is non-empty and if the clear
+timer is not active, then
+reset the clear timer to the current value of the computed clear
+interval.</p></item>
+</olist>
+</div3>
+<div3 id="flowTimerClear">
+<head>Clear Timer</head>
+<p>The clear timer is used to pace the removal of formatted content from the
+presentation region undergoing dynamic flow processing.</p>
+<olist>
+<item><p>
+If the <emph>presentation region</emph> is non-empty and contains sufficient
+formatted content to compose a <emph>clear unit</emph>, then
+perform the processing described in <specref
+ref="flowOperationClear"/>;</p>
+</item>
+<item><p>If the space created by performing the clear operation
+indicated by the above step would be sufficient to accept a unit of
+formatted content that corresponds to a <emph>reflow unit</emph> and
+if sufficient formatted content remains after this point in the
+presentation region, then perform the processing described in <specref
+ref="flowOperationReflow"/>, where this operation commences at the
+same time as the clear operation;</p></item>
+<item><p>If a reflow operation would be performed as indicated by the above
+step and if the space created by performing this reflow operation
+would be sufficient to accept a unit of formatted content that
+corresponds to a <emph>fill unit</emph> and if the fill buffer is
+non-empty, then, if active, cause the fill timer to immediately expire
+or, if not active, simulate fill timer expiration, such that the
+expiration permits a fill operation to commence simultaneously with
+the reflow operation;</p></item>
+<item><p> If the previous step did not cause the fill timer to expire
+and if the <emph>presentation region</emph> is non-empty, then reset
+the clear timer to the current value of the computed clear
+interval.</p></item>
+</olist>
+</div3>
+</div2>
+</div1>
+<div1 id="schemas">
+<head>Schemas</head>
+<p><emph>This appendix is normative.</emph></p>
+<p>This appendix specifies the following schemas for use with
+DFXP document instances:</p>
+<ulist>
+<item><p>Relax NG, Compact Syntax (RNC) Schema</p></item>
+<item><p>XML Schema Definition (XSD) Schema</p></item>
+</ulist>
+<p>In any case where a schema specified by this appendix differs from the
+normative definitions of document type, element type, or attribute type
+as defined by the body of this specification, then the body of this
+specification takes precedence.</p>
+<div2 id="dfxp-schema-rnc">
+<head>Relax NG Schema</head>
+<p>This section specifies a Relax NG Compact Syntax (RNC) <bibref ref="rng"/> based schema
+for DFXP, also available in a <loc href="rnc/schema.zip">ZIP
+Archive</loc>.</p>
+<div3 id="rnc-dfxp-driver-schema">
+<head>Driver</head>
+<eg xml:space="preserve">&rnc-dfxp-driver;</eg>
+</div3>
+<div3 id="rnc-dfxp-modules">
+<head>Modules</head>
+<div4 id="rnc-dfxp-animation-module">
+<head>Animation Module</head>
+<eg xml:space="preserve">&rnc-dfxp-animation-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-classes-module">
+<head>Classes Module</head>
+<eg xml:space="preserve">&rnc-dfxp-classes-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-content-module">
+<head>Content Module</head>
+<eg xml:space="preserve">&rnc-dfxp-content-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-core-attribs-module">
+<head>Core Attributes Module</head>
+<eg xml:space="preserve">&rnc-dfxp-core-attribs-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-datatypes-module">
+<head>Data Types Module</head>
+<eg xml:space="preserve">&rnc-dfxp-datatypes-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-document-module">
+<head>Document Module</head>
+<eg xml:space="preserve">&rnc-dfxp-document-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-head-module">
+<head>Header Module</head>
+<eg xml:space="preserve">&rnc-dfxp-head-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-layout-module">
+<head>Layout Module</head>
+<eg xml:space="preserve">&rnc-dfxp-layout-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-metdata-module">
+<head>Metadata Module</head>
+<eg xml:space="preserve">&rnc-dfxp-metadata-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-metdata-items-module">
+<head>Metadata Items Module</head>
+<eg xml:space="preserve">&rnc-dfxp-metadata-items-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-metadata-attribs-module">
+<head>Metadata Attributes Module</head>
+<eg xml:space="preserve">&rnc-dfxp-metadata-attribs-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-parameter-attribs-module">
+<head>Parameter Attributes Module</head>
+<eg xml:space="preserve">&rnc-dfxp-parameter-attribs-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-styling-attribs-module">
+<head>Styling Attributes Module</head>
+<eg xml:space="preserve">&rnc-dfxp-styling-attribs-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-styling-module">
+<head>Styling Module</head>
+<eg xml:space="preserve">&rnc-dfxp-styling-module;</eg>
+</div4>
+<div4 id="rnc-dfxp-timing-attribs-module">
+<head>Timing Attributes Module</head>
+<eg xml:space="preserve">&rnc-dfxp-timing-attribs-module;</eg>
+</div4>
+</div3>
+</div2>
+<div2 id="dfxp-schema-xsd">
+<head>XML Schema Definition (XSD) Schema</head>
+<p>This section specifies a W3C XML Schema Definition (XSD) <bibref ref="xsd-1"/> based schema
+for DFXP, also available in a <loc href="xsd/schema.zip">ZIP
+Archive</loc>.</p>
+<div3 id="xsd-dfxp-driver-schema">
+<head>Driver</head>
+<eg xml:space="preserve">&xsd-dfxp-driver;</eg>
+</div3>
+<div3 id="xsd-dfxp-modules">
+<head>Modules</head>
+<div4 id="xsd-dfxp-animation-module">
+<head>Animation Module</head>
+<eg xml:space="preserve">&xsd-dfxp-animation-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-content-module">
+<head>Content Module</head>
+<eg xml:space="preserve">&xsd-dfxp-content-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-core-attribs-module">
+<head>Core Attributes Module</head>
+<eg xml:space="preserve">&xsd-dfxp-core-attribs-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-datatypes-module">
+<head>Data Types Module</head>
+<eg xml:space="preserve">&xsd-dfxp-datatypes-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-document-module">
+<head>Document Module</head>
+<eg xml:space="preserve">&xsd-dfxp-document-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-head-module">
+<head>Header Module</head>
+<eg xml:space="preserve">&xsd-dfxp-head-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-layout-module">
+<head>Layout Module</head>
+<eg xml:space="preserve">&xsd-dfxp-layout-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-metdata-module">
+<head>Metadata Module</head>
+<eg xml:space="preserve">&xsd-dfxp-metadata-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-metdata-items-module">
+<head>Metadata Items Module</head>
+<eg xml:space="preserve">&xsd-dfxp-metadata-items-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-metadata-attribs-module">
+<head>Metadata Attributes Module</head>
+<eg xml:space="preserve">&xsd-dfxp-metadata-attribs-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-parameter-attribs-module">
+<head>Parameter Attributes Module</head>
+<eg xml:space="preserve">&xsd-dfxp-parameter-attribs-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-styling-attribs-module">
+<head>Styling Attributes Module</head>
+<eg xml:space="preserve">&xsd-dfxp-styling-attribs-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-styling-module">
+<head>Styling Module</head>
+<eg xml:space="preserve">&xsd-dfxp-styling-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-timing-attribs-module">
+<head>Timing Attributes Module</head>
+<eg xml:space="preserve">&xsd-dfxp-timing-attribs-module;</eg>
+</div4>
+<div4 id="xsd-dfxp-xml-attrs-module">
+<head>XML Attributes Module</head>
+<eg xml:space="preserve">&xsd-dfxp-xml-attrs-module;</eg>
+</div4>
+</div3>
+</div2>
+</div1>
+<div1 id="media-type-registration">
+<head>Media Type Registration</head>
+<p><emph>This appendix is normative.</emph></p>
+<p>This appendix registers a new MIME media type,
+"application/ttaf+xml" in conformance with
+<loc href="http://www.ietf.org/rfc/rfc4288.txt">BCP 13</loc> and
+<loc
+href="http://www.w3.org/2002/06/registering-mediatype.html">W3CRegMedia</loc>.
+The information in this appendix is being submitted to the Internet
+Engineering Steering Group (IESG) for review, approval, and
+registration with the Internet Assigned Numbers Authority (IANA).</p>
+<glist>
+<gitem>
+<label>MIME media type name:</label>
+<def>
+<p>application</p>
+</def>
+</gitem>
+<gitem>
+<label>MIME subtype name:</label>
+<def>
+<p>ttaf+xml</p>
+</def>
+</gitem>
+<gitem>
+<label>Required parameters:</label>
+<def>
+<p>None.</p>
+</def>
+</gitem>
+<gitem>
+<label>Optional parameters:</label>
+<def>
+<p>The encoding of a TT AF document must be determined by the XML
+encoding declaration. This has identical semantics to the
+application/xml media type in the case where the charset parameter is
+omitted, as specified in <bibref ref="xml-media"/>, Sections 8.9,
+8.10 and 8.11.</p>
+<p>The document profile of a TT AF document may be specified using
+an optional <code>profile</code> parameter, which, if specified,
+the value of which must adhere to the syntax and semantics of
+<att>ttp:profile</att> parameter defined by
+Section
+<specref ref="parameter-attribute-profile"/>
+of the published specification.</p>
+</def>
+</gitem>
+<gitem>
+<label>Encoding considerations:</label>
+<def>
+<p>Same for application/xml. See <bibref ref="xml-media"/>, Section
+3.2.</p>
+</def>
+</gitem>
+<gitem>
+<label>Restrictions on usage:</label>
+<def>
+<p>None.</p>
+</def>
+</gitem>
+<gitem>
+<label>Security considerations:</label>
+<def>
+<p>As with other XML types and as noted in
+<bibref ref="xml-media"/>
+Section 10, repeated expansion of maliciously constructed XML entities
+can be used to consume large amounts of memory, which may cause XML
+processors in constrained environments to fail.</p>
+<p>In addition, because of the extensibility features for TT AF and of XML
+in general, it is possible that "application/ttaf+xml" may describe content
+that has security implications beyond those described here. However,
+if the processor follows only the normative semantics of the published
+specification, this content will be outside TT AF namespaces and
+may be ignored. Only in the case where the processor recognizes and
+processes the additional content, or where further processing of that
+content is dispatched to other processors, would security issues
+potentially arise. And in that case, they would fall outside the
+domain of this registration document.</p>
+</def>
+</gitem>
+<gitem>
+<label>Interoperability considerations:</label>
+<def>
+<p>The published specification describes processing semantics that dictate
+behavior that must be followed when dealing with, among other things,
+unrecognized elements and attributes, both in TT AF namespaces and in
+other namespaces.</p>
+<p>Because TT AF is extensible, conformant "application/ttaf+xml" processors must
+expect that content received is well-formed XML, but it cannot be
+guaranteed that the content is valid to a particular DTD or Schema or
+that the processor will recognize all of the elements and attributes
+in the document.</p>
+</def>
+</gitem>
+<gitem>
+<label>Published specification:</label>
+<def>
+<p>This media type registration is extracted from Appendix <specref
+ref="media-type-registration"/> of the <loc
+href="http://www.w3.org/TR/ttaf1-dfxp/">Timed Text (TT) Authoring
+Format 1.0 - Distribution Format Exchange Profile (DFXP)</loc>
+specification.</p>
+</def>
+</gitem>
+<gitem>
+<label>Additional information:</label>
+<def>
+<p>None.</p>
+</def>
+</gitem>
+<gitem>
+<label>Person & email address to contact for further information:</label>
+<def>
+<p>Glenn Adams (public-tt@w3.org)</p>
+</def>
+</gitem>
+<gitem>
+<label>Intended usage:</label>
+<def>
+<p>COMMON</p>
+</def>
+</gitem>
+<gitem>
+<label>Author/Change controller:</label>
+<def>
+<p>The published specification is a work product of the World Wide Web
+Consortium's Timed Text (TT) Working Group. The W3C has change control
+over this specification.</p>
+</def>
+</gitem>
+</glist>
+</div1>
+<div1 id="references">
+<head>References</head>
+<p><emph>This appendix is normative.</emph></p>
+<blist>
+<bibl id="css2" key="CSS2">Bert Bos et al.,
+<titleref
+href="http://www.w3.org/TR/1998/REC-CSS2-19980512/">Cascading
+Style Sheets, Level 2</titleref>, W3C Recommendation, 12
+May 1998. (See
+<xspecref href="http://www.w3.org/TR/1998/REC-CSS2-19980512/">http://www.w3.org/TR/1998/REC-CSS2-19980512/</xspecref>.)
+</bibl>
+<bibl id="gps" key="GPS">
+<titleref href="http://tycho.usno.navy.mil/gpsinfo.html">Global
+Positioning System</titleref>, US Naval Observatory.
+(See
+<xspecref href="http://tycho.usno.navy.mil/gpsinfo.html">http://tycho.usno.navy.mil/gpsinfo.html</xspecref>.)
+</bibl>
+<bibl id="mime-media" key="MIME">Ned Freed and Nathaniel Borenstein,
+<titleref
+href="http://www.rfc-editor.org/rfc/rfc2046.txt">Multipurpose Internet
+Mail Extensions (MIME) Part Two: Media Types</titleref>,
+RFC 2046, November 1996, IETF.(See
+<xspecref href="http://www.rfc-editor.org/rfc/rfc2046.txt">http://www.rfc-editor.org/rfc/rfc2046.txt</xspecref>.)
+</bibl>
+<bibl id="rng" key="RELAX NG">ISO/IEC 19757-2,
+<titleref href="http://www.iso.org/">Information technology – Document
+Schema Definition Language (DSDL) – Part 2: Regular-grammar-based validation – RELAX NG</titleref>,
+International Organization for Standardization (ISO).
+</bibl>
+<bibl id="smil21" key="SMIL 2.1">Dick Bultermann, et al.,
+<titleref href="http://www.w3.org/TR/2005/REC-SMIL2-20051213/">Synchronized
+Multimedia Integration Language (SMIL 2.1)</titleref>,
+W3C Recommendation, 13 December 2005. (See
+<xspecref href="http://www.w3.org/TR/2005/REC-SMIL2-20051213/">http://www.w3.org/TR/2005/REC-SMIL2-20051213/</xspecref>.)
+</bibl>
+<bibl id="smpte12m" key="SMPTE 12M">ANSI/SMPTE 12M,
+<titleref href="http://www.smpte.org/">Television, Audio and Film –
+Time and Control Code</titleref>, SMPTE Standard.
+</bibl>
+<bibl id="srgb" key="SRGB">IEC 61966-2-1,
+<titleref
+href="http://www.iec.ch/">Multimedia
+systems and equipment – Colour measurement and management
+– Part 2-1: Colour management – Default RGB colour space
+– sRGB</titleref>, International Electrotechnical
+Commission (IEC).
+</bibl>
+<bibl id="uaag" key="UAAG">Ian Jacobs, Jon Gunderson, and Eric Hansen, Eds.,
+<titleref href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">User
+Agent Accessibility Guidelines 1.0</titleref>, W3C Recommendation, 17
+December 2002. (See
+<xspecref href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">http://www.w3.org/TR/2002/REC-UAAG10-20021217/</xspecref>.)
+</bibl>
+<bibl id="utc" key="UTC">
+Recommendation TF.460,
+<titleref
+href="http://www.itu.int/rec/">Standard-Frequency and Time-Signal
+Emissions</titleref>, International
+Telecommunciations Union, Radio Sector (ITU-R).
+</bibl>
+<bibl id="wcag" key="WCAG">Wendy Chisholm, Gregg Vanderheiden, and Ian Jacobs, Eds.,
+<titleref href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/">Web
+Content Accessibility Guidelines 1.0</titleref>, W3C Recommendation, 05
+May 1999. (See
+<xspecref href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/">http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/</xspecref>.)
+</bibl>
+<bibl id="xml11" key="XML 1.1">Tim Bray, et al.
+<titleref href="http://www.w3.org/TR/2004/REC-xml11-20040204/">Extensible Markup Language (XML)
+1.1</titleref>, W3C Recommendation, 04 February 2004, updated 15 Apr 2004. (See
+<xspecref href="http://www.w3.org/TR/2004/REC-xml11-20040204/">http://www.w3.org/TR/2004/REC-xml11-20040204/</xspecref>.)
+</bibl>
+<bibl id="xmlid" key="XML ID">Jonathan Marsh, Daniel Veillard, Norman Walsh, Eds.,
+<titleref href="http://www.w3.org/TR/2005/REC-xml-id-20050909/">xml:id Version 1.0</titleref>,
+W3C Recommendation, 09 September 2005. (See
+<xspecref href="http://www.w3.org/TR/2005/REC-xml-id-20050909/">http://www.w3.org/TR/2005/REC-xml-id-20050909/</xspecref>.)
+</bibl>
+<bibl id="xml-media" key="XML Media">Makato Murata, Simon St. Laurent,
+Kan Khon, <titleref
+href="http://www.rfc-editor.org/rfc/rfc3023.txt">XML Media Types</titleref>,
+RFC 3023, January 2001, IETF.(See
+<xspecref
+href="http://www.rfc-editor.org/rfc/rfc3023.txt">http://www.rfc-editor.org/rfc/rfc3023.txt</xspecref>.)
+</bibl>
+<bibl id="infoset" key="XML InfoSet">John Cowan and Richard Tobin,
+<titleref href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">XML Information Set (Second Edition)</titleref>,
+W3C Recommendation, 04 February 2004. (See
+<xspecref href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">http://www.w3.org/TR/2004/REC-xml-infoset-20040204/</xspecref>.)
+</bibl>
+<bibl id="rfc3023" key="XML Media Types">Makato Murata, et al.,
+<titleref
+href="http://www.rfc-editor.org/rfc/rfc3023.txt">XML Media Types</titleref>,
+RFC 3023, January 2001, IETF.(See
+<xspecref
+href="http://www.rfc-editor.org/rfc/rfc3023.txt">http://www.rfc-editor.org/rfc/rfc3023.txt</xspecref>.)
+</bibl>
+<bibl id="xmlns11" key="XML Namespaces 1.1">Tim Bray, et al.
+<titleref href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/">Namespaces
+in XML 1.1</titleref>, W3C Recommendation, 04 February 2004. (See
+<xspecref href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/">http://www.w3.org/TR/2004/REC-xml-names11-20040204/</xspecref>.)
+</bibl>
+<bibl id="xsd-1" key="XML Schema Part 1">Henry S. Thompson, David Beech,
+Murray Maloney, Noah Mendelsohn, Eds.,
+<titleref href="http://www.w3.org/TR/xmlschema-1/">XML Schema Part 1: Structures</titleref>,
+W3C Recommendation, 28 October 2004. (See
+<xspecref href="http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1/</xspecref>.)
+</bibl>
+<bibl id="xsd-2" key="XML Schema Part 2">Paul Biron and Ashok Malhotra,
+<titleref href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</titleref>,
+W3C Recommendation, 28 October 2004. (See
+<xspecref href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</xspecref>.)
+</bibl>
+<bibl id="xsl10" key="XSL 1.0">Sharon Adler, Anders Berglund, et al., Eds.,
+<titleref href="http://www.w3.org/TR/2001/REC-xsl-20011015/">Extensible Stylesheet Language, Version 1.0</titleref>,
+W3C Recommendation, 15 October 2001. (See
+<xspecref href="http://www.w3.org/TR/2001/REC-xsl-20011015/">http://www.w3.org/TR/2001/REC-xsl-20011015/</xspecref>.)
+</bibl>
+</blist>
+</div1>
+<inform-div1 id="other-references">
+<head>Other References</head>
+<blist>
+<bibl id="cea608c" key="CEA-608-C">
+EIA/CEA-608-C,
+<titleref href="http://members.ce.org/standards/StandardDetails.aspx?Id=1506">Line 21 Data
+Services</titleref>, EIA/CEA Standard,
+Consumer Electronics Association (CEA).
+</bibl>
+<bibl id="css3-color" key="CSS3 Color">Tantek Çelik and Chris Lilley,
+<titleref href="http://www.w3.org/TR/2003/CR-css3-color-20030514/">CSS3 Color
+Module</titleref>, W3C Candidate Recommendation, 14 May 2003. (See
+<xspecref href="http://www.w3.org/TR/2003/CR-css3-color-20030514/">http://www.w3.org/TR/2003/CR-css3-color-20030514/</xspecref>.)
+</bibl>
+<bibl id="dcmes" key="DCMES 1.1">Dublin Core Metadata Initiative,
+<titleref href="http://dublincore.org/documents/dces/">Dublin Core Metadata Element Set, Version 1.1: Reference Description</titleref>. (See
+<xspecref href="http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</xspecref>.)
+</bibl>
+<bibl id="mpeg7-5" key="MPEG7-5">
+ISO/IEC 15938-5,
+<titleref
+href="http://www.iso.org/">Information technology – Multimedia content description
+interface – Part 5: Multimedia description schemes</titleref>,
+International Organization for Standardization (ISO).
+</bibl>
+<bibl id="qaf-sg" key="QAF SG">Karl Dubost, et al.,
+<titleref
+href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA
+Framework: Specifications Guidelines</titleref>, W3C Recommendation, 17
+August 2005. (See
+<xspecref href="http://www.w3.org/TR/qaframe-spec/">http://www.w3.org/TR/qaframe-spec/</xspecref>.)
+</bibl>
+<bibl id="scheme" key="SCHEME">Guy Steele and Gerald Sussman,
+<titleref
+href="http://swiss.csail.mit.edu/projects/scheme/">Scheme Programming
+Environment</titleref>,
+Massachusetts Institute of Technology. (See
+<xspecref
+href="http://swiss.csail.mit.edu/projects/scheme/">http://swiss.csail.mit.edu/projects/scheme/</xspecref>.)
+</bibl>
+<bibl id="smpte170m" key="SMPTE 170M">ANSI/SMPTE 170M,
+<titleref
+href="http://www.smpte.org/">Television – Composite Analog Video
+Signal – NTSC for Studio Applications</titleref>, SMPTE Standard.
+</bibl>
+<bibl id="svg11" key="SVG 1.1">Jon Ferraiolo, Jun Fujisawa, Dean Jackson, Eds.,
+<titleref
+href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">Scalable
+Vector Graphics (SVG) 1.1 Specification</titleref>, W3C Recommendation, 14
+January 2003. (See
+<xspecref href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</xspecref>.)
+</bibl>
+<bibl id="ttaf1-req" key="TTAF1-REQ">Glenn Adams, Editor,
+<titleref href="http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/">Timed Text (TT) Authoring Format 1.0 Use
+Cases and Requirements</titleref>,
+W3C Working Group Note, 27 April 2006. (See
+<xspecref
+href="http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/">http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/</xspecref>.)
+</bibl>
+<bibl id="xhtml10" key="XHTML 1.0">Steven Pemberton, et al.,
+<titleref
+href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/">XHTML™ 1.0,
+The Extensible Hypertext Markup Language (Second Edition)</titleref>,
+W3C Recommendation, 01
+August 2002. (See
+<xspecref href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/">http://www.w3.org/TR/2002/REC-xhtml1-20020801/</xspecref>.)
+</bibl>
+</blist>
+</inform-div1>
+<inform-div1 id="sample-code">
+<head>Sample Code</head>
+<p>This appendix contains sample code, also available in
+a <loc href="scm/code.zip">ZIP Archive</loc> along with related files, that implements
+certain algorithms described by this specification. This code makes
+use of the MIT Scheme <bibref ref="scheme"/> dialect of the Lisp Programming Language.</p>
+<p>The following algorithms are implemented by this code:</p>
+<ulist>
+<item><p>Reduced XML Infoset (RXI)</p></item>
+<item><p>Abstract Document Instance (ADI)</p></item>
+<item><p>Time Interval Resolver (TIR)</p></item>
+<item><p>Flow Object Transformer (FOX)</p></item>
+<item><p>Dynamic Text Flow Processor (DTF)</p></item>
+</ulist>
+<p>Subsequent to the sample code listings, a transcript of a sample
+compile, load, and run session is provided.</p>
+<div2 id="code-rxi">
+<head>Reduced XML Infoset (RXI) – <code>RXI.SCM</code></head>
+<eg xml:space="preserve">&code-rxi;</eg>
+</div2>
+<div2 id="code-adi">
+<head>Abstract Document Instance (ADI) – <code>ADI.SCM</code></head>
+<eg xml:space="preserve">&code-adi;</eg>
+</div2>
+<div2 id="code-tir">
+<head>Time Interval Resolver (TIR) – <code>TIR.SCM</code></head>
+<eg xml:space="preserve">&code-tir;</eg>
+</div2>
+<div2 id="code-fox">
+<head>Flow Object Transformer (FOX) – <code>FOX.SCM</code></head>
+<eg xml:space="preserve">&code-tir;</eg>
+</div2>
+<div2 id="code-dtf">
+<head>Dynamic Text Flow Processor (DTF) – <code>DTF.SCM</code></head>
+<eg xml:space="preserve">&code-dtf;</eg>
+</div2>
+<div2 id="code-run">
+<head>Sample Compile, Load, and Run Session</head>
+<p>The following transcript shows a sample compile, load, and run
+session of the sample code, where the following steps are
+performed:</p>
+<olist>
+<item>
+<p>Start scheme using Edwin editor (included with MIT Scheme).</p>
+</item>
+<item>
+<p>Change working directory to sample code directory.</p>
+</item>
+<item>
+<p>Compile DFXP optional package by loading <code>compile.scm</code>.</p>
+</item>
+<item>
+<p>Load DFXP optional package by loading <code>load.scm</code>.</p>
+</item>
+<item>
+<p>Dump world identity to show that the just compiled, DFXP optional
+package has been loaded (MIT Scheme SOS, CREF, and XML optional packages are also
+loaded a side effect.)</p>
+</item>
+<item>
+<p>Load DFXP document instance using <code>ADI-DOCUMENT/LOAD</code>
+function and save resulting <code>ADI-DOCUMENT</code> instance into variable
+<code>D</code>.</p>
+</item>
+<item>
+<p>Convert loaded <code>ADI-DOCUMENT</code> into a list structure and pretty print
+this structure using <code>PP</code> environment function.</p>
+</item>
+<item>
+<p>Serialize loaded <code>ADI-DOCUMENT</code> to file
+<code>out.xml</code>.</p>
+</item>
+<item>
+<p>Exit scheme interpreter.</p>
+</item>
+</olist>
+<p>The forms to be entered to accomplish the above tasks are depicted in boldface.</p>
+<eg xml:space="preserve">
+Scheme saved on Tuesday June 18, 2002 at 12:25:05 AM
+ Release 7.7.1
+ Microcode 14.9
+ Runtime 15.1
+ Win32 1.6
+ SF 4.40
+ Liar (Intel i386) 4.115
+ Edwin 3.112
+
+;You are in an interaction window of the Edwin editor.
+;Type C-h for help. C-h m will describe some commands.
+;Package: (user)
+
+<phrase role="strong">(cd "/work/dfxp/scm")</phrase>
+;Value 12: #[pathname 12 "c:\\work\\dfxp\\scm\\"]
+
+<phrase role="strong">(load "compile")</phrase>
+;Loading "compile.scm"
+;Loading "load.scm"
+;Loading "load.scm"
+;Loading "sos-w32.pkd" -- done
+;Loading "slot.com" -- done
+;Loading "class.com" -- done
+;Loading "instance.com" -- done
+;Loading "method.com" -- done
+;Loading "printer.com" -- done
+;Loading "macros.com" -- done
+ -- done
+;Loading "xml-w32.pkd" -- done
+;Loading "xml-struct.com" -- done
+;Loading "xml-chars.com" -- done
+;Loading "xml-parser.com" -- done
+;Loading "xml-output.com" -- done
+ -- done
+;Loading "make.com" -- done
+;Loading "cref-w32.pkd" -- done
+;Loading "mset.com" -- done
+;Loading "object.com" -- done
+;Loading "toplev.com" -- done
+;Loading "anfile.com" -- done
+;Loading "conpkg.com" -- done
+;Loading "forpkg.com" -- done
+;Loading "redpkg.com" -- done
+;Generating "rxi.bin" because of: "rxi.scm"
+Syntax file: "rxi.scm" "rxi.bin"
+ Read...
+ Time taken: .031 (process time); .031 (real time)
+ Syntax...
+ Time taken: .032 (process time); .031 (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+;Warning: Unreferenced bound variable: is-attribute? (rxi-name/transform-to-xml)
+ Time taken: .015 (process time); .016 (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "rxi.ext" -- done
+;Dumping "rxi.bin" -- done
+;Generating "rxi.com" because of: "rxi.bin"
+Compile File: "rxi.bin" => "rxi.com"
+;Loading "rxi.bin" -- done
+ Compiling procedure: rxi-bindings/bindings...
+ Compiling procedure: set-rxi-bindings/bindings!...
+ Compiling procedure: rxi-bindings/push!...
+ Compiling procedure: rxi-bindings/pop!...
+ Compiling procedure: rxi-bindings/lookup...
+ Compiling procedure: rxi-bindings/resolve...
+ Compiling procedure: rxi-name/local...
+ Compiling procedure: rxi-name/namespace...
+ Compiling procedure: rxi-name->list...
+ Compiling procedure: rxi-name/transform-from-xml...
+ Compiling procedure: rxi-attribute/name...
+ Compiling procedure: rxi-attribute/value...
+ Compiling procedure: rxi-attribute->list...
+ Compiling procedure: rxi-attribute/transform-from-xml...
+ Compiling procedure: rxi-element/name...
+ Compiling procedure: rxi-element/attributes...
+ Compiling procedure: rxi-element/children...
+ Compiling procedure: set-rxi-element/attributes!...
+ Compiling procedure: set-rxi-element/children!...
+ Compiling procedure: rxi-element->list...
+ Compiling procedure: namespace-attribute?...
+ Compiling procedure: extract-namespace-bindings...
+ Compiling procedure: rxi-element/transform-from-xml...
+ Compiling procedure: rxi-document/annotations...
+ Compiling procedure: rxi-document/root...
+ Compiling procedure: set-rxi-document/annotations!...
+ Compiling procedure: set-rxi-document/root!...
+ Compiling procedure: rxi-document/annotation...
+ Compiling procedure: set-rxi-document/annotation!...
+ Compiling procedure: rxi-document/remove-annotation!...
+ Compiling procedure: rxi-document->list...
+ Compiling procedure: rxi-document/transform-from-xml...
+ Compiling procedure: rxi-document/load...
+ Compiling procedure: rxi-reverse-bindings/reverse-bindings...
+ Compiling procedure: set-rxi-reverse-bindings/reverse-bindings!...
+ Compiling procedure: rxi-reverse-bindings/lookup...
+ Compiling procedure: rxi-reverse-bindings/generate-prefix...
+ Compiling procedure: rxi-reverse-bindings/add!...
+ Compiling procedure: rxi-reverse-bindings/sort!...
+ Compiling procedure: rxi-reverse-bindings/normalize-preferred...
+ Compiling procedure: rxi-name/transform-to-xml...
+ Compiling procedure: rxi-attribute/transform-to-xml...
+ Compiling procedure: maybe-add-reverse-binding!...
+ Compiling procedure: rxi-element/collect-reverse-bindings...
+ Compiling procedure: rxi-element/transform-to-xml...
+ Compiling procedure: xml-document-add-bindings!...
+ Compiling procedure: rxi-document/collect-reverse-bindings...
+ Compiling procedure: rxi-document/transform-to-xml...
+ Compiling procedure: rxi-document/save...
+;"rxi.bci" dumped
+;Dumping "rxi.com" -- done
+;Generating "adi.bin" because of: "adi.scm"
+Syntax file: "adi.scm" "adi.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: .016 (process time); .015 (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "adi.bin" -- done
+;Generating "adi.com" because of: "adi.bin"
+Compile File: "adi.bin" => "adi.com"
+;Loading "adi.bin" -- done
+ Compiling procedure: in-per-element-namespace?...
+ Compiling procedure: in-dfxp-namespace?...
+ Compiling procedure: in-xml-namespace?...
+ Compiling procedure: in-dfxp-or-xml-namespace?...
+ Compiling procedure: empty-dfxp-element-type?...
+ Compiling procedure: only-whitespace-children?...
+ Compiling procedure: rxi-document/adi-transform-element...
+ Compiling procedure: rxi-document/adi-transform...
+ Compiling procedure: adi-document/load...
+ Compiling procedure: adi-document/save...
+;"adi.bci" dumped
+;Dumping "adi.com" -- done
+;Generating "tir.bin" because of: "tir.scm"
+Syntax file: "tir.scm" "tir.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "tir.bin" -- done
+;Generating "tir.com" because of: "tir.bin"
+Compile File: "tir.bin" => "tir.com"
+;Loading "tir.bin" -- done
+ Compiling procedure: adi-document/tir-transform...
+;"tir.bci" dumped
+;Dumping "tir.com" -- done
+;Generating "fox.bin" because of: "fox.scm"
+Syntax file: "fox.scm" "fox.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "fox.bin" -- done
+;Generating "fox.com" because of: "fox.bin"
+Compile File: "fox.bin" => "fox.com"
+;Loading "fox.bin" -- done
+ Compiling procedure: adi-document/fox-transform...
+;"fox.bci" dumped
+;Dumping "fox.com" -- done
+;Generating "dtf.bin" because of: "dtf.scm"
+Syntax file: "dtf.scm" "dtf.bin"
+ Read...
+ Time taken: 0. (process time); 0. (real time)
+ Syntax...
+ Time taken: 0. (process time); 0. (real time)
+ Transform...
+ Time taken: 0. (process time); 0. (real time)
+ Optimize...
+ Time taken: 0. (process time); 0. (real time)
+ Generate SCode...
+ Time taken: 0. (process time); 0. (real time)
+;Dumping "dtf.bin" -- done
+;Generating "dtf.com" because of: "dtf.bin"
+Compile File: "dtf.bin" => "dtf.com"
+;Loading "dtf.bin" -- done
+ Compiling procedure: adi-document/dtf-process...
+;"dtf.bci" dumped
+;Dumping "dtf.com" -- done
+;Loading "dtf.bin" -- done
+;Loading "fox.bin" -- done
+;Loading "tir.bin" -- done
+;Loading "adi.bin" -- done
+;Loading "rxi.bin" -- done
+;Dumping "dfxp-w32.fre" -- done
+;Dumping "dfxp-w32.pkd" -- done
+ -- done
+;Unspecified return value
+
+<phrase role="strong">(load "load")</phrase>
+;Loading "load.scm"
+;Loading "dfxp-w32.pkd" -- done
+;Loading "rxi.com" -- done
+;Loading "adi.com" -- done
+;Loading "tir.com" -- done
+;Loading "fox.com" -- done
+;Loading "dtf.com" -- done
+ -- done
+;Unspecified return value
+
+<phrase role="strong">(identify-world)</phrase>
+Scheme saved on Tuesday June 18, 2002 at 12:25:05 AM
+ Release 7.7.1
+ Microcode 14.9
+ Runtime 15.1
+ Win32 1.6
+ SF 4.40
+ Liar (Intel i386) 4.115
+ Edwin 3.112
+ SOS 1.7
+ XML 0.2
+ CREF 2.3
+ DFXP 0.8
+;Unspecified return value
+
+<phrase role="strong">(define d (adi-document/load "test.xml"))</phrase>
+;Value: d
+
+<phrase role="strong">(pp (rxi-document->list d))</phrase>
+(((adi-transform . #t))
+ (("tt" "http://www.w3.org/2006/10/ttaf1")
+ ((("profile" "http://www.w3.org/2006/10/ttaf1#parameter")
+ "http://www.w3.org/2006/10/ttaf1#profile-dfxp")
+ (("lang" "http://www.w3.org/XML/1998/namespace") "en"))
+ ("\n "
+ (("head" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("metadata" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("title" "http://www.w3.org/2006/10/ttaf1#metadata") () ("Timed Text DFXP Example"))
+ "\n "
+ (("copyright" "http://www.w3.org/2006/10/ttaf1#metadata") () ("The Authors (c) 2006"))
+ "\n "))
+ "\n "
+ (("styling" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s1")
+ (("color" "http://www.w3.org/2006/10/ttaf1#style") "white")
+ (("fontFamily" "http://www.w3.org/2006/10/ttaf1#style") "proportionalSansSerif")
+ (("fontSize" "http://www.w3.org/2006/10/ttaf1#style") "22px")
+ (("textAlign" "http://www.w3.org/2006/10/ttaf1#style") "center"))
+ ())
+ "\n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s2") (("style" ()) "s1")
+ (("color" "http://www.w3.org/2006/10/ttaf1#style") "yellow"))
+ ())
+ "\n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s1Right") (("style" ()) "s1")
+ (("textAlign" "http://www.w3.org/2006/10/ttaf1#style") "end"))
+ ())
+ " \n \n "
+ (("style" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "s2Left") (("style" ()) "s2")
+ (("textAlign" "http://www.w3.org/2006/10/ttaf1#style") "start"))
+ ())
+ "\n "))
+ "\n "
+ (("layout" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("region" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitleArea")
+ (("style" ()) "s1")
+ (("extent" "http://www.w3.org/2006/10/ttaf1#style") "560px 62px")
+ (("padding" "http://www.w3.org/2006/10/ttaf1#style") "5px 3px")
+ (("backgroundColor" "http://www.w3.org/2006/10/ttaf1#style") "black")
+ (("displayAlign" "http://www.w3.org/2006/10/ttaf1#style") "after"))
+ ())
+ "\n "))
+ " \n "))
+ "\n "
+ (("body" "http://www.w3.org/2006/10/ttaf1")
+ ((("region" ()) "subtitleArea"))
+ ("\n "
+ (("div" "http://www.w3.org/2006/10/ttaf1")
+ ()
+ ("\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle1") (("begin" ()) "0.76s") (("end" ()) "3.45s"))
+ ("\n It seems a paradox, does it not,\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle2") (("begin" ()) "5.0s") (("end" ()) "10.0s"))
+ ("\n that the image formed on" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n the Retina should be inverted?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle3") (("begin" ()) "10.0s") (("end" ()) "16.0s") (("style" ()) "s2"))
+ ("\n It is puzzling, why is it" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n we do not see things upside-down?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle4") (("begin" ()) "17.2s") (("end" ()) "23.0s"))
+ ("\n You have never heard the Theory,"
+ (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n then, that the Brain also is inverted?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle5") (("begin" ()) "23.0s") (("end" ()) "27.0s") (("style" ()) "s2"))
+ ("\n No indeed! What a beautiful fact!\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle6a") (("begin" ()) "28.0s") (("end" ()) "34.6s") (("style" ()) "s2Left"))
+ ("\n But how is it proved?\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle6b") (("begin" ()) "28.0s") (("end" ()) "34.6s") (("style" ()) "s1Right"))
+ ("\n Thus: what we call\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle7") (("begin" ()) "34.6s") (("end" ()) "45.0s") (("style" ()) "s1Right"))
+ ("\n the vertex of the Brain" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n is really its base\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle8") (("begin" ()) "45.0s") (("end" ()) "52.0s") (("style" ()) "s1Right"))
+ ("\n and what we call its base" (("br" "http://www.w3.org/2006/10/ttaf1") () ())
+ "\n is really its vertex,\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle9a") (("begin" ()) "53.5s") (("end" ()) "58.7s"))
+ ("\n it is simply a question of nomenclature.\n "))
+ "\n "
+ (("p" "http://www.w3.org/2006/10/ttaf1")
+ ((("xml:id" ()) "subtitle9b") (("begin" ()) "53.5s") (("end" ()) "58.7s") (("style" ()) "s2"))
+ ("\n How truly delightful!\n "))
+ "\n "))
+ " \n "))
+ "\n")))
+;Unspecified return value
+
+<phrase role="strong">(adi-document/save d "out.xml")</phrase>
+;Unspecified return value
+
+<phrase role="strong">(exit)</phrase>
+</eg>
+</div2>
+</inform-div1>
+<inform-div1 id="requirements">
+<head>Requirements</head>
+<p>The Distribution Format Exchange Profile (DFXP) of the Timed Text Authoring
+Format (TT AF) satisfies a subset of the requirements established by
+<bibref ref="ttaf1-req"/>. The following table enumerates these requirements and
+indicates the extent to which they are satisfied by this specification, where
+<emph>S</emph> denotes a requirement is satisfied, <emph>P</emph> denotes
+a requirement is partially satisfied, and <emph>N</emph> denotes a
+requirement is not satisfied.</p>
+<table id="requirements-table" role="common">
+<caption>Table H-1 – Requirement Satisfaction</caption>
+<col width="10%"/>
+<col width="40%"/>
+<col width="10%"/>
+<tbody>
+<tr>
+<th>ID</th>
+<th>Name</th>
+<th>Status</th>
+<th>Comments</th>
+</tr>
+<tr>
+<td>R100</td>
+<td>Specification Format</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R101</td>
+<td>Specification Modularity</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R102</td>
+<td>Specification Organization</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R103</td>
+<td>Core and Periphery</td>
+<td>S</td>
+<td>TT extension namespaces</td>
+</tr>
+<tr>
+<td>R104</td>
+<td>Evolution of Core</td>
+<td>S</td>
+<td>TT extension namespaces</td>
+</tr>
+<tr>
+<td>R105</td>
+<td>Ownership of Core</td>
+<td>S</td>
+<td>TT namespaces</td>
+</tr>
+<tr>
+<td>R106</td>
+<td>Surjection of Core</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R107</td>
+<td>Evolution of Periphery</td>
+<td>S</td>
+<td>TT extension namespaces</td>
+</tr>
+<tr>
+<td>R108</td>
+<td>Ownership of Periphery</td>
+<td>S</td>
+<td>Non-TT namespaces</td>
+</tr>
+<tr>
+<td>R109</td>
+<td>Transformation</td>
+<td>S</td>
+<td>Supports 3GPP, QText, RealText, SAMI</td>
+</tr>
+<tr>
+<td>R110</td>
+<td>Streamable Transformation</td>
+<td>S</td>
+<td>Progressive decoding</td>
+</tr>
+<tr>
+<td>R111</td>
+<td>Accessibility – Content</td>
+<td>S</td>
+<td>Alternative document instances</td>
+</tr>
+<tr>
+<td>R112</td>
+<td>Accessibility – Authoring System</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R200</td>
+<td>Authorability</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R201</td>
+<td>Multiple Natural Languages</td>
+<td>S</td>
+<td>Alternative document instances</td>
+</tr>
+<tr>
+<td>R202</td>
+<td>Natural Language Coverage</td>
+<td>S</td>
+<td>Unicode 4.0</td>
+</tr>
+<tr>
+<td>R203</td>
+<td>Natural Language Association Granularity</td>
+<td>S</td>
+<td>See <code>xml:lang</code></td>
+</tr>
+<tr>
+<td>R204</td>
+<td>Minimum Character Representability</td>
+<td>S</td>
+<td>Unicode 4.0</td>
+</tr>
+<tr>
+<td>R205</td>
+<td>Intrinsic and Extrinsic Text Content</td>
+<td>P</td>
+<td>Intrinsic only</td>
+</tr>
+<tr>
+<td>R206</td>
+<td>Markup Association</td>
+<td>P</td>
+<td>Intrinsic only</td>
+</tr>
+<tr>
+<td>R207</td>
+<td>Conditional Content</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R208</td>
+<td>Flowed Text</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R209</td>
+<td>Logical Flowed Text Vocabulary</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R210</td>
+<td>Presentational Flowed Text Vocabulary</td>
+<td>S</td>
+<td>Implied mapping from logical flowed text.</td>
+</tr>
+<tr>
+<td>R211</td>
+<td>Flowed Text Vocabulary Relationship</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R212</td>
+<td>Flowed Text Vocabulary Separation</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R213</td>
+<td>Non-Flowed Text</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R214</td>
+<td>Non-Flowed Text Vocabulary</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R215</td>
+<td>Hybrid Flowed and Non-Flowed Text</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R216</td>
+<td>Hyperlinking</td>
+<td>N</td>
+<td>Can support via XLink</td>
+</tr>
+<tr>
+<td>R217</td>
+<td>Embedded Graphics</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R218</td>
+<td>Non-Embedded Graphics</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R219</td>
+<td>Embedded Fonts</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R220</td>
+<td>Non-Embedded Fonts</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R221</td>
+<td>Descriptive Vocabulary</td>
+<td>S</td>
+<td>See <code>ttm:agent</code>, <code>ttm:role</code></td>
+</tr>
+<tr>
+<td>R222</td>
+<td>Embedded Audio</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R223</td>
+<td>Non-Embedded Audio</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R290</td>
+<td>Markup Format</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R291</td>
+<td>Markup Format and Unicode Interaction</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R292</td>
+<td>Extrinsic Resource References</td>
+<td>N</td>
+<td>No extrinsic references</td>
+</tr>
+<tr>
+<td>R293</td>
+<td>Schema Validity Specification</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R300</td>
+<td>Inline Styling</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R301</td>
+<td>Inline Styling Form</td>
+<td>P</td>
+<td>Inline and referential styling</td>
+</tr>
+<tr>
+<td>R301</td>
+<td>Out-of-Line Styling</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R301</td>
+<td>Out-of-Line Styling Form</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R304</td>
+<td>Styling Prioritization</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R305</td>
+<td>Style Parameters – Aural</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R306</td>
+<td>Style Parameters – Visual</td>
+<td>P</td>
+<td>Supports absolute position, background color, color, display none, display alignment,
+font family, font size, font style, font weight, height, line height, origin,
+opacity, overflow, padding (before, after, start, end), text alignment,
+text shadow (as outline), visibility, width, writing mode, z-index</td>
+</tr>
+<tr>
+<td>R307</td>
+<td>Style Parameters – Temporal Fill Mode</td>
+<td>S</td>
+<td>See <code>tts:dynamicFlow</code></td>
+</tr>
+<tr>
+<td>R390</td>
+<td>Style Parameter Symmetry</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R391</td>
+<td>Style Parameter Definitions</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R392</td>
+<td>Style Parameter Shorthands</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R401</td>
+<td>Inline Timing</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R402</td>
+<td>Out-of-Line Timing</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+<td>R403</td>
+<td>Synchronization Parameters</td>
+<td>P</td>
+<td>Supports begin, end, dur</td>
+</tr>
+<tr>
+<td>R404</td>
+<td>Synchronization Parameter Value Spaces</td>
+<td>P</td>
+<td>Supports offset values, media marker values (SMPTE 12M), wallclock values</td>
+</tr>
+<tr>
+<td>R405</td>
+<td>Time Containment Semantics</td>
+<td>P</td>
+<td>Supports sequential, parallel</td>
+</tr>
+<tr>
+<td>R500</td>
+<td>Animation Modes</td>
+<td>P</td>
+<td>Supports discrete</td>
+</tr>
+<tr>
+<td>R501</td>
+<td>Scroll Animation</td>
+<td>S</td>
+<td>See <code>tts:dynamicFlow</code></td>
+</tr>
+<tr>
+<td>R502</td>
+<td>Highlight Animation</td>
+<td>S</td>
+<td><code><set tts:backgroundColor="..."/></code></td>
+</tr>
+<tr>
+<td>R503</td>
+<td>Fade Transition Animation</td>
+<td>S</td>
+<td><code><set tts:opacity="..."/></code></td>
+</tr>
+<tr>
+<td>R504</td>
+<td>Animated Style Parameters – Aural</td>
+<td>N</td>
+<td/>
+</tr>
+<tr>
+ <td>R505</td>
+<td>Animated Style Parameters – Visual</td>
+<td>P</td>
+<td>Supports animating background color, color, display, opacity, origin, visibility</td>
+</tr>
+<tr>
+<td>N506</td>
+<td>Animated Content</td>
+<td>S</td>
+<td/>
+</tr>
+<tr>
+<td>R600</td>
+<td>Metadata Item Association</td>
+<td>S</td>
+<td>See <code>metadata</code>, <code>Metadata.class</code></td>
+</tr>
+<tr>
+<td>R601</td>
+<td>Metadata Item Constituents</td>
+<td>P</td>
+<td>Supports name, value</td>
+</tr>
+<tr>
+<td>R602</td>
+<td>Metadata Item Value Representation</td>
+<td>P</td>
+<td>See <code>metadata</code></td>
+</tr>
+<tr>
+<td>R603</td>
+<td>Metadata Item Extensibility</td>
+<td>S</td>
+<td>See <code>metadata</code></td>
+</tr>
+<tr>
+<td>R604</td>
+<td>Metadata Item Validation</td>
+<td>S</td>
+<td>See <code>metadata</code></td>
+</tr>
+<tr>
+<td>R690</td>
+<td>Dublin Core Preference</td>
+<td>N</td>
+<td>Uses <code>ttm:copyright</code>, <code>ttm:desc</code>, <code>ttm:title</code></td>
+</tr>
+</tbody>
+</table>
+</inform-div1>
+<inform-div1 id="derivation">
+<head>Vocabulary Derivation</head>
+<p>This appendix provides information about the derivation of TT AF
+vocabulary, separately describing derivation of elements and
+attributes.</p>
+<div2>
+<head>Element Derivation</head>
+<p>The first column of <specref ref="element-vocab-derivation-table"/>
+specifies a TT AF element vocabulary item; the second column specifies the
+syntactic and/or semantic model on which the vocabulary item is based;
+the third column specifies the reference that defines
+the model (if a model is indicated);
+the fourth column specifies details about the derivation; the last
+column refers to additional notes describing the nature of the
+derivation.</p>
+<p>In the fourth column, which describes details of derivation, a
+notation is use to indicate the addition or removal of an attribute.
+For example, in the derivation of the <el>tt:div</el> element, the
+details column includes "-@class", which denotes that the
+<att>class</att> attribute that is specified for use with the
+<el>xhtml:div</el> model element is not specified for use with the
+corresponding TT AF element; in contrast, the details column includes
+"+@begin", which denotes that a <att>begin</att> attribute is added
+that is not specified for use with the <el>xhtml:div</el> model
+element.</p>
+<table id="element-vocab-derivation-table" role="common">
+<caption>Table I-1 – Elements</caption>
+<col width="20%"/>
+<col width="17%"/>
+<col width="13%" align="center"/>
+<col width="40%"/>
+<col width="10%" align="center"/>
+<tbody>
+<tr>
+<td><phrase role="strong">Element</phrase></td>
+<td><phrase role="strong">Model</phrase></td>
+<td><phrase role="strong">Reference</phrase></td>
+<td><phrase role="strong">Details</phrase></td>
+<td><phrase role="strong">Notes</phrase></td>
+</tr>
+<tr>
+<td><loc href="#document-structure-vocabulary-body"><code>tt:body</code></loc></td>
+<td><code>xhtml:body</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,
++@timeContainer, +@ttm:*, +@tts:*; content model
+subsetted to zero or more division (div) children, and supersetted by
+optional metadata and animation children</td>
+<td>1,2</td>
+</tr>
+<tr>
+<td><loc href="#content-vocabulary-br"><code>tt:br</code></loc></td>
+<td><code>xhtml:br</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@class, -@title; +@ttm:*, +@tts:*, +@xml:lang, +@xml:space;
+content model supersetted by
+optional metadata and animation children for congruity with other
+content vocabulary</td>
+<td>1,2</td>
+</tr>
+<tr>
+<td><loc href="#content-vocabulary-div"><code>tt:div</code></loc></td>
+<td><code>xhtml:div</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,
++@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model
+subsetted to zero or more paragraph (p) children, and supersetted by
+optional metadata and animation children</td>
+<td>1,2,3</td>
+</tr>
+<tr>
+<td><loc href="#document-structure-vocabulary-head"><code>tt:head</code></loc></td>
+<td><code>xhtml:head</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@dir, -@lang, -@profile; +@id, +@xml:space; content model changed to
+optional metadata children, followed by optional styling child,
+followed by optional layout child</td>
+<td>1,3</td>
+</tr>
+<tr>
+<td><loc href="#layout-vocabulary-layout"><code>tt:layout</code></loc></td>
+<td><code>fo:simple-page-master</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>conceptual derivation</td>
+<td>4</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-metadata"><code>tt:metadata</code></loc></td>
+<td><code>svg:metadata</code></td>
+<td><bibref ref="svg11"/></td>
+<td>-@xml:base; +@ttm:*, +@xml:lang, +@xml:space; content model
+subsetted to foreign namespace element content only (no #PCDATA)</td>
+<td>3,5</td>
+</tr>
+<tr>
+<td><loc href="#content-vocabulary-p"><code>tt:p</code></loc></td>
+<td><code>xhtml:p</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,
++@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model
+subsetted to zero or more span children, and supersetted by optional
+metadata and animation children</td>
+<td>1,2,3</td>
+</tr>
+<tr>
+<td><loc href="#layout-vocabulary-region"><code>tt:region</code></loc></td>
+<td><code>fo:region-*</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>conceptual derivation</td>
+<td>4</td>
+</tr>
+<tr>
+<td><loc href="#animation-vocabulary-set"><code>tt:set</code></loc></td>
+<td><code>svg:set</code></td>
+<td><bibref ref="svg11"/></td>
+<td>-@* except begin, dur, end; +@tts:*, +@xml:lang, +@xml:space</td>
+<td>3,6</td>
+</tr>
+<tr>
+<td><loc href="#content-vocabulary-span"><code>tt:span</code></loc></td>
+<td><code>xhtml:span</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region,
++@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model
+subsetted to zero or more #PCDATA or break (br) children, and
+supersetted by optional metadata and animation children</td>
+<td>1,2,3</td>
+</tr>
+<tr>
+<td><loc href="#styling-vocabulary-style"><code>tt:style</code></loc></td>
+<td><emph>style specification</emph></td>
+<td><bibref ref="css2"/></td>
+<td>XML representation of identified set of pairs of style property
+name and value, with optional inclusion of other styles by reference
+to other style elements</td>
+<td>7</td>
+</tr>
+<tr>
+<td><loc href="#styling-vocabulary-styling"><code>tt:styling</code></loc></td>
+<td><code>xhtml:style</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>XML representation of a set of style specifications sets, each
+represented by a style child element</td>
+<td>1,7</td>
+</tr>
+<tr>
+<td><loc href="#document-structure-vocabulary-tt"><code>tt:tt</code></loc></td>
+<td><code>xhtml:html</code></td>
+<td><bibref ref="xhtml10"/></td>
+<td>-@dir, -@lang; +@id, +@ttp:*, +@xml:space; content model subsetted by
+permitting body and/or head to be optional</td>
+<td>1,8</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-actor"><code>ttm:actor</code></loc></td>
+<td><code>mpeg7:Creator</code></td>
+<td><bibref ref="mpeg7-5"/></td>
+<td>conceptual derivation</td>
+<td>4</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-agent"><code>ttm:agent</code></loc></td>
+<td><code>mpeg7:Agent</code></td>
+<td><bibref ref="mpeg7-5"/></td>
+<td>conceptual derivation</td>
+<td>4</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-copyright"><code>ttm:copyright</code></loc></td>
+<td><code>mpeg7:CopyrightString</code></td>
+<td><bibref ref="mpeg7-5"/></td>
+<td>conceptual derivation</td>
+<td>4</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-desc"><code>ttm:desc</code></loc></td>
+<td><code>svg:desc</code></td>
+<td><bibref ref="svg11"/></td>
+<td>-@class, -@style, -@xml:base</td>
+<td>2,5,9</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-name"><code>ttm:name</code></loc></td>
+<td><code>mpeg7:Name</code></td>
+<td><bibref ref="mpeg7-5"/></td>
+<td>conceptual derivation</td>
+<td>4</td>
+</tr>
+<tr>
+<td><loc href="#metadata-vocabulary-title"><code>ttm:title</code></loc></td>
+<td><code>svg:title</code></td>
+<td><bibref ref="svg11"/></td>
+<td>-@class, -@style, -@xml:base</td>
+<td>2,5,9</td>
+</tr>
+</tbody>
+</table>
+<note>
+<olist>
+<item>
+<p>Derivation is indicated with respect to the strict DTD defined
+by <bibref ref="xhtml10"/>, §A.1.</p>
+</item>
+<item>
+<p>The <att>class</att> attribute is effectively replaced by the
+<att>style</att>
+attribute, which, instead of specifying an inline style,
+refers indirectly to one or more <loc
+href="#styling-vocabulary-style"><el>style</el></loc>
+elements that define a set of style specification sets.</p>
+</item>
+<item>
+<p>The <att>xml:lang</att> and <att>xml:space</att> attributes are defined for all element
+types in order to support their inheritance semantics to operate in
+the context of foreign namespace elements.</p>
+</item>
+<item>
+<p>Derivation is conceptual (notional) only.</p>
+</item>
+<item>
+<p>The <att>xml:base</att> attribute is not used since there are no external
+references from core vocabulary.</p>
+</item>
+<item>
+<p>The <att>attributeName</att> and <att>to</att> attributes of
+<el>svg:set</el> are replaced by the
+direct expression of the target attribute name and value by use of a
+<att>tts:*</att> attribute.</p>
+</item>
+<item>
+<p>CSS style specification syntax is mapped to XML by use of
+attributes defined in the TT Style Namespace.</p>
+</item>
+<item>
+<p>The <att>xml:id</att> attribute is defined for use on all element types.</p>
+</item>
+<item>
+<p>The <att>style</att> attribute is supported only on content
+elements.</p>
+</item>
+</olist>
+</note>
+</div2>
+<div2>
+<head>Attribute Derivation</head>
+<p>The first column of <specref ref="attribute-vocab-derivation-table"/>
+specifies a TT AF attribute vocabulary item; the second column specifies the
+syntactic and/or semantic model on which the vocabulary item is based;
+the third column specifies the reference that defines
+the model (if a model is indicated);
+the fourth column specifies details about the derivation; the last
+column refers to additional notes describing the nature of the
+derivation.</p>
+<p>In the fourth column, which describes details of derivation, a
+notation is use to indicate the addition or removal of an attribute
+value. For example, in the derivation of the <att>timeContainer</att>
+attribute,
+the details column includes "-excl", which denotes that the
+<code>excl</code> value that is specified for use with the
+<att>timeContainer</att> model attribute is not specified for use with the
+corresponding TT AF attribute; similarly, an "+<emph>value</emph>"
+in the details column indicates that the attribute's values have been
+extended to include <emph>value</emph>.</p>
+<p>Only those attributes that are specified for use on more than one TT AF
+element type are listed below. Those per-element namespace attributes
+that are uniquely defined for a specific TT AF element type are not
+listed below, but are considered to be part of the specific element
+type's derivation described in <specref
+ref="element-vocab-derivation-table"/>
+above.</p>
+<table id="attribute-vocab-derivation-table" role="common">
+<caption>Table I-2 – Attributes</caption>
+<col width="20%"/>
+<col width="17%"/>
+<col width="13%" align="center"/>
+<col width="40%"/>
+<col width="10%" align="center"/>
+<tbody>
+<tr>
+<td><phrase role="strong">Attribute</phrase></td>
+<td><phrase role="strong">Model</phrase></td>
+<td><phrase role="strong">Reference</phrase></td>
+<td><phrase role="strong">Details</phrase></td>
+<td><phrase role="strong">Notes</phrase></td>
+</tr>
+<tr>
+<td><loc href="#timing-attribute-begin"><code>begin</code></loc></td>
+<td><code>begin</code></td>
+<td><bibref ref="smil21"/></td>
+<td>see notes</td>
+<td>2,3,4</td>
+</tr>
+<tr>
+<td><loc href="#timing-attribute-dur"><code>dur</code></loc></td>
+<td><code>dur</code></td>
+<td><bibref ref="smil21"/></td>
+<td>see notes</td>
+<td>2,3,4</td>
+</tr>
+<tr>
+<td><loc href="#timing-attribute-end"><code>end</code></loc></td>
+<td><code>end</code></td>
+<td><bibref ref="smil21"/></td>
+<td>see notes</td>
+<td>2,3,4</td>
+</tr>
+<tr>
+<td><loc href="#layout-attribute-region"><code>region</code></loc></td>
+<td><code>master-reference</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>conceptual derivation</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-style"><code>style</code></loc></td>
+<td><code>class</code></td>
+<td><bibref ref="css2"/></td>
+<td>dereferences style specification(s) directly</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#timing-attribute-timeContainer"><code>timeContainer</code></loc></td>
+<td><code>timeContainer</code></td>
+<td><bibref ref="smil21"/></td>
+<td>-excl, -none; no default attribute value</td>
+<td>5</td>
+</tr>
+<tr>
+<td><loc href="#metadata-attribute-agent"><code>ttm:agent</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>used to attribute agent of content</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#metadata-attribute-role"><code>ttm:role</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>used to attribute role of content</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-cellResolution"><code>ttp:cellResolution</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses uniform grid resolution for cell based coordinates</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-clockMode"><code>ttp:clockMode</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>determines how to interpret time expressions</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-frameRate"><code>ttp:frameRate</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses integral frame rate</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-frameRateMultiplier"><code>ttp:frameRateMultiplier</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>used to express non-integral, rational frame rates</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-markerMode"><code>ttp:markerMode</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses marker continuity semantics</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-pixelAspectRatio"><code>ttp:pixelAspectRatio</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses pixel aspect ratio of related media</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-profile"><code>ttp:profile</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses profile of TT AF used by document instance</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-smpteMode"><code>ttp:smpteMode</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses frame counting (drop) modes</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-subFrameRate"><code>ttp:subFrameRate</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>expresses sub-frame rate</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-tickRate"><code>ttp:tickRate</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>used to interpret tick based time expressions</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#parameter-attribute-timeBase"><code>ttp:timeBase</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>used to interpret semantics of time expressions</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-backgroundColor"><code>tts:backgroundColor</code></loc></td>
+<td><code>background-color</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>see notes</td>
+<td>1,6</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-color"><code>tts:color</code></loc></td>
+<td><code>color</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>initial value specified as <code>transparent</code></td>
+<td>6</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-direction"><code>tts:direction</code></loc></td>
+<td><code>direction</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>complies with model</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-display"><code>tts:display</code></loc></td>
+<td><code>display</code></td>
+<td><bibref ref="css2"/></td>
+<td>only auto, none, inherit</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-displayAlign"><code>tts:displayAlign</code></loc></td>
+<td><code>display-align</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>except for name normalization, complies with model</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-dynamicFlow"><code>tts:dynamicFlow</code></loc></td>
+<td><emph>none</emph></td>
+<td></td>
+<td>defines scroll overflow behavior</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-extent"><code>tts:extent</code></loc></td>
+<td><code>width</code>, <code>height</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>shorthand property</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-fontFamily"><code>tts:fontFamily</code></loc></td>
+<td><code>font-family</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>extends generic family names</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-fontSize"><code>tts:fontSize</code></loc></td>
+<td><code>font-size</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>see notes</td>
+<td>1,7</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-fontStyle"><code>tts:fontStyle</code></loc></td>
+<td><code>font-style</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>uses alias <code>reverseOblique</code> for <code>backslant</code></td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-fontWeight"><code>tts:fontWeight</code></loc></td>
+<td><code>font-weight</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>-bolder, -lighter, -<number></td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-lineHeight"><code>tts:lineHeight</code></loc></td>
+<td><code>line-height</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>-<number>, -<space></td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-opacity"><code>tts:opacity</code></loc></td>
+<td><code>opacity</code></td>
+<td><bibref ref="css3-color"/></td>
+<td>complies with model</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-origin"><code>tts:origin</code></loc></td>
+<td><code>top</code>, <code>left</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>shorthand property</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-overflow"><code>tts:overflow</code></loc></td>
+<td><code>overflow</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>-auto, -error-if-overflow; scroll redefined</td>
+<td>8</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-padding"><code>tts:padding</code></loc></td>
+<td><code>padding</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>see notes</td>
+<td>9</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-showBackground"><code>tts:showBackground</code></loc></td>
+<td><code>showBackground</code></td>
+<td><bibref ref="smil21"/></td>
+<td>complies with model</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-textAlign"><code>tts:textAlign</code></loc></td>
+<td><code>text-align</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>except for name normalization, complies with model</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-textDecoration"><code>tts:textDecoration</code></loc></td>
+<td><code>text-decoration</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>except for name normalization, complies with model</td>
+<td>1,10</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-textOutline"><code>tts:textOutline</code></loc></td>
+<td><code>text-shadow</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>see notes</td>
+<td>11</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-unicodeBidi"><code>tts:unicodeBidi</code></loc></td>
+<td><code>unicode-bidi</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>except for name normalization, complies with model</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-visibility"><code>tts:visibility</code></loc></td>
+<td><code>visibility</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>-collapse</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-wrapOption"><code>tts:wrapOption</code></loc></td>
+<td><code>wrap-option</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>except for name normalization, complies with model</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-writingMode"><code>tts:writingMode</code></loc></td>
+<td><code>writing-mode</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>+tblr</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#style-attribute-zIndex"><code>tts:zIndex</code></loc></td>
+<td><code>z-index</code></td>
+<td><bibref ref="xsl10"/></td>
+<td>except for name normalization, complies with model</td>
+<td>1</td>
+</tr>
+<tr>
+<td><loc href="#content-attribute-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><code>xml:lang</code></td>
+<td><bibref ref="xml11"/></td>
+<td>complies with model</td>
+<td></td>
+</tr>
+<tr>
+<td><loc href="#content-attribute-space"><code>xml:space</code></loc></td>
+<td><code>xml:space</code></td>
+<td><bibref ref="xml11"/></td>
+<td>see notes</td>
+<td>12</td>
+</tr>
+</tbody>
+</table>
+<note>
+<olist>
+<item>
+<p>Attribute name and/or value(s) are normalized to use
+<emph>lowerCamelCase</emph> naming convention.</p>
+</item>
+<item>
+<p>Restricted to expressing a clock value that denotes one of the
+following in accordance to whether the parameter expressed by the
+<att>ttp:timeBase</att> attribute is <code>media</code>, <code>smpte</code>,
+or <code>clock</code>, respectively:
+(1) an offset from an implicit syncbase that is linked to a media time
+line, (2) an event time
+that represents the occurrence of an implicit media marker, or (3) a wallclock
+time.</p>
+</item>
+<item>
+<p>Syntactically subsets and supersets the <bibref
+ref="smil21"/> <code>Clock-value</code> syntax as follows:
+(1) requires non-negative <code>Full-clock-value</code> or
+<code>Timecount-value</code>;
+(2) if <code>Full-clock-value</code>
+then <emph>hours</emph> must be two or more digits;
+(3) if <code>Timecount-value</code>, then <emph>metric</emph> must be
+specified;
+(4) uses <code>m</code> as alias for <code>min</code> metric to denote
+minutes;
+(5) adds <code>f</code> and <code>t</code> metrics denoting frames and
+ticks, respectively;
+(6) adds alternative expression of optional <code>Fraction</code> in
+<code>Full-clock-value</code> by specifying frame count or frame
+count with subframe count.
+</p>
+</item>
+<item>
+<p>
+Interpretation of time expression is further constrained by
+parameters expressed by
+<att>ttp:clockMode</att>,
+<att>ttp:frameRate</att>,
+<att>ttp:frameRateMultiplier</att>,
+<att>ttp:markerMode</att>,
+<att>ttp:smpteMode</att>,
+<att>ttp:subFrameRate</att>,
+<att>ttp:tickRate</att>, and
+<att>ttp:timeBase</att> attributes.</p>
+</item>
+<item>
+<p>Uses subset of named colors from model to which two aliases are
+added as follows: <code>magenta</code> as <code>fuchsia</code>, and <code>cyan</code>
+as <code>aqua</code>.</p>
+</item>
+<item>
+<p>If not specified, then parallel (par) container semantics apply to
+the element types specified by <specref
+ref="timing-attribute-timeContainer"/>.</p>
+</item>
+<item>
+<p>Restricts size to length specification which can be a percentage;
+adds optional second length (or percentage) for
+specifying separate horizontal and vertical scaling of glyph's EM
+square.</p>
+</item>
+<item>
+<p>The value <code>scroll</code> is defined in terms of the <loc
+href="#style-attribute-dynamicFlow"><att>tts:dynamicFlow</att></loc>
+style property.</p>
+</item>
+<item>
+<p>Expressed in terms of writing mode relative padding properties
+rather than absolute padding properties.</p>
+</item>
+<item>
+<p>Excludes <code>blink</code> and <code>no-blink</code> values.</p>
+</item>
+<item>
+<p>Uses only one length specification instead of two, where one length
+defines distance of outline effect from nominal edge of glyph contour
+outline perpendicular to point of glyph contour. Percentage lengths
+are also added to express outline effect in relative to font size.
+Outline effects are intended to be drawn both outside of outer closed
+contours and inside of inner closed contours.</p>
+</item>
+<item>
+<p>On root element, default attribute value specified as
+<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>
+</item>
+</olist>
+</note>
+</div2>
+</inform-div1>
+<inform-div1 id="qa">
+<head>QA Framework Compliance</head>
+<p>This appendix specifies the compliance of this specification with the
+requirements and guidelines defined by <xspecref
+href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/">QA
+Framework Specifications Guidelines</xspecref> <bibref
+ref="qaf-sg"/>.</p>
+<div2>
+<head>Requirements</head>
+<table id="qa-framework-requirements-table" role="common">
+<caption>Table J-1 – QA Framework Requirements Checklist</caption>
+<col width="76%"/>
+<col width="6%" align="center"/>
+<col width="6%" align="center"/>
+<col width="6%" align="center"/>
+<col width="6%" align="center"/>
+<tbody>
+<tr>
+<td><phrase role="strong">Requirement</phrase></td>
+<td><phrase role="strong">YES</phrase></td>
+<td><phrase role="strong">NO</phrase></td>
+<td><phrase role="strong">N/A</phrase></td>
+<td><phrase role="strong">Notes</phrase></td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#include-conformance-clause-principle">Requirement 01: Include a conformance
+clause</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-scope-principle">Requirement 02: Define the scope.</xspecref></td>
+<td><loc href="#intro">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#implement-principle">Requirement 03: Identify who or what will implement the specification.</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-norm-principle">Requirement 04: Make a list of normative references.</xspecref></td>
+<td><loc href="#references">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-principle">Requirement 05: Define the terms used in the normative parts of the specification.</xspecref></td>
+<td><loc href="#definitions">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conf-label-principle">Requirement 06: Create conformance labels for each part of the conformance model.</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#consistent-style-principle">Requirement 07: Use a consistent style for conformance requirements and explain how to distinguish them.</xspecref></td>
+<td><loc href="#conventions">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#req-opt-conf-principle">Requirement 08: Indicate which conformance requirements are mandatory, which are recommended, and which are optional.</xspecref></td>
+<td><loc href="#conventions">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-mandatory-principle">Requirement 09: If the technology is subdivided, then indicate which subdivisions are mandatory for conformance.</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdiv-constraints-principle">Requirement 10: If the technology is subdivided, then address subdivision constraints.</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#likehood-extension-principle">Requirement 11: Address Extensibility.</xspecref></td>
+<td><loc href="#doctypes">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#deprecated-feature-principle">Requirement 12: Identify deprecated features.</xspecref></td>
+<td/>
+<td/>
+<td>N/A</td>
+<td>1</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#degree-support-principle">Requirement 13: Define how each class of product handles each deprecated feature.</xspecref></td>
+<td/>
+<td/>
+<td>N/A</td>
+<td>1</td>
+</tr>
+</tbody>
+</table>
+<note>
+<olist>
+<item>
+<p>No feature is deprecated by this version of this specification.</p>
+</item>
+</olist>
+</note>
+</div2>
+<div2>
+<head>Guidelines</head>
+<table id="qa-framework-guidelines-table" role="common">
+<caption>Table J-2 – QA Framework Guidelines Checklist</caption>
+<col width="76%"/>
+<col width="6%" align="center"/>
+<col width="6%" align="center"/>
+<col width="6%" align="center"/>
+<col width="6%" align="center"/>
+<tbody>
+<tr>
+<td><phrase role="strong">Guideline</phrase></td>
+<td><phrase role="strong">YES</phrase></td>
+<td><phrase role="strong">NO</phrase></td>
+<td><phrase role="strong">N/A</phrase></td>
+<td><phrase role="strong">Notes</phrase></td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-model-gp">Good Practice 01: Define the specification's conformance model in the conformance clause.</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#norm-informative-gp">Good Practice 02: Specify in the conformance clause how to distinguish normative from informative content.</xspecref></td>
+<td><loc href="#conventions">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#conformance-claim-gp">Good Practice 03: Provide the wording for conformance claims.</xspecref></td>
+<td><loc href="#claims">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-gp">Good Practice 04: Provide an Implementation Conformance Statement Pro Forma.</xspecref></td>
+<td/>
+<td>NO</td>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ics-claim-gp">Good Practice 05: Require an Implementation Conformance Statement as part of valid conformance claims.</xspecref></td>
+<td><loc href="#claims">YES</loc></td>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#use-example-gp">Good Practice 06: Provide examples, use cases, and graphics.</xspecref></td>
+<td><loc href="#example">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-sample-gp">Good Practice 07: Write sample code or tests.</xspecref></td>
+<td><loc href="#sample-code">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#ref-define-practice">Good Practice 08: When imposing requirements by normative references, address conformance dependencies.</xspecref></td>
+<td><loc href="#references">YES</loc></td>
+<td/>
+<td/>
+<td>1</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-terms-inline-gp">Good Practice 09: Define unfamiliar terms in-line and consolidate the definitions in a glossary section.</xspecref></td>
+<td><loc href="#definitions">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#reuse-terms-gp">Good Practice 10: Use terms already defined without changing their definition.</xspecref></td>
+<td><loc href="#definitions">YES</loc></td>
+<td/>
+<td/>
+<td>2</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#formal-language-gp">Good Practice 11: Use formal languages when possible.</xspecref></td>
+<td><loc href="#schemas">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#write-assertion-gp">Good Practice 12: Write Test Assertions.</xspecref></td>
+<td/>
+<td>NO</td>
+<td/>
+<td>3</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#subdivide-foster-gp">Good Practice 13: Create subdivisions of the technology when warranted.</xspecref></td>
+<td><loc href="#conformance">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#rules-profiles-gp">Good Practice 14: If the technology is profiled, define rules for creating new profiles.</xspecref></td>
+<td><loc href="#vocabulary-profiles">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#need-option-gp">Good Practice 15:Use optional features as warranted.</xspecref></td>
+<td>YES</td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#label-options-gp">Good Practice 16: Clearly identify optional features.</xspecref></td>
+<td>YES</td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#constraints-gp">Good Practice 17: Indicate any limitations or constraints on optional features.</xspecref></td>
+<td>YES</td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#extensions-prohibited-gp">Good Practice 18: If extensibility is allowed, define an extension mechanism.</xspecref></td>
+<td><loc href="#extension-vocabulary-overview">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#breaking-conformance-gp">Good Practice 19: Warn extension creators to create extensions that do not interfere with conformance.</xspecref></td>
+<td><loc href="#extension-vocabulary-overview">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#define-error-gp">Good Practice 20: Define error-handling for unknown extensions.</xspecref></td>
+<td><loc href="#conformance-processor">YES</loc></td>
+<td/>
+<td/>
+<td>4</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#workaround-gp">Good Practice 21: Explain how to avoid using a deprecated feature.</xspecref></td>
+<td/>
+<td/>
+<td>N/A</td>
+<td>5</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#obsolete-gp">Good Practice 22: Identify obsolete features.</xspecref></td>
+<td/>
+<td/>
+<td>N/A</td>
+<td>5</td>
+</tr>
+<tr>
+<td><xspecref href="http://www.w3.org/TR/2005/REC-qaframe-spec-20050817/#error-handling-gp">Good Practice 23: Define an error handling mechanism.</xspecref></td>
+<td><loc href="#reduced-infoset">YES</loc></td>
+<td/>
+<td/>
+<td/>
+</tr>
+</tbody>
+</table>
+<note>
+<olist>
+<item>
+<p>When making normative references to external specifications,
+specific clauses or sections are cited.</p>
+</item>
+<item>
+<p>See also <specref ref="derivation"/>.</p>
+</item>
+<item>
+<p>Test assertions and test suites will be provided prior to entering
+Proposed Recommendation (PR) phase.</p>
+</item>
+<item>
+<p>See criterion #3 in <specref
+ref="conformance-processor"/> and definition of
+<loc href="#doctypes">TT AF Abstract Document Instance</loc>.</p>
+</item>
+<item>
+<p>No feature is deprecated or obsoleted by this version of this specification.</p>
+</item>
+</olist>
+</note>
+</div2>
+</inform-div1>
+<inform-div1 id="streaming">
+<head>Streaming DFXP Content</head>
+<p>DFXP Content is designed to support streamability by implementing the
+following properties:</p>
+<ulist>
+<item>
+<p>can be progressively encoded (i.e., does not require computing
+subsequent data prior to sending current data);</p>
+</item>
+<item>
+<p>can be progressively decoded (i.e., does not require forward
+references, but uses only reverse references when necessary);</p>
+</item>
+<item>
+<p>does not require dereferencing (and subsequent loading) of any
+resources other than DFXP content (i.e., no embedded URIs);</p>
+</item>
+<item>
+<p>does not support alternative content forms (e.g., different
+language, graphics formats, time bases) in a single document;</p>
+</item>
+<item>
+<p>has timing structure compiled into inline format that makes
+possible a temporal ordering of content that follows temporal
+presentation order;</p>
+</item>
+<item>
+<p>constrains content models to prevent arbitrary nested content
+structures;</p>
+</item>
+</ulist>
+<p>One possible means by which DFXP Content may be streamed is to
+partition a DFXP document instance's information set into
+non-overlapping fragments, where one particular fragment, call it the
+<emph>root fragment</emph>, represents the front matter (head) of the
+document instance as well as its top level structural elements, and
+other fragments represent content whose time intervals are expected to
+be active in parallel.</p>
+<p>In applications that require arbitrary (random) entry into a
+stream, i.e., the property of being able to start reading data at an
+arbitrary data access unit, the root fragment will be repetitively
+transmitted (inserted) into the stream in order to permit a decoder to
+resynchronize and acquire sufficient structural information in the
+information set in order to interpret subsequent content
+fragments.</p>
+<p>An example of such a fragmentation of a DFXP document instance is
+shown in <specref ref="fragment-streaming-graphic"/>.</p>
+<table id="fragment-streaming-graphic" role="example-images">
+<caption>Figure 2 – Fragment Streaming</caption>
+<tbody>
+<tr>
+<td><graphic id="graphic-fragment-streaming" source="images/streaming.png" alt="Fragment Streaming"/></td>
+</tr>
+</tbody>
+</table>
+<note>
+<p>This specification does not define a transport buffer model or a decoder
+capabilities model.</p>
+</note>
+</inform-div1>
+<inform-div1 id="acknowledgements">
+<head>Acknowledgments</head>
+<p>The editor acknowledges the members of the Timed Text Working
+Group, the members of other W3C Working Groups, and industry experts
+in other forums who have contributed directly or indirectly to the
+process or content of creating this document.</p>
+<p>The current and former members of the Timed Text Working Group are:
+Glenn Adams, Extensible Formatting Systems, Inc. (chair);
+Kees Blom, CWI;
+Brad Botkin, WGBH National Center for Accessible Media;
+Dick Bulterman, CWI;
+Michael Dolan, Invited Expert;
+Gerry Fields, WGBH (formerly);
+Geoff Freed, WGBH National Center for Accessible Media;
+Markus Gylling, DAISY Consortium;
+Markku Hakkinen, Japanese Society for Rehabilitation of Persons with Disabilities;
+Sean Hayes, Microsoft;
+Erik Hodge, RealNetworks;
+Masahiko Kaneko, Microsoft;
+George Kerscher, DAISY Consortium;
+David Kirby, BBC;
+Thierry Michel, W3C (team contact);
+Patrick Schmitz, Invited Expert;
+and, Dave Singer, Apple Computer.
+</p>
+<p>The editor wishes to especially acknowledge the following contributions
+by members: Micheal Dolan (SMPTE time codes, streaming; SMPTE liaison), David
+Kirby (introductory example document; SMPTE time codes, descriptive metadata; EBU/AAF liaison), Geoff Freed (styling
+and example images of style properties), Sean Hayes (advanced profile
+concepts, including applicative timing), Eric Hodge (timing),
+Thierry Michel (metadata), and Dave Singer (animation, scrolling).</p>
+<p>The Timed Text Working Group has benefited in its work from the
+participation and contributions of a number of people not currently
+members of the Working Group, including in particular those named
+below. Affiliations given are those current at the time of their work
+with the WG.</p>
+<p>
+John Birch, Screen Subtitling Systems;
+Bert Bos, W3C (chair, CSS WG);
+Martin Dürst, W3C (leader, I18N Activity);
+Al Gilman (chair, WAI Protocol and Formats WG);
+Philipp Hoschka, W3C (leader, Interaction Domain);
+Chris Lilley, W3C (chair, SVG WG).
+</p>
+<p>The editor wishes to especially acknowledge the following contributions
+by non-members: John Birch (dynamic flow).</p>
+</inform-div1>
+<inform-div1 id="change-history">
+<head>Change History</head>
+<div2 id="change-history-lc1-to-lc2">
+<head>Changes from First to Second Last Call Working Draft</head>
+<eg xml:space="preserve">
+<phrase role="strong">Technical Changes</phrase>
+
+The following changes result in a technical change of the conformance
+criteria, the normative abstract document type that is defined
+for use with DFXP, or the defined value space of an attribute or
+property:
+
+* Update namespace URIs to use 2006/04 instead of 2004/11;
+* Remove ttp:defaultLengthUnit definition and all references;
+ + change initial (default) value definition of tts:fontSize to
+ be 1/24th of the height of the root container in all cases;
+ + change syntax of scalar form of <length> to require units
+* Remove ttp:defaultTimeMetric definition and all references;
+ + change syntax of <duration> to require a metric
+* Add "transcription" to ttm:role enumeration in section 12.2.2;
+* In section 8.2.16, change "dynamic" value to read "scroll" instead,
+ which is already defined by CSS/XSL and given UA dependent
+ semantics; here we will specify fixed semantics and map to dynamic
+ flow; change also usage in 8.1.7 to refer to "scroll";
+* In section 6.2.1, change implied default value of ttp:cellResolution
+ from 1col/1row to 32cols/15rows, based on CEA/EIA-608-C maximum values;
+* In 8.3.12, add "cyan" and "magenta" as aliases for "aqua" and
+ "fucshia", since it turns out these are defined by SVG1.0;
+* Add following new values for ttm:role to support EIA/CEA-708 caption
+ text functions: dialog, expletive, narration, quality, source,
+ suppressed; remove associated editorial note;
+* In 3.1, add new conformance criteria item 1 that specifies the use
+ of application/ttaf+xml as MIME media type with optional "profile"
+ parameter; use new references to MIME and XML Media Types;
+* Remove begin, dur, and end attributes and descriptions thereof from
+ <tt/> and <layout/>;
+* Move description of tts:extent attribute from <tt/> to
+ <body/>;
+* Change "meta" element name to "metadata" to match SVG usage, on
+ which this vocabulary item is modeled;
+* Remove name attribute from <metadata/> element;
+* Change initial (default) value definition of tts:fontSize to
+ be 1c (one grid cell) in order to match implied default value for
+ ttp:cellResolution row count;
+* For sake of symmetry, add Metadata.class and Animation.class children to
+ content model of <br/>;
+* Add style, ttm:*, tts:* and foreign namespace attributes to
+ <br/>;
+* Add usage of tts:padding property that takes three length specifications;
+* Add left and right values to textAlign;
+* Add monospace, serif, and sansSerif to generic font family names;
+* Add missing "auto" value to zIndex, and make "auto" initial value
+ in order to comply with XSL/CSS usage;
+* Add means to specify rate (in units per second) to definition of
+ flowIntervalArguments in section 8.3.8;
+* Populate Appendix B on Dynamic Flow Processing which defines normative
+ semantics (previously unspecified);
+
+<phrase role="strong">Editorial Changes</phrase>
+
+The following changes are editorial in nature or entail semantic
+clarifications that do not affect the abstract document type or defined
+schemas for DFXP:
+
+* Add "Contributing Authors" to preamble, listing contributors;
+* Merge current and former members description in Appendix H (now
+ Appendix K);
+* Remove references to AFXP as follows:
+ + remove 1st note in section 1
+ + remove 1st note in section 1.1
+ + remove definition of AFXP from glossary
+ + remove section 4.2
+ + remove AFXP profile entry from Table 2 - Profiles
+ + remove reference to 2nd catalog in section 5.3 preamble
+ + remove last clause of 2nd para of section 5.3
+ + change "AFXP" to "future profiles" in 1st para of section 5.3.1
+ + remove section 5.3.2
+ + remove last sentence of 2nd note in section 7.1.4
+ + remove last sentence of 1st note in section 7.1.6
+ + change "AFXP" to "advanced profiles" in 3rd para of Appendix H (now
+ Appendix K);
+* Add clarifying language in the last para of section 8.3.6;
+* Clarify definition of "Valid Abstract Document Instance" in section 4
+ to account for the pruning of attributes in other namespaces and
+ residual requirements on the presence and value type of attributes;
+ + remove redundant definition in glossary to prevent competing
+ definitions
+* Add informative reference to SMPTE170M (for NTSC); add a
+ reference to this bibliographic entry from the 1st note under
+ section 6.2.4; add new sentence to this same note indicating
+ that other frame rate multipliers apply in other regions and
+ with other video formats;
+* Add normative reference to UAAG; add recommendation in
+ conformance clause 3.2 item (5) that a presentation processor
+ should satisfy UAAG defined guidelines;
+* Add note in introduction expressing that a related sign language
+ representation may be appropriate in some circumstances, but that
+ this is not addressed explicitly by DFXP;
+* Add note in section 6.2.11 indicating that control over state of
+ external media time base is outside the scope of DFXP;
+* Add note in section 5.2 indicating possible uses of profile
+ information;
+* Fix typos:
+ + section 6.2.1: s/express number/express the number/
+ + section 6.2.5 (now 6.2.3): s/in document/in a document/
+ + section 6.2.6 (now 6.2.4): s/MHz/Hz/
+* Add note to 6.2.2 referring to section 10.3 Time Value Expressions;
+* Add normative reference to UTC, using reference in section 6.2.2;
+* Add normative reference to GPS, using reference in section 6.2.2;
+* Add note to 6.2.2 summarizing difference between GPS and UTC;
+* Add para to 6.2.2 clarifying that ttp:clockMode is significant
+ only on <tt/> element;
+* In section 8.3.11, add or refer to definitions of "px", "em", and
+ "c";
+* In section 7.2.3, replace definition of semantics of xml:space
+ values with a new definition that maps to XSL-FO properties;
+* In section 9.3.2, add new item (8) that specifies mapping for
+ <br/> elements to <fo:character/>;
+* In section 4, add new step 2 to definition of Abstract Document
+ Instance, which is needed to remove certain XML whitespace that
+ remains after pruning elements; e.g., a <br/> element may have
+ children from another namespace, that, after pruning, would result
+ in a non-empty <br/> element; this new step ensures that the
+ element is emptied prior to validation against its abstract
+ document type;
+* In section 8 preamble, add new para indicating that no normative
+ use of a stylesheet PI is defined;
+* In section 8.2.16, add condition tts:wrapOption="noWrap" in note;
+* In section 8.2.22, move visibility="hidden" from <p/> to <span/>s;
+ otherwise, content would remain hidden due to <p/> being hidden;
+* Add informative reference to CEA/EIA-608-C; use this reference
+ in a new note in 6.2.1;
+* Add note in 6.2.1 explaining that it is not expected that glyph
+ areas align with uniform grid defined by ttp:cellResolution,
+ indicate that such alignment would occur only when using monospace
+ font whose EM square exactly matches grid's cell size;
+* Add normative reference to SRGB definition;
+* Add normative use of SRGB in section 8.3.2 <color> and 8.3.12 <namedColor>
+* In 8.3.2, add para indicating that SRGB is used for both input and
+ output of notional composition functions; add note indicating that
+ a presentation processor may actually use another color space for
+ internal or external purposes;
+* In 8.2.14, specify that opacity applies on a linear scale;
+* Add informative reference to SVG 1.0;
+* Add note in 8.3.12 indicating that named color set is a strict
+ subset of SVG 1.0 named color set;
+* Add empty informative Appendices H, I, and L, to document Vocabulary
+ Derivation, QA Framework Compliance, and Change History,
+ respectively; renumber former appendices G and H as Appendices J
+ and K, respectively;
+* Add normative reference to RFC2046, MIME Media Types;
+* Add normative reference to RFC3023, XML Media Types;
+* Change description of implied begin/end on <tt/> to refer to
+ external context temporal interval;
+* Change description of implied begin/end on <body/> to refer to
+ external time interval;
+* In 7.1.2, 8.1.1, and 9.1.1, specify that implied time intervals of
+ head, styling, and layout are coterminous with external time
+ interval;
+* In 9.1.2, indicate that begin/end points specified on <region/>
+ are relative to the time interval of the nearest ancestor associated
+ with a time interval;
+* In 9.1.2, remove constraint that if no tts:extent is specified in
+ computed style set then no content is flowed into region; this
+ constraint is redundant since the initial value of tts:extent is
+ "auto" which is defined to be extent of root container;
+* Fix typos:
+ + section 9.1.2, s/layout/region/ in para describing dur attribute;
+* Add note at end of the preamble to section 8.2, [Styling] Attribute
+ Vocabulary, indicating that (to support inheritance) any style
+ property may be specified on any content element independently of
+ whether it applies to that element;
+* Remove note in 7.1.7 that indicated that <br/> is empty in
+ the reduced XML infoset, which no longer holds as both metadata and
+ animation children may be present;
+* In Appendix I, add table I-1 with element vocabulary derivation;
+* Define monospace to be either serifed or not; define serif and
+ sansSerif to be equivalent to proportionalSerif and proportionalSansSerif,
+ respectively;
+* Add time metric to time expressions in example content;
+* Add definition of implicit duration of document instance in section 7.1.1;
+* In definition of <time-expression> syntax in section 10.3.1,
+ remove paragraph referring to default time metric, which no longer
+ applies now that time metric must be specified;
+* In Appendix I, add table I-2 with attribute vocabulary derivation;
+* Add definition of percentage lengths to each style property
+ definition. Percentages apply to the following styles: extent,
+ fontSize, lineHeight, origin, padding, and textOutline;
+* Fill in Appendix I with QA Framework compliance information;
+* Add section 5.3.2 defining a presently empty "Extension Catalog"
+ that serves as a placeholder for future standardized extensions and
+ additionally specifies that document instance may contain arbitrary
+ namespace qualified elements and attributes from other namespaces;
+* Add section 3.3 defining conformance claims and requirements
+ regarding for providing an implementation compliance statement;
+* Add hyperlinks throughout document for references to elements,
+ attributes, and value expressions;
+* Add new Appendix F containing sample code and sample compile,
+ load, run session transcript;
+* Change IDREF to IDREFS as value of ttm:agent as found in prose in
+ section 12.2.1;
+</eg>
+</div2>
+
+<div2 id="change-history-lc2-to-cr">
+<head>Changes from Second Last Call Working Draft to Candidate
+Recommendation</head>
+<eg xml:space="preserve">
+<phrase role="strong">Technical Changes</phrase>
+
+The following changes result in a technical change of the conformance
+criteria, the normative abstract document type that is defined
+for use with DFXP, or the defined value space of an attribute or
+property:
+
+* Restore support for nested div and span elements [that had
+ been removed in an early working draft].
+* Change "id" attribute to "xml:id".
+* Add tts:textDecoration style property.
+* Update namespace URIs to use 2006/10 instead of 2006/04.
+* Update profile URIs to use 2006/10 instead of 2006/04.
+
+<phrase role="strong">Editorial Changes</phrase>
+
+The following changes are editorial in nature or entail semantic
+clarifications that do not affect the abstract document type, defined
+schemas, or conformance criteria for DFXP:
+
+* Update "status of this document" (SOTD) section to
+ reflect CR transition.
+* Add normative reference to xml:id recommendation.
+* Add note in section 9.3.3 indicating that intermediate document
+ examples are internal processing states and do not represent
+ valid DFXP documents.
+* Add "Except for transparent, " to note in section 8.3.12.
+* Add recommendation, in section 3.1 item 5, that conformant
+ reduced infoset "should" adhere to WCAG1.0.
+* Add normative reference to WCAG1.0.
+* Update informative reference to SVG1.0 to reference SVG1.1
+ instead.
+* Insert new (normative) Appendix D that specifies the
+ MIME Media Type registration information for application/ttaf+xml.
+* Add normative reference to RFC3023 tagged as [XML Media Types],
+ for use by new Appendix D.
+* Normalize and add missing dates of W3C Recs cited in
+ Appendices E (References) and F (Other References).
+* In Table 4, express groups as choice lists instead of
+ sequences (which might have been confusing).
+* Revise content models of XML Representation of div, p,
+ and span element information items in order to make
+ reference to Block.class and Inline.class element
+ groups.
+* Add "This appendix is normative" to beginning of each
+ normative appendix.
+* Add clarifications in sections 8.3.13 and 8.3.14 that
+ syntactic element "char" adheres to production [2] of
+ XML1.1, while syntactic element "S" adheres to
+ production [3] of XML1.1.
+* Add note to section 7.1.7 (and rearrange paragraph ordering)
+ to indicate that two <br> elements are intended to
+ produce two forced line breaks in a sequence.
+* Add note to section 6.2.4 that indicates that PAL
+ formatted video nominally uses a 1:1 frame rate multiplier
+ (except for PAL/M).
+* Add note to end of section 9.3.2 that indicates that a
+ compliant XSL1.0 presentation processor may be insufficient
+ to satisfy the presentation semantics of DFXP.
+* Clarify syntax of <alpha> style value expression to
+ use XML Scheme Datatype lexical representation of xs:float,
+ which was the intended syntactic value space for this
+ expression.
+* Clarify that ttp:cellResolution columns or rows must not be zero
+ if present.
+* Clarify that ttp:frameRate must be greater than zero if present.
+* Clarify that ttp:frameRateMultipler denominator must not be zero
+ if present. Correct misspelling "demoninator".
+* Clarify that ttp:pixelAspectRatio width or height must not be zero
+ if present.
+* Clarify that ttp:subFrameRate must not be zero if present.
+* Clarify that ttp:tickRate must not be zero if present.
+* Remove superfluous end tag close (>) in XML representation of
+ metadata element information item in section 12.1.1.
+* Add clarification that the declared value of an inline style
+ attribute on body, region, and style elements must not be "inherit".
+* Add clarification in section 8.5.1 item 2 that use of value
+ "inherit" does not apply if element is body element.
+* Clarify that tt element establishes the root stacking context
+ for the purpose of interpreting the tts:zIndex style property;
+ this corresponds with the prescribed mapping of tt:tt to fo:root
+ as described in section 9.3.2 item 3.
+* Clarify that ttp:{markerMode,smpteMode,tickRate,timeBase} are
+ significant only when specified on tt element.
+* Add note at end of section 8.2.17 that padding style attribute
+ is based on XSL 1.0 shorthand "padding" property except that
+ the individual values map to writing mode relative padding
+ properties, i.e., padding-before, padding-after, etc.
+* Update attribute derivation table (Appendix I.2) to reflect
+ addition of tts:textDecoration and change from id to xml:id.
+* Update publishing date and dates in SOTD CR publication.
+* Update SOTD to remove use of sample code as satisfying 2
+ implementation convention for exit criteria. Note that sample
+ code can still serve as 1 implementation of 2 required.
+* Add paragraph to SOTD describing unsatisfied comments during
+ first LC.
+* Change "reference code" to read "sample code".
+</eg>
+</div2>
+<div2 id="change-history-cr-to-pr">
+<head>Changes from Candidate Recommendation to Proposed Recommendation</head>
+<eg xml:space="preserve">
+<phrase role="strong">Technical Changes</phrase>
+
+The following changes result in a technical change of the conformance
+criteria, the normative abstract document type that is defined
+for use with DFXP, or the defined value space of an attribute or
+property:
+
+* Add requiredExtensions, requiredFeatures, and requiredFonts attributes.
+
+<phrase role="strong">Editorial Changes</phrase>
+
+The following changes are editorial in nature or entail semantic
+clarifications that do not affect the abstract document type, defined
+schemas, or conformance criteria for DFXP:
+</div2>
+</inform-div1>
+</back>
+</spec>
Binary file old/dfxp/archive/CR-ttaf1-dfxp-20060207.zip has changed
Binary file old/dfxp/archive/CR-ttaf1-dfxp-20061001.zip has changed
Binary file old/dfxp/archive/CR-ttaf1-dfxp-20061110.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20041026.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20041101.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20050209.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20050222.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20050309.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20050321.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-200510DD-0.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-200510DD-1.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-200601DD-0.zip has changed
Binary file old/dfxp/archive/WD-ttaf1-dfxp-20060427.zip has changed
Binary file old/dfxp/archive/ttaf1-dfxp-tests-20060517.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/dfxp.xpr Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <meta>
+ <filters directoryPatterns="" filePatterns=""
+ positiveFilePatterns=""/>
+ </meta>
+ <projectTree name="dfxp.xpr">
+ <folder name="examples">
+ <file name="examples/ex1.xml"/>
+ </folder>
+ <folder name="rnc"/>
+ <folder name="spec">
+ <file name="Overview.xml"/>
+ <file name="ttaf1-dfxp.xsl"/>
+ <file name="xmlspec-tt-f.dtd"/>
+ <file name="xmlspec.xsl"/>
+ </folder>
+ <folder name="tests">
+ <folder name="neg">
+ <folder name="cnt">
+ <file name="tests/cnt/fail/test001.xml"/>
+ <file name="tests/cnt/fail/test002.xml"/>
+ <file name="tests/cnt/fail/test003.xml"/>
+ </folder>
+ <folder name="lay"/>
+ <folder name="sty">
+ <file name="tests/sty/fail/test001.xml"/>
+ <file name="tests/sty/fail/test002.xml"/>
+ <file name="tests/sty/fail/test003.xml"/>
+ <file name="tests/sty/fail/test004.xml"/>
+ <file name="tests/sty/fail/test005.xml"/>
+ <file name="tests/sty/fail/test006.xml"/>
+ <file name="tests/sty/fail/test007.xml"/>
+ <file name="tests/sty/fail/test008.xml"/>
+ </folder>
+ <folder name="tim">
+ <file name="tests/tim/fail/test001.xml"/>
+ <file name="tests/tim/fail/test002.xml"/>
+ <file name="tests/tim/fail/test003.xml"/>
+ <file name="tests/tim/fail/test004.xml"/>
+ <file name="tests/tim/fail/test005.xml"/>
+ </folder>
+ </folder>
+ <folder name="pos">
+ <folder name="cnt">
+ <file name="tests/cnt/pass/test001.xml"/>
+ <file name="tests/cnt/pass/test002.xml"/>
+ <file name="tests/cnt/pass/test003.xml"/>
+ <file name="tests/cnt/pass/test004.xml"/>
+ <file name="tests/cnt/pass/test005.xml"/>
+ </folder>
+ <folder name="lay">
+ <file name="tests/lay/pass/test001.xml"/>
+ <file name="tests/lay/pass/test002.xml"/>
+ <file name="tests/lay/pass/test003.xml"/>
+ <file name="tests/lay/pass/test004.xml"/>
+ <file name="tests/lay/pass/test005.xml"/>
+ </folder>
+ <folder name="sty">
+ <file name="tests/sty/pass/test001.xml"/>
+ <file name="tests/sty/pass/test002.xml"/>
+ <file name="tests/sty/pass/test003.xml"/>
+ <file name="tests/sty/pass/test004.xml"/>
+ <file name="tests/sty/pass/test005.xml"/>
+ <file name="tests/sty/pass/test006.xml"/>
+ <file name="tests/sty/pass/test007.xml"/>
+ <file name="tests/sty/pass/test008.xml"/>
+ <file name="tests/sty/pass/test009.xml"/>
+ <file name="tests/sty/pass/test010.xml"/>
+ <file name="tests/sty/pass/test011.xml"/>
+ <file name="tests/sty/pass/test012.xml"/>
+ <file name="tests/sty/pass/test013.xml"/>
+ <file name="tests/sty/pass/test014.xml"/>
+ <file name="tests/sty/pass/test015.xml"/>
+ <file name="tests/sty/pass/test016.xml"/>
+ <file name="tests/sty/pass/test017.xml"/>
+ <file name="tests/sty/pass/test018.xml"/>
+ <file name="tests/sty/pass/test019.xml"/>
+ <file name="tests/sty/pass/test020.xml"/>
+ <file name="tests/sty/pass/test021.xml"/>
+ <file name="tests/sty/pass/test022.xml"/>
+ <file name="tests/sty/pass/test023.xml"/>
+ <file name="tests/sty/pass/test024.xml"/>
+ <file name="tests/sty/pass/test025.xml"/>
+ <file name="tests/sty/pass/test026.xml"/>
+ <file name="tests/sty/pass/test027.xml"/>
+ <file name="tests/sty/pass/test028.xml"/>
+ <file name="tests/sty/pass/test029.xml"/>
+ <file name="tests/sty/pass/test030.xml"/>
+ <file name="tests/sty/pass/test031.xml"/>
+ <file name="tests/sty/pass/test032.xml"/>
+ <file name="tests/sty/pass/test033.xml"/>
+ <file name="tests/sty/pass/test034.xml"/>
+ <file name="tests/sty/pass/test035.xml"/>
+ <file name="tests/sty/pass/test036.xml"/>
+ <file name="tests/sty/pass/test037.xml"/>
+ <file name="tests/sty/pass/test038.xml"/>
+ <file name="tests/sty/pass/test039.xml"/>
+ <file name="tests/sty/pass/test040.xml"/>
+ <file name="tests/sty/pass/test041.xml"/>
+ <file name="tests/sty/pass/test042.xml"/>
+ </folder>
+ <folder name="tim">
+ <file name="tests/tim/pass/test001.xml"/>
+ <file name="tests/tim/pass/test002.xml"/>
+ <file name="tests/tim/pass/test003.xml"/>
+ <file name="tests/tim/pass/test004.xml"/>
+ <file name="tests/tim/pass/test005.xml"/>
+ <file name="tests/tim/pass/test006.xml"/>
+ <file name="tests/tim/pass/test007.xml"/>
+ <file name="tests/tim/pass/test008.xml"/>
+ <file name="tests/tim/pass/test009.xml"/>
+ <file name="tests/tim/pass/test010.xml"/>
+ <file name="tests/tim/pass/test011.xml"/>
+ <file name="tests/tim/pass/test012.xml"/>
+ <file name="tests/tim/pass/test013.xml"/>
+ <file name="tests/tim/pass/test014.xml"/>
+ <file name="tests/tim/pass/test015.xml"/>
+ <file name="tests/tim/pass/test016.xml"/>
+ <file name="tests/tim/pass/test017.xml"/>
+ <file name="tests/tim/pass/test018.xml"/>
+ <file name="tests/tim/pass/test019.xml"/>
+ <file name="tests/tim/pass/test020.xml"/>
+ <file name="tests/tim/pass/test021.xml"/>
+ <file name="tests/tim/pass/test022.xml"/>
+ <file name="tests/tim/pass/test023.xml"/>
+ <file name="tests/tim/pass/test024.xml"/>
+ <file name="tests/tim/pass/test025.xml"/>
+ </folder>
+ </folder>
+ </folder>
+ <folder name="xsd">
+ <file name="xsd/ttaf1-dfxp-animation.xsd"/>
+ <file name="xsd/ttaf1-dfxp-content.xsd"/>
+ <file name="xsd/ttaf1-dfxp-core-attribs.xsd"/>
+ <file name="xsd/ttaf1-dfxp-datatypes.xsd"/>
+ <file name="xsd/ttaf1-dfxp-document.xsd"/>
+ <file name="xsd/ttaf1-dfxp-head.xsd"/>
+ <file name="xsd/ttaf1-dfxp-layout.xsd"/>
+ <file name="xsd/ttaf1-dfxp-metadata-attribs.xsd"/>
+ <file name="xsd/ttaf1-dfxp-metadata-items.xsd"/>
+ <file name="xsd/ttaf1-dfxp-metadata.xsd"/>
+ <file name="xsd/ttaf1-dfxp-parameter-attribs.xsd"/>
+ <file name="xsd/ttaf1-dfxp-styling-attribs.xsd"/>
+ <file name="xsd/ttaf1-dfxp-styling.xsd"/>
+ <file name="xsd/ttaf1-dfxp-timing-attribs.xsd"/>
+ <file name="xsd/ttaf1-dfxp.xsd"/>
+ <file name="xsd/xml.xsd"/>
+ </folder>
+ </projectTree>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/doesc.bat Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,6 @@
+@echo off
+xe -q -v ex1.xml
+xe -q -v ex1-x-0.xml
+xe -q -v ex1-x-1.xml
+xe -q -v ex1-x-2.xml
+xe -q -v ex1-p-0.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-p-0.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,44 @@
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="m1"
+ page-width="640px" page-height="480px">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="m1">
+ <fo:flow flow-name="xsl-region-body">
+ <!-- region (r1) -->
+ <fo:block-container id="r1" absolute-position="absolute"
+ left="10px" top="100px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-1">
+ <!-- div (d1) -->
+ <fo:block id="d1-1">
+ <!-- p (p1) -->
+ <fo:block id="p1" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="red">Text 1</fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block-container>
+ <!-- region (r2) -->
+ <fo:block-container id="r2" absolute-position="absolute"
+ left="10px" top="300px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-2">
+ <!-- div (d1) -->
+ <fo:block id="d1-2">
+ <!-- p (p2) -->
+ <fo:block id="p2" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="yellow">Text 2</fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-p-0.xml.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,44 @@
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="m1"
+ page-width="640px" page-height="480px">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="m1">
+ <fo:flow flow-name="xsl-region-body">
+ <!-- region (r1) -->
+ <fo:block-container id="r1" absolute-position="absolute"
+ left="10px" top="100px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-1">
+ <!-- div (d1) -->
+ <fo:block id="d1-1">
+ <!-- p (p1) -->
+ <fo:block id="p1" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="red">Text 1</fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block-container>
+ <!-- region (r2) -->
+ <fo:block-container id="r2" absolute-position="absolute"
+ left="10px" top="300px" width="620px" height="96px"
+ background-color="black" display-align="center">
+ <!-- body (b1) -->
+ <fo:block id="b1-2">
+ <!-- div (d1) -->
+ <fo:block id="d1-2">
+ <!-- p (p2) -->
+ <fo:block id="p2" text-align="center">
+ <fo:inline font-size="40px" font-weight="bold"
+ color="yellow">Text 2</fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-x-0.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,37 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-x-0.xml.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,37 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-x-1.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,43 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-x-1.xml.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,43 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d1-1">
+ <p xml:id="p1">Text 1</p>
+ </div>
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d1-2">
+ <p xml:id="p2">Text 2</p>
+ </div>
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-x-2.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,37 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1-x-2.xml.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,37 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-1">
+ <div xml:id="d2-1">
+ <p xml:id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" xml:id="b1-2">
+ <div xml:id="d2-2">
+ <p xml:id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,37 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ </layout>
+ </head>
+ <body tts:extent="640px 480px" xml:id="b1">
+ <div xml:id="d1" begin="0s" dur="2s">
+ <p xml:id="p1" region="r1">Text 1</p>
+ <p xml:id="p2" region="r2">Text 2</p>
+ </div>
+ <div xml:id="d2" begin="1s" dur="2s">
+ <p xml:id="p3" region="r2">Text 3</p>
+ <p xml:id="p4" region="r1">Text 4</p>
+ </div>
+ </body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/examples/ex1.xml.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,37 @@
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <layout>
+ <region xml:id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ <region xml:id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ </layout>
+ </head>
+ <body tts:extent="640px 480px" xml:id="b1">
+ <div xml:id="d1" begin="0s" dur="2s">
+ <p xml:id="p1" region="r1">Text 1</p>
+ <p xml:id="p2" region="r2">Text 2</p>
+ </div>
+ <div xml:id="d2" begin="1s" dur="2s">
+ <p xml:id="p3" region="r2">Text 3</p>
+ <p xml:id="p4" region="r1">Text 4</p>
+ </div>
+ </body>
+</tt>
Binary file old/dfxp/images/backgroundColor.png has changed
Binary file old/dfxp/images/color.png has changed
Binary file old/dfxp/images/direction.png has changed
Binary file old/dfxp/images/displayAlign.png has changed
Binary file old/dfxp/images/display_0.png has changed
Binary file old/dfxp/images/display_1.png has changed
Binary file old/dfxp/images/display_2.png has changed
Binary file old/dfxp/images/display_3.png has changed
Binary file old/dfxp/images/display_4.png has changed
Binary file old/dfxp/images/dk.png has changed
Binary file old/dfxp/images/ds.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/images/dynamicFlow_RU_animated.svg Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by ncam (Timed Text WG) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20030114.dtd" [
+ <!ENTITY black '#101010'>
+ <!ENTITY white '#EBEBEB'>
+ <!ENTITY red '#EB1010'>
+]>
+<svg xmlns="http://www.w3.org/2000/svg" width="320px" height="62px">
+ <title>dynamicFlow (roll-up)</title>
+ <desc>demonstration of dynamicFlow (roll-up) property</desc>
+ <svg x="5" y="8" width="320" height="62">
+
+ <!-- first row -->
+ <g>
+ <animateMotion from="0,0" to="0,-30" begin="4" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-30" to="0,-50" begin="7" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-50" to="0,-70" begin="10" dur="0.3" fill="freeze"/>
+ <!-- row 1 regions -->
+ <g style="visibility:hidden;" fill="&black;">
+ <rect x="1" y="30" width="37" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="1" fill="freeze" />
+ </rect>
+ <rect x="38" y="30" width="59" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="2" fill="freeze" />
+ </rect>
+ <rect x="97" y="30" width="35" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="3" fill="freeze" />
+ </rect>
+ </g>
+ <!-- row 1 text -->
+ <g fill="&white;" font-family="'Humanist 521 BT', arial, sans-serif" font-size="18">
+ <text x="2" y="46" style="visibility:hidden;">Five
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="1" fill="freeze" />
+ </text>
+ <text x="40" y="46" style="visibility:hidden;">o'clock
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="2" fill="freeze" />
+ </text>
+ <text x="100" y="46" style="visibility:hidden;">tea!
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="3" fill="freeze" />
+ </text>
+ </g>
+ </g>
+
+<!-- row 2 -->
+ <g>
+ <animateMotion from="0,-30" to="0,-60" begin="4" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-60" to="0,-80" begin="7" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-80" to="0,-100" begin="10" dur="0.3" fill="freeze"/>
+<!-- row 2 regions -->
+ <g style="visibility:hidden;" fill="&black;">
+ <rect x="1" y="80" width="40" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="4" fill="freeze" />
+ </rect>
+ <rect x="41" y="80" width="19" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="5" fill="freeze" />
+ </rect>
+ <rect x="60" y="80" width="45" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="6" fill="freeze" />
+ </rect>
+ </g>
+<!-- row 2 text -->
+ <g fill="&white;" font-family="'Humanist 521 BT', arial, sans-serif" font-size="18">
+ <text x="2" y="96" style="visibility:hidden;">Ever
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="4" fill="freeze" />
+ </text>
+ <text x="44" y="96" style="visibility:hidden;">to
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="5" fill="freeze" />
+ </text>
+ <text x="64" y="96" style="visibility:hidden;">thee,
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="6" fill="freeze" />
+ </text>
+ </g>
+ </g>
+<!-- row 3-->
+ <g>
+ <animateMotion from="0,-30" to="0,-60" begin="4" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-60" to="0,-80" begin="7" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-80" to="0,-100" begin="10" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-100" to="0,-120" begin="13" dur="0.3" fill="freeze"/>
+<!-- row 3 regions -->
+ <g style="visibility:hidden;" fill="&black;">
+ <rect x="1" y="100" width="62" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="7" fill="freeze" />
+ </rect>
+ <rect x="63" y="100" width="20" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="8" fill="freeze" />
+ </rect>
+ <rect x="83" y="100" width="27" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="9" fill="freeze" />
+ </rect>
+ </g>
+<!-- row 3 text -->
+ <g fill="&white;" font-family="'Humanist 521 BT', arial, sans-serif" font-size="18">
+ <text x="2" y="116" style="visibility:hidden;">Faithful
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="7" fill="freeze" />
+ </text>
+ <text x="64" y="116" style="visibility:hidden;">I'll
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="8" fill="freeze" />
+ </text>
+ <text x="84" y="116" style="visibility:hidden;">be,
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="9" fill="freeze" />
+ </text>
+ </g>
+ </g>
+<!-- row 4 -->
+ <g>
+ <animateMotion from="0,-40" to="0,-60" begin="10" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-60" to="0,-80" begin="13" dur="0.3" fill="freeze"/>
+ <animateMotion from="0,-80" to="0,-100" begin="16" dur="0.3" fill="freeze"/>
+-->
+<!-- row 4 regions -->
+ <g style="visibility:hidden;" fill="&black;">
+ <rect x="1" y="80" width="37" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="10" fill="freeze" />
+ </rect>
+ <rect x="38" y="80" width="58" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="11" fill="freeze" />
+ </rect>
+ <rect x="96" y="80" width="36" height="20">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="12" fill="freeze" />
+ </rect>
+ </g>
+<!-- row 4 text -->
+ <g fill="&white;" font-family="'Humanist 521 BT', arial, sans-serif" font-size="18">
+ <text x="2" y="95" style="visibility:hidden;">Five
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="10" fill="freeze" />
+ </text>
+ <text x="40" y="95" style="visibility:hidden;">o'clock
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="11" fill="freeze" />
+ </text>
+ <text x="99" y="95" style="visibility:hidden;">tea!
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="12" fill="freeze" />
+ </text>
+ </g>
+</g>
+ </svg>
+</svg>
Binary file old/dfxp/images/dynamicFlow_snake_0.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_1.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_10.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_11.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_12.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_13.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_14.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_15.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_2.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_3.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_4.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_5.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_6.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_7.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_8.png has changed
Binary file old/dfxp/images/dynamicFlow_snake_9.png has changed
Binary file old/dfxp/images/eh.png has changed
Binary file old/dfxp/images/extent.png has changed
Binary file old/dfxp/images/fontFamily.png has changed
Binary file old/dfxp/images/fontSize.png has changed
Binary file old/dfxp/images/fontStyle.png has changed
Binary file old/dfxp/images/fontWeight.png has changed
Binary file old/dfxp/images/ga.png has changed
Binary file old/dfxp/images/gf.png has changed
Binary file old/dfxp/images/lineHeight.png has changed
Binary file old/dfxp/images/md.png has changed
Binary file old/dfxp/images/model.png has changed
Binary file old/dfxp/images/opacity_0.png has changed
Binary file old/dfxp/images/opacity_1.png has changed
Binary file old/dfxp/images/opacity_2.png has changed
Binary file old/dfxp/images/opacity_3.png has changed
Binary file old/dfxp/images/opacity_4.png has changed
Binary file old/dfxp/images/origin.png has changed
Binary file old/dfxp/images/overflow.png has changed
Binary file old/dfxp/images/padding.png has changed
Binary file old/dfxp/images/sh.png has changed
Binary file old/dfxp/images/streaming.png has changed
Binary file old/dfxp/images/subtitle1.png has changed
Binary file old/dfxp/images/subtitle2.png has changed
Binary file old/dfxp/images/subtitle3.png has changed
Binary file old/dfxp/images/subtitle4.png has changed
Binary file old/dfxp/images/subtitle5.png has changed
Binary file old/dfxp/images/subtitle6.png has changed
Binary file old/dfxp/images/subtitle7.png has changed
Binary file old/dfxp/images/subtitle8.png has changed
Binary file old/dfxp/images/subtitle9.png has changed
Binary file old/dfxp/images/textAlign.png has changed
Binary file old/dfxp/images/textDecoration.png has changed
Binary file old/dfxp/images/textOutline.png has changed
Binary file old/dfxp/images/tm.png has changed
Binary file old/dfxp/images/unicodeBidi.png has changed
Binary file old/dfxp/images/visibility_0.png has changed
Binary file old/dfxp/images/visibility_1.png has changed
Binary file old/dfxp/images/visibility_2.png has changed
Binary file old/dfxp/images/visibility_3.png has changed
Binary file old/dfxp/images/wrapOption.png has changed
Binary file old/dfxp/images/writingMode.png has changed
Binary file old/dfxp/images/zIndex.png has changed
Binary file old/dfxp/implementations/Implementation-XFSI-DFXPViewer.xls has changed
Binary file old/dfxp/implementations/ImplementationTemplate.xls has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/doesc.bat Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,17 @@
+@echo off
+xe -q -v ttaf1-dfxp-animation.rnc
+xe -q -v ttaf1-dfxp-classes.rnc
+xe -q -v ttaf1-dfxp-content.rnc
+xe -q -v ttaf1-dfxp-core-attribs.rnc
+xe -q -v ttaf1-dfxp-datatypes.rnc
+xe -q -v ttaf1-dfxp-document.rnc
+xe -q -v ttaf1-dfxp-head.rnc
+xe -q -v ttaf1-dfxp-metadata.rnc
+xe -q -v ttaf1-dfxp-metadata-items.rnc
+xe -q -v ttaf1-dfxp-metadata-attribs.rnc
+xe -q -v ttaf1-dfxp-parameter-attribs.rnc
+xe -q -v ttaf1-dfxp-styling-attribs.rnc
+xe -q -v ttaf1-dfxp-styling.rnc
+xe -q -v ttaf1-dfxp-layout.rnc
+xe -q -v ttaf1-dfxp-timing-attribs.rnc
+xe -q -v ttaf1-dfxp.rnc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/jvp.bat Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,2 @@
+@echo off
+java -jar c:\work\jing\bin\jing.jar -c ttaf1-dfxp.rnc
\ No newline at end of file
Binary file old/dfxp/rnc/schema.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-animation.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,30 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Animation Module .......................................
+# .......................................................................
+
+# set - discrete animation
+TTAF.set =
+ element set {
+ TTAF.set.attlist,
+ TTAF.set.content
+ }
+
+TTAF.set.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Timed.attrib.class,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+
+TTAF.set.content.extra = empty
+TTAF.set.content =
+ (TTAF.Metadata.class*,
+ TTAF.set.content.extra*)
+
+TTAF.Animation.extra = empty
+TTAF.Animation.class |=
+ TTAF.set |
+ TTAF.Animation.extra
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-animation.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,30 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Animation Module .......................................
+# .......................................................................
+
+# set - discrete animation
+TTAF.set =
+ element set {
+ TTAF.set.attlist,
+ TTAF.set.content
+ }
+
+TTAF.set.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Timed.attrib.class,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+
+TTAF.set.content.extra = empty
+TTAF.set.content =
+ (TTAF.Metadata.class*,
+ TTAF.set.content.extra*)
+
+TTAF.Animation.extra = empty
+TTAF.Animation.class |=
+ TTAF.set |
+ TTAF.Animation.extra
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-classes.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Class Declarations Module ..............................
+# .......................................................................
+
+# attribute group classes
+TTAF.Core.attrib.class = empty
+TTAF.Metadata.attrib.class = empty
+TTAF.Parameter.attrib.class = empty
+TTAF.RegionBinding.attrib.class = empty
+TTAF.StyleBinding.attrib.class = empty
+TTAF.Styled.attrib.class = empty
+TTAF.Styling.attrib.class = empty
+TTAF.Timed.attrib.class = empty
+TTAF.TimedContainer.attrib.class = empty
+TTAF.TimingInterval.attrib.class = empty
+
+# element group classes
+TTAF.Animation.class = empty
+TTAF.Block.class = empty
+TTAF.BlockNoDiv.class = empty
+TTAF.Inline.class = empty
+TTAF.InlineNoSpan.class = empty
+TTAF.MetadataNoAgent.class = empty
+TTAF.Metadata.class = empty
+TTAF.MetadataItems.class = empty
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-classes.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Class Declarations Module ..............................
+# .......................................................................
+
+# attribute group classes
+TTAF.Core.attrib.class = empty
+TTAF.Metadata.attrib.class = empty
+TTAF.Parameter.attrib.class = empty
+TTAF.RegionBinding.attrib.class = empty
+TTAF.StyleBinding.attrib.class = empty
+TTAF.Styled.attrib.class = empty
+TTAF.Styling.attrib.class = empty
+TTAF.Timed.attrib.class = empty
+TTAF.TimedContainer.attrib.class = empty
+TTAF.TimingInterval.attrib.class = empty
+
+# element group classes
+TTAF.Animation.class = empty
+TTAF.Block.class = empty
+TTAF.BlockNoDiv.class = empty
+TTAF.Inline.class = empty
+TTAF.InlineNoSpan.class = empty
+TTAF.MetadataNoAgent.class = empty
+TTAF.Metadata.class = empty
+TTAF.MetadataItems.class = empty
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-content.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,121 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Content Module .........................................
+# .......................................................................
+
+# body - content body
+TTAF.body =
+ element body {
+ TTAF.body.attlist,
+ TTAF.body.content
+ }
+
+TTAF.body.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.body.content.extra = empty
+TTAF.body.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Block.class | TTAF.body.content.extra)*)
+
+# div - division
+TTAF.div =
+ element div {
+ TTAF.div.attlist,
+ TTAF.div.content
+ }
+
+TTAF.div.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.div.content.extra = empty
+TTAF.div.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Block.class | TTAF.div.content.extra)*)
+
+# p - paragraph
+TTAF.p =
+ element p {
+ TTAF.p.attlist,
+ TTAF.p.content
+ }
+
+TTAF.p.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.p.content.extra = empty
+TTAF.p.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Inline.class |
+ TTAF.p.content.extra)*)
+
+# span - intra-paragraph inline span
+TTAF.span =
+ element span {
+ TTAF.span.attlist,
+ TTAF.span.content
+ }
+
+TTAF.span.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.span.content.extra = empty
+TTAF.span.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Inline.class |
+ TTAF.span.content.extra)*)
+
+# br - manual line break
+TTAF.br =
+ element br {
+ TTAF.br.attlist,
+ TTAF.br.content
+ }
+
+TTAF.br.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.Styled.attrib.class
+
+TTAF.br.content.extra = empty
+TTAF.br.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ TTAF.br.content.extra*)
+
+# Block.class
+TTAF.Block.extra = empty
+TTAF.BlockNoDiv.class |=
+ TTAF.p | TTAF.Block.extra
+TTAF.Block.class |=
+ TTAF.div | TTAF.BlockNoDiv.class
+
+# Inline.class
+TTAF.Inline.extra = empty
+TTAF.InlineNoSpan.class |=
+ text | TTAF.br | TTAF.Inline.extra
+TTAF.Inline.class |=
+ TTAF.span | TTAF.InlineNoSpan.class
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-content.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,121 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Content Module .........................................
+# .......................................................................
+
+# body - content body
+TTAF.body =
+ element body {
+ TTAF.body.attlist,
+ TTAF.body.content
+ }
+
+TTAF.body.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.body.content.extra = empty
+TTAF.body.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Block.class | TTAF.body.content.extra)*)
+
+# div - division
+TTAF.div =
+ element div {
+ TTAF.div.attlist,
+ TTAF.div.content
+ }
+
+TTAF.div.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.div.content.extra = empty
+TTAF.div.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Block.class | TTAF.div.content.extra)*)
+
+# p - paragraph
+TTAF.p =
+ element p {
+ TTAF.p.attlist,
+ TTAF.p.content
+ }
+
+TTAF.p.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.p.content.extra = empty
+TTAF.p.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Inline.class |
+ TTAF.p.content.extra)*)
+
+# span - intra-paragraph inline span
+TTAF.span =
+ element span {
+ TTAF.span.attlist,
+ TTAF.span.content
+ }
+
+TTAF.span.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.RegionBinding.attrib.class,
+ TTAF.Styled.attrib.class,
+ TTAF.TimedContainer.attrib.class
+
+TTAF.span.content.extra = empty
+TTAF.span.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ (TTAF.Inline.class |
+ TTAF.span.content.extra)*)
+
+# br - manual line break
+TTAF.br =
+ element br {
+ TTAF.br.attlist,
+ TTAF.br.content
+ }
+
+TTAF.br.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.Metadata.attrib.class,
+ TTAF.Styled.attrib.class
+
+TTAF.br.content.extra = empty
+TTAF.br.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ TTAF.br.content.extra*)
+
+# Block.class
+TTAF.Block.extra = empty
+TTAF.BlockNoDiv.class |=
+ TTAF.p | TTAF.Block.extra
+TTAF.Block.class |=
+ TTAF.div | TTAF.BlockNoDiv.class
+
+# Inline.class
+TTAF.Inline.extra = empty
+TTAF.InlineNoSpan.class |=
+ text | TTAF.br | TTAF.Inline.extra
+TTAF.Inline.class |=
+ TTAF.span | TTAF.InlineNoSpan.class
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-core-attribs.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,34 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Core Attributes Module .................................
+# .......................................................................
+
+TTAF.id.attrib
+ = attribute xml:id { xsd:ID }?
+
+TTAF.lang.attrib
+ = attribute xml:lang { TTAF.LanguageCode.datatype }?
+
+TTAF.lang.required.attrib
+ = attribute xml:lang { TTAF.LanguageCode.datatype }
+
+TTAF.space.attrib
+ = attribute xml:space { TTAF.XMLSpace.datatype }?
+
+TTAF.Core.extra.attrib
+ = empty
+
+TTAF.Core.attrib.class &=
+ TTAF.id.attrib,
+ TTAF.lang.attrib,
+ TTAF.space.attrib,
+ TTAF.Core.extra.attrib
+
+TTAF.Core.required.attrib.class &=
+ TTAF.id.attrib,
+ TTAF.lang.required.attrib,
+ TTAF.space.attrib,
+ TTAF.Core.extra.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-core-attribs.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,34 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Core Attributes Module .................................
+# .......................................................................
+
+TTAF.id.attrib
+ = attribute xml:id { xsd:ID }?
+
+TTAF.lang.attrib
+ = attribute xml:lang { TTAF.LanguageCode.datatype }?
+
+TTAF.lang.required.attrib
+ = attribute xml:lang { TTAF.LanguageCode.datatype }
+
+TTAF.space.attrib
+ = attribute xml:space { TTAF.XMLSpace.datatype }?
+
+TTAF.Core.extra.attrib
+ = empty
+
+TTAF.Core.attrib.class &=
+ TTAF.id.attrib,
+ TTAF.lang.attrib,
+ TTAF.space.attrib,
+ TTAF.Core.extra.attrib
+
+TTAF.Core.required.attrib.class &=
+ TTAF.id.attrib,
+ TTAF.lang.required.attrib,
+ TTAF.space.attrib,
+ TTAF.Core.extra.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-datatypes.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,224 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Datatypes Module .......................................
+# .......................................................................
+
+TTAF.Alpha.datatype =
+ xsd:float { minInclusive = "0" maxInclusive = "1" }
+
+TTAF.Agent.datatype =
+ xsd:IDREFS
+
+TTAF.CellResolution.datatype =
+ string
+
+TTAF.ClockMode.datatype =
+ "local" |
+ "gps" |
+ "utc"
+
+TTAF.Color.datatype =
+ string
+
+TTAF.Direction.datatype =
+ "ltr" |
+ "rtl" |
+ "inherit"
+
+TTAF.Display.datatype =
+ "auto" |
+ "none" |
+ "inherit"
+
+TTAF.DisplayAlign.datatype =
+ "before" |
+ "center" |
+ "after" |
+ "inherit"
+
+TTAF.DynamicFlow.datatype =
+ string
+
+TTAF.Extent.datatype =
+ string
+
+TTAF.FontFamily.datatype =
+ string
+
+TTAF.FontSize.datatype =
+ string
+
+TTAF.FontStyle.datatype =
+ "normal" |
+ "italic" |
+ "oblique" |
+ "reverseOblique" |
+ "inherit"
+
+TTAF.FontWeight.datatype =
+ "normal" |
+ "bold" |
+ "inherit"
+
+TTAF.FrameRate.datatype =
+ xsd:nonNegativeInteger
+
+TTAF.FrameRateMultiplier.datatype =
+ xsd:string { pattern = "\p{Nd}+(\s*:\s*\p{Nd}+)?" }
+
+TTAF.LanguageCode.datatype =
+ xsd:NMTOKEN
+
+TTAF.LineHeight.datatype =
+ string
+
+TTAF.MarkerMode.datatype =
+ "continuous" |
+ "discontinuous"
+
+TTAF.MetadataAgentType.datatype =
+ "person" |
+ "character" |
+ "group" |
+ "organization" |
+ "other"
+
+TTAF.MetadataNameType.datatype =
+ "full" |
+ "family" |
+ "given" |
+ "alias" |
+ "other"
+
+TTAF.MetadataRoleBaseType.datatype =
+ "action" |
+ "caption" |
+ "dialog" |
+ "expletive" |
+ "kinesic" |
+ "lyrics" |
+ "music" |
+ "narration" |
+ "quality" |
+ "sound" |
+ "source" |
+ "suppressed" |
+ "reproduction" |
+ "thought" |
+ "title" |
+ "transcription"
+
+TTAF.Opacity.datatype =
+ string
+
+TTAF.Origin.datatype =
+ string
+
+TTAF.Overflow.datatype =
+ "visible" |
+ "hidden" |
+ "scroll" |
+ "inherit"
+
+TTAF.Padding.datatype =
+ string
+
+TTAF.PixelAspectRatio.datatype =
+ xsd:string { pattern = "\p{Nd}+\s*:\s*\p{Nd}+" }
+
+TTAF.Profile.datatype =
+ TTAF.URI.datatype
+
+TTAF.Role.datatype =
+ xsd:NMTOKEN
+
+TTAF.ShowBackground.datatype =
+ "always" |
+ "whenActive" |
+ "inherit"
+
+TTAF.SMPTEMode.datatype =
+ "dropNTSC" |
+ "dropPAL" |
+ "nonDrop"
+
+TTAF.SubFrameRate.datatype =
+ xsd:positiveInteger
+
+TTAF.TextAlign.datatype =
+ "left" |
+ "center" |
+ "right" |
+ "start" |
+ "end" |
+ "inherit"
+
+TTAF.TextDecoration.datatype =
+ "none" |
+ "underline" |
+ "noUnderline" |
+ "overline" |
+ "noOverline" |
+ "lineThrough" |
+ "noLineThrough" |
+ "inherit"
+
+TTAF.TextOutline.datatype =
+ string
+
+TTAF.TickRate.datatype =
+ xsd:positiveInteger
+
+TTAF.TimeBase.datatype =
+ "media" |
+ "smpte" |
+ "clock"
+
+TTAF.TimeContainer.datatype =
+ "par" |
+ "seq"
+
+TTAF.TimeCoordinate.datatype =
+ string
+
+TTAF.TimeDuration.datatype =
+ string
+
+TTAF.URI.datatype =
+ xsd:anyURI
+
+TTAF.UnicodeBidi.datatype =
+ "normal" |
+ "embed" |
+ "bidiOverride" |
+ "inherit"
+
+TTAF.Visibility.datatype =
+ "hidden" |
+ "visible" |
+ "inherit"
+
+TTAF.WrapOption.datatype =
+ "wrap" |
+ "noWrap" |
+ "inherit"
+
+TTAF.WritingMode.datatype =
+ "lrtb" |
+ "rltb" |
+ "tbrl" |
+ "tblr" |
+ "lr" |
+ "rl" |
+ "tb" |
+ "inherit"
+
+TTAF.XMLSpace.datatype =
+ "default" |
+ "preserve"
+
+TTAF.ZIndex.datatype =
+ string
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-datatypes.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,224 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Datatypes Module .......................................
+# .......................................................................
+
+TTAF.Alpha.datatype =
+ xsd:float { minInclusive = "0" maxInclusive = "1" }
+
+TTAF.Agent.datatype =
+ xsd:IDREFS
+
+TTAF.CellResolution.datatype =
+ string
+
+TTAF.ClockMode.datatype =
+ "local" |
+ "gps" |
+ "utc"
+
+TTAF.Color.datatype =
+ string
+
+TTAF.Direction.datatype =
+ "ltr" |
+ "rtl" |
+ "inherit"
+
+TTAF.Display.datatype =
+ "auto" |
+ "none" |
+ "inherit"
+
+TTAF.DisplayAlign.datatype =
+ "before" |
+ "center" |
+ "after" |
+ "inherit"
+
+TTAF.DynamicFlow.datatype =
+ string
+
+TTAF.Extent.datatype =
+ string
+
+TTAF.FontFamily.datatype =
+ string
+
+TTAF.FontSize.datatype =
+ string
+
+TTAF.FontStyle.datatype =
+ "normal" |
+ "italic" |
+ "oblique" |
+ "reverseOblique" |
+ "inherit"
+
+TTAF.FontWeight.datatype =
+ "normal" |
+ "bold" |
+ "inherit"
+
+TTAF.FrameRate.datatype =
+ xsd:nonNegativeInteger
+
+TTAF.FrameRateMultiplier.datatype =
+ xsd:string { pattern = "\p{Nd}+(\s*:\s*\p{Nd}+)?" }
+
+TTAF.LanguageCode.datatype =
+ xsd:NMTOKEN
+
+TTAF.LineHeight.datatype =
+ string
+
+TTAF.MarkerMode.datatype =
+ "continuous" |
+ "discontinuous"
+
+TTAF.MetadataAgentType.datatype =
+ "person" |
+ "character" |
+ "group" |
+ "organization" |
+ "other"
+
+TTAF.MetadataNameType.datatype =
+ "full" |
+ "family" |
+ "given" |
+ "alias" |
+ "other"
+
+TTAF.MetadataRoleBaseType.datatype =
+ "action" |
+ "caption" |
+ "dialog" |
+ "expletive" |
+ "kinesic" |
+ "lyrics" |
+ "music" |
+ "narration" |
+ "quality" |
+ "sound" |
+ "source" |
+ "suppressed" |
+ "reproduction" |
+ "thought" |
+ "title" |
+ "transcription"
+
+TTAF.Opacity.datatype =
+ string
+
+TTAF.Origin.datatype =
+ string
+
+TTAF.Overflow.datatype =
+ "visible" |
+ "hidden" |
+ "scroll" |
+ "inherit"
+
+TTAF.Padding.datatype =
+ string
+
+TTAF.PixelAspectRatio.datatype =
+ xsd:string { pattern = "\p{Nd}+\s*:\s*\p{Nd}+" }
+
+TTAF.Profile.datatype =
+ TTAF.URI.datatype
+
+TTAF.Role.datatype =
+ xsd:NMTOKEN
+
+TTAF.ShowBackground.datatype =
+ "always" |
+ "whenActive" |
+ "inherit"
+
+TTAF.SMPTEMode.datatype =
+ "dropNTSC" |
+ "dropPAL" |
+ "nonDrop"
+
+TTAF.SubFrameRate.datatype =
+ xsd:positiveInteger
+
+TTAF.TextAlign.datatype =
+ "left" |
+ "center" |
+ "right" |
+ "start" |
+ "end" |
+ "inherit"
+
+TTAF.TextDecoration.datatype =
+ "none" |
+ "underline" |
+ "noUnderline" |
+ "overline" |
+ "noOverline" |
+ "lineThrough" |
+ "noLineThrough" |
+ "inherit"
+
+TTAF.TextOutline.datatype =
+ string
+
+TTAF.TickRate.datatype =
+ xsd:positiveInteger
+
+TTAF.TimeBase.datatype =
+ "media" |
+ "smpte" |
+ "clock"
+
+TTAF.TimeContainer.datatype =
+ "par" |
+ "seq"
+
+TTAF.TimeCoordinate.datatype =
+ string
+
+TTAF.TimeDuration.datatype =
+ string
+
+TTAF.URI.datatype =
+ xsd:anyURI
+
+TTAF.UnicodeBidi.datatype =
+ "normal" |
+ "embed" |
+ "bidiOverride" |
+ "inherit"
+
+TTAF.Visibility.datatype =
+ "hidden" |
+ "visible" |
+ "inherit"
+
+TTAF.WrapOption.datatype =
+ "wrap" |
+ "noWrap" |
+ "inherit"
+
+TTAF.WritingMode.datatype =
+ "lrtb" |
+ "rltb" |
+ "tbrl" |
+ "tblr" |
+ "lr" |
+ "rl" |
+ "tb" |
+ "inherit"
+
+TTAF.XMLSpace.datatype =
+ "default" |
+ "preserve"
+
+TTAF.ZIndex.datatype =
+ string
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-document.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,21 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Document Module ........................................
+# .......................................................................
+
+## tt - generic top-level document element type
+TTAF.tt =
+ element tt {
+ TTAF.tt.attlist,
+ TTAF.tt.content
+ }
+
+TTAF.tt.attlist &=
+ TTAF.Core.required.attrib.class,
+ TTAF.Parameter.attrib.class
+
+TTAF.tt.content =
+ (TTAF.head?, TTAF.body?)
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-document.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,21 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Document Module ........................................
+# .......................................................................
+
+## tt - generic top-level document element type
+TTAF.tt =
+ element tt {
+ TTAF.tt.attlist,
+ TTAF.tt.content
+ }
+
+TTAF.tt.attlist &=
+ TTAF.Core.required.attrib.class,
+ TTAF.Parameter.attrib.class
+
+TTAF.tt.content =
+ (TTAF.head?, TTAF.body?)
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-head.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,24 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Header Module ..........................................
+# .......................................................................
+
+# head - generic header
+TTAF.head =
+ element head {
+ TTAF.head.attlist,
+ TTAF.head.content
+ }
+
+TTAF.head.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.head.content.extra = empty
+TTAF.head.content =
+ (TTAF.Metadata.class*,
+ TTAF.styling?,
+ TTAF.layout?,
+ TTAF.head.content.extra*)
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-head.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,24 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Header Module ..........................................
+# .......................................................................
+
+# head - generic header
+TTAF.head =
+ element head {
+ TTAF.head.attlist,
+ TTAF.head.content
+ }
+
+TTAF.head.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.head.content.extra = empty
+TTAF.head.content =
+ (TTAF.Metadata.class*,
+ TTAF.styling?,
+ TTAF.layout?,
+ TTAF.head.content.extra*)
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-layout.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,52 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Layout Module ..........................................
+# .......................................................................
+
+# region reference attribute; must reference /head/layout/region
+TTAF.region.attrib
+ = attribute region { xsd:IDREF }?
+
+# region binding attribute class
+TTAF.RegionBinding.attrib.class &=
+ TTAF.region.attrib
+
+# layout - generic layout container
+TTAF.layout =
+ element layout {
+ TTAF.layout.attlist,
+ TTAF.layout.content
+ }
+
+TTAF.layout.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.layout.content.extra = empty
+TTAF.layout.content =
+ (TTAF.Metadata.class*,
+ TTAF.layout.region*,
+ TTAF.layout.content.extra*)
+
+# region - region declaration
+TTAF.layout.region =
+ element region {
+ TTAF.layout.region.attlist,
+ TTAF.layout.region.content
+ }
+
+TTAF.layout.region.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.TimedContainer.attrib.class,
+ TTAF.style.attrib,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+
+TTAF.layout.region.content.extra = empty
+TTAF.layout.region.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ TTAF.styling.style*,
+ TTAF.layout.region.content.extra*)
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-layout.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,52 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Layout Module ..........................................
+# .......................................................................
+
+# region reference attribute; must reference /head/layout/region
+TTAF.region.attrib
+ = attribute region { xsd:IDREF }?
+
+# region binding attribute class
+TTAF.RegionBinding.attrib.class &=
+ TTAF.region.attrib
+
+# layout - generic layout container
+TTAF.layout =
+ element layout {
+ TTAF.layout.attlist,
+ TTAF.layout.content
+ }
+
+TTAF.layout.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.layout.content.extra = empty
+TTAF.layout.content =
+ (TTAF.Metadata.class*,
+ TTAF.layout.region*,
+ TTAF.layout.content.extra*)
+
+# region - region declaration
+TTAF.layout.region =
+ element region {
+ TTAF.layout.region.attlist,
+ TTAF.layout.region.content
+ }
+
+TTAF.layout.region.attlist &=
+ TTAF.Core.attrib.class,
+ TTAF.TimedContainer.attrib.class,
+ TTAF.style.attrib,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+
+TTAF.layout.region.content.extra = empty
+TTAF.layout.region.content =
+ (TTAF.Metadata.class*,
+ TTAF.Animation.class*,
+ TTAF.styling.style*,
+ TTAF.layout.region.content.extra*)
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-metadata-attribs.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,30 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Attributes Module ..............................
+# .......................................................................
+
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace ttm = "http://www.w3.org/2006/10/ttaf1#metadata"
+namespace ttmx = "http://www.w3.org/2006/10/ttaf1#metadata-extension"
+namespace local = ""
+
+# Standard Metadata Attributes
+
+TTAF.agent.attrib
+ = attribute ttm:agent { TTAF.Agent.datatype }?
+TTAF.role.attrib
+ = attribute ttm:role { TTAF.Role.datatype }?
+
+# Extension Metadata Attributes
+
+TTAF.Metadata.Extension.attrib =
+ attribute ttmx:* { text }
+
+# Metadata Attribute Class
+
+TTAF.Metadata.attrib.class &=
+ TTAF.agent.attrib,
+ TTAF.role.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-metadata-attribs.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,30 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Attributes Module ..............................
+# .......................................................................
+
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace ttm = "http://www.w3.org/2006/10/ttaf1#metadata"
+namespace ttmx = "http://www.w3.org/2006/10/ttaf1#metadata-extension"
+namespace local = ""
+
+# Standard Metadata Attributes
+
+TTAF.agent.attrib
+ = attribute ttm:agent { TTAF.Agent.datatype }?
+TTAF.role.attrib
+ = attribute ttm:role { TTAF.Role.datatype }?
+
+# Extension Metadata Attributes
+
+TTAF.Metadata.Extension.attrib =
+ attribute ttmx:* { text }
+
+# Metadata Attribute Class
+
+TTAF.Metadata.attrib.class &=
+ TTAF.agent.attrib,
+ TTAF.role.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-metadata-items.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,102 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Items Module ......................................
+# .......................................................................
+
+namespace ttm = "http://www.w3.org/2006/10/ttaf1#metadata"
+namespace ttmx = "http://www.w3.org/2006/10/ttaf1#metadata-extension"
+
+## actor - specifies actor
+TTAF.meta.actor =
+ element ttm:actor {
+ TTAF.meta.actor.attlist,
+ TTAF.meta.actor.content
+ }
+
+TTAF.meta.actor.attlist &=
+ TTAF.Core.attrib.class,
+ attribute agent { xsd:IDREF }
+
+TTAF.meta.actor.content.extra = empty
+TTAF.meta.actor.content = empty
+
+## agent - specifies agent
+TTAF.meta.agent =
+ element ttm:agent {
+ TTAF.meta.agent.attlist,
+ TTAF.meta.agent.content
+ }
+
+TTAF.meta.agent.attlist &=
+ TTAF.Core.attrib.class,
+ attribute type { TTAF.MetadataAgentType.datatype }
+
+TTAF.meta.agent.content.extra = empty
+TTAF.meta.agent.content =
+ (TTAF.meta.name*,
+ TTAF.meta.actor?,
+ TTAF.meta.agent.content.extra*)
+
+## copyright - specifies copyright statement
+TTAF.meta.copyright =
+ element ttm:copyright {
+ TTAF.meta.copyright.attlist,
+ TTAF.meta.copyright.content
+ }
+
+TTAF.meta.copyright.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.meta.copyright.content.extra = empty
+TTAF.meta.copyright.content = text
+
+## desc - specifies description
+TTAF.meta.desc =
+ element ttm:desc {
+ TTAF.meta.desc.attlist,
+ TTAF.meta.desc.content
+ }
+
+TTAF.meta.desc.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.meta.desc.content.extra = empty
+TTAF.meta.desc.content = text
+
+## name - specifies name
+TTAF.meta.name =
+ element ttm:name {
+ TTAF.meta.name.attlist,
+ TTAF.meta.name.content
+ }
+
+TTAF.meta.name.attlist &=
+ TTAF.Core.attrib.class,
+ attribute type { TTAF.MetadataNameType.datatype }
+
+TTAF.meta.name.content.extra = empty
+TTAF.meta.name.content = text
+
+## title - describes title
+TTAF.meta.title =
+ element ttm:title {
+ TTAF.meta.title.attlist,
+ TTAF.meta.title.content
+ }
+
+TTAF.meta.title.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.meta.title.content.extra = empty
+TTAF.meta.title.content = text
+
+## MetadataItems.class
+TTAF.MetadataItems.extra = empty
+TTAF.MetadataItems.class |=
+ TTAF.meta.title |
+ TTAF.meta.desc |
+ TTAF.meta.copyright |
+ TTAF.MetadataItems.extra
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-metadata-items.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,102 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Items Module ......................................
+# .......................................................................
+
+namespace ttm = "http://www.w3.org/2006/10/ttaf1#metadata"
+namespace ttmx = "http://www.w3.org/2006/10/ttaf1#metadata-extension"
+
+## actor - specifies actor
+TTAF.meta.actor =
+ element ttm:actor {
+ TTAF.meta.actor.attlist,
+ TTAF.meta.actor.content
+ }
+
+TTAF.meta.actor.attlist &=
+ TTAF.Core.attrib.class,
+ attribute agent { xsd:IDREF }
+
+TTAF.meta.actor.content.extra = empty
+TTAF.meta.actor.content = empty
+
+## agent - specifies agent
+TTAF.meta.agent =
+ element ttm:agent {
+ TTAF.meta.agent.attlist,
+ TTAF.meta.agent.content
+ }
+
+TTAF.meta.agent.attlist &=
+ TTAF.Core.attrib.class,
+ attribute type { TTAF.MetadataAgentType.datatype }
+
+TTAF.meta.agent.content.extra = empty
+TTAF.meta.agent.content =
+ (TTAF.meta.name*,
+ TTAF.meta.actor?,
+ TTAF.meta.agent.content.extra*)
+
+## copyright - specifies copyright statement
+TTAF.meta.copyright =
+ element ttm:copyright {
+ TTAF.meta.copyright.attlist,
+ TTAF.meta.copyright.content
+ }
+
+TTAF.meta.copyright.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.meta.copyright.content.extra = empty
+TTAF.meta.copyright.content = text
+
+## desc - specifies description
+TTAF.meta.desc =
+ element ttm:desc {
+ TTAF.meta.desc.attlist,
+ TTAF.meta.desc.content
+ }
+
+TTAF.meta.desc.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.meta.desc.content.extra = empty
+TTAF.meta.desc.content = text
+
+## name - specifies name
+TTAF.meta.name =
+ element ttm:name {
+ TTAF.meta.name.attlist,
+ TTAF.meta.name.content
+ }
+
+TTAF.meta.name.attlist &=
+ TTAF.Core.attrib.class,
+ attribute type { TTAF.MetadataNameType.datatype }
+
+TTAF.meta.name.content.extra = empty
+TTAF.meta.name.content = text
+
+## title - describes title
+TTAF.meta.title =
+ element ttm:title {
+ TTAF.meta.title.attlist,
+ TTAF.meta.title.content
+ }
+
+TTAF.meta.title.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.meta.title.content.extra = empty
+TTAF.meta.title.content = text
+
+## MetadataItems.class
+TTAF.MetadataItems.extra = empty
+TTAF.MetadataItems.class |=
+ TTAF.meta.title |
+ TTAF.meta.desc |
+ TTAF.meta.copyright |
+ TTAF.MetadataItems.extra
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-metadata.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,42 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Module ........................................
+# .......................................................................
+
+# namespace prefix bindings
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace local = ""
+
+# meta - generic metadata
+TTAF.metadata =
+ element metadata {
+ TTAF.metadata.attlist,
+ TTAF.metadata.content
+ }
+
+TTAF.metadata.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.External.class =
+ element * - tt:* {
+ ( attribute * - ( xml:* | local:* ) { text }
+ | text
+ | TTAF.External.class
+ )*
+ }
+
+TTAF.metadata.content.extra = empty
+TTAF.metadata.content =
+ (TTAF.External.class |
+ TTAF.metadata.content.extra)*
+
+TTAF.MetadataNoAgent.class |=
+ TTAF.MetadataItems.class |
+ TTAF.metadata
+
+TTAF.Metadata.class |=
+ TTAF.MetadataNoAgent.class |
+ TTAF.meta.agent
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-metadata.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,42 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Metadata Module ........................................
+# .......................................................................
+
+# namespace prefix bindings
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace local = ""
+
+# meta - generic metadata
+TTAF.metadata =
+ element metadata {
+ TTAF.metadata.attlist,
+ TTAF.metadata.content
+ }
+
+TTAF.metadata.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.External.class =
+ element * - tt:* {
+ ( attribute * - ( xml:* | local:* ) { text }
+ | text
+ | TTAF.External.class
+ )*
+ }
+
+TTAF.metadata.content.extra = empty
+TTAF.metadata.content =
+ (TTAF.External.class |
+ TTAF.metadata.content.extra)*
+
+TTAF.MetadataNoAgent.class |=
+ TTAF.MetadataItems.class |
+ TTAF.metadata
+
+TTAF.Metadata.class |=
+ TTAF.MetadataNoAgent.class |
+ TTAF.meta.agent
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-parameter-attribs.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,49 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Parameter Attributes Module ............................
+# .......................................................................
+
+namespace ttp = "http://www.w3.org/2006/10/ttaf1#parameter"
+
+# Standard Metadata Attributes
+
+TTAF.cellResolution.attrib
+ = attribute ttp:cellResolution { TTAF.CellResolution.datatype }?
+TTAF.clockMode.attrib
+ = attribute ttp:clockMode { TTAF.ClockMode.datatype }?
+TTAF.frameRate.attrib
+ = attribute ttp:frameRate { TTAF.FrameRate.datatype }?
+TTAF.frameRateMultiplier.attrib
+ = attribute ttp:frameRateMultiplier { TTAF.FrameRateMultiplier.datatype }?
+TTAF.markerMode.attrib
+ = attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
+TTAF.profile.attrib
+ = attribute ttp:profile { TTAF.Profile.datatype }?
+TTAF.pixelAspectRatio.attrib
+ = attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
+TTAF.smpteMode.attrib
+ = attribute ttp:smpteMode { TTAF.SMPTEMode.datatype }?
+TTAF.subFrameRate.attrib
+ = attribute ttp:subFrameRate { TTAF.SubFrameRate.datatype }?
+TTAF.tickRate.attrib
+ = attribute ttp:tickRate { TTAF.TickRate.datatype }?
+TTAF.timeBase.attrib
+ = attribute ttp:timeBase { TTAF.TimeBase.datatype }?
+
+# Parameter Attribute Class
+
+TTAF.Parameter.attrib.class &=
+ TTAF.cellResolution.attrib,
+ TTAF.clockMode.attrib,
+ TTAF.frameRate.attrib,
+ TTAF.frameRateMultiplier.attrib,
+ TTAF.markerMode.attrib,
+ TTAF.pixelAspectRatio.attrib,
+ TTAF.profile.attrib,
+ TTAF.smpteMode.attrib,
+ TTAF.subFrameRate.attrib,
+ TTAF.tickRate.attrib,
+ TTAF.timeBase.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-parameter-attribs.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,49 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Parameter Attributes Module ............................
+# .......................................................................
+
+namespace ttp = "http://www.w3.org/2006/10/ttaf1#parameter"
+
+# Standard Metadata Attributes
+
+TTAF.cellResolution.attrib
+ = attribute ttp:cellResolution { TTAF.CellResolution.datatype }?
+TTAF.clockMode.attrib
+ = attribute ttp:clockMode { TTAF.ClockMode.datatype }?
+TTAF.frameRate.attrib
+ = attribute ttp:frameRate { TTAF.FrameRate.datatype }?
+TTAF.frameRateMultiplier.attrib
+ = attribute ttp:frameRateMultiplier { TTAF.FrameRateMultiplier.datatype }?
+TTAF.markerMode.attrib
+ = attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
+TTAF.profile.attrib
+ = attribute ttp:profile { TTAF.Profile.datatype }?
+TTAF.pixelAspectRatio.attrib
+ = attribute ttp:pixelAspectRatio { TTAF.PixelAspectRatio.datatype }?
+TTAF.smpteMode.attrib
+ = attribute ttp:smpteMode { TTAF.SMPTEMode.datatype }?
+TTAF.subFrameRate.attrib
+ = attribute ttp:subFrameRate { TTAF.SubFrameRate.datatype }?
+TTAF.tickRate.attrib
+ = attribute ttp:tickRate { TTAF.TickRate.datatype }?
+TTAF.timeBase.attrib
+ = attribute ttp:timeBase { TTAF.TimeBase.datatype }?
+
+# Parameter Attribute Class
+
+TTAF.Parameter.attrib.class &=
+ TTAF.cellResolution.attrib,
+ TTAF.clockMode.attrib,
+ TTAF.frameRate.attrib,
+ TTAF.frameRateMultiplier.attrib,
+ TTAF.markerMode.attrib,
+ TTAF.pixelAspectRatio.attrib,
+ TTAF.profile.attrib,
+ TTAF.smpteMode.attrib,
+ TTAF.subFrameRate.attrib,
+ TTAF.tickRate.attrib,
+ TTAF.timeBase.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-styling-attribs.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,112 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Styling Attributes Module ..............................
+# .......................................................................
+
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace tts = "http://www.w3.org/2006/10/ttaf1#style"
+namespace ttsx = "http://www.w3.org/2006/10/ttaf1#style-extension"
+namespace local = ""
+
+# Standard Style Attributes
+
+TTAF.backgroundColor.attrib
+ = attribute tts:backgroundColor { TTAF.Color.datatype }?
+TTAF.color.attrib
+ = attribute tts:color { TTAF.Color.datatype }?
+TTAF.direction.attrib
+ = attribute tts:direction { TTAF.Direction.datatype }?
+TTAF.display.attrib
+ = attribute tts:display { TTAF.Display.datatype }?
+TTAF.displayAlign.attrib
+ = attribute tts:displayAlign { TTAF.DisplayAlign.datatype }?
+TTAF.dynamicFlow.attrib
+ = attribute tts:dynamicFlow { TTAF.DynamicFlow.datatype }?
+TTAF.extent.attrib
+ = attribute tts:extent { TTAF.Extent.datatype }?
+TTAF.fontFamily.attrib
+ = attribute tts:fontFamily { TTAF.FontFamily.datatype }?
+TTAF.fontSize.attrib
+ = attribute tts:fontSize { TTAF.FontSize.datatype }?
+TTAF.fontStyle.attrib
+ = attribute tts:fontStyle { TTAF.FontStyle.datatype }?
+TTAF.fontWeight.attrib
+ = attribute tts:fontWeight { TTAF.FontWeight.datatype }?
+TTAF.lineHeight.attrib
+ = attribute tts:lineHeight { TTAF.LineHeight.datatype }?
+TTAF.opacity.attrib
+ = attribute tts:opacity { TTAF.Opacity.datatype }?
+TTAF.origin.attrib
+ = attribute tts:origin { TTAF.Origin.datatype }?
+TTAF.overflow.attrib
+ = attribute tts:overflow { TTAF.Overflow.datatype }?
+TTAF.padding.attrib
+ = attribute tts:padding { TTAF.Padding.datatype }?
+TTAF.showBackground.attrib
+ = attribute tts:showBackground { TTAF.ShowBackground.datatype }?
+TTAF.textAlign.attrib
+ = attribute tts:textAlign { TTAF.TextAlign.datatype }?
+TTAF.textDecoration.attrib
+ = attribute tts:textDecoration { TTAF.TextDecoration.datatype }?
+TTAF.textOutline.attrib
+ = attribute tts:textOutline { TTAF.TextOutline.datatype }?
+TTAF.unicodeBidi.attrib
+ = attribute tts:unicodeBidi { TTAF.UnicodeBidi.datatype }?
+TTAF.visibility.attrib
+ = attribute tts:visibility { TTAF.Visibility.datatype }?
+TTAF.wrapOption.attrib
+ = attribute tts:wrapOption { TTAF.WrapOption.datatype }?
+TTAF.writingMode.attrib
+ = attribute tts:writingMode { TTAF.WritingMode.datatype }?
+TTAF.zIndex.attrib
+ = attribute tts:zIndex { TTAF.ZIndex.datatype }?
+
+# Extension Style Attributes
+
+TTAF.Styling.Extension.attrib =
+ attribute ttsx:* { text }
+TTAF.Styling.ForeignExtension.attrib =
+ attribute * - ( tt:* | tts:* | ttsx:* | xml:* | local:* ) { text }
+
+# Styling Attribute Class
+
+TTAF.Styling.attrib.class &=
+ TTAF.backgroundColor.attrib,
+ TTAF.color.attrib,
+ TTAF.display.attrib,
+ TTAF.displayAlign.attrib,
+ TTAF.dynamicFlow.attrib,
+ TTAF.extent.attrib,
+ TTAF.fontFamily.attrib,
+ TTAF.fontSize.attrib,
+ TTAF.fontStyle.attrib,
+ TTAF.fontWeight.attrib,
+ TTAF.lineHeight.attrib,
+ TTAF.opacity.attrib,
+ TTAF.origin.attrib,
+ TTAF.overflow.attrib,
+ TTAF.padding.attrib,
+ TTAF.showBackground.attrib,
+ TTAF.textAlign.attrib,
+ TTAF.textDecoration.attrib,
+ TTAF.textOutline.attrib,
+ TTAF.visibility.attrib,
+ TTAF.wrapOption.attrib,
+ TTAF.writingMode.attrib,
+ TTAF.zIndex.attrib
+
+# Style Binding Attribute Class
+
+TTAF.StyleBinding.attrib.class &=
+ TTAF.style.attrib
+
+# Styled Content Attribute Class
+
+TTAF.Styled.extra.attrib = empty
+TTAF.Styled.attrib.class &=
+ TTAF.Styling.attrib.class,
+ TTAF.StyleBinding.attrib.class,
+ TTAF.Styled.extra.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-styling-attribs.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,112 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Styling Attributes Module ..............................
+# .......................................................................
+
+namespace tt = "http://www.w3.org/2006/10/ttaf1"
+namespace tts = "http://www.w3.org/2006/10/ttaf1#style"
+namespace ttsx = "http://www.w3.org/2006/10/ttaf1#style-extension"
+namespace local = ""
+
+# Standard Style Attributes
+
+TTAF.backgroundColor.attrib
+ = attribute tts:backgroundColor { TTAF.Color.datatype }?
+TTAF.color.attrib
+ = attribute tts:color { TTAF.Color.datatype }?
+TTAF.direction.attrib
+ = attribute tts:direction { TTAF.Direction.datatype }?
+TTAF.display.attrib
+ = attribute tts:display { TTAF.Display.datatype }?
+TTAF.displayAlign.attrib
+ = attribute tts:displayAlign { TTAF.DisplayAlign.datatype }?
+TTAF.dynamicFlow.attrib
+ = attribute tts:dynamicFlow { TTAF.DynamicFlow.datatype }?
+TTAF.extent.attrib
+ = attribute tts:extent { TTAF.Extent.datatype }?
+TTAF.fontFamily.attrib
+ = attribute tts:fontFamily { TTAF.FontFamily.datatype }?
+TTAF.fontSize.attrib
+ = attribute tts:fontSize { TTAF.FontSize.datatype }?
+TTAF.fontStyle.attrib
+ = attribute tts:fontStyle { TTAF.FontStyle.datatype }?
+TTAF.fontWeight.attrib
+ = attribute tts:fontWeight { TTAF.FontWeight.datatype }?
+TTAF.lineHeight.attrib
+ = attribute tts:lineHeight { TTAF.LineHeight.datatype }?
+TTAF.opacity.attrib
+ = attribute tts:opacity { TTAF.Opacity.datatype }?
+TTAF.origin.attrib
+ = attribute tts:origin { TTAF.Origin.datatype }?
+TTAF.overflow.attrib
+ = attribute tts:overflow { TTAF.Overflow.datatype }?
+TTAF.padding.attrib
+ = attribute tts:padding { TTAF.Padding.datatype }?
+TTAF.showBackground.attrib
+ = attribute tts:showBackground { TTAF.ShowBackground.datatype }?
+TTAF.textAlign.attrib
+ = attribute tts:textAlign { TTAF.TextAlign.datatype }?
+TTAF.textDecoration.attrib
+ = attribute tts:textDecoration { TTAF.TextDecoration.datatype }?
+TTAF.textOutline.attrib
+ = attribute tts:textOutline { TTAF.TextOutline.datatype }?
+TTAF.unicodeBidi.attrib
+ = attribute tts:unicodeBidi { TTAF.UnicodeBidi.datatype }?
+TTAF.visibility.attrib
+ = attribute tts:visibility { TTAF.Visibility.datatype }?
+TTAF.wrapOption.attrib
+ = attribute tts:wrapOption { TTAF.WrapOption.datatype }?
+TTAF.writingMode.attrib
+ = attribute tts:writingMode { TTAF.WritingMode.datatype }?
+TTAF.zIndex.attrib
+ = attribute tts:zIndex { TTAF.ZIndex.datatype }?
+
+# Extension Style Attributes
+
+TTAF.Styling.Extension.attrib =
+ attribute ttsx:* { text }
+TTAF.Styling.ForeignExtension.attrib =
+ attribute * - ( tt:* | tts:* | ttsx:* | xml:* | local:* ) { text }
+
+# Styling Attribute Class
+
+TTAF.Styling.attrib.class &=
+ TTAF.backgroundColor.attrib,
+ TTAF.color.attrib,
+ TTAF.display.attrib,
+ TTAF.displayAlign.attrib,
+ TTAF.dynamicFlow.attrib,
+ TTAF.extent.attrib,
+ TTAF.fontFamily.attrib,
+ TTAF.fontSize.attrib,
+ TTAF.fontStyle.attrib,
+ TTAF.fontWeight.attrib,
+ TTAF.lineHeight.attrib,
+ TTAF.opacity.attrib,
+ TTAF.origin.attrib,
+ TTAF.overflow.attrib,
+ TTAF.padding.attrib,
+ TTAF.showBackground.attrib,
+ TTAF.textAlign.attrib,
+ TTAF.textDecoration.attrib,
+ TTAF.textOutline.attrib,
+ TTAF.visibility.attrib,
+ TTAF.wrapOption.attrib,
+ TTAF.writingMode.attrib,
+ TTAF.zIndex.attrib
+
+# Style Binding Attribute Class
+
+TTAF.StyleBinding.attrib.class &=
+ TTAF.style.attrib
+
+# Styled Content Attribute Class
+
+TTAF.Styled.extra.attrib = empty
+TTAF.Styled.attrib.class &=
+ TTAF.Styling.attrib.class,
+ TTAF.StyleBinding.attrib.class,
+ TTAF.Styled.extra.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-styling.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,51 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Styling Module .........................................
+# .......................................................................
+
+# style reference attribute; must reference /tt/head/styling/style
+TTAF.style.attrib
+ = attribute style { xsd:IDREFS }?
+
+# styling - generic styling container
+TTAF.styling =
+ element styling {
+ TTAF.styling.attlist,
+ TTAF.styling.content
+ }
+
+TTAF.styling.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.styling.content.extra = empty
+TTAF.styling.content =
+ (TTAF.Metadata.class*,
+ TTAF.styling.defs.class*,
+ TTAF.styling.content.extra*)
+
+# style - style declaration
+TTAF.styling.style =
+ element style {
+ TTAF.styling.style.attlist,
+ TTAF.styling.style.content
+ }
+
+TTAF.styling.style.attlist =
+ TTAF.Core.attrib.class,
+ TTAF.style.attrib,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+
+TTAF.styling.style.content.extra = empty
+TTAF.styling.style.content =
+ (TTAF.Metadata.class*,
+ (TTAF.styling.style.content.extra)*)
+
+# style definitions class
+TTAF.styling.defs.extra = empty
+TTAF.styling.defs.class =
+ TTAF.styling.style
+ | TTAF.styling.defs.extra
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-styling.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,51 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Styling Module .........................................
+# .......................................................................
+
+# style reference attribute; must reference /tt/head/styling/style
+TTAF.style.attrib
+ = attribute style { xsd:IDREFS }?
+
+# styling - generic styling container
+TTAF.styling =
+ element styling {
+ TTAF.styling.attlist,
+ TTAF.styling.content
+ }
+
+TTAF.styling.attlist &=
+ TTAF.Core.attrib.class
+
+TTAF.styling.content.extra = empty
+TTAF.styling.content =
+ (TTAF.Metadata.class*,
+ TTAF.styling.defs.class*,
+ TTAF.styling.content.extra*)
+
+# style - style declaration
+TTAF.styling.style =
+ element style {
+ TTAF.styling.style.attlist,
+ TTAF.styling.style.content
+ }
+
+TTAF.styling.style.attlist =
+ TTAF.Core.attrib.class,
+ TTAF.style.attrib,
+ (TTAF.Styling.attrib.class |
+ TTAF.Styling.ForeignExtension.attrib+ )
+
+TTAF.styling.style.content.extra = empty
+TTAF.styling.style.content =
+ (TTAF.Metadata.class*,
+ (TTAF.styling.style.content.extra)*)
+
+# style definitions class
+TTAF.styling.defs.extra = empty
+TTAF.styling.defs.class =
+ TTAF.styling.style
+ | TTAF.styling.defs.extra
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-timing-attribs.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,49 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Timing Attributes Module ...............................
+# .......................................................................
+
+# Timing Attributes
+
+TTAF.timing.begin.attrib
+ = attribute begin { TTAF.TimeCoordinate.datatype }?
+TTAF.timing.dur.attrib
+ = attribute dur { TTAF.TimeDuration.datatype }?
+TTAF.timing.end.attrib
+ = attribute end { TTAF.TimeCoordinate.datatype }?
+TTAF.timing.timeContainer.attrib
+ = attribute timeContainer { TTAF.TimeContainer.datatype }?
+
+# Timing Interval Attribute class
+
+TTAF.TimingInterval.extra.attrib = empty
+TTAF.TimingInterval.attrib.class &=
+ TTAF.timing.begin.attrib,
+ TTAF.timing.dur.attrib,
+ TTAF.timing.end.attrib,
+ TTAF.TimingInterval.extra.attrib
+
+# Timing Container Attribute class
+
+TTAF.TimingContainer.extra.attrib = empty
+TTAF.TimingContainer.attrib.class &=
+ TTAF.timing.timeContainer.attrib,
+ TTAF.TimingContainer.extra.attrib
+
+# Timed Content Attribute Class
+
+TTAF.Timed.extra.attrib = empty
+TTAF.Timed.attrib.class &=
+ TTAF.TimingInterval.attrib.class,
+ TTAF.Timed.extra.attrib
+
+# Timed Content Container Attribute Class
+
+TTAF.TimedContainer.extra.attrib = empty
+TTAF.TimedContainer.attrib.class &=
+ TTAF.Timed.attrib.class,
+ TTAF.TimingContainer.attrib.class,
+ TTAF.TimedContainer.extra.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp-timing-attribs.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,49 @@
+# .......................................................................
+# TT-AF 1.0 DFXP Timing Attributes Module ...............................
+# .......................................................................
+
+# Timing Attributes
+
+TTAF.timing.begin.attrib
+ = attribute begin { TTAF.TimeCoordinate.datatype }?
+TTAF.timing.dur.attrib
+ = attribute dur { TTAF.TimeDuration.datatype }?
+TTAF.timing.end.attrib
+ = attribute end { TTAF.TimeCoordinate.datatype }?
+TTAF.timing.timeContainer.attrib
+ = attribute timeContainer { TTAF.TimeContainer.datatype }?
+
+# Timing Interval Attribute class
+
+TTAF.TimingInterval.extra.attrib = empty
+TTAF.TimingInterval.attrib.class &=
+ TTAF.timing.begin.attrib,
+ TTAF.timing.dur.attrib,
+ TTAF.timing.end.attrib,
+ TTAF.TimingInterval.extra.attrib
+
+# Timing Container Attribute class
+
+TTAF.TimingContainer.extra.attrib = empty
+TTAF.TimingContainer.attrib.class &=
+ TTAF.timing.timeContainer.attrib,
+ TTAF.TimingContainer.extra.attrib
+
+# Timed Content Attribute Class
+
+TTAF.Timed.extra.attrib = empty
+TTAF.Timed.attrib.class &=
+ TTAF.TimingInterval.attrib.class,
+ TTAF.Timed.extra.attrib
+
+# Timed Content Container Attribute Class
+
+TTAF.TimedContainer.extra.attrib = empty
+TTAF.TimedContainer.attrib.class &=
+ TTAF.Timed.attrib.class,
+ TTAF.TimingContainer.attrib.class,
+ TTAF.TimedContainer.extra.attrib
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp.rnc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+# .......................................................................
+# TT-AF 1.0 Distribution Format Exchange Profile (DFXP) Schema ..........
+# .......................................................................
+
+# default namespace
+default namespace tt = "http://www.w3.org/2006/10/ttaf1"
+
+# generic tt modules
+include "ttaf1-dfxp-datatypes.rnc"
+include "ttaf1-dfxp-classes.rnc"
+include "ttaf1-dfxp-core-attribs.rnc"
+include "ttaf1-dfxp-parameter-attribs.rnc"
+include "ttaf1-dfxp-metadata-attribs.rnc"
+include "ttaf1-dfxp-styling-attribs.rnc"
+include "ttaf1-dfxp-timing-attribs.rnc"
+include "ttaf1-dfxp-metadata.rnc"
+include "ttaf1-dfxp-metadata-items.rnc"
+include "ttaf1-dfxp-styling.rnc"
+include "ttaf1-dfxp-animation.rnc"
+include "ttaf1-dfxp-layout.rnc"
+include "ttaf1-dfxp-content.rnc"
+include "ttaf1-dfxp-head.rnc"
+include "ttaf1-dfxp-document.rnc"
+
+start = TTAF.tt
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/rnc/ttaf1-dfxp.rnc.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+# .......................................................................
+# TT-AF 1.0 Distribution Format Exchange Profile (DFXP) Schema ..........
+# .......................................................................
+
+# default namespace
+default namespace tt = "http://www.w3.org/2006/10/ttaf1"
+
+# generic tt modules
+include "ttaf1-dfxp-datatypes.rnc"
+include "ttaf1-dfxp-classes.rnc"
+include "ttaf1-dfxp-core-attribs.rnc"
+include "ttaf1-dfxp-parameter-attribs.rnc"
+include "ttaf1-dfxp-metadata-attribs.rnc"
+include "ttaf1-dfxp-styling-attribs.rnc"
+include "ttaf1-dfxp-timing-attribs.rnc"
+include "ttaf1-dfxp-metadata.rnc"
+include "ttaf1-dfxp-metadata-items.rnc"
+include "ttaf1-dfxp-styling.rnc"
+include "ttaf1-dfxp-animation.rnc"
+include "ttaf1-dfxp-layout.rnc"
+include "ttaf1-dfxp-content.rnc"
+include "ttaf1-dfxp-head.rnc"
+include "ttaf1-dfxp-document.rnc"
+
+start = TTAF.tt
+
+# .......................................................................
+# .......................................................................
+# .......................................................................
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/1.2-Body.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head/>
+<body region="subtitleArea">
+ <div>
+ <p id="subtitle1" begin="0.76s" end="3.45s">
+ It seems a paradox, does it not,
+ </p>
+ <p id="subtitle2" begin="5.0s" end="10.0s">
+ that the image formed on<br/>
+ the Retina should be inverted?
+ </p>
+ <p id="subtitle3" begin="10.0s" end="16.0s" style="s2">
+ It is puzzling, why is it<br/>
+ we do not see things upside-down?
+ </p>
+ <p id="subtitle4" begin="17.2s" end="23.0s">
+ You have never heard the Theory,<br/>
+ then, that the Brain also is inverted?
+ </p>
+ <p id="subtitle5" begin="23.0s" end="27.0s" style="s2">
+ No indeed! What a beautiful fact!
+ </p>
+ <p id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
+ But how is it proved?
+ </p>
+ <p id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
+ Thus: what we call
+ </p>
+ <p id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
+ the vertex of the Brain<br/>
+ is really its base
+ </p>
+ <p id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
+ and what we call its base<br/>
+ is really its vertex,
+ </p>
+ <p id="subtitle9a" begin="53.5s" end="58.7s">
+ it is simply a question of nomenclature.
+ </p>
+ <p id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
+ How truly delightful!
+ </p>
+ </div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/1.2-Layout.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout xmlns:tts="http://www.w3.org/2006/04/ttaf1#style">
+ <region id="subtitleArea"
+ style="s1"
+ tts:extent="560px 62px"
+ tts:padding="5px 3px"
+ tts:backgroundColor="black"
+ tts:displayAlign="after"
+ />
+</layout>
+</head>
+<body/>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/1.2-Metadata.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<metadata xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata">
+ <ttm:title>Timed Text DFXP Example</ttm:title>
+ <ttm:copyright>The Authors (c) 2006</ttm:copyright>
+</metadata>
+</head>
+<body/>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/1.2-Styling.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<styling xmlns:tts="http://www.w3.org/2006/04/ttaf1#style">
+ <!-- s1 specifies default color, font, and text alignment -->
+ <style id="s1"
+ tts:color="white"
+ tts:fontFamily="proportionalSansSerif"
+ tts:fontSize="22px"
+ tts:textAlign="center"
+ />
+ <!-- alternative using yellow text but otherwise the same as style s1 -->
+ <style id="s2" style="s1" tts:color="yellow"/>
+ <!-- a style based on s1 but justified to the right -->
+ <style id="s1Right" style="s1" tts:textAlign="end" />
+ <!-- a style based on s2 but justified to the left -->
+ <style id="s2Left" style="s2" tts:textAlign="start" />
+</styling>
+</head>
+<body/>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.10-fontSize.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="299px 97px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ Then fill up the glasses<br/>
+ with treacle and ink,<br/>
+ Or anything else<br/>
+ that is <span tts:fontSize="24px">pleasant</span> to drink.
+</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.11-fontStyle.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="331px 84px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ In autumn, when the leaves are brown,<br/>
+ Take pen and ink, and <span tts:fontStyle="italic">write it down.</span>
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.12-fontWeight.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="376px 95px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ They told me you had been to her,<br/>
+ <span tts:fontWeight="bold">and mentioned me to him:</span><br/>
+ She gave me a good character<br/>
+ <span tts:fontWeight="bold">but said I could not swim.</span>
+</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.13-lineHeight.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="255px 190px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="16px"/>
+ <style tts:lineHeight="32px"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ He thought he saw an elephant,<br/>
+ That practised on a fife:<br/>
+ He looked again, and found it was<br/>
+ A letter from his wife.<br/>
+ "At length I realise," he said,<br/>
+ "The bitterness of Life.
+"</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.14-Opacity.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1" dur="5s">
+ <set begin="0s" dur="1s" tts:opacity="1.00"/>
+ <set begin="1s" dur="1s" tts:opacity="0.75"/>
+ <set begin="2s" dur="1s" tts:opacity="0.50"/>
+ <set begin="3s" dur="1s" tts:opacity="0.25"/>
+ <set begin="4s" dur="1s" tts:opacity="0.00"/>
+ <style tts:extent="304px 77px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ The sun was shining on the sea
+</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.15-Origin.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:origin="40px 40px"/>
+ <style tts:extent="308px 92px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="center"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ "To dine!" she shrieked in dragon-wrath.<br/>
+ "To swallow wines all foam and froth!<br/>
+ To simper at a table-cloth!"
+</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.16-Overflow.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style tts:overflow="visible"/>
+</region>
+<region id="r2">
+ <style tts:extent="232px 40px"/>
+ <style tts:origin="0px 43px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:wrapOption="noWrap"/>
+ <style tts:overflow="hidden"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ "But wait a bit," the Oysters cried,<br/>
+ "Before we have our chat;
+</p>
+<p region="r2">
+ For some of us are out of breath,<br/>
+ And all of us are fat!"
+</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.17-Padding.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="446px 104px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+ <style tts:padding="10px 40px"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1" tts:backgroundColor="red">
+ Just the place for a Snark! I have said it twice:<br/>
+ That alone should encourage the crew.<br/>
+ Just the place for a Snark! I have said it thrice:<br/>
+ What I tell you three times is true.
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.18-showBackground.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="265px 100px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:showBackground="always"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+<region id="r2">
+ <style tts:origin="205px 60px"/>
+ <style tts:extent="290px 100px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="end"/>
+ <style tts:showBackground="whenActive"/>
+</region>
+</layout>
+</head>
+<body/>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.19-textAlign.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="start"/>
+</region>
+<region id="r2">
+ <style tts:extent="355px 43px"/>
+ <style tts:origin="0px 47px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ Beware the Jabberwock, my son!<br/>
+ The jaws that bite, the claws that catch!
+</p>
+<p region="r2">
+ Beware the Jubjub bird, and shun<br/>
+ The frumious Bandersnatch!
+</p>
+ </div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.2-Background-Color.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="306px 114px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:padding="3px 40px"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1" tts:backgroundColor="purple" tts:textAlign="center">
+ Twinkle, twinkle, little bat!<br/>
+ How <span tts:backgroundColor="green">I wonder</span> where you're at!
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.20-textOutline.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:backgroundColor="transparent"/>
+ <style tts:color="yellow"/>
+ <style tts:textOutline="black 2px 0px"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="24px"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p>
+ How doth the little crocodile<br/>
+ Improve its shining tail,<br/>
+ And pour the waters of the Nile<br/>
+ On every golden scale!<br/>
+ How cheerfully he seems to grin,<br/>
+ How neatly spreads his claws,<br/>
+ And welcomes little fishes in,<br/>
+ With gently smiling jaws!
+</p>
+ </div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.21-unicodeBidi.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span tts:unicodeBidi="bidiOverride" tts:direction="rtl">where the tourists snore.</span>
+</p>
+ </div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.22-Visibility.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="398px 121px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1" dur="4s">
+ <span tts:visibility="hidden">
+ <set begin="1s" tts:visibility="visible"/>
+ Curiouser
+ </span>
+ <span tts:visibility="hidden">
+ <set begin="2s" tts:visibility="visible"/>
+ and
+ </span>
+ <span tts:visibility="hidden">
+ <set begin="3s" tts:visibility="visible"/>
+ curiouser!
+ </span>
+</p>
+ </div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.23-wrapOption.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="192px 117px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:overflow="hidden"/>
+ <style tts:wrapOption="noWrap"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p>
+ I'll tell thee everything I can:<br/>
+ There's little to relate.<br/>
+ I saw an aged aged man,<br/>
+ A-sitting on a gate."
+</p>
+ </div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.24-writingMode.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="50px 570px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:writingMode="tbrl"/>
+</region>
+<region id="r2">
+ <style tts:extent="310px 50px"/>
+ <style tts:origin="70px 120px"/>
+ <style tts:padding="10px 3px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:writingMode="rltb"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ I sometimes dig for buttered rolls,<br/>
+ Or set limed twigs for crabs:
+</p>
+<p region="r2" tts:direction="rtl" tts:unicodeBidi="bidiOverride">
+ I sometimes search the grassy knolls for the wheels of Hansom-cabs.
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.25-zIndex.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:origin="0px 0px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:zIndex="0"/>
+</region>
+<region id="r2">
+ <style tts:origin="100px 60px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style tts:zIndex="1"/>
+</region>
+<region id="r3">
+ <style tts:origin="0px 120px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:zIndex="2"/>
+</region>
+<region id="r4">
+ <style tts:origin="100px 180px"/>
+ <style tts:extent="400px 100px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="red"/>
+ <style tts:color="white"/>
+ <style tts:textAlign="end"/>
+ <style tts:zIndex="3"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ I passed by his garden, and marked, with one eye,<br/>
+ How the Owl and the Panther were sharing a pie.
+</p>
+<p region="r2">
+ The Panther took pie-crust, and gravy, and meat,<br/>
+ While the Owl had the dish as its share of the treat.
+</p>
+<p region="r3">
+ When the pie was all finished, the Owl, as a boon,<br/>
+ Was kindly permitted to pocket the spoon:
+</p>
+<p region="r4">
+ While the Panther received knife and fork<br/>
+ with a growl,<br/>
+ And concluded the banquet by...
+</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.3-Color.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ In spring, when woods are <span tts:color="green">getting green</span>,<br/>
+ I'll try and tell you what I mean.
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.4-Direction.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="265px 84px"/>
+ <style tts:padding="5px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ Little birds are playing<br/>
+ Bagpipes on the shore,<br/>
+ <span tts:unicodeBidi="bidiOverride" tts:direction="rtl">where the tourists snore.</span>
+</p>
+</div>
+</body>
+</tt>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.5-Display.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="369px 119px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+ <p dur="5s">
+ [[[
+ <span tts:display="none">
+ <set begin="1s" dur="1s" tts:display="auto"/>
+ Beautiful soup,
+ </span>
+ <span tts:display="none">
+ <set begin="2s" dur="1s" tts:display="auto"/>
+ so rich and green,
+ </span>
+ <span tts:display="none">
+ <set begin="3s" dur="1s" tts:display="auto"/>
+ waiting in a hot tureen!
+ </span>
+ ]]]
+ </p>
+</div>
+</body>
+</tt>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.6-displayAlign.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="128px 66px"/>
+ <style tts:origin="0px 0px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+<region id="r2">
+ <style tts:extent="192px 66px"/>
+ <style tts:origin="128px 66px"/>
+ <style tts:backgroundColor="green"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="start"/>
+</region>
+<region id="r3">
+ <style tts:extent="128px 66px"/>
+ <style tts:origin="0px 132px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="before"/>
+ <style tts:textAlign="start"/>
+</region>
+<region id="r4">
+ <style tts:extent="192px 66px"/>
+ <style tts:origin="128px 198px"/>
+ <style tts:backgroundColor="green"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="start"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+ <p region="r1">I sent a message to the fish:</p>
+ <p region="r2">I told them<br/> "This is what I wish."</p>
+ <p region="r3">The little fishes of the sea,</p>
+ <p region="r4">They sent an<br/> answer back to me.</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.7-dynamicFlow.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="140px 70px"/>
+ <style tts:displayAlign="after"/>
+ <style tts:backgroundColor="transparent"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+ <style tts:fontSize="18px"/>
+ <style tts:overflow="scroll"/>
+ <style tts:dynamicFlow="in(word,jump) out(line,smooth) inter(3s)"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ <span tts:backgroundColor="black" tts:color="white">
+ Five o'clock tea!<br/>
+ Ever to thee,<br/>
+ Faithful I'll be,<br/>
+ Five o'clock tea!<br/>
+ <br/>
+ <br/>
+ <br/>
+ </span>
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.8-Extent.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="330px 122px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="after"/>
+ <style tts:textAlign="center"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p region="r1">
+ 'Tis the voice of the Lobster:<br/>
+ I heard him declare,<br/>
+ "You have baked me too brown,<br/>
+ I must sugar my hair."
+</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.2.9-fontFamily.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<layout>
+<region id="r1">
+ <style tts:extent="474px 146px"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="white"/>
+ <style tts:displayAlign="center"/>
+ <style tts:textAlign="start"/>
+ <style tts:fontFamily="proportionalSansSerif"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+ <p>
+ "The time has come," the Walrus said,<br/>
+ "to talk of many things:
+ </p>
+ <p tts:textAlign="end" tts:fontFamily="monospaceSerif">
+ Of shoes, and ships, and sealing wax,<br/>
+ Of cabbages and kings,
+ </p>
+ <p>
+ And why the sea is boiling hot,<br/>
+ and whether pigs have wings."
+ </p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/8.4-Style.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/04/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/04/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/04/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd"
+ xml:lang="en">
+<head>
+<styling>
+ <style id="s1" tts:color="white"/>
+<style id="s2" tts:color="yellow"/>
+<style id="s3" style tts:color="white" tts:fontFamily="monospaceSerif"/>
+<style id="s4" style="s3" tts:color="yellow"/>
+</styling>
+<layout>
+<region id="r1">
+ <style tts:color="yellow"/>
+ <style tts:fontFamily="monospaceSerif"/>
+</region>
+</layout>
+</head>
+<body>
+<div>
+<p tts:color="white">White 1 <span tts:color="yellow">Yellow</span> White 2</p>
+<p style="s1">White 1 <span style="s2">Yellow</span> White 2</p>
+<p style="s3">White Monospace</p>
+<p style="s4">Yellow Monospace</p>
+<p tts:fontFamily="monospaceSansSerif">
+ <span tts:color="yellow">Yellow Monospace</span>
+</p>
+<p region="r1">Yellow Monospace</p>
+</div>
+</body>
+</tt>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/9.3.3-Intermediate-01.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd">
+ <head>
+ <layout>
+ <region id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" id="b1-1">
+ <div id="d1-1">
+ <p id="p1">Text 1</p>
+ </div>
+ </body>
+ </region>
+ <region id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" id="b1-2">
+ <div id="d1-2">
+ <p id="p2">Text 2</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/9.3.3-Intermediate-12.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd">
+ <head>
+ <layout>
+ <region id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" id="b1-1">
+ <div id="d1-1">
+ <p id="p1">Text 1</p>
+ </div>
+ <div id="d2-1">
+ <p id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" id="b1-2">
+ <div id="d1-2">
+ <p id="p2">Text 2</p>
+ </div>
+ <div id="d2-2">
+ <p id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/9.3.3-Intermediate-23.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd">
+ <head>
+ <layout>
+ <region id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" id="b1-1">
+ <div id="d2-1">
+ <p id="p4">Text 4</p>
+ </div>
+ </body>
+ </region>
+ <region id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ <body tts:extent="640px 480px" id="b1-2">
+ <div id="d2-2">
+ <p id="p3">Text 3</p>
+ </div>
+ </body>
+ </region>
+ </layout>
+ </head>
+</tt>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/samples/9.3.3-Source.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/04/ttaf1"
+ xmlns:tts="http://www.w3.org/2006/04/ttaf1#style"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2006/04/ttaf1 ttaf1-dfxp.xsd">
+ <head>
+ <layout>
+ <region id="r1">
+ <style tts:origin="10px 100px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="red"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ <region id="r2">
+ <style tts:origin="10px 300px"/>
+ <style tts:extent="620px 96px"/>
+ <style tts:fontSize="40px"/>
+ <style tts:fontWeight="bold"/>
+ <style tts:backgroundColor="black"/>
+ <style tts:color="yellow"/>
+ <style tts:textAlign="center"/>
+ <style tts:displayAlign="center"/>
+ </region>
+ </layout>
+ </head>
+ <body tts:extent="640px 480px" id="b1">
+ <div id="d1" begin="0s" dur="2s">
+ <p id="p1" region="r1">Text 1</p>
+ <p id="p2" region="r2">Text 2</p>
+ </div>
+ <div id="d2" begin="1s" dur="2s">
+ <p id="p3" region="r2">Text 3</p>
+ <p id="p4" region="r1">Text 4</p>
+ </div>
+ </body>
+</tt>
Binary file old/dfxp/samples/ttaf1-dfxp-samples-20060518.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/adi.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,124 @@
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi)
+
+;
+; DFXP Abstrarct Document Instance Load, Save, Transformer
+;
+
+(declare (usual-integrations))
+
+(define *dfxp-preferred-reverse-bindings*
+ '(("http://www.w3.org/2006/10/ttaf1" . "")
+ ("http://www.w3.org/2006/10/ttaf1#parameter" . "ttp")
+ ("http://www.w3.org/2006/10/ttaf1#style" . "tts")
+ ("http://www.w3.org/2006/10/ttaf1#style-extension" . "ttsx")
+ ("http://www.w3.org/2006/10/ttaf1#metadata" . "ttm")
+ ("http://www.w3.org/2006/10/ttaf1#metadata-extension" . "ttmx")))
+
+(define *dfxp-namespaces-table*
+ (let ((t (make-string-hash-table)))
+ (for-each
+ (lambda (b)
+ (hash-table/put! t (car b) #t))
+ *dfxp-preferred-reverse-bindings*)
+ t))
+
+(define *dfxp-empty-element-types*
+ '(("br" . "http://www.w3.org/2006/10/ttaf1")
+ ("metadata" . "http://www.w3.org/2006/10/ttaf1")))
+
+(define (in-per-element-namespace? attr)
+ (let* ((name (rxi-attribute/name attr))
+ (namespace (rxi-name/namespace name)))
+ (null? namespace)))
+
+(define (in-dfxp-namespace? name)
+ (hash-table/get *dfxp-namespaces-table* (rxi-name/namespace name) #f))
+
+(define (in-xml-namespace? name)
+ (string=? (rxi-name/namespace name) (car *xml-default-reverse-binding*)))
+
+(define (in-dfxp-or-xml-namespace? name)
+ (or (in-dfxp-namespace? name)
+ (in-xml-namespace? name)))
+
+(define (empty-dfxp-element-type? elt)
+ (let* ((name (rxi-element/name elt))
+ (local (rxi-name/local name))
+ (namespace (rxi-name/namespace name)))
+ (find-matching-item
+ *dfxp-empty-element-types*
+ (lambda (n)
+ (and (string=? local (car n))
+ (string=? namespace (cdr n)))))))
+
+(define (only-whitespace-children? elt)
+ (let ((children (rxi-element/children elt)))
+ (not
+ (find-matching-item
+ children
+ (lambda (c)
+ (or (not (string? c))
+ (string-find-next-char-in-set c char-set:not-whitespace)))))))
+
+(define (rxi-document/adi-transform-element elt)
+ ;; prune and transform children
+ (set-rxi-element/children!
+ elt
+ (delete-matching-items
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (if (not (in-dfxp-namespace? (rxi-element/name c)))
+ '()
+ (rxi-document/adi-transform-element c))))
+ (rxi-element/children elt))
+ null?))
+ ;; prune remaining children if empty element type and only whitespace remains
+ (if (and (empty-dfxp-element-type? elt)
+ (only-whitespace-children? elt))
+ (set-rxi-element/children! elt '()))
+ ;; prune foreign namespace attributes
+ (set-rxi-element/attributes!
+ elt
+ (delete-matching-items
+ (rxi-element/attributes elt)
+ (lambda (a)
+ (not (or (in-per-element-namespace? a)
+ (in-dfxp-or-xml-namespace? (rxi-attribute/name a)))))))
+ elt)
+
+(define (rxi-document/adi-transform document)
+ (if (not (null? (rxi-document/annotation document 'adi-transform)))
+ (warn "Document already transformed, ignoring re-transform.")
+ (let ((root (rxi-document/root document)))
+ (set-rxi-document/root! document (rxi-document/adi-transform-element root))
+ (set-rxi-document/annotation! document 'adi-transform #t)))
+ document)
+
+;
+; Load TT AF document instance from PATHNAME using RXI loader,
+; then transform resulting RXI-DOCUMENT instance to an ADI-DOCUMENT
+; instance.
+;
+(define (adi-document/load pathname)
+ (rxi-document/adi-transform
+ (rxi-document/load pathname)))
+
+;
+; Save ADI-DOCUMENT instance DOCUMENT, which was created by ADI-DOCUMENT/LOAD,
+; to PATHNAME using underlying RXI-DOCUMENT's document serializer,
+; where optional argument OTHER-REVERSE-BINDINGS, if specified, consists
+; of an association list whose keys are namespace URIs and values are the
+; namespace prefixes to use to designate those namespaces.
+;
+; By default the set of refeverse bindings defined by *DFXP-PREFERRED-REVERSE-BINDING*
+; are used when serializaing. However, reverse bindings specified by using
+; OTHER-REVERSE-BINDINGS take precedence, overriding default reverse bindings.
+;
+(define (adi-document/save document pathname #!optional other-reverse-bindings)
+ (rxi-document/save document pathname
+ (if (default-object? other-reverse-bindings)
+ *dfxp-preferred-reverse-bindings*
+ (append other-reverse-bindings *dfxp-preferred-reverse-bindings*))))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/clean.bat Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,8 @@
+@echo off
+del/q *.bci
+del/q *.bin
+del/q *.com
+del/q *.crf
+del/q *.ext
+del/q *.fre
+del/q *.pkd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/clean.sh Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,10 @@
+#!/bin/sh
+rm -f *.bci
+rm -f *.bin
+rm -f *.com
+rm -f *.crf
+rm -f *.ext
+rm -f *.fre
+rm -f *.pkd
+rm -f *~
+rm -f #*#
Binary file old/dfxp/scm/code.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/compile.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,13 @@
+;;; -*-Scheme-*-
+
+(load-option 'xml)
+(load-option 'cref)
+(with-working-directory-pathname (directory-pathname (current-load-pathname))
+ (lambda ()
+ (compile-file "rxi")
+ (compile-file "adi")
+ (compile-file "tir")
+ (compile-file "fox")
+ (compile-file "win32-ext")
+ (compile-file "dtf")
+ (cref/generate-constructors "dfxp")))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/dfxp.pkg Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,48 @@
+;;; -*-Scheme-*-
+
+(define-package (dfxp)
+ (parent()))
+
+(define-package (dfxp rxi)
+ (files "rxi")
+ (parent (dfxp))
+ (export ()
+ rxi-document/load
+ rxi-document/save
+ rxi-document->list))
+
+(define-package (dfxp rxi adi)
+ (files "adi")
+ (parent (dfxp rxi))
+ (export ()
+ rxi-document/adi-transform
+ adi-document/load
+ adi-document/save))
+
+(define-package (dfxp rxi adi tir)
+ (files "tir")
+ (parent (dfxp rxi adi))
+ (export ()
+ adi-document/tir-transform))
+
+(define-package (dfxp rxi adi tir fox)
+ (files "fox")
+ (parent (dfxp rxi adi tir))
+ (export ()
+ adi-document/fox-transform))
+
+(define-package (win32 win32-ext)
+ (files "win32-ext")
+ (parent (win32))
+ (import (win32)
+ gdi32.dll)
+ (export ()
+ create-font))
+
+(define-package (dfxp rxi adi tir dtf)
+ (files "dtf")
+ (parent (dfxp rxi adi tir))
+ (import (win32 win32-ext)
+ create-font)
+ (export ()
+ adi-document/dtf-process))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/doesc.bat Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,6 @@
+@echo off
+xe -q -v rxi.scm
+xe -q -v adi.scm
+xe -q -v tir.scm
+xe -q -v fox.scm
+xe -q -v dtf.scm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/dtf.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,12 @@
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi tir dtf)
+
+;;;; Dynamic Text Flow Processor
+
+(declare (usual-integrations))
+
+;
+; NOT YET IMPLEMENTED - TO BE PROVIDED PRIOR TO PROPOSED RECOMMENDATION PHASE
+;
+
+(define (adi-document/dtf-process document) document)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/fox.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,12 @@
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi tir fox)
+
+;;;; Flow Object Transformer
+
+(declare (usual-integrations))
+
+;
+; NOT YET IMPLEMENTED - TO BE PROVIDED PRIOR TO PROPOSED RECOMMENDATION PHASE
+;
+
+(define (adi-document/fox-transform document) document)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/load.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,7 @@
+;;; -*-Scheme-*-
+
+(load-option 'xml)
+(with-working-directory-pathname (directory-pathname (current-load-pathname))
+ (lambda ()
+ (load-package-set "dfxp")))
+(add-subsystem-identification! "DFXP" '(0 8))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/loadscm.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,8 @@
+;;; -*-Scheme-*-
+
+(load-option 'xml)
+(load "rxi")
+(load "adi")
+(load "tir")
+(load "fox")
+(load "dtf")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/notes.txt Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,70 @@
+1. flowed content buffer
+
+a vector of elements E as follows:
+
+* if (dtf/character? E) then
+ E is a styled content character
+
+* if (dtf/line-break? E) then
+ E is an explicit line break
+
+* if (dtf/space? E) then
+ E is a reference to a dtf/space structure
+
+2. flowed presentation region (area)
+
+a vector of elements E as follows:
+
+* if (dtf/glyph? E) then
+ E denotes a glyph area
+
+* if (dtf/marker? E) then
+ E denotes the a marker
+
+3. dtf/marker
+
+a dtf/marker is either a dtf/content-marker or a dtf/area-marker
+
+a dtf/content-marker is an enumeration as follows:
+
+{
+ CHARACTER,
+ WORD
+}
+
+within the context of a flowed presentation region, a (dtf/content-marker 'CHARACTER) is not expressed, but is implied at
+the boundary of each character code
+
+a dtf/area-marker is an enumeration as follows:
+
+{
+ GLYPH,
+ INLINE,
+ LINE,
+ BLOCK
+}
+
+within the context of a flowed presentation region, a (dtf/area-marker 'GLYPH) is not expressed, but is implied at
+the boundary of each glyph code
+
+4. dtf/character
+
+The following slots are defined:
+
+* ch, where (wide-character? ch) => #t
+
+5. dtf/glyph
+
+The following slots are defined:
+
+* font index
+* glyph index
+* background color
+* foreground color
+* decorations
+* x position (relative to some reference point, e.g., containing region's origin, containing block's origin,
+ containing line's baseline origin, containing inline's baseline origin, prior glyph's origin, prior glyphs's
+ origin plus escapement)
+* y position (relative to some reference point, as with x position)
+* x escapement
+* y escapement
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/otm.c Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,19 @@
+
+#include <windows.h>
+
+#define ptrdiff(p,q) ((unsigned)((const BYTE *)p - (const BYTE *)q))
+
+int main ( int argc, char ** argv )
+{
+ OUTLINETEXTMETRICW otm;
+ printf ( "otmTextMetrics: %4d\n", ptrdiff ( &otm.otmTextMetrics, &otm ) );
+ printf ( "otmTextMetrics.tmCharSet: %4d\n", ptrdiff ( &otm.otmTextMetrics.tmCharSet, &otm ) );
+ printf ( "otmFiller: %4d\n", ptrdiff ( &otm.otmFiller, &otm ) );
+ printf ( "otmPanoseNumber: %4d\n", ptrdiff ( &otm.otmPanoseNumber, &otm ) );
+ printf ( "otmfsSelection: %4d\n", ptrdiff ( &otm.otmfsSelection, &otm ) );
+ printf ( "otmrcFontBox: %4d\n", ptrdiff ( &otm.otmrcFontBox, &otm ) );
+ printf ( "otmMacAscent: %4d\n", ptrdiff ( &otm.otmMacAscent, &otm ) );
+ printf ( "otmpFullName: %4d\n", ptrdiff ( &otm.otmpFullName, &otm ) );
+ printf ( "sizeof(TEXTMETRICW): %4d\n", sizeof(TEXTMETRICW) );
+ return 0;
+}
Binary file old/dfxp/scm/otm.exe has changed
Binary file old/dfxp/scm/otm.obj has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/rxi.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,523 @@
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi)
+
+;
+; DFXP Reduced XML Infoset Load, Save, Transformer
+;
+
+(declare (usual-integrations))
+
+;
+; The default reverse binding for the XML namespace is represented
+; by *XML-DEFAULT-REVERSE-BINDING*.
+;
+(define *xml-default-reverse-binding*
+ '("http://www.w3.org/XML/1998/namespace" . "xml"))
+
+;
+; An RXI-BINDINGS structure consists of a BINDINGS slot that contains a
+; stack represented as a list of association lists whose keys are XMLNS name
+; prefixes and whose values are XMLNS namespace URIs. A binding for the
+; "empty" or "null" namespace is designated by a prefix whose value is "".
+;
+(define-structure
+ (rxi-bindings
+ (conc-name rxi-bindings/)
+ (constructor make-rxi-bindings (#!optional bindings)))
+ (bindings '() read-only #f))
+
+;
+; Push a list of NEW bindings onto BINDINGS.
+;
+(define (rxi-bindings/push! bindings new)
+ (set-rxi-bindings/bindings!
+ bindings
+ (cons new (rxi-bindings/bindings bindings))))
+
+;
+; Pop the list of bindings at the top of BINDINGS.
+;
+(define (rxi-bindings/pop! bindings)
+ (set-rxi-bindings/bindings!
+ bindings
+ (let ((old (rxi-bindings/bindings bindings)))
+ (if (pair? old)
+ (cdr old)
+ '()))))
+
+;
+; Look up a binding for the designated XMLNS name PREFIX in BINDINGS,
+; returning either an associated XMLNS namespace URI string or '() if
+; not found.
+;
+
+(define (rxi-bindings/lookup bindings prefix)
+ (let find
+ ((bindings (rxi-bindings/bindings bindings)))
+ (cond ((null? bindings)
+ '())
+ (else
+ (let
+ ((b (find-matching-item
+ (car bindings)
+ (lambda (b) (string=? (car b) prefix)))))
+ (if (not (false? b))
+ (cdr b)
+ (find (cdr bindings))))))))
+
+;
+; Resolve qualified name QNAME to (VALUES LOCAL NSURI) where LOCAL is
+; the local (unqualified) component of QNAME and NSURI is the
+; associated namespace URI or '() if there is no associated namepsace
+; URI, where IS-ATTRIBUTE? indicates whether the QNAME is the name of
+; an attribute or an element.
+;
+; N.B. the lack of a namespace URI is permitted only for unqualified
+; attribute names; all element names must have an associated namespace URI
+; or an error is signaled. This implies that there must exist a binding for
+; the empty (null) namespace prefix when resolving unqualified element
+; names.
+;
+(define (rxi-bindings/resolve bindings qname is-attribute?)
+ (let* ((i (string-find-next-char qname #\:))
+ (pfx (substring qname 0 (if (false? i) 0 i)))
+ (local (string-tail qname (if (false? i) 0 (+ i 1)))))
+ (values
+ local
+ (if (or (> (string-length pfx) 0) (not is-attribute?))
+ (let ((uri (rxi-bindings/lookup bindings pfx)))
+ (or uri
+ (error "unbound XMLNS prefix on prefix" pfx)))
+ '()))))
+
+;
+; An RXI-NAME structure represents the name and namespace properties of a
+; reduced XML infoset element or attribute information item and consists of
+; a local name LOCAL and an associated namespace NAMESPACE, a non-empty
+; string or '(), denoting that the name is not namespace qualified. An
+; RXI-NAME is essentially a representation of an XMLNS "expanded name".
+;
+(define-structure
+ (rxi-name (conc-name rxi-name/))
+ (local "" read-only #t)
+ (namespace '() read-only #t))
+
+;
+; Convert an RXI-NAME instance NAME to a list consisting of its constituent
+; slots.
+;
+(define (rxi-name->list name)
+ (list (rxi-name/local name)
+ (rxi-name/namespace name)))
+
+;
+; Transform an XML name IQNAME as defined by the XML package as an uninterned
+; symbol to an RXI-NAME, resolving qualified names into their XMLNS
+; "expanded name" form, where IS-ATTRIBUTE? indicates whether the QNAME is
+; the name of an attribute or an element.
+;
+(define (rxi-name/transform-from-xml iqname is-attribute? bindings)
+ (call-with-values
+ (lambda ()
+ (rxi-bindings/resolve bindings (symbol-name (xml-name-qname iqname)) is-attribute?))
+ make-rxi-name))
+
+;
+; An RXI-ATTRIBUTE structure represents a reduced XML infoset attribute
+; information item and consists of a NAME represented as an RXI-NAME
+; instance and a VALUE represented as a string.
+;
+(define-structure
+ (rxi-attribute (conc-name rxi-attribute/))
+ (name '() read-only #t)
+ (value "" read-only #t))
+
+;
+; Convert an RXI-ATTRIBUTE instance ATTRIBUTE to a list consisting of its
+; constituent slots.
+;
+(define (rxi-attribute->list attribute)
+ (list (rxi-name->list (rxi-attribute/name attribute))
+ (rxi-attribute/value attribute)))
+
+;
+; Transform XML-ATTRIBUTE instance ATTRIBUTE to RXI-ATTRIBUTE instance,
+; where BINDINGS is the current bindings stack.
+;
+(define (rxi-attribute/transform-from-xml attribute bindings)
+ (let ((n (xml-attribute-name attribute)) (v (xml-attribute-value attribute)))
+ (make-rxi-attribute (rxi-name/transform-from-xml n #t bindings) v)))
+
+;
+; An RXI-ELEMENT structure represents a reduced XML infoset element
+; information item and consists of a NAME represented as an RXI-NAME
+; instance, a possibly empty set of ATTRIBUTES represented as a list of
+; RXI-ATTRIBUTE instances, and a possibly empty set of CHILDREN represented
+; as a list of string or RXI-ELEMENT instances.
+;
+(define-structure
+ (rxi-element (conc-name rxi-element/))
+ (name "" read-only #t)
+ (attributes '() read-only #f)
+ (children '() read-only #f))
+
+;
+; Convert an RXI-ELEMENT instance ELEMENT to a list consisting of its
+; constituent slots.
+;
+(define (rxi-element->list element)
+ (list (rxi-name->list (rxi-element/name element))
+ (map
+ rxi-attribute->list
+ (rxi-element/attributes element))
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (rxi-element->list c)))
+ (rxi-element/children element))))
+
+;
+; Determine if XML-ATTRIBUTE instance ATTRIBUTE
+; is an XMLNS attribute or not, i.e., has a qualified name
+; whose prefix is "xmlns" or is the unqualified name "xmlns".
+;
+(define (namespace-attribute? attribute)
+ (let ((qname (symbol-name (xml-name-qname (xml-attribute-name attribute)))))
+ (and (string-prefix? "xmlns" qname)
+ (or (= (string-length qname) 5)
+ (let ((i (string-find-next-char qname #\:)))
+ (and (not (false? i)) (= i 5)))))))
+
+;
+; Given a list ATTRIBUTES of XML-ATTRIBUTE instances consisting only of
+; XMLNS attributes as determined by NAMESPACE-ATTRIBUTE? above, return a set
+; of bindings as an association list whose keys are namespace prefixes and
+; whose values are the associated namespace URIs.
+;
+(define (extract-namespace-bindings attributes)
+ (map
+ (lambda (a)
+ (let ((qname (symbol-name (xml-name-qname (xml-attribute-name a)))))
+ (if (= (string-match-forward qname "xmlns") 5)
+ (cons
+ (if (>= (string-length qname) 6)
+ (string-tail qname 6)
+ "")
+ (xml-attribute-value a))
+ (error "Invalid namespace attribute" qname))))
+ attributes))
+
+;
+; Transform XML-ELEMENT instance ELEMENT to RXI-ELEMENT instance,
+; where BINDINGS is the current bindings stack.
+;
+(define (rxi-element/transform-from-xml element bindings)
+ (let* ((attributes
+ (xml-element-attributes element))
+ (ns-attributes
+ (keep-matching-items attributes namespace-attribute?))
+ (other-attributes
+ (keep-matching-items
+ attributes
+ (lambda (a) (not (namespace-attribute? a))))))
+ (rxi-bindings/push! bindings (extract-namespace-bindings ns-attributes))
+ (let ((rxi-element
+ (make-rxi-element
+ (rxi-name/transform-from-xml
+ (xml-element-name element) #f bindings)
+ (map
+ (lambda (a) (rxi-attribute/transform-from-xml a bindings))
+ other-attributes)
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (rxi-element/transform-from-xml c bindings)))
+ (keep-matching-items
+ (xml-element-contents element)
+ (lambda (x) (or (string? x) (xml-element? x))))))))
+ (rxi-bindings/pop! bindings)
+ rxi-element)))
+
+;
+; An RXI-DOCUMENT structure represents a reduced XML infoset document
+; information item and consists of an ANNOTATIONS association list, used for
+; internal book-keeping purposes, and an RXI-ELEMENT instance representing
+; the document's root element or '() if there is no root element.
+;
+(define-structure
+ (rxi-document (conc-name rxi-document/))
+ (annotations '() read-only #f)
+ (root '() read-only #f))
+
+;
+; Look up value of annotation named KEY on RXI-DOCUMENT instance DOCUMENT.
+;
+(define (rxi-document/annotation document key)
+ (assq key (rxi-document/annotations document)))
+
+;
+; Add annotation (KEY . VALUE) to RXI-DOCUMENT instance DOCUMENT.
+;
+(define (set-rxi-document/annotation! document key value)
+ (set-rxi-document/annotations! document (cons (cons key value) (rxi-document/annotations document))))
+
+;
+; Remove all annotations named KEY from RXI-DOCUMENT instance DOCUMENT.
+;
+(define (rxi-document/remove-annotation! document key)
+ (del-assq! key (rxi-document/annotations document)))
+
+;
+; Convert an RXI-DOCUMENT instance DOCUMENT to a list consisting of its
+; constituent slots.
+;
+(define (rxi-document->list document)
+ (list (rxi-document/annotations document)
+ (rxi-element->list (rxi-document/root document))))
+
+;
+; Transform XML-DOCUMENT instance DOCUMENT to RXI-DOCUMENT instance.
+;
+(define (rxi-document/transform-from-xml document)
+ (let
+ ((bindings
+ (make-rxi-bindings
+ (list (list (cons (cdr *xml-default-reverse-binding*)
+ (car *xml-default-reverse-binding*)))))))
+ (make-rxi-document
+ '()
+ (rxi-element/transform-from-xml (xml-document-root document) bindings))))
+
+;
+; Load XML document instance from PATHNAME using XML package's XML parser,
+; then transform resulting XML-DOCUMENT instance to an RXI-DOCUMENT
+; instance.
+;
+(define (rxi-document/load pathname)
+ (rxi-document/transform-from-xml
+ (call-with-input-file pathname
+ (lambda (port)
+ (read-xml port)))))
+
+;
+; An RXI-REVERSE-BINDINGS structure consists of a REVERSE-BINDINGS slot
+; that contains an association list whose keys are XMLNS namespace URIs and
+; whose values are XMLNS name prefixes. The URI component of a reverse
+; binding entry MUST be a non-empty string.
+;
+(define-structure
+ (rxi-reverse-bindings
+ (conc-name rxi-reverse-bindings/)
+ (constructor make-rxi-reverse-bindings (#!optional reverse-bindings)))
+ (reverse-bindings '() read-only #f))
+
+(define (rxi-reverse-bindings/lookup reverse-bindings uri)
+ (if (and (string? uri)
+ (not (string-null? uri)))
+ (let find
+ ((rb (rxi-reverse-bindings/reverse-bindings reverse-bindings)))
+ (cond ((null? rb)
+ '())
+ (else
+ (let
+ ((b (car rb)))
+ (if (string=? (car b) uri)
+ (cdr b)
+ (find (cdr rb)))))))
+ (error "non-string or empty XMLNS namespace URI" uri)))
+
+(define (rxi-reverse-bindings/generate-prefix reverse-bindings)
+ (let ((g (lambda () (string-downcase (symbol-name (generate-uninterned-symbol)))))
+ (rb (rxi-reverse-bindings/reverse-bindings reverse-bindings)))
+ (let loop
+ ((pfx '()))
+ (cond ((null? pfx)
+ (loop (g)))
+ (else
+ (if (not (find-matching-item
+ rb
+ (lambda (b)
+ (and (string? (cdr b)) (string=? (cdr b) pfx)))))
+ pfx
+ (loop (g))))))))
+
+(define (rxi-reverse-bindings/add! reverse-bindings uri pfx)
+ (set-rxi-reverse-bindings/reverse-bindings!
+ reverse-bindings
+ (cons (cons uri pfx) (rxi-reverse-bindings/reverse-bindings reverse-bindings))))
+
+(define (rxi-reverse-bindings/sort! reverse-bindings)
+ (let
+ ((rb (rxi-reverse-bindings/reverse-bindings reverse-bindings)))
+ (set-rxi-reverse-bindings/reverse-bindings!
+ reverse-bindings
+ (sort rb
+ (lambda (x y)
+ (string<? (cdr x) (cdr y)))))))
+
+(define (rxi-reverse-bindings/normalize-preferred preferred-reverse-bindings)
+ (let ((rbt (make-string-hash-table (length preferred-reverse-bindings)))
+ (xrb *xml-default-reverse-binding*))
+ (let loop
+ ((prb preferred-reverse-bindings))
+ (cond ((null? prb)
+ (if (not (hash-table/get rbt (car xrb) #f))
+ (hash-table/put! rbt (car xrb) (cdr xrb)))
+ (hash-table->alist rbt))
+ (else
+ (let ((b (car prb)))
+ (if (not (pair? b))
+ (error "preferred reverse binding not a pair" b)
+ (let ((u (car b))
+ (p (cdr b)))
+ (if (not (hash-table/get rbt u #f))
+ (hash-table/put! rbt u p))
+ (loop (cdr prb))))))))))
+
+;
+; Transform an RXI-NAME instance NAME to an XML name IQNAME as defined by the
+; XML package as an uninterned symbol, where IS-ATTRIBUTE? indicates whether
+; the IQNAME is the name of an attribute or an element, and where REVERSE-BINDINGS
+; is the current reverse bindings.
+;
+(define (rxi-name/transform-to-xml name is-attribute? reverse-bindings)
+ (let ((uri (rxi-name/namespace name))
+ (loc (rxi-name/local name)))
+ (xml-intern
+ (if (null? uri)
+ loc
+ (let ((pfx (rxi-reverse-bindings/lookup reverse-bindings uri)))
+ (if (string-null? pfx)
+ loc
+ (string-append
+ pfx
+ (string-append ":" loc))))))))
+
+;
+; Transform RXI-ATTRIBUTE instance ATTRIBUTE to XML-ATTRIBUTE instance.
+;
+(define (rxi-attribute/transform-to-xml attribute reverse-bindings)
+ (cons
+ (rxi-name/transform-to-xml (rxi-attribute/name attribute) #t reverse-bindings)
+ (rxi-attribute/value attribute)))
+
+(define (maybe-add-reverse-binding! reverse-bindings name)
+ (let ((uri (rxi-name/namespace name)))
+ (if (not (null? uri))
+ (if (not (rxi-reverse-bindings/lookup reverse-bindings uri))
+ (rxi-reverse-bindings/add! reverse-bindings uri (rxi-reverse-bindings/generate-prefix reverse-bindings))))))
+
+(define (rxi-element/collect-reverse-bindings element reverse-bindings)
+ ;; collect element's binding
+ (maybe-add-reverse-binding! reverse-bindings (rxi-element/name element))
+ ;; collect attribute reverse-bindings
+ (let ((attributes (rxi-element/attributes element)))
+ (for-each
+ (lambda (a)
+ (maybe-add-reverse-binding! reverse-bindings (rxi-attribute/name a)))
+ attributes))
+ ;; collect childrens' reverse bindings
+ (let ((children (rxi-element/children element)))
+ (for-each
+ (lambda (c)
+ (if (not (string? c))
+ (rxi-element/collect-reverse-bindings c reverse-bindings)))
+ children)))
+
+;
+; Transform RXI-ELEMENT instance ELEMENT to XML-ELEMENT instance.
+;
+(define (rxi-element/transform-to-xml element reverse-bindings)
+ (make-xml-element
+ (rxi-name/transform-to-xml (rxi-element/name element) #f reverse-bindings)
+ (map
+ (lambda (a)
+ (rxi-attribute/transform-to-xml a reverse-bindings))
+ (rxi-element/attributes element))
+ (map
+ (lambda (c)
+ (if (string? c)
+ c
+ (rxi-element/transform-to-xml c reverse-bindings)))
+ (rxi-element/children element))))
+
+;
+; Add XMLNS attributes that correspond with REVERSE-BINDINGS to the root
+; element of XML-DOCUMENT instance DOCUMENT. If DOCUMENT has no root
+; element, then do nothing.
+;
+(define (xml-document-add-bindings! document reverse-bindings)
+ (let ((root (xml-document-root document)))
+ (if (not (null? root))
+ (set-xml-element-attributes!
+ root
+ (append
+ (xml-element-attributes root)
+ (map
+ (lambda (b)
+ (let*
+ ((prefix (cdr b))
+ (ns-attr-name
+ (if (string-null? prefix)
+ "xmlns"
+ (string-append "xmlns:" prefix))))
+ (cons (xml-intern ns-attr-name) (car b))))
+ (rxi-reverse-bindings/reverse-bindings reverse-bindings)))))))
+
+;
+; Collect
+;
+(define (rxi-document/collect-reverse-bindings document reverse-bindings)
+ (let ((root (rxi-document/root document)))
+ (if (not (null? root))
+ (rxi-element/collect-reverse-bindings root reverse-bindings))
+ (rxi-reverse-bindings/sort! reverse-bindings)
+ reverse-bindings))
+
+;
+; Transform RXI-DOCUMENT instance DOCUMENT to XML-DOCUMENT instance.
+;
+(define (rxi-document/transform-to-xml document preferred-reverse-bindings)
+ (let
+ ((reverse-bindings
+ (make-rxi-reverse-bindings
+ (rxi-reverse-bindings/normalize-preferred preferred-reverse-bindings))))
+ (rxi-document/collect-reverse-bindings document reverse-bindings)
+ (let
+ ((xml-document
+ (make-xml-document
+ '() ; declaration
+ '() ; misc-1
+ '() ; dtd
+ '() ; misc-2
+ (rxi-element/transform-to-xml
+ (rxi-document/root document) reverse-bindings)
+ '()))) ; misc-3
+ (xml-document-add-bindings! xml-document reverse-bindings)
+ xml-document)))
+
+;
+; Save RXI-DOCUMENT instance DOCUMENT by transforming to an XML-DOCUMENT
+; instance and serializing to PATHNAME using XML package's document serializer,
+; where optional argument PREFERRED-REVERSE-BINDINGS, if specified, consists
+; of an association list whose keys are namespace URIs and values are the
+; preferred namespace prefixes to use to designate those namespaces.
+;
+; If a namepsace URI appears in DOCUMENT and it has no preferred binding
+; specified, then a prefix is generated unless the namespace URI is
+; "http://www.w3.org/XML/1998/namespace", in which case the prefix "xml" is
+; used.
+;
+(define (rxi-document/save document pathname #!optional preferred-reverse-bindings)
+ (let
+ ((xml-document
+ (rxi-document/transform-to-xml
+ document
+ (if (default-object? preferred-reverse-bindings)
+ '()
+ preferred-reverse-bindings))))
+ (call-with-output-file pathname
+ (lambda (port)
+ (write-xml xml-document port)))))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/test.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,4 @@
+
+(define *gd* (make-graphics-device 'win32 640 480))
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/test.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt ttp:profile="http://www.w3.org/2006/10/ttaf1#profile-dfxp"
+ xml:lang="en"
+ xmlns="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <head>
+ <metadata>
+ <ttm:title>Timed Text DFXP Example</ttm:title>
+ <ttm:copyright>The Authors (c) 2006</ttm:copyright>
+ </metadata>
+ <styling>
+ <!-- s1 specifies default color, font, and text alignment -->
+ <style xml:id="s1"
+ tts:color="white"
+ tts:fontFamily="proportionalSansSerif"
+ tts:fontSize="22px"
+ tts:textAlign="center"
+ />
+ <!-- alternative using yellow text but otherwise the same as style s1 -->
+ <style xml:id="s2" style="s1" tts:color="yellow"/>
+ <!-- a style based on s1 but justified to the right -->
+ <style xml:id="s1Right" style="s1" tts:textAlign="end" />
+ <!-- a style based on s2 but justified to the left -->
+ <style xml:id="s2Left" style="s2" tts:textAlign="start" />
+ </styling>
+ <layout>
+ <region xml:id="subtitleArea"
+ style="s1"
+ tts:extent="560px 62px"
+ tts:padding="5px 3px"
+ tts:backgroundColor="black"
+ tts:displayAlign="after"
+ />
+ </layout>
+ </head>
+ <body region="subtitleArea">
+ <div>
+ <p xml:id="subtitle1" begin="0.76s" end="3.45s">
+ It seems a paradox, does it not,
+ </p>
+ <p xml:id="subtitle2" begin="5.0s" end="10.0s">
+ that the image formed on<br/>
+ the Retina should be inverted?
+ </p>
+ <p xml:id="subtitle3" begin="10.0s" end="16.0s" style="s2">
+ It is puzzling, why is it<br/>
+ we do not see things upside-down?
+ </p>
+ <p xml:id="subtitle4" begin="17.2s" end="23.0s">
+ You have never heard the Theory,<br/>
+ then, that the Brain also is inverted?
+ </p>
+ <p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
+ No indeed! What a beautiful fact!
+ </p>
+ <p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
+ But how is it proved?
+ </p>
+ <p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
+ Thus: what we call
+ </p>
+ <p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
+ the vertex of the Brain<br/>
+ is really its base
+ </p>
+ <p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
+ and what we call its base<br/>
+ is really its vertex,
+ </p>
+ <p xml:id="subtitle9a" begin="53.5s" end="58.7s">
+ it is simply a question of nomenclature.
+ </p>
+ <p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
+ How truly delightful!
+ </p>
+ </div>
+ </body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/tir.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,12 @@
+;;; -*-Scheme-*-
+;;; Package: (dfxp rxi adi tir)
+
+;;;; DFXP Timing Interval Resolver
+
+(declare (usual-integrations))
+
+;
+; NOT YET IMPLEMENTED - TO BE PROVIDED PRIOR TO PROPOSED RECOMMENDATION PHASE
+;
+
+(define (adi-document/tir-transform document) document)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/util.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,27 @@
+;;; -*-Scheme-*-
+
+(declare (usual-integrations))
+
+(define (hp x)
+ (cond
+ ((integer? x)
+ (if (exact-integer? x)
+ (exact-integer->hexadecimal x)
+ (inexact-integer->hexadecimal x)))
+ ((string? x)
+ (string->hexadecimal x))
+ ((wide-string? x)
+ (wide-string->hexadecimal x))
+ (else "*unknown*")))
+
+(define (exact-integer->hexadecimal x)
+ (number->string x 16))
+
+(define (inexact-integer->hexadecimal x)
+ (exact-integer->hexadecimal (inexact->exact x)))
+
+(define (string->hexadecimal x)
+ (vector-8b->hexadecimal x))
+
+(define (wide-string->hexadecimal x)
+ x)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/scm/win32-ext.scm Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,441 @@
+;;; package: (win32 win32-ext)
+
+(declare (usual-integrations))
+
+(define (uint16-offset-ref v offset)
+ (let ((b1 (byte-offset-ref v offset))
+ (b2 (byte-offset-ref v (1+ offset))))
+ (fix:+ (fix:lsh b2 8) b1)))
+
+(define (uint16-offset-set! v offset item)
+ (let ((b1 (fix:and item #x00FF))
+ (b2 (fix:lsh (fix:and item #xFF00) -8)))
+ (byte-offset-set! v offset b1)
+ (byte-offset-set! v (1+ offset) b2)
+ unspecific))
+
+(define (vector-8b-copy v from to)
+ (substring v from to))
+
+(define (utf16-le-substring-find-next-char-using-byte-offsets string start end char)
+ (define-integrable (n i)
+ (vector-8b-ref string i))
+ (define-integrable (le-bytes->digit16 b0 b1)
+ (fix:or (fix:lsh b1 8) b0))
+ (define-integrable (high-surrogate? n)
+ (fix:= #xD800 (fix:and #xFC00 n)))
+ (define-integrable (low-surrogate? n)
+ (fix:= #xDC00 (fix:and #xFC00 n)))
+ (define-integrable (combine-surrogates d0 d1)
+ (fix:+ (fix:+ (fix:lsh (fix:and d0 #x3FF) 10) (fix:and d1 #x3FF)) #x10000))
+ (let ((code (char-code char)))
+ (let loop ((i start))
+ (if (fix:> (fix:+ i 2) end)
+ #f
+ (let ((d0 (le-bytes->digit16 (n (fix:+ i 0) ) (n (fix:+ i 1)))))
+ (if (not (high-surrogate? d0))
+ (if (fix:= d0 code)
+ i
+ (loop (fix:+ i 2)))
+ (if (fix:> (fix:+ i 4) end)
+ (error "Truncated UTF-16 input")
+ (let ((d1 (le-bytes->digit16 (n (fix:+ i 2)) (n (fix:+ i 3)))))
+ (if (not (low-surrogate? d1))
+ (error "Missing UTF-16 Low Surrogate")
+ (let ((c (combine-surrogates d0 d1)))
+ (if (fix:= c code)
+ i
+ (loop (fix:+ i 4)))))))))))))
+
+(define (utf16-le-ensure-termination string)
+ (if (not (utf16-le-string? string))
+ (error:wrong-type-argument string "a UTF-16 LE string")
+ (let ((nb (string-length string)))
+ (if (utf16-le-substring-find-next-char-using-byte-offsets string 0 nb #\U+0)
+ string
+ (string-append string "\000")))))
+
+(define-structure (point (conc-name point/)
+ (constructor %make-point))
+ mem)
+
+(define-integrable (point/x r) (int32-offset-ref (point/mem r) 0))
+(define-integrable (point/y r) (int32-offset-ref (point/mem r) 4))
+
+(define-integrable (set-point/x! r v) (int32-offset-set! (point/mem r) 0 v))
+(define-integrable (set-point/y! r v) (int32-offset-set! (point/mem r) 4 v))
+
+(define (make-point x y)
+ (define p (%make-point (make-vector-8b 8 0)))
+ (set-point/x! r x)
+ (set-point/y! r y)
+ p)
+
+(define-structure (text-metrics
+ (conc-name text-metrics/)
+ (constructor %make-text-metrics)
+ (print-procedure
+ (standard-unparser-method 'win32-text-metrics
+ (lambda (object port)
+ (text-metrics/unparse object port)))))
+ mem)
+
+(define (make-text-metrics)
+ (let ((v (make-vector-8b 60 0)))
+ (%make-text-metrics v)))
+
+(define-integrable (text-metrics/height tm)
+ (int32-offset-ref (text-metrics/mem tm) 0))
+(define-integrable (text-metrics/ascent tm)
+ (int32-offset-ref (text-metrics/mem tm) 4))
+(define-integrable (text-metrics/descent tm)
+ (int32-offset-ref (text-metrics/mem tm) 8))
+(define-integrable (text-metrics/internal-leading tm)
+ (int32-offset-ref (text-metrics/mem tm) 12))
+(define-integrable (text-metrics/external-leading tm)
+ (int32-offset-ref (text-metrics/mem tm) 16))
+(define-integrable (text-metrics/average-width tm)
+ (int32-offset-ref (text-metrics/mem tm) 20))
+(define-integrable (text-metrics/maximum-width tm)
+ (int32-offset-ref (text-metrics/mem tm) 24))
+(define-integrable (text-metrics/weight tm)
+ (int32-offset-ref (text-metrics/mem tm) 28))
+(define-integrable (text-metrics/overhang tm)
+ (int32-offset-ref (text-metrics/mem tm) 32))
+(define-integrable (text-metrics/digitized-aspect-x tm)
+ (int32-offset-ref (text-metrics/mem tm) 36))
+(define-integrable (text-metrics/digitized-aspect-y tm)
+ (int32-offset-ref (text-metrics/mem tm) 40))
+(define-integrable (text-metrics/first-character tm)
+ (uint16-offset-ref (text-metrics/mem tm) 44))
+(define-integrable (text-metrics/last-character tm)
+ (uint16-offset-ref (text-metrics/mem tm) 46))
+(define-integrable (text-metrics/default-character tm)
+ (uint16-offset-ref (text-metrics/mem tm) 48))
+(define-integrable (text-metrics/break-character tm)
+ (uint16-offset-ref (text-metrics/mem tm) 50))
+(define-integrable (text-metrics/italic tm)
+ (int->bool (byte-offset-ref (text-metrics/mem tm) 52)))
+(define-integrable (text-metrics/underlined tm)
+ (int->bool (byte-offset-ref (text-metrics/mem tm) 53)))
+(define-integrable (text-metrics/struck-out tm)
+ (int->bool (byte-offset-ref (text-metrics/mem tm) 54)))
+(define-integrable (text-metrics/pitch-and-family tm)
+ (byte-offset-ref (text-metrics/mem tm) 55))
+(define-integrable (text-metrics/character-set tm)
+ (byte-offset-ref (text-metrics/mem tm) 56))
+
+(define (text-metrics/unparse tm port)
+ (write-char #\newline port)
+ (write-line `(height ,(text-metrics/height tm)) port)
+ (write-line `(ascent ,(text-metrics/ascent tm)) port)
+ (write-line `(descent ,(text-metrics/descent tm)) port)
+ (write-line `(internal-leading ,(text-metrics/internal-leading tm)) port)
+ (write-line `(external-leading ,(text-metrics/external-leading tm)) port)
+ (write-line `(average-width ,(text-metrics/average-width tm)) port)
+ (write-line `(maximum-width ,(text-metrics/maximum-width tm)) port)
+ (write-line `(weight ,(text-metrics/weight tm)) port)
+ (write-line `(overhang ,(text-metrics/overhang tm)) port)
+ (write-line `(digitized-aspect-x ,(text-metrics/digitized-aspect-x tm)) port)
+ (write-line `(digitized-aspect-y ,(text-metrics/digitized-aspect-y tm)) port)
+ (write-line `(first-character ,(text-metrics/first-character tm)) port)
+ (write-line `(last-character ,(text-metrics/last-character tm)) port)
+ (write-line `(default-character ,(text-metrics/default-character tm)) port)
+ (write-line `(break-character ,(text-metrics/break-character tm)) port)
+ (write-line `(italic ,(text-metrics/italic tm)) port)
+ (write-line `(underlined ,(text-metrics/underlined tm)) port)
+ (write-line `(struck-out ,(text-metrics/struck-out tm)) port)
+ (write-line `(pitch-and-family ,(text-metrics/pitch-and-family tm)) port)
+ (write-line `(character-set ,(text-metrics/character-set tm)) port))
+
+(define-structure (outline-text-metrics
+ (conc-name outline-text-metrics/)
+ (constructor %make-outline-text-metrics))
+ mem)
+
+(define (make-outline-text-metrics size)
+ (let* ((v (make-vector-8b size 0))
+ (otm (%make-outline-text-metrics v)))
+ (set-outline-text-metrics/size! otm size)
+ otm))
+
+(define (outline-text-metrics/extract-string otm offset)
+ (let* ((ba (outline-text-metrics/mem otm))
+ (balen (string-length ba))
+ (baoff (uint32-offset-ref ba offset))
+ (end (utf16-le-substring-find-next-char-using-byte-offsets ba baoff balen #\U+0)))
+ (utf16-le-string->wide-string (vector-8b-copy ba baoff end))))
+
+(define-integrable (outline-text-metrics/size otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 0))
+(define-integrable (set-outline-text-metrics/size! otm v)
+ (int32-offset-set! (outline-text-metrics/mem otm) 0 v))
+(define-integrable (outline-text-metrics/height otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 4))
+(define-integrable (outline-text-metrics/ascent otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 8))
+(define-integrable (outline-text-metrics/descent otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 12))
+(define-integrable (outline-text-metrics/internal-leading otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 16))
+(define-integrable (outline-text-metrics/external-leading otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 20))
+(define-integrable (outline-text-metrics/average-width otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 24))
+(define-integrable (outline-text-metrics/maximum-width otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 28))
+(define-integrable (outline-text-metrics/weight otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 32))
+(define-integrable (outline-text-metrics/overhang otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 36))
+(define-integrable (outline-text-metrics/digitized-aspect-x otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 40))
+(define-integrable (outline-text-metrics/digitized-aspect-y otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 44))
+(define-integrable (outline-text-metrics/first-character otm)
+ (uint16-offset-ref (outline-text-metrics/mem otm) 48))
+(define-integrable (outline-text-metrics/last-character otm)
+ (uint16-offset-ref (outline-text-metrics/mem otm) 50))
+(define-integrable (outline-text-metrics/default-character otm)
+ (uint16-offset-ref (outline-text-metrics/mem otm) 52))
+(define-integrable (outline-text-metrics/break-character otm)
+ (uint16-offset-ref (outline-text-metrics/mem otm) 54))
+(define-integrable (outline-text-metrics/italic otm)
+ (int->bool (byte-offset-ref (outline-text-metrics/mem otm) 56)))
+(define-integrable (outline-text-metrics/underlined otm)
+ (int->bool (byte-offset-ref (outline-text-metrics/mem otm) 57)))
+(define-integrable (outline-text-metrics/struck-out otm)
+ (int->bool (byte-offset-ref (outline-text-metrics/mem otm) 58)))
+(define-integrable (outline-text-metrics/pitch-and-family otm)
+ (byte-offset-ref (outline-text-metrics/mem otm) 59))
+(define-integrable (outline-text-metrics/character-set otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 60))
+(define-integrable (outline-text-metrics/panose otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 65))
+(define-integrable (outline-text-metrics/selection otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 76))
+(define-integrable (outline-text-metrics/type otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 80))
+(define-integrable (outline-text-metrics/slope-rise otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 84))
+(define-integrable (outline-text-metrics/slope-run otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 88))
+(define-integrable (outline-text-metrics/italic-angle otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 92))
+(define-integrable (outline-text-metrics/em-square otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 96))
+(define-integrable (outline-text-metrics/typographic-ascent otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 100))
+(define-integrable (outline-text-metrics/typographic-descent otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 104))
+(define-integrable (outline-text-metrics/line-gap otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 108))
+(define-integrable (outline-text-metrics/capital-em-height otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 112))
+(define-integrable (outline-text-metrics/x-height otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 116))
+(define-integrable (outline-text-metrics/font-box otm)
+ (make-rect (vector-8b-copy (outline-text-metrics/mem otm) 120 16)))
+(define-integrable (outline-text-metrics/mac-ascent otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 136))
+(define-integrable (outline-text-metrics/mac-descent otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 140))
+(define-integrable (outline-text-metrics/mac-line-gap otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 144))
+(define-integrable (outline-text-metrics/minimum-ppem otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 148))
+(define-integrable (outline-text-metrics/subscript-size otm)
+ (make-point (vector-8b-copy (outline-text-metrics/mem otm) 152 8)))
+(define-integrable (outline-text-metrics/subscript-offset otm)
+ (make-point (vector-8b-copy (outline-text-metrics/mem otm) 160 8)))
+(define-integrable (outline-text-metrics/superscript-size otm)
+ (make-point (vector-8b-copy (outline-text-metrics/mem otm) 168 8)))
+(define-integrable (outline-text-metrics/superscript-offset otm)
+ (make-point (vector-8b-copy (outline-text-metrics/mem otm) 176 8)))
+(define-integrable (outline-text-metrics/strikeout-size otm)
+ (uint32-offset-ref (outline-text-metrics/mem otm) 184))
+(define-integrable (outline-text-metrics/strikeout-position otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 188))
+(define-integrable (outline-text-metrics/underscore-size otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 192))
+(define-integrable (outline-text-metrics/underscore-position otm)
+ (int32-offset-ref (outline-text-metrics/mem otm) 196))
+(define-integrable (outline-text-metrics/family-name otm)
+ (outline-text-metrics/extract-string otm 200))
+(define-integrable (outline-text-metrics/face-name otm)
+ (outline-text-metrics/extract-string otm 204))
+(define-integrable (outline-text-metrics/style-name otm)
+ (outline-text-metrics/extract-string otm 208))
+(define-integrable (outline-text-metrics/full-name otm)
+ (outline-text-metrics/extract-string otm 212))
+
+(define-structure (abc-metrics
+ (conc-name abc-metrics/)
+ (constructor %make-abc-metrics)
+ (print-procedure
+ (standard-unparser-method 'win32-abc-metrics
+ (lambda (object port)
+ (abc-metrics/unparse object port)))))
+ mem)
+
+(define (make-abc-metrics)
+ (let ((v (make-vector-8b 12 0)))
+ (%make-abc-metrics v)))
+
+(define-integrable (abc-metrics/a tm)
+ (uint32-offset-ref (abc-metrics/mem tm) 0))
+(define-integrable (abc-metrics/b tm)
+ (int32-offset-ref (abc-metrics/mem tm) 4))
+(define-integrable (abc-metrics/c tm)
+ (uint32-offset-ref (abc-metrics/mem tm) 8))
+
+(define (abc-metrics/unparse tm port)
+ (write-char #\newline port)
+ (write-line `(a ,(abc-metrics/a tm)) port)
+ (write-line `(b ,(abc-metrics/b tm)) port)
+ (write-line `(c ,(abc-metrics/c tm)) port))
+
+(define-windows-type lpword
+ (lambda (x) (and (vector-8b? x) (zero? (mod (vector-8b-length x) 2)))))
+
+(define-windows-type lpword*
+ (lambda (x) (or (eq? x #f)
+ (and (vector-8b? x) (zero? (mod (vector-8b-length x) 2))))))
+
+(define-windows-type lpdword
+ (lambda (x) (and (vector-8b? x) (zero? (mod (vector-8b-length x) 4)))))
+
+(define-windows-type lpdword*
+ (lambda (x) (or (eq? x #f)
+ (and (vector-8b? x) (zero? (mod (vector-8b-length x) 4))))))
+
+(define-windows-type lplong
+ (lambda (x) (and (vector-8b? x) (zero? (mod (vector-8b-length x) 4)))))
+
+(define-windows-type lplong*
+ (lambda (x) (or (eq? x #f)
+ (and (vector-8b? x) (zero? (mod (vector-8b-length x) 4))))))
+
+(define-windows-type lpwstr
+ (lambda (x) (wide-string? x))
+ (lambda (x) (utf16-le-ensure-termination (wide-string->utf16-le-string x)))
+ #f
+ #f)
+
+(define-windows-type lpwstr*
+ (lambda (x) (or (eq? x #f) (wide-string? x)))
+ (lambda (x) (and x (ensure-utf16-termination (wide-string->utf16-le-string x))))
+ #f
+ #f)
+
+(define-windows-type point
+ (lambda (x) (point? x))
+ (lambda (x) (point/mem x))
+ #f
+ #f)
+
+(define-windows-type point*
+ (lambda (x) (or (eq? x #f) (point? x)))
+ (lambda (x) (and x (point/mem x)))
+ #f
+ #f)
+
+(define-windows-type rect*
+ (lambda (x) (or (eq? x #f) (rect? x))
+ (lambda (x) (and x (rect/mem x))))
+ #f
+ #f)
+
+(define-windows-type text-metrics
+ (lambda (x) (text-metrics? x))
+ (lambda (x) (text-metrics/mem x))
+ #f
+ (lambda (x y) (set-text-metrics/mem! x y) unspecific))
+
+(define-windows-type outline-text-metrics
+ (lambda (x) (outline-text-metrics? x))
+ (lambda (x) (outline-text-metrics/mem x))
+ #f
+ (lambda (x y) (set-outline-text-metrics/mem! x y) unspecific))
+
+(define-windows-type outline-text-metrics*
+ (lambda (x) (or (eq? x #f) (outline-text-metrics? x)))
+ (lambda (x) (and x (outline-text-metrics/mem x)))
+ #f
+ (lambda (x y) (if (not (eq? x #f)) (set-outline-text-metrics/mem! x y)) unspecific))
+
+(define-windows-type abc-metrics
+ (lambda (x) (abc-metrics? x))
+ (lambda (x) (abc-metrics/mem x))
+ #f
+ (lambda (x y) (set-abc-metrics/mem! x y) unspecific))
+
+(define create-font
+ (windows-procedure
+ (create-font
+ (height int)
+ (width int)
+ (escapementAngle int)
+ (orientationAngle int)
+ (weight int)
+ (italic bool)
+ (underline bool)
+ (strikeOut bool)
+ (charSet dword)
+ (outputPrecision dword)
+ (clipPrecision dword)
+ (quality dword)
+ (pitchAndFamily dword)
+ (face lpwstr))
+ handle gdi32.dll "CreateFontW"))
+
+(define get-text-metrics
+ (windows-procedure
+ (get-text-metrics
+ (hdc hdc)
+ (tm text-metrics))
+ handle gdi32.dll "GetTextMetricsW"))
+
+(define get-outline-text-metrics
+ (windows-procedure
+ (get-outline-text-metrics
+ (hdc hdc)
+ (size uint)
+ (otm outline-text-metrics*))
+ handle gdi32.dll "GetOutlineTextMetricsW"))
+
+(define (get-outline-text-metrics-size hdc)
+ (get-outline-text-metrics hdc 0 #f))
+
+(define get-abc-metrics
+ (windows-procedure
+ (get-abc-metrics
+ (hdc hdc)
+ (first-glyph uint)
+ (num-glyphs uint)
+ (glyphs lpword*)
+ (metrics lpdword))
+ handle gdi32.dll "GetCharABCWidthsI"))
+
+(define ext-text-out
+ (windows-procedure
+ (ext-text-out
+ (hdc hdc)
+ (x int)
+ (y int)
+ (options uint)
+ (dimensions rect*)
+ (text lpwstr)
+ (count uint)
+ (escapements lplong*))
+ bool gdi32.dll "ExtTextOutW"))
+
+(define (win32-graphics/get-font-metrics device)
+ (let* ((window (graphics-device/descriptor device))
+ (hdc (win32-device/hdc window))
+ (size (get-outline-text-metrics-size hdc))
+ (otm (make-outline-text-metrics size))
+ (success? (fix:= (get-outline-text-metrics hdc size (outline-text/metrics/mem otm)) size)))
+ (if (not success?)
+ (graphics-error "Cannot obtain outline font metrics")
+ otm)))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/aDisplay001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Animation Test - Display - 001</ttm:title>
+<ttm:description>Test tts:display style animation as applies to span element. This test derives
+from the example contained in Section 8.2.5 of the DFXP specification.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="370px 120px"/>
+<style tts:origin="135px 180px"/>
+<style tts:displayAlign="before"/>
+<style tts:textAlign="start"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 62px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+ <p dur="5s">
+ [[[
+ <span tts:display="none" tts:color="yellow">
+ <set begin="1s" dur="1s" tts:display="auto"/>
+ Beautiful soup,
+ </span>
+ <span tts:display="none" tts:color="yellow">
+ <set begin="2s" dur="1s" tts:display="auto"/>
+ so rich and green,
+ </span>
+ <span tts:display="none" tts:color="yellow">
+ <set begin="3s" dur="1s" tts:display="auto"/>
+ waiting in a hot tureen!
+ </span>
+ ]]]
+ </p>
+</div>
+<div region="r2">
+<p>At 1, 2, and 3 seconds, respectively, <span tts:color="yellow">yellow</span> text spans <span
+tts:color="yellow" tts:fontWeight="bold">Beautiful soup,</span>, <span tts:color="yellow"
+tts:fontWeight="bold">so rich and green,</span>, and <span tts:color="yellow"
+tts:fontWeight="bold">waiting in a hot tureen!</span> SHOULD appear between the <span
+tts:color="aqua">aqua</span> square brackets <span tts:color="aqua" tts:fontWeight="bold">[[[
+]]]</span> in the region area below. At 5 seconds, all text below SHOULD disappear.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/dfxp-test-suite-20070421.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/filelist.txt Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,34 @@
+c:\work\ttaf1\trunk\dfxp\tests\sBackgroundColor001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sColor001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sColor002.xml
+c:\work\ttaf1\trunk\dfxp\tests\sColor003.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDisplay001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDisplay002.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDisplay003.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDisplay004.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDisplay005.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDisplayAlign001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sDynamicFlow001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sExtent001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sFontFamily001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sFontFamily002.xml
+c:\work\ttaf1\trunk\dfxp\tests\sFontSize001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sFontStyle001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sFontWeight001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sLineHeight001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sOpacity001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sOrigin001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sOverflow001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sPadding001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sShowBackground001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sTextAlign001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sTextDecoration001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sTextOutline001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sUnicodeBidi001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sVisibility001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sWrapOption001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sWritingMode001.xml
+c:\work\ttaf1\trunk\dfxp\tests\sWritingMode002.xml
+c:\work\ttaf1\trunk\dfxp\tests\sWritingMode003.xml
+c:\work\ttaf1\trunk\dfxp\tests\sZIndex001.xml
+c:\work\ttaf1\trunk\dfxp\tests\aDisplay001.xml
Binary file old/dfxp/tests/sBackgroundColor001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sBackgroundColor001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Background Color - 001</ttm:title>
+<ttm:description>Test tts:backgroundColor style as applies to region, body, div, p, and span elements.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:lineHeight="24px"/>
+<style tts:backgroundColor="#808080"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 114px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="400px 114px"/>
+<style tts:origin="120px 366px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body region="r1" tts:backgroundColor="white">
+<div><p>WHITE</p></div>
+<div tts:backgroundColor="red"><p>RED</p></div>
+<div tts:backgroundColor="green">
+<p>GREEN</p>
+<p tts:backgroundColor="red">RED</p>
+<p tts:backgroundColor="lime">
+<span>LIME</span>
+<span tts:backgroundColor="red">RED</span>
+<span tts:backgroundColor="green">GREEN</span>
+<span tts:backgroundColor="blue">BLUE</span>
+<span>LIME</span>
+</p>
+<p tts:backgroundColor="blue">BLUE</p>
+<p>GREEN</p>
+</div>
+<div tts:backgroundColor="yellow"><p>YELLOW</p></div>
+<div><p>WHITE</p></div>
+<div region="r2" tts:backgroundColor="#808080">
+<p>This area (region background) SHOULD be gray. The following areas SHOULD have the specified background colors.</p>
+</div>
+<div region="r3" tts:backgroundColor="#808080"><p>This area (region background) SHOULD be gray.</p></div>
+</body>
+</tt>
Binary file old/dfxp/tests/sColor001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sColor001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Color - 001</ttm:title>
+<ttm:description>Test tts:color style as applies to span element (as inherited from p element), using named, #rrggbb, and #rrggbbaa color expressions.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<styling>
+<style xml:id="ps" tts:backgroundColor="#404040"/>
+</styling>
+<layout>
+<region xml:id="r1">
+<style tts:extent="100px 364px"/>
+<style tts:origin="0px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="100px 364px"/>
+<style tts:origin="540px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="100px 364px"/>
+<style tts:origin="270px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="100px 364px"/>
+<style tts:origin="135px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="100px 364px"/>
+<style tts:origin="405px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 418px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p style="ps" tts:color="aqua">aqua</p>
+<p style="ps" tts:color="black">black</p>
+<p style="ps" tts:color="blue">blue</p>
+<p style="ps" tts:color="cyan">cyan</p>
+<p style="ps" tts:color="fuchsia">fuchsia</p>
+<p style="ps" tts:color="gray">gray</p>
+<p style="ps" tts:color="green">green</p>
+<p style="ps" tts:color="lime">lime</p>
+<p style="ps" tts:color="magenta">magenta</p>
+<p style="ps" tts:color="maroon">maroon</p>
+<p style="ps" tts:color="navy">navy</p>
+<p style="ps" tts:color="olive">olive</p>
+<p style="ps" tts:color="purple">purple</p>
+<p style="ps" tts:color="red">red</p>
+<p style="ps" tts:color="silver">silver</p>
+<p style="ps" tts:color="teal">teal</p>
+<p style="ps" tts:color="white">white</p>
+<p style="ps" tts:color="yellow">yellow</p>
+</div>
+<div region="r2">
+<p style="ps" tts:color="#00ffffff">aqua</p>
+<p style="ps" tts:color="#000000ff">black</p>
+<p style="ps" tts:color="#0000ffff">blue</p>
+<p style="ps" tts:color="#00ffffff">cyan</p>
+<p style="ps" tts:color="#ff00ffff">fuchsia</p>
+<p style="ps" tts:color="#808080ff">gray</p>
+<p style="ps" tts:color="#008000ff">green</p>
+<p style="ps" tts:color="#00ff00ff">lime</p>
+<p style="ps" tts:color="#ff00ffff">magenta</p>
+<p style="ps" tts:color="#800000ff">maroon</p>
+<p style="ps" tts:color="#000080ff">navy</p>
+<p style="ps" tts:color="#808000ff">olive</p>
+<p style="ps" tts:color="#800080ff">purple</p>
+<p style="ps" tts:color="#ff0000ff">red</p>
+<p style="ps" tts:color="#c0c0c0ff">silver</p>
+<p style="ps" tts:color="#008080ff">teal</p>
+<p style="ps" tts:color="#ffffffff">white</p>
+<p style="ps" tts:color="#ffff00ff">yellow</p>
+</div>
+<div region="r3">
+<p style="ps" tts:color="#00ffff">aqua</p>
+<p style="ps" tts:color="#000000">black</p>
+<p style="ps" tts:color="#0000ff">blue</p>
+<p style="ps" tts:color="#00ffff">cyan</p>
+<p style="ps" tts:color="#ff00ff">fuchsia</p>
+<p style="ps" tts:color="#808080">gray</p>
+<p style="ps" tts:color="#008000">green</p>
+<p style="ps" tts:color="#00ff00">lime</p>
+<p style="ps" tts:color="#ff00ff">magenta</p>
+<p style="ps" tts:color="#800000">maroon</p>
+<p style="ps" tts:color="#000080">navy</p>
+<p style="ps" tts:color="#808000">olive</p>
+<p style="ps" tts:color="#800080">purple</p>
+<p style="ps" tts:color="#ff0000">red</p>
+<p style="ps" tts:color="#c0c0c0">silver</p>
+<p style="ps" tts:color="#008080">teal</p>
+<p style="ps" tts:color="#ffffff">white</p>
+<p style="ps" tts:color="#ffff00">yellow</p>
+</div>
+<div region="r4">
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+</div>
+<div region="r5">
+<p style="ps" tts:color="#00ffff00">not empty!</p>
+<p style="ps" tts:color="#00000000">not empty!</p>
+<p style="ps" tts:color="#0000ff00">not empty!</p>
+<p style="ps" tts:color="#00ffff00">not empty!</p>
+<p style="ps" tts:color="#ff00ff00">not empty!</p>
+<p style="ps" tts:color="#80808000">not empty!</p>
+<p style="ps" tts:color="#00800000">not empty!</p>
+<p style="ps" tts:color="#00ff0000">not empty!</p>
+<p style="ps" tts:color="#ff00ff00">not empty!</p>
+<p style="ps" tts:color="#80000000">not empty!</p>
+<p style="ps" tts:color="#00008000">not empty!</p>
+<p style="ps" tts:color="#80800000">not empty!</p>
+<p style="ps" tts:color="#80008000">not empty!</p>
+<p style="ps" tts:color="#ff000000">not empty!</p>
+<p style="ps" tts:color="#c0c0c000">not empty!</p>
+<p style="ps" tts:color="#00808000">not empty!</p>
+<p style="ps" tts:color="#ffffff00">not empty!</p>
+<p style="ps" tts:color="#ffff0000">not empty!</p>
+</div>
+<div region="r6">
+<p>The left, center, and right areas below SHOULD have the specified text
+colors, and each of these areas SHOULD have identical appearance and
+color.</p>
+</div>
+<div region="r7">
+<p>The two gray areas between the above left, center, and right areas
+SHOULD be empty.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sColor002.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sColor002.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Color - 002</ttm:title>
+<ttm:description>Test tts:color style as applies to span element (as inherited from p element), using named, rgb(r,g,b), and rgba(r,g,b,a) color expressions.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<styling>
+<style xml:id="ps" tts:backgroundColor="#404040"/>
+</styling>
+<layout>
+<region xml:id="r1">
+<style tts:extent="100px 364px"/>
+<style tts:origin="0px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="100px 364px"/>
+<style tts:origin="540px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="100px 364px"/>
+<style tts:origin="270px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="100px 364px"/>
+<style tts:origin="135px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="100px 364px"/>
+<style tts:origin="405px 62px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:lineHeight="20px"/>
+<style tts:backgroundColor="white"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 418px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p style="ps" tts:color="aqua">aqua</p>
+<p style="ps" tts:color="black">black</p>
+<p style="ps" tts:color="blue">blue</p>
+<p style="ps" tts:color="cyan">cyan</p>
+<p style="ps" tts:color="fuchsia">fuchsia</p>
+<p style="ps" tts:color="gray">gray</p>
+<p style="ps" tts:color="green">green</p>
+<p style="ps" tts:color="lime">lime</p>
+<p style="ps" tts:color="magenta">magenta</p>
+<p style="ps" tts:color="maroon">maroon</p>
+<p style="ps" tts:color="navy">navy</p>
+<p style="ps" tts:color="olive">olive</p>
+<p style="ps" tts:color="purple">purple</p>
+<p style="ps" tts:color="red">red</p>
+<p style="ps" tts:color="silver">silver</p>
+<p style="ps" tts:color="teal">teal</p>
+<p style="ps" tts:color="white">white</p>
+<p style="ps" tts:color="yellow">yellow</p>
+</div>
+<div region="r2">
+<p style="ps" tts:color="rgba(0,255,255,255)">aqua</p>
+<p style="ps" tts:color="rgba(0,0,0,255)">black</p>
+<p style="ps" tts:color="rgba(0,0,255,255)">blue</p>
+<p style="ps" tts:color="rgba(0,255,255,255)">cyan</p>
+<p style="ps" tts:color="rgba(255,0,255,255)">fuchsia</p>
+<p style="ps" tts:color="rgba(128,128,128,255)">gray</p>
+<p style="ps" tts:color="rgba(0,128,0,255)">green</p>
+<p style="ps" tts:color="rgba(0,255,0,255)">lime</p>
+<p style="ps" tts:color="rgba(255,0,255,255)">magenta</p>
+<p style="ps" tts:color="rgba(128,0,0,255)">maroon</p>
+<p style="ps" tts:color="rgba(0,0,128,255)">navy</p>
+<p style="ps" tts:color="rgba(128,128,0,255)">olive</p>
+<p style="ps" tts:color="rgba(128,0,128,255)">purple</p>
+<p style="ps" tts:color="rgba(256,0,0,255)">red</p>
+<p style="ps" tts:color="rgba(192,192,192,255)">silver</p>
+<p style="ps" tts:color="rgba(0,128,128,255)">teal</p>
+<p style="ps" tts:color="rgba(255,255,255,255)">white</p>
+<p style="ps" tts:color="rgba(255,255,0,255)">yellow</p>
+</div>
+<div region="r3">
+<p style="ps" tts:color="rgb(0,255,255)">aqua</p>
+<p style="ps" tts:color="rgb(0,0,0)">black</p>
+<p style="ps" tts:color="rgb(0,0,255)">blue</p>
+<p style="ps" tts:color="rgb(0,255,255)">cyan</p>
+<p style="ps" tts:color="rgb(255,0,255)">fuchsia</p>
+<p style="ps" tts:color="rgb(128,128,128)">gray</p>
+<p style="ps" tts:color="rgb(0,128,0)">green</p>
+<p style="ps" tts:color="rgb(0,255,0)">lime</p>
+<p style="ps" tts:color="rgb(255,0,255)">magenta</p>
+<p style="ps" tts:color="rgb(128,0,0)">maroon</p>
+<p style="ps" tts:color="rgb(0,0,128)">navy</p>
+<p style="ps" tts:color="rgb(128,128,0)">olive</p>
+<p style="ps" tts:color="rgb(128,0,128)">purple</p>
+<p style="ps" tts:color="rgb(256,0,0)">red</p>
+<p style="ps" tts:color="rgb(192,192,192)">silver</p>
+<p style="ps" tts:color="rgb(0,128,128)">teal</p>
+<p style="ps" tts:color="rgb(255,255,255)">white</p>
+<p style="ps" tts:color="rgb(255,255,0)">yellow</p>
+</div>
+<div region="r4">
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+<p style="ps" tts:color="transparent">not empty!</p>
+</div>
+<div region="r5">
+<p style="ps" tts:color="rgba(0,255,255,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,0,0,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,0,255,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,255,255,0)">not empty!</p>
+<p style="ps" tts:color="rgba(255,0,255,0)">not empty!</p>
+<p style="ps" tts:color="rgba(128,128,128,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,128,0,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,255,0,0)">not empty!</p>
+<p style="ps" tts:color="rgba(255,0,255,0)">not empty!</p>
+<p style="ps" tts:color="rgba(128,0,0,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,0,128,0)">not empty!</p>
+<p style="ps" tts:color="rgba(128,128,0,0)">not empty!</p>
+<p style="ps" tts:color="rgba(128,0,128,0)">not empty!</p>
+<p style="ps" tts:color="rgba(256,0,0,0)">not empty!</p>
+<p style="ps" tts:color="rgba(192,192,192,0)">not empty!</p>
+<p style="ps" tts:color="rgba(0,128,128,0)">not empty!</p>
+<p style="ps" tts:color="rgba(255,255,255,0)">not empty!</p>
+<p style="ps" tts:color="rgba(255,255,0,0)">not empty!</p>
+</div>
+<div region="r6">
+<p>The left, center, and right areas below SHOULD have the specified text
+colors, and each of these areas SHOULD have identical appearance and
+color.</p>
+</div>
+<div region="r7">
+<p>The two gray areas between the above left, center, and right areas
+SHOULD be empty.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sColor003.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sColor003.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Color - 003</ttm:title>
+<ttm:description>Test tts:color style as applies to span element instances individually within a single p element, using named color expressions.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="500px 100px"/>
+<style tts:origin="70px 190px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontSize="18px"/>
+<style tts:fontWeight="bold"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="22px"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontSize="14px"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p>
+<span tts:color="aqua">aqua</span>
+<span tts:color="black">black</span>
+<span tts:color="blue">blue</span>
+<span tts:color="cyan">cyan</span>
+<span tts:color="fuchsia">fuchsia</span>
+<span tts:color="gray">gray</span>
+<span tts:color="green">green</span>
+<span tts:color="lime">lime</span>
+<span tts:color="magenta">magenta</span>
+<span tts:color="maroon">maroon</span>
+<span tts:color="navy">navy</span>
+<span tts:color="olive">olive</span>
+<span tts:color="purple">purple</span>
+<span tts:color="red">red</span>
+<span tts:color="silver">silver</span>
+<span tts:color="teal">teal</span>
+<span tts:color="white">white</span>
+<span tts:color="yellow">yellow</span>
+</p>
+</div>
+<div region="r2">
+<p>The block area below SHOULD contain line areas with spans of colored text using the indicated colors,
+starting with <span tts:color="aqua">aqua</span> and ending with <span tts:color="yellow">yellow</span>.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sDisplay001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDisplay001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Display - 001</ttm:title>
+<ttm:description>Test tts:display="none" style as applies to body element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="400px 150px"/>
+<style tts:origin="120px 60px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="green"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 150px"/>
+<style tts:origin="120px 270px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="red"/>
+</region>
+</layout>
+</head>
+<body tts:display="none">
+<div region="r1">
+<p>This text SHOULD NOT be visible.</p>
+</div>
+<div region="r2">
+<p>This text SHOULD NOT be visible.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sDisplay002.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDisplay002.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Display - 002</ttm:title>
+<ttm:description>Test tts:display="auto" style as applies to body element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="400px 150px"/>
+<style tts:origin="120px 60px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="green"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 150px"/>
+<style tts:origin="120px 270px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="red"/>
+</region>
+</layout>
+</head>
+<body tts:display="auto">
+<div region="r1">
+<p>This text SHOULD be visible.</p>
+</div>
+<div region="r2">
+<p>This text SHOULD be visible.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sDisplay003.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDisplay003.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Display - 003</ttm:title>
+<ttm:description>Test tts:display style as applies to div element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="500px 100px"/>
+<style tts:origin="70px 190px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontSize="18px"/>
+<style tts:fontWeight="bold"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="22px"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontSize="14px"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body tts:display="auto">
+<div region="r1" tts:backgroundColor="red" tts:display="none">
+<p>This text SHOULD NOT be visible.</p>
+</div>
+<div region="r1" tts:backgroundColor="aqua" tts:display="auto">
+<p>This text SHOULD be visible.</p>
+</div>
+<div region="r2">
+<p>The block area below SHOULD contain at least one line area whose
+background color is <span tts:color="aqua">aqua</span>; furthermore, it
+SHOULD NOT contain any line area whose background color is <span
+tts:color="red">red</span>.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sDisplay004.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDisplay004.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Display - 004</ttm:title>
+<ttm:description>Test tts:display style as applies to p element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="500px 100px"/>
+<style tts:origin="70px 190px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontSize="18px"/>
+<style tts:fontWeight="bold"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="22px"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontSize="14px"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body tts:display="auto">
+<div region="r1">
+<p tts:backgroundColor="red" tts:display="none">This text SHOULD NOT be visible.</p>
+<p tts:backgroundColor="aqua" tts:display="auto">This text SHOULD be visible.</p>
+</div>
+<div region="r2">
+<p>The block area below SHOULD contain at least one line area whose
+background color is <span tts:color="aqua">aqua</span>; furthermore, it
+SHOULD NOT contain any line area whose background color is <span
+tts:color="red">red</span>.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sDisplay005.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDisplay005.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Display - 005</ttm:title>
+<ttm:description>Test tts:display style as applies to span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="500px 100px"/>
+<style tts:origin="70px 190px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontSize="18px"/>
+<style tts:fontWeight="bold"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="22px"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontSize="14px"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body tts:display="auto">
+<div region="r1">
+<p>
+<span tts:backgroundColor="red" tts:display="none">This text SHOULD NOT be visible.<br/></span>
+<span tts:backgroundColor="aqua" tts:display="auto">This text SHOULD be visible.</span>
+</p>
+</div>
+<div region="r2">
+<p>The block area below SHOULD contain at least one inline area whose
+background color is <span tts:color="aqua">aqua</span>; furthermore, it
+SHOULD NOT contain any inline area whose background color is <span
+tts:color="red">red</span>.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sDisplayAlign001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDisplayAlign001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Display Align - 001</ttm:title>
+<ttm:description>Test tts:displayAlign style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="100px 304px"/>
+<style tts:origin="135px 92px"/>
+<style tts:displayAlign="before"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="100px 304px"/>
+<style tts:origin="270px 92px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="100px 304px"/>
+<style tts:origin="405px 92px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1" tts:backgroundColor="aqua">
+<p>BEFORE</p>
+</div>
+<div region="r2" tts:backgroundColor="aqua">
+<p>CENTER</p>
+</div>
+<div region="r3" tts:backgroundColor="aqua">
+<p>AFTER</p>
+</div>
+<div region="r4">
+<p>Each of the left, center, and right region areas below SHOULD contain one block
+area aligned <span tts:fontWeight="bold" tts:color="yellow">before</span> (top), <span
+tts:fontWeight="bold" tts:color="yellow">center</span>, and <span
+tts:fontWeight="bold" tts:color="yellow">after</span> (bottom), respectively.</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sDynamicFlow001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Dynamic Flow - 001</ttm:title>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+</region>
+</layout>
+</head>
+<body region="r1">
+<div><p>Not Yet Implemented</p></div>
+</body>
+</tt>
Binary file old/dfxp/tests/sExtent001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sExtent001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Extent - 001</ttm:title>
+<ttm:description>Test tts:extent style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="10px 10px"/>
+<style tts:origin="20px 100px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="20px 20px"/>
+<style tts:origin="30px 110px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="30px 30px"/>
+<style tts:origin="50px 130px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="40px 40px"/>
+<style tts:origin="80px 160px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="50px 50px"/>
+<style tts:origin="120px 200px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="60px 60px"/>
+<style tts:origin="170px 250px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="70px 70px"/>
+<style tts:origin="230px 310px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r8">
+<style tts:extent="80px 80px"/>
+<style tts:origin="300px 380px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r9">
+<style tts:extent="10px 10px"/>
+<style tts:origin="30px 100px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r10">
+<style tts:extent="20px 20px"/>
+<style tts:origin="50px 110px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r11">
+<style tts:extent="30px 30px"/>
+<style tts:origin="80px 130px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r12">
+<style tts:extent="40px 40px"/>
+<style tts:origin="120px 160px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r13">
+<style tts:extent="50px 50px"/>
+<style tts:origin="170px 200px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r14">
+<style tts:extent="60px 60px"/>
+<style tts:origin="230px 250px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r15">
+<style tts:extent="70px 70px"/>
+<style tts:origin="300px 310px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r16">
+<style tts:extent="80px 80px"/>
+<style tts:origin="380px 380px"/>
+<style tts:backgroundColor="lime"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r17">
+<style tts:extent="10px 10px"/>
+<style tts:origin="40px 100px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r18">
+<style tts:extent="20px 20px"/>
+<style tts:origin="70px 110px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r19">
+<style tts:extent="30px 30px"/>
+<style tts:origin="110px 130px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r20">
+<style tts:extent="40px 40px"/>
+<style tts:origin="160px 160px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r21">
+<style tts:extent="50px 50px"/>
+<style tts:origin="220px 200px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r22">
+<style tts:extent="60px 60px"/>
+<style tts:origin="290px 250px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r23">
+<style tts:extent="70px 70px"/>
+<style tts:origin="370px 310px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r24">
+<style tts:extent="80px 80px"/>
+<style tts:origin="460px 380px"/>
+<style tts:backgroundColor="blue"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r25">
+<style tts:extent="10px 10px"/>
+<style tts:origin="50px 100px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r26">
+<style tts:extent="20px 20px"/>
+<style tts:origin="90px 110px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r27">
+<style tts:extent="30px 30px"/>
+<style tts:origin="140px 130px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r28">
+<style tts:extent="40px 40px"/>
+<style tts:origin="200px 160px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r29">
+<style tts:extent="50px 50px"/>
+<style tts:origin="270px 200px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r30">
+<style tts:extent="60px 60px"/>
+<style tts:origin="350px 250px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r31">
+<style tts:extent="70px 70px"/>
+<style tts:origin="440px 310px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r32">
+<style tts:extent="80px 80px"/>
+<style tts:origin="540px 380px"/>
+<style tts:backgroundColor="yellow"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r99">
+<style tts:extent="580px 62px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r99">
+<p>A geometric, staircase pattern 32 of <span tts:color="red">red</span>,
+<span tts:color="lime">lime</span>, <span tts:color="blue">blue</span>, and
+<span tts:color="yellow">yellow</span> square, empty regions of increasing
+sizes SHOULD appear below.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sFontFamily001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sFontFamily001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Font Family - 001</ttm:title>
+<ttm:description>Test tts:fontFamily style as applies to the span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:origin="0px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontSize="24px"/>
+<style tts:fontWeight="normal"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 420px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p><span tts:fontFamily="default">default</span></p>
+<p><span tts:fontFamily="monospace">monospace</span></p>
+<p><span tts:fontFamily="monospaceSerif">monospaceSerif</span></p>
+<p><span tts:fontFamily="monospaceSansSerif">monospaceSansSerif</span></p>
+<p><span tts:fontFamily="proportionalSansSerif">proportionalSansSerif</span></p>
+<p><span tts:fontFamily="proportionalSerif">proportionalSerif</span></p>
+<p><span tts:fontFamily="sansSerif">sansSerif</span></p>
+<p><span tts:fontFamily="serif">serif</span></p>
+</div>
+<div region="r2">
+<p>Eight lines of text SHOULD be visible below, where, according to the set of available fonts,
+at least two distinct generic font familes SHOULD be visible.</p>
+</div>
+<div region="r3">
+<p>If a font family corresponding to an indicated generic font family
+name is not available, then the affected text SHOULD be presented
+using an available font family that most closely resembles the specified family.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sFontFamily002.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sFontFamily002.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Font Family - 002</ttm:title>
+<ttm:description>Test tts:fontFamily style as applies to the span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:origin="0px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontWeight="normal"/>
+<style tts:fontSize="48px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 420px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p><span tts:fontFamily="Arial Narrow">Arial Narrow</span></p>
+<p><span tts:fontFamily="Courier New">Courier New</span></p>
+<p><span tts:fontFamily="Lucida Calligraphy">Lucida Calligraphy</span></p>
+<p><span tts:fontFamily="Times New Roman">Times New Roman</span></p>
+</div>
+<div region="r2">
+<p>Four lines of text SHOULD be visible below, where, according to the set of available fonts,
+at least two distinct named font familes MAY be visible.</p>
+</div>
+<div region="r3">
+<p>If a font family corresponding to an indicated named font family
+is not available, then the affected text MAY be presented
+using a font family that resembles the specified family.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sFontSize001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sFontSize001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Font Size - 001</ttm:title>
+<ttm:description>Test tts:fontSize style as applies to the span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 320px"/>
+<style tts:origin="0px 80px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="640px 40px"/>
+<style tts:origin="0px 400px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p><span tts:fontSize="12px">12px</span></p>
+<p><span tts:fontSize="16px">16px</span></p>
+<p><span tts:fontSize="20px">20px</span></p>
+<p><span tts:fontSize="28px">28px</span></p>
+<p><span tts:fontSize="36px">36px</span></p>
+<p><span tts:fontSize="48px">48px</span></p>
+<p><span tts:fontSize="64px">64px</span></p>
+</div>
+<div region="r2">
+<p tts:fontSize="24px">
+<span tts:fontSize="22px">22px</span>
+<span tts:fontSize="24px">24px</span>
+<span tts:fontSize="36px">36px</span>
+<span tts:fontSize="48px">48px</span>
+<span tts:fontSize="36px">36px</span>
+<span tts:fontSize="24px">24px</span>
+<span tts:fontSize="22px">22px</span>
+</p>
+</div>
+<div region="r3">
+<p>Two regions SHOULD appear below, the first containing seven line areas, where each line is
+rendered at a progressively larger size as indicated, and the second containing one line area
+with varying sizes of inline areas as indicated.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sFontStyle001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sFontStyle001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Font Style - 001</ttm:title>
+<ttm:description>Test tts:fontStyle style as applies to the span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:origin="0px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontSize="64px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 432px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p><span tts:fontStyle="normal">normal</span></p>
+<p><span tts:fontStyle="italic">italic</span></p>
+<p><span tts:fontStyle="oblique">oblique</span></p>
+<p><span tts:fontStyle="reverseOblique">reverse oblique</span></p>
+</div>
+<div region="r2">
+<p>Four lines of text SHOULD be visible below, where, according to the set of available fonts,
+at least two distinct font styles SHOULD be visible, where the font style of the first line SHOULD
+correspond to a <span tts:color="aqua" tts:fontWeight="bold"
+tts:fontStyle="normal">normal</span> font face, and at least one of the subsequent lines SHOULD
+correspond to an <span tts:color="aqua" tts:fontWeight="bold"
+tts:fontStyle="italic">italic</span> or <span tts:color="aqua" tts:fontWeight="bold"
+tts:fontStyle="oblique">oblique</span> font face.</p>
+</div>
+<div region="r3">
+<p>If a font face corresponding to an indicated font style is not available, then
+the affected text SHOULD be presented using a font face that most
+closely resembles the specified style.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sFontWeight001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sFontWeight001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Font Weight - 001</ttm:title>
+<ttm:description>Test tts:fontWeight style as applies to the span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:origin="0px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontSize="64px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 432px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p><span tts:fontWeight="normal">normal</span></p>
+<p><span tts:fontWeight="bold">bold</span></p>
+</div>
+<div region="r2">
+<p>Two lines of text SHOULD be visible below, where, according to the set of available fonts, at
+least two distinct font weights SHOULD be used, where the font weight of the first line SHOULD
+correspond to a <span tts:color="aqua" tts:fontWeight="normal">normal</span> font weight, and
+the second line SHOULD correspond to a <span tts:color="aqua" tts:fontWeight="bold">bold</span>
+font weight.</p>
+</div>
+<div region="r3">
+<p>If a font weight corresponding to an indicated weight is not available, then
+the affected text SHOULD be presented using a font weight that most closely resembles the
+specified weight.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sLineHeight001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sLineHeight001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Line Height - 001</ttm:title>
+<ttm:description>Test tts:lineHeight style as applies to the p element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="200px 240px"/>
+<style tts:origin="220px 120px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="#800000"/>
+<style tts:fontFamily="default"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#404040"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1" tts:fontSize="14px">
+<p tts:backgroundColor="#F0F0F0" tts:lineHeight="14px">14/14</p>
+<p tts:backgroundColor="#E0E0E0" tts:lineHeight="16px">14/16</p>
+<p tts:backgroundColor="#D0D0D0" tts:lineHeight="20px">14/20</p>
+<p tts:backgroundColor="#C0C0C0" tts:lineHeight="24px">14/24</p>
+<p tts:backgroundColor="#B0B0B0" tts:lineHeight="32px">14/32</p>
+<p tts:backgroundColor="#A0A0A0" tts:lineHeight="48px">14/48</p>
+<p tts:backgroundColor="#909090" tts:lineHeight="64px">14/64</p>
+</div>
+<div region="r2">
+<p>Seven line areas with progressively larger line heights SHOULD appear in a region area below,
+where the indicated font size '/' <span tts:fontWeight="bold" tts:color="aqua">line
+height</span> applies.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sOpacity001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sOpacity001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Opacity - 001</ttm:title>
+<ttm:description>Test tts:opacity style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="36px 36px"/>
+<style tts:origin="379px 321px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.1"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="36px 36px"/>
+<style tts:origin="415px 271px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.2"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="36px 36px"/>
+<style tts:origin="415px 209px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.3"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="36px 36px"/>
+<style tts:origin="379px 159px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.4"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="36px 36px"/>
+<style tts:origin="320px 140px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.5"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="36px 36px"/>
+<style tts:origin="261px 159px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.6"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="36px 36px"/>
+<style tts:origin="225px 209px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.7"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r8">
+<style tts:extent="36px 36px"/>
+<style tts:origin="225px 271px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.8"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r9">
+<style tts:extent="36px 36px"/>
+<style tts:origin="261px 321px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="0.9"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r10">
+<style tts:extent="36px 36px"/>
+<style tts:origin="320px 340px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:opacity="1.0"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r99">
+<style tts:extent="580px 62px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1"><p>10%</p></div>
+<div region="r2"><p>20%</p></div>
+<div region="r3"><p>30%</p></div>
+<div region="r4"><p>40%</p></div>
+<div region="r5"><p>50%</p></div>
+<div region="r6"><p>60%</p></div>
+<div region="r7"><p>70%</p></div>
+<div region="r8"><p>80%</p></div>
+<div region="r9"><p>90%</p></div>
+<div region="r10"><p>100%</p></div>
+<div region="r99">
+<p>A circular pattern 10 of <span tts:fontWeight="bold" tts:color="#FF0000">red</span> to
+<span tts:fontWeight="bold" tts:color="#800000">reddish</span>, square regions with the
+indicated percentage of opacity SHOULD appear below.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sOrigin001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sOrigin001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Origin - 001</ttm:title>
+<ttm:description>Test tts:origin style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="12px 12px"/>
+<style tts:origin="351px 335px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="12px 12px"/>
+<style tts:origin="379px 321px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="12px 12px"/>
+<style tts:origin="401px 299px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="12px 12px"/>
+<style tts:origin="415px 271px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="12px 12px"/>
+<style tts:origin="420px 240px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="12px 12px"/>
+<style tts:origin="415px 209px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="12px 12px"/>
+<style tts:origin="401px 181px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r8">
+<style tts:extent="12px 12px"/>
+<style tts:origin="379px 159px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r9">
+<style tts:extent="12px 12px"/>
+<style tts:origin="351px 145px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r10">
+<style tts:extent="12px 12px"/>
+<style tts:origin="320px 140px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r11">
+<style tts:extent="12px 12px"/>
+<style tts:origin="289px 145px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r12">
+<style tts:extent="12px 12px"/>
+<style tts:origin="261px 159px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r13">
+<style tts:extent="12px 12px"/>
+<style tts:origin="239px 181px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r14">
+<style tts:extent="12px 12px"/>
+<style tts:origin="225px 209px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r15">
+<style tts:extent="12px 12px"/>
+<style tts:origin="220px 240px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r16">
+<style tts:extent="12px 12px"/>
+<style tts:origin="225px 271px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r17">
+<style tts:extent="12px 12px"/>
+<style tts:origin="239px 299px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r18">
+<style tts:extent="12px 12px"/>
+<style tts:origin="261px 321px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r19">
+<style tts:extent="12px 12px"/>
+<style tts:origin="289px 335px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r20">
+<style tts:extent="12px 12px"/>
+<style tts:origin="320px 340px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r99">
+<style tts:extent="580px 62px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r99">
+<p>A circular pattern 20 of <span tts:color="red">red</span>, square, empty
+regions of uniform sizes SHOULD appear below.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sOverflow001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sOverflow001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Overflow - 001</ttm:title>
+<ttm:description>Test tts:overflow style as applies to region element. This test derives
+from the example contained in Section 8.2.16 of the DFXP specification.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="232px 60px"/>
+<style tts:origin="204px 160px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="start"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:backgroundColor="green"/>
+<style tts:overflow="visible"/>
+<style tts:wrapOption="noWrap"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="232px 60px"/>
+<style tts:origin="204px 280px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="start"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:backgroundColor="green"/>
+<style tts:overflow="hidden"/>
+<style tts:wrapOption="noWrap"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p>"But wait a bit," the Oysters cried,<br/>
+"Before we have our chat;</p>
+</div>
+<div region="r2">
+<p>For some of us are out of breath,<br/>
+And all of us are fat!"</p>
+</div>
+<div region="r3">
+<p>Two regions SHOULD appear below both containing two line areas, where the first line area of
+the first (top) region overflows outside its containing region, and where the first line area of
+the second (bottom) region is clipped by its containing region.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sPadding001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sPadding001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Padding - 001</ttm:title>
+<ttm:description>Test tts:padding style as applies to region element. This test derives
+from the example contained in Section 8.2.17 of the DFXP specification.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="180px 122px"/>
+<style tts:origin="110px 100px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="red"/>
+<style tts:padding="5px"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="180px 122px"/>
+<style tts:origin="350px 100px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="red"/>
+<style tts:padding="5px 2px"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="180px 122px"/>
+<style tts:origin="110px 260px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="red"/>
+<style tts:padding="2px 5px 8px"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="180px 122px"/>
+<style tts:origin="350px 260px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="12px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="red"/>
+<style tts:padding="2px 2px 8px 8px"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="200px 14px"/>
+<style tts:origin="100px 224px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="10px"/>
+<style tts:lineHeight="12px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="200px 14px"/>
+<style tts:origin="340px 224px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="10px"/>
+<style tts:lineHeight="12px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r8">
+<style tts:extent="200px 14px"/>
+<style tts:origin="100px 384px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="10px"/>
+<style tts:lineHeight="12px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r9">
+<style tts:extent="200px 14px"/>
+<style tts:origin="340px 384px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="10px"/>
+<style tts:lineHeight="12px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r10">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 420px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p tts:backgroundColor="#A00000">
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+</p>
+</div>
+<div region="r2">
+<p tts:backgroundColor="#00A000">
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+</p>
+</div>
+<div region="r3">
+<p tts:backgroundColor="#0000A0">
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+</p>
+</div>
+<div region="r4">
+<p tts:backgroundColor="#A000A0">
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+Just the place for a Snark! I have said it twice:
+That alone should encourage the crew.
+Just the place for a Snark! I have said it thrice:
+What I tell you three times is true.
+</p>
+</div>
+<div region="r5">
+<p>Four uniformly sized regions SHOULD appear below, with the
+indicated sized padding.</p>
+</div>
+<div region="r6">
+<p>{before, after, start, end}: 5px</p>
+</div>
+<div region="r7">
+<p>{before, after}: 5px, {start, end}: 2px</p>
+</div>
+<div region="r8">
+<p>before: 2px, after: 8px, {start, end}: 5px</p>
+</div>
+<div region="r9">
+<p>before: 2px, after: 8px, start: 8px, end: 2px</p>
+</div>
+<div region="r10">
+<p>Depending on available fonts and font metrics, the visible padding
+at the before and/or after edges MAY be greater than the indicated
+value.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sShowBackground001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sShowBackground001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Show Background - 001</ttm:title>
+<ttm:description>Test tts:showBackground style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="200px 60px"/>
+<style tts:origin="220px 120px"/>
+<style tts:backgroundColor="green"/>
+<style tts:showBackground="always"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="200px 60px"/>
+<style tts:origin="220px 210px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="whenActive"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="200px 60px"/>
+<style tts:origin="220px 300px"/>
+<style tts:backgroundColor="green"/>
+<style tts:showBackground="whenActive"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="620px 78px"/>
+<style tts:origin="10px 10px"/>
+<style tts:displayAlign="before"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="620px 80px"/>
+<style tts:origin="10px 390px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r3">
+<p> </p>
+</div>
+<div region="r4">
+<p>Two empty, green regions SHOULD appear below. An empty, red region
+SHOULD NOT appear between the two visible green regions.</p>
+</div>
+<div region="r5">
+<p>The first (top) green region above has no active content, but its show background style is
+set to <span tts:color="aqua" tts:fontWeight="bold">always</span>; the second (bottom) green
+region above has active (whitespace only) content, and its show background style is set to <span
+tts:color="aqua" tts:fontWeight="bold">whenActive</span>. The non-visible (red) region has no
+active content and its show background style is set to <span tts:color="aqua"
+tts:fontWeight="bold">whenActive</span>, thus it should not be visible.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sTextAlign001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sTextAlign001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Text Align - 001</ttm:title>
+<ttm:description>Test tts:textAlign style as applies to the p element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="100px 304px"/>
+<style tts:origin="135px 92px"/>
+<style tts:displayAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#C0C0C0"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="100px 304px"/>
+<style tts:origin="270px 92px"/>
+<style tts:displayAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#C0C0C0"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="100px 304px"/>
+<style tts:origin="405px 92px"/>
+<style tts:displayAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="#C0C0C0"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="400px 62px"/>
+<style tts:origin="120px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="1"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1" tts:backgroundColor="rgb(0,255,192)" tts:color="rgb(96,96,0)">
+<p tts:textAlign="start">
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+</p>
+</div>
+<div region="r2" tts:backgroundColor="rgb(255,192,0)" tts:color="rgb(0,96,96)">
+<p tts:textAlign="center">
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+</p>
+</div>
+<div region="r3" tts:backgroundColor="rgb(192,0,255)" tts:color="rgb(192,192,0)">
+<p tts:textAlign="end">
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+</p>
+</div>
+<div region="r4">
+<p>Each of the left, center, and right region areas below SHOULD contain one block area whose
+text is aligned <span tts:fontWeight="bold" tts:color="yellow">start</span> (left), <span
+tts:fontWeight="bold" tts:color="yellow">center</span>, and <span tts:fontWeight="bold"
+tts:color="yellow">end</span> (right), respectively.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sTextDecoration001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sTextDecoration001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Text Decoration - 001</ttm:title>
+<ttm:description>Test tts:textDecoration style as applies to the span element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:origin="0px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="default"/>
+<style tts:fontSize="20px"/>
+<style tts:fontWeight="bold"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 64px"/>
+<style tts:origin="30px 10px"/>
+<style tts:displayAlign="before"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 64px"/>
+<style tts:origin="30px 406px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p><span tts:textDecoration="none">none</span></p>
+<p> </p>
+<p><span tts:textDecoration="overline">OVERLINE</span></p>
+<p> </p>
+<p><span tts:textDecoration="underline">underline</span></p>
+<p> </p>
+<p><span tts:textDecoration="throughline">throughline</span></p>
+<p> </p>
+<p><span tts:textDecoration="overline underline">OVERLINE, underline</span></p>
+<p> </p>
+<p><span tts:textDecoration="overline throughline">OVERLINE, throughline</span></p>
+<p> </p>
+<p><span tts:textDecoration="throughline underline">throughline, underline</span></p>
+<p> </p>
+<p><span tts:textDecoration="overline throughline underline">OVERLINE, throughline, underline</span></p>
+</div>
+<div region="r2">
+<p>Eight lines of text SHOULD be visible below, where each line is decorated as indicated.</p>
+</div>
+<div region="r3">
+<p>A minimally compliant presentation processor MAY
+render any indicated decoration(s) as if the text decoration
+<span tts:color="yellow" tts:fontWeight="bold">none</span> were specified.</p>
+</div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sTextOutline001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Text Outline - 001</ttm:title>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+</region>
+</layout>
+</head>
+<body region="r1">
+<div><p>Not Yet Implemented</p></div>
+</body>
+</tt>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sUnicodeBidi001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Unicode Bidi - 001</ttm:title>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="640px 480px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+</region>
+</layout>
+</head>
+<body region="r1">
+<div><p>Not Yet Implemented</p></div>
+</body>
+</tt>
Binary file old/dfxp/tests/sVisibility001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sVisibility001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Visibility - 001</ttm:title>
+<ttm:description>Test tts:visibility style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="400px 150px"/>
+<style tts:origin="120px 60px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="green"/>
+<style tts:visibility="visible"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="400px 150px"/>
+<style tts:origin="120px 270px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="black"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="20px"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="red"/>
+<style tts:visibility="hidden"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p>This green area SHOULD be visible. There SHOULD NOT be a red area below.</p>
+</div>
+<div region="r2">
+<p>This red area SHOULD NOT be visible.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sWrapOption001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sWrapOption001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Wrap Option - 001</ttm:title>
+<ttm:description>Test tts:wrapOption style as applies to span element. This test derives
+from the example contained in Section 8.2.24 of the DFXP specification.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="190px 118px"/>
+<style tts:origin="204px 102px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="start"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:backgroundColor="green"/>
+<style tts:overflow="hidden"/>
+<style tts:wrapOption="wrap"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="190px 118px"/>
+<style tts:origin="204px 270px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="start"/>
+<style tts:color="yellow"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="18px"/>
+<style tts:backgroundColor="green"/>
+<style tts:overflow="hidden"/>
+<style tts:wrapOption="noWrap"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 420px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r1">
+<p>I'll tell thee everything I can:
+There's little to relate.
+I saw an aged aged man,
+A-sitting on a gate.</p>
+</div>
+<div region="r2">
+<p>I'll tell thee everything I can:<br/>
+There's little to relate.<br/>
+I saw an aged aged man,<br/>
+A-sitting on a gate.</p>
+</div>
+<div region="r3">
+<p>Two regions SHOULD appear below, where the first (top) region uses
+automatic line breaks, and where the second (bottom)
+region uses manual line breaks with automatic line wrapping disabled
+and clipped (hidden) overflow.</p>
+</div>
+<div region="r4">
+<p>Depending on the available fonts and applicable font metrics, the second region above SHOULD NOT
+contain the substring <span tts:fontWeight="bold" tts:color="yellow">can:</span> or the last
+part of the substring <span tts:fontWeight="bold" tts:color="yellow">man,</span>; however, these
+substrings SHOULD appear in the first region.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sWritingMode001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sWritingMode001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Writing Mode - 001</ttm:title>
+<ttm:description>Test tts:writingMode style as applies to region element, using top-to-bottom,
+right-to-left Chinese text (a poem by Li Bai).</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<styling>
+<style xml:id="ht" tts:color="yellow" tts:fontSize="14px" tts:fontFamily="MS Gothic"/>
+</styling>
+<layout>
+<region xml:id="r1">
+<style tts:extent="480px 160px"/>
+<style tts:origin="80px 160px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontSize="24px"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:lineHeight="28px"/>
+<style tts:backgroundColor="green"/>
+<style tts:writingMode="tbrl"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:lineHeight="18px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 100px"/>
+<style tts:origin="30px 370px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:lineHeight="18px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body region="r1">
+<div>
+<p>
+<span>花間一壺酒</span><br/>
+<span>獨酌無相親</span><br/>
+<span>舉杯邀明月</span><br/>
+<span>對影成三人</span>
+</p>
+<p>
+<span>月既不解飲</span><br/>
+<span>影徒隨我身</span><br/>
+<span>暫伴月將影</span><br/>
+<span>行樂須及春</span>
+</p>
+<p>
+<span>我歌月徘徊</span><br/>
+<span>我舞影零亂</span><br/>
+<span>醒時同交歡</span><br/>
+<span>醉後各分散</span><br/>
+<span>永結無情遊</span><br/>
+<span>相期邈雲漢</span>
+</p>
+</div>
+<div region="r2">
+<p>A single region with fourteen line areas in vertical
+orientation using top-to-bottom, right-to-left (tbrl) writing mode
+SHOULD appear below containing the Chinese poem
+<span style="ht">月下獨酌</span>
+(Drinking Alone under the Moon) by
+<span style="ht">李白</span>
+(Li Bai).</p>
+</div>
+<div region="r3">
+<p>Depending on available fonts, the Chinese text above MAY appear as empty boxes or using some other
+(unspecified) substitution glyph. Furthermore, a minimally compliant presentation processor MAY
+render each line in a horizontal orientation (if vertical writing modes are not supported).</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sWritingMode002.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sWritingMode002.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Writing Mode - 002</ttm:title>
+<ttm:description>Test tts:writingMode style as applies to region element, using left-to-right,
+top-to-bottom Chinese text (a poem by Li Bai).</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<styling>
+<style xml:id="ht" tts:color="yellow" tts:fontSize="14px" tts:fontFamily="MS Gothic"/>
+</styling>
+<layout>
+<region xml:id="r1">
+<style tts:extent="160px 320px"/>
+<style tts:origin="240px 92px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="yellow"/>
+<style tts:fontSize="22px"/>
+<style tts:fontFamily="MingLiu"/>
+<style tts:backgroundColor="green"/>
+<style tts:writingMode="lrtb"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:lineHeight="18px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="580px 100px"/>
+<style tts:origin="30px 370px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="white"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="16px"/>
+<style tts:lineHeight="18px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body region="r1">
+<div>
+<p>
+<span>花間一壺酒</span><br/>
+<span>獨酌無相親</span><br/>
+<span>舉杯邀明月</span><br/>
+<span>對影成三人</span>
+</p>
+<p>
+<span>月既不解飲</span><br/>
+<span>影徒隨我身</span><br/>
+<span>暫伴月將影</span><br/>
+<span>行樂須及春</span>
+</p>
+<p>
+<span>我歌月徘徊</span><br/>
+<span>我舞影零亂</span><br/>
+<span>醒時同交歡</span><br/>
+<span>醉後各分散</span><br/>
+<span>永結無情遊</span><br/>
+<span>相期邈雲漢</span>
+</p>
+</div>
+<div region="r2">
+<p>A single region with fourteen line areas in horizontal
+orientation using left-to-right, top-to-bottom (lrtb) writing mode
+SHOULD appear below containing the Chinese poem
+<span style="ht">月下獨酌</span>
+(Drinking Alone under the Moon) by
+<span style="ht">李白</span>
+(Li Bai).</p>
+</div>
+<div region="r3">
+<p>Depending on available fonts, the Chinese text above MAY appear as empty boxes or using some other
+(unspecified) substitution glyph.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sWritingMode003-0s.png has changed
Binary file old/dfxp/tests/sWritingMode003-1s.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sWritingMode003.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Writing Mode - 003</ttm:title>
+<ttm:description>Further test of tts:writingMode style as applies to region element, with
+(explicit) ruby and tate-chuu-yoko text.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<styling>
+<style xml:id="base" tts:color="yellow" tts:fontSize="14px" tts:fontFamily="MS Gothic" tts:textAlign="center"/>
+<style xml:id="p1" tts:fontSize="32px"/>
+<style xml:id="p2" tts:fontSize="30px"/>
+<style xml:id="p3" tts:fontSize="22px" tts:fontWeight="bold"/>
+<style xml:id="p4" tts:fontSize="32px"/>
+<style xml:id="p5" tts:fontSize="22px" tts:fontWeight="bold"/>
+<style xml:id="p6" tts:fontFamily="proportionalSansSerif" tts:color="white" tts:lineHeight="18px" tts:textAlign="left"/>
+</styling>
+<layout>
+<region xml:id="r1">
+<style tts:origin="568px 0px"/>
+<style tts:extent="32px 480px"/>
+<style tts:fontFamily="MS Gothic"/>
+<style tts:fontSize="32px"/>
+<style tts:writingMode="tbrl"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r2">
+<style tts:origin="564px 338px"/>
+<style tts:fontFamily="MS Gothic"/>
+<style tts:fontSize="32px"/>
+<style tts:extent="40px 32px"/>
+<style tts:zIndex="2"/>
+</region>
+<region xml:id="r3">
+<style tts:origin="598px 176px"/>
+<style tts:extent="22px 72px"/>
+<style tts:fontFamily="MS Gothic"/>
+<style tts:fontSize="32px"/>
+<style tts:writingMode="tbrl"/>
+<style tts:zIndex="2"/>
+</region>
+<region xml:id="r4">
+<style tts:origin="0px 420px"/>
+<style tts:extent="640px 32px"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r5">
+<style tts:origin="178px 396px"/>
+<style tts:extent="60px 22px"/>
+<style tts:zIndex="2"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="540px 200px"/>
+<style tts:origin="10px 10px"/>
+<style tts:displayAlign="before"/>
+<style tts:padding="10px"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r7">
+<style tts:origin="564px 70px"/>
+<style tts:extent="62px 340px"/>
+<style tts:backgroundColor="#606060"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r8">
+<style tts:origin="120px 396px"/>
+<style tts:extent="400px 62px"/>
+<style tts:backgroundColor="#606060"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body style="base">
+<div region="r1">
+<p style="p1">本日の気温予想は 度</p>
+</div>
+<div region="r2">
+<set begin="1s" dur="1s" tts:color="red"/>
+<set begin="1s" dur="1s" tts:fontWeight="bold"/>
+<set begin="3s" dur="1s" tts:color="red"/>
+<set begin="3s" dur="1s" tts:fontWeight="bold"/>
+<set begin="5s" dur="1s" tts:color="red"/>
+<set begin="5s" dur="1s" tts:fontWeight="bold"/>
+<set begin="7s" dur="1s" tts:color="red"/>
+<set begin="7s" dur="1s" tts:fontWeight="bold"/>
+<set begin="9s" dur="1s" tts:color="red"/>
+<set begin="9s" dur="1s" tts:fontWeight="bold"/>
+<p style="p2">25</p>
+</div>
+<div region="r3">
+<set begin="1s" dur="1s" tts:color="aqua"/>
+<set begin="3s" dur="1s" tts:color="aqua"/>
+<set begin="5s" dur="1s" tts:color="aqua"/>
+<set begin="7s" dur="1s" tts:color="aqua"/>
+<set begin="9s" dur="1s" tts:color="aqua"/>
+<p style="p3">きおん</p>
+</div>
+<div region="r4">
+<p style="p4">頭を股に突つ込んで祈るわ</p>
+</div>
+<div region="r5">
+<set begin="1s" dur="1s" tts:color="aqua"/>
+<set begin="3s" dur="1s" tts:color="aqua"/>
+<set begin="5s" dur="1s" tts:color="aqua"/>
+<set begin="7s" dur="1s" tts:color="aqua"/>
+<set begin="9s" dur="1s" tts:color="aqua"/>
+<p style="p5">また</p>
+</div>
+<div region="r6">
+<p style="p6">Two regions SHOULD appear below, with the right region showing vertical text, and
+the bottom region showing horizontal text.</p>
+<p> </p>
+<p style="p6">Both regions include <span tts:fontWeight="bold" tts:color="yellow">ruby</span>
+text, known in Japanese as <span tts:fontSize="16px" tts:color="yellow" tts:fontFamily="MS
+Gothic">振り仮名</span> (furigana). In addition, the right region contains the substring "<span
+tts:fontWeight="bold" tts:color="yellow">25</span>" as horizontal-in-vertical text, Japanese
+"tate-chuu-yoko", also known as kumimoji or renmoji.</p>
+<p> </p>
+<p style="p6">By activating the clock, the colors of the ruby and tate-chuu-yoko
+components alternate over the first 10 seconds.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/sZIndex001.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/tests/sZIndex001.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1" xmlns:tts="http://www.w3.org/2006/10/ttaf1#style" xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+<head>
+<metadata>
+<ttm:title>Style Test - Z Index - 001</ttm:title>
+<ttm:description>Test tts:zIndex style as applies to region element.</ttm:description>
+<ttm:copyright>Copyright (C) 2007 W3C (MIT, ERIM, Keio). All Rights Reserved.</ttm:copyright>
+</metadata>
+<layout>
+<region xml:id="r1">
+<style tts:extent="36px 36px"/>
+<style tts:origin="333px 317px"/>
+<style tts:backgroundColor="rgb(255,255,255)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r2">
+<style tts:extent="36px 36px"/>
+<style tts:origin="361px 303px"/>
+<style tts:backgroundColor="rgb(247,247,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="2"/>
+</region>
+<region xml:id="r3">
+<style tts:extent="36px 36px"/>
+<style tts:origin="383px 281px"/>
+<style tts:backgroundColor="rgb(234,234,234)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="3"/>
+</region>
+<region xml:id="r4">
+<style tts:extent="36px 36px"/>
+<style tts:origin="397px 253px"/>
+<style tts:backgroundColor="rgb(221,221,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="4"/>
+</region>
+<region xml:id="r5">
+<style tts:extent="36px 36px"/>
+<style tts:origin="402px 222px"/>
+<style tts:backgroundColor="rgb(208,208,208)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="5"/>
+</region>
+<region xml:id="r6">
+<style tts:extent="36px 36px"/>
+<style tts:origin="397px 191px"/>
+<style tts:backgroundColor="rgb(195,195,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="6"/>
+</region>
+<region xml:id="r7">
+<style tts:extent="36px 36px"/>
+<style tts:origin="383px 163px"/>
+<style tts:backgroundColor="rgb(182,182,182)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="7"/>
+</region>
+<region xml:id="r8">
+<style tts:extent="36px 36px"/>
+<style tts:origin="361px 141px"/>
+<style tts:backgroundColor="rgb(169,169,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="8"/>
+</region>
+<region xml:id="r9">
+<style tts:extent="36px 36px"/>
+<style tts:origin="333px 127px"/>
+<style tts:backgroundColor="rgb(156,156,156)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="9"/>
+</region>
+<region xml:id="r10">
+<style tts:extent="36px 36px"/>
+<style tts:origin="302px 122px"/>
+<style tts:backgroundColor="rgb(143,143,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="10"/>
+</region>
+<region xml:id="r11">
+<style tts:extent="36px 36px"/>
+<style tts:origin="271px 127px"/>
+<style tts:backgroundColor="rgb(130,130,130)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="11"/>
+</region>
+<region xml:id="r12">
+<style tts:extent="36px 36px"/>
+<style tts:origin="243px 141px"/>
+<style tts:backgroundColor="rgb(117,117,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="12"/>
+</region>
+<region xml:id="r13">
+<style tts:extent="36px 36px"/>
+<style tts:origin="221px 163px"/>
+<style tts:backgroundColor="rgb(104,104,104)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="13"/>
+</region>
+<region xml:id="r14">
+<style tts:extent="36px 36px"/>
+<style tts:origin="207px 191px"/>
+<style tts:backgroundColor="rgb(91,91,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="14"/>
+</region>
+<region xml:id="r15">
+<style tts:extent="36px 36px"/>
+<style tts:origin="205px 222px"/>
+<style tts:backgroundColor="rgb(78,78,78)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="15"/>
+</region>
+<region xml:id="r16">
+<style tts:extent="36px 36px"/>
+<style tts:origin="207px 253px"/>
+<style tts:backgroundColor="rgb(65,65,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="16"/>
+</region>
+<region xml:id="r17">
+<style tts:extent="36px 36px"/>
+<style tts:origin="221px 281px"/>
+<style tts:backgroundColor="rgb(52,52,52)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="17"/>
+</region>
+<region xml:id="r18">
+<style tts:extent="36px 36px"/>
+<style tts:origin="243px 303px"/>
+<style tts:backgroundColor="rgb(39,39,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="18"/>
+</region>
+<region xml:id="r19">
+<style tts:extent="36px 36px"/>
+<style tts:origin="271px 317px"/>
+<style tts:backgroundColor="rgb(26,26,26)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="19"/>
+</region>
+<region xml:id="r20">
+<style tts:extent="36px 36px"/>
+<style tts:origin="302px 322px"/>
+<style tts:backgroundColor="rgb(13,13,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="20"/>
+</region>
+<region xml:id="r21">
+<style tts:extent="72px 72px"/>
+<style tts:origin="284px 204px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r22">
+<style tts:extent="72px 72px"/>
+<style tts:origin="284px 204px"/>
+<style tts:backgroundColor="rgb(192,192,0)"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="1"/>
+</region>
+<region xml:id="r23">
+<style tts:extent="72px 72px"/>
+<style tts:origin="66px 204px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r24">
+<style tts:extent="72px 72px"/>
+<style tts:origin="66px 204px"/>
+<style tts:backgroundColor="black"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r25">
+<style tts:extent="72px 72px"/>
+<style tts:origin="502px 204px"/>
+<style tts:backgroundColor="red"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r26">
+<style tts:extent="72px 72px"/>
+<style tts:origin="502px 204px"/>
+<style tts:backgroundColor="black"/>
+<style tts:showBackground="always"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r99">
+<style tts:extent="580px 78px"/>
+<style tts:origin="30px 0px"/>
+<style tts:displayAlign="after"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+<region xml:id="r100">
+<style tts:extent="580px 48px"/>
+<style tts:origin="30px 432px"/>
+<style tts:displayAlign="center"/>
+<style tts:textAlign="center"/>
+<style tts:color="aqua"/>
+<style tts:fontFamily="proportionalSansSerif"/>
+<style tts:fontSize="14px"/>
+<style tts:lineHeight="16px"/>
+<style tts:backgroundColor="transparent"/>
+<style tts:zIndex="0"/>
+</region>
+</layout>
+</head>
+<body>
+<div region="r99">
+<p>A circular pattern of 20 square, overlapping (in z-order) regions
+progressing from light to dark (alternating <span
+tts:fontWeight="bold" tts:color="white">white</span> and <span
+tts:fontWeight="bold" tts:color="yellow">yellow</span>) SHOULD appear
+below, where the <span tts:fontWeight="bold"
+tts:color="rgb(255,255,255)">lightest</span> region is <span
+tts:fontWeight="bold">rear-most</span>, the <span
+tts:fontWeight="bold" tts:color="rgb(128,128,0)">darkest</span> is
+<span tts:fontWeight="bold">front-most</span>, and each incrementally
+darker region overlaps the previous lighter region.</p>
+</div>
+<div region="r100">
+<p>In addition, a single, larger <span tts:fontWeight="bold"
+tts:color="rgb(192,192,0)">yellow</span> square region SHOULD appear in the
+center of the above circular pattern. There SHOULD NOT be any <span
+tts:fontWeight="bold" tts:color="red">red</span> regions visible.</p>
+</div>
+</body>
+</tt>
Binary file old/dfxp/tests/test.xls has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/todo.txt Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,6 @@
+
+* Qualify tts:extent use of percentage when used with <body/> element.
+
+* Add language either under tts:extent or body (or somewhere in 9.3) that indicates that if the root container extent does
+ not correspond to actual display size, then UA should either position as desired or scale to available space, preserving
+ aspect ratio if possible.
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/ttaf1 Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,13 @@
+This is a placeholder for a namespace document that permits
+dereferencing the Timed Text (TT) Authoring Format V1.0
+Distribution Format Exchange Profile namespace URIs:
+
+http://www.w3.org/2006/10/ttaf1
+http://www.w3.org/2006/10/ttaf1#style
+http://www.w3.org/2006/10/ttaf1#style-extension
+http://www.w3.org/2006/10/ttaf1#metadata
+http://www.w3.org/2006/10/ttaf1#metadata-extension
+http://www.w3.org/2006/10/ttaf1#parameter
+
+This namespace document is expected to be replaced by a
+W3C XML Schema document.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/ttaf1-dfxp.xsl Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,572 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:transform exclude-result-prefixes="saxon" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon">
+<xsl:import href="xmlspec.xsl"></xsl:import>
+<xsl:param name="toc.level" select="5"/>
+<xsl:param name="show.ednotes">1</xsl:param>
+<xsl:param name="show.diff.markup">1</xsl:param>
+<xsl:variable name="output.mode" select="'xhtml'"/>
+<xsl:param name="additional.css">
+<xsl:text>
+div.issue { border: 2px solid black; background-color: #ffff66; padding: 0em 1em; margin: 0em 0em }
+table.ednote { border-collapse: collapse; border: 2px solid black; width: 85% }
+table.ednote td { background-color: #ddaa66; border: 2px solid black }
+table.acronyms td.label { width: 15% }
+table.acronyms td.def { width: 65% }
+table.graphic { border: 0px none black; width: 100%; border-collapse: collapse }
+table.graphic caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.graphic td { border: 0px none black; text-align: center }
+table.common { border: 2px solid black; width: 85%; border-collapse: collapse }
+table.common caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+table.common th { padding: 0em 0.5em; border: 2px solid black; text-align: left }
+table.common td { padding: 0em 0.5em; border: 2px solid black }
+table.syntax { border: 0px solid black; width: 85%; border-collapse: collapse }
+table.syntax caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+table.syntax th { border: 0px solid black; text-align: left }
+table.syntax td { border: 0px solid black }
+table.syntax div { background-color: #ffffc8 }
+table.example { border: 0px solid black; width: 85%; border-collapse: collapse }
+table.example caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+table.example th { border: 0px solid black; text-align: left }
+table.example td { border: 0px solid black }
+table.example div { background-color: #c8ffff }
+table.example-images { text-align: center; border: 0px solid black; width: 85%; border-collapse: collapse }
+table.example-images caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.example-images td { border: 0px solid black; text-align: center }
+table.example-images-bordered { text-align: center; border: 0px solid black; width: 85%; border-collapse: collapse }
+table.example-images-bordered caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.example-images-bordered td { border: 1px solid red; text-align: left }
+.tbd { background-color: #ffff33; border: 2px solid black; width: 85% }
+.strong { font-weight: bold }
+.reqattr { font-weight: bold }
+.optattr { font-style: italic }
+.diff-add { color: red; }
+.diff-del { color: red; text-decoration: line-through; }
+.diff-chg { background-color: #99FF99; }
+.diff-off {}
+</xsl:text>
+</xsl:param>
+<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+<!-- diff support -->
+<xsl:template name="diff-markup">
+ <xsl:param name="diff">off</xsl:param>
+ <xsl:choose>
+ <xsl:when test="self::ritem">
+ <xsl:apply-templates select="." mode="diff"/>
+ </xsl:when>
+ <xsl:when test="self::ulist or self::p or self::bibl">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::phrase">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:when test="ancestor::p and not(self::p)">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::affiliation">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::name">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='chg']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">chg</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='add']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">add</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='del']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">del</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- suppress deleted markup -->
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='off']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">off</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- spec: the specification itself -->
+<xsl:template match="spec">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="header/langusage/language">
+ <xsl:attribute name="xml:lang">
+ <xsl:value-of select="header/langusage/language/@id"/>
+ </xsl:attribute>
+ <xsl:attribute name="lang">
+ <xsl:value-of select="header/langusage/language/@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <head>
+ <xsl:if test="$output.mode='xhtml'">
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
+ </xsl:if>
+ <title>
+ <xsl:apply-templates select="header/title"/>
+ <xsl:if test="header/version">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="header/version"/>
+ </xsl:if>
+ <xsl:if test="$additional.title != ''">
+ <xsl:text> -- </xsl:text>
+ <xsl:value-of select="$additional.title"/>
+ </xsl:if>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <xsl:text> -- (Editors' copy)</xsl:text>
+ </xsl:if>
+ </title>
+ <xsl:call-template name="css"/>
+ </head>
+ <body>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <xsl:value-of select="//revisiondesc/p[1]"/>
+ <div id="revisions"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:if test="//footnote[not(ancestor::table)]">
+ <hr/>
+ <div class="endnotes">
+ <xsl:text></xsl:text>
+ <h3>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'endnotes'"/>
+ </xsl:call-template>
+ <xsl:text>End Notes</xsl:text>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="//footnote[not(ancestor::table)]" mode="notes"/>
+ </dl>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+</xsl:template>
+<!-- status: the status of the spec -->
+<xsl:template match="status">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'status'"/>
+ </xsl:call-template>
+ <xsl:text>Status of this Document</xsl:text>
+ </h2>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <p><strong>This document is an editor's copy that has no official standing.</strong></p>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+<!-- specref: reference to another part of the current specification -->
+<xsl:template match="specref">
+ <xsl:variable name="target" select="key('ids', @ref)[1]"/>
+ <xsl:choose>
+ <xsl:when test="local-name($target)='issue' or starts-with(local-name($target), 'div') or starts-with(local-name($target), 'inform-div') or local-name($target) = 'vcnote' or local-name($target) = 'prod' or local-name($target) = 'label' or local-name($target) = 'ritem' or local-name($target) = 'table'">
+ <xsl:apply-templates select="$target" mode="specref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unsupported specref to </xsl:text>
+ <xsl:value-of select="local-name($target)"/>
+ <xsl:text> [</xsl:text>
+ <xsl:value-of select="@ref"/>
+ <xsl:text>] </xsl:text>
+ <xsl:text> (Contact stylesheet maintainer).</xsl:text>
+ </xsl:message>
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @ref)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>???</xsl:text>
+ </a>
+ </b>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- ednote: editors' note -->
+<xsl:template match="ednote">
+ <xsl:if test="$show.ednotes != 0">
+ <table xmlns="http://www.w3.org/1999/xhtml" border="1" class="ednote" summary="Editor's Notes">
+ <xsl:attribute name="summary">
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="name"/>
+ </xsl:if>
+ </xsl:attribute>
+ <tr class="ednote-r1">
+ <td align="left" valign="top">
+ <b>
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="name"/>
+ </xsl:if>
+ </b>
+ </td>
+ <td align="right" valign="top">
+ <xsl:choose>
+ <xsl:when test="date">
+ <xsl:apply-templates select="date"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr class="ednote-r2">
+ <td colspan="2" align="left" valign="top">
+ <xsl:apply-templates select="edtext"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+</xsl:template>
+<!-- glist: glossary list -->
+<xsl:template match="glist">
+ <xsl:choose>
+ <xsl:when test="@role = 'acronyms'">
+ <table xmlns="http://www.w3.org/1999/xhtml" class="acronyms" summary="Glossary List">
+ <xsl:for-each select="gitem">
+ <tr>
+ <xsl:apply-templates select="label" mode="acronym"/>
+ <xsl:apply-templates select="def" mode="acronym"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"></p></xsl:text>
+ </xsl:if>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </dl>
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"><p></xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- label: acronym mode -->
+<xsl:template mode="acronym" match="label">
+ <td xmlns="http://www.w3.org/1999/xhtml" class="label">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor"/>
+ <b><xsl:apply-templates/></b>
+ </td>
+</xsl:template>
+<!-- def: acronym mode -->
+<xsl:template mode="acronym" match="def">
+ <td xmlns="http://www.w3.org/1999/xhtml" class="def">
+ <xsl:apply-templates/>
+ </td>
+</xsl:template>
+<!-- loc: a Web location -->
+<xsl:template match="loc">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:if test="@role">
+ <xsl:attribute name="rel">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+<!-- rlist: requirement list -->
+<xsl:template match="rlist">
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+</xsl:template>
+<!-- ritem: requirement item -->
+<xsl:template match="ritem">
+ <xsl:variable name="this-req-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:value-of select="$this-req-id"/>
+ <xsl:text disable-output-escaping="yes"> &ndash; </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="req"/>
+ </dd>
+</xsl:template>
+<!-- ritem: requirement item; mode(diff) -->
+<xsl:template match="ritem" mode="diff">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <xsl:variable name="this-req-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$diffval='del' and $show.diff.markup = 0">
+ <!-- delete item -->
+ </xsl:when>
+ <xsl:otherwise>
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:value-of select="$this-req-id"/>
+ <xsl:text disable-output-escaping="yes"> &ndash; </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:apply-templates select="req"/>
+ </dd>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="ritem" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+</xsl:template>
+<!-- req: requirement body -->
+<xsl:template match="req">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="req">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+<!-- uselist: use case scenario list -->
+<xsl:template match="uselist">
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+</xsl:template>
+<!-- useitem: use case scenario item -->
+<xsl:template match="useitem">
+ <xsl:variable name="this-use-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:value-of select="$this-use-id"/>
+ <xsl:text disable-output-escaping="yes"> &ndash; </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="use"/>
+ </dd>
+</xsl:template>
+<xsl:template match="useitem" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+</xsl:template>
+<!-- use: use case scenario body -->
+<xsl:template match="use">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="use">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+<!-- ulist w/diff -->
+<xsl:template match="ulist[@diff]" priority="1">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <ul xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:apply-templates/>
+ </ul>
+</xsl:template>
+<!-- p w/diff -->
+<xsl:template match="p[@diff]" priority="1">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <p xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:if test="@id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+<!-- bibl w/diff -->
+<xsl:template match="bibl[@diff]" priority="1">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="label diff-{$diffval}">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@key">
+ <xsl:value-of select="@key"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <a href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@href">
+ <xsl:text> (See </xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>.)</xsl:text>
+ </xsl:if>
+ </dd>
+</xsl:template>
+<!-- table -->
+<xsl:template match="table">
+ <table xmlns="http://www.w3.org/1999/xhtml" summary="HTML Table">
+ <xsl:for-each select="@*">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'diff'"/>
+ <xsl:when test="local-name(.) = 'role'">
+ <xsl:attribute name="class">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ <xsl:if test=".//footnote">
+ <tbody>
+ <tr>
+ <td>
+ <xsl:apply-templates select=".//footnote" mode="table.notes"/>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:if>
+ </table>
+</xsl:template>
+<!-- table specref -->
+<xsl:template match="table" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="caption" mode="text"/>
+ </b>
+ </a>
+</xsl:template>
+<!-- br: explicit line break -->
+<xsl:template match="br">
+ <br xmlns="http://www.w3.org/1999/xhtml" />
+</xsl:template>
+<!-- author -->
+<xsl:template match="author">
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <table style="margin: 0em 0em">
+ <td>
+ <xsl:apply-templates select="name"/>
+ <xsl:apply-templates select="affiliation"/>
+ </td>
+ <td>
+ <xsl:apply-templates select="graphic"/>
+ </td>
+ </table>
+ </dd>
+</xsl:template>
+</xsl:transform>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xmlspec-tt-f.dtd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,1039 @@
+<!ELEMENT a (#PCDATA)>
+<!ELEMENT abstract ((p | ulist | olist | slist | glist | ednote)*)*>
+<!ATTLIST abstract
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT affiliation (#PCDATA | phrase)*>
+<!ATTLIST affiliation
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT altlocs (loc+)>
+<!ATTLIST altlocs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type (boolean | expression | location-set | node-set | number | object | point | range | string) #REQUIRED
+ occur (opt | req) #IMPLIED
+>
+<!ELEMENT att (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST att
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT attribute (descr)>
+<!ATTLIST attribute
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #REQUIRED
+ readonly (yes | no) "no"
+>
+<!ELEMENT attval (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST attval
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT authlist (author+)>
+<!ATTLIST authlist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT author (name, affiliation?, (email|graphic)?)>
+<!ATTLIST author
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
+<!ATTLIST back
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT bibl (#PCDATA | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | loc | ednote)*>
+<!ATTLIST bibl
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #IMPLIED
+ xlink:show CDATA #FIXED "replace"
+ xlink:actuate CDATA #FIXED "onRequest"
+ key CDATA #IMPLIED
+>
+<!ELEMENT bibref EMPTY>
+<!ATTLIST bibref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ ref IDREF #REQUIRED
+>
+<!ELEMENT blist (bibl+)>
+<!ATTLIST blist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT bnf (#PCDATA | footnote | emph | phrase | quote | sub | sup | loc | ednote | constraint)*>
+<!ATTLIST bnf
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xml:space (default | preserve) #FIXED "preserve"
+>
+<!ELEMENT body (div1+)>
+<!ATTLIST body
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT br EMPTY>
+<!ELEMENT caption (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST caption
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT case (descr, (struct | enum | sequence | union | typename))>
+<!ATTLIST case
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ labels CDATA #REQUIRED
+>
+<!ELEMENT code (#PCDATA | loc | ednote | phrase | sub | sup)*>
+<!ATTLIST code
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xml:space (default | preserve) #FIXED "preserve"
+>
+<!ELEMENT col EMPTY>
+<!ATTLIST col
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ span NMTOKEN "1"
+ width CDATA #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT colgroup (col)*>
+<!ATTLIST colgroup
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ span NMTOKEN "1"
+ width CDATA #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT com (#PCDATA | phrase | loc | bibref)*>
+<!ATTLIST com
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT component (struct | enum | sequence | union | typename)>
+<!ATTLIST component
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT constant (descr)>
+<!ATTLIST constant
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #REQUIRED
+ value CDATA #REQUIRED
+>
+<!ELEMENT constraint EMPTY>
+<!ATTLIST constraint
+ def IDREF #REQUIRED
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT constraintnote (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST constraintnote
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type NMTOKEN #REQUIRED
+>
+<!ELEMENT copyright ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST copyright
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT date (#PCDATA | phrase)*>
+<!ATTLIST date
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT day (#PCDATA | phrase)*>
+<!ATTLIST day
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT def ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*)*>
+<!ATTLIST def
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT definitions ((p | note | typedef | constant | exception | reference | group | module | interface)+)+>
+<!ATTLIST definitions
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT descr (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*>
+<!ATTLIST descr
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div (head?, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist | ul | ol | h1 | h2 | h3 | h4 | h5 | h6 | div)*)>
+<!ELEMENT div1 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div2*)>
+<!ATTLIST div1
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div2 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div3*)>
+<!ATTLIST div2
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div3 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div4*)>
+<!ATTLIST div3
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div4 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div5*)>
+<!ATTLIST div4
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div5 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*)>
+<!ATTLIST div5
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT ednote (name?, date?, edtext)>
+<!ATTLIST ednote
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT edtext (#PCDATA | br | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST edtext
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT eg (#PCDATA | footnote | emph | phrase | quote | sub | sup | loc | ednote | constraint)*>
+<!ATTLIST eg
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xml:space (default | preserve) #FIXED "preserve"
+>
+<!ELEMENT el (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST el
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT em (#PCDATA)>
+<!ELEMENT email (#PCDATA | phrase)*>
+<!ATTLIST email
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT emph (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST emph
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT enum (descr, enumerator+)>
+<!ATTLIST enum
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT enumerator (descr)>
+<!ATTLIST enumerator
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT example (head?, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST example
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT exception (descr, component*)>
+<!ATTLIST exception
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT footnote ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST footnote
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT front (div1+)>
+<!ATTLIST front
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT function (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST function
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT gitem (label, def)>
+<!ATTLIST gitem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT glist (gitem+)>
+<!ATTLIST glist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT graphic EMPTY>
+<!ATTLIST graphic
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ source CDATA #REQUIRED
+ xlink:show CDATA #FIXED "embed"
+ xlink:actuate CDATA #FIXED "onLoad"
+ alt CDATA #IMPLIED
+>
+<!ELEMENT group (descr, (p | note | typedef | constant | exception | reference | group | module | interface | struct | enum | sequence | union | typename | method | attribute)*)>
+<!ATTLIST group
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT h1 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h2 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h3 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h4 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h5 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h6 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT head (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST head
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT header (title, subtitle?, version?, w3c-designation, w3c-doctype, pubdate, notice*, publoc, altlocs?, ((prevlocs, latestloc?) | (latestloc, prevlocs?))?, authlist*, copyright?, ((status, abstract) | (abstract, status)), pubstmt?, sourcedesc?, langusage, revisiondesc)>
+<!ATTLIST header
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT htable (caption?, (col* | colgroup*), thead?, tfoot?, tbody+)>
+<!ELEMENT htbody (tr)+>
+<!ELEMENT inform-div1 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div2*)>
+<!ATTLIST inform-div1
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT interface (descr, (p | note | typedef | constant | exception | reference | group | method | attribute)*)>
+<!ATTLIST interface
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ inherits CDATA #IMPLIED
+>
+<!ELEMENT issue (head?, source*, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+, resolution?)>
+<!ATTLIST issue
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ status (open | closed) "open"
+>
+<!ELEMENT item ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST item
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT itemizedlist (listitem*)>
+<!ELEMENT key-term (#PCDATA)>
+<!ELEMENT kw (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST kw
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT label (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST label
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT language (#PCDATA | phrase)*>
+<!ATTLIST language
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT langusage (language+)>
+<!ATTLIST langusage
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT latestloc (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST latestloc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT lhs (#PCDATA | phrase)*>
+<!ATTLIST lhs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT li (#PCDATA | p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*>
+<!ELEMENT listitem (para*)>
+<!ELEMENT loc (#PCDATA | phrase | el | att | code | emph)*>
+<!ATTLIST loc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "replace"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT member (name, affiliation?, role?)>
+<!ATTLIST member
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT method (descr, parameters, returns, raises)>
+<!ATTLIST method
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT module (descr, (p | note | typedef | constant | exception | reference | group | module | interface)*)>
+<!ATTLIST module
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT month (#PCDATA | phrase)*>
+<!ATTLIST month
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT name (#PCDATA | phrase)*>
+<!ATTLIST name
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ key CDATA #IMPLIED
+>
+<!ELEMENT note ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST note
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT notice ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST notice
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT nt (#PCDATA | phrase)*>
+<!ATTLIST nt
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ def IDREF #REQUIRED
+>
+<!ELEMENT ol (item | li)*>
+<!ELEMENT olist (item+)>
+<!ATTLIST olist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ spacing (normal | compact) #IMPLIED
+>
+<!ELEMENT orderedlist (listitem*)>
+<!ELEMENT orglist (member+)>
+<!ATTLIST orglist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT p (#PCDATA | br | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST p
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT para (#PCDATA)>
+<!ELEMENT param (descr)>
+<!ATTLIST param
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #REQUIRED
+ attr (in | out | inout) "inout"
+>
+<!ELEMENT parameters (param*)>
+<!ATTLIST parameters
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT phrase (#PCDATA | br | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST phrase
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT pre (#PCDATA | footnote | emph | phrase | quote | sub | sup | loc | ednote | constraint | em)*>
+<!ELEMENT prevlocs (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST prevlocs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT prod (lhs, (rhs, (com | wfc | vc | constraint)*)+)>
+<!ATTLIST prod
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT prodgroup (prod+)>
+<!ATTLIST prodgroup
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ pcw1 CDATA #IMPLIED
+ pcw2 CDATA #IMPLIED
+ pcw3 CDATA #IMPLIED
+ pcw4 CDATA #IMPLIED
+ pcw5 CDATA #IMPLIED
+>
+<!ELEMENT prodrecap EMPTY>
+<!ATTLIST prodrecap
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ ref IDREF #REQUIRED
+>
+<!ELEMENT proto (arg*)>
+<!ATTLIST proto
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name NMTOKEN #REQUIRED
+ return-type (boolean | expression | location-set | node-set | number | object | point | range | string) #REQUIRED
+>
+<!ELEMENT pubdate (day?, month, year)>
+<!ATTLIST pubdate
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT publoc (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST publoc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT pubstmt ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST pubstmt
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT quote (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST quote
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT raises (exception*)>
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ declaration IDREF #REQUIRED
+>
+<!ELEMENT req ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*)*>
+<!ATTLIST req
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT resolution ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST resolution
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT returns (descr)>
+<!ATTLIST returns
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type CDATA #REQUIRED
+>
+<!ELEMENT revisiondesc ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST revisiondesc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT rfc2119 (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST rfc2119
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT rhs (#PCDATA | phrase | nt | xnt | com)*>
+<!ATTLIST rhs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT ritem (head, req)>
+<!ATTLIST ritem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type (dreq | freq | sreq | nreq | other) #REQUIRED
+>
+<!ELEMENT rlist (ritem)*>
+<!ATTLIST rlist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT role (#PCDATA | phrase)*>
+<!ATTLIST role
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)>
+<!ATTLIST scrap
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ lang IDREF #IMPLIED
+ headstyle (show | suppress) "show"
+>
+<!ELEMENT sequence (sequence*)>
+<!ATTLIST sequence
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type CDATA #REQUIRED
+ size NMTOKEN #IMPLIED
+>
+<!ELEMENT sitem (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST sitem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT slist (sitem+)>
+<!ATTLIST slist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT source (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST source
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT sourcedesc ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST sourcedesc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT spec (header, front?, body, back?)>
+<!ATTLIST spec
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ w3c-doctype (cr | dispcmts | issues | note | other | pr | rec | wd) #IMPLIED
+ other-doctype CDATA #IMPLIED
+ status (int-review | ext-review | final) #IMPLIED
+>
+<!ELEMENT specref EMPTY>
+<!ATTLIST specref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ ref IDREF #REQUIRED
+>
+<!ELEMENT status ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST status
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT statusp (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ELEMENT struct (descr, component+)>
+<!ATTLIST struct
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT sub (#PCDATA | phrase)*>
+<!ATTLIST sub
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT subtitle (#PCDATA | phrase)*>
+<!ATTLIST subtitle
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT sup (#PCDATA | phrase)*>
+<!ATTLIST sup
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT table (caption?, (col* | colgroup*), thead?, tfoot?, tbody+)>
+<!ATTLIST table
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ width CDATA #IMPLIED
+ summary CDATA #IMPLIED
+ border CDATA #IMPLIED
+ frame (void | above | below | hsides | lhs | rhs | vsides | box | border) #IMPLIED
+ rules (none | groups | rows | cols | all) #IMPLIED
+ cellspacing CDATA #IMPLIED
+ cellpadding CDATA #IMPLIED
+>
+<!ELEMENT tbody (tr)+>
+<!ATTLIST tbody
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT td (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST td
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ abbr CDATA #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope (row | col | rowgroup | colgroup) #IMPLIED
+ rowspan NMTOKEN "1"
+ colspan NMTOKEN "1"
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT term (#PCDATA | phrase)*>
+<!ATTLIST term
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT termdef (#PCDATA | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST termdef
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ term CDATA #REQUIRED
+>
+<!ELEMENT termref (#PCDATA | phrase)*>
+<!ATTLIST termref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ def IDREF #REQUIRED
+>
+<!ELEMENT tfoot (tr)+>
+<!ATTLIST tfoot
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT th (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST th
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ abbr CDATA #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope (row | col | rowgroup | colgroup) #IMPLIED
+ rowspan NMTOKEN "1"
+ colspan NMTOKEN "1"
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT thead (tr)+>
+<!ATTLIST thead
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT title (#PCDATA | phrase)*>
+<!ATTLIST title
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT titleref (#PCDATA | phrase)*>
+<!ATTLIST titleref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #IMPLIED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT tr (th | td)+>
+<!ATTLIST tr
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT typedef (descr, (struct | enum | sequence | union | typename))>
+<!ATTLIST typedef
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ array.size NMTOKEN #IMPLIED
+>
+<!ELEMENT typename (#PCDATA | phrase)*>
+<!ATTLIST typename
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT ul (item | li)*>
+<!ELEMENT ulist (item+)>
+<!ATTLIST ulist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ spacing (normal | compact) #IMPLIED
+>
+<!ELEMENT union (descr, case+)>
+<!ATTLIST union
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ switch.type CDATA #REQUIRED
+>
+<!ELEMENT use ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*)*>
+<!ATTLIST use
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT useitem (head, use)>
+<!ATTLIST useitem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type (simple | other) #REQUIRED
+>
+<!ELEMENT uselist (useitem)*>
+<!ATTLIST uselist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT var (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST var
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT vc EMPTY>
+<!ATTLIST vc
+ def IDREF #REQUIRED
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT vcnote (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST vcnote
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT version (#PCDATA | phrase)*>
+<!ATTLIST version
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT w3c-designation (#PCDATA | phrase)*>
+<!ATTLIST w3c-designation
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT w3c-doctype (#PCDATA | phrase)*>
+<!ATTLIST w3c-doctype
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT wfc EMPTY>
+<!ATTLIST wfc
+ def IDREF #REQUIRED
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT wfcnote (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST wfcnote
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT xnt (#PCDATA | phrase)*>
+<!ATTLIST xnt
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT xspecref (#PCDATA | phrase)*>
+<!ATTLIST xspecref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT xtermref (#PCDATA | phrase)*>
+<!ATTLIST xtermref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT year (#PCDATA | phrase)*>
+<!ATTLIST year
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xmlspec.xsl Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,2593 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets. Do not edit this file.-->
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" exclude-result-prefixes="saxon" version="1.0">
+
+<!-- ====================================================================== -->
+<!-- xmlspec.xsl: An HTML XSL[1] Stylesheet for XML Spec V2.1[2] markup
+
+ Version: $Id$
+
+ URI: http://dev.w3.org/cvsweb/spec-prod/html/xmlspec.xsl
+
+ Authors: Norman Walsh (norman.walsh@sun.com)
+ Chris Maden (crism@lexica.net)
+ Ben Trafford (ben@legendary.org)
+ Eve Maler (eve.maler@sun.com)
+ Henry S. Thompson (ht@cogsci.ed.ac.uk)
+
+ Date: Created 07 September 1999
+ Last updated $Date$ by $Author$
+
+ Copyright (C) 2000, 2001, 2002 Sun Microsystems, Inc. All Rights Reserved.
+ This document is governed by the W3C Software License[3] as
+ described in the FAQ[4].
+
+ [1] http://www.w3.org/TR/xslt
+ [2] http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm
+ [3] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+ [4] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+
+ Notes:
+
+ This stylesheet attempts to implement the XML Specification V2.1
+ DTD. Documents conforming to earlier DTDs may not be correctly
+ transformed.
+
+ ChangeLog: (See also: CVS ChangeLog)
+
+ 15 August 2002: Norman Walsh, <Norman.Walsh@Sun.COM>
+ - Version 1.3 released at http://www.w3.org/2002/xmlspec/html/1.3/xmlspec.xsl
+ There have never been any "official" releases before, so the version number
+ is arbitrary.
+
+ 15 August 2001: Hugo Haas <hugo@w3.org>
+ - Slightly modified the status sentence introducing editors'
+ copies.
+ - Now using role to distinguish editors' copies: e.g.
+ <spec w3c-doctype="wd" role="editors-copy">
+
+ 14 August 2001: Hugo Haas <hugo@w3.org>
+ - If w3c-doctype is not a W3C TR, do not use a Note style
+ sheet, use <http://www.w3.org/StyleSheets/TR/base.css>
+ instead.
+ - If the other-doctype is "editors-copy", do not use the W3C
+ logo and mark the document as such in the status section.
+
+ 12 Jun 2001: (Norman.Walsh@Sun.COM)
+ - Support non-tabular examples. If tabular.examples is non-zero,
+ tables will be used for examples, otherwise nested divs and
+ CSS will be used. tabular.examples is *zero* by default.
+
+ 06 Jun 2001: (Norman.Walsh@Sun.COM)
+ - Support copyright element in header; use the content of that
+ element if it is present, otherwise use the auto-generated
+ copyright statement.
+
+ 15 May 2001: (Norman.Walsh@Sun.COM)
+ - Changed copyright link to point to dated IPR statement:
+ http://www.w3.org/Consortium/Legal/ipr-notice-20000612
+
+ 25 Sep 2000: (Norman.Walsh@East.Sun.COM)
+ - Sync'd with Eve's version:
+ o Concatenated each inline element's output all on one line
+ to avoid spurious spaces in the output. (This is really an
+ IE bug, but...) (15 Sep 2000)
+ o Updated crism's email address in header (7 Sep 2000)
+ o Changed handling of affiliation to use comma instead of
+ parentheses (9 Aug 2000)
+
+ 14 Aug 2000: (Norman.Walsh@East.Sun.COM)
+
+ - Added additional.title param (for diffspec.xsl to change)
+ - Fixed URI of W3C home icon
+ - Made CSS stylesheet selection depend on the w3c-doctype attribute
+ of spec instead of the w3c-doctype element in the header
+
+ 26 Jul 2000: (Norman.Walsh@East.Sun.COM)
+
+ - Improved semantics of specref. Added xsl:message for unsupported
+ cases. (I'm by no means confident that I've covered the whole
+ list.)
+ - Support @role on author.
+ - Make lhs/rhs "code" in EBNF.
+ - Fixed bug in ID/IDREF linking.
+ - More effectively disabled special markup for showing @diffed
+ versions
+
+ 21 Jul 2000: (Norman.Walsh@East.Sun.COM)
+
+ - Added support for @diff change tracking, primarily through
+ the auxiliary stylesheet diffspec.xsl. However, it was
+ impractical to handle some constructions, such as DLs and TABLEs,
+ in a completely out-of-band manner. So there is some inline
+ support for @diff markup.
+
+ - Added $additional.css to allow downstream stylesheets to add
+ new markup to the <style> element.
+
+ - Added required "type" attribute to the <style> element.
+
+ - Fixed pervasive problem with nested <a> elements.
+
+ - Added doctype-public to xsl:output.
+
+ - Added $validity.hacks. If "1", then additional disable-output-escaping
+ markup may be inserted in some places to attempt to get proper,
+ valid HTML. For example, if a <glist> appears inside a <p> in the
+ xmlspec source, this creates a nested <dl> inside a <p> in the
+ HTML, which is not valid. If $validity.hacks is "1", then an
+ extra </p>, <p> pair is inserted around the <dl>.
+
+ 5 June 2001, Henry S. Thompson (ht@cogsci.ed.ac.uk)
+
+ - Fixed a link in copyright boilerplate to be dated
+
+ -->
+<!-- ====================================================================== -->
+
+ <xsl:preserve-space elements="*"/>
+
+ <xsl:strip-space elements=" abstract arg attribute authlist author back bibref blist body case col colgroup component constant constraint constraintnote copyright def definitions descr div div1 div2 div3 div4 div5 ednote enum enumerator example exception footnote front gitem glist graphic group header htable htbody inform-div1 interface issue item itemizedlist langusage listitem member method module note notice ol olist orderedlist orglist param parameters prod prodgroup prodrecap proto pubdate pubstmt raises reference resolution returns revisiondesc scrap sequence slist sourcedesc spec specref status struct table tbody tfoot thead tr typedef ul ulist union vc vcnote wfc wfcnote"/>
+
+ <xsl:param name="validity.hacks" select="1"/>
+ <xsl:param name="show.diff.markup" select="0"/>
+ <xsl:param name="additional.css" select="''"/>
+ <xsl:param name="additional.title"/>
+ <xsl:param name="called.by.diffspec" select="0"/>
+ <xsl:param name="show.ednotes" select="1"/>
+ <xsl:param name="tabular.examples" select="0"/>
+ <xsl:param name="toc.level" select="5"/>
+
+ <xsl:key name="ids" match="*[@id]" use="@id"/>
+ <xsl:key name="specrefs" match="specref" use="@ref"/>
+
+ <xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="no" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <xsl:strip-space elements="author"/>
+
+ <!-- not handled:
+ attribute: unhandled IDL stuff
+ case: unhandled IDL stuff
+ component: unhandled IDL stuff
+ constant: unhandled IDL stuff
+ copyright: boilerplate notice always used instead
+ definitions: unhandled IDL stuff
+ descr: unhandled IDL stuff
+ enum: unhandled IDL stuff
+ enumerator: unhandled IDL stuff
+ exception: unhandled IDL stuff
+ group: unhandled IDL stuff
+ interface: unhandled IDL stuff
+ method: unhandled IDL stuff
+ module: unhandled IDL stuff
+ param: unhandled IDL stuff
+ parameters: unhandled IDL stuff
+ raises: unhandled IDL stuff
+ reference: unhandled IDL stuff
+ returns: unhandled IDL stuff
+ sequence: unhandled IDL stuff
+ struct: unhandled IDL stuff
+ typedef: unhandled IDL stuff
+ typename: unhandled IDL stuff
+ union: unhandled IDL stuff
+
+ Warning!
+ Only handles statuses of NOTE, WD, and REC.
+ -->
+
+ <!-- Output a warning for unhandled elements! -->
+ <xsl:template match="*">
+ <xsl:message>
+ <xsl:text>No template matches </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+
+ <font xmlns="http://www.w3.org/1999/xhtml" color="red">
+ <xsl:text><</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>></xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text></</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>></xsl:text>
+ </font>
+ </xsl:template>
+
+ <!-- Template for the root node. Creation of <html> element could
+ go here, but that doesn't feel right. -->
+ <xsl:template match="/">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- abstract: appears only in header -->
+ <!-- format as a second-level div -->
+ <!-- called in enforced order from header's template -->
+ <xsl:template match="abstract">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'abstract'"/>
+ </xsl:call-template>
+ <xsl:text>Abstract</xsl:text>
+ </h2>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- affiliation: follows a name in author and member -->
+ <!-- put it in parens with a leading space -->
+ <xsl:template match="affiliation">
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- arg: appears only in proto -->
+ <!-- argument in function prototype -->
+ <!-- output argument type, italicized as placeholder; separate the
+ list with commas and spaces -->
+ <xsl:template match="arg">
+ <xsl:if test="preceding-sibling::arg">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <var xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:value-of select="@type"/>
+ </var>
+ <xsl:if test="@occur = 'opt'">
+ <xsl:text>?</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- att: attribute name -->
+ <!-- used lots of places -->
+ <!-- format as monospaced code -->
+ <xsl:template match="att">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- attribute: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- attval: attribute name -->
+ <!-- used lots of places -->
+ <!-- format as quoted string -->
+ <xsl:template match="attval">
+ <xsl:text>"</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>"</xsl:text>
+ </xsl:template>
+
+ <!-- authlist: list of authors (editors, really) -->
+ <!-- called in enforced order from header's template, in <dl>
+ context -->
+ <xsl:template match="authlist">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:choose>
+ <xsl:when test="@role='editor'">
+ <xsl:text>Editor</xsl:text>
+ </xsl:when>
+ <xsl:when test="@role='contributor'">
+ <xsl:text>Contributing Author</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Author</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="count(author) > 1">
+ <xsl:text>s</xsl:text>
+ </xsl:if>
+ <xsl:text>:</xsl:text>
+ </dt>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- author: an editor of a spec -->
+ <!-- only appears in authlist -->
+ <!-- called in <dl> context -->
+ <xsl:template match="author">
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ <xsl:if test="@role = '2e'">
+ <xsl:text> - Second Edition</xsl:text>
+ </xsl:if>
+ </dd>
+ </xsl:template>
+
+ <!-- back: back matter for the spec -->
+ <!-- make a <div> for neatness -->
+ <!-- affects numbering of div1 children -->
+ <xsl:template match="back">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="back">
+ <xsl:apply-templates/>
+ <xsl:call-template name="autogenerated-appendices"/>
+ </div>
+ </xsl:template>
+
+ <!-- bibl: bibliographic entry -->
+ <!-- only appears in blist -->
+ <!-- called with <dl> context -->
+ <!-- if there's a key, use it in the <dt>, otherwise use the ID -->
+ <!-- if there's an href, add a ref in parens at the end of the text -->
+ <xsl:template match="bibl">
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="label">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@key">
+ <xsl:value-of select="@key"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <a href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@href">
+ <xsl:text> (See </xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>.)</xsl:text>
+ </xsl:if>
+ </dd>
+ </xsl:template>
+
+ <!-- bibref: reference to a bibliographic entry -->
+ <!-- make a link to the bibl -->
+ <!-- if the bibl has a key, put it in square brackets; otherwise use
+ the bibl's ID -->
+ <xsl:template match="bibref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @ref)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[</xsl:text>
+ <xsl:choose>
+ <xsl:when test="key('ids', @ref)/@key">
+ <xsl:value-of select="key('ids', @ref)/@key"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@ref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>]</xsl:text>
+ </a>
+ </xsl:template>
+
+ <!-- blist: list of bibliographic entries -->
+ <!-- set up the list and process children -->
+ <xsl:template match="blist">
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+ </xsl:template>
+
+ <!-- bnf: un-marked-up BNF productions -->
+ <!-- preformatted within a table cell -->
+ <!-- scrap provides <table> context -->
+ <xsl:template match="bnf">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <tr>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <pre>
+ <xsl:apply-templates/>
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:template>
+
+ <!-- body: the meat of the spec -->
+ <!-- create a TOC and then go to work -->
+ <!-- (don't forget the TOC for the back matter and a pointer to end
+ notes) -->
+ <xsl:template match="body">
+ <xsl:if test="$toc.level > 0">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="toc">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'contents'"/>
+ </xsl:call-template>
+ <xsl:text>Table of Contents</xsl:text>
+ </h2>
+ <p class="toc">
+ <xsl:apply-templates select="div1" mode="toc"/>
+ </p>
+ <xsl:if test="../back">
+ <xsl:text>
+</xsl:text>
+ <h3>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'appendices'"/>
+ </xsl:call-template>
+
+ <xsl:text>Appendi</xsl:text>
+ <xsl:choose>
+ <xsl:when test="count(../back/div1 | ../back/inform-div1) > 1">
+ <xsl:text>ces</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>x</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h3>
+ <p class="toc">
+ <xsl:apply-templates mode="toc" select="../back/div1 | ../back/inform-div1"/>
+ <xsl:call-template name="autogenerated-appendices-toc"/>
+ </p>
+ </xsl:if>
+ <xsl:if test="//footnote[not(ancestor::table)]">
+ <p class="toc">
+ <a href="#endnotes">
+ <xsl:text>End Notes</xsl:text>
+ </a>
+ </p>
+ </xsl:if>
+ </div>
+ <hr xmlns="http://www.w3.org/1999/xhtml"/>
+ </xsl:if>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="body">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="autogenerated-appendices">
+ <!-- there are none by default -->
+ </xsl:template>
+
+ <xsl:template name="autogenerated-appendices-toc">
+ <!-- there are none by default -->
+ </xsl:template>
+
+ <!-- caption: see table -->
+
+ <!-- case: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- code: generic computer code -->
+ <!-- output as HTML <code> for monospaced formatting -->
+ <xsl:template match="code">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- col: see table -->
+
+ <!-- colgroup: see table -->
+
+ <!-- com: formal production comment -->
+ <!-- can appear in prod or rhs -->
+ <xsl:template match="com">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <i>
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+ </i>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <i>
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+ </i>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- this could probably be handled better, but given that rhs can
+ have arbitrary text and com mixed in, I don't feel like
+ spending enough time to figure out how -->
+ <xsl:template match="rhs/com">
+ <i xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+ </i>
+ </xsl:template>
+
+ <!-- component: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- constant: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- constraint: a note in a formal production -->
+ <!-- refers to a constraint note -->
+ <xsl:template match="constraint">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[Constraint: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[Constraint: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- constraintnote: note constraining a formal production -->
+ <!-- see also constraintnote/head -->
+ <xsl:template match="constraintnote">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="constraint">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- copyright: notice for this document-->
+ <!-- right now, a boilerplate copyright notice is inserted by the
+ template for header; this may need to be changed -->
+
+ <!-- day: day of month of spec -->
+ <!-- only used in pudate; called directly from header template -->
+ <xsl:template match="day">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- def: glossary definition -->
+ <!-- already in <dl> context from glist -->
+ <xsl:template match="def">
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- definitions: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- descr: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- div[n]: structural divisions -->
+ <!-- make an HTML div -->
+ <!-- see also div[n]/head -->
+ <xsl:template match="div1">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div1">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div2">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div2">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div3">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div3">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div4">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div4">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div5">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div5">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- ednote: editors' note -->
+ <xsl:template match="ednote">
+ <xsl:if test="$show.ednotes != 0">
+ <table xmlns="http://www.w3.org/1999/xhtml" border="1" summary="Editor's Note">
+ <xsl:attribute name="summary">
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="name"/>
+ </xsl:if>
+ </xsl:attribute>
+ <tr>
+ <td align="left" valign="top" width="50%">
+ <b>
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="name"/>
+ </xsl:if>
+ </b>
+ </td>
+ <td align="right" valign="top" width="50%">
+ <xsl:choose>
+ <xsl:when test="date">
+ <xsl:apply-templates select="date"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="left" valign="top">
+ <xsl:apply-templates select="edtext"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="date">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="edtext">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- edtext: text of an editors' note -->
+ <!-- ednote is currently hidden -->
+
+ <!-- el: an XML element -->
+ <!-- present as preformatted text, no markup -->
+ <!-- Chris's personal preference is to put pointy-brackets around
+ this, but he seems to be in the minority -->
+ <xsl:template match="el">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- email: an email address for an editor -->
+ <!-- only occurs in author -->
+ <xsl:template match="email">
+ <xsl:text> </xsl:text>
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:text><</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>></xsl:text>
+ </a>
+ </xsl:template>
+
+ <!-- emph: in-line emphasis -->
+ <!-- equates to HTML <em> -->
+ <!-- the role attribute could be used for multiple kinds of
+ emphasis, but that would not be kind -->
+ <xsl:template match="emph">
+ <em xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></em>
+ </xsl:template>
+
+ <!-- enum: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- enumerator: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- example: what it seems -->
+ <!-- block-level with title -->
+ <!-- see also example/head -->
+ <xsl:template match="example">
+ <xsl:variable name="class">
+ <xsl:choose>
+ <xsl:when test="$tabular.examples = 0">exampleOuter</xsl:when>
+ <xsl:otherwise>example</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="{$class}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="example/head">
+ <xsl:text>
+</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$tabular.examples = 0">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="exampleHead">
+ <xsl:text>Example: </xsl:text>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <h5 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+
+ <xsl:text>Example: </xsl:text>
+ <xsl:apply-templates/>
+ </h5>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- eg: a literal example -->
+ <!-- present as preformatted text -->
+ <xsl:template match="eg">
+ <xsl:variable name="content">
+ <pre xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </pre>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$tabular.examples = 0">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="exampleInner">
+ <xsl:copy-of select="$content"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <table xmlns="http://www.w3.org/1999/xhtml" class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example">
+ <tr>
+ <td>
+ <xsl:copy-of select="$content"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- exception: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- footnote: format as endnote, actually -->
+ <xsl:template match="footnote">
+ <xsl:variable name="this-note-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <sup xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[</xsl:text>
+ <a name="FN-ANCH-{$this-note-id}" id="FN-ANCH-{$this-note-id}" href="#{$this-note-id}">
+ <xsl:apply-templates select="." mode="number-simple"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+ </xsl:template>
+
+ <!-- front: front matter for the spec -->
+ <!-- make a div for cleanliness -->
+ <xsl:template match="front">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="front">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- function: name of a function -->
+ <!-- format as HTML <code> for monospaced presentation -->
+ <xsl:template match="function">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- gitem: glossary list entry -->
+ <!-- just pass children through for <dd>/<dt> formatting -->
+ <xsl:template match="gitem">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- glist: glossary list -->
+ <!-- create <dl> and handle children -->
+ <xsl:template match="glist">
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"></p></xsl:text>
+ </xsl:if>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"><p></xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- graphic: external illustration -->
+ <!-- reference external graphic file with alt text -->
+ <xsl:template match="graphic">
+ <img xmlns="http://www.w3.org/1999/xhtml" src="{@source}">
+ <xsl:if test="@alt">
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@alt"/>
+ </xsl:attribute>
+ </xsl:if>
+ </img>
+ </xsl:template>
+
+ <!-- group: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- head: title for a variety of constructs -->
+
+ <!-- constraintnotes have different types, but they're
+ non-enumerated; nothing is done with them right now -->
+ <xsl:template match="constraintnote/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <b><xsl:text>Constraint: </xsl:text><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="div1/head">
+ <xsl:text>
+</xsl:text>
+ <h2 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h2>
+ </xsl:template>
+
+ <xsl:template match="div2/head">
+ <xsl:text>
+</xsl:text>
+ <h3 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h3>
+ </xsl:template>
+
+ <xsl:template match="div3/head">
+ <xsl:text>
+</xsl:text>
+ <h4 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h4>
+ </xsl:template>
+
+ <xsl:template match="div4/head">
+ <xsl:text>
+</xsl:text>
+ <h5 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h5>
+ </xsl:template>
+
+ <xsl:template match="div5/head">
+ <xsl:text>
+</xsl:text>
+ <h6 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h6>
+ </xsl:template>
+
+ <xsl:template match="inform-div1/head">
+ <xsl:text>
+</xsl:text>
+ <h2 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ <xsl:text> (Non-Normative)</xsl:text>
+ </h2>
+ </xsl:template>
+
+ <xsl:template match="issue/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <b><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="scrap/head">
+ <xsl:text>
+</xsl:text>
+ <h5 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+ </h5>
+ </xsl:template>
+
+ <xsl:template match="vcnote/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <b><xsl:text>Validity constraint: </xsl:text><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="wfcnote/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <b><xsl:text>Well-formedness constraint: </xsl:text><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <!-- header: metadata about the spec -->
+ <!-- pull out information into standard W3C layout -->
+ <xsl:template match="header">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="head">
+ <xsl:if test="not(/spec/@role='editors-copy')">
+ <p>
+ <a href="http://www.w3.org/">
+ <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"/>
+ </a>
+ </p>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ <h1>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="title[1]"/>
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'title'"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="title"/>
+ <xsl:if test="version">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="version"/>
+ </xsl:if>
+ </h1>
+ <xsl:if test="subtitle">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="subtitle[1]"/>
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'subtitle'"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="subtitle"/>
+ </h2>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="w3c-doctype[1]"/>
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'w3c-doctype'"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="w3c-doctype"/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="pubdate/day">
+ <xsl:apply-templates select="pubdate/day"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="pubdate/month"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="pubdate/year"/>
+ </h2>
+ <dl>
+ <xsl:apply-templates select="publoc"/>
+ <xsl:apply-templates select="latestloc"/>
+ <xsl:apply-templates select="prevlocs"/>
+ <xsl:apply-templates select="authlist"/>
+ </dl>
+
+ <!-- output the altlocs -->
+ <xsl:apply-templates select="altlocs"/>
+
+ <xsl:choose>
+ <xsl:when test="copyright">
+ <xsl:apply-templates select="copyright"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p class="copyright">
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ <xsl:text>Copyright</xsl:text>
+ </a>
+ <xsl:text> © </xsl:text>
+ <xsl:apply-templates select="pubdate/year"/>
+ <xsl:text> </xsl:text>
+ <a href="http://www.w3.org/">
+ <acronym title="World Wide Web Consortium">W3C</acronym>
+ </a>
+ <sup>®</sup>
+ <xsl:text> (</xsl:text>
+ <a href="http://www.csail.mit.edu/">
+ <acronym title="Massachusetts Institute of Technology">MIT</acronym>
+ </a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.ercim.org/">
+ <acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>
+ </a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.keio.ac.jp/">Keio</a>
+ <xsl:text>), All Rights Reserved. W3C </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
+ <xsl:text> rules apply.</xsl:text>
+ </p>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ <hr xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:apply-templates select="notice"/>
+ <xsl:apply-templates select="abstract"/>
+ <xsl:apply-templates select="status"/>
+ <xsl:apply-templates select="revisiondesc"/>
+ </xsl:template>
+
+ <xsl:template match="revisiondesc">
+ <!-- suppressed by default -->
+ </xsl:template>
+
+ <xsl:template match="copyright">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="copyright/p">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="copyright">
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- inform-div1: non-normative back matter top-level division -->
+ <!-- treat like div1 except add "(Non-Normative)" to title -->
+ <xsl:template match="inform-div1">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div1">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- interface: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- issue: open issue before the Working Group -->
+ <!-- maintain an ID for linking to it -->
+ <!-- currently generates boilerplate head plus optional head child
+ element; this should probably be cleaned up to only use the
+ head if it's present -->
+ <xsl:template match="issue">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="issue">
+ <p class="prefix">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <b>
+ <xsl:text>Issue (</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>):</xsl:text>
+ </b>
+ </p>
+ <xsl:apply-templates/>
+
+ <xsl:if test="not(resolution)">
+ <p class="prefix">
+ <b>
+ <xsl:text>Resolution:</xsl:text>
+ </b>
+ </p>
+ <p>None recorded.</p>
+ </xsl:if>
+ </div>
+ </xsl:template>
+
+ <!-- item: generic list item -->
+ <xsl:template match="item">
+ <li xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </li>
+ </xsl:template>
+
+ <!-- kw: keyword -->
+ <!-- make it bold -->
+ <xsl:template match="kw">
+ <b xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></b>
+ </xsl:template>
+
+ <!-- label: term for defintion in glossary entry -->
+ <!-- already in <dl> context from glist -->
+ <xsl:template match="label">
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="label">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:apply-templates/>
+ </dt>
+ </xsl:template>
+
+ <!-- language: -->
+ <!-- langusage: -->
+ <!-- identify language usage within a spec; not actually formatted -->
+
+ <!-- latestloc: latest location for this spec -->
+ <!-- called in a <dl> context from header -->
+ <xsl:template match="latestloc">
+ <dt xmlns="http://www.w3.org/1999/xhtml">Latest version:</dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- lhs: left-hand side of formal productions -->
+ <!-- make a table row with the lhs and the corresponding other
+ pieces in this crazy mixed-up content model -->
+ <xsl:template match="lhs">
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <xsl:apply-templates select="ancestor::prod" mode="number"/>
+<!--
+ This could be done right here, but XT goes into deep space when the
+ node to be numbered isn't the current node and level="any":
+ <xsl:number count="prod" level="any" from="spec"
+ format="[1]"/>
+ -->
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <code><xsl:apply-templates/></code>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:text> ::= </xsl:text>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='rhs']"/>
+ </tr>
+ </xsl:template>
+
+ <!-- loc: a Web location -->
+ <!-- outside the header, it's a normal cross-reference -->
+ <xsl:template match="loc">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- member: member of an organization -->
+ <!-- appears only in orglist, which creates <ul> context -->
+ <xsl:template match="member">
+ <li xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </li>
+ </xsl:template>
+
+ <!-- method: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- module: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- month: month of spec -->
+ <!-- only used in pudate; called directly from header template -->
+ <xsl:template match="month">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- name: name of an editor or organization member -->
+ <!-- only appears in author and member -->
+ <!-- just output text -->
+ <xsl:template match="name">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- note: a note about the spec -->
+ <xsl:template match="note">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="note">
+ <p class="prefix">
+ <b>Note:</b>
+ </p>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- notice: a front-matter advisory about the spec's status -->
+ <!-- make sure people notice it -->
+ <xsl:template match="notice">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="notice">
+ <p class="prefix">
+ <b>NOTICE:</b>
+ </p>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- nt: production non-terminal -->
+ <!-- make a link to the non-terminal's definition -->
+ <xsl:template match="nt">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- ====================================================================== -->
+ <!-- OrderedList Numeration -->
+
+ <xsl:template name="next.numeration">
+ <xsl:param name="numeration" select="'default'"/>
+ <xsl:choose>
+ <!-- Change this list if you want to change the order of numerations -->
+ <xsl:when test="$numeration = 'arabic'">loweralpha</xsl:when>
+ <xsl:when test="$numeration = 'loweralpha'">lowerroman</xsl:when>
+ <xsl:when test="$numeration = 'lowerroman'">upperalpha</xsl:when>
+ <xsl:when test="$numeration = 'upperalpha'">upperroman</xsl:when>
+ <xsl:when test="$numeration = 'upperroman'">arabic</xsl:when>
+ <xsl:otherwise>arabic</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="list.numeration">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$node/ancestor::olist">
+ <xsl:call-template name="next.numeration">
+ <xsl:with-param name="numeration">
+ <xsl:call-template name="list.numeration">
+ <xsl:with-param name="node" select="$node/ancestor::olist[1]"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="next.numeration"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- olist: an ordered list -->
+ <xsl:template match="olist">
+ <xsl:variable name="numeration">
+ <xsl:call-template name="list.numeration"/>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$numeration='arabic'">1</xsl:when>
+ <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+ <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+ <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+ <xsl:when test="$numeration='upperroman'">I</xsl:when>
+ <!-- What!? This should never happen -->
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected numeration: </xsl:text>
+ <xsl:value-of select="$numeration"/>
+ </xsl:message>
+ <xsl:value-of select="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <ol xmlns="http://www.w3.org/1999/xhtml" type="{$type}">
+ <xsl:apply-templates/>
+ </ol>
+ </xsl:template>
+
+ <!-- orglist: a list of an organization's members -->
+ <xsl:template match="orglist">
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ul>
+ </xsl:template>
+
+ <!-- p: a standard paragraph -->
+ <xsl:template match="p">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- param: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- parameters: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- phrase: semantically meaningless markup hanger -->
+ <!-- role attributes may be used to request different formatting,
+ which isn't currently handled -->
+ <xsl:template match="phrase">
+ <span xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </span>
+ </xsl:template>
+
+ <!-- prevlocs: previous locations for this spec -->
+ <!-- called in a <dl> context from header -->
+ <xsl:template match="prevlocs">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>Previous version</xsl:text>
+ <xsl:if test="count(loc) > 1">s</xsl:if>
+ <xsl:text>:</xsl:text>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- prod: a formal grammar production -->
+ <!-- if not in a prodgroup, needs a <tbody> -->
+ <!-- has a weird content model; makes a table but there are no
+ explicit rules; many different things can start a new row -->
+ <!-- process the first child in each row, and it will process the
+ others -->
+ <xsl:template match="prod">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="lhs | rhs[preceding-sibling::*[1][name()!='lhs']] | com[preceding-sibling::*[1][name()!='rhs']] | constraint[preceding-sibling::*[1][name()!='rhs']] | vc[preceding-sibling::*[1][name()!='rhs']] | wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+ </tbody>
+ </xsl:template>
+
+ <xsl:template match="prodgroup/prod">
+ <xsl:apply-templates select="lhs | rhs[preceding-sibling::*[1][name()!='lhs']] | com[preceding-sibling::*[1][name()!='rhs']] | constraint[preceding-sibling::*[1][name()!='rhs']] | vc[preceding-sibling::*[1][name()!='rhs']] | wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+ </xsl:template>
+
+ <!-- prodgroup: group of formal productions -->
+ <!-- create one <tbody> for each group -->
+ <xsl:template match="prodgroup">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </tbody>
+ </xsl:template>
+
+ <!-- prodrecap: reiteration of a prod -->
+ <!-- process the prod in another node that will never generate a
+ <tbody> or a number, plus links the lhs to the original
+ production -->
+ <xsl:template match="prodrecap">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="key('ids', @ref)" mode="ref"/>
+ </tbody>
+ </xsl:template>
+
+ <xsl:template match="processing-instruction('specprod')">
+ <xsl:if test="contains(., 'production-recap')"/>
+ <table xmlns="http://www.w3.org/1999/xhtml" class="scrap" summary="Scrap">
+ <tbody>
+ <xsl:apply-templates select="//prod" mode="ref"/>
+ </tbody>
+ </table>
+ </xsl:template>
+
+ <!-- proto: function prototype -->
+ <!-- type and name of the function, with arguments in parens -->
+ <xsl:template match="proto">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <em><xsl:value-of select="@return-type"/></em>
+ <xsl:text> </xsl:text>
+ <b><xsl:value-of select="@name"/></b>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>)</xsl:text>
+ </p>
+ </xsl:template>
+
+ <!-- pubdate: date of spec -->
+ <!-- called directly from header -->
+
+ <!-- publoc: location of current version of spec -->
+ <!-- called from header in <dl> context -->
+ <xsl:template match="publoc">
+ <dt xmlns="http://www.w3.org/1999/xhtml">This version:</dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="altlocs">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>This document is also available </xsl:text>
+ <xsl:text>in these non-normative formats: </xsl:text>
+ <xsl:for-each select="loc">
+ <xsl:if test="position() > 1">
+ <xsl:if test="last() > 2">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:if test="last() = 2">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="position() = last() and position() > 1">and </xsl:if>
+ <a href="{@href}"><xsl:apply-templates/></a>
+ </xsl:for-each>
+ <xsl:text>.</xsl:text>
+ </p>
+ </xsl:template>
+
+ <!-- pubstmt: statement of publication -->
+ <!-- not currently output -->
+
+ <!-- quote: a quoted string or phrase -->
+ <!-- it would be nice to use HTML <q> elements, but browser support
+ is abysmal -->
+ <xsl:template match="quote">
+ <xsl:text>"</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>"</xsl:text>
+ </xsl:template>
+
+ <!-- raises: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- reference: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- resolution: resolution of an issue -->
+ <xsl:template match="resolution">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <b>
+ <xsl:if test="@role='partial'">Partial </xsl:if>
+ <xsl:text>Resolution:</xsl:text>
+ </b>
+ </p>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- returns: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- revisiondesc: description of spec revision -->
+ <!-- used for internal tracking; not formatted -->
+
+ <!-- rhs: right-hand side of a formal production -->
+ <!-- make a table cell; if it's not the first after an LHS, make a
+ new row, too -->
+ <xsl:template match="rhs">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='lhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <code><xsl:apply-templates/></code>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='com' or name()='constraint' or name()='vc' or name()='wfc']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <code><xsl:apply-templates/></code>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='com' or name()='constraint' or name()='vc' or name()='wfc']"/>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- role: part played by a member of an organization -->
+ <xsl:template match="role">
+ <xsl:text> (</xsl:text>
+ <i xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></i>
+ <xsl:text>) </xsl:text>
+ </xsl:template>
+
+ <!-- scrap: series of formal grammar productions -->
+ <!-- set up a <table> and handle children -->
+ <xsl:template match="scrap">
+ <xsl:apply-templates select="head"/>
+ <table xmlns="http://www.w3.org/1999/xhtml" class="scrap" summary="Scrap">
+ <xsl:apply-templates select="bnf | prod | prodgroup"/>
+ </table>
+ </xsl:template>
+
+ <!-- sequence: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- sitem: simple list item -->
+ <!-- just make one paragraph with <br>s between items -->
+ <xsl:template match="sitem">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sitem[position() > 1]" priority="2">
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- slist: simple list -->
+ <!-- using a <blockquote> to indent the list is very wrong, but it works -->
+ <xsl:template match="slist">
+ <blockquote xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ <xsl:apply-templates/>
+ </p>
+ </blockquote>
+ </xsl:template>
+
+ <!-- source: the source of an issue -->
+ <xsl:template match="source">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <b>Source</b>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- sourcedesc: description of spec preparation -->
+ <!-- used for tracking the source, but not formatted -->
+
+ <!-- spec: the specification itself -->
+ <xsl:template match="spec">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="header/langusage/language">
+ <xsl:attribute name="lang">
+ <xsl:value-of select="header/langusage/language/@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <head>
+
+ <title>
+ <xsl:apply-templates select="header/title"/>
+ <xsl:if test="header/version">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="header/version"/>
+ </xsl:if>
+ <xsl:if test="$additional.title != ''">
+ <xsl:text> -- </xsl:text>
+ <xsl:value-of select="$additional.title"/>
+ </xsl:if>
+ </title>
+ <xsl:call-template name="css"/>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ <xsl:if test="//footnote[not(ancestor::table)]">
+ <hr/>
+ <div class="endnotes">
+ <xsl:text>
+</xsl:text>
+ <h3>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'endnotes'"/>
+ </xsl:call-template>
+ <xsl:text>End Notes</xsl:text>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="//footnote[not(ancestor::table)]" mode="notes"/>
+ </dl>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!-- Specref -->
+
+ <!-- specref: reference to another part of teh current specification -->
+ <xsl:template match="specref">
+ <xsl:variable name="target" select="key('ids', @ref)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="local-name($target)='issue' or starts-with(local-name($target), 'div') or starts-with(local-name($target), 'inform-div') or local-name($target) = 'vcnote' or local-name($target) = 'prod' or local-name($target) = 'label'">
+ <xsl:apply-templates select="$target" mode="specref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unsupported specref to </xsl:text>
+ <xsl:value-of select="local-name($target)"/>
+ <xsl:text> [</xsl:text>
+ <xsl:value-of select="@ref"/>
+ <xsl:text>] </xsl:text>
+ <xsl:text> (Contact stylesheet maintainer).</xsl:text>
+ </xsl:message>
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @ref)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>???</xsl:text>
+ </a>
+ </b>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="issue" mode="specref">
+ <xsl:text>[</xsl:text>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:text>Issue </xsl:text>
+ <xsl:apply-templates select="." mode="number"/>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="div1|div2|div3|div4|div5" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+ </xsl:template>
+
+ <xsl:template match="inform-div1" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+ </xsl:template>
+
+ <xsl:template match="vcnote" mode="specref">
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[VC: </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </b>
+ </xsl:template>
+
+ <xsl:template match="prod" mode="specref">
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[PROD: </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="number-simple"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </b>
+ </xsl:template>
+
+ <xsl:template match="label" mode="specref">
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[</xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </b>
+ </xsl:template>
+
+ <!-- /Specref -->
+
+ <!-- status: the status of the spec -->
+ <xsl:template match="status">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'status'"/>
+ </xsl:call-template>
+ <xsl:text>Status of this Document</xsl:text>
+ </h2>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <p><strong>This document is an editors' copy that has
+ no official standing.</strong></p>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- struct: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- sub: subscript -->
+ <xsl:template match="sub">
+ <sub xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </sub>
+ </xsl:template>
+
+ <!-- subtitle: secondary title of spec -->
+ <!-- handled directly within header -->
+ <xsl:template match="title">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- sup: superscript -->
+ <xsl:template match="sup">
+ <sup xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </sup>
+ </xsl:template>
+
+ <!-- table: the HTML table model adopted wholesale; note however that we -->
+ <!-- do this such that the XHTML stylesheet will do the right thing. -->
+ <xsl:template match="caption|col|colgroup|td|tfoot|th|thead|tr|tbody">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <!-- Wait: some of these aren't HTML attributes after all... -->
+ <xsl:if test="local-name(.) != 'diff'">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- but table is special, to handle footnotes -->
+ <xsl:template match="table">
+ <table xmlns="http://www.w3.org/1999/xhtml" summary="Footnotes">
+ <xsl:for-each select="@*">
+ <!-- Wait: some of these aren't HTML attributes after all... -->
+ <xsl:if test="local-name(.) != 'diff'">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+
+ <xsl:if test=".//footnote">
+ <tbody>
+ <tr>
+ <td>
+ <xsl:apply-templates select=".//footnote" mode="table.notes"/>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:if>
+ </table>
+ </xsl:template>
+
+ <!-- term: the actual mention of a term within a termdef -->
+ <xsl:template match="term">
+ <b xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></b>
+ </xsl:template>
+
+ <!-- termdef: sentence or phrase defining a term -->
+ <xsl:template match="termdef">
+ <xsl:text>[</xsl:text>
+ <a xmlns="http://www.w3.org/1999/xhtml" name="{@id}" id="{@id}" title="{@term}">
+ <xsl:text>Definition</xsl:text>
+ </a>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <!-- termref: reference to a defined term -->
+ <xsl:template match="termref">
+ <a xmlns="http://www.w3.org/1999/xhtml" title="{key('ids', @def)/@term}">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- tfoot: see table -->
+ <!-- th: see table -->
+ <!-- thead: see table -->
+
+ <!-- title: title of the specification -->
+ <!-- called directly within header -->
+
+ <!-- titleref: reference to the title of any work -->
+ <!-- if a URL is given, link it -->
+ <xsl:template match="titleref">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <cite>
+ <xsl:apply-templates/>
+ </cite>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <cite xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </cite>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- tr: see table -->
+
+ <!-- typedef: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- typename: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- ulist: unordered list -->
+ <xsl:template match="ulist">
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ul>
+ </xsl:template>
+
+ <!-- union: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- var: a variable -->
+ <xsl:template match="var">
+ <var xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </var>
+ </xsl:template>
+
+ <!-- vc: validity check reference in a formal production -->
+ <xsl:template match="vc">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[VC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[VC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- vcnote: validity check note after a formal production -->
+ <xsl:template match="vcnote">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="constraint">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- version: version of this spec -->
+ <!-- called directly from header -->
+ <xsl:template match="version">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- w3c-designation: canonical name for this spec -->
+ <!-- not used for formatting -->
+
+ <!-- w3c-doctype: type of document the specification is -->
+ <!-- used by header template to select CSS stylesheet for output
+ HTML -->
+ <xsl:template match="w3c-doctype">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- wfc: well-formedness check reference in a formal production -->
+ <xsl:template match="wfc">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[WFC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[WFC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- wfcnote: well-formedness check note after formal production -->
+ <xsl:template match="wfcnote">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="constraint">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- xnt: external non-terminal -->
+ <!-- xspecref: external specification reference -->
+ <!-- xtermref: external term reference -->
+ <!-- just link to URI provided -->
+ <xsl:template match="xnt | xspecref | xtermref">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- year: year of spec -->
+ <!-- only used in pudate; called directly from header template -->
+ <xsl:template match="year">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- Silly HTML elements used for pasting stuff in; shouldn't ever
+ show up in a spec, but they're easy to handle and you just
+ never know. -->
+ <xsl:template match="a|div|em|h1|h2|h3|h4|h5|h6|li|ol|pre|ul">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- legacy XML spec stuff -->
+ <xsl:template match="htable">
+ <table xmlns="http://www.w3.org/1999/xhtml" summary="HTML Table">
+ <xsl:for-each select="@*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </table>
+ </xsl:template>
+ <xsl:template match="htbody">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </tbody>
+ </xsl:template>
+ <xsl:template match="key-term">
+ <b xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></b>
+ </xsl:template>
+ <xsl:template match="statusp">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- legacy DocBook stuff -->
+ <xsl:template match="itemizedlist">
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ul>
+ </xsl:template>
+ <xsl:template match="listitem">
+ <li xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </li>
+ </xsl:template>
+ <xsl:template match="orderedlist">
+ <ol xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ol>
+ </xsl:template>
+ <xsl:template match="para">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- mode: divnum -->
+ <xsl:template mode="divnum" match="div1">
+ <xsl:number format="1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back/div1 | inform-div1">
+ <xsl:number count="div1 | inform-div1" format="A "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="front/div1 | front//div2 | front//div3 | front//div4 | front//div5"/>
+
+ <xsl:template mode="divnum" match="div2">
+ <xsl:number level="multiple" count="div1 | div2" format="1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div2">
+ <xsl:number level="multiple" count="div1 | div2 | inform-div1" format="A.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="div3">
+ <xsl:number level="multiple" count="div1 | div2 | div3" format="1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div3">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | inform-div1" format="A.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="div4">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4" format="1.1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div4">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4 | inform-div1" format="A.1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="div5">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4 | div5" format="1.1.1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div5">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4 | div5 | inform-div1" format="A.1.1.1.1 "/>
+ </xsl:template>
+
+ <!-- mode: notes -->
+ <xsl:template mode="notes" match="footnote">
+ <xsl:variable name="this-note-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[</xsl:text>
+ <a name="{$this-note-id}" id="{$this-note-id}" href="#FN-ANCH-{$this-note-id}">
+ <xsl:apply-templates select="." mode="number-simple"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- mode: table.notes -->
+ <xsl:template match="footnote" mode="table.notes">
+ <xsl:apply-templates mode="table.notes"/>
+ </xsl:template>
+
+ <xsl:template match="footnote/p[1]" mode="table.notes">
+ <xsl:variable name="this-note-id">
+ <xsl:choose>
+ <xsl:when test="../@id">
+ <xsl:value-of select="../@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(parent::*)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <p xmlns="http://www.w3.org/1999/xhtml" class="table.footnote">
+ <sup>
+ <a name="{$this-note-id}" id="{$this-note-id}" href="#FN-ANCH-{$this-note-id}">
+ <xsl:apply-templates select="parent::footnote" mode="number-simple"/>
+ <xsl:text>.</xsl:text>
+ </a>
+ </sup>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- mode: number -->
+ <xsl:template mode="number" match="prod">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates select="." mode="number-simple"/>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="number" match="issue">
+ <xsl:number level="single" format="1"/>
+ </xsl:template>
+
+ <xsl:template mode="number" match="prod[@diff='add']">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates select="preceding::prod[not(@diff='add')][1]" mode="number-simple"/>
+<!--
+ Once again, this could be done right here, but XT won't hear of it.
+ <xsl:number level="any" count="prod[not(@diff='add')]"/>
+ -->
+ <xsl:number level="any" count="prod[@diff='add']" from="prod[not(@diff='add')]" format="a"/>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <!-- mode: number-simple -->
+ <xsl:template mode="number-simple" match="prod">
+ <xsl:number level="any" count="prod[not(@diff='add')]"/>
+ </xsl:template>
+
+ <xsl:template mode="number-simple" match="footnote">
+ <xsl:number level="any" format="1"/>
+ </xsl:template>
+
+ <!-- mode: ref -->
+ <xsl:template match="lhs" mode="ref">
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="ancestor::prod" mode="number"/>
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="../@id">
+ <a href="#{../@id}">
+ <code><xsl:apply-templates/></code>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <code><xsl:apply-templates/></code>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:text> ::= </xsl:text>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='rhs']"/>
+ </tr>
+ </xsl:template>
+
+ <xsl:template mode="ref" match="prod">
+ <xsl:apply-templates select="lhs" mode="ref"/>
+ <xsl:apply-templates select="rhs[preceding-sibling::*[1][name()!='lhs']] | com[preceding-sibling::*[1][name()!='rhs']] | constraint[preceding-sibling::*[1][name()!='rhs']] | vc[preceding-sibling::*[1][name()!='rhs']] | wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+ </xsl:template>
+
+ <!-- mode: text -->
+ <!-- most stuff processes just as text here, but some things should
+ be hidden -->
+ <xsl:template mode="text" match="ednote | footnote"/>
+
+ <!-- mode: toc -->
+ <xsl:template mode="toc" match="div1">
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 1">
+ <xsl:apply-templates select="div2" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div2">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 2">
+ <xsl:apply-templates select="div3" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div3">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 3">
+ <xsl:apply-templates select="div4" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div4">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 4">
+ <xsl:apply-templates select="div5" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div5">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="inform-div1">
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <xsl:text> (Non-Normative)</xsl:text>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 2">
+ <xsl:apply-templates select="div2" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="css">
+ <style xmlns="http://www.w3.org/1999/xhtml" type="text/css">
+ <xsl:text>
+code { font-family: monospace; }
+
+div.constraint,
+div.issue,
+div.note,
+div.notice { margin-left: 2em; }
+
+li p { margin-top: 0.3em;
+ margin-bottom: 0.3em; }
+</xsl:text>
+ <xsl:if test="$tabular.examples = 0">
+ <xsl:text>
+div.exampleInner pre { margin-left: 1em;
+ margin-top: 0em; margin-bottom: 0em}
+div.exampleOuter {border: 4px double gray;
+ margin: 0em; padding: 0em}
+div.exampleInner { background-color: #d5dee3;
+ border-top-width: 4px;
+ border-top-style: double;
+ border-top-color: #d3d3d3;
+ border-bottom-width: 4px;
+ border-bottom-style: double;
+ border-bottom-color: #d3d3d3;
+ padding: 4px; margin: 0em }
+div.exampleWrapper { margin: 4px }
+div.exampleHeader { font-weight: bold;
+ margin: 4px}
+</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$additional.css"/>
+ </style>
+ <link xmlns="http://www.w3.org/1999/xhtml" rel="stylesheet" type="text/css">
+ <xsl:attribute name="href">
+ <xsl:text>http://www.w3.org/StyleSheets/TR/</xsl:text>
+ <xsl:choose>
+ <xsl:when test="/spec/@role='editors-copy'">base</xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="/spec/@w3c-doctype='wd'">W3C-WD</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='rec'">W3C-REC</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='pr'">W3C-PR</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='cr'">W3C-CR</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='note'">W3C-NOTE</xsl:when>
+ <xsl:otherwise>base</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>.css</xsl:text>
+ </xsl:attribute>
+ </link>
+ </xsl:template>
+
+ <xsl:template name="href.target">
+ <xsl:param name="target" select="."/>
+
+ <xsl:text>#</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$target/@id">
+ <xsl:value-of select="$target/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($target)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!-- ================================================================= -->
+
+<xsl:template name="object.id">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="default.id" select="''"/>
+
+ <xsl:choose>
+ <!-- can't use the default ID if it's used somewhere else in the document! -->
+ <xsl:when test="$default.id != '' and not(key('ids', $default.id))">
+ <xsl:value-of select="$default.id"/>
+ </xsl:when>
+ <xsl:when test="$node/@id">
+ <xsl:value-of select="$node/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($node)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="anchor">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="conditional" select="1"/>
+ <xsl:param name="default.id" select="''"/>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="default.id" select="$default.id"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$conditional = 0 or $node/@id">
+ <a xmlns="http://www.w3.org/1999/xhtml" name="{$id}" id="{$id}"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ================================================================= -->
+
+</xsl:transform>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/doesc.bat Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,17 @@
+@echo off
+xe -q -v ttaf1-dfxp-animation.xsd
+xe -q -v ttaf1-dfxp-content.xsd
+xe -q -v ttaf1-dfxp-core-attribs.xsd
+xe -q -v ttaf1-dfxp-datatypes.xsd
+xe -q -v ttaf1-dfxp-document.xsd
+xe -q -v ttaf1-dfxp-head.xsd
+xe -q -v ttaf1-dfxp-metadata.xsd
+xe -q -v ttaf1-dfxp-metadata-items.xsd
+xe -q -v ttaf1-dfxp-metadata-attribs.xsd
+xe -q -v ttaf1-dfxp-parameter-attribs.xsd
+xe -q -v ttaf1-dfxp-styling-attribs.xsd
+xe -q -v ttaf1-dfxp-styling.xsd
+xe -q -v ttaf1-dfxp-layout.xsd
+xe -q -v ttaf1-dfxp-timing-attribs.xsd
+xe -q -v ttaf1-dfxp.xsd
+xe -q -v xml.xsd
Binary file old/dfxp/xsd/schema.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-animation.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,28 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="set.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class" />
+ <xs:attributeGroup ref="tt:Timed.attrib.class" />
+ <xs:attributeGroup ref="tts:Styling.attrib.class" />
+ </xs:attributeGroup>
+ <xs:complexType name="set.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:set.attlist"/>
+ </xs:complexType>
+ <xs:element name="set" type="tt:set.eltype"/>
+ <xs:group name="Animation.class">
+ <xs:choice>
+ <xs:element ref="tt:set"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-animation.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,28 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="set.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class" />
+ <xs:attributeGroup ref="tt:Timed.attrib.class" />
+ <xs:attributeGroup ref="tts:Styling.attrib.class" />
+ </xs:attributeGroup>
+ <xs:complexType name="set.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:set.attlist"/>
+ </xs:complexType>
+ <xs:element name="set" type="tt:set.eltype"/>
+ <xs:group name="Animation.class">
+ <xs:choice>
+ <xs:element ref="tt:set"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-content.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,113 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
+ <xs:attributeGroup name="body.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="div.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="p.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="span.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="br.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="body.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:div" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:body.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="div.eltype">
+ <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:Block.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:div.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="p.eltype" mixed="true">
+ <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:sequence>
+ <xs:attributeGroup ref="tt:p.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="span.eltype" mixed="true">
+ <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:sequence>
+ <xs:attributeGroup ref="tt:span.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="br.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:br.attlist"/>
+ </xs:complexType>
+ <xs:element name="body" type="tt:body.eltype"/>
+ <xs:element name="div" type="tt:div.eltype"/>
+ <xs:element name="p" type="tt:p.eltype"/>
+ <xs:element name="span" type="tt:span.eltype"/>
+ <xs:element name="br" type="tt:br.eltype"/>
+ <xs:group name="BlockNoDiv.class">
+ <xs:choice>
+ <xs:element ref="tt:p"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Block.class">
+ <xs:choice>
+ <xs:group ref="tt:BlockNoDiv.class"/>
+ <xs:element ref="tt:div"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="InlineNoSpan.class">
+ <xs:choice>
+ <xs:element ref="tt:br"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Inline.class">
+ <xs:choice>
+ <xs:group ref="tt:InlineNoSpan.class"/>
+ <xs:element ref="tt:span"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-content.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,113 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
+ <xs:attributeGroup name="body.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="div.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="p.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="span.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ <xs:attributeGroup ref="tt:RegionBinding.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="br.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="ttm:Metadata.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="body.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:div" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:body.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="div.eltype">
+ <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:Block.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:div.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="p.eltype" mixed="true">
+ <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:sequence>
+ <xs:attributeGroup ref="tt:p.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="span.eltype" mixed="true">
+ <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:sequence>
+ <xs:attributeGroup ref="tt:span.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="br.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:br.attlist"/>
+ </xs:complexType>
+ <xs:element name="body" type="tt:body.eltype"/>
+ <xs:element name="div" type="tt:div.eltype"/>
+ <xs:element name="p" type="tt:p.eltype"/>
+ <xs:element name="span" type="tt:span.eltype"/>
+ <xs:element name="br" type="tt:br.eltype"/>
+ <xs:group name="BlockNoDiv.class">
+ <xs:choice>
+ <xs:element ref="tt:p"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Block.class">
+ <xs:choice>
+ <xs:group ref="tt:BlockNoDiv.class"/>
+ <xs:element ref="tt:div"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="InlineNoSpan.class">
+ <xs:choice>
+ <xs:element ref="tt:br"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Inline.class">
+ <xs:choice>
+ <xs:group ref="tt:InlineNoSpan.class"/>
+ <xs:element ref="tt:span"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-core-attribs.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,17 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="xml.xsd"/>
+ <xs:attributeGroup name="Core.attrib.class">
+ <xs:attribute ref="xml:id"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Core.required.attrib.class">
+ <xs:attribute ref="xml:id"/>
+ <xs:attribute ref="xml:lang" use="required"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-core-attribs.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,17 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="xml.xsd"/>
+ <xs:attributeGroup name="Core.attrib.class">
+ <xs:attribute ref="xml:id"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Core.required.attrib.class">
+ <xs:attribute ref="xml:id"/>
+ <xs:attribute ref="xml:lang" use="required"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-datatypes.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,305 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype">
+ <xs:simpleType name="alpha">
+ <xs:restriction base="xs:float">
+ <xs:minInclusive value="0"/>
+ <xs:maxInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="agent">
+ <xs:restriction base="xs:IDREFS"/>
+ </xs:simpleType>
+ <xs:simpleType name="cellResolution">
+ <xs:annotation>
+ <xs:documentation>positiveInteger positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="clockMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="local"/>
+ <xs:enumeration value="gps"/>
+ <xs:enumeration value="utc"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="color">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="direction">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ltr"/>
+ <xs:enumeration value="rtl"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="display">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="auto"/>
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="displayAlign">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="before"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="after"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="dynamicFlow">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="extent">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontFamily">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontSize">
+ <xs:annotation>
+ <xs:documentation>inherit | length | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontStyle">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="italic"/>
+ <xs:enumeration value="oblique"/>
+ <xs:enumeration value="reverseOblique"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontWeight">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="bold"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="frameRate">
+ <xs:restriction base="xs:nonNegativeInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="frameRateMultiplier">
+ <xs:annotation>
+ <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\p{Nd}+(\s*:\s*\p{Nd}+)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="lineHeight">
+ <xs:annotation>
+ <xs:documentation>normal | inherit | length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="markerMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="continuous"/>
+ <xs:enumeration value="discontinuous"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataAgentType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="person"/>
+ <xs:enumeration value="character"/>
+ <xs:enumeration value="group"/>
+ <xs:enumeration value="organization"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataNameType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="full"/>
+ <xs:enumeration value="family"/>
+ <xs:enumeration value="given"/>
+ <xs:enumeration value="alias"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataRoleBaseType">
+ <xs:annotation>
+ <xs:documentation>orphan simpleType retained in hope it can be used for role</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="action"/>
+ <xs:enumeration value="caption"/>
+ <xs:enumeration value="dialog"/>
+ <xs:enumeration value="expletive"/>
+ <xs:enumeration value="kinesic"/>
+ <xs:enumeration value="lyrics"/>
+ <xs:enumeration value="music"/>
+ <xs:enumeration value="narration"/>
+ <xs:enumeration value="quality"/>
+ <xs:enumeration value="sound"/>
+ <xs:enumeration value="source"/>
+ <xs:enumeration value="suppressed"/>
+ <xs:enumeration value="reproduction"/>
+ <xs:enumeration value="thought"/>
+ <xs:enumeration value="title"/>
+ <xs:enumeration value="transcription"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="opacity">
+ <xs:annotation>
+ <xs:documentation>inherit | alpha</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="origin">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="overflow">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="visible"/>
+ <xs:enumeration value="hidden"/>
+ <xs:enumeration value="scroll"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="padding">
+ <xs:annotation>
+ <xs:documentation>inherit | length length | length length length | length length length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="pixelAspectRatio">
+ <xs:annotation>
+ <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\p{Nd}+\s*:\s*\p{Nd}+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="profile">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="role">
+ <xs:annotation>
+ <xs:documentation>metadataRoleBaseType | "x-"string</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN"/>
+ </xs:simpleType>
+ <xs:simpleType name="showBackground">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="always"/>
+ <xs:enumeration value="whenActive"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="smpteMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="dropNTSC"/>
+ <xs:enumeration value="dropPAL"/>
+ <xs:enumeration value="nonDrop"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="subFrameRate">
+ <xs:restriction base="xs:positiveInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="textAlign">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="start"/>
+ <xs:enumeration value="end"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="textDecoration">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="underline"/>
+ <xs:enumeration value="noUnderline"/>
+ <xs:enumeration value="overline"/>
+ <xs:enumeration value="noOverline"/>
+ <xs:enumeration value="lineThrough"/>
+ <xs:enumeration value="noLineThrough"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="textOutline">
+ <xs:annotation>
+ <xs:documentation>none | inherit | length | length length | color length | color length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="tickRate">
+ <xs:restriction base="xs:positiveInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="timeBase">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="media"/>
+ <xs:enumeration value="smpte"/>
+ <xs:enumeration value="clock"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeContainer">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="par"/>
+ <xs:enumeration value="seq"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeCoordinate">
+ <xs:annotation>
+ <xs:documentation>timeExpression</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="timeDuration">
+ <xs:annotation>
+ <xs:documentation>timeExpression</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="unicodeBidi">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="embed"/>
+ <xs:enumeration value="bidiOverride"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="visibility">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="hidden"/>
+ <xs:enumeration value="visible"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="wrapOption">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="wrap"/>
+ <xs:enumeration value="noWrap"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="writingMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="lrtb"/>
+ <xs:enumeration value="rltb"/>
+ <xs:enumeration value="tbrl"/>
+ <xs:enumeration value="tblr"/>
+ <xs:enumeration value="lr"/>
+ <xs:enumeration value="rl"/>
+ <xs:enumeration value="tb"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="zIndex">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | integer</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-datatypes.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,305 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype">
+ <xs:simpleType name="alpha">
+ <xs:restriction base="xs:float">
+ <xs:minInclusive value="0"/>
+ <xs:maxInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="agent">
+ <xs:restriction base="xs:IDREFS"/>
+ </xs:simpleType>
+ <xs:simpleType name="cellResolution">
+ <xs:annotation>
+ <xs:documentation>positiveInteger positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="clockMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="local"/>
+ <xs:enumeration value="gps"/>
+ <xs:enumeration value="utc"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="color">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="direction">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ltr"/>
+ <xs:enumeration value="rtl"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="display">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="auto"/>
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="displayAlign">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="before"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="after"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="dynamicFlow">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="extent">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontFamily">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontSize">
+ <xs:annotation>
+ <xs:documentation>inherit | length | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontStyle">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="italic"/>
+ <xs:enumeration value="oblique"/>
+ <xs:enumeration value="reverseOblique"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontWeight">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="bold"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="frameRate">
+ <xs:restriction base="xs:nonNegativeInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="frameRateMultiplier">
+ <xs:annotation>
+ <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\p{Nd}+(\s*:\s*\p{Nd}+)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="lineHeight">
+ <xs:annotation>
+ <xs:documentation>normal | inherit | length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="markerMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="continuous"/>
+ <xs:enumeration value="discontinuous"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataAgentType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="person"/>
+ <xs:enumeration value="character"/>
+ <xs:enumeration value="group"/>
+ <xs:enumeration value="organization"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataNameType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="full"/>
+ <xs:enumeration value="family"/>
+ <xs:enumeration value="given"/>
+ <xs:enumeration value="alias"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="metadataRoleBaseType">
+ <xs:annotation>
+ <xs:documentation>orphan simpleType retained in hope it can be used for role</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="action"/>
+ <xs:enumeration value="caption"/>
+ <xs:enumeration value="dialog"/>
+ <xs:enumeration value="expletive"/>
+ <xs:enumeration value="kinesic"/>
+ <xs:enumeration value="lyrics"/>
+ <xs:enumeration value="music"/>
+ <xs:enumeration value="narration"/>
+ <xs:enumeration value="quality"/>
+ <xs:enumeration value="sound"/>
+ <xs:enumeration value="source"/>
+ <xs:enumeration value="suppressed"/>
+ <xs:enumeration value="reproduction"/>
+ <xs:enumeration value="thought"/>
+ <xs:enumeration value="title"/>
+ <xs:enumeration value="transcription"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="opacity">
+ <xs:annotation>
+ <xs:documentation>inherit | alpha</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="origin">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="overflow">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="visible"/>
+ <xs:enumeration value="hidden"/>
+ <xs:enumeration value="scroll"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="padding">
+ <xs:annotation>
+ <xs:documentation>inherit | length length | length length length | length length length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="pixelAspectRatio">
+ <xs:annotation>
+ <xs:documentation>positiveInteger:positiveInteger</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\p{Nd}+\s*:\s*\p{Nd}+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="profile">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="role">
+ <xs:annotation>
+ <xs:documentation>metadataRoleBaseType | "x-"string</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN"/>
+ </xs:simpleType>
+ <xs:simpleType name="showBackground">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="always"/>
+ <xs:enumeration value="whenActive"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="smpteMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="dropNTSC"/>
+ <xs:enumeration value="dropPAL"/>
+ <xs:enumeration value="nonDrop"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="subFrameRate">
+ <xs:restriction base="xs:positiveInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="textAlign">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="start"/>
+ <xs:enumeration value="end"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="textDecoration">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="underline"/>
+ <xs:enumeration value="noUnderline"/>
+ <xs:enumeration value="overline"/>
+ <xs:enumeration value="noOverline"/>
+ <xs:enumeration value="lineThrough"/>
+ <xs:enumeration value="noLineThrough"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="textOutline">
+ <xs:annotation>
+ <xs:documentation>none | inherit | length | length length | color length | color length length</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="tickRate">
+ <xs:restriction base="xs:positiveInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="timeBase">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="media"/>
+ <xs:enumeration value="smpte"/>
+ <xs:enumeration value="clock"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeContainer">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="par"/>
+ <xs:enumeration value="seq"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="timeCoordinate">
+ <xs:annotation>
+ <xs:documentation>timeExpression</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="timeDuration">
+ <xs:annotation>
+ <xs:documentation>timeExpression</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="unicodeBidi">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="embed"/>
+ <xs:enumeration value="bidiOverride"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="visibility">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="hidden"/>
+ <xs:enumeration value="visible"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="wrapOption">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="wrap"/>
+ <xs:enumeration value="noWrap"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="writingMode">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="lrtb"/>
+ <xs:enumeration value="rltb"/>
+ <xs:enumeration value="tbrl"/>
+ <xs:enumeration value="tblr"/>
+ <xs:enumeration value="lr"/>
+ <xs:enumeration value="rl"/>
+ <xs:enumeration value="tb"/>
+ <xs:enumeration value="inherit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="zIndex">
+ <xs:annotation>
+ <xs:documentation>auto | inherit | integer</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-document.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#parameter"
+ schemaLocation="ttaf1-dfxp-parameter-attribs.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-head.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-content.xsd"/>
+ <xs:attributeGroup name="tt.attlist">
+ <xs:attributeGroup ref="tt:Core.required.attrib.class"/>
+ <xs:attributeGroup ref="ttp:Parameter.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="tt.eltype">
+ <xs:sequence>
+ <xs:element ref="tt:head" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="tt:body" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:tt.attlist"/>
+ </xs:complexType>
+ <xs:element name="tt" type="tt:tt.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-document.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,29 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#parameter"
+ schemaLocation="ttaf1-dfxp-parameter-attribs.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-head.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-content.xsd"/>
+ <xs:attributeGroup name="tt.attlist">
+ <xs:attributeGroup ref="tt:Core.required.attrib.class"/>
+ <xs:attributeGroup ref="ttp:Parameter.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="tt.eltype">
+ <xs:sequence>
+ <xs:element ref="tt:head" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="tt:body" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:tt.attlist"/>
+ </xs:complexType>
+ <xs:element name="tt" type="tt:tt.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-head.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,22 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
+ <xs:attributeGroup name="head.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="head.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:styling" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="tt:layout" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:head.attlist"/>
+ </xs:complexType>
+ <xs:element name="head" type="tt:head.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-head.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,22 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-layout.xsd"/>
+ <xs:attributeGroup name="head.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="head.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:styling" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="tt:layout" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:head.attlist"/>
+ </xs:complexType>
+ <xs:element name="head" type="tt:head.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-layout.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,41 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="RegionBinding.attrib.class">
+ <xs:attribute name="region" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="layout.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="region.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="layout.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:region" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:layout.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="region.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:region.attlist"/>
+ </xs:complexType>
+ <xs:element name="layout" type="tt:layout.eltype"/>
+ <xs:element name="region" type="tt:region.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-layout.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,41 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-timing-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-animation.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-styling.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="RegionBinding.attrib.class">
+ <xs:attribute name="region" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="layout.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="region.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="layout.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:region" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:layout.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="region.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="tt:Animation.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:region.attlist"/>
+ </xs:complexType>
+ <xs:element name="layout" type="tt:layout.eltype"/>
+ <xs:element name="region" type="tt:region.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-metadata-attribs.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,13 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="agent" type="ttd:agent"/>
+ <xs:attribute name="role" type="ttd:role"/>
+ <xs:attributeGroup name="Metadata.attrib.class">
+ <xs:attribute ref="ttm:agent"/>
+ <xs:attribute ref="ttm:role"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-metadata-attribs.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,13 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="agent" type="ttd:agent"/>
+ <xs:attribute name="role" type="ttd:role"/>
+ <xs:attributeGroup name="Metadata.attrib.class">
+ <xs:attribute ref="ttm:agent"/>
+ <xs:attribute ref="ttm:role"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-metadata-items.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,68 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1"
+ schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
+ <xs:attributeGroup name="actor.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="agent" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="agent.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="type" type="ttd:metadataAgentType"
+ use="required"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="copyright.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="desc.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="name.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="type" type="ttd:metadataNameType"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="title.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="actor.eltype">
+ <xs:attributeGroup ref="ttm:actor.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="agent.eltype">
+ <xs:sequence>
+ <xs:element ref="ttm:name" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="ttm:actor" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ttm:agent.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="copyright.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:copyright.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="desc.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:desc.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="name.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:name.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="title.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:title.attlist"/>
+ </xs:complexType>
+ <xs:element name="actor" type="ttm:actor.eltype"/>
+ <xs:element name="agent" type="ttm:agent.eltype"/>
+ <xs:element name="copyright" type="ttm:copyright.eltype"/>
+ <xs:element name="desc" type="ttm:desc.eltype"/>
+ <xs:element name="name" type="ttm:name.eltype"/>
+ <xs:element name="title" type="ttm:title.eltype"/>
+ <xs:group name="MetadataItems.class">
+ <xs:choice>
+ <xs:element ref="ttm:title"/>
+ <xs:element ref="ttm:desc"/>
+ <xs:element ref="ttm:copyright"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-metadata-items.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,68 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1"
+ schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata-attribs.xsd"/>
+ <xs:attributeGroup name="actor.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="agent" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="agent.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="type" type="ttd:metadataAgentType"
+ use="required"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="copyright.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="desc.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="name.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attribute name="type" type="ttd:metadataNameType"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="title.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="actor.eltype">
+ <xs:attributeGroup ref="ttm:actor.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="agent.eltype">
+ <xs:sequence>
+ <xs:element ref="ttm:name" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="ttm:actor" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ttm:agent.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="copyright.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:copyright.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="desc.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:desc.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="name.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:name.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="title.eltype" mixed="true">
+ <xs:attributeGroup ref="ttm:title.attlist"/>
+ </xs:complexType>
+ <xs:element name="actor" type="ttm:actor.eltype"/>
+ <xs:element name="agent" type="ttm:agent.eltype"/>
+ <xs:element name="copyright" type="ttm:copyright.eltype"/>
+ <xs:element name="desc" type="ttm:desc.eltype"/>
+ <xs:element name="name" type="ttm:name.eltype"/>
+ <xs:element name="title" type="ttm:title.eltype"/>
+ <xs:group name="MetadataItems.class">
+ <xs:choice>
+ <xs:element ref="ttm:title"/>
+ <xs:element ref="ttm:desc"/>
+ <xs:element ref="ttm:copyright"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-metadata.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
+ <xs:attributeGroup name="metadata.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="metadata.eltype" mixed="true">
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:metadata.attlist"/>
+ </xs:complexType>
+ <xs:element name="metadata" type="tt:metadata.eltype"/>
+ <xs:group name="MetadataNoAgent.class">
+ <xs:choice>
+ <xs:group ref="ttm:MetadataItems.class"/>
+ <xs:element ref="tt:metadata"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Metadata.class">
+ <xs:choice>
+ <xs:group ref="tt:MetadataNoAgent.class"/>
+ <xs:element ref="ttm:agent"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-metadata.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#metadata"
+ schemaLocation="ttaf1-dfxp-metadata-items.xsd"/>
+ <xs:attributeGroup name="metadata.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="metadata.eltype" mixed="true">
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:metadata.attlist"/>
+ </xs:complexType>
+ <xs:element name="metadata" type="tt:metadata.eltype"/>
+ <xs:group name="MetadataNoAgent.class">
+ <xs:choice>
+ <xs:group ref="ttm:MetadataItems.class"/>
+ <xs:element ref="tt:metadata"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="Metadata.class">
+ <xs:choice>
+ <xs:group ref="tt:MetadataNoAgent.class"/>
+ <xs:element ref="ttm:agent"/>
+ </xs:choice>
+ </xs:group>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-parameter-attribs.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#parameter"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="cellResolution" type="ttd:cellResolution"/>
+ <xs:attribute name="clockMode" type="ttd:clockMode"/>
+ <xs:attribute name="frameRate" type="ttd:frameRate"/>
+ <xs:attribute name="frameRateMultiplier" type="ttd:frameRateMultiplier"/>
+ <xs:attribute name="markerMode" type="ttd:markerMode"/>
+ <xs:attribute name="profile" type="ttd:profile"/>
+ <xs:attribute name="pixelAspectRatio" type="ttd:pixelAspectRatio"/>
+ <xs:attribute name="smpteMode" type="ttd:smpteMode"/>
+ <xs:attribute name="subFrameRate" type="ttd:subFrameRate"/>
+ <xs:attribute name="tickRate" type="ttd:tickRate"/>
+ <xs:attribute name="timeBase" type="ttd:timeBase"/>
+ <xs:attributeGroup name="Parameter.attrib.class">
+ <xs:attribute ref="ttp:cellResolution"/>
+ <xs:attribute ref="ttp:clockMode"/>
+ <xs:attribute ref="ttp:frameRate"/>
+ <xs:attribute ref="ttp:frameRateMultiplier"/>
+ <xs:attribute ref="ttp:markerMode"/>
+ <xs:attribute ref="ttp:profile"/>
+ <xs:attribute ref="ttp:pixelAspectRatio"/>
+ <xs:attribute ref="ttp:smpteMode"/>
+ <xs:attribute ref="ttp:subFrameRate"/>
+ <xs:attribute ref="ttp:tickRate"/>
+ <xs:attribute ref="ttp:timeBase"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-parameter-attribs.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,31 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#parameter"
+ xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:ttp="http://www.w3.org/2006/10/ttaf1#parameter">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="cellResolution" type="ttd:cellResolution"/>
+ <xs:attribute name="clockMode" type="ttd:clockMode"/>
+ <xs:attribute name="frameRate" type="ttd:frameRate"/>
+ <xs:attribute name="frameRateMultiplier" type="ttd:frameRateMultiplier"/>
+ <xs:attribute name="markerMode" type="ttd:markerMode"/>
+ <xs:attribute name="profile" type="ttd:profile"/>
+ <xs:attribute name="pixelAspectRatio" type="ttd:pixelAspectRatio"/>
+ <xs:attribute name="smpteMode" type="ttd:smpteMode"/>
+ <xs:attribute name="subFrameRate" type="ttd:subFrameRate"/>
+ <xs:attribute name="tickRate" type="ttd:tickRate"/>
+ <xs:attribute name="timeBase" type="ttd:timeBase"/>
+ <xs:attributeGroup name="Parameter.attrib.class">
+ <xs:attribute ref="ttp:cellResolution"/>
+ <xs:attribute ref="ttp:clockMode"/>
+ <xs:attribute ref="ttp:frameRate"/>
+ <xs:attribute ref="ttp:frameRateMultiplier"/>
+ <xs:attribute ref="ttp:markerMode"/>
+ <xs:attribute ref="ttp:profile"/>
+ <xs:attribute ref="ttp:pixelAspectRatio"/>
+ <xs:attribute ref="ttp:smpteMode"/>
+ <xs:attribute ref="ttp:subFrameRate"/>
+ <xs:attribute ref="ttp:tickRate"/>
+ <xs:attribute ref="ttp:timeBase"/>
+ </xs:attributeGroup>
+</xs:schema>
Binary file old/dfxp/xsd/ttaf1-dfxp-schema-20060730.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-styling-attribs.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,59 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#style" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="backgroundColor" type="ttd:color"/>
+ <xs:attribute name="color" type="ttd:color"/>
+ <xs:attribute name="direction" type="ttd:direction"/>
+ <xs:attribute name="display" type="ttd:display"/>
+ <xs:attribute name="displayAlign" type="ttd:displayAlign"/>
+ <xs:attribute name="dynamicFlow" type="ttd:dynamicFlow"/>
+ <xs:attribute name="extent" type="ttd:extent"/>
+ <xs:attribute name="fontFamily" type="ttd:fontFamily"/>
+ <xs:attribute name="fontSize" type="ttd:fontSize"/>
+ <xs:attribute name="fontStyle" type="ttd:fontStyle"/>
+ <xs:attribute name="fontWeight" type="ttd:fontWeight"/>
+ <xs:attribute name="lineHeight" type="ttd:lineHeight"/>
+ <xs:attribute name="opacity" type="ttd:opacity"/>
+ <xs:attribute name="origin" type="ttd:origin"/>
+ <xs:attribute name="overflow" type="ttd:overflow"/>
+ <xs:attribute name="padding" type="ttd:padding"/>
+ <xs:attribute name="showBackground" type="ttd:showBackground"/>
+ <xs:attribute name="textAlign" type="ttd:textAlign"/>
+ <xs:attribute name="textDecoration" type="ttd:textDecoration"/>
+ <xs:attribute name="textOutline" type="ttd:textOutline"/>
+ <xs:attribute name="unicodeBidi" type="ttd:unicodeBidi"/>
+ <xs:attribute name="visibility" type="ttd:visibility"/>
+ <xs:attribute name="wrapOption" type="ttd:wrapOption"/>
+ <xs:attribute name="writingMode" type="ttd:writingMode"/>
+ <xs:attribute name="zIndex" type="ttd:zIndex"/>
+ <xs:attributeGroup name="Styling.attrib.class">
+ <xs:attribute ref="tts:backgroundColor"/>
+ <xs:attribute ref="tts:color"/>
+ <xs:attribute ref="tts:direction"/>
+ <xs:attribute ref="tts:display"/>
+ <xs:attribute ref="tts:displayAlign"/>
+ <xs:attribute ref="tts:dynamicFlow"/>
+ <xs:attribute ref="tts:extent"/>
+ <xs:attribute ref="tts:fontFamily"/>
+ <xs:attribute ref="tts:fontSize"/>
+ <xs:attribute ref="tts:fontStyle"/>
+ <xs:attribute ref="tts:fontWeight"/>
+ <xs:attribute ref="tts:lineHeight"/>
+ <xs:attribute ref="tts:opacity"/>
+ <xs:attribute ref="tts:origin"/>
+ <xs:attribute ref="tts:overflow"/>
+ <xs:attribute ref="tts:padding"/>
+ <xs:attribute ref="tts:showBackground"/>
+ <xs:attribute ref="tts:textAlign"/>
+ <xs:attribute ref="tts:textDecoration"/>
+ <xs:attribute ref="tts:textOutline"/>
+ <xs:attribute ref="tts:unicodeBidi"/>
+ <xs:attribute ref="tts:visibility"/>
+ <xs:attribute ref="tts:wrapOption"/>
+ <xs:attribute ref="tts:writingMode"/>
+ <xs:attribute ref="tts:zIndex"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-styling-attribs.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,59 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1#style" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attribute name="backgroundColor" type="ttd:color"/>
+ <xs:attribute name="color" type="ttd:color"/>
+ <xs:attribute name="direction" type="ttd:direction"/>
+ <xs:attribute name="display" type="ttd:display"/>
+ <xs:attribute name="displayAlign" type="ttd:displayAlign"/>
+ <xs:attribute name="dynamicFlow" type="ttd:dynamicFlow"/>
+ <xs:attribute name="extent" type="ttd:extent"/>
+ <xs:attribute name="fontFamily" type="ttd:fontFamily"/>
+ <xs:attribute name="fontSize" type="ttd:fontSize"/>
+ <xs:attribute name="fontStyle" type="ttd:fontStyle"/>
+ <xs:attribute name="fontWeight" type="ttd:fontWeight"/>
+ <xs:attribute name="lineHeight" type="ttd:lineHeight"/>
+ <xs:attribute name="opacity" type="ttd:opacity"/>
+ <xs:attribute name="origin" type="ttd:origin"/>
+ <xs:attribute name="overflow" type="ttd:overflow"/>
+ <xs:attribute name="padding" type="ttd:padding"/>
+ <xs:attribute name="showBackground" type="ttd:showBackground"/>
+ <xs:attribute name="textAlign" type="ttd:textAlign"/>
+ <xs:attribute name="textDecoration" type="ttd:textDecoration"/>
+ <xs:attribute name="textOutline" type="ttd:textOutline"/>
+ <xs:attribute name="unicodeBidi" type="ttd:unicodeBidi"/>
+ <xs:attribute name="visibility" type="ttd:visibility"/>
+ <xs:attribute name="wrapOption" type="ttd:wrapOption"/>
+ <xs:attribute name="writingMode" type="ttd:writingMode"/>
+ <xs:attribute name="zIndex" type="ttd:zIndex"/>
+ <xs:attributeGroup name="Styling.attrib.class">
+ <xs:attribute ref="tts:backgroundColor"/>
+ <xs:attribute ref="tts:color"/>
+ <xs:attribute ref="tts:direction"/>
+ <xs:attribute ref="tts:display"/>
+ <xs:attribute ref="tts:displayAlign"/>
+ <xs:attribute ref="tts:dynamicFlow"/>
+ <xs:attribute ref="tts:extent"/>
+ <xs:attribute ref="tts:fontFamily"/>
+ <xs:attribute ref="tts:fontSize"/>
+ <xs:attribute ref="tts:fontStyle"/>
+ <xs:attribute ref="tts:fontWeight"/>
+ <xs:attribute ref="tts:lineHeight"/>
+ <xs:attribute ref="tts:opacity"/>
+ <xs:attribute ref="tts:origin"/>
+ <xs:attribute ref="tts:overflow"/>
+ <xs:attribute ref="tts:padding"/>
+ <xs:attribute ref="tts:showBackground"/>
+ <xs:attribute ref="tts:textAlign"/>
+ <xs:attribute ref="tts:textDecoration"/>
+ <xs:attribute ref="tts:textOutline"/>
+ <xs:attribute ref="tts:unicodeBidi"/>
+ <xs:attribute ref="tts:visibility"/>
+ <xs:attribute ref="tts:wrapOption"/>
+ <xs:attribute ref="tts:writingMode"/>
+ <xs:attribute ref="tts:zIndex"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-styling.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,39 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="StyleBinding.attrib.class">
+ <xs:attribute name="style" type="xs:IDREFS"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Styled.attrib.class">
+ <xs:attributeGroup ref="tt:StyleBinding.attrib.class"/>
+ <xs:attributeGroup ref="tts:Styling.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="styling.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="style.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="styling.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:styling.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="style.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:style.attlist"/>
+ </xs:complexType>
+ <xs:element name="styling" type="tt:styling.eltype"/>
+ <xs:element name="style" type="tt:style.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-styling.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,39 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1"
+ xmlns:ttm="http://www.w3.org/2006/10/ttaf1#metadata"
+ xmlns:tts="http://www.w3.org/2006/10/ttaf1#style">
+ <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/>
+ <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/>
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#style"
+ schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/>
+ <xs:attributeGroup name="StyleBinding.attrib.class">
+ <xs:attribute name="style" type="xs:IDREFS"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Styled.attrib.class">
+ <xs:attributeGroup ref="tt:StyleBinding.attrib.class"/>
+ <xs:attributeGroup ref="tts:Styling.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="styling.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="style.attlist">
+ <xs:attributeGroup ref="tt:Core.attrib.class"/>
+ <xs:attributeGroup ref="tt:Styled.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:complexType name="styling.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="tt:style" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:styling.attlist"/>
+ </xs:complexType>
+ <xs:complexType name="style.eltype">
+ <xs:sequence>
+ <xs:group ref="tt:Metadata.class" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tt:style.attlist"/>
+ </xs:complexType>
+ <xs:element name="styling" type="tt:styling.eltype"/>
+ <xs:element name="style" type="tt:style.eltype"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-timing-attribs.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,22 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attributeGroup name="TimingInterval.attrib.class">
+ <xs:attribute name="begin" type="ttd:timeCoordinate"/>
+ <xs:attribute name="dur" type="ttd:timeDuration"/>
+ <xs:attribute name="end" type="ttd:timeCoordinate"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="TimingContainer.attrib.class">
+ <xs:attribute name="timeContainer" type="ttd:timeContainer"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Timed.attrib.class">
+ <xs:attributeGroup ref="tt:TimingInterval.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="TimedContainer.attrib.class">
+ <xs:attributeGroup ref="tt:Timed.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimingContainer.attrib.class"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp-timing-attribs.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,22 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ttd="http://www.w3.org/2006/10/ttaf1#datatype"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1">
+ <xs:import namespace="http://www.w3.org/2006/10/ttaf1#datatype"
+ schemaLocation="ttaf1-dfxp-datatypes.xsd"/>
+ <xs:attributeGroup name="TimingInterval.attrib.class">
+ <xs:attribute name="begin" type="ttd:timeCoordinate"/>
+ <xs:attribute name="dur" type="ttd:timeDuration"/>
+ <xs:attribute name="end" type="ttd:timeCoordinate"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="TimingContainer.attrib.class">
+ <xs:attribute name="timeContainer" type="ttd:timeContainer"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="Timed.attrib.class">
+ <xs:attributeGroup ref="tt:TimingInterval.attrib.class"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="TimedContainer.attrib.class">
+ <xs:attributeGroup ref="tt:Timed.attrib.class"/>
+ <xs:attributeGroup ref="tt:TimingContainer.attrib.class"/>
+ </xs:attributeGroup>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,5 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1">
+ <xs:include schemaLocation="ttaf1-dfxp-document.xsd"/>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/ttaf1-dfxp.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,5 @@
+<xs:schema targetNamespace="http://www.w3.org/2006/10/ttaf1" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tt="http://www.w3.org/2006/10/ttaf1">
+ <xs:include schemaLocation="ttaf1-dfxp-document.xsd"/>
+</xs:schema>
Binary file old/dfxp/xsd/ttaf1-dxfp-schema-20060627.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/xml.xsd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,13 @@
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="lang" type="xs:language"/>
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/dfxp/xsd/xml.xsd.esc Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,13 @@
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="lang" type="xs:language"/>
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+</xs:schema>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/Overview.html Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,1964 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator"
+ content="HTML Tidy for Linux/x86 (vers 1st November 2002), see www.w3.org" />
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <title>Timed Text (TT) Authoring Format 1.0 Use Cases and Requirements</title>
+ <style xml:space="preserve" type="text/css">
+ /*<![CDATA[*/
+code { font-family: monospace; }
+div.constraint,
+div.issue,
+div.note,
+div.notice { margin-left: 2em; }
+li p { margin-top: 0.3em;
+ margin-bottom: 0.3em; }
+div.exampleInner pre { margin-left: 1em;
+ margin-top: 0em; margin-bottom: 0em}
+div.exampleOuter {border: 4px double gray;
+ margin: 0em; padding: 0em}
+div.exampleInner { background-color: #d5dee3;
+ border-top-width: 4px;
+ border-top-style: double;
+ border-top-color: #d3d3d3;
+ border-bottom-width: 4px;
+ border-bottom-style: double;
+ border-bottom-color: #d3d3d3;
+ padding: 4px; margin: 0em }
+div.exampleWrapper { margin: 4px }
+div.exampleHeader { font-weight: bold;
+ margin: 4px}
+div.issue { border: 2px solid black; background-color: #ffff66; padding: 0em 1em; margin: 0em 0em }
+table.ednote { border-collapse: collapse; border: 2px solid black; width: 80% }
+table.ednote td { background-color: #ff9966; border: 2px solid black }
+table.acronyms td.label { width: 15% }
+table.acronyms td.def { width: 65% }
+table.graphic { border: 0px none black; width: 100%; border-collapse: collapse }
+table.graphic caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.graphic td { border: 0px none black; text-align: center }
+.tbd { background-color: #ffff33; border: 2px solid black; width: 85% }
+.strong { font-weight: bold }
+.diff-add { color: red; }
+.diff-del { color: red; text-decoration: line-through; }
+.diff-chg { background-color: #99FF99; }
+.diff-off {}
+ /*]]>*/
+ </style>
+ <link rel="stylesheet" type="text/css"
+ href="http://www.w3.org/StyleSheets/TR/W3C-WG-NOTE.css" />
+ </head>
+ <body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
+ alt="W3C" height="48" width="72" /></a></p>
+ <h1><a name="title" id="title"></a>Timed Text (TT) Authoring Format 1.0 Use Cases
+ and Requirements</h1>
+ <h2><a name="w3c-doctype" id="w3c-doctype"></a>W3C Working Group Note 27 April
+ 2006</h2>
+ <dl>
+ <dt>This version:</dt>
+ <dd><a
+ href="http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/">http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/</a></dd>
+ <dt>Latest version:</dt>
+ <dd><a
+ href="http://www.w3.org/TR/ttaf1-req/">http://www.w3.org/TR/ttaf1-req/</a></dd>
+ <dt>Previous version:</dt>
+ <dd><a
+ href="http://www.w3.org/TR/2003/WD-ttaf1-req-20030515/">http://www.w3.org/TR/2003/WD-ttaf1-req-20030515/</a></dd>
+ <dt>Editor:</dt>
+ <dd>Glenn Adams, Extensible Formatting Systems, Inc. <a
+ href="mailto:glenn@xfsi.com"><glenn@xfsi.com></a></dd>
+ </dl>
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2006 <a
+ href="http://www.w3.org/"><acronym
+ title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
+ href="http://www.lcs.mit.edu/"><acronym
+ title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
+ href="http://www.ercim.org/"><acronym
+ title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
+ <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
+ and <a href="http://www.w3.org/Consortium/Legal/copyright-software">software
+ licensing</a> rules apply.</p>
+ </div>
+ <hr />
+ <div>
+ <h2><a name="abstract" id="abstract"></a>Abstract</h2>
+ <p>This document specifies usage scenarios and requirements for a timed text
+ authoring format. A timed text authoring format is a content type that represents
+ timed text media for the purpose of interchange among authoring systems. Timed text
+ is textual information that is intrinsically or extrinsically associated with
+ timing information.</p>
+ </div>
+ <div>
+ <h2><a name="status" id="status"></a>Status of this Document</h2>
+ <p><em>This section describes the status of this document at the time of its
+ publication. Other documents may supersede this document. A list of current W3C
+ publications and the latest revision of this technical report can be found in the
+ <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
+ http://www.w3.org/TR/.</em></p>
+ <p>This Working Group Note is the third publication of the Timed Text (TT)
+ Authoring Format 1.0 Use Cases and Requirements, and represents an editorial
+ revision from the previous version in order to transition from Working Draft to
+ Working Group Note. This document has been produced by the <a
+ href="http://www.w3.org/AudioVideo/TT/">Timed Text Working Group</a> as part of the
+ W3C <a href="http://www.w3.org/AudioVideo/Activity">Synchronized Multimedia
+ Activity</a>. The authors of this document are the TT Working Group members, who
+ consider this document to be stable, and do not expect further revision.</p>
+ <p>Comments on this document should be sent to the email list <a
+ href="mailto:public-tt@w3.org">public-tt@w3.org</a>, which is the public mailing
+ list of Timed Text Working Group (<a
+ href="http://lists.w3.org/Archives/Public/public-tt/">list archives</a>). To
+ subscribe, send an email to <a
+ href="mailto:public-tt-request@w3.org">public-tt-request@w3.org</a> with the word
+ <code>subscribe</code> in the subject line.</p>
+ <p>Publication as a Working Group Note does not imply endorsement by the W3C
+ Membership. This is a draft document and may be updated, replaced or obsoleted by
+ other documents at any time. It is inappropriate to cite this document as other
+ than work in progress.</p>
+ <p>As of this publication, the Working Group does not expect this document to
+ become a W3C Recommendation, and therefore it has no associated <a
+ href="http://www.w3.org/Consortium/Patent-Policy-20040205/">W3C Patent Policy</a>
+ licensing obligations. If this expectation changes, the Working Group will have an
+ opportunity to fulfill the associated patent policy requirements with respect to a
+ future draft.</p>
+ </div>
+ <div class="toc">
+ <h2><a name="contents" id="contents"></a>Table of Contents</h2>
+ <p class="toc">1 <a href="#intro">Introduction</a><br />
+ 1.1 <a href="#motivation">Motivation</a><br />
+ 1.2 <a href="#model">System Model</a><br />
+ 2 <a href="#definitions">Definitions</a><br />
+ 2.1 <a href="#acronyms">Acronyms</a><br />
+ 2.2 <a href="#terms">Terminology</a><br />
+ 2.3 <a href="#notations">Notations</a><br />
+ 3 <a href="#scenarios">Use Case Scenarios</a><br />
+ 4 <a href="#requirements">Requirements</a><br />
+ 4.1 <a href="#general">General</a><br />
+ 4.2 <a href="#content">Content</a><br />
+ 4.3 <a href="#styling">Styling</a><br />
+ 4.4 <a href="#timing">Timing</a><br />
+ 4.5 <a href="#animation">Animation</a><br />
+ 4.6 <a href="#metadata">Metadata</a><br />
+ </p>
+ <h3><a name="appendices" id="appendices"></a>Appendices</h3>
+ <p class="toc">A <a href="#references">References</a><br />
+ B <a href="#other-references">Other References</a> (Non-Normative)<br />
+ C <a href="#acknowledgements">Acknowledgments</a> (Non-Normative)<br />
+ </p>
+ </div>
+ <hr />
+ <div class="body">
+ <div class="div1">
+ <h2><a name="intro" id="intro"></a>1 Introduction</h2>
+ <p>This document specifies usage scenarios and requirements for a timed text
+ authoring format. A timed text authoring format is a content type that represents
+ timed text media for the purpose of interchange among authoring systems. Timed
+ text is textual information that is intrinsically or extrinsically associated
+ with timing information.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This document incorporates requirements regarding stylistic and timing
+ functionality that range from simple to relatively complex. It is expected that
+ the use of this functionality will be partitioned into one or more profiles
+ represented by document types of increasing complexity. It is not expected that
+ every authoring system or ultimate consumer of timed text content will support
+ all of this functionality.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="motivation" id="motivation"></a>1.1 Motivation</h3>
+ <p>A principal motivation for the development of a common authoring format for
+ timed text is the lack of a standard content format that supports the
+ representation and interchange of textual information which is synchronized
+ with other media elements or which serves as a synchronization master
+ itself.</p>
+ <p>Popular proprietary multimedia systems and their corresponding player
+ components have defined distinct timed text formats for each proprietary use.
+ As a consequence there is no common authoring format that serves as a portable
+ interchange format between such systems. A goal of the present work is to
+ define such a portable interchange format to ease the burden of authoring tool
+ developers and users as well as enhance portability of timed text content.</p>
+ <p>A side effect of the development and deployment of a common timed text
+ authoring format is that it simplifies the creation and distribution of
+ synchronized text for use with a multitude of devices, such as multimedia
+ players, caption, subtitle, and teletext encoders and decoders, character
+ generators, LED displays, and other text display devices.</p>
+ </div>
+ <div class="div2">
+ <h3><a name="model" id="model"></a>1.2 System Model</h3>
+ <p>The uses cases and requirements specified in this document are based upon a
+ system model, depicted in <a href="#model-graphic"><b>Figure 1 – System
+ Model</b></a>, wherein the timed text authoring format serves as a
+ bidirectional interchange format among a heterogeneous collection of authoring
+ systems, and as a unidirectional interchange format to a heterogeneous
+ collection of distribution formats after undergoing transcoding to the target
+ distribution formats as required.</p>
+ <table id="model-graphic" class="graphic">
+ <caption>
+ Figure 1 – System Model
+ </caption>
+ <tbody>
+ <tr>
+ <td rowspan="1" colspan="1"><img src="./images/model.png"
+ alt="System Model" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the figure depicted above, the acronym <em>DFXP</em> refers to a
+ profile of the timed text authoring format known as the Distribution Format
+ Exchange Profile, which is intended primarily to satisfy interchange among
+ existing legacy formats, and which may also be distributed directly.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This system model does not preclude the timed text authoring format from
+ being used as a distribution format in its own right.</p>
+ </div>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="definitions" id="definitions"></a>2 Definitions</h2>
+ <div class="div2">
+ <h3><a name="acronyms" id="acronyms"></a>2.1 Acronyms</h3>
+ <table class="acronyms">
+ <tr>
+ <td class="label"><b>TT</b></td>
+ <td class="def">
+ <p>Timed Text</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT AS</b></td>
+ <td class="def">
+ <p>Timed Text Authoring System</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT AF</b></td>
+ <td class="def">
+ <p>Timed Text Authoring Format</p>
+ </td>
+ </tr>
+ <tr>
+ <td class="label"><b>TT WG</b></td>
+ <td class="def">
+ <p>Timed Text Working Group</p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="div2">
+ <h3><a name="terms" id="terms"></a>2.2 Terminology</h3>
+ <dl>
+ <dt class="label">Timed Text</dt>
+ <dd>
+ <p>Textual information that is intrinsically or extrinsically associated
+ with timing information.</p>
+ </dd>
+ <dt class="label">Timed Text Authoring Format</dt>
+ <dd>
+ <p>A content type that represents timed text media for the purpose of
+ interchange among authoring systems.</p>
+ </dd>
+ <dt class="label">Timed Text Authoring System</dt>
+ <dd>
+ <p>A content authoring system capable of importing and exporting timed text
+ authoring format content.</p>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="notations" id="notations"></a>2.3 Notations</h3>
+ <p>The following notations are employed in this document:</p>
+ <ul>
+ <li>
+ <p><span class="strong">SXXX</span>– use case scenario <em>XXX</em></p>
+ </li>
+ <li>
+ <p><span class="strong">RXXX</span>– requirement <em>XXX</em></p>
+ </li>
+ <li>
+ <p><span class="strong">RX9X</span>– solution space requirement
+ <em>X9X</em></p>
+ </li>
+ <li>
+ <p><span class="strong">NXXX</span>– non-requirement <em>XXX</em></p>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="div1">
+ <h2><a name="scenarios" id="scenarios"></a>3 Use Case Scenarios</h2>
+ <dl>
+ <dt><a name="S000" id="S000"></a>S000 – Captioning Audio</dt>
+ <dd>
+ <div class="use">
+ <p>A caption service provider needs a common content authoring format by
+ means of which a textual expression of audio information may be associated
+ with such audio information in a time synchronized manner.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the context of captioning an aggregate audio/video service, both
+ audio and caption information are typically synchronized to the video
+ track as the timebase master.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="S001" id="S001"></a>S001 – Subtitling Audio</dt>
+ <dd>
+ <div class="use">
+ <p>A subtitle service provider needs a common content authoring format by
+ means of which a textual expression of the original or a translation of the
+ original natural language (speech) audio information may be associated with
+ such audio information in a time synchronized manner.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the context of subtitling an aggregate audio/video service, both
+ audio and subtitle information are typically synchronized to the video
+ track as the timebase master.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The distinction between <em>captioning</em> and <em>subtitling</em> is
+ best expressed as follows: captioning is expressly intended to serve the
+ needs of deaf and hard of hearing users, and typically contains
+ transcriptions of speech and non-speech audio information; in contrast,
+ subtitling is generally intended to serve the needs of hearing users who
+ don't have access to an audio track (e.g., in muting situations) or don't
+ understand the natural language of the speech contained in the audio
+ track. Subtitling is often viewed as a paraphrase or a translation of
+ speech information, as opposed to a transcription of all audio
+ information.</p>
+ <p>In the absence of captioning information, subtitling information may
+ also be used by deaf and hard of hearing users, provided that it is
+ available in the original natural language.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Some user communities use the term <em>subtitling</em> to encompass
+ both captioning and subtitling uses as distinguished in the previous
+ note.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="S002" id="S002"></a>S002 – Description</dt>
+ <dd>
+ <div class="use">
+ <p>A description service provider needs a common content authoring format
+ in which a textual description of video information or a textual expression
+ of an audio description of video information may be associated with such
+ video information in a time synchronized manner.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>When a description is rendered by an audio track, such a description
+ is commonly referred to as an <em>Audio Description</em>.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the use of aural forms of visual description, it may be the case
+ that the duration of an aural form of a description exceeds the duration
+ of the visual information being described. In a presentation device, this
+ necessitates manual or automatic pausing of the video track in order to
+ fully render the aural form of description. It is likely that similar
+ modes of presentation will be required for timed text representations of
+ video descriptions.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This use case scenario is not intended to serve as a general form of
+ <em>metadata</em> description of related video or audio content.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="S003" id="S003"></a>S003 – Generic Timed Text</dt>
+ <dd>
+ <div class="use">
+ <p>A generic timed text service provider needs a common content authoring
+ format in which textual information can be presented in a time synchronized
+ manner.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In the context of using a generic timed text service, timed text
+ information serves as the timebase master, with which other possible
+ timed media may be associated.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Examples of the use of generic timed text include (but are not limited
+ to): marquee signs, timed text oriented presentations, scrolling text
+ presentation, etc.</p>
+ </div>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ <div class="div1">
+ <h2><a name="requirements" id="requirements"></a>4 Requirements</h2>
+ <div class="div2">
+ <h3><a name="general" id="general"></a>4.1 General</h3>
+ <dl>
+ <dt><a name="R100" id="R100"></a>R100 – Specification Format</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be authored using XML and XSL
+ Stylesheets based on <a href="#xmlspec">[XML Spec]</a> and shall adhere
+ to best current practices in the W3C for specification style and quality
+ assurance.</p>
+ </div>
+ </dd>
+ <dt><a name="R101" id="R101"></a>R101 – Specification Modularity</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in a modular manner that
+ logically separates significant areas of functionality to as great extent
+ as is practical.</p>
+ </div>
+ </dd>
+ <dt><a name="R102" id="R102"></a>R102 – Specification Organization</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be organized in such a manner as to
+ separate the following aspects:</p>
+ <ul>
+ <li>
+ <p>TT Framework</p>
+ </li>
+ <li>
+ <p>TT Core Vocabulary</p>
+ </li>
+ <li>
+ <p>TT Core Document Types</p>
+ </li>
+ <li>
+ <p>TT Extension Vocabulary(ies)</p>
+ </li>
+ <li>
+ <p>TT Extension Document Type(s)</p>
+ </li>
+ </ul>
+ <p/>
+ </div>
+ </dd>
+ <dt><a name="R103" id="R103"></a>R103 – Core and Periphery</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that core
+ functionality is logically separated from peripheral functionality.</p>
+ </div>
+ </dd>
+ <dt><a name="R104" id="R104"></a>R104 – Evolution of Core</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that core
+ functionality can evolve over time, e.g., by the specification of
+ multiple levels (or versions) of core functionality.</p>
+ </div>
+ </dd>
+ <dt><a name="R105" id="R105"></a>R105 – Ownership of Core</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that core
+ functionality be specified soley by the TT WG or, in the event that the
+ TT WG is terminated, its successors within the W3C.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is assumed that one or more appropriate namespace mechanisms will
+ be used to segregate core functionality defined or adopted in the TT AF
+ from peripheral functionality defined or adopted by clients of the TT
+ AF.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R106" id="R106"></a>R106 – Surjection of Core</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that for
+ every item in the TT AF core vocabulary, there shall be at least one TT
+ AF core document type that makes use of that item, i.e., there exists a
+ surjection from the set of TT AF core document types to the set of TT AF
+ vocabulary items referenced by those document types.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The TT AF specification(s) may define standardized peripheral
+ vocabulary that is not referenced by any TT AF core document type.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R107" id="R107"></a>R107 – Evolution of Periphery</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that
+ peripheral functionality can evolve over time, e.g., by the future
+ specification of one or more peripheral functionality modules.</p>
+ </div>
+ </dd>
+ <dt><a name="R108" id="R108"></a>R108 – Ownership of Periphery</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that
+ peripheral functionality need not be specified by the TT WG or the W3C,
+ but may be specified by other W3C WGs as well as non-W3C clients of the
+ TT AF.</p>
+ </div>
+ </dd>
+ <dt><a name="R109" id="R109"></a>R109 – Transformability</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of being transformed, without undue
+ complexity, into one or more legacy timed text content formats, e.g., <a
+ href="#threegpp">[3GPP]</a>, <a href="#qtext">[QText]</a>, <a
+ href="#realtext">[RealText]</a>, <a href="#sami">[SAMI]</a>, etc.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The above list of potential target timed text content formats is
+ strictly informative, and is not intended to be exhuastive.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R110" id="R110"></a>R110 – Streamable Tranformation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of being transformed into an idealized
+ streamable representation format.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that an idealized streamable representation
+ format be defined by the TT AF specification(s); however, the
+ definition of such a format may be the subject of future activities by
+ the TT WG.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is intended that existing closed captioning and subtitle
+ streaming formats used by analog and digital television services as
+ well as timed text used in the context of streaming audio and motion
+ video formats be potentially targeted by one or more transformations of
+ the TT AF. These formats include <a href="#eia608b">[EIA-608B]</a>, <a
+ href="#eia708b">[EIA-708B]</a>, <a href="#en300706">[EN 300 706]</a>,
+ <a href="#en300743">[EN 300 743]</a>, etc.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R111" id="R111"></a>R111 – Accessibility – Content</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall include the following accessibility related
+ features:</p>
+ <ul>
+ <li>
+ <p>Support for a mechanism to explicitly associate <em>Equivalent
+ Alternatives</em> to the textual information in the TT presentation
+ in accordance with <a href="#xmlaccess">[WAI XML AG]</a> Guideline
+ 1.</p>
+ </li>
+ <li>
+ <p>Support for <em>Content Rendering Adaption</em> in accordance with
+ <a href="#smilaccess">[WAI SMIL AG]</a>, Section 5. See also <a
+ href="#R207"><b>Conditional Content</b></a>.</p>
+ </li>
+ <li>
+ <p>Use of a default text vocabulary that satisfies guideline 2 of <a
+ href="#xmlaccess">[WAI XML AG]</a> regarding structural and
+ semantical stringency.</p>
+ </li>
+ <li>
+ <p>Ability to extend or replace the default text vocabulary with
+ other XML dialects to represent the textual information of the TT
+ presentation. See also <a href="#R205"><b>Intrinsic and Extrinsic
+ Text Content</b></a>.</p>
+ </li>
+ <li>
+ <p>Support for explicit definition of a <em>Navigational
+ Structure</em> associated with the TT presentation in accordance with
+ <a href="#smilaccess">[WAI SMIL AG]</a>, Section 4.3.</p>
+ </li>
+ </ul>
+ <p/>
+ </div>
+ </dd>
+ <dt><a name="R112" id="R112"></a>R112 – Accessibility – Authoring System</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner as to
+ require a TT AS to adhere to all applicable aspects of <a
+ href="#atag10">[ATAG 1.0]</a>.</p>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="content" id="content"></a>4.2 Content</h3>
+ <dl>
+ <dt><a name="R200" id="R200"></a>R200 – Authorability</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of being created and modified using a plain
+ text editor, e.g., emacs, vi, etc.</p>
+ </div>
+ </dd>
+ <dt><a name="R201" id="R201"></a>R201 – Multiple Natural Languages</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of representing content of different
+ natural languages, where the content of distinct languages may be
+ segregated into separate document instances or may be integrated into a
+ single document instance.</p>
+ </div>
+ </dd>
+ <dt><a name="R202" id="R202"></a>R202 – Natural Language Coverage</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of representing content of at least those
+ specific natural languages that may be represented with <a
+ href="#unicode32">[Unicode 3.2]</a>.</p>
+ </div>
+ </dd>
+ <dt><a name="R203" id="R203"></a>R203 – Natural Language Association
+ Granularity</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating natural language binding
+ information with plain text information at the granularity of a single
+ coded character.</p>
+ </div>
+ </dd>
+ <dt><a name="R204" id="R204"></a>R204 – Minimum Character
+ Representability</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of representing every coded character
+ available in <a href="#unicode32">[Unicode 3.2]</a> by using only those
+ characters in <a href="#ascii">[ASCII (ANSI X3.4)]</a>.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>This requirement facilitates the entry and editing of characters in
+ a TT AF document instance that would otherwise not be permitted due to
+ lack of an appropriate character input method or lack of support for a
+ non-ASCII character encoding system.</p>
+ <p>It is assumed that every TT AS will provide a means to enter and
+ edit TT AF document instances represented in the ASCII character
+ set.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R205" id="R205"></a>R205 – Intrinsic and Extrinsic Text
+ Content</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing text content intrinsically
+ within a TT AF document instance, extrinsically by referencing from a TT
+ AF document instance to text content in one or more external resources,
+ or in any combination of these two modes.</p>
+ </div>
+ </dd>
+ <dt><a name="R206" id="R206"></a>R206 – Markup Association</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating structural markup with
+ intrinsic and extrinsic text content, where such markup may denote either
+ or both semantic (functional) and presentational (formal) properties of
+ the content.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In this context, <em>presentational</em> properties designate both
+ stylistic and timing related presentation information.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R207" id="R207"></a>R207 – Conditional Content</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing conditional content, where
+ each alternative content choice is governed by one or more test
+ expressions such that exactly one or zero content choice is selected when
+ evaluating each choice in a predefined order.</p>
+ </div>
+ </dd>
+ <dt><a name="R208" id="R208"></a>R208 – Flowed Text</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing authorial intention to flow
+ (layout) text content in an idealized, but unspecified user agent.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In this context, the concept of <em>flow</em> refers to an implied
+ process by means of which textual information expressed in the
+ character domain is mapped to a positioned glyph codomain.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that an idealized user agent or behavior of such
+ a user agent be defined by the TT AF specification(s); however, the
+ definition of such a user agent or user agent behavior may be the
+ subject of future activities by the TT WG.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R209" id="R209"></a>R209 – Logical Flowed Text Vocabulary</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing the following vocabulary as
+ pertains to logical flowed text content:</p>
+ <ul>
+ <li>
+ <p>body</p>
+ </li>
+ <li>
+ <p>division</p>
+ </li>
+ <li>
+ <p>paragraph</p>
+ </li>
+ <li>
+ <p>phrase</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A generic <em>role</em> attribute is expected to be provided for use
+ with these items in order to express distinct stylistic and semantic
+ roles, e.g., a <em>paragraph</em> role may be associated with a
+ <em>division</em> item to indicate that the logical division expressed
+ corresponds to a stylistic and semantic paragraph.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>One possible mapping for this vocabulary is to
+ <code>xhtml:body</code>, <code>xhtml:div</code>, <code>xhtml:p</code>,
+ and <code>xhtml:span</code>, respectively, as defined by <a
+ href="#xhtml1">[XHTML 1.0]</a>.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R210" id="R210"></a>R210 – Presentational Flowed Text
+ Vocabulary</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing the following vocabulary as
+ pertains to presentational flowed text content:</p>
+ <ul>
+ <li>
+ <p>block</p>
+ </li>
+ <li>
+ <p>block container</p>
+ </li>
+ <li>
+ <p>character</p>
+ </li>
+ <li>
+ <p>flow</p>
+ </li>
+ <li>
+ <p>forced line break</p>
+ </li>
+ <li>
+ <p>inline</p>
+ </li>
+ <li>
+ <p>inline container</p>
+ </li>
+ <li>
+ <p>region</p>
+ </li>
+ <li>
+ <p>viewport</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The items enumerated above are drawn in part from similarly named
+ items defined by <a href="#xsl">[XSL 1.0]</a>, Section 6,
+ <em>Formatting Objects</em>.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The <em>forced line break</em> item may be expressed in terms of the
+ <em>character</em> item, where the specified character has line
+ separator or line break semantics.</p>
+ <p>The use of this item in combination with a <em>wrap option</em>
+ style parameter with the value <code>nowrap</code> permits an
+ intermediate mode of text representation with formatting semantics that
+ fall between flowed text and non-flowed text.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The <em>viewport</em> and <em>region</em> items are intended to be
+ analogous to the <a href="#xsl">[XSL 1.0]</a> vocabulary
+ <code>fo:simple-page-master</code> and <code>fo:region-*</code>,
+ respectively.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R211" id="R211"></a>R211 – Flowed Text Vocabulary
+ Relationship</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be defined in such a manner that a default
+ relationship between logical and presentational flowed text vocabulary
+ may be assumed as follows:</p>
+ <ul>
+ <li>
+ <p>body ⇔ flow</p>
+ </li>
+ <li>
+ <p>division (display: block) ⇔ block container</p>
+ </li>
+ <li>
+ <p>paragraph ⇔ block</p>
+ </li>
+ <li>
+ <p>division (display: inline) ⇔ inline container</p>
+ </li>
+ <li>
+ <p>phrase ⇔ inline</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Parsed character data (<code>#PCDATA</code>) that appears in logical
+ flowed text content should be assumed to map by default to parsed
+ character data or <em>character</em> in presentational flowed text
+ content.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R212" id="R212"></a>R212 – Flowed Text Vocabulary
+ Separation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be defined in such a manner that use of logical flowed
+ text vocabulary is separated from use of presentational flowed text
+ vocabulary.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that the TT AF specification(s) define a document
+ type that supports the simultaneous use of both logical and
+ presentational flowed text vocabulary.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R213" id="R213"></a>R213 – Non-Flowed Text</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing authorial intention to render
+ non-flowed text content in an idealized, but unspecified user agent.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In this context, the concept of <em>non-flowed text</em> refers to
+ textual information that is explicitly associated with positioned glyph
+ information at authoring time; i.e., all bidirectional processing and
+ character to glyph substitution processing and glyph position
+ assignment has already occurred.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that an idealized user agent or behavior of such
+ a user agent be defined by the TT AF specification(s); however, the
+ definition of such a user agent or user agent behavior may be the
+ subject of future activities by the TT WG.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R214" id="R214"></a>R214 – Non-Flowed Text Vocabulary</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing the following vocabulary as
+ pertains to non-flowed text content:</p>
+ <ul>
+ <li>
+ <p>area</p>
+ </li>
+ <li>
+ <p>glyph</p>
+ </li>
+ <li>
+ <p>glyph sequence</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The glyph and glyph sequence vocabulary items are intended to make
+ direct reference to specific glyphs in specific fonts, having already
+ been transformed from the character domain to the glyph domain.
+ References to glyphs would typically take the form of a glyph
+ identifier or a glyph code. For further information on character to the
+ glyph mapping process, see <a href="#charmod">[CharMod]</a>, Section
+ 3.1.3, <em>Units of Visual Rendering</em>.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R215" id="R215"></a>R215 – Hybrid Flowed and Non-Flowed
+ Text</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing authorial intention to create
+ a hybrid of flowed and non-flowed text content; however, such an
+ expression may require that these two types of content be segregated at a
+ specific level of granularity.</p>
+ </div>
+ </dd>
+ <dt><a name="R216" id="R216"></a>R216 – Hyperlinking</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing simple hyperlinks, where the
+ ending (destination) resource is either the starting (source) resource or
+ an external resource.</p>
+ </div>
+ </dd>
+ <dt><a name="R217" id="R217"></a>R217 – Embedded Graphics</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing block and inline, embedded
+ graphics of both bitmap and vector or outline formats.</p>
+ <p>If block or inline graphics are used for the purpose of expressing
+ pre-rasterized text in a bitmap format, then the original text that
+ produced such a pre-rasterized form shall also be required to be present
+ in TT AF content.</p>
+ </div>
+ </dd>
+ <dt><a name="R218" id="R218"></a>R218 – Non-Embedded Graphics</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing block and inline,
+ non-embedded graphics of both bitmap and vector or outline formats, where
+ a graphic is represented by an external resource.</p>
+ <p>If block or inline graphics are used for the purpose of expressing
+ pre-rasterized text in a bitmap format, then the original text that
+ produced such a pre-rasterized form shall also be required to be present
+ in TT AF content.</p>
+ </div>
+ </dd>
+ <dt><a name="R219" id="R219"></a>R219 – Embedded Fonts</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing embedded fonts of both bitmap
+ and outline formats.</p>
+ </div>
+ </dd>
+ <dt><a name="R220" id="R220"></a>R220 – Non-Embedded Fonts</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing non-embedded fonts of both
+ bitmap and outline formats, where a font is represented by an external
+ resource.</p>
+ </div>
+ </dd>
+ <dt><a name="R221" id="R221"></a>R221 – Descriptive Vocabulary</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating text content with
+ descriptive information from an appropriate domain of discourse.</p>
+ <p/>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See <a href="#tei">[TEI]</a>, Chapter 10, <em>Base Tag Set for
+ Drama</em>, and Chapter 11, <em>Transcription of Speech</em>, for
+ examples of descriptive vocabulary pertaining to drama and the
+ transcription of speech, respectively.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R222" id="R222"></a>R222 – Embedded Audio</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing embedded audio that is
+ intended to be played or rendered in sequence or in parallel with
+ associated text content.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of embedded audio is intended to support aural cues that may
+ accompany text.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R223" id="R223"></a>R223 – Non-Embedded Audio</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing non-embedded audio that is
+ intended to be played or rendered in sequence or in parallel with
+ associated text content, where the audio content is represented by an
+ external resource.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The use of non-embedded audio is intended to support aural cues that
+ may accompany text.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R290" id="R290"></a>R290 – Markup Format</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall support the use of both <a href="#xml10">[XML 1.0]</a>
+ and <a href="#xml11">[XML 1.1]</a> as serialized forms of a TT AF XML
+ information set.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See <a href="#infoset">[XML InfoSet]</a> for further information on
+ an <em>XML information set</em>.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R291" id="R291"></a>R291 – Markup Format and Unicode
+ Interaction</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall require or recommend adherence to the practices
+ recommended by <a href="#uxml">[Unicode in XML]</a>.</p>
+ </div>
+ </dd>
+ <dt><a name="R292" id="R292"></a>R292 – Extrinsic Resource References</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall support the use of <a href="#xlink">[XLink]</a> for
+ the purpose of referencing external resources.</p>
+ </div>
+ </dd>
+ <dt><a name="R293" id="R293"></a>R293 – Schema Validity Specification</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner that the
+ normative validity of markup content be specified in terms of either or
+ both <a href="#rng">[RELAX NG]</a> and <a href="#xsd-1">[XML Schema Part
+ 1]</a> in combination with <a href="#xsd-2">[XML Schema Part 2]</a>.</p>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="styling" id="styling"></a>4.3 Styling</h3>
+ <dl>
+ <dt><a name="R300" id="R300"></a>R300 – Inline Styling</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of inline styling, where inline styling
+ means the inclusion of stylistic presentation information in a TT AF
+ document instance.</p>
+ </div>
+ </dd>
+ <dt><a name="R301" id="R301"></a>R301 – Inline Styling Form</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of specifying inline styling by means of
+ (1) distinct attributes, (2) a generic attribute, e.g.,
+ <code>style</code>, and (3) one or more inline stylesheets.</p>
+ </div>
+ </dd>
+ <dt><a name="R302" id="R302"></a>R302 – Out-of-Line Styling</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of out-of-line styling, where out-of-line
+ styling means the association of stylistic presentation information with
+ TT AF content via some mechanism external to a TT AF document
+ instance.</p>
+ </div>
+ </dd>
+ <dt><a name="R303" id="R303"></a>R303 – Out-Of-Line Styling Form</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of specifying out-of-line styling by means
+ of one or more external stylesheets.</p>
+ </div>
+ </dd>
+ <dt><a name="R304" id="R304"></a>R304 – Styling Prioritization</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating priorities with stylistic
+ presentation information in order to permit the resolution of multiple
+ style specifications that apply to the same content.</p>
+ </div>
+ </dd>
+ <dt><a name="R305" id="R305"></a>R305 – Style Parameters – Aural</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating the following aural style
+ parameters with timed text content:</p>
+ <ul>
+ <li>
+ <p>azimuth</p>
+ </li>
+ <li>
+ <p>cue before, during, after</p>
+ </li>
+ <li>
+ <p>elevation</p>
+ </li>
+ <li>
+ <p>pause before, after</p>
+ </li>
+ <li>
+ <p>pitch</p>
+ </li>
+ <li>
+ <p>pitch range</p>
+ </li>
+ <li>
+ <p>richness</p>
+ </li>
+ <li>
+ <p>speaking mode</p>
+ </li>
+ <li>
+ <p>speech rate</p>
+ </li>
+ <li>
+ <p>stress</p>
+ </li>
+ <li>
+ <p>voice family</p>
+ </li>
+ <li>
+ <p>volume</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For further information on these style parameters, see <a
+ href="#xsl">[XSL 1.0]</a>, Section 7.6, <em>Common Aural
+ Properties</em> and <a href="#css2">[CSS Level 2]</a>.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For further information on the <em>speaking mode</em> aural style
+ parameter, see discussion of <code>speak</code>,
+ <code>speak-numeral</code>, and <code>speak-punctuation</code>
+ properties described in <a href="#xsl">[XSL 1.0]</a>, Section 7.6.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R306" id="R306"></a>R306 – Style Parameters – Visual</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating the following visual style
+ parameters with timed text content:</p>
+ <ul>
+ <li>
+ <p>absolute position</p>
+ </li>
+ <li>
+ <p>background color</p>
+ </li>
+ <li>
+ <p>baseline alignment point</p>
+ </li>
+ <li>
+ <p>baseline alignment</p>
+ </li>
+ <li>
+ <p>baseline dominance</p>
+ </li>
+ <li>
+ <p>baseline shift</p>
+ </li>
+ <li>
+ <p>bidirectional treatment</p>
+ </li>
+ <li>
+ <p>block progression dimension</p>
+ </li>
+ <li>
+ <p>block scroll amount</p>
+ </li>
+ <li>
+ <p>border before, after, start, end</p>
+ </li>
+ <li>
+ <p>break before, after</p>
+ </li>
+ <li>
+ <p>clear</p>
+ </li>
+ <li>
+ <p>color</p>
+ </li>
+ <li>
+ <p>color profile name</p>
+ </li>
+ <li>
+ <p>display none, block, inline</p>
+ </li>
+ <li>
+ <p>display alignment</p>
+ </li>
+ <li>
+ <p>float</p>
+ </li>
+ <li>
+ <p>font family</p>
+ </li>
+ <li>
+ <p>font size</p>
+ </li>
+ <li>
+ <p>font style</p>
+ </li>
+ <li>
+ <p>font weight</p>
+ </li>
+ <li>
+ <p>height</p>
+ </li>
+ <li>
+ <p>indent start, end</p>
+ </li>
+ <li>
+ <p>inline progression dimension</p>
+ </li>
+ <li>
+ <p>inline scroll amount</p>
+ </li>
+ <li>
+ <p>intrusion-displace</p>
+ </li>
+ <li>
+ <p>line feed treatment</p>
+ </li>
+ <li>
+ <p>line height</p>
+ </li>
+ <li>
+ <p>line stacking strategy</p>
+ </li>
+ <li>
+ <p>line wrapping option</p>
+ </li>
+ <li>
+ <p>opacity</p>
+ </li>
+ <li>
+ <p>origin (top, left)</p>
+ </li>
+ <li>
+ <p>overflow</p>
+ </li>
+ <li>
+ <p>padding before, after, start, end</p>
+ </li>
+ <li>
+ <p>reference orientation</p>
+ </li>
+ <li>
+ <p>relative position</p>
+ </li>
+ <li>
+ <p>space before, after, start, end</p>
+ </li>
+ <li>
+ <p>text alignment</p>
+ </li>
+ <li>
+ <p>text altitude (ascent)</p>
+ </li>
+ <li>
+ <p>text decoration</p>
+ </li>
+ <li>
+ <p>text depth (descent)</p>
+ </li>
+ <li>
+ <p>text indent (first line)</p>
+ </li>
+ <li>
+ <p>text shadow</p>
+ </li>
+ <li>
+ <p>visibility</p>
+ </li>
+ <li>
+ <p>white space collapse</p>
+ </li>
+ <li>
+ <p>white space treatment</p>
+ </li>
+ <li>
+ <p>width</p>
+ </li>
+ <li>
+ <p>writing mode</p>
+ </li>
+ <li>
+ <p>z-index</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For further information on these style parameters, see <a
+ href="#xsl">[XSL 1.0]</a>, Section 7, <em>Formatting Properties</em>
+ and <a href="#css2">[CSS Level 2]</a>.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>The style parameters <em>break before</em> and <em>break after</em>
+ are intended to model the like named style properties defined by <a
+ href="#xsl">[XSL 1.0]</a>, Section 7.19, <em>Keeps and Breaks
+ Properties</em>, except that the possible values of these parameters
+ are expected to be restricted to <code>auto</code>, <code>line</code>,
+ and <code>inherit</code>. The new value <code>line</code> is intended
+ to denote a line area context in order to express that a line break
+ should precede or follow the element associated with this
+ parameter.</p>
+ <p>Unlike XSL, these parameters apply only to inline vocabulary, and
+ not block vocabulary.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>A <em>style parameter</em> is intended to convey the notion of any
+ type of style specification or declaration whether it is expressed as
+ an attribute or a property.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R307" id="R307"></a>R307 – Style Parameters – Visual – Temporal
+ Fill Mode</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF may be capable of associating the following visual style
+ parameters that pertain to temporal filling (flowing) of timed text
+ content:</p>
+ <ul>
+ <li>
+ <p>temporal fill mode</p>
+ </li>
+ <li>
+ <p>temporal fill direction</p>
+ </li>
+ <li>
+ <p>temporal block clear mode</p>
+ </li>
+ <li>
+ <p>temporal fill interval</p>
+ </li>
+ <li>
+ <p>temporal inter-fill interval</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>These parameters are intended to permit the expression of authorial
+ intent with respect to the temporal filling (stacking) of glyph areas
+ within a line area and line areas within a block area.</p>
+ <p>The <em>temporal fill mode</em> parameter permits specifying the
+ granularity of temporal filling, e.g., line, word, character. The
+ <em>temporal fill direction</em> parameter permits specifying the
+ direction of fill (stacking) independently from the writing mode. The
+ <em>temporal block clear mode</em> parameter permits specifying whether
+ the containing block is cleared or is automatically scrolled, and by
+ what extent, when the block is filled. The <em>temporal fill
+ interval</em> parameter permits specifying the interval that a filled
+ area should remain static before processing the next fill. The
+ <em>temporal inter-fill interval</em> parameter permits specifying the
+ interval between the end of a prior fill interval and the start of a
+ subsequent fill interval.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R390" id="R390"></a>R390 – Style Parameter Symmetry</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be defined in such a manner that if a stylistic
+ presentation parameter may be specified as a style property, then that
+ parameter shall also be specifiable as a style attribute, and
+ vice-versa.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>In this context, a style <em>attribute</em> refers to an attribute
+ expressed in a markup language (e.g., an XML attribute), while a style
+ <em>property</em> refers to a property expressed in a style language
+ (e.g., a CSS property).</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R391" id="R391"></a>R391 – Style Parameter Definitions</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be defined in such a manner that if there is a
+ conflict when adopting the name or value semantics of a style parameter
+ specification, then the following order shall hold for resolving such a
+ conflict:</p>
+ <ol type="1">
+ <li>
+ <p>XSL FO</p>
+ </li>
+ <li>
+ <p>SVG</p>
+ </li>
+ <li>
+ <p>SMIL</p>
+ </li>
+ <li>
+ <p>CSS Level 2</p>
+ </li>
+ <li>
+ <p>CSS Level 3</p>
+ </li>
+ </ol>
+ <p/>
+ </div>
+ </dd>
+ <dt><a name="R392" id="R392"></a>R392 – Style Element Type Shorthand
+ Equivalence</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be defined in such a manner that to the extent that
+ stylistic oriented markup element types are defined or adopted, then such
+ element types shall be defined as shorthand equivalents of non-stylistic
+ oriented element types in combination with specific style parameters.</p>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="timing" id="timing"></a>4.4 Timing</h3>
+ <dl>
+ <dt><a name="R401" id="R401"></a>R401 – Inline Timing</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of inline timing, where inline timing means
+ the inclusion of temporal presentation markup in a TT AF document
+ instance.</p>
+ </div>
+ </dd>
+ <dt><a name="R402" id="R402"></a>R402 – Out-of-Line Timing</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of out-of-line timing, where out-of-line
+ timing means the association of temporal presentation information with TT
+ AF content via some mechanism external to a TT AF document instance.</p>
+ </div>
+ </dd>
+ <dt><a name="R403" id="R403"></a>R403 – Synchronization Parameters</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing the following synchronization
+ parameters in terms of any legal combination that expresses a possibly
+ repeated or restarted, single, simple interval:</p>
+ <ul>
+ <li>
+ <p>begin</p>
+ </li>
+ <li>
+ <p>dur</p>
+ </li>
+ <li>
+ <p>end</p>
+ </li>
+ <li>
+ <p>endsync</p>
+ </li>
+ <li>
+ <p>fill</p>
+ </li>
+ <li>
+ <p>fillDefault</p>
+ </li>
+ <li>
+ <p>repeatCount</p>
+ </li>
+ <li>
+ <p>repeatDur</p>
+ </li>
+ <li>
+ <p>restart</p>
+ </li>
+ <li>
+ <p>restartDefault</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For further information on these synchronization parameters, see <a
+ href="#smil20">[SMIL 2.0]</a>, Section 10, <em>The SMIL 2.0 Timing and
+ Synchronization Module</em>.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that the TT AF support the specification of
+ multiple simple intervals, i.e., multiple start, duration, or begin
+ values.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R404" id="R404"></a>R404 – Synchronization Parameter Value Space
+ Semantics</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing the following synchronization
+ parameter value space semantics:</p>
+ <ul>
+ <li>
+ <p><em>Offset Values</em> – a clock offset from an implied or
+ explicit synchronization timebase;</p>
+ </li>
+ <li>
+ <p><em>Event Values</em> – a clock offset from a named event
+ associated with an implied or explicit element node, including, at a
+ minimum, named events that indicate the beginning or end of a timed
+ element's active interval;</p>
+ </li>
+ <li>
+ <p><em>Access Key Values</em> – a clock offset from a specific
+ key press event;</p>
+ </li>
+ <li>
+ <p><em>Media Marker Values</em> – a clock offset from a media
+ marker, including, at a minimum, a media marker that denotes a SMPTE
+ time code;</p>
+ </li>
+ <li>
+ <p><em>Wallclock Values</em> – a clock offset from an absolute
+ wallclock time in an implied or explicit time zone.</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that the TT AF support the specification of
+ negative offset values.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R405" id="R405"></a>R405 – Time Containment Semantics</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing sequential, parallel, and
+ exclusive time containment semantics of consituent timed text
+ content.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>For further information on these time containment semantics, see <a
+ href="#smil20">[SMIL 2.0]</a>, Section 10, <em>The SMIL 2.0 Timing and
+ Syncrhonization Module</em>.</p>
+ </div>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="animation" id="animation"></a>4.5 Animation</h3>
+ <dl>
+ <dt><a name="R500" id="R500"></a>R500 – Animation Modes</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing animation according to the
+ following modes:</p>
+ <ul>
+ <li>
+ <p>continuous – linear</p>
+ </li>
+ <li>
+ <p>continuous – non-linear</p>
+ </li>
+ <li>
+ <p>discrete</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>By <em>animation</em> is meant the ability to alter some parameter
+ or value over time.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R501" id="R501"></a>R501 – Scroll Animation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing animated scrolling of
+ content, both in block and inline progression directions, with
+ independent expression of scroll in, scroll out, and scroll
+ repetition.</p>
+ </div>
+ </dd>
+ <dt><a name="R502" id="R502"></a>R502 – Highlight Animation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing animated highlighting of
+ content, with granularity at the level of individual characters or
+ glyphs.</p>
+ </div>
+ </dd>
+ <dt><a name="R503" id="R503"></a>R503 – Fade Transition Animation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing animated fade transitions of
+ content, with granularity at the level of individual regions or
+ areas.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>See <a href="#R210"><b>Presentational Flowed Text Vocabulary</b></a>
+ and <a href="#R214"><b>Non-Flowed Text Vocabulary</b></a> for
+ information on <em>region</em> and <em>area</em> vocabulary items,
+ respectively.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R504" id="R504"></a>R504 – Animated Style Parameters –
+ Aural</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of animating the following aural style
+ parameters:</p>
+ <ul>
+ <li>
+ <p>azimuth</p>
+ </li>
+ <li>
+ <p>elevation</p>
+ </li>
+ <li>
+ <p>speaking mode</p>
+ </li>
+ <li>
+ <p>speech rate</p>
+ </li>
+ <li>
+ <p>volume</p>
+ </li>
+ </ul>
+ <p/>
+ </div>
+ </dd>
+ <dt><a name="R505" id="R505"></a>R505 – Animated Style Parameters –
+ Visual</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of animating the following visual style
+ parameters:</p>
+ <ul>
+ <li>
+ <p>background color</p>
+ </li>
+ <li>
+ <p>block scroll amount</p>
+ </li>
+ <li>
+ <p>border color</p>
+ </li>
+ <li>
+ <p>color</p>
+ </li>
+ <li>
+ <p>display</p>
+ </li>
+ <li>
+ <p>inline scroll amount</p>
+ </li>
+ <li>
+ <p>opacity</p>
+ </li>
+ <li>
+ <p>origin</p>
+ </li>
+ <li>
+ <p>visibility</p>
+ </li>
+ </ul>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is possible to express fade-in and fade-out transitions by means
+ of animating the <em>opacity</em> style parameter.</p>
+ </div>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>Animation of the <em>display</em> style parameter may cause reflow
+ (reformatting) of content in a user agent at each animation step.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="N506" id="N506"></a>N506 – Animated Content</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF is not required to support the animation of content.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>By <em>animation of content</em> is meant the dynamic addition or
+ changing of element content by means of animation functionality, e.g.,
+ replacing the text content of an element.</p>
+ </div>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ <div class="div2">
+ <h3><a name="metadata" id="metadata"></a>4.6 Metadata</h3>
+ <dl>
+ <dt><a name="R600" id="R600"></a>R600 – Metadata Item Association</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of associating arbitrary metadata,
+ expressed as <em>metadata items</em>, with (1) a TT AF document instance
+ and (2) any element contained within a TT AF document instance.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>It is not required that metadata be able to be associated with an
+ element's attributes or with any other child of an element other than a
+ child that is characterized as an element itself.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R601" id="R601"></a>R601 – Metadata Item Constituents</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing the following constituents of
+ individual metadata items:</p>
+ <ul>
+ <li>
+ <p>name</p>
+ </li>
+ <li>
+ <p>value type</p>
+ </li>
+ <li>
+ <p>value</p>
+ </li>
+ </ul>
+ <p/>
+ </div>
+ </dd>
+ <dt><a name="R602" id="R602"></a>R602 – Metadata Item Value
+ Representation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall give preference to the representation of metadata item
+ values as element content as opposed to attribute content.</p>
+ <div class="note">
+ <p class="prefix"><b>Note:</b></p>
+ <p>By <em>element content</em> is meant those children of an element
+ information item that are characterized as elements or as character
+ data. By <em>attribute content</em> is meant the normalized values of
+ the attributes of an element information item.</p>
+ </div>
+ </div>
+ </dd>
+ <dt><a name="R603" id="R603"></a>R603 – Metadata Item Extensibility</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF shall be capable of expressing metadata items whose names,
+ value types, and semantics are defined externally to the TT AF
+ specification(s).</p>
+ </div>
+ </dd>
+ <dt><a name="R604" id="R604"></a>R604 – Metadata Item Validation</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner as to
+ permit and potentially require the ability to validate metadata.</p>
+ </div>
+ </dd>
+ <dt><a name="R690" id="R690"></a>R690 – Dublin Core Preference</dt>
+ <dd>
+ <div class="req">
+ <p>The TT AF specification(s) shall be defined in such a manner as to
+ give preference to those metadata items defined by <a
+ href="#dcmes">[DCMES 1.1]</a> in case that a conflict exists with another
+ candidate metadata representation.</p>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ </div>
+ <div class="back">
+ <div class="div1">
+ <h2><a name="references" id="references"></a>A References</h2>
+ <dl>
+ <dt class="label"><a name="ascii" id="ascii"></a>ASCII (ANSI X3.4)</dt>
+ <dd>American National Standards Institute. <cite>ANSI X3.4: Coded character set
+ – 7-bit American national code for information interchange</cite>. New York,
+ 1986.</dd>
+ <dt class="label"><a name="atag10" id="atag10"></a>ATAG 1.0</dt>
+ <dd>Jutta Treviranus, Charles McCathieNevile, Ian Jacobs, Jan Richards, Eds.,
+ <a href="http://www.w3.org/TR/ATAG10/"><cite>Authoring Tool Accessibility
+ Guidelines 1.0</cite></a>, W3C Recommendation, 3 February 2000. (See <a
+ href="http://www.w3.org/TR/ATAG10/">http://www.w3.org/TR/ATAG10/</a>.)</dd>
+ <dt class="label"><a name="dcmes" id="dcmes"></a>DCMES 1.1</dt>
+ <dd>Dublin Core Metadata Initiative, <a
+ href="http://dublincore.org/documents/dces/"><cite>Dublin Core Metadata Element
+ Set, Version 1.1: Reference Description</cite></a>. (See <a
+ href="http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</a>.)</dd>
+ <dt class="label"><a name="rng" id="rng"></a>RELAX NG</dt>
+ <dd>James Clark and Makato Murata, Eds., <a
+ href="http://www.relaxng.org/spec-20011203.html"><cite>RELAX NG
+ Specification</cite></a>, OASIS Committee Specification, 3 December 2001. (See
+ <a
+ href="http://www.relaxng.org/spec-20011203.html">http://www.relaxng.org/spec-20011203.html</a>.)</dd>
+ <dt class="label"><a name="unicode32" id="unicode32"></a>Unicode 3.2</dt>
+ <dd>The Unicode Consortium, <cite>The Unicode Standard, Version 3.2.0</cite> is
+ defined by <cite>The Unicode Standard, Version 3.0</cite> (Reading, MA,
+ Addison-Wesley, 2000. ISBN 0-201-61633-5), as amended by the <cite>Unicode
+ Standard Annex #27: Unicode 3.1</cite> (see <a
+ href="http://www.unicode.org/reports/tr27/">http://www.unicode.org/reports/tr27</a>)
+ and by the <cite>Unicode Standard Annex #28: Unicode 3.2</cite> (see <a
+ href="http://www.unicode.org/reports/tr28/">http://www.unicode.org/reports/tr28</a>).</dd>
+ <dt class="label"><a name="uxml" id="uxml"></a>Unicode in XML</dt>
+ <dd>Martin J. Dürst and Asums Freytag, <a
+ href="http://www.w3.org/TR/unicode-xml/"><cite>Unicode in XML and other Markup
+ Languages</cite></a>, W3C Note. (See <a
+ href="http://www.w3.org/TR/unicode-xml/">http://www.w3.org/TR/unicode-xml/</a>.)</dd>
+ <dt class="label"><a name="smilaccess" id="smilaccess"></a>WAI SMIL AG</dt>
+ <dd>Marja-Riitta Koivunen, <a
+ href="http://www.w3.org/TR/SMIL-access/"><cite>Accessibility Features of
+ SMIL</cite></a>, W3C Note, 21 September 1999. (See <a
+ href="http://www.w3.org/TR/SMIL-access/">http://www.w3.org/TR/SMIL-access/</a>.)</dd>
+ <dt class="label"><a name="xmlaccess" id="xmlaccess"></a>WAI XML AG</dt>
+ <dd>Daniel Dardailler, Sean B. Palmer, Charles McCathieNevile, Eds., <a
+ href="http://www.w3.org/TR/xag.html"><cite>XML Accessibility
+ Guidelines</cite></a>, W3C Working Draft, 3 October 2002. (See <a
+ href="http://www.w3.org/TR/xag.html">http://www.w3.org/TR/xag.html</a>.)</dd>
+ <dt class="label"><a name="xlink" id="xlink"></a>XLink</dt>
+ <dd>Steve DeRose, Eve Maler, David Orchard, Eds., <a
+ href="http://www.w3.org/TR/xlink/"><cite>XML Linking Language (XLink) Version
+ 1.0</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/xlink/">http://www.w3.org/TR/xlink/</a>.)</dd>
+ <dt class="label"><a name="xml10" id="xml10"></a>XML 1.0</dt>
+ <dd>Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Eds., <a
+ href="http://www.w3.org/TR/REC-xml"><cite>Extensible Markup Language (XML) 1.0
+ (Second Edition)</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a>.)</dd>
+ <dt class="label"><a name="xml11" id="xml11"></a>XML 1.1</dt>
+ <dd>John Cowan, <a
+ href="http://www.w3.org/TR/2002/CR-xml11-20021015/"><cite>Extensible Markup
+ Language (XML) 1.1</cite></a>, W3C Candidate Recommendation, 15 October 2002.
+ (See <a
+ href="http://www.w3.org/TR/2002/CR-xml11-20021015/">http://www.w3.org/TR/2002/CR-xml11-20021015/</a>.)</dd>
+ <dt class="label"><a name="infoset" id="infoset"></a>XML InfoSet</dt>
+ <dd>John Cowan and Richard Tobin, <a
+ href="http://www.w3.org/TR/xml-infoset/"><cite>XML Information Set</cite></a>,
+ W3C Recommendation, 24 Oct 2001. (See <a
+ href="http://www.w3.org/TR/xml-infoset/">http://www.w3.org/TR/xml-infoset/</a>.)</dd>
+ <dt class="label"><a name="xsd-1" id="xsd-1"></a>XML Schema Part 1</dt>
+ <dd>Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, Eds., <a
+ href="http://www.w3.org/TR/xmlschema-1/"><cite>XML Schema Part 1:
+ Structures</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1/</a>.)</dd>
+ <dt class="label"><a name="xsd-2" id="xsd-2"></a>XML Schema Part 2</dt>
+ <dd>Paul Biron and Ashok Malhotra, <a
+ href="http://www.w3.org/TR/xmlschema-2/"><cite>XML Schema Part 2:
+ Datatypes</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.)</dd>
+ <dt class="label"><a name="xmlspec" id="xmlspec"></a>XML Spec</dt>
+ <dd>Norman Walsh, <a href="http://www.w3.org/2002/xmlspec/"><cite>The XML Spec
+ Schema and Stylesheets</cite></a>, W3C. (See <a
+ href="http://www.w3.org/2002/xmlspec/">http://www.w3.org/2002/xmlspec/</a>).</dd>
+ </dl>
+ </div>
+ <div class="div1">
+ <h2><a name="other-references" id="other-references"></a>B Other References
+ (Non-Normative)</h2>
+ <dl>
+ <dt class="label"><a name="threegpp" id="threegpp"></a>3GPP</dt>
+ <dd>3rd Generation Partnership Project, <a
+ href="http://www.3gpp.org/ftp/Specs/html-info/26234.htm"><cite>Technical
+ Specification Group Services and System Aspects; Transparent End-To-End
+ Packet-Switched Streaming Service (PSS); Protocols and Codecs</cite></a>, 3GPP
+ Organizational Partners. (See <a
+ href="http://www.3gpp.org/ftp/Specs/html-info/26234.htm">http://www.3gpp.org/ftp/Specs/html-info/26234.htm</a>.)</dd>
+ <dt class="label"><a name="charmod" id="charmod"></a>CharMod</dt>
+ <dd>Martin J. Dürst et al., Eds., <a
+ href="http://www.w3.org/TR/charmod/"><cite>Character Model for the World Wide
+ Web 1.0: Fundamentals</cite></a>, W3C Recommendation, 15 February 2005. (See <a
+ href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a>.)</dd>
+ <dt class="label"><a name="css2" id="css2"></a>CSS Level 2</dt>
+ <dd>Bert Bos, Håkon Wium Lie, Chris Lilley, Ian Jacobs, Eds., <a
+ href="http://www.w3.org/TR/REC-CSS2/"><cite>Cascading Style Sheets, Level
+ 2</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/REC-CSS2/">http://www.w3.org/TR/REC-CSS2/</a>.)</dd>
+ <dt class="label"><a name="dcmi-terms" id="dcmi-terms"></a>DCMI Terms</dt>
+ <dd>Dublin Core Metadata Initiative, <a
+ href="http://dublincore.org/documents/2003/03/04/dcmi-terms/"><cite>DCMI
+ Metadata Terms</cite></a>. (See <a
+ href="http://dublincore.org/documents/2003/03/04/dcmi-terms/">http://dublincore.org/documents/2003/03/04/dcmi-terms/</a>.)</dd>
+ <dt class="label"><a name="eia608b" id="eia608b"></a>EIA-608B</dt>
+ <dd>Electronics Industry Alliance (EIA), <a
+ href="http://www.ce.org/standards/standard_details.asp?id=270"><cite>Line 21
+ Data Services</cite></a>. (See <a
+ href="http://www.ce.org/standards/standard_details.asp?id=270">http://www.ce.org/standards/standard_details.asp?id=270</a>.)</dd>
+ <dt class="label"><a name="eia708b" id="eia708b"></a>EIA-708B</dt>
+ <dd>Electronics Industry Alliance (EIA), <a
+ href="http://www.ce.org/standards/standard_details.asp?id=249"><cite>Digital
+ Television (DTV) Closed Captioning</cite></a>. (See <a
+ href="http://www.ce.org/standards/standard_details.asp?id=249">http://www.ce.org/standards/standard_details.asp?id=249</a>.)</dd>
+ <dt class="label"><a name="en300706" id="en300706"></a>EN 300 706</dt>
+ <dd>European Telecommunications Standards Institute, <a
+ href="http://webapp.etsi.org/action%5COP/OP20030411/en_300706v010201o.pdf"><cite>
+ Enhanced Teletext Specification</cite></a>. (See <a
+ href="http://webapp.etsi.org/action%5COP/OP20030411/en_300706v010201o.pdf">http://webapp.etsi.org/action%5COP/OP20030411/en_300706v010201o.pdf</a>.)</dd>
+ <dt class="label"><a name="en300743" id="en300743"></a>EN 300 743</dt>
+ <dd>European Telecommunications Standards Institute, <a
+ href="http://webapp.etsi.org/action%5COP/OP20021004/en_300743v010201o.pdf"><cite>
+ Digital Video Broadcasting (DVB); Subtitling Systems</cite></a>. (See <a
+ href="http://webapp.etsi.org/action%5COP/OP20021004/en_300743v010201o.pdf">http://webapp.etsi.org/action%5COP/OP20021004/en_300743v010201o.pdf</a>.)</dd>
+ <dt class="label"><a name="qtext" id="qtext"></a>QText</dt>
+ <dd>Apple Computers, Inc., <a
+ href="http://www.apple.com/quicktime/tools_tips/tutorials/texttracks.html"><cite>
+ QuickTime Text</cite></a>. (See <a
+ href="http://www.apple.com/quicktime/tools_tips/tutorials/texttracks.html">http://www.apple.com/quicktime/tools_tips/tutorials/texttracks.html</a>).</dd>
+ <dt class="label"><a name="realtext" id="realtext"></a>RealText</dt>
+ <dd>RealNetworks, Inc., <a
+ href="http://www.realnetworks.com/resources/howto/realtext/index.html"><cite>RealText
+ Markup</cite></a>. (See <a
+ href="http://www.realnetworks.com/resources/howto/realtext/index.html">http://www.realnetworks.com/resources/howto/realtext/index.html</a>).</dd>
+ <dt class="label"><a name="sami" id="sami"></a>SAMI</dt>
+ <dd>Microsoft Corporation, <a
+ href="http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_samiarticle.asp">
+ <cite>SAMI – Synchronized Accessible Media Interchange for Windows Media
+ Player</cite></a>. (See <a
+ href="http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_samiarticle.asp">
+ http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_samiarticle.asp</a>.)</dd>
+ <dt class="label"><a name="smil20" id="smil20"></a>SMIL 2.0</dt>
+ <dd>Jeff Ayars, Dick Bulterman, et al., Eds., <a
+ href="http://www.w3.org/TR/smil20/"><cite>Synchronized Multimedia Integration
+ Language (SMIL 2.0)</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/smil20/">http://www.w3.org/TR/smil20/</a>.)</dd>
+ <dt class="label"><a name="tei" id="tei"></a>TEI</dt>
+ <dd>C. M. Sperberg-McQueen and Lou Burnard, Eds., <a
+ href="http://www.tei-c.org/Guidelines2/index.html"><cite>TEI P4: Guidelines for
+ Electronic Text Encoding and Interchange</cite></a>, Text Encoding Initiative
+ Consortium, Oxford, 2002. (See <a
+ href="http://www.tei-c.org/Guidelines2/index.html">http://www.tei-c.org/Guidelines2/index.html</a>.)</dd>
+ <dt class="label"><a name="xhtml1" id="xhtml1"></a>XHTML 1.0</dt>
+ <dd>Steven Pemberton, et al., Eds., <a
+ href="http://www.w3.org/TR/xhtml1/"><cite>XHTML™ 1.0 Extensible Hypertext
+ Markup Language (Second Edition)</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/xhtml1/">http://www.w3.org/TR/xhtml1/</a>.)</dd>
+ <dt class="label"><a name="xsl" id="xsl"></a>XSL 1.0</dt>
+ <dd>Sharon Adler, Anders Berglund, et al., Eds., <a
+ href="http://www.w3.org/TR/xsl/"><cite>Extensible Stylesheet Language, Version
+ 1.0</cite></a>, W3C Recommendation. (See <a
+ href="http://www.w3.org/TR/xsl/">http://www.w3.org/TR/xsl/</a>.)</dd>
+ </dl>
+ </div>
+ <div class="div1">
+ <h2><a name="acknowledgements" id="acknowledgements"></a>C Acknowledgments
+ (Non-Normative)</h2>
+ <p>The editor acknowledges the members of the Timed Text Working Group, the
+ members of other W3C Working Groups, and industry experts in other forums who
+ have contributed directly or indirectly to the process or content of creating
+ this document.</p>
+ <p>The current and former members of the Timed Text Working Group are: Glenn
+ Adams, Extensible Formatting Systems, Inc. (chair); Kees Blom, CWI; Brad Botkin,
+ WGBH; Dick Bulterman, CWI; Michael Dolan, Invited Expert; Gerry Fields, WGBH;
+ Geoff Freed, WGBH; Markus Gylling, DAISY Consortium; Markku Hakkinen, Japanese
+ Society for Rehabilitation of Persons with Disabilities; Sean Hayes, Microsoft;
+ Erik Hodge, RealNetworks; Masahiko Kaneko, Microsoft; George Kerscher, DAISY
+ Consortium; David Kirby, BBC; Thierry Michel, W3C (team contact); Patrick
+ Schmitz, Invited Expert; and, Dave Singer, Apple Computer.</p>
+ <p>The Timed Text Working Group has benefited in its work from the participation
+ and contributions of a number of people not currently members of the Working
+ Group, including in particular those named below. Affiliations given are those
+ current at the time of their work with the WG.</p>
+ <p>John Birch, Screen Subtitling Systems; Bert Bos, W3C (chair, CSS WG); Martin
+ Dürst, W3C (leader, I18N Activity); Al Gilman (chair, WAI Protocol and Formats
+ WG); Philipp Hoschka, W3C (leader, Interaction Domain); Chris Lilley, W3C (chair,
+ SVG WG).</p>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/Overview.xml Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,1766 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE spec SYSTEM "xmlspec-tt-f.dtd" [
+<!ENTITY draft.month.name "April">
+<!ENTITY draft.month "04">
+<!ENTITY draft.day "27">
+<!ENTITY draft.year "2006">
+<!ENTITY versionOfTT "1.0">
+<!ENTITY doc.designation.nodate "ttaf1-req">
+<!ENTITY doc.status "Working Group Note">
+<!ENTITY doc.status.abbr "WD">
+<!ENTITY doc.base.uri.root "/TR">
+<!ENTITY doc.base.uri.noyear "http://www.w3.org&doc.base.uri.root;/">
+<!ENTITY doc.base.uri "&doc.base.uri.noyear;&draft.year;/">
+<!ENTITY doc.audience "internal review and discussion">
+<!ENTITY doc.distribution "may be distributed freely, as long as
+all text and legal notices remain intact">
+<!ENTITY iso6.doc.date "&draft.year;&draft.month;&draft.day;">
+<!ENTITY doc.designation.nostatus "&doc.designation.nodate;-&iso6.doc.date;">
+<!ENTITY doc.designation.full "&doc.status.abbr;-&doc.designation.nostatus;">
+<!ENTITY doc.designation "&doc.designation.full;">
+<!ENTITY tbd "<phrase role='tbd'>To Be Defined</phrase>">
+<!ENTITY aring "å">
+<!ENTITY ccedil "ç">
+<!ENTITY nbsp " ">
+<!ENTITY ndash "–">
+<!ENTITY hArr "⇔">
+<!ENTITY trade "™">
+<!ENTITY uuml "ü">
+]>
+<?xml-stylesheet type="text/xsl" href="ttaf1-req.xsl"?>
+<spec w3c-doctype="wg-note">
+<header>
+<title>Timed Text (TT) Authoring Format &versionOfTT; Use Cases and Requirements</title>
+<w3c-designation>&doc.designation;</w3c-designation>
+<w3c-doctype>W3C &doc.status;</w3c-doctype>
+<pubdate>
+<day>&draft.day;</day>
+<month>&draft.month.name;</month>
+<year>&draft.year;</year>
+</pubdate>
+<publoc>
+<loc href="http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/">http://www.w3.org/TR/2006/NOTE-ttaf1-req-20060427/</loc>
+</publoc>
+<latestloc>
+<loc href="&doc.base.uri.noyear;&doc.designation.nodate;/">&doc.base.uri.noyear;&doc.designation.nodate;/</loc>
+</latestloc>
+<prevlocs>
+<loc href="http://www.w3.org/TR/2003/WD-ttaf1-req-20030515/">http://www.w3.org/TR/2003/WD-ttaf1-req-20030515/</loc>
+</prevlocs>
+<authlist>
+<author>
+<name>Glenn Adams</name>
+<affiliation>Extensible Formatting Systems, Inc.</affiliation>
+<email href="mailto:glenn@xfsi.com">glenn@xfsi.com</email>
+</author>
+</authlist>
+<abstract id="abstract">
+<p>This document specifies usage scenarios and requirements for a timed text authoring
+format. A timed text authoring format is a content type that represents timed text
+media for the purpose of interchange among authoring systems.
+Timed text is textual information that is intrinsically or extrinsically
+associated with timing information.</p>
+</abstract>
+<status id="status">
+<p><emph>This section describes the status of this document at the
+time of its publication. Other documents may supersede this document.
+A list of current W3C publications and the latest revision of this
+technical report can be found in the <loc
+href="http://www.w3.org/TR/">W3C technical reports index</loc> at
+http://www.w3.org/TR/.</emph></p>
+<p>This Working Group Note is the third publication of
+the Timed Text (TT)
+Authoring Format &versionOfTT; Use Cases and
+Requirements, and represents an editorial revision from the previous
+version in order to transition from Working Draft to Working Group
+Note.
+This document has been produced by the <loc
+href="http://www.w3.org/AudioVideo/TT/">Timed Text Working
+Group</loc> as part of the W3C <loc
+href="http://www.w3.org/AudioVideo/Activity">Synchronized Multimedia
+Activity</loc>.
+The authors of this document are the TT Working Group members, who
+consider this document to be stable, and do not expect further
+revision.
+</p>
+<p>Comments on this document should be sent to the email list <loc
+href="mailto:public-tt@w3.org">public-tt@w3.org</loc>, which is the
+public mailing list of Timed Text Working Group (<loc
+href="http://lists.w3.org/Archives/Public/public-tt/">list
+archives</loc>).
+To subscribe, send an email to <loc
+href="mailto:public-tt-request@w3.org">public-tt-request@w3.org</loc>
+with the word <code>subscribe</code> in the subject line.</p>
+<p>Publication as a Working Group Note does not imply endorsement
+by the W3C Membership. This is a draft document and may be updated,
+replaced or obsoleted by other documents at any time. It is
+inappropriate to cite this document as other than work in
+progress.</p>
+<p>As of this publication, the Working Group does not expect this
+document to become a W3C Recommendation, and therefore it has no
+associated
+<loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/">W3C
+Patent Policy</loc> licensing obligations. If this
+expectation changes, the Working Group will have an opportunity to
+fulfill the associated patent policy requirements with respect to a future draft.</p>
+</status>
+<langusage><language id="en">English</language></langusage>
+<revisiondesc><p>$Id$</p></revisiondesc>
+</header>
+<body>
+<div1 id="intro">
+<head>Introduction</head>
+<p>This document specifies usage scenarios and requirements for a timed text authoring
+format. A timed text authoring format is a content type that represents timed text
+media for the purpose of interchange among authoring systems.
+Timed text is textual information that is intrinsically or extrinsically
+associated with timing information.</p>
+<note role="explanation">
+<p>This document incorporates requirements regarding stylistic
+and timing functionality that range from simple to relatively complex. It is expected
+that the use of this functionality will be partitioned into one or more profiles
+represented by document types of increasing complexity. It is not expected that every
+authoring system or ultimate consumer of timed text content will support all of this
+functionality.</p>
+</note>
+<div2 id="motivation">
+<head>Motivation</head>
+<p>A principal motivation for the development of a common authoring format for
+timed text is the lack of a standard content format that supports the representation
+and interchange of textual information which is synchronized with other media
+elements or which serves as a synchronization master itself.</p>
+<p>Popular proprietary multimedia systems and their corresponding player
+components have defined distinct timed text formats for each proprietary use. As
+a consequence there is no common authoring format that serves as a
+portable interchange format between such systems. A goal of the present work is
+to define such a portable interchange format to ease the burden of authoring tool
+developers and users as well as enhance portability of timed text content.</p>
+<p>A side effect of the development and deployment of a common timed text authoring
+format is that it simplifies the creation and distribution of synchronized text
+for use with a multitude of devices, such as multimedia players, caption, subtitle,
+and teletext encoders and decoders, character generators, LED displays, and other
+text display devices.</p>
+</div2>
+<div2 id="model">
+<head>System Model</head>
+<p>The uses cases and requirements specified in this document are based upon a system
+model, depicted in <specref ref="model-graphic"/>, wherein the timed text authoring format
+serves as a bidirectional interchange format among a heterogeneous collection of
+authoring systems, and as a unidirectional interchange format to a
+heterogeneous collection of distribution formats after undergoing transcoding
+to the target distribution formats as required.</p>
+<table id="model-graphic" role="graphic">
+<caption>Figure 1 – System Model</caption>
+<tbody>
+<tr>
+<td><graphic id="graphic-model" source="./images/model.png" alt="System Model"/></td>
+</tr>
+</tbody>
+</table>
+<note role="explanation">
+<p>In the figure depicted above, the acronym <emph>DFXP</emph> refers
+to a profile of the timed text authoring format known as the Distribution
+Format Exchange Profile, which is intended primarily to satisfy
+interchange among existing legacy formats, and which may also be
+distributed directly.</p>
+</note>
+<note role="explanation">
+<p>This system model does not preclude the timed text authoring format from
+being used as a distribution format in its own right.</p>
+</note>
+</div2>
+</div1>
+<div1 id="definitions">
+<head>Definitions</head>
+<div2 id="acronyms">
+<head>Acronyms</head>
+<glist role="acronyms">
+<gitem>
+<label>TT</label>
+<def>
+<p>Timed Text</p>
+</def>
+</gitem>
+<gitem>
+<label>TT AS</label>
+<def>
+<p>Timed Text Authoring System</p>
+</def>
+</gitem>
+<gitem>
+<label>TT AF</label>
+<def>
+<p>Timed Text Authoring Format</p>
+</def>
+</gitem>
+<gitem>
+<label>TT WG</label>
+<def>
+<p>Timed Text Working Group</p>
+</def>
+</gitem>
+</glist>
+</div2>
+<div2 id="terms">
+<head>Terminology</head>
+<glist>
+<gitem>
+<label>Timed Text</label>
+<def>
+<p>Textual information that is intrinsically or extrinsically
+associated with timing information.</p>
+</def>
+</gitem>
+<gitem>
+<label>Timed Text Authoring Format</label>
+<def>
+<p>A content type that represents timed text media for the purpose
+of interchange among authoring systems.</p>
+</def>
+</gitem>
+<gitem>
+<label>Timed Text Authoring System</label>
+<def>
+<p>A content authoring system capable of
+importing and exporting timed text authoring format content.</p>
+</def>
+</gitem>
+</glist>
+</div2>
+<div2 id="notations">
+<head>Notations</head>
+<p>The following notations are employed in this document:</p>
+<ulist>
+<item>
+<p><phrase role="strong">SXXX</phrase> – use case scenario <emph>XXX</emph></p>
+</item>
+<item>
+<p><phrase role="strong">RXXX</phrase> – requirement <emph>XXX</emph></p>
+</item>
+<item>
+<p><phrase role="strong">RX9X</phrase> – solution space requirement <emph>X9X</emph></p>
+</item>
+<item>
+<p><phrase role="strong">NXXX</phrase> – non-requirement <emph>XXX</emph></p>
+</item>
+</ulist>
+</div2>
+</div1>
+<div1 id="scenarios">
+<head>Use Case Scenarios</head>
+<uselist id="S0XX">
+<useitem id="S000" type="simple">
+<head>Captioning Audio</head>
+<use>
+<p>A caption service provider needs a common content authoring format by means of which
+a textual expression of audio information may be associated with such audio
+information in a time synchronized manner.</p>
+<note role="explanation">
+<p>In the context of captioning an aggregate audio/video service, both audio and
+caption information are typically synchronized to the video track as the
+timebase master.</p>
+</note>
+</use>
+</useitem>
+<useitem id="S001" type="simple">
+<head>Subtitling Audio</head>
+<use>
+<p>A subtitle service provider needs a common content authoring format by means of which
+a textual expression of the original or a translation of the original natural language
+(speech) audio information may be associated with such audio information in a time
+synchronized manner.</p>
+<note role="explanation">
+<p>In the context of subtitling an aggregate audio/video service, both audio and
+subtitle information are typically synchronized to the video track as the
+timebase master.</p>
+</note>
+<note role="explanation">
+<p>The distinction between <emph>captioning</emph> and <emph>subtitling</emph> is best
+expressed as follows: captioning is expressly intended to serve the needs of deaf and
+hard of hearing users, and typically contains transcriptions of speech and non-speech audio information;
+in contrast, subtitling is generally intended to serve the needs of hearing users who
+don't have access to an audio track (e.g., in muting situations) or don't understand
+the natural language of the speech contained in the audio track. Subtitling is often
+viewed as a paraphrase or a translation of speech information, as opposed to a transcription of
+all audio information.</p>
+<p>In the absence of captioning information, subtitling information may also be
+used by deaf and hard of hearing
+users, provided that it is available in the original natural language.</p>
+</note>
+<note role="explanation">
+<p>Some user communities use the term <emph>subtitling</emph> to encompass both captioning
+and subtitling uses as distinguished in the previous note.</p>
+</note>
+</use>
+</useitem>
+<useitem id="S002" type="simple">
+<head>Description</head>
+<use>
+<p>A description service provider needs a common content authoring format in which
+a textual description of video information or a textual expression of an
+audio description of video information may be associated with such video
+information in a time synchronized manner.</p>
+<note role="explanation">
+<p>When a description is rendered by an audio track, such a description is commonly
+referred to as an <emph>Audio Description</emph>.</p>
+</note>
+<note role="explanation">
+<p>In the use of aural forms of visual description, it may be the case that
+the duration of an aural form of a description exceeds the duration
+of the visual information being described. In a presentation device, this
+necessitates manual or automatic pausing of the video track in order to
+fully render the aural form of description. It is likely that similar
+modes of presentation will be required for timed text representations of
+video descriptions.</p>
+</note>
+<note role="explanation">
+<p>This use case scenario is not intended to serve as a general form of <emph>metadata</emph>
+description of related video or audio content.</p>
+</note>
+</use>
+</useitem>
+<useitem id="S003" type="simple">
+<head>Generic Timed Text</head>
+<use>
+<p>A generic timed text service provider needs a common content authoring format in which
+textual information can be presented in a time synchronized manner.</p>
+<note role="explanation">
+<p>In the context of using a generic timed text service, timed text information
+serves as the timebase master, with which other possible timed media may
+be associated.</p>
+</note>
+<note role="explanation">
+<p>Examples of the use of generic timed text
+include (but are not limited to):
+marquee signs, timed text oriented presentations, scrolling text presentation, etc.</p>
+</note>
+</use>
+</useitem>
+</uselist>
+</div1>
+<div1 id="requirements">
+<head>Requirements</head>
+<div2 id="general">
+<head>General</head>
+<!-- general requirements list -->
+<rlist id="R1xx">
+<ritem id="R100" type="dreq">
+<head>Specification Format</head>
+<req>
+<p>The TT AF specification(s) shall be authored using XML and XSL Stylesheets
+based on <bibref ref="xmlspec"/> and shall adhere to best current practices in the
+W3C for specification style and quality assurance.</p>
+</req>
+</ritem>
+<ritem id="R101" type="dreq">
+<head>Specification Modularity</head>
+<req>
+<p>The TT AF specification(s) shall be defined in a modular manner that logically separates
+significant areas of functionality to as great extent as is practical.</p>
+</req>
+</ritem>
+<ritem id="R102" type="dreq">
+<head>Specification Organization</head>
+<req>
+<p>The TT AF specification(s) shall be organized in such a manner as to
+separate the following aspects:</p>
+<ulist>
+<item>
+<p>TT Framework</p>
+</item>
+<item>
+<p>TT Core Vocabulary</p>
+</item>
+<item>
+<p>TT Core Document Types</p>
+</item>
+<item>
+<p>TT Extension Vocabulary(ies)</p>
+</item>
+<item>
+<p>TT Extension Document Type(s)</p>
+</item>
+</ulist>
+<p/>
+</req>
+</ritem>
+<ritem id="R103" type="dreq">
+<head>Core and Periphery</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that core functionality
+is logically separated from peripheral functionality.</p>
+</req>
+</ritem>
+<ritem id="R104" type="dreq">
+<head>Evolution of Core</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that core functionality
+can evolve over time, e.g., by the specification of multiple levels (or versions)
+of core functionality.</p>
+</req>
+</ritem>
+<ritem id="R105" type="dreq">
+<head>Ownership of Core</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that core
+functionality be specified soley by the TT WG or, in the event that the
+TT WG is terminated, its successors within the W3C.</p>
+<note role="assumption">
+<p>It is assumed that one or more appropriate namespace mechanisms will be
+used to segregate core functionality defined or adopted in the TT AF from
+peripheral functionality defined or adopted by clients of the TT AF.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R106" type="dreq">
+<head>Surjection of Core</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that for every
+item in the TT AF core vocabulary, there shall be at least one TT AF core document
+type that makes use of that item, i.e., there exists a surjection from the
+set of TT AF core document types to the set of TT AF vocabulary items referenced
+by those document types.</p>
+<note role="explanation">
+<p>The TT AF specification(s) may define standardized peripheral vocabulary that
+is not referenced by any TT AF core document type.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R107" type="dreq">
+<head>Evolution of Periphery</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that peripheral functionality
+can evolve over time, e.g., by the future specification of one or more
+peripheral functionality modules.</p>
+</req>
+</ritem>
+<ritem id="R108" type="dreq">
+<head>Ownership of Periphery</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that peripheral functionality
+need not be specified by the TT WG or the W3C, but may be specified by other
+W3C WGs as well as non-W3C clients of the TT AF.</p>
+</req>
+</ritem>
+<ritem id="R109" type="freq">
+<head>Transformability</head>
+<req>
+<p>The TT AF shall be capable of being transformed, without undue complexity, into
+one or more legacy timed text content formats, e.g., <bibref ref="threegpp"/>,
+<bibref ref="qtext"/>, <bibref ref="realtext"/>, <bibref ref="sami"/>, etc.</p>
+<note role="explanation">
+<p>The above list of potential target timed text content formats is strictly
+informative, and is not intended to be exhuastive.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R110" type="freq">
+<head>Streamable Tranformation</head>
+<req>
+<p>The TT AF shall be capable of being transformed into an idealized streamable
+representation format.</p>
+<note role="non-requirement">
+<p>It is not required that an idealized streamable representation format be
+defined by the TT AF specification(s); however, the definition of such a format
+may be the subject of future activities by the TT WG.</p>
+</note>
+<note role="information">
+<p>It is intended that existing closed captioning and subtitle streaming
+formats used by analog and digital television services as well as timed text
+used in the context of streaming audio and motion video formats be potentially
+targeted by one or more transformations of the TT AF. These formats include
+<bibref ref="eia608b"/>, <bibref ref="eia708b"/>, <bibref ref="en300706"/>,
+<bibref ref="en300743"/>, etc.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R111" type="freq">
+<head>Accessibility – Content</head>
+<req>
+<p>The TT AF shall include the following accessibility related features:</p>
+<ulist>
+<item><p>Support for a mechanism to explicitly associate
+<emph>Equivalent Alternatives</emph> to the textual information in
+the TT presentation in accordance with <bibref ref="xmlaccess"/>
+Guideline 1.</p></item>
+<item><p>Support for <emph>Content Rendering Adaption</emph> in
+accordance with <bibref ref="smilaccess"/>, Section 5. See also
+<specref ref="R207"/>.</p></item>
+<item><p>Use of a default text vocabulary that satisfies guideline 2
+of <bibref ref="xmlaccess"/> regarding structural and semantical
+stringency.</p></item>
+<item><p> Ability to extend or replace the default text vocabulary
+with other XML dialects to represent the textual information of the
+TT presentation. See also <specref ref="R205"/>.</p></item>
+<item><p>Support for explicit definition of a <emph>Navigational
+Structure</emph> associated with the TT presentation in accordance
+with <bibref ref="smilaccess"/>, Section 4.3.</p></item>
+</ulist>
+<p/>
+</req>
+</ritem>
+<ritem id="R112" type="freq">
+<head>Accessibility – Authoring System</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner as to require
+a TT AS to adhere to all applicable aspects of <bibref ref="atag10"/>.</p>
+</req>
+</ritem>
+<!-- end of general requirements -->
+</rlist>
+</div2>
+<div2 id="content">
+<head>Content</head>
+<!-- content requirements list -->
+<rlist id="R2xx">
+<ritem id="R200" type="freq">
+<head>Authorability</head>
+<req>
+<p>The TT AF shall be capable of being created and modified using a plain text
+editor, e.g., emacs, vi, etc.</p>
+</req>
+</ritem>
+<ritem id="R201" type="freq">
+<head>Multiple Natural Languages</head>
+<req>
+<p>The TT AF shall be capable of representing content of different natural languages,
+where the content of distinct languages may be segregated into separate document instances
+or may be integrated into a single document instance.</p>
+</req>
+</ritem>
+<ritem id="R202" type="freq">
+<head>Natural Language Coverage</head>
+<req>
+<p>The TT AF shall be capable of representing content of at least those specific
+natural languages that may be represented with <bibref ref="unicode32"/>.
+</p>
+</req>
+</ritem>
+<ritem id="R203" type="freq">
+<head>Natural Language Association Granularity</head>
+<req>
+<p>The TT AF shall be capable of associating natural language binding information
+with plain text information at the granularity of a single coded character.</p>
+</req>
+</ritem>
+<ritem id="R204" type="freq">
+<head>Minimum Character Representability</head>
+<req>
+<p>The TT AF shall be capable of representing every coded character available in
+<bibref ref="unicode32"/> by using only those characters in <bibref ref="ascii"/>.
+</p>
+<note role="use">
+<p>This requirement facilitates the entry and editing of characters
+in a TT AF document instance that would otherwise not be permitted due to lack of
+an appropriate character input method or lack of support for a
+non-ASCII character encoding system.</p>
+<p>It is assumed that every TT AS will provide a means to enter and edit
+TT AF document instances represented in the ASCII character set.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R205" type="freq">
+<head>Intrinsic and Extrinsic Text Content</head>
+<req>
+<p>The TT AF shall be capable of expressing text content intrinsically within a TT AF
+document instance, extrinsically by referencing from a TT AF document instance to text
+content in one or more external resources, or in any combination of these two modes.
+</p>
+</req>
+</ritem>
+<ritem id="R206" type="freq">
+<head>Markup Association</head>
+<req>
+<p>The TT AF shall be capable of associating structural markup with intrinsic and
+extrinsic text content, where such markup may denote either or both semantic (functional)
+and presentational (formal) properties of the content.
+</p>
+<note>
+<p>In this context, <emph>presentational</emph> properties designate both stylistic
+and timing related presentation information.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R207" type="freq">
+<head>Conditional Content</head>
+<req>
+<p>The TT AF shall be capable of expressing conditional content, where each alternative
+content choice is governed by one or more test expressions such that exactly one or zero
+content choice is selected when evaluating each choice in a predefined order.</p>
+</req>
+</ritem>
+<ritem id="R208" type="freq">
+<head>Flowed Text</head>
+<req>
+<p>The TT AF shall be capable of expressing authorial intention to flow (layout) text
+content in an idealized, but unspecified user agent.
+</p>
+<note role="explanation">
+<p>In this context, the concept of <emph>flow</emph> refers to an implied process by
+means of which textual information expressed in the character domain is mapped
+to a positioned glyph codomain.</p>
+</note>
+<note role="non-requirement">
+<p>It is not required that an idealized user agent or behavior of such a user agent be
+defined by the TT AF specification(s); however, the definition of such a user agent or
+user agent behavior may be the subject of future activities by the TT WG.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R209" type="freq">
+<head>Logical Flowed Text Vocabulary</head>
+<req>
+<p>The TT AF shall be capable of expressing the following vocabulary as pertains to
+logical flowed text content:
+</p>
+<ulist>
+<item>
+<p>body</p>
+</item>
+<item>
+<p>division</p>
+</item>
+<item>
+<p>paragraph</p>
+</item>
+<item>
+<p>phrase</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>A generic <emph>role</emph> attribute is expected to be provided for use with these
+items in order to express distinct stylistic and semantic roles, e.g., a <emph>paragraph</emph>
+role may be associated with a <emph>division</emph> item to indicate that the logical division
+expressed corresponds to a stylistic and semantic paragraph.</p>
+</note>
+<note role="example">
+<p>One possible mapping for this vocabulary is to <el>xhtml:body</el>,
+<el>xhtml:div</el>, <el>xhtml:p</el>, and <el>xhtml:span</el>, respectively,
+as defined by <bibref ref="xhtml1"/>.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R210" type="freq">
+<head>Presentational Flowed Text Vocabulary</head>
+<req>
+<p>The TT AF shall be capable of expressing the following vocabulary as pertains to
+presentational flowed text content:
+</p>
+<ulist>
+<item>
+<p>block</p>
+</item>
+<item>
+<p>block container</p>
+</item>
+<item>
+<p>character</p>
+</item>
+<item>
+<p>flow</p>
+</item>
+<item>
+<p>forced line break</p>
+</item>
+<item>
+<p>inline</p>
+</item>
+<item>
+<p>inline container</p>
+</item>
+<item>
+<p>region</p>
+</item>
+<item>
+<p>viewport</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>The items enumerated above are drawn in part from similarly named items
+defined by <bibref ref="xsl"/>, Section 6, <emph>Formatting Objects</emph>.</p>
+</note>
+<note role="explanation">
+<p>The <emph>forced line break</emph> item may be expressed in terms
+of the <emph>character</emph> item, where the specified character has line separator or line
+break semantics.</p>
+<p>The use of this item in combination with a <emph>wrap option</emph>
+style parameter with the value <code>nowrap</code> permits an intermediate mode
+of text representation with formatting semantics that fall between flowed text
+and non-flowed text.</p>
+</note>
+<note role="explanation">
+<p>The <emph>viewport</emph> and <emph>region</emph> items are intended to be
+analogous to the <bibref ref="xsl"/> vocabulary <code>fo:simple-page-master</code>
+and <code>fo:region-*</code>, respectively.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R211" type="freq">
+<head>Flowed Text Vocabulary Relationship</head>
+<req>
+<p>The TT AF shall be defined in such a manner that a default relationship
+between logical and presentational flowed text vocabulary may be assumed as follows:</p>
+<ulist>
+<item>
+<p>body ⇔ flow</p>
+</item>
+<item>
+<p>division (display: block) ⇔ block container</p>
+</item>
+<item>
+<p>paragraph ⇔ block</p>
+</item>
+<item>
+<p>division (display: inline) ⇔ inline container</p>
+</item>
+<item>
+<p>phrase ⇔ inline</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>Parsed character data (<code>#PCDATA</code>) that appears in
+logical flowed text content should be assumed to map by default to
+parsed character data or <emph>character</emph> in presentational flowed
+text content.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R212" type="freq">
+<head>Flowed Text Vocabulary Separation</head>
+<req>
+<p>The TT AF shall be defined in such a manner that use of logical flowed text
+vocabulary is separated from use of presentational flowed text vocabulary.</p>
+<note role="explanation">
+<p>It is not required that the TT AF specification(s) define a document type
+that supports the simultaneous use of both logical and presentational flowed text
+vocabulary.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R213" type="freq">
+<head>Non-Flowed Text</head>
+<req>
+<p>The TT AF shall be capable of expressing authorial intention to render non-flowed text
+content in an idealized, but unspecified user agent.
+</p>
+<note role="explanation">
+<p>In this context, the concept of <emph>non-flowed text</emph> refers to textual
+information that is explicitly associated with positioned glyph information at authoring
+time; i.e., all bidirectional processing and character to glyph substitution processing
+and glyph position assignment has already occurred.</p>
+</note>
+<note role="non-requirement">
+<p>It is not required that an idealized user agent or behavior of such a user agent be
+defined by the TT AF specification(s); however, the definition of such a user agent or
+user agent behavior may be the subject of future activities by the TT WG.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R214" type="freq">
+<head>Non-Flowed Text Vocabulary</head>
+<req>
+<p>The TT AF shall be capable of expressing the following vocabulary as pertains to
+non-flowed text content:</p>
+<ulist>
+<item>
+<p>area</p>
+</item>
+<item>
+<p>glyph</p>
+</item>
+<item>
+<p>glyph sequence</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>The glyph and glyph sequence vocabulary items are intended to make direct reference to
+specific glyphs in specific fonts, having already been transformed from the character
+domain to the glyph domain. References to glyphs would typically take the form of a glyph
+identifier or a glyph code. For further information on character to the
+glyph mapping process, see <bibref ref="charmod"/>, Section 3.1.3,
+<emph>Units of Visual Rendering</emph>.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R215" type="freq">
+<head>Hybrid Flowed and Non-Flowed Text</head>
+<req>
+<p>The TT AF shall be capable of expressing authorial intention to create a hybrid of
+flowed and non-flowed text content; however, such an expression may require that these
+two types of content be segregated at a specific level of granularity.</p>
+</req>
+</ritem>
+<ritem id="R216" type="freq">
+<head>Hyperlinking</head>
+<req>
+<p>The TT AF shall be capable of expressing simple hyperlinks, where the ending
+(destination) resource is either the starting (source) resource or an external resource.
+</p>
+</req>
+</ritem>
+<ritem id="R217" type="freq">
+<head>Embedded Graphics</head>
+<req>
+<p>The TT AF shall be capable of expressing block and inline,
+embedded graphics of both bitmap and vector or outline formats.
+</p>
+<p>If block or inline graphics are used for the purpose of expressing pre-rasterized
+text in a bitmap format, then the original text that produced such a pre-rasterized form shall
+also be required to be present in TT AF content.</p>
+</req>
+</ritem>
+<ritem id="R218" type="freq">
+<head>Non-Embedded Graphics</head>
+<req>
+<p>The TT AF shall be capable of expressing block and inline,
+non-embedded graphics of both bitmap and vector or outline formats, where a graphic is
+represented by an external resource.
+</p>
+<p>If block or inline graphics are used for the purpose of expressing pre-rasterized
+text in a bitmap format, then the original text that produced such a pre-rasterized form shall
+also be required to be present in TT AF content.</p>
+</req>
+</ritem>
+<ritem id="R219" type="freq">
+<head>Embedded Fonts</head>
+<req>
+<p>The TT AF shall be capable of expressing embedded fonts of both bitmap and
+outline formats.
+</p>
+</req>
+</ritem>
+<ritem id="R220" type="freq">
+<head>Non-Embedded Fonts</head>
+<req>
+<p>The TT AF shall be capable of expressing non-embedded fonts of both bitmap and
+outline formats, where a font is represented by an external resource.
+</p>
+</req>
+</ritem>
+<ritem id="R221" type="freq">
+<head>Descriptive Vocabulary</head>
+<req>
+<p>The TT AF shall be capable of associating text content
+with descriptive information from an appropriate domain of discourse.</p>
+<p/>
+<note role="explanation">
+<p>See <bibref ref="tei"/>, Chapter 10, <emph>Base Tag Set for Drama</emph>,
+and Chapter 11, <emph>Transcription of Speech</emph>, for examples of descriptive
+vocabulary pertaining to drama and the transcription of speech, respectively.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R222" type="freq">
+<head>Embedded Audio</head>
+<req>
+<p>The TT AF shall be capable of expressing embedded audio that is intended to be played or
+rendered in sequence or in parallel with associated text content.</p>
+<note role="explanation">
+<p>The use of embedded audio is intended to support aural cues that may accompany text.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R223" type="freq">
+<head>Non-Embedded Audio</head>
+<req>
+<p>The TT AF shall be capable of expressing non-embedded audio that is intended to be played or
+rendered in sequence or in parallel with associated text content, where the audio
+content is represented by an external resource.</p>
+<note role="explanation">
+<p>The use of non-embedded audio is intended to support aural cues that may accompany text.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R290" type="sreq">
+<head>Markup Format</head>
+<req>
+<p>The TT AF shall support the use of both <bibref ref="xml10"/> and
+<bibref ref="xml11"/> as serialized forms of a TT AF XML information set.</p>
+<note role="explanation">
+<p>See <bibref ref="infoset"/> for further information on an <emph>XML
+information set</emph>.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R291" type="sreq">
+<head>Markup Format and Unicode Interaction</head>
+<req>
+<p>The TT AF shall require or recommend adherence to the practices
+recommended by <bibref ref="uxml"/>.</p>
+</req>
+</ritem>
+<ritem id="R292" type="sreq">
+<head>Extrinsic Resource References</head>
+<req>
+<p>The TT AF shall support the use of <bibref ref="xlink"/> for the purpose of
+referencing external resources.</p>
+</req>
+</ritem>
+<ritem id="R293" type="dreq">
+<head>Schema Validity Specification</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner that the normative validity of
+markup content be specified in terms of either or both
+<bibref ref="rng"/> and <bibref ref="xsd-1"/> in combination with <bibref ref="xsd-2"/>.</p>
+</req>
+</ritem>
+<!-- end of content requirements -->
+</rlist>
+</div2>
+<div2 id="styling">
+<head>Styling</head>
+<!-- styling requirements list -->
+<rlist id="R3xx">
+<ritem id="R300" type="freq">
+<head>Inline Styling</head>
+<req>
+<p>The TT AF shall be capable of inline styling, where inline
+styling means the inclusion of stylistic presentation information in a TT AF
+document instance.</p>
+</req>
+</ritem>
+<ritem id="R301" type="freq">
+<head>Inline Styling Form</head>
+<req>
+<p>The TT AF shall be capable of specifying inline styling by means of (1) distinct
+attributes, (2) a generic attribute, e.g., <code>style</code>, and (3) one or more
+inline stylesheets.</p>
+</req>
+</ritem>
+<ritem id="R302" type="freq">
+<head>Out-of-Line Styling</head>
+<req>
+<p>The TT AF shall be capable of out-of-line styling, where out-of-line styling
+means the association of stylistic presentation information with TT AF content
+via some mechanism external to a TT AF document instance.</p>
+</req>
+</ritem>
+<ritem id="R303" type="freq">
+<head>Out-Of-Line Styling Form</head>
+<req>
+<p>The TT AF shall be capable of specifying out-of-line styling by means of one or
+more external stylesheets.</p>
+</req>
+</ritem>
+<ritem id="R304" type="freq">
+<head>Styling Prioritization</head>
+<req>
+<p>The TT AF shall be capable of associating priorities with stylistic presentation
+information in order to permit the resolution of multiple style specifications that
+apply to the same content.</p>
+</req>
+</ritem>
+<ritem id="R305" type="freq">
+<head>Style Parameters – Aural</head>
+<req>
+<p>The TT AF shall be capable of associating the following aural style
+parameters with timed text content:</p>
+<ulist>
+<item>
+<p>azimuth</p>
+</item>
+<item>
+<p>cue before, during, after</p>
+</item>
+<item>
+<p>elevation</p>
+</item>
+<item>
+<p>pause before, after</p>
+</item>
+<item>
+<p>pitch</p>
+</item>
+<item>
+<p>pitch range</p>
+</item>
+<item>
+<p>richness</p>
+</item>
+<item>
+<p>speaking mode</p>
+</item>
+<item>
+<p>speech rate</p>
+</item>
+<item>
+<p>stress</p>
+</item>
+<item>
+<p>voice family</p>
+</item>
+<item>
+<p>volume</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>For further information on these style parameters, see <bibref ref="xsl"/>,
+Section 7.6, <emph>Common Aural Properties</emph> and <bibref ref="css2"/>.</p>
+</note>
+<note role="explanation">
+<p>For further information on the <emph>speaking mode</emph> aural style parameter,
+see discussion of <code>speak</code>, <code>speak-numeral</code>, and
+<code>speak-punctuation</code> properties described in
+<bibref ref="xsl"/>, Section 7.6.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R306" type="freq">
+<head>Style Parameters – Visual</head>
+<req>
+<p>The TT AF shall be capable of associating the following visual style
+parameters with timed text content:</p>
+<ulist>
+<item>
+<p>absolute position</p>
+</item>
+<item>
+<p>background color</p>
+</item>
+<item>
+<p>baseline alignment point</p>
+</item>
+<item>
+<p>baseline alignment</p>
+</item>
+<item>
+<p>baseline dominance</p>
+</item>
+<item>
+<p>baseline shift</p>
+</item>
+<item>
+<p>bidirectional treatment</p>
+</item>
+<item>
+<p>block progression dimension</p>
+</item>
+<item>
+<p>block scroll amount</p>
+</item>
+<item>
+<p>border before, after, start, end</p>
+</item>
+<item>
+<p>break before, after</p>
+</item>
+<item>
+<p>clear</p>
+</item>
+<item>
+<p>color</p>
+</item>
+<item>
+<p>color profile name</p>
+</item>
+<item>
+<p>display none, block, inline</p>
+</item>
+<item>
+<p>display alignment</p>
+</item>
+<item>
+<p>float</p>
+</item>
+<item>
+<p>font family</p>
+</item>
+<item>
+<p>font size</p>
+</item>
+<item>
+<p>font style</p>
+</item>
+<item>
+<p>font weight</p>
+</item>
+<item>
+<p>height</p>
+</item>
+<item>
+<p>indent start, end</p>
+</item>
+<item>
+<p>inline progression dimension</p>
+</item>
+<item>
+<p>inline scroll amount</p>
+</item>
+<item>
+<p>intrusion-displace</p>
+</item>
+<item>
+<p>line feed treatment</p>
+</item>
+<item>
+<p>line height</p>
+</item>
+<item>
+<p>line stacking strategy</p>
+</item>
+<item>
+<p>line wrapping option</p>
+</item>
+<item>
+<p>opacity</p>
+</item>
+<item>
+<p>origin (top, left)</p>
+</item>
+<item>
+<p>overflow</p>
+</item>
+<item>
+<p>padding before, after, start, end</p>
+</item>
+<item>
+<p>reference orientation</p>
+</item>
+<item>
+<p>relative position</p>
+</item>
+<item>
+<p>space before, after, start, end</p>
+</item>
+<item>
+<p>text alignment</p>
+</item>
+<item>
+<p>text altitude (ascent)</p>
+</item>
+<item>
+<p>text decoration</p>
+</item>
+<item>
+<p>text depth (descent)</p>
+</item>
+<item>
+<p>text indent (first line)</p>
+</item>
+<item>
+<p>text shadow</p>
+</item>
+<item>
+<p>visibility</p>
+</item>
+<item>
+<p>white space collapse</p>
+</item>
+<item>
+<p>white space treatment</p>
+</item>
+<item>
+<p>width</p>
+</item>
+<item>
+<p>writing mode</p>
+</item>
+<item>
+<p>z-index</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>For further information on these style parameters, see <bibref ref="xsl"/>,
+Section 7, <emph>Formatting Properties</emph> and <bibref ref="css2"/>.</p>
+</note>
+<note role="explanation">
+<p>The style parameters <emph>break before</emph> and <emph>break after</emph> are
+intended to model the like named style properties defined by <bibref ref="xsl"/>,
+Section 7.19, <emph>Keeps and Breaks Properties</emph>, except that the possible values of these
+parameters are expected to be restricted to <code>auto</code>, <code>line</code>, and <code>inherit</code>.
+The new value <code>line</code> is intended to denote a line area context in order to express
+that a line break should precede or follow the element associated with this parameter.</p>
+<p>Unlike XSL, these parameters apply only to inline vocabulary, and not block vocabulary.</p>
+</note>
+<note role="explanation">
+<p>A <emph>style parameter</emph> is intended to convey the notion of any type
+of style specification or declaration whether it is expressed as an attribute or a property.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R307" type="freq">
+<head>Style Parameters – Visual – Temporal Fill Mode</head>
+<req>
+<p>The TT AF may be capable of associating the following visual style
+parameters that pertain to temporal filling (flowing) of timed text content:</p>
+<ulist>
+<item>
+<p>temporal fill mode</p>
+</item>
+<item>
+<p>temporal fill direction</p>
+</item>
+<item>
+<p>temporal block clear mode</p>
+</item>
+<item>
+<p>temporal fill interval</p>
+</item>
+<item>
+<p>temporal inter-fill interval</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>These parameters are intended to permit the expression of authorial intent with respect
+to the temporal filling (stacking) of glyph areas within a line area and line areas within a block area.</p>
+<p>The <emph>temporal fill mode</emph> parameter permits specifying the granularity of temporal
+filling, e.g., line, word, character. The <emph>temporal fill direction</emph> parameter permits specifying
+the direction of fill (stacking) independently from the writing mode. The <emph>temporal block clear
+mode</emph> parameter permits specifying whether the containing block is cleared or is automatically
+scrolled, and by what extent, when the block is filled. The <emph>temporal fill interval</emph>
+parameter permits specifying the interval that a filled area should remain static before processing the next fill.
+The <emph>temporal inter-fill interval</emph> parameter permits specifying the interval
+between the end of a prior fill interval and the start of a subsequent fill interval.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R390" type="sreq">
+<head>Style Parameter Symmetry</head>
+<req>
+<p>The TT AF shall be defined in such a manner that if a stylistic presentation
+parameter may be specified as a style property, then that parameter shall also be
+specifiable as a style attribute, and vice-versa.</p>
+<note role="explanation">
+<p>In this context, a style <emph>attribute</emph> refers to an attribute expressed
+in a markup language (e.g., an XML attribute), while a style <emph>property</emph>
+refers to a property expressed in a style language (e.g., a CSS property).</p>
+</note>
+</req>
+</ritem>
+<ritem id="R391" type="dreq">
+<head>Style Parameter Definitions</head>
+<req>
+<p>The TT AF shall be defined in such a manner that if there is a conflict
+when adopting the name or value semantics of a style parameter specification,
+then the following order shall hold for resolving such a conflict:</p>
+<olist>
+<item>
+<p>XSL FO</p>
+</item>
+<item>
+<p>SVG</p>
+</item>
+<item>
+<p>SMIL</p>
+</item>
+<item>
+<p>CSS Level 2</p>
+</item>
+<item>
+<p>CSS Level 3</p>
+</item>
+</olist>
+<p/>
+</req>
+</ritem>
+<ritem id="R392" type="dreq">
+<head>Style Element Type Shorthand Equivalence</head>
+<req>
+<p>The TT AF shall be defined in such a manner that to the extent that
+stylistic oriented markup element types are defined or adopted, then such element
+types shall be defined as shorthand equivalents of non-stylistic oriented
+element types in combination with specific style parameters.</p>
+</req>
+</ritem>
+<!-- end of styling requirements -->
+</rlist>
+</div2>
+<div2 id="timing">
+<head>Timing</head>
+<!-- timing requirements list -->
+<rlist id="R4xx">
+<ritem id="R401" type="freq">
+<head>Inline Timing</head>
+<req>
+<p>The TT AF shall be capable of inline timing, where inline
+timing means the inclusion of temporal presentation markup in a TT AF
+document instance.</p>
+</req>
+</ritem>
+<ritem id="R402" type="freq">
+<head>Out-of-Line Timing</head>
+<req>
+<p>The TT AF shall be capable of out-of-line timing, where out-of-line timing
+means the association of temporal presentation information with TT AF content
+via some mechanism external to a TT AF document instance.</p>
+</req>
+</ritem>
+<ritem id="R403" type="freq">
+<head>Synchronization Parameters</head>
+<req>
+<p>The TT AF shall be capable of expressing the following
+synchronization parameters in terms of any legal combination that
+expresses a possibly repeated or restarted,
+single, simple interval:</p>
+<ulist>
+<item><p>begin</p></item>
+<item><p>dur</p></item>
+<item><p>end</p></item>
+<item><p>endsync</p></item>
+<item><p>fill</p></item>
+<item><p>fillDefault</p></item>
+<item><p>repeatCount</p></item>
+<item><p>repeatDur</p></item>
+<item><p>restart</p></item>
+<item><p>restartDefault</p></item>
+</ulist>
+<note role="explanation">
+<p>For further information on these synchronization parameters, see <bibref ref="smil20"/>,
+Section 10, <emph>The SMIL 2.0 Timing and Synchronization Module</emph>.</p>
+</note>
+<note role="non-requirement">
+<p>It is not required that the TT AF support the specification of multiple
+simple intervals, i.e., multiple start, duration, or begin values.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R404" type="freq">
+<head>Synchronization Parameter Value Space Semantics</head>
+<req>
+<p>The TT AF shall be capable of expressing the following synchronization parameter
+value space semantics:</p>
+<ulist>
+<item>
+<p><emph>Offset Values</emph> – a clock offset from an implied or
+explicit synchronization timebase;</p>
+</item>
+<item>
+<p><emph>Event Values</emph> – a clock offset from a named event associated
+with an implied or explicit element node, including, at a minimum, named events
+that indicate the beginning or end of a timed element's active interval;</p>
+</item>
+<item>
+<p><emph>Access Key Values</emph> – a clock offset from a specific key press
+event;</p>
+</item>
+<item>
+<p><emph>Media Marker Values</emph> – a clock offset from a media marker,
+including, at a minimum, a media marker that denotes a SMPTE time code;</p>
+</item>
+<item>
+<p><emph>Wallclock Values</emph> – a clock offset from an absolute
+wallclock time in an implied or explicit time zone.</p>
+</item>
+</ulist>
+<note role="non-requirement">
+<p>It is not required that the TT AF support the specification of negative
+offset values.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R405" type="freq">
+<head>Time Containment Semantics</head>
+<req>
+<p>The TT AF shall be capable of expressing sequential, parallel, and
+exclusive time containment semantics of consituent timed text content.</p>
+<note role="explanation">
+<p>For further information on these time containment semantics, see <bibref ref="smil20"/>,
+Section 10, <emph>The SMIL 2.0 Timing and Syncrhonization Module</emph>.</p>
+</note>
+</req>
+</ritem>
+<!-- end of timing requirements -->
+</rlist>
+</div2>
+<div2 id="animation">
+<head>Animation</head>
+<rlist id="R5XX">
+<ritem id="R500" type="freq">
+<head>Animation Modes</head>
+<req>
+<p>The TT AF shall be capable of expressing animation according to the following modes:</p>
+<ulist>
+<item>
+<p>continuous – linear</p>
+</item>
+<item>
+<p>continuous – non-linear</p>
+</item>
+<item>
+<p>discrete</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>By <emph>animation</emph> is meant the ability to alter some parameter or value over
+time.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R501" type="freq">
+<head>Scroll Animation</head>
+<req>
+<p>The TT AF shall be capable of expressing animated scrolling of content, both
+in block and inline progression directions, with independent expression of
+scroll in, scroll out, and scroll repetition.</p>
+</req>
+</ritem>
+<ritem id="R502" type="freq">
+<head>Highlight Animation</head>
+<req>
+<p>The TT AF shall be capable of expressing animated highlighting of content, with
+granularity at the level of individual characters or glyphs.</p>
+</req>
+</ritem>
+<ritem id="R503" type="freq">
+<head>Fade Transition Animation</head>
+<req>
+<p>The TT AF shall be capable of expressing animated fade transitions of content, with
+granularity at the level of individual regions or areas.</p>
+<note role="explanation">
+<p>See <specref ref="R210"/> and <specref ref="R214"/> for information on <emph>region</emph>
+and <emph>area</emph> vocabulary items, respectively.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R504" type="freq">
+<head>Animated Style Parameters – Aural</head>
+<req>
+<p>The TT AF shall be capable of animating the following aural style parameters:</p>
+<ulist>
+<item>
+<p>azimuth</p>
+</item>
+<item>
+<p>elevation</p>
+</item>
+<item>
+<p>speaking mode</p>
+</item>
+<item>
+<p>speech rate</p>
+</item>
+<item>
+<p>volume</p>
+</item>
+</ulist>
+<p/>
+</req>
+</ritem>
+<ritem id="R505" type="freq">
+<head>Animated Style Parameters – Visual</head>
+<req>
+<p>The TT AF shall be capable of animating the following visual style parameters:</p>
+<ulist>
+<item>
+<p>background color</p>
+</item>
+<item>
+<p>block scroll amount</p>
+</item>
+<item>
+<p>border color</p>
+</item>
+<item>
+<p>color</p>
+</item>
+<item>
+<p>display</p>
+</item>
+<item>
+<p>inline scroll amount</p>
+</item>
+<item>
+<p>opacity</p>
+</item>
+<item>
+<p>origin</p>
+</item>
+<item>
+<p>visibility</p>
+</item>
+</ulist>
+<note role="explanation">
+<p>It is possible to express fade-in and fade-out transitions by means of
+animating the <emph>opacity</emph> style parameter.</p>
+</note>
+<note role="explanation">
+<p>Animation of the <emph>display</emph> style parameter may cause reflow (reformatting)
+of content in a user agent at each animation step.</p>
+</note>
+</req>
+</ritem>
+<ritem id="N506" type="nreq">
+<head>Animated Content</head>
+<req>
+<p>The TT AF is not required to support the animation of content.</p>
+<note role="explanation">
+<p>By <emph>animation of content</emph> is meant the dynamic addition or changing
+of element content by means of animation functionality, e.g., replacing the text
+content of an element.</p>
+</note>
+</req>
+</ritem>
+</rlist>
+</div2>
+<div2 id="metadata">
+<head>Metadata</head>
+<rlist id="R6XX">
+<ritem id="R600" type="freq">
+<head>Metadata Item Association</head>
+<req>
+<p>The TT AF shall be capable of associating arbitrary metadata, expressed as
+<emph>metadata items</emph>, with (1) a TT AF document instance and (2) any
+element contained within a TT AF document instance.</p>
+<note role="non-requirement">
+<p>It is not required that metadata be able to be associated with an element's
+attributes or with any other child of an element other than a child that is
+characterized as an element itself.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R601" type="freq">
+<head>Metadata Item Constituents</head>
+<req>
+<p>The TT AF shall be capable of expressing the following constituents of individual
+metadata items:</p>
+<ulist>
+<item>
+<p>name</p>
+</item>
+<item>
+<p>value type</p>
+</item>
+<item>
+<p>value</p>
+</item>
+</ulist>
+<p/>
+</req>
+</ritem>
+<ritem id="R602" type="freq">
+<head>Metadata Item Value Representation</head>
+<req>
+<p>The TT AF shall give preference to the representation of metadata item values
+as element content as opposed to attribute content.</p>
+<note role="explanation">
+<p>By <emph>element content</emph> is meant those children of
+an element information item that are characterized as elements or as character data.
+By <emph>attribute content</emph> is meant the normalized values of the
+attributes of an element information item.</p>
+</note>
+</req>
+</ritem>
+<ritem id="R603" type="freq">
+<head>Metadata Item Extensibility</head>
+<req>
+<p>The TT AF shall be capable of expressing metadata items whose names, value
+types, and semantics are defined externally to the TT AF specification(s).</p>
+</req>
+</ritem>
+<ritem id="R604" type="freq">
+<head>Metadata Item Validation</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner as to permit
+and potentially require the ability to validate metadata.</p>
+</req>
+</ritem>
+<ritem id="R690" type="sreq">
+<head>Dublin Core Preference</head>
+<req>
+<p>The TT AF specification(s) shall be defined in such a manner as to give
+preference to those metadata items defined by <bibref ref="dcmes"/> in
+case that a conflict exists with another candidate metadata representation.</p>
+</req>
+</ritem>
+</rlist>
+</div2>
+</div1>
+</body>
+<back>
+<div1 id="references">
+<head>References</head>
+<blist>
+<bibl id="ascii" key="ASCII (ANSI X3.4)">
+American National Standards Institute.
+<titleref>ANSI X3.4: Coded character set – 7-bit American national code for
+information interchange</titleref>. New York, 1986.
+</bibl>
+<bibl id="atag10" key="ATAG 1.0">Jutta Treviranus, Charles McCathieNevile, Ian Jacobs, Jan Richards, Eds.,
+<titleref href="http://www.w3.org/TR/ATAG10/">Authoring Tool Accessibility Guidelines 1.0</titleref>, W3C Recommendation, 3 February 2000. (See
+<xspecref href="http://www.w3.org/TR/ATAG10/">http://www.w3.org/TR/ATAG10/</xspecref>.)
+</bibl>
+<bibl id="dcmes" key="DCMES 1.1">Dublin Core Metadata Initiative,
+<titleref href="http://dublincore.org/documents/dces/">Dublin Core Metadata Element Set, Version 1.1: Reference Description</titleref>. (See
+<xspecref href="http://dublincore.org/documents/dces/">http://dublincore.org/documents/dces/</xspecref>.)
+</bibl>
+<bibl id="rng" key="RELAX NG">James Clark and Makato Murata, Eds.,
+<titleref href="http://www.relaxng.org/spec-20011203.html">RELAX NG Specification</titleref>, OASIS Committee Specification, 3 December 2001. (See
+<xspecref href="http://www.relaxng.org/spec-20011203.html">http://www.relaxng.org/spec-20011203.html</xspecref>.)
+</bibl>
+<bibl id="unicode32" key="Unicode 3.2">The Unicode Consortium,
+<titleref>The Unicode Standard, Version 3.2.0</titleref> is defined by <titleref>The Unicode Standard, Version 3.0</titleref>
+(Reading, MA, Addison-Wesley, 2000. ISBN 0-201-61633-5), as amended by the <titleref>Unicode Standard Annex #27: Unicode 3.1</titleref>
+(see <loc href="http://www.unicode.org/reports/tr27/">http://www.unicode.org/reports/tr27</loc>)
+and by the <titleref>Unicode Standard Annex #28: Unicode 3.2</titleref>
+(see <loc href="http://www.unicode.org/reports/tr28/">http://www.unicode.org/reports/tr28</loc>).
+</bibl>
+<bibl id="uxml" key="Unicode in XML">Martin J. Dürst and
+Asums Freytag,
+<titleref href="http://www.w3.org/TR/unicode-xml/">Unicode in XML and other Markup Languages</titleref>,
+W3C Note. (See
+<xspecref href="http://www.w3.org/TR/unicode-xml/">http://www.w3.org/TR/unicode-xml/</xspecref>.)
+</bibl>
+<bibl id="smilaccess" key="WAI SMIL AG">Marja-Riitta Koivunen,
+<titleref href="http://www.w3.org/TR/SMIL-access/">Accessibility Features of SMIL</titleref>, W3C Note, 21 September 1999. (See
+<xspecref href="http://www.w3.org/TR/SMIL-access/">http://www.w3.org/TR/SMIL-access/</xspecref>.)
+</bibl>
+<bibl id="xmlaccess" key="WAI XML AG">Daniel Dardailler, Sean B. Palmer, Charles McCathieNevile, Eds.,
+<titleref href="http://www.w3.org/TR/xag.html">XML Accessibility Guidelines</titleref>, W3C Working Draft, 3 October 2002. (See
+<xspecref href="http://www.w3.org/TR/xag.html">http://www.w3.org/TR/xag.html</xspecref>.)
+</bibl>
+<bibl id="xlink" key="XLink">Steve DeRose, Eve Maler, David Orchard, Eds.,
+<titleref href="http://www.w3.org/TR/xlink/">XML Linking Language (XLink) Version 1.0</titleref>,
+W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/xlink/">http://www.w3.org/TR/xlink/</xspecref>.)
+</bibl>
+<bibl id="xml10" key="XML 1.0">Tim Bray, Jean Paoli, C. M.
+Sperberg-McQueen, Eve Maler, Eds.,
+<titleref href="http://www.w3.org/TR/REC-xml">Extensible Markup Language (XML)
+1.0 (Second Edition)</titleref>, W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</xspecref>.)
+</bibl>
+<bibl id="xml11" key="XML 1.1">John Cowan,
+<titleref href="http://www.w3.org/TR/2002/CR-xml11-20021015/">Extensible Markup Language (XML)
+1.1</titleref>, W3C Candidate Recommendation, 15 October 2002. (See
+<xspecref href="http://www.w3.org/TR/2002/CR-xml11-20021015/">http://www.w3.org/TR/2002/CR-xml11-20021015/</xspecref>.)
+</bibl>
+<bibl id="infoset" key="XML InfoSet">John Cowan and Richard Tobin,
+<titleref href="http://www.w3.org/TR/xml-infoset/">XML Information Set</titleref>,
+W3C Recommendation, 24 Oct 2001. (See
+<xspecref href="http://www.w3.org/TR/xml-infoset/">http://www.w3.org/TR/xml-infoset/</xspecref>.)
+</bibl>
+<bibl id="xsd-1" key="XML Schema Part 1">Henry S. Thompson, David Beech,
+Murray Maloney, Noah Mendelsohn, Eds.,
+<titleref href="http://www.w3.org/TR/xmlschema-1/">XML Schema Part 1: Structures</titleref>,
+W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1/</xspecref>.)
+</bibl>
+<bibl id="xsd-2" key="XML Schema Part 2">Paul Biron and Ashok Malhotra,
+<titleref href="http://www.w3.org/TR/xmlschema-2/">XML Schema Part 2: Datatypes</titleref>,
+W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</xspecref>.)
+</bibl>
+<bibl id="xmlspec" key="XML Spec">Norman Walsh,
+<titleref href="http://www.w3.org/2002/xmlspec/">The XML Spec Schema and Stylesheets</titleref>,
+W3C. (See <loc href="http://www.w3.org/2002/xmlspec/">http://www.w3.org/2002/xmlspec/</loc>).
+</bibl>
+</blist>
+</div1>
+<inform-div1 id="other-references">
+<head>Other References</head>
+<blist>
+<bibl id="threegpp" key="3GPP">3rd Generation Partnership Project,
+<titleref href="http://www.3gpp.org/ftp/Specs/html-info/26234.htm">Technical Specification
+Group Services and System Aspects; Transparent End-To-End Packet-Switched Streaming Service (PSS);
+Protocols and Codecs</titleref>, 3GPP Organizational Partners. (See
+<xspecref href="http://www.3gpp.org/ftp/Specs/html-info/26234.htm">http://www.3gpp.org/ftp/Specs/html-info/26234.htm</xspecref>.)
+</bibl>
+<bibl id="charmod" key="CharMod">Martin J. Dürst et al., Eds.,
+<titleref href="http://www.w3.org/TR/charmod/">Character Model for the World Wide Web 1.0: Fundamentals</titleref>,
+W3C Recommendation, 15 February 2005. (See
+<xspecref href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</xspecref>.)
+</bibl>
+<bibl id="css2" key="CSS Level 2">Bert Bos, Håkon Wium Lie, Chris Lilley,
+Ian Jacobs, Eds.,
+<titleref href="http://www.w3.org/TR/REC-CSS2/">Cascading Style Sheets, Level 2</titleref>,
+W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/REC-CSS2/">http://www.w3.org/TR/REC-CSS2/</xspecref>.)
+</bibl>
+<bibl id="dcmi-terms" key="DCMI Terms">Dublin Core Metadata Initiative,
+<titleref href="http://dublincore.org/documents/2003/03/04/dcmi-terms/">DCMI Metadata Terms</titleref>. (See
+<xspecref href="http://dublincore.org/documents/2003/03/04/dcmi-terms/">http://dublincore.org/documents/2003/03/04/dcmi-terms/</xspecref>.)
+</bibl>
+<bibl id="eia608b" key="EIA-608B">Electronics Industry Alliance (EIA),
+<titleref href="http://www.ce.org/standards/standard_details.asp?id=270">Line 21 Data Services</titleref>. (See
+<xspecref href="http://www.ce.org/standards/standard_details.asp?id=270">http://www.ce.org/standards/standard_details.asp?id=270</xspecref>.)
+</bibl>
+<bibl id="eia708b" key="EIA-708B">Electronics Industry Alliance (EIA),
+<titleref href="http://www.ce.org/standards/standard_details.asp?id=249">Digital Television (DTV) Closed Captioning</titleref>. (See
+<xspecref href="http://www.ce.org/standards/standard_details.asp?id=249">http://www.ce.org/standards/standard_details.asp?id=249</xspecref>.)
+</bibl>
+<bibl id="en300706" key="EN 300 706">European Telecommunications Standards Institute,
+<titleref href="http://webapp.etsi.org/action%5COP/OP20030411/en_300706v010201o.pdf">Enhanced
+Teletext Specification</titleref>. (See
+<xspecref href="http://webapp.etsi.org/action%5COP/OP20030411/en_300706v010201o.pdf">http://webapp.etsi.org/action%5COP/OP20030411/en_300706v010201o.pdf</xspecref>.)
+</bibl>
+<bibl id="en300743" key="EN 300 743">European Telecommunications Standards Institute,
+<titleref href="http://webapp.etsi.org/action%5COP/OP20021004/en_300743v010201o.pdf">Digital Video
+Broadcasting (DVB); Subtitling Systems</titleref>. (See
+<xspecref href="http://webapp.etsi.org/action%5COP/OP20021004/en_300743v010201o.pdf">http://webapp.etsi.org/action%5COP/OP20021004/en_300743v010201o.pdf</xspecref>.)
+</bibl>
+<bibl id="qtext" key="QText">Apple Computers, Inc.,
+<titleref href="http://www.apple.com/quicktime/tools_tips/tutorials/texttracks.html">QuickTime Text</titleref>.
+(See <loc href="http://www.apple.com/quicktime/tools_tips/tutorials/texttracks.html">http://www.apple.com/quicktime/tools_tips/tutorials/texttracks.html</loc>).
+</bibl>
+<bibl id="realtext" key="RealText">RealNetworks, Inc.,
+<titleref href="http://www.realnetworks.com/resources/howto/realtext/index.html">RealText Markup</titleref>.
+(See <loc href="http://www.realnetworks.com/resources/howto/realtext/index.html">http://www.realnetworks.com/resources/howto/realtext/index.html</loc>).
+</bibl>
+<bibl id="sami" key="SAMI">Microsoft Corporation,
+<titleref href="http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_samiarticle.asp">SAMI –
+Synchronized Accessible Media Interchange for Windows Media Player</titleref>. (See
+<xspecref href="http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_samiarticle.asp">http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_samiarticle.asp</xspecref>.)
+</bibl>
+<bibl id="smil20" key="SMIL 2.0">Jeff Ayars, Dick Bulterman, et al., Eds.,
+<titleref href="http://www.w3.org/TR/smil20/">Synchronized Multimedia Integration Language (SMIL 2.0)</titleref>,
+W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/smil20/">http://www.w3.org/TR/smil20/</xspecref>.)
+</bibl>
+<bibl id="tei" key="TEI">C. M. Sperberg-McQueen and Lou Burnard, Eds.,
+<titleref href="http://www.tei-c.org/Guidelines2/index.html">TEI P4: Guidelines for Electronic Text Encoding and Interchange</titleref>,
+Text Encoding Initiative Consortium, Oxford, 2002.
+(See <xspecref href="http://www.tei-c.org/Guidelines2/index.html">http://www.tei-c.org/Guidelines2/index.html</xspecref>.)
+</bibl>
+<bibl id="xhtml1" key="XHTML 1.0">Steven Pemberton, et al., Eds.,
+<titleref href="http://www.w3.org/TR/xhtml1/">XHTML™ 1.0 Extensible Hypertext
+Markup Language (Second Edition)</titleref>, W3C Recommendation.
+(See <xspecref href="http://www.w3.org/TR/xhtml1/">http://www.w3.org/TR/xhtml1/</xspecref>.)
+</bibl>
+<bibl id="xsl" key="XSL 1.0">Sharon Adler, Anders Berglund, et al., Eds.,
+<titleref href="http://www.w3.org/TR/xsl/">Extensible Stylesheet Language, Version 1.0</titleref>,
+W3C Recommendation. (See
+<xspecref href="http://www.w3.org/TR/xsl/">http://www.w3.org/TR/xsl/</xspecref>.)
+</bibl>
+</blist>
+</inform-div1>
+<inform-div1 id="acknowledgements">
+<head>Acknowledgments</head>
+<p>The editor acknowledges the members of the Timed Text Working
+Group, the members of other W3C Working Groups, and industry experts
+in other forums who have contributed directly or indirectly to the
+process or content of creating this document.</p>
+<p>The current and former members of the Timed Text Working Group are:
+Glenn Adams, Extensible Formatting Systems, Inc. (chair);
+Kees Blom, CWI;
+Brad Botkin, WGBH;
+Dick Bulterman, CWI;
+Michael Dolan, Invited Expert;
+Gerry Fields, WGBH;
+Geoff Freed, WGBH;
+Markus Gylling, DAISY Consortium;
+Markku Hakkinen, Japanese Society for Rehabilitation of Persons with Disabilities;
+Sean Hayes, Microsoft;
+Erik Hodge, RealNetworks;
+Masahiko Kaneko, Microsoft;
+George Kerscher, DAISY Consortium;
+David Kirby, BBC;
+Thierry Michel, W3C (team contact);
+Patrick Schmitz, Invited Expert;
+and, Dave Singer, Apple Computer.
+</p>
+<p>The Timed Text Working Group has benefited in its work from the
+participation and contributions of a number of people not currently
+members of the Working Group, including in particular those named
+below. Affiliations given are those current at the time of their work
+with the WG.</p>
+<p>
+John Birch, Screen Subtitling Systems;
+Bert Bos, W3C (chair, CSS WG);
+Martin Dürst, W3C (leader, I18N Activity);
+Al Gilman (chair, WAI Protocol and Formats WG);
+Philipp Hoschka, W3C (leader, Interaction Domain);
+Chris Lilley, W3C (chair, SVG WG).
+</p>
+</inform-div1>
+</back>
+</spec>
Binary file old/req/archives/NOTE-ttaf1-req-20060427.zip has changed
Binary file old/req/images/model.png has changed
Binary file old/req/images/model.vsd has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/ttaf1-req.spp Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Project>
+ <Folder FolderName="XML Files" ExtStr="xml;cml;math;mtx;rdf;smil;svg;wml" XSL_XMLUseSet="Yes" XSL_XMLUseFile=".\ttaf1-req.xsl">
+ <File FilePath=".\Overview.xml" HomeFolder="Yes"/>
+ </Folder>
+ <Folder FolderName="XSL Files" ExtStr="xsl;xslt">
+ <File FilePath=".\ttaf1-req.xsl" HomeFolder="Yes"/>
+ <File FilePath=".\xmlspec.xsl" HomeFolder="Yes"/>
+ </Folder>
+ <Folder FolderName="HTML Files" ExtStr="html;htm;xhtml;asp"/>
+ <Folder FolderName="DTD/Schemas" ExtStr="dtd;dcd;xdr;biz;xsd">
+ <File FilePath=".\xmlspec-tt-f.dtd" HomeFolder="Yes"/>
+ <File FilePath=".\xmlspec-tt.dtd" HomeFolder="Yes"/>
+ </Folder>
+ <Folder FolderName="Entities" ExtStr="ent">
+ <File FilePath=".\xmlspec-local.mod" HomeFolder="Yes"/>
+ <File FilePath=".\xmlspec-post-entity.mod" HomeFolder="Yes"/>
+ <File FilePath=".\xmlspec-pre-entity.mod" HomeFolder="Yes"/>
+ </Folder>
+</Project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/ttaf1-req.xsl Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:transform exclude-result-prefixes="saxon" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon">
+<xsl:import href="xmlspec.xsl"></xsl:import>
+<xsl:param name="show.ednotes">1</xsl:param>
+<xsl:param name="show.diff.markup">1</xsl:param>
+<xsl:variable name="output.mode" select="'xhtml'"/>
+<xsl:param name="additional.css">
+<xsl:text>
+div.issue { border: 2px solid black; background-color: #ffff66; padding: 0em 1em; margin: 0em 0em }
+table.ednote { border-collapse: collapse; border: 2px solid black; width: 80% }
+table.ednote td { background-color: #ff9966; border: 2px solid black }
+table.acronyms td.label { width: 15% }
+table.acronyms td.def { width: 65% }
+table.graphic { border: 0px none black; width: 100%; border-collapse: collapse }
+table.graphic caption { font-weight: bold; text-align: center; padding-bottom: 0.5em }
+table.graphic td { border: 0px none black; text-align: center }
+.tbd { background-color: #ffff33; border: 2px solid black; width: 85% }
+.strong { font-weight: bold }
+.diff-add { color: red; }
+.diff-del { color: red; text-decoration: line-through; }
+.diff-chg { background-color: #99FF99; }
+.diff-off {}
+</xsl:text>
+</xsl:param>
+<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+<!-- diff support -->
+<xsl:template name="diff-markup">
+ <xsl:param name="diff">off</xsl:param>
+ <xsl:choose>
+ <xsl:when test="self::ritem">
+ <xsl:apply-templates select="." mode="diff"/>
+ </xsl:when>
+ <xsl:when test="self::ulist or self::p or self::bibl">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::phrase">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:when test="ancestor::p and not(self::p)">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::affiliation">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::name">
+ <span xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diff}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='chg']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">chg</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='add']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">add</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='del']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">del</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- suppress deleted markup -->
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="*[@diff='off']">
+ <xsl:choose>
+ <xsl:when test="$show.diff.markup != 0">
+ <xsl:call-template name="diff-markup">
+ <xsl:with-param name="diff">off</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- spec: the specification itself -->
+<xsl:template match="spec">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="header/langusage/language">
+ <xsl:attribute name="xml:lang">
+ <xsl:value-of select="header/langusage/language/@id"/>
+ </xsl:attribute>
+ <xsl:attribute name="lang">
+ <xsl:value-of select="header/langusage/language/@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <head>
+ <xsl:if test="$output.mode='xhtml'">
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
+ </xsl:if>
+ <title>
+ <xsl:apply-templates select="header/title"/>
+ <xsl:if test="header/version">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="header/version"/>
+ </xsl:if>
+ <xsl:if test="$additional.title != ''">
+ <xsl:text> -- </xsl:text>
+ <xsl:value-of select="$additional.title"/>
+ </xsl:if>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <xsl:text> -- (Editors' copy)</xsl:text>
+ </xsl:if>
+ </title>
+ <xsl:call-template name="css"/>
+ </head>
+ <body>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <xsl:value-of select="//revisiondesc/p[1]"/>
+ <div id="revisions"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:if test="//footnote[not(ancestor::table)]">
+ <hr/>
+ <div class="endnotes">
+ <xsl:text></xsl:text>
+ <h3>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'endnotes'"/>
+ </xsl:call-template>
+ <xsl:text>End Notes</xsl:text>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="//footnote[not(ancestor::table)]" mode="notes"/>
+ </dl>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+</xsl:template>
+<!-- status: the status of the spec -->
+<xsl:template match="status">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'status'"/>
+ </xsl:call-template>
+ <xsl:text>Status of this Document</xsl:text>
+ </h2>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <p><strong>This document is an editor's copy that has no official standing.</strong></p>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+<!-- specref: reference to another part of the current specification -->
+<xsl:template match="specref">
+ <xsl:variable name="target" select="key('ids', @ref)[1]"/>
+ <xsl:choose>
+ <xsl:when test="local-name($target)='issue' or starts-with(local-name($target), 'div') or starts-with(local-name($target), 'inform-div') or local-name($target) = 'vcnote' or local-name($target) = 'prod' or local-name($target) = 'label' or local-name($target) = 'ritem' or local-name($target) = 'table'">
+ <xsl:apply-templates select="$target" mode="specref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unsupported specref to </xsl:text>
+ <xsl:value-of select="local-name($target)"/>
+ <xsl:text> [</xsl:text>
+ <xsl:value-of select="@ref"/>
+ <xsl:text>] </xsl:text>
+ <xsl:text> (Contact stylesheet maintainer).</xsl:text>
+ </xsl:message>
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @ref)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>???</xsl:text>
+ </a>
+ </b>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- ednote: editors' note -->
+<xsl:template match="ednote">
+ <xsl:if test="$show.ednotes != 0">
+ <table xmlns="http://www.w3.org/1999/xhtml" border="1" class="ednote">
+ <xsl:attribute name="summary">
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="name"/>
+ </xsl:if>
+ </xsl:attribute>
+ <tr class="ednote-r1">
+ <td align="left" valign="top">
+ <b>
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="name"/>
+ </xsl:if>
+ </b>
+ </td>
+ <td align="right" valign="top">
+ <xsl:choose>
+ <xsl:when test="date">
+ <xsl:apply-templates select="date"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr class="ednote-r2">
+ <td colspan="2" align="left" valign="top">
+ <xsl:apply-templates select="edtext"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+</xsl:template>
+<!-- glist: glossary list -->
+<xsl:template match="glist">
+ <xsl:choose>
+ <xsl:when test="@role = 'acronyms'">
+ <table xmlns="http://www.w3.org/1999/xhtml" class="acronyms">
+ <xsl:for-each select="gitem">
+ <tr>
+ <xsl:apply-templates select="label" mode="acronym"/>
+ <xsl:apply-templates select="def" mode="acronym"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"></p></xsl:text>
+ </xsl:if>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </dl>
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"><p></xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- label: acronym mode -->
+<xsl:template mode="acronym" match="label">
+ <td xmlns="http://www.w3.org/1999/xhtml" class="label">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor"/>
+ <b><xsl:apply-templates/></b>
+ </td>
+</xsl:template>
+<!-- def: acronym mode -->
+<xsl:template mode="acronym" match="def">
+ <td xmlns="http://www.w3.org/1999/xhtml" class="def">
+ <xsl:apply-templates/>
+ </td>
+</xsl:template>
+<!-- loc: a Web location -->
+<xsl:template match="loc">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:if test="@role">
+ <xsl:attribute name="rel">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+<!-- rlist: requirement list -->
+<xsl:template match="rlist">
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+</xsl:template>
+<!-- ritem: requirement item -->
+<xsl:template match="ritem">
+ <xsl:variable name="this-req-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:value-of select="$this-req-id"/>
+ <xsl:text disable-output-escaping="yes"> &ndash; </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="req"/>
+ </dd>
+</xsl:template>
+<!-- ritem: requirement item; mode(diff) -->
+<xsl:template match="ritem" mode="diff">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <xsl:variable name="this-req-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$diffval='del' and $show.diff.markup = 0">
+ <!-- delete item -->
+ </xsl:when>
+ <xsl:otherwise>
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:value-of select="$this-req-id"/>
+ <xsl:text disable-output-escaping="yes"> &ndash; </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:apply-templates select="req"/>
+ </dd>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template match="ritem" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+</xsl:template>
+<!-- req: requirement body -->
+<xsl:template match="req">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="req">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+<!-- uselist: use case scenario list -->
+<xsl:template match="uselist">
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+</xsl:template>
+<!-- useitem: use case scenario item -->
+<xsl:template match="useitem">
+ <xsl:variable name="this-use-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:value-of select="$this-use-id"/>
+ <xsl:text disable-output-escaping="yes"> &ndash; </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="use"/>
+ </dd>
+</xsl:template>
+<xsl:template match="useitem" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+</xsl:template>
+<!-- use: use case scenario body -->
+<xsl:template match="use">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="use">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+<!-- ulist w/diff -->
+<xsl:template match="ulist[@diff]" priority="1">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <ul xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:apply-templates/>
+ </ul>
+</xsl:template>
+<!-- p w/diff -->
+<xsl:template match="p[@diff]" priority="1">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <p xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:if test="@id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+<!-- bibl w/diff -->
+<xsl:template match="bibl[@diff]" priority="1">
+ <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="label diff-{$diffval}">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@key">
+ <xsl:value-of select="@key"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml" class="diff-{$diffval}">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <a href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@href">
+ <xsl:text> (See </xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>.)</xsl:text>
+ </xsl:if>
+ </dd>
+</xsl:template>
+<!-- table -->
+<xsl:template match="table">
+ <table xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'diff'"/>
+ <xsl:when test="local-name(.) = 'role'">
+ <xsl:attribute name="class">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ <xsl:if test=".//footnote">
+ <tbody>
+ <tr>
+ <td>
+ <xsl:apply-templates select=".//footnote" mode="table.notes"/>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:if>
+ </table>
+</xsl:template>
+<!-- table specref -->
+<xsl:template match="table" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="caption" mode="text"/>
+ </b>
+ </a>
+</xsl:template>
+</xsl:transform>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/xmlspec-local.mod Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,55 @@
+<!-- XMLSPEC local element declarations -->
+<!-- $Id$ -->
+
+<!-- rlist: requirements list. -->
+<!ENTITY % rlist.element "INCLUDE">
+<![%rlist.element;[
+<!ELEMENT rlist (ritem)*>
+<!ATTLIST rlist %common.att;>
+]]>
+
+<!-- ritem: requirement list item. -->
+<!ENTITY % ritem.element "INCLUDE">
+<![%ritem.element;[
+<!ELEMENT ritem (head, req)>
+<!ATTLIST ritem %common.att;
+ type (dreq|freq|sreq|nreq|other) #REQUIRED
+>
+]]>
+
+<!-- req: requirement description. -->
+<!ENTITY % req.element "INCLUDE">
+<![%req.element;[
+<!ELEMENT req (%obj.mix;)*>
+<!ATTLIST req %common.att;>
+]]>
+
+<!-- uselist: use case scenario list. -->
+<!ENTITY % uselist.element "INCLUDE">
+<![%uselist.element;[
+<!ELEMENT uselist (useitem)*>
+<!ATTLIST uselist %common.att;>
+]]>
+
+<!-- useitem: use case scenario item. -->
+<!ENTITY % useitem.element "INCLUDE">
+<![%useitem.element;[
+<!ELEMENT useitem (head, use)>
+<!ATTLIST useitem %common.att;
+ type (simple|other) #REQUIRED
+>
+]]>
+
+<!-- use: use case description. -->
+<!ENTITY % use.element "INCLUDE">
+<![%use.element;[
+<!ELEMENT use (%obj.mix;)*>
+<!ATTLIST use %common.att;>
+]]>
+
+<!-- rfc2119: conformance keyword. -->
+<!ENTITY % rfc2119.element "INCLUDE">
+<![%rfc2119.element;[
+<!ELEMENT rfc2119 (%tech.pcd.mix;)*>
+<!ATTLIST rfc2119 %common.att;>
+]]>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/xmlspec-post-entity.mod Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,2 @@
+<!-- XMLSPEC post-entity declarations -->
+<!-- $Id$ -->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/xmlspec-pre-entity.mod Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,3 @@
+<!-- XMLSPEC pre-entity declarations -->
+<!-- $Id$ -->
+<!ENTITY % local.div.mix "|rlist|uselist">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/xmlspec-tt-f.dtd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,1038 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!ELEMENT a (#PCDATA)>
+<!ELEMENT abstract ((p | ulist | olist | slist | glist | ednote)*)*>
+<!ATTLIST abstract
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT affiliation (#PCDATA | phrase)*>
+<!ATTLIST affiliation
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT altlocs (loc+)>
+<!ATTLIST altlocs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type (boolean | expression | location-set | node-set | number | object | point | range | string) #REQUIRED
+ occur (opt | req) #IMPLIED
+>
+<!ELEMENT att (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST att
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT attribute (descr)>
+<!ATTLIST attribute
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #REQUIRED
+ readonly (yes | no) "no"
+>
+<!ELEMENT attval (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST attval
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT authlist (author+)>
+<!ATTLIST authlist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT author (name, affiliation?, email?)>
+<!ATTLIST author
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
+<!ATTLIST back
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT bibl (#PCDATA | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | loc | ednote)*>
+<!ATTLIST bibl
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #IMPLIED
+ xlink:show CDATA #FIXED "replace"
+ xlink:actuate CDATA #FIXED "onRequest"
+ key CDATA #IMPLIED
+>
+<!ELEMENT bibref EMPTY>
+<!ATTLIST bibref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ ref IDREF #REQUIRED
+>
+<!ELEMENT blist (bibl+)>
+<!ATTLIST blist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT bnf (#PCDATA | footnote | emph | phrase | quote | sub | sup | loc | ednote | constraint)*>
+<!ATTLIST bnf
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xml:space (default | preserve) #FIXED "preserve"
+>
+<!ELEMENT body (div1+)>
+<!ATTLIST body
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT caption (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST caption
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT case (descr, (struct | enum | sequence | union | typename))>
+<!ATTLIST case
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ labels CDATA #REQUIRED
+>
+<!ELEMENT code (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST code
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT col EMPTY>
+<!ATTLIST col
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ span NMTOKEN "1"
+ width CDATA #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT colgroup (col)*>
+<!ATTLIST colgroup
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ span NMTOKEN "1"
+ width CDATA #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT com (#PCDATA | phrase | loc | bibref)*>
+<!ATTLIST com
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT component (struct | enum | sequence | union | typename)>
+<!ATTLIST component
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT constant (descr)>
+<!ATTLIST constant
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #REQUIRED
+ value CDATA #REQUIRED
+>
+<!ELEMENT constraint EMPTY>
+<!ATTLIST constraint
+ def IDREF #REQUIRED
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT constraintnote (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST constraintnote
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type NMTOKEN #REQUIRED
+>
+<!ELEMENT copyright ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST copyright
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT date (#PCDATA | phrase)*>
+<!ATTLIST date
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT day (#PCDATA | phrase)*>
+<!ATTLIST day
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT def ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*)*>
+<!ATTLIST def
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT definitions ((p | note | typedef | constant | exception | reference | group | module | interface)+)+>
+<!ATTLIST definitions
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT descr (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*>
+<!ATTLIST descr
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div (head?, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist | ul | ol | h1 | h2 | h3 | h4 | h5 | h6 | div)*)>
+<!ELEMENT div1 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div2*)>
+<!ATTLIST div1
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div2 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div3*)>
+<!ATTLIST div2
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div3 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div4*)>
+<!ATTLIST div3
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div4 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div5*)>
+<!ATTLIST div4
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT div5 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*)>
+<!ATTLIST div5
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT ednote (name?, date?, edtext)>
+<!ATTLIST ednote
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT edtext (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST edtext
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT eg (#PCDATA | footnote | emph | phrase | quote | sub | sup | loc | ednote | constraint)*>
+<!ATTLIST eg
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xml:space (default | preserve) #FIXED "preserve"
+>
+<!ELEMENT el (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST el
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT em (#PCDATA)>
+<!ELEMENT email (#PCDATA | phrase)*>
+<!ATTLIST email
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT emph (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST emph
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT enum (descr, enumerator+)>
+<!ATTLIST enum
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT enumerator (descr)>
+<!ATTLIST enumerator
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT example (head?, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST example
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT exception (descr, component*)>
+<!ATTLIST exception
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT footnote ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST footnote
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT front (div1+)>
+<!ATTLIST front
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT function (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST function
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT gitem (label, def)>
+<!ATTLIST gitem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT glist (gitem+)>
+<!ATTLIST glist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT graphic EMPTY>
+<!ATTLIST graphic
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ source CDATA #REQUIRED
+ xlink:show CDATA #FIXED "embed"
+ xlink:actuate CDATA #FIXED "onLoad"
+ alt CDATA #IMPLIED
+>
+<!ELEMENT group (descr, (p | note | typedef | constant | exception | reference | group | module | interface | struct | enum | sequence | union | typename | method | attribute)*)>
+<!ATTLIST group
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT h1 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h2 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h3 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h4 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h5 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT h6 (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | em | a)*>
+<!ELEMENT head (#PCDATA | footnote | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST head
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT header (title, subtitle?, version?, w3c-designation, w3c-doctype, pubdate, notice*, publoc, altlocs?, ((prevlocs, latestloc?) | (latestloc, prevlocs?))?, authlist, copyright?, ((status, abstract) | (abstract, status)), pubstmt?, sourcedesc?, langusage, revisiondesc)>
+<!ATTLIST header
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT htable (caption?, (col* | colgroup*), thead?, tfoot?, tbody+)>
+<!ELEMENT htbody (tr)+>
+<!ELEMENT inform-div1 (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote | rlist | uselist)*, div2*)>
+<!ATTLIST inform-div1
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT interface (descr, (p | note | typedef | constant | exception | reference | group | method | attribute)*)>
+<!ATTLIST interface
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ inherits CDATA #IMPLIED
+>
+<!ELEMENT issue (head?, source*, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+, resolution?)>
+<!ATTLIST issue
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ status (open | closed) "open"
+>
+<!ELEMENT item ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST item
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT itemizedlist (listitem*)>
+<!ELEMENT key-term (#PCDATA)>
+<!ELEMENT kw (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST kw
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT label (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST label
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT language (#PCDATA | phrase)*>
+<!ATTLIST language
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT langusage (language+)>
+<!ATTLIST langusage
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT latestloc (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST latestloc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT lhs (#PCDATA | phrase)*>
+<!ATTLIST lhs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT li (#PCDATA | p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*>
+<!ELEMENT listitem (para*)>
+<!ELEMENT loc (#PCDATA | phrase)*>
+<!ATTLIST loc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "replace"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT member (name, affiliation?, role?)>
+<!ATTLIST member
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT method (descr, parameters, returns, raises)>
+<!ATTLIST method
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT module (descr, (p | note | typedef | constant | exception | reference | group | module | interface)*)>
+<!ATTLIST module
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT month (#PCDATA | phrase)*>
+<!ATTLIST month
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT name (#PCDATA | phrase)*>
+<!ATTLIST name
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ key CDATA #IMPLIED
+>
+<!ELEMENT note ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST note
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT notice ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST notice
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT nt (#PCDATA | phrase)*>
+<!ATTLIST nt
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ def IDREF #REQUIRED
+>
+<!ELEMENT ol (item | li)*>
+<!ELEMENT olist (item+)>
+<!ATTLIST olist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ spacing (normal | compact) #IMPLIED
+>
+<!ELEMENT orderedlist (listitem*)>
+<!ELEMENT orglist (member+)>
+<!ATTLIST orglist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT p (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST p
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT para (#PCDATA)>
+<!ELEMENT param (descr)>
+<!ATTLIST param
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #REQUIRED
+ attr (in | out | inout) "inout"
+>
+<!ELEMENT parameters (param*)>
+<!ATTLIST parameters
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT phrase (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST phrase
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT pre (#PCDATA | footnote | emph | phrase | quote | sub | sup | loc | ednote | constraint | em)*>
+<!ELEMENT prevlocs (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST prevlocs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT prod (lhs, (rhs, (com | wfc | vc | constraint)*)+)>
+<!ATTLIST prod
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT prodgroup (prod+)>
+<!ATTLIST prodgroup
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ pcw1 CDATA #IMPLIED
+ pcw2 CDATA #IMPLIED
+ pcw3 CDATA #IMPLIED
+ pcw4 CDATA #IMPLIED
+ pcw5 CDATA #IMPLIED
+>
+<!ELEMENT prodrecap EMPTY>
+<!ATTLIST prodrecap
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ ref IDREF #REQUIRED
+>
+<!ELEMENT proto (arg*)>
+<!ATTLIST proto
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name NMTOKEN #REQUIRED
+ return-type (boolean | expression | location-set | node-set | number | object | point | range | string) #REQUIRED
+>
+<!ELEMENT pubdate (day?, month, year)>
+<!ATTLIST pubdate
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT publoc (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST publoc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT pubstmt ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST pubstmt
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT quote (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST quote
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT raises (exception*)>
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ declaration IDREF #REQUIRED
+>
+<!ELEMENT req ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*)*>
+<!ATTLIST req
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT resolution ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST resolution
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT returns (descr)>
+<!ATTLIST returns
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type CDATA #REQUIRED
+>
+<!ELEMENT revisiondesc ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST revisiondesc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT rfc2119 (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST rfc2119
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT rhs (#PCDATA | phrase | nt | xnt | com)*>
+<!ATTLIST rhs
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT ritem (head, req)>
+<!ATTLIST ritem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type (dreq | freq | sreq | nreq | other) #REQUIRED
+>
+<!ELEMENT rlist (ritem)*>
+<!ATTLIST rlist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT role (#PCDATA | phrase)*>
+<!ATTLIST role
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)>
+<!ATTLIST scrap
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ lang IDREF #IMPLIED
+ headstyle (show | suppress) "show"
+>
+<!ELEMENT sequence (sequence*)>
+<!ATTLIST sequence
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type CDATA #REQUIRED
+ size NMTOKEN #IMPLIED
+>
+<!ELEMENT sitem (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST sitem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT slist (sitem+)>
+<!ATTLIST slist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT source (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote)*>
+<!ATTLIST source
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT sourcedesc ((p | ulist | olist | slist | glist | ednote)+)+>
+<!ATTLIST sourcedesc
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT spec (header, front?, body, back?)>
+<!ATTLIST spec
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ w3c-doctype (cr | dispcmts | issues | wg-note | note | other | pr | rec | wd) #IMPLIED
+ other-doctype CDATA #IMPLIED
+ status (int-review | ext-review | final) #IMPLIED
+>
+<!ELEMENT specref EMPTY>
+<!ATTLIST specref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ ref IDREF #REQUIRED
+>
+<!ELEMENT status ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)+>
+<!ATTLIST status
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT statusp (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ELEMENT struct (descr, component+)>
+<!ATTLIST struct
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+>
+<!ELEMENT sub (#PCDATA | phrase)*>
+<!ATTLIST sub
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT subtitle (#PCDATA | phrase)*>
+<!ATTLIST subtitle
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT sup (#PCDATA | phrase)*>
+<!ATTLIST sup
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT table (caption?, (col* | colgroup*), thead?, tfoot?, tbody+)>
+<!ATTLIST table
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ width CDATA #IMPLIED
+ summary CDATA #IMPLIED
+ border CDATA #IMPLIED
+ frame (void | above | below | hsides | lhs | rhs | vsides | box | border) #IMPLIED
+ rules (none | groups | rows | cols | all) #IMPLIED
+ cellspacing CDATA #IMPLIED
+ cellpadding CDATA #IMPLIED
+>
+<!ELEMENT tbody (tr)+>
+<!ATTLIST tbody
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT td (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST td
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ abbr CDATA #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope (row | col | rowgroup | colgroup) #IMPLIED
+ rowspan NMTOKEN "1"
+ colspan NMTOKEN "1"
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT term (#PCDATA | phrase)*>
+<!ATTLIST term
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT termdef (#PCDATA | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST termdef
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ term CDATA #REQUIRED
+>
+<!ELEMENT termref (#PCDATA | phrase)*>
+<!ATTLIST termref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ def IDREF #REQUIRED
+>
+<!ELEMENT tfoot (tr)+>
+<!ATTLIST tfoot
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT th (#PCDATA | footnote | termdef | term | emph | phrase | quote | sub | sup | bibref | specref | termref | titleref | xspecref | xtermref | kw | nt | xnt | code | function | var | el | att | attval | loc | ednote | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example)*>
+<!ATTLIST th
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ abbr CDATA #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope (row | col | rowgroup | colgroup) #IMPLIED
+ rowspan NMTOKEN "1"
+ colspan NMTOKEN "1"
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT thead (tr)+>
+<!ATTLIST thead
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT title (#PCDATA | phrase)*>
+<!ATTLIST title
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT titleref (#PCDATA | phrase)*>
+<!ATTLIST titleref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #IMPLIED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT tr (th | td)+>
+<!ATTLIST tr
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ align (left | center | right | justify | char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ valign (top | middle | bottom | baseline) #IMPLIED
+>
+<!ELEMENT typedef (descr, (struct | enum | sequence | union | typename))>
+<!ATTLIST typedef
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ array.size NMTOKEN #IMPLIED
+>
+<!ELEMENT typename (#PCDATA | phrase)*>
+<!ATTLIST typename
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT ul (item | li)*>
+<!ELEMENT ulist (item+)>
+<!ATTLIST ulist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ spacing (normal | compact) #IMPLIED
+>
+<!ELEMENT union (descr, case+)>
+<!ATTLIST union
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ name CDATA #REQUIRED
+ switch.type CDATA #REQUIRED
+>
+<!ELEMENT use ((p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)*)*>
+<!ATTLIST use
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT useitem (head, use)>
+<!ATTLIST useitem
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ type (simple | other) #REQUIRED
+>
+<!ELEMENT uselist (useitem)*>
+<!ATTLIST uselist
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT var (#PCDATA | loc | ednote | phrase)*>
+<!ATTLIST var
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT vc EMPTY>
+<!ATTLIST vc
+ def IDREF #REQUIRED
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT vcnote (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST vcnote
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT version (#PCDATA | phrase)*>
+<!ATTLIST version
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT w3c-designation (#PCDATA | phrase)*>
+<!ATTLIST w3c-designation
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT w3c-doctype (#PCDATA | phrase)*>
+<!ATTLIST w3c-doctype
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT wfc EMPTY>
+<!ATTLIST wfc
+ def IDREF #REQUIRED
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT wfcnote (head, (p | ulist | olist | slist | glist | orglist | blist | note | issue | wfcnote | vcnote | constraintnote | eg | graphic | scrap | table | definitions | proto | example | ednote)+)>
+<!ATTLIST wfcnote
+ id ID #REQUIRED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
+<!ELEMENT xnt (#PCDATA | phrase)*>
+<!ATTLIST xnt
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT xspecref (#PCDATA | phrase)*>
+<!ATTLIST xspecref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT xtermref (#PCDATA | phrase)*>
+<!ATTLIST xtermref
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest"
+>
+<!ELEMENT year (#PCDATA | phrase)*>
+<!ATTLIST year
+ id ID #IMPLIED
+ role NMTOKEN #IMPLIED
+ diff (chg | add | del | off) #IMPLIED
+>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/xmlspec-tt.dtd Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,2763 @@
+<!-- ............................................................... -->
+<!-- XML specification DTD ......................................... -->
+<!-- ............................................................... -->
+
+<!-- $Id$ -->
+
+<!--
+TYPICAL INVOCATION:
+# <!DOCTYPE spec PUBLIC
+# "-//W3C//DTD Specification V2.3//EN"
+# "http://www.w3.org/2002/xmlspec/dtd/2.3/xmlspec.dtd">
+
+PURPOSE:
+ This XML DTD is for W3C specifications and other technical reports.
+ It is based in part on the TEI Lite and Sweb DTDs.
+
+COPYRIGHT:
+
+ Copyright (C) 2000, 2001, 2002, 2003 Sun Microsystems, Inc. All Rights Reserved.
+ This document is governed by the W3C Software License[3] as
+ described in the FAQ[4].
+
+ [1] http://www.w3.org/TR/xslt
+ [2] http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm
+ [3] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+ [4] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+
+DEPENDENCIES:
+ None.
+
+CHANGE HISTORY:
+ The list of changes is at the end of the DTD.
+
+ For all details, see the design report at:
+
+# <http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm>
+
+#2003-03-12: nwalsh: Added local.* PEs to a number of additional
+ places to make customization layers easier.
+
+ Published V2.3
+
+#2002-09-04: nwalsh: Added 'phrase' to title, subtitle, version,
+ w3c-designation, w3c-doctype, day, month, year, name,
+ affiliation, email, language, role, lhs, rhs, com,
+ typename, date, loc, nt, sub, sup, term, termref,
+ titleref, xnt, xspecref, xtermref
+
+ This is *solely* to support automated diffing. Users
+ are explicitly forbidden from using this as an escape
+ hatch to get extra markup in these contexts.
+
+#2001-10-08: nwalsh: Added local.arg.att and local.proto.att
+
+#2002-08-14: nwalsh: Published V2.2
+
+ Added marked sections around element and attlist declarations and
+ added the altlocs element
+
+ Search this file for "#" in the first column to see change history
+ comments. To find changes made this time, search for "2000-03-07".
+
+MAINTAINERS:
+ Norman Walsh
+ Sun Microsystems, Inc.
+ Norman.Walsh@Sun.COM
+ voice: +1 413 256 6985
+ fax: +1 413 256 6985
+
+ Eve Maler
+ Sun Microsystems, Inc.
+ elm@east.sun.com
+ voice: +1 781 442 3190
+ fax: +1 781 442 1437
+-->
+
+<!-- ............................................................... -->
+<!-- Customization Switches ........................................ -->
+<!-- ............................................................... -->
+
+<!--
+#2003-04-05: gadams: Add customization switch settings.
+-->
+<!ENTITY % XMLSPEC.pre-entity.inc "INCLUDE">
+<!ENTITY % XMLSPEC.post-entity.inc "INCLUDE">
+<!ENTITY % XMLSPEC.local.inc "INCLUDE">
+
+<!-- ............................................................... -->
+<!-- Pre-Entity Declarations ....................................... -->
+<!-- ............................................................... -->
+
+<!--
+#2003-04-05: gadams: Add pre-entity declaration inclusion
+-->
+<!ENTITY % XMLSPEC.pre-entity.inc "IGNORE">
+<!ENTITY % XMLSPEC.pre-entity.mod
+ PUBLIC "-//W3C//ENTITIES XMLSPEC Pre-Entity Declarations//EN"
+ "xmlspec-pre-entity.mod">
+<![%XMLSPEC.pre-entity.inc;[
+%XMLSPEC.pre-entity.mod;
+]]>
+
+<!-- ............................................................... -->
+<!-- Entities for characters and symbols ........................... -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Added “ and ”.
+# Used 8879:1986-compatible decimal character
+# references.
+# Merged charent.mod file back into main file.
+#1998-05-14: maler: Fixed ldquo and rdquo. Gave mdash a real number.
+#1998-12-03: maler: Escaped the leading ampersands.
+-->
+
+<!ENTITY lt "&#60;">
+<!ENTITY gt ">">
+<!ENTITY amp "&#38;">
+<!ENTITY apos "'">
+<!ENTITY quot """>
+<!ENTITY nbsp " ">
+<!ENTITY mdash "&#x2014;">
+<!ENTITY ldquo "&#x201C;">
+<!ENTITY rdquo "&#x201D;">
+
+<!-- ............................................................... -->
+<!-- Entities for classes of standalone elements ................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-10-16: maler: Added table to %illus.class;.
+#1997-11-28: maler: Added htable to %illus.class;.
+#1997-12-29: maler: IGNOREd table.
+#1998-03-10: maler: Removed SGML Open-specific %illus.class;.
+# Added "local" entities for customization.
+#1998-05-14: maler: Added issue to %note.class;.
+# Removed %[local.]statusp.class;.
+#1998-05-21: maler: Added constraintnote to %note.class;.
+#1998-08-22: maler: Changed htable to table in %illus.class;.
+# Added definitions to %illus.class;.
+#2000-03-07: maler: Added proto and example to %illus.class;.
+-->
+
+<!ENTITY % local.p.class "">
+<!ENTITY % p.class "p
+ %local.p.class;">
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class "ulist|olist|slist|glist
+ %local.list.class;">
+
+<!ENTITY % local.speclist.class "">
+<!ENTITY % speclist.class "orglist|blist
+ %local.speclist.class;">
+
+<!ENTITY % local.note.class "">
+<!ENTITY % note.class "note|issue|wfcnote|vcnote
+ |constraintnote %local.note.class;">
+
+<!ENTITY % local.illus.class "">
+<!ENTITY % illus.class "eg|graphic|scrap|table|definitions
+ |proto|example
+ %local.illus.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for classes of phrase-level elements ................. -->
+<!-- ............................................................... -->
+
+<!--
+#1997-12-29: maler: Added xspecref to %ref.class;.
+#1998-03-10: maler: Added %ednote.class;.
+# Added "local" entities for customization.
+#2000-03-07: maler: Added function, var, el, att, and attval to
+# %tech.class;.
+# Added sub, sup, and phrase to %emph.class;.
+-->
+
+<!ENTITY % local.annot.class "">
+<!ENTITY % annot.class "footnote
+ %local.annot.class;">
+
+<!ENTITY % local.termdef.class "">
+<!ENTITY % termdef.class "termdef|term
+ %local.termdef.class;">
+
+<!ENTITY % local.emph.class "">
+<!ENTITY % emph.class "emph|phrase|quote|sub|sup
+ %local.emph.class;">
+
+<!ENTITY % local.ref.class "">
+<!ENTITY % ref.class "bibref|specref|termref|titleref
+ |xspecref|xtermref
+ %local.ref.class;">
+
+<!ENTITY % local.loc.class "">
+<!ENTITY % loc.class "loc
+ %local.loc.class;">
+
+<!ENTITY % local.tech.class "">
+<!ENTITY % tech.class "kw|nt|xnt|code|function|var
+ |el|att|attval
+ %local.tech.class;">
+
+<!ENTITY % local.ednote.class "">
+<!ENTITY % ednote.class "ednote
+ %local.ednote.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for mixtures of standalone elements .................. -->
+<!-- ............................................................... -->
+
+<!--
+#1997-09-30: maler: Created %p.mix; to eliminate p from self.
+#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
+#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
+#1997-10-16: maler: Created %entry.mix;. Note that some elements
+# left out here are still allowed in termdef,
+# which entry can contain through %p.pcd.mix;.
+#1997-11-28: maler: Added %p.class; to %statusobj.mix;.
+#1998-03-10: maler: Added %ednote.class; to all mixtures, except
+# %p.mix; and %statusobj.mix;, because paragraphs
+# and status paragraphs will contain ednote
+# through %p.pcd.mix;.
+#1998-03-23: maler: Added %termdef.mix; (broken out from
+# %termdef.pcd.mix;).
+#1998-05-14: maler: Removed %statusobj.mix; and all mentions of
+# %statusp.mix;.
+-->
+
+<!ENTITY % local.div.mix "">
+<!ENTITY % div.mix
+ "%p.class;|%list.class;|%speclist.class;|%note.class;
+ |%illus.class;|%ednote.class;%local.div.mix;">
+
+<!ENTITY % local.p.mix "">
+<!ENTITY % p.mix
+ "%list.class;|%speclist.class;|%note.class;|%illus.class;%local.p.mix;">
+
+<!ENTITY % local.obj.mix "">
+<!ENTITY % obj.mix
+ "%p.class;|%list.class;|%speclist.class;|%note.class;
+ |%illus.class;|%ednote.class;%local.obj.mix;">
+
+<!ENTITY % local.entry.mix "">
+<!ENTITY % entry.mix
+ "%list.class;|note|eg|graphic|%ednote.class;%local.entry.mix;">
+
+<!ENTITY % local.hdr.mix "">
+<!ENTITY % hdr.mix
+ "%p.class;|%list.class;|%ednote.class;%local.hdr.mix;">
+
+<!ENTITY % local.termdef.mix "">
+<!ENTITY % termdef.mix
+ "%note.class;|%illus.class;%local.termdef.mix;">
+
+<!-- ............................................................... -->
+<!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
+<!-- ............................................................... -->
+
+<!-- Note that %termdef.pcd.mix contains %note.class;
+ and %illus.class;, considered standalone elements. -->
+
+<!--
+#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
+#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
+#1998-03-10: maler: Added %ednote.class; to all mixtures.
+#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
+# %termdef.mix;.
+#1998-05-14: maler: Removed %statusp.pcd.mix;.
+#1998-05-21: maler: Added constraint element to %eg.pcd.mix;.
+#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;,
+# %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;,
+# %tech.pcd.mix; (net: all PCD mixes have it).
+# Removed unused %loc.pcd.mix;.
+-->
+
+<!ENTITY % local.p.pcd.mix "">
+<!ENTITY % p.pcd.mix
+ "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
+ |%ref.class;|%tech.class;|%loc.class;|%ednote.class;%local.p.pcd.mix;">
+
+<!ENTITY % local.head.pcd.mix "">
+<!ENTITY % head.pcd.mix
+ "#PCDATA|%annot.class;|%emph.class;|%tech.class;
+ |%loc.class;|%ednote.class;%local.head.pcd.mix;">
+
+<!ENTITY % local.label.pcd.mix "">
+<!ENTITY % label.pcd.mix
+ "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
+ |%tech.class;|%loc.class;|%ednote.class;%local.label.pcd.mix;">
+
+<!ENTITY % local.eg.pcd.mix "">
+<!ENTITY % eg.pcd.mix
+ "#PCDATA|%annot.class;|%emph.class;|%loc.class;
+ |%ednote.class;|constraint %local.eg.pcd.mix;">
+
+<!ENTITY % local.termdef.pcd.mix "">
+<!ENTITY % termdef.pcd.mix
+ "#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
+ |%loc.class;|%ednote.class;%local.termdef.pcd.mix;">
+
+<!ENTITY % local.bibl.pcd.mix "">
+<!ENTITY % bibl.pcd.mix
+ "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;%local.bibl.pcd.mix;">
+
+<!ENTITY % local.tech.pcd.mix "">
+<!ENTITY % tech.pcd.mix
+ "#PCDATA|%loc.class;|%ednote.class;|phrase %local.tech.pcd.mix;">
+
+<!-- ............................................................... -->
+<!-- Entities for customizable content models ...................... -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Added customization entities.
+#1998-05-14: maler: Allowed prevlocs and latestloc in either order.
+#1999-07-02: maler: Made version optional; added copyright element.
+#2000-03-07: maler: Allowed status and abstract in opposite order.
+-->
+
+<!ENTITY % spec.mdl
+ "header, front?, body, back?">
+
+<!ENTITY % header.mdl
+ "title, subtitle?, version?, w3c-designation, w3c-doctype,
+ pubdate, notice*, publoc, altlocs?, ((prevlocs, latestloc?) |
+ (latestloc, prevlocs?))?, authlist, copyright?,
+ ((status, abstract) | (abstract, status)), pubstmt?,
+ sourcedesc?, langusage, revisiondesc">
+
+<!ENTITY % pubdate.mdl
+ "day?, month, year">
+
+<!-- ............................................................... -->
+<!-- Entities for common attributes ................................ -->
+<!-- ............................................................... -->
+
+<!--
+#2000-03-07: maler: Added %argtypes;.
+-->
+
+<!-- argtypes:
+ Values for function prototype argument datatypes. -->
+<!ENTITY % argtypes
+ '(boolean
+ |expression
+ |location-set
+ |node-set
+ |number
+ |object
+ |point
+ |range
+ |string)'>
+
+<!-- key attribute:
+ Optionally provides a sorting or indexing key, for cases when
+ the element content is inappropriate for this purpose. -->
+<!ENTITY % key.att
+ 'key CDATA #IMPLIED'>
+
+<!-- def attribute:
+ Points to the element where the relevant definition can be
+ found, using the IDREF mechanism. %def.att; is for optional
+ def attributes, and %def-req.att; is for required def
+ attributes. -->
+<!ENTITY % def.att
+ 'def IDREF #IMPLIED'>
+<!ENTITY % def-req.att
+ 'def IDREF #REQUIRED'>
+
+<!-- ref attribute:
+ Points to the element where more information can be found,
+ using the IDREF mechanism. %ref.att; is for optional
+ ref attributes, and %ref-req.att; is for required ref
+ attributes. -->
+<!ENTITY % ref.att
+ 'ref IDREF #IMPLIED'>
+<!ENTITY % ref-req.att
+ 'ref IDREF #REQUIRED'>
+
+<!--
+#1998-03-23: maler: Added show and actuate attributes to href.
+# Added semi-common xml:space attribute.
+#1998-08-22: maler: Used new xlink:form and #IMPLIED features.
+#1999-07-02: maler: Reorganized XLink-related entities completely;
+# added xmlns:xlink attribute to the mix.
+#2000-03-07: maler: Updated XLink usage to February 2000 draft,
+# except that href still has no namespace prefix.
+-->
+
+<!-- xmlns:xlink and xlink:type attributes:
+ xmlns:xlink declares the association of the xlink prefix
+ with the namespace created by the XLink specification.
+ xlink:type identifies an element as an XLink "simple" linking
+ element. -->
+<!ENTITY % simple-xlink.att
+ 'xmlns:xlink CDATA #FIXED
+ "http://www.w3.org/1999/xlink"
+ xlink:type CDATA #FIXED "simple" '>
+
+<!-- href attributes:
+ The href attribute locates the remote-resource half of a
+ simple link; the element on which the href appears is the
+ local-resource half. Some elements are usable links only if
+ the author chooses to supply a functional href. The attribute
+ name should really be xlink:href, but is kept without the
+ prefix for now in order to be backwards-compatible. -->
+
+<!ENTITY % href.att
+ 'href CDATA #IMPLIED '>
+<!ENTITY % href-req.att
+ 'href CDATA #REQUIRED '>
+
+<!-- xlink:show and xlink:actuate attributes:
+ These attributes offer instructions to the display engine
+ about how to handle traversal to resource indicated by an
+ href locator. -->
+<!ENTITY % auto-embed.att
+ 'xlink:show CDATA #FIXED "embed"
+ xlink:actuate CDATA #FIXED "onLoad" '>
+<!ENTITY % user-replace.att
+ 'xlink:show CDATA #FIXED "replace"
+ xlink:actuate CDATA #FIXED "onRequest" '>
+<!ENTITY % user-new.att
+ 'xlink:show CDATA #FIXED "new"
+ xlink:actuate CDATA #FIXED "onRequest" '>
+
+<!-- xml:space attribute:
+ Indicates that the element contains whitespace that the
+ formatter or other application should retain, as appropriate
+ to its function. -->
+<!ENTITY % xmlspace.att
+ 'xml:space (default
+ |preserve) #FIXED "preserve" '>
+
+<!--
+#2000-03-07: maler: Added common diff attribute. Made %role.att;.
+-->
+
+<!-- diff attribute:
+ Indicates in what way the element has changed. When a value
+ is not provided, that subelement should inherit a value from
+ its parent. If the root element has no value supplied,
+ assume "off". -->
+<!ENTITY % diff.att
+ 'diff (chg
+ |add
+ |del
+ |off) #IMPLIED'>
+
+<!-- role attribute:
+ Extends the useful life of the DTD by allowing authors to
+ make a subtype of any element. No default. -->
+<!ENTITY % role.att
+ 'role NMTOKEN #IMPLIED'>
+
+<!-- Common attributes:
+ Every element has an ID attribute for links, a role
+ attribute, and a diff attribute. %common.att; is for
+ common attributes where the ID is optional, and
+ %common-idreq.att; is for common attributes where the
+ ID is required. -->
+
+<!ENTITY % local.common.att "">
+<!ENTITY % common.att
+ 'id ID #IMPLIED
+ %role.att;
+ %diff.att;
+ %local.common.att;'>
+
+<!ENTITY % local.common-idreq.att "">
+<!ENTITY % common-idreq.att
+ 'id ID #REQUIRED
+ %role.att;
+ %diff.att;
+ %local.common-idreq.att;'>
+
+<!-- ............................................................... -->
+<!-- Post-Entity Declarations ...................................... -->
+<!-- ............................................................... -->
+
+<!--
+#2003-04-05: gadams: Add post-entity declaration inclusion
+-->
+<!ENTITY % XMLSPEC.post-entity.inc "IGNORE">
+<!ENTITY % XMLSPEC.post-entity.mod
+ PUBLIC "-//W3C//ENTITIES XMLSPEC Post-Entity Declarations//EN"
+ "xmlspec-post-entity.mod">
+<![%XMLSPEC.post-entity.inc;[
+%XMLSPEC.post-entity.mod;
+]]>
+
+<!-- ............................................................... -->
+<!-- Common elements ............................................... -->
+<!-- ............................................................... -->
+
+<!-- head: Title on divisions, productions, and the like -->
+<!ENTITY % head.element "INCLUDE">
+<![%head.element;[
+<!ELEMENT head (%head.pcd.mix;)*>
+]]>
+<!ENTITY % head.attlist "INCLUDE">
+<![%head.attlist;[
+<!ATTLIST head %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Major specification structure ................................. -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Made spec content model easily customizable.
+#1999-07-02: maler: Added doctype atts and status att.
+#2000-03-07: maler: Added cr, issues, and dispcmts to w3c-doctype.
+-->
+
+<!ENTITY % spec.element "INCLUDE">
+<![%spec.element;[
+<!ELEMENT spec (%spec.mdl;)>
+]]>
+<!-- w3c-doctype attributes:
+ Indicates the type of document, so that the appropriate
+ stylesheet or workflow routing can be applied. Should
+ *not* generate any text (such as the "REC-" or "NOTE-"
+ prefix on the W3C designation content). No default. If
+ w3c-doctype is "other", other-doctype should be filled in.
+
+ status attribute:
+ Indicates the stage of review of the document. May affect
+ the stylesheet's treatment of ednotes (e.g., whether to
+ output them). No default. -->
+
+<!ENTITY % local.spec.att "">
+<!ENTITY % spec.attlist "INCLUDE">
+<![%spec.attlist;[
+<!ATTLIST spec
+ %common.att;
+ %local.spec.att;
+ w3c-doctype (cr
+ |dispcmts
+ |issues
+ |note
+ |other
+ |pr
+ |rec
+ |wd) #IMPLIED
+ other-doctype CDATA #IMPLIED
+ status (int-review
+ |ext-review
+ |final) #IMPLIED
+>
+]]>
+
+<!ENTITY % front.element "INCLUDE">
+<![%front.element;[
+<!ELEMENT front (div1+)>
+]]>
+<!ENTITY % front.attlist "INCLUDE">
+<![%front.attlist;[
+<!ATTLIST front %common.att;>
+]]>
+
+<!ENTITY % body.element "INCLUDE">
+<![%body.element;[
+<!ELEMENT body (div1+)>
+]]>
+<!ENTITY % body.attlist "INCLUDE">
+<![%body.attlist;[
+<!ATTLIST body %common.att;>
+]]>
+
+<!--
+#1997-09-30: maler: Added inform-div1 to back content.
+-->
+
+<!ENTITY % back.element "INCLUDE">
+<![%back.element;[
+<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
+]]>
+<!ENTITY % back.attlist "INCLUDE">
+<![%back.attlist;[
+<!ATTLIST back %common.att;>
+]]>
+
+<!ENTITY % div1.element "INCLUDE">
+<![%div1.element;[
+<!ELEMENT div1 (head, (%div.mix;)*, div2*)>
+]]>
+<!ENTITY % div1.attlist "INCLUDE">
+<![%div1.attlist;[
+<!ATTLIST div1 %common.att;>
+]]>
+
+<!--
+#1997-09-30: maler: Added inform-div1 declarations.
+#2000-03-07: maler: Added div5 level.
+-->
+
+<!-- inform-div1: Non-normative division in back matter -->
+<!ENTITY % inform-div1.element "INCLUDE">
+<![%inform-div1.element;[
+<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
+]]>
+<!ENTITY % inform-div1.attlist "INCLUDE">
+<![%inform-div1.attlist;[
+<!ATTLIST inform-div1 %common.att;>
+]]>
+
+<!ENTITY % div2.element "INCLUDE">
+<![%div2.element;[
+<!ELEMENT div2 (head, (%div.mix;)*, div3*)>
+]]>
+<!ENTITY % div2.attlist "INCLUDE">
+<![%div2.attlist;[
+<!ATTLIST div2 %common.att;>
+]]>
+
+<!ENTITY % div3.element "INCLUDE">
+<![%div3.element;[
+<!ELEMENT div3 (head, (%div.mix;)*, div4*)>
+]]>
+<!ENTITY % div3.attlist "INCLUDE">
+<![%div3.attlist;[
+<!ATTLIST div3 %common.att;>
+]]>
+
+<!ENTITY % div4.element "INCLUDE">
+<![%div4.element;[
+<!ELEMENT div4 (head, (%div.mix;)*, div5*)>
+]]>
+<!ENTITY % div4.attlist "INCLUDE">
+<![%div4.attlist;[
+<!ATTLIST div4 %common.att;>
+]]>
+
+<!ENTITY % div5.element "INCLUDE">
+<![%div5.element;[
+<!ELEMENT div5 (head, (%div.mix;)*)>
+]]>
+<!ENTITY % div5.attlist "INCLUDE">
+<![%div5.attlist;[
+<!ATTLIST div5 %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Specification header .......................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Made header content model easily customizable.
+-->
+
+<!ENTITY % header.element "INCLUDE">
+<![%header.element;[
+<!ELEMENT header (%header.mdl;)>
+]]>
+<!ENTITY % header.attlist "INCLUDE">
+<![%header.attlist;[
+<!ATTLIST header %common.att;>
+]]>
+
+<!-- Example of title: "Extensible Cheese Language (XCL)" -->
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (#PCDATA|phrase)*>
+]]>
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title %common.att;>
+]]>
+
+<!-- Example of subtitle: "A Cheesy Specification" -->
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (#PCDATA|phrase)*>
+]]>
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle %common.att;>
+]]>
+
+<!-- Example of version: "Version 666.0" -->
+<!ENTITY % version.element "INCLUDE">
+<![%version.element;[
+<!ELEMENT version (#PCDATA|phrase)*>
+]]>
+<!ENTITY % version.attlist "INCLUDE">
+<![%version.attlist;[
+<!ATTLIST version %common.att;>
+]]>
+
+<!-- Example of w3c-designation: "WD-xcl-19991231" -->
+<!ENTITY % w3c-designation.element "INCLUDE">
+<![%w3c-designation.element;[
+<!ELEMENT w3c-designation (#PCDATA|phrase)*>
+]]>
+<!ENTITY % w3c-designation.attlist "INCLUDE">
+<![%w3c-designation.attlist;[
+<!ATTLIST w3c-designation %common.att;>
+]]>
+
+<!-- Example of w3c-doctype: "W3C Working Draft" -->
+<!ENTITY % w3c-doctype.element "INCLUDE">
+<![%w3c-doctype.element;[
+<!ELEMENT w3c-doctype (#PCDATA|phrase)*>
+]]>
+<!ENTITY % w3c-doctype.attlist "INCLUDE">
+<![%w3c-doctype.attlist;[
+<!ATTLIST w3c-doctype %common.att;>
+]]>
+
+<!--
+#1998-03-10: maler: Made pubdate content model easily customizable.
+-->
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%pubdate.mdl;)>
+]]>
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate %common.att;>
+]]>
+
+<!ENTITY % day.element "INCLUDE">
+<![%day.element;[
+<!ELEMENT day (#PCDATA|phrase)*>
+]]>
+<!ENTITY % day.attlist "INCLUDE">
+<![%day.attlist;[
+<!ATTLIST day %common.att;>
+]]>
+
+<!ENTITY % month.element "INCLUDE">
+<![%month.element;[
+<!ELEMENT month (#PCDATA|phrase)*>
+]]>
+<!ENTITY % month.attlist "INCLUDE">
+<![%month.attlist;[
+<!ATTLIST month %common.att;>
+]]>
+
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (#PCDATA|phrase)*>
+]]>
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year %common.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Declared copyright element.
+-->
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (%hdr.mix;)+>
+]]>
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright %common.att;>
+]]>
+
+<!-- Example of notice: "This draft is for public comment..." -->
+<!ENTITY % notice.element "INCLUDE">
+<![%notice.element;[
+<!ELEMENT notice (%hdr.mix;)+>
+]]>
+<!ENTITY % notice.attlist "INCLUDE">
+<![%notice.attlist;[
+<!ATTLIST notice %common.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;.
+-->
+
+<!ENTITY % publoc.element "INCLUDE">
+<![%publoc.element;[
+<!ELEMENT publoc (%p.pcd.mix;)*>
+]]>
+<!ENTITY % publoc.attlist "INCLUDE">
+<![%publoc.attlist;[
+<!ATTLIST publoc %common.att;>
+]]>
+
+<!--
+#2002-08-15: nwalsh: Added altlocs element.
+ The semantics of the altlocs are equivalent to the Dublin Core relation element
+ with type="hasVersion". Each of the loc elements inside altlocs should identify
+ an alternate version of the resource described by the document, for example
+ HTML, XML, and PDF forms.
+-->
+<!ENTITY % altlocs.element "INCLUDE">
+<![%altlocs.element;[
+<!ELEMENT altlocs (loc+)>
+]]>
+<!ENTITY % altlocs.attlist "INCLUDE">
+<![%altlocs.attlist;[
+<!ATTLIST altlocs %common.att;>
+]]>
+
+<!ENTITY % prevlocs.element "INCLUDE">
+<![%prevlocs.element;[
+<!ELEMENT prevlocs (%p.pcd.mix;)*>
+]]>
+<!ENTITY % prevlocs.attlist "INCLUDE">
+<![%prevlocs.attlist;[
+<!ATTLIST prevlocs %common.att;>
+]]>
+
+<!ENTITY % latestloc.element "INCLUDE">
+<![%latestloc.element;[
+<!ELEMENT latestloc (%p.pcd.mix;)*>
+]]>
+<!ENTITY % latestloc.attlist "INCLUDE">
+<![%latestloc.attlist;[
+<!ATTLIST latestloc %common.att;>
+]]>
+
+<!-- loc (defined in "Phrase-level elements" below) -->
+
+<!ENTITY % authlist.element "INCLUDE">
+<![%authlist.element;[
+<!ELEMENT authlist (author+)>
+]]>
+<!ENTITY % authlist.attlist "INCLUDE">
+<![%authlist.attlist;[
+<!ATTLIST authlist %common.att;>
+]]>
+
+<!--
+#1997-09-30: maler: Made affiliation optional.
+#1998-03-10: maler: Made email optional.
+-->
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author (name, affiliation?, email?)>
+]]>
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author %common.att;>
+]]>
+
+<!ENTITY % name.element "INCLUDE">
+<![%name.element;[
+<!ELEMENT name (#PCDATA|phrase)*>
+]]>
+<!ENTITY % name.attlist "INCLUDE">
+<![%name.attlist;[
+<!ATTLIST name
+ %common.att;
+ %key.att;>
+]]>
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (#PCDATA|phrase)*>
+]]>
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation %common.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (#PCDATA|phrase)*>
+]]>
+<!-- href attribute:
+ email functions as a hypertext reference through this
+ required attribute. Typically the reference would use
+ the mailto: scheme. E.g.:
+
+<email href="mailto:elm@arbortext.com">elm@arbortext.com</email>
+ -->
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+ %common.att;
+ %simple-xlink.att;
+ %href-req.att;
+ %user-new.att;>
+]]>
+
+<!--
+#1998-05-15: maler: Changed status content from %statusobj.mix;
+# to plain %obj.mix;. statusp is obsolete.
+-->
+
+<!ENTITY % status.element "INCLUDE">
+<![%status.element;[
+<!ELEMENT status (%obj.mix;)+>
+]]>
+<!ENTITY % status.attlist "INCLUDE">
+<![%status.attlist;[
+<!ATTLIST status %common.att;>
+]]>
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (%hdr.mix;)*>
+]]>
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract %common.att;>
+]]>
+
+<!ENTITY % pubstmt.element "INCLUDE">
+<![%pubstmt.element;[
+<!ELEMENT pubstmt (%hdr.mix;)+>
+]]>
+<!ENTITY % pubstmt.attlist "INCLUDE">
+<![%pubstmt.attlist;[
+<!ATTLIST pubstmt %common.att;>
+]]>
+
+<!ENTITY % sourcedesc.element "INCLUDE">
+<![%sourcedesc.element;[
+<!ELEMENT sourcedesc (%hdr.mix;)+>
+]]>
+<!ENTITY % sourcedesc.attlist "INCLUDE">
+<![%sourcedesc.attlist;[
+<!ATTLIST sourcedesc %common.att;>
+]]>
+
+<!ENTITY % langusage.element "INCLUDE">
+<![%langusage.element;[
+<!ELEMENT langusage (language+)>
+]]>
+<!ENTITY % langusage.attlist "INCLUDE">
+<![%langusage.attlist;[
+<!ATTLIST langusage %common.att;>
+]]>
+
+<!ENTITY % language.element "INCLUDE">
+<![%language.element;[
+<!ELEMENT language (#PCDATA|phrase)*>
+]]>
+<!ENTITY % language.attlist "INCLUDE">
+<![%language.attlist;[
+<!ATTLIST language %common.att;>
+]]>
+
+<!ENTITY % revisiondesc.element "INCLUDE">
+<![%revisiondesc.element;[
+<!ELEMENT revisiondesc (%hdr.mix;)+>
+]]>
+<!ENTITY % revisiondesc.attlist "INCLUDE">
+<![%revisiondesc.attlist;[
+<!ATTLIST revisiondesc %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Paragraph ..................................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
+#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix;
+# references.
+#1997-12-29: maler: Changed order of %statusobj.mix; and
+# %statusp.pcd.mix; references.
+#1998-05-14: maler: Removed statusp declarations.
+-->
+
+<!ENTITY % p.element "INCLUDE">
+<![%p.element;[
+<!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
+]]>
+<!ENTITY % p.attlist "INCLUDE">
+<![%p.attlist;[
+<!ATTLIST p %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Regular lists ................................................. -->
+<!-- ............................................................... -->
+
+<!-- ulist: Unordered list, typically bulleted. -->
+<!ENTITY % ulist.element "INCLUDE">
+<![%ulist.element;[
+<!ELEMENT ulist (item+)>
+]]>
+<!-- spacing attribute:
+ Use "normal" to get normal vertical spacing for items;
+ use "compact" to get less spacing. The default is dependent
+ on the stylesheet. -->
+<!ENTITY % ulist.attlist "INCLUDE">
+<![%ulist.attlist;[
+<!ATTLIST ulist
+ %common.att;
+ spacing (normal|compact) #IMPLIED>
+]]>
+
+<!-- olist: Ordered list, typically numbered. -->
+<!ENTITY % olist.element "INCLUDE">
+<![%olist.element;[
+<!ELEMENT olist (item+)>
+]]>
+<!-- spacing attribute:
+ Use "normal" to get normal vertical spacing for items;
+ use "compact" to get less spacing. The default is dependent
+ on the stylesheet. -->
+<!ENTITY % olist.attlist "INCLUDE">
+<![%olist.attlist;[
+<!ATTLIST olist
+ %common.att;
+ spacing (normal|compact) #IMPLIED>
+]]>
+
+<!ENTITY % item.element "INCLUDE">
+<![%item.element;[
+<!ELEMENT item (%obj.mix;)+>
+]]>
+<!ENTITY % item.attlist "INCLUDE">
+<![%item.attlist;[
+<!ATTLIST item %common.att;>
+]]>
+
+<!-- slist: Simple list, typically with no mark. -->
+<!ENTITY % slist.element "INCLUDE">
+<![%slist.element;[
+<!ELEMENT slist (sitem+)>
+]]>
+<!ENTITY % slist.attlist "INCLUDE">
+<![%slist.attlist;[
+<!ATTLIST slist %common.att;>
+]]>
+
+<!ENTITY % sitem.element "INCLUDE">
+<![%sitem.element;[
+<!ELEMENT sitem (%p.pcd.mix;)*>
+]]>
+<!ENTITY % sitem.attlist "INCLUDE">
+<![%sitem.attlist;[
+<!ATTLIST sitem %common.att;>
+]]>
+
+<!-- glist: Glossary list, typically two-column. -->
+<!ENTITY % glist.element "INCLUDE">
+<![%glist.element;[
+<!ELEMENT glist (gitem+)>
+]]>
+<!ENTITY % glist.attlist "INCLUDE">
+<![%glist.attlist;[
+<!ATTLIST glist %common.att;>
+]]>
+
+<!ENTITY % gitem.element "INCLUDE">
+<![%gitem.element;[
+<!ELEMENT gitem (label, def)>
+]]>
+<!ENTITY % gitem.attlist "INCLUDE">
+<![%gitem.attlist;[
+<!ATTLIST gitem %common.att;>
+]]>
+
+<!ENTITY % label.element "INCLUDE">
+<![%label.element;[
+<!ELEMENT label (%label.pcd.mix;)*>
+]]>
+<!ENTITY % label.attlist "INCLUDE">
+<![%label.attlist;[
+<!ATTLIST label %common.att;>
+]]>
+
+<!ENTITY % def.element "INCLUDE">
+<![%def.element;[
+<!ELEMENT def (%obj.mix;)*>
+]]>
+<!ENTITY % def.attlist "INCLUDE">
+<![%def.attlist;[
+<!ATTLIST def %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Special lists ................................................. -->
+<!-- ............................................................... -->
+
+<!-- blist: Bibliography list. -->
+<!ENTITY % blist.element "INCLUDE">
+<![%blist.element;[
+<!ELEMENT blist (bibl+)>
+]]>
+<!ENTITY % blist.attlist "INCLUDE">
+<![%blist.attlist;[
+<!ATTLIST blist %common.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!ENTITY % bibl.element "INCLUDE">
+<![%bibl.element;[
+<!ELEMENT bibl (%bibl.pcd.mix;)*>
+]]>
+<!-- href attribute:
+ bibl optionally functions as a hypertext reference to the
+ referred-to resource through this attribute. E.g.:
+
+ <bibl href="http://www.my.com/doc.htm">My Document</bibl>
+ -->
+<!ENTITY % bibl.attlist "INCLUDE">
+<![%bibl.attlist;[
+<!ATTLIST bibl
+ %common.att;
+ %simple-xlink.att;
+ %href.att;
+ %user-replace.att;
+ %key.att;>
+]]>
+
+<!-- orglist: Organization member list. -->
+<!ENTITY % orglist.element "INCLUDE">
+<![%orglist.element;[
+<!ELEMENT orglist (member+)>
+]]>
+<!ENTITY % orglist.attlist "INCLUDE">
+<![%orglist.attlist;[
+<!ATTLIST orglist %common.att;>
+]]>
+
+<!--
+#1997-09-30: maler: Added optional affiliation.
+-->
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (name, affiliation?, role?)>
+]]>
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member %common.att;>
+]]>
+
+<!-- name (defined in "Specification header" above) -->
+<!-- affiliation (defined in "Specification header" above) -->
+
+<!ENTITY % role.element "INCLUDE">
+<![%role.element;[
+<!ELEMENT role (#PCDATA|phrase)*>
+]]>
+<!ENTITY % role.attlist "INCLUDE">
+<![%role.attlist;[
+<!ATTLIST role %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Notes ......................................................... -->
+<!-- ............................................................... -->
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (%obj.mix;)+>
+]]>
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note %common.att;>
+]]>
+
+<!--
+#1998-05-14: maler: Declared issue element.
+#2000-03-07: maler: Added head, source, resolution, and status.
+-->
+
+<!ENTITY % issue.element "INCLUDE">
+<![%issue.element;[
+<!ELEMENT issue (head?, source*, (%obj.mix;)+, resolution?)>
+]]>
+<!-- status attribute:
+ Indicates whether the issue is open or closed. Note that
+ the lack of a resolution element does not necessarily mean
+ that the issue is still open. -->
+<!ENTITY % issue.attlist "INCLUDE">
+<![%issue.attlist;[
+<!ATTLIST issue
+ id ID #REQUIRED
+ %role.att;
+ %diff.att;
+ status (open
+ |closed) "open"
+>
+]]>
+
+<!ENTITY % source.element "INCLUDE">
+<![%source.element;[
+<!ELEMENT source (%p.pcd.mix;)*>
+]]>
+<!ENTITY % source.attlist "INCLUDE">
+<![%source.attlist;[
+<!ATTLIST source
+ %common.att;>
+]]>
+
+<!ENTITY % resolution.element "INCLUDE">
+<![%resolution.element;[
+<!ELEMENT resolution (%obj.mix;)+>
+]]>
+<!ENTITY % resolution.attlist "INCLUDE">
+<![%resolution.attlist;[
+<!ATTLIST resolution %common.att;>
+]]>
+
+<!-- wfcnote: Well-formedness constraint note. -->
+<!ENTITY % wfcnote.element "INCLUDE">
+<![%wfcnote.element;[
+<!ELEMENT wfcnote (head, (%obj.mix;)+)>
+]]>
+<!-- ID attribute:
+ wfcnote must have an ID so that it can be pointed to
+ from a wfc element in a production. -->
+<!ENTITY % wfcnote.attlist "INCLUDE">
+<![%wfcnote.attlist;[
+<!ATTLIST wfcnote
+ %common-idreq.att;>
+]]>
+
+<!-- vcnote: Validity constraint note. -->
+<!ENTITY % vcnote.element "INCLUDE">
+<![%vcnote.element;[
+<!ELEMENT vcnote (head, (%obj.mix;)+)>
+]]>
+<!-- ID attribute:
+ vcnote must have an ID so that it can be pointed to
+ from a vc element in a production. -->
+<!ENTITY % vcnote.attlist "INCLUDE">
+<![%vcnote.attlist;[
+<!ATTLIST vcnote
+ %common-idreq.att;>
+]]>
+
+<!--
+#1998-05-21: maler: Declared generic constraintnote element.
+-->
+
+<!-- constraintnote: Generic constraint note. -->
+<!ENTITY % constraintnote.element "INCLUDE">
+<![%constraintnote.element;[
+<!ELEMENT constraintnote (head, (%obj.mix;)+)>
+]]>
+<!-- ID attribute:
+ constraintnote must have an ID so that it can be
+ pointed to from a constraint element in a production. -->
+<!-- type attribute:
+ constraintnote must have a type value keyword so that
+ it can be correctly characterized in the specification. -->
+<!ENTITY % constraintnote.attlist "INCLUDE">
+<![%constraintnote.attlist;[
+<!ATTLIST constraintnote
+ %common-idreq.att;
+ type NMTOKEN #REQUIRED>
+]]>
+
+<!-- ............................................................... -->
+<!-- Basic display elements ........................................ -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-23: maler: Added xml:space attribute.
+-->
+
+<!-- eg: Example element, with whitespace respected. -->
+<!ENTITY % eg.element "INCLUDE">
+<![%eg.element;[
+<!ELEMENT eg (%eg.pcd.mix;)*>
+]]>
+<!ENTITY % eg.attlist "INCLUDE">
+<![%eg.attlist;[
+<!ATTLIST eg
+ %common.att;
+ %xmlspace.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Removed the xml:attributes attribute.
+# Added %local.graphic.att;.
+-->
+
+<!-- graphic: Displayed graphic. Graphic data should be
+ displayed at the point where it is referenced. Not
+ actually conforming to XLink right now. -->
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+]]>
+<!-- source attribute:
+ The graphic data must reside at the location pointed to. -->
+<!ENTITY % local.graphic.att "">
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+ %common.att;
+ %simple-xlink.att;
+ source CDATA #REQUIRED
+ %auto-embed.att;
+ alt CDATA #IMPLIED
+ %local.graphic.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Added proto element structure.
+-->
+
+<!-- proto: Function prototype, in the XPath/XPointer style. -->
+<!ENTITY % proto.element "INCLUDE">
+<![%proto.element;[
+<!ELEMENT proto (arg*)>
+]]>
+
+<!ENTITY % local.proto.att "">
+<!ENTITY % proto.attlist "INCLUDE">
+<![%proto.attlist;[
+<!ATTLIST proto
+ %common.att;
+ %local.proto.att;
+ name NMTOKEN #REQUIRED
+ return-type %argtypes; #REQUIRED
+>
+]]>
+
+<!ENTITY % local.arg.att "">
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg EMPTY>
+]]>
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+ %common.att;
+ %local.arg.att;
+ type %argtypes; #REQUIRED
+ occur (opt|req) #IMPLIED
+>
+]]>
+
+<!--
+#2000-03-07: maler: Added example element.
+-->
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example (head?, (%obj.mix;)+)>
+]]>
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- EBNF .......................................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-11-28: maler: Added prodgroup to scrap and defined it.
+#1998-05-21: maler: Added constraint to prod.
+#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model.
+# Added headstyle attribute to scrap.
+-->
+
+<!-- scrap: Collection of EBNF language productions. -->
+<!ENTITY % scrap.element "INCLUDE">
+<![%scrap.element;[
+<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)>
+]]>
+<!-- lang attribute:
+ The scrap can link to a description of the language used,
+ found in a language element in the header.
+ headstyle attribute:
+ Allows a scrap title to be suppressed from output. To be
+ used only when a scrap title directly next to a section
+ title is distracting or repetetive. -->
+<!ENTITY % scrap.attlist "INCLUDE">
+<![%scrap.attlist;[
+<!ATTLIST scrap
+ %common.att;
+ lang IDREF #IMPLIED
+ headstyle (show|suppress) "show"
+>
+]]>
+
+<!-- prodgroup: Sub-collection of productions, needed for
+ formatting reasons. -->
+<!ENTITY % prodgroup.element "INCLUDE">
+<![%prodgroup.element;[
+<!ELEMENT prodgroup (prod+)>
+]]>
+<!-- pcw<n> attributes:
+ Presentational attributes to control the width
+ of the "pseudo-table" columns used to output
+ groups of productions. -->
+<!ENTITY % prodgroup.attlist "INCLUDE">
+<![%prodgroup.attlist;[
+<!ATTLIST prodgroup
+ %common.att;
+ pcw1 CDATA #IMPLIED
+ pcw2 CDATA #IMPLIED
+ pcw3 CDATA #IMPLIED
+ pcw4 CDATA #IMPLIED
+ pcw5 CDATA #IMPLIED
+>
+]]>
+
+<!-- prod: EBNF language production. -->
+<!ENTITY % prod.element "INCLUDE">
+<![%prod.element;[
+<!ELEMENT prod (lhs, (rhs, (com|wfc|vc|constraint)*)+)>
+]]>
+<!-- ID attribute:
+ The production must have an ID so that cross-references
+ (specref) and mentions of nonterminals (nt) can link to
+ it. -->
+<!ENTITY % prod.attlist "INCLUDE">
+<![%prod.attlist;[
+<!ATTLIST prod
+ %common-idreq.att;>
+]]>
+
+<!-- lhs: Left-hand side of production. -->
+<!ENTITY % lhs.element "INCLUDE">
+<![%lhs.element;[
+<!ELEMENT lhs (#PCDATA|phrase)*>
+]]>
+<!ENTITY % lhs.attlist "INCLUDE">
+<![%lhs.attlist;[
+<!ATTLIST lhs %common.att;>
+]]>
+
+<!-- rhs: Right-hand side of production; may have many
+ "right-hand sides," one to a line. -->
+<!ENTITY % rhs.element "INCLUDE">
+<![%rhs.element;[
+<!ELEMENT rhs (#PCDATA|phrase|nt|xnt|com)*>
+]]>
+<!ENTITY % rhs.attlist "INCLUDE">
+<![%rhs.attlist;[
+<!ATTLIST rhs %common.att;>
+]]>
+
+<!-- nt and xnt (defined in "Phrase-level elements" below) -->
+
+<!--
+#1997-11-28: maler: Added loc and bibref to com content.
+-->
+
+<!-- com: Production comment. -->
+<!ENTITY % com.element "INCLUDE">
+<![%com.element;[
+<!ELEMENT com (#PCDATA|phrase|loc|bibref)*>
+]]>
+<!ENTITY % com.attlist "INCLUDE">
+<![%com.attlist;[
+<!ATTLIST com %common.att;>
+]]>
+
+<!-- wfc: Reference to a well-formedness constraint; should
+ generate the head of the wfcnote pointed to. -->
+<!ENTITY % wfc.element "INCLUDE">
+<![%wfc.element;[
+<!ELEMENT wfc EMPTY>
+]]>
+<!-- def attribute:
+ Each well formedness tagline in a production must link to the
+ wfcnote that defines it. -->
+<!ENTITY % wfc.attlist "INCLUDE">
+<![%wfc.attlist;[
+<!ATTLIST wfc
+ %def-req.att;
+ %common.att;>
+]]>
+
+<!-- vc: Reference to a validity constraint; should generate
+ the head of the vcnote pointed to. -->
+<!ENTITY % vc.element "INCLUDE">
+<![%vc.element;[
+<!ELEMENT vc EMPTY>
+]]>
+<!-- def attribute:
+ Each validity tagline in a production must link to the vcnote
+ that defines it. -->
+<!ENTITY % vc.attlist "INCLUDE">
+<![%vc.attlist;[
+<!ATTLIST vc
+ %def-req.att;
+ %common.att;>
+]]>
+
+<!--
+#1998-05-21: maler: Declared generic constraint element.
+-->
+
+<!-- constraint: Reference to a generic constraint; should
+ generate the head of the constraintnote pointed to. -->
+<!ENTITY % constraint.element "INCLUDE">
+<![%constraint.element;[
+<!ELEMENT constraint EMPTY>
+]]>
+<!-- def attribute:
+ Each constraint tagline in a production must link to the
+ constraint note that defines it. -->
+<!ENTITY % constraint.attlist "INCLUDE">
+<![%constraint.attlist;[
+<!ATTLIST constraint
+ %def-req.att;
+ %common.att;>
+]]>
+
+<!--
+#1998-03-23: maler: Added xml:space attribute.
+-->
+
+<!-- bnf: Un-marked-up EBNF production, with whitespace
+ respected. -->
+<!ENTITY % bnf.element "INCLUDE">
+<![%bnf.element;[
+<!ELEMENT bnf (%eg.pcd.mix;)*>
+]]>
+<!ENTITY % bnf.attlist "INCLUDE">
+<![%bnf.attlist;[
+<!ATTLIST bnf
+ %common.att;
+ %xmlspace.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Declared prodrecap.
+-->
+
+<!-- prodrecap: Reference to production or bnf that appears
+ in its "normative" form elsewhere in the spec; should
+ generate a copy of the original production, without
+ a production number next to it. -->
+<!ENTITY % prodrecap.element "INCLUDE">
+<![%prodrecap.element;[
+<!ELEMENT prodrecap EMPTY>
+]]>
+<!ENTITY % prodrecap.attlist "INCLUDE">
+<![%prodrecap.attlist;[
+<!ATTLIST prodrecap
+ %common.att;
+ %ref-req.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Table ......................................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-10-16: maler: Added table mechanism.
+#1997-11-28: maler: Added non-null system ID to entity declaration.
+# Added HTML table module.
+#1997-12-29: maler: IGNOREd SGML Open table model.
+#1998-03-10: maler: Removed SGML Open table model.
+# Merged html-tbl.mod file into main file.
+# Added %common.att; to all HTML table elements.
+#1998-05-14: maler: Replaced table model with full HTML 4.0 model.
+# Removed htable in favor of table.
+# Removed htbody in favor of tbody.
+-->
+
+<!ENTITY % cellhalign.att
+ 'align (left|center
+ |right|justify
+ |char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED'>
+
+<!ENTITY % cellvalign.att
+ 'valign (top|middle
+ |bottom
+ |baseline) #IMPLIED'>
+
+<!ENTITY % thtd.att
+ 'abbr CDATA #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope (row
+ |col
+ |rowgroup
+ |colgroup) #IMPLIED
+ rowspan NMTOKEN "1"
+ colspan NMTOKEN "1"'>
+
+<!ENTITY % width.att
+ 'width CDATA #IMPLIED'>
+
+<!ENTITY % span.att
+ 'span NMTOKEN "1"'>
+
+<!-- table: HTML-based geometric table model. -->
+<!ENTITY % table.element "INCLUDE">
+<![%table.element;[
+<!ELEMENT table
+ (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+]]>
+<!ENTITY % table.attlist "INCLUDE">
+<![%table.attlist;[
+<!ATTLIST table
+ %common.att;
+ %width.att;
+ summary CDATA #IMPLIED
+ border CDATA #IMPLIED
+ frame (void|above
+ |below|hsides
+ |lhs|rhs
+ |vsides|box
+ |border) #IMPLIED
+ rules (none|groups
+ |rows|cols
+ |all) #IMPLIED
+ cellspacing CDATA #IMPLIED
+ cellpadding CDATA #IMPLIED>
+]]>
+
+<!ENTITY % caption.element "INCLUDE">
+<![%caption.element;[
+<!ELEMENT caption (%p.pcd.mix;)*>
+]]>
+<!ENTITY % caption.attlist "INCLUDE">
+<![%caption.attlist;[
+<!ATTLIST caption %common.att;>
+]]>
+
+<!ENTITY % col.element "INCLUDE">
+<![%col.element;[
+<!ELEMENT col EMPTY>
+]]>
+<!ENTITY % col.attlist "INCLUDE">
+<![%col.attlist;[
+<!ATTLIST col
+ %common.att;
+ %span.att;
+ %width.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % colgroup.element "INCLUDE">
+<![%colgroup.element;[
+<!ELEMENT colgroup (col)*>
+]]>
+<!ENTITY % colgroup.attlist "INCLUDE">
+<![%colgroup.attlist;[
+<!ATTLIST colgroup
+ %common.att;
+ %span.att;
+ %width.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % thead.element "INCLUDE">
+<![%thead.element;[
+<!ELEMENT thead (tr)+>
+]]>
+<!ENTITY % thead.attlist "INCLUDE">
+<![%thead.attlist;[
+<!ATTLIST thead
+ %common.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % tfoot.element "INCLUDE">
+<![%tfoot.element;[
+<!ELEMENT tfoot (tr)+>
+]]>
+<!ENTITY % tfoot.attlist "INCLUDE">
+<![%tfoot.attlist;[
+<!ATTLIST tfoot
+ %common.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % tbody.element "INCLUDE">
+<![%tbody.element;[
+<!ELEMENT tbody (tr)+>
+]]>
+<!ENTITY % tbody.attlist "INCLUDE">
+<![%tbody.attlist;[
+<!ATTLIST tbody
+ %common.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % tr.element "INCLUDE">
+<![%tr.element;[
+<!ELEMENT tr (th|td)+>
+]]>
+<!ENTITY % tr.attlist "INCLUDE">
+<![%tr.attlist;[
+<!ATTLIST tr
+ %common.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % th.element "INCLUDE">
+<![%th.element;[
+<!ELEMENT th (%p.pcd.mix;|%p.mix;)*>
+]]>
+<!ENTITY % th.attlist "INCLUDE">
+<![%th.attlist;[
+<!ATTLIST th
+ %common.att;
+ %thtd.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!ENTITY % td.element "INCLUDE">
+<![%td.element;[
+<!ELEMENT td (%p.pcd.mix;|%p.mix;)*>
+]]>
+<!ENTITY % td.attlist "INCLUDE">
+<![%td.attlist;[
+<!ATTLIST td
+ %common.att;
+ %thtd.att;
+ %cellhalign.att;
+ %cellvalign.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- IDL structures for DOM specifications ......................... -->
+<!-- ............................................................... -->
+
+<!-- ............................................................... -->
+<!-- Specialized entities for classes .............................. -->
+
+<!ENTITY % idl-desc.class
+ "p|note">
+
+<!ENTITY % idl-tdef.class
+ "typedef|constant|exception|reference|group">
+
+<!ENTITY % idl-mod.class
+ "module|interface">
+
+<!ENTITY % idl-struct.class
+ "struct|enum|sequence|union|typename">
+
+<!ENTITY % idl-meth.class
+ "method|attribute">
+
+<!-- ............................................................... -->
+<!-- Specialized entities for mixtures ............................. -->
+
+<!-- Quick reference to content model mixtures:
+
+ desc tdef mod struct meth
+group x x x x x
+definitions, module x x x
+interface x x x
+typedef, case, component x
+-->
+
+<!ENTITY % idl-grp.mix
+ "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;
+ |%idl-struct.class;|%idl-meth.class;">
+
+<!ENTITY % idl-defn.mix
+ "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;">
+
+<!ENTITY % idl-intfc.mix
+ "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;">
+
+<!ENTITY % idl-type.mix
+ "%idl-struct.class;">
+
+<!-- ............................................................... -->
+<!-- Specialized entities for common attributes .................... -->
+
+<!-- name attribute:
+ Provides a name. Required. -->
+<!ENTITY % idl-name.att
+ 'name CDATA #REQUIRED'>
+
+<!-- type attribute:
+ Provides a type. Required. -->
+<!ENTITY % idl-type.att
+ 'type CDATA #REQUIRED'>
+
+<!-- ............................................................... -->
+<!-- Common IDL element ............................................ -->
+
+<!ENTITY % descr.element "INCLUDE">
+<![%descr.element;[
+<!ELEMENT descr ((%obj.mix;)*)>
+]]>
+<!ENTITY % descr.attlist "INCLUDE">
+<![%descr.attlist;[
+<!ATTLIST descr %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- IDL definition elements ....................................... -->
+
+<!-- definitions: Top-level element for definitions. -->
+<!ENTITY % definitions.element "INCLUDE">
+<![%definitions.element;[
+<!ELEMENT definitions (%idl-defn.mix;)+>
+]]>
+<!ENTITY % definitions.attlist "INCLUDE">
+<![%definitions.attlist;[
+<!ATTLIST definitions %common.att;>
+]]>
+
+<!-- group: Element used to group a set of definitions. -->
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group (descr, (%idl-grp.mix;)*)>
+]]>
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!-- interface: Definition of an interface. -->
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (descr, (%idl-intfc.mix;)*)>
+]]>
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+ %common.att;
+ %idl-name.att;
+ inherits CDATA #IMPLIED>
+]]>
+
+<!-- module: Definition of a module. -->
+<!ENTITY % module.element "INCLUDE">
+<![%module.element;[
+<!ELEMENT module (descr, (%idl-defn.mix;)*)>
+]]>
+<!ENTITY % module.attlist "INCLUDE">
+<![%module.attlist;[
+<!ATTLIST module
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!-- reference: Reference to some other declaration. -->
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference EMPTY>
+]]>
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+ %common.att;
+ declaration IDREF #REQUIRED>
+]]>
+
+<!-- typedef: Definition of a named type. -->
+<!ENTITY % typedef.element "INCLUDE">
+<![%typedef.element;[
+<!ELEMENT typedef (descr, (%idl-type.mix;))>
+]]>
+<!ENTITY % typedef.attlist "INCLUDE">
+<![%typedef.attlist;[
+<!ATTLIST typedef
+ %common.att;
+ %idl-name.att;
+ array.size NMTOKEN #IMPLIED>
+]]>
+
+<!-- struct: Declaration of a struct type. -->
+<!ENTITY % struct.element "INCLUDE">
+<![%struct.element;[
+<!ELEMENT struct (descr, component+)>
+]]>
+<!ENTITY % struct.attlist "INCLUDE">
+<![%struct.attlist;[
+<!ATTLIST struct
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!-- component: Declaration of a structural member. -->
+<!ENTITY % component.element "INCLUDE">
+<![%component.element;[
+<!ELEMENT component (%idl-type.mix;)>
+]]>
+<!ENTITY % component.attlist "INCLUDE">
+<![%component.attlist;[
+<!ATTLIST component
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!-- union: Declaration of a union type. -->
+<!ENTITY % union.element "INCLUDE">
+<![%union.element;[
+<!ELEMENT union (descr, case+)>
+]]>
+<!ENTITY % union.attlist "INCLUDE">
+<![%union.attlist;[
+<!ATTLIST union
+ %common.att;
+ %idl-name.att;
+ switch.type CDATA #REQUIRED>
+]]>
+
+<!ENTITY % case.element "INCLUDE">
+<![%case.element;[
+<!ELEMENT case (descr, (%idl-type.mix;))>
+]]>
+<!ENTITY % case.attlist "INCLUDE">
+<![%case.attlist;[
+<!ATTLIST case
+ %common.att;
+ labels CDATA #REQUIRED>
+]]>
+
+<!-- enum: Declaration of an enum type. -->
+<!ENTITY % enum.element "INCLUDE">
+<![%enum.element;[
+<!ELEMENT enum (descr, enumerator+)>
+]]>
+<!ENTITY % enum.attlist "INCLUDE">
+<![%enum.attlist;[
+<!ATTLIST enum
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!ENTITY % enumerator.element "INCLUDE">
+<![%enumerator.element;[
+<!ELEMENT enumerator (descr)>
+]]>
+<!ENTITY % enumerator.attlist "INCLUDE">
+<![%enumerator.attlist;[
+<!ATTLIST enumerator
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!-- sequence: Declaration of a sequence type (not named). -->
+<!ENTITY % sequence.element "INCLUDE">
+<![%sequence.element;[
+<!ELEMENT sequence (sequence*)>
+]]>
+<!ENTITY % sequence.attlist "INCLUDE">
+<![%sequence.attlist;[
+<!ATTLIST sequence
+ %common.att;
+ %idl-type.att;
+ size NMTOKEN #IMPLIED>
+]]>
+
+<!-- constant: Declaration of a named constant. -->
+<!ENTITY % constant.element "INCLUDE">
+<![%constant.element;[
+<!ELEMENT constant (descr)>
+]]>
+<!ENTITY % constant.attlist "INCLUDE">
+<![%constant.attlist;[
+<!ATTLIST constant
+ %common.att;
+ %idl-name.att;
+ %idl-type.att;
+ value CDATA #REQUIRED>
+]]>
+
+<!-- exception: Declaration of an exception. -->
+<!ENTITY % exception.element "INCLUDE">
+<![%exception.element;[
+<!ELEMENT exception (descr, component*)>
+]]>
+<!ENTITY % exception.attlist "INCLUDE">
+<![%exception.attlist;[
+<!ATTLIST exception
+ %common.att;
+ %idl-name.att;>
+]]>
+<!-- component (defined under struct, above)-->
+
+<!-- attribute: Declaration of an attribute (data member). -->
+<!ENTITY % attribute.element "INCLUDE">
+<![%attribute.element;[
+<!ELEMENT attribute (descr)>
+]]>
+<!ENTITY % attribute.attlist "INCLUDE">
+<![%attribute.attlist;[
+<!ATTLIST attribute
+ %common.att;
+ %idl-name.att;
+ %idl-type.att;
+ readonly (yes
+ |no) "no">
+]]>
+
+<!-- method: Declaration of a method. -->
+<!ENTITY % method.element "INCLUDE">
+<![%method.element;[
+<!ELEMENT method (descr, parameters, returns, raises)>
+]]>
+<!ENTITY % method.attlist "INCLUDE">
+<![%method.attlist;[
+<!ATTLIST method
+ %common.att;
+ %idl-name.att;>
+]]>
+
+<!ENTITY % parameters.element "INCLUDE">
+<![%parameters.element;[
+<!ELEMENT parameters (param*)>
+]]>
+<!ENTITY % parameters.attlist "INCLUDE">
+<![%parameters.attlist;[
+<!ATTLIST parameters %common.att;>
+]]>
+
+<!ENTITY % param.element "INCLUDE">
+<![%param.element;[
+<!ELEMENT param (descr)>
+]]>
+<!ENTITY % param.attlist "INCLUDE">
+<![%param.attlist;[
+<!ATTLIST param
+ %common.att;
+ %idl-name.att;
+ %idl-type.att;
+ attr (in
+ |out
+ |inout) "inout">
+]]>
+
+<!ENTITY % returns.element "INCLUDE">
+<![%returns.element;[
+<!ELEMENT returns (descr)>
+]]>
+<!ENTITY % returns.attlist "INCLUDE">
+<![%returns.attlist;[
+<!ATTLIST returns
+ %common.att;
+ %idl-type.att;>
+]]>
+
+<!ENTITY % raises.element "INCLUDE">
+<![%raises.element;[
+<!ELEMENT raises (exception*)>
+]]>
+<!-- exception (defined under constant, above)-->
+
+<!ENTITY % typename.element "INCLUDE">
+<![%typename.element;[
+<!ELEMENT typename (#PCDATA|phrase)*>
+]]>
+<!ENTITY % typename.attlist "INCLUDE">
+<![%typename.attlist;[
+<!ATTLIST typename %common.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Phrase-level elements ......................................... -->
+<!-- ............................................................... -->
+
+<!--
+#2000-03-07: maler: Added att and attval elements.
+-->
+
+<!-- att: Attribute name. -->
+<!ENTITY % att.element "INCLUDE">
+<![%att.element;[
+<!ELEMENT att (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % att.attlist "INCLUDE">
+<![%att.attlist;[
+<!ATTLIST att %common.att;>
+]]>
+
+<!-- attval: Attribute value. -->
+<!ENTITY % attval.element "INCLUDE">
+<![%attval.element;[
+<!ELEMENT attval (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % attval.attlist "INCLUDE">
+<![%attval.attlist;[
+<!ATTLIST attval %common.att;>
+]]>
+
+<!-- bibref: Reference to a bibliography list entry; should
+ generate, in square brackets, "key" on bibl. -->
+<!ENTITY % bibref.element "INCLUDE">
+<![%bibref.element;[
+<!ELEMENT bibref EMPTY>
+]]>
+<!-- ref attribute:
+ A bibliography reference must link to the bibl element that
+ describes the resource. -->
+<!ENTITY % bibref.attlist "INCLUDE">
+<![%bibref.attlist;[
+<!ATTLIST bibref
+ %common.att;
+ %ref-req.att;>
+]]>
+
+<!ENTITY % code.element "INCLUDE">
+<![%code.element;[
+<!ELEMENT code (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % code.attlist "INCLUDE">
+<![%code.attlist;[
+<!ATTLIST code %common.att;>
+]]>
+
+<!--
+#1998-03-10: maler: Declared ednote and related elements.
+#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;.
+-->
+
+<!-- ednote: Editorial note for communication among editors. -->
+<!ENTITY % ednote.element "INCLUDE">
+<![%ednote.element;[
+<!ELEMENT ednote (name?, date?, edtext)>
+]]>
+<!ENTITY % ednote.attlist "INCLUDE">
+<![%ednote.attlist;[
+<!ATTLIST ednote %common.att;>
+]]>
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (#PCDATA|phrase)*>
+]]>
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date %common.att;>
+]]>
+
+<!ENTITY % edtext.element "INCLUDE">
+<![%edtext.element;[
+<!ELEMENT edtext (%p.pcd.mix;)*>
+]]>
+<!ENTITY % edtext.attlist "INCLUDE">
+<![%edtext.attlist;[
+<!ATTLIST edtext %common.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Added el element.
+-->
+
+<!-- el: Element type name (GI). -->
+<!ENTITY % el.element "INCLUDE">
+<![%el.element;[
+<!ELEMENT el (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % el.attlist "INCLUDE">
+<![%el.attlist;[
+<!ATTLIST el %common.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Expanded emph to %p.pcd.mix;.
+-->
+
+<!ENTITY % emph.element "INCLUDE">
+<![%emph.element;[
+<!ELEMENT emph (%p.pcd.mix;)*>
+]]>
+<!ENTITY % emph.attlist "INCLUDE">
+<![%emph.attlist;[
+<!ATTLIST emph %common.att;>
+]]>
+
+<!-- footnote: Both footnote content and call to footnote. -->
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote (%obj.mix;)+>
+]]>
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote %common.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Added function and gave it content of
+# %tech.pcd.mix; instead of XPath's #PCDATA.
+-->
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function %common.att;>
+]]>
+
+<!ENTITY % kw.element "INCLUDE">
+<![%kw.element;[
+<!ELEMENT kw (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % kw.attlist "INCLUDE">
+<![%kw.attlist;[
+<!ATTLIST kw %common.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!-- loc: Generic link to a Web resource, similar to HTML's A. -->
+<!ENTITY % loc.element "INCLUDE">
+<![%loc.element;[
+<!ELEMENT loc (#PCDATA|phrase)*>
+]]>
+<!-- href attribute:
+ The purpose of a loc element is to function as a A-like
+ hypertext link to a resource. (Ideally, the content of loc
+ will also mention the URI of the resource, so that readers of
+ the printed version will be able to locate the resource.) E.g.:
+
+<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc>
+ -->
+<!ENTITY % loc.attlist "INCLUDE">
+<![%loc.attlist;[
+<!ATTLIST loc
+ %common.att;
+ %simple-xlink.att;
+ %href-req.att;
+ %user-replace.att;>
+]]>
+
+<!-- nt: Mention of a nonterminal in text, along with a link to
+ the production in the current document that defines it. -->
+<!ENTITY % nt.element "INCLUDE">
+<![%nt.element;[
+<!ELEMENT nt (#PCDATA|phrase)*>
+]]>
+<!-- def attribute:
+ The nonterminal must link to the production that defines
+ it. -->
+<!ENTITY % nt.attlist "INCLUDE">
+<![%nt.attlist;[
+<!ATTLIST nt
+ %common.att;
+ %def-req.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Declared phrase.
+-->
+
+<!-- phrase: "Attribute hanger" for small bits of (e.g.) differenced
+ text in a paragraph or similar, when another element isn't handy.
+ Beware that its content model may allow more nested elements than
+ would normally be allowed in some contexts. -->
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%p.pcd.mix;)*>
+]]>
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase %common.att;>
+]]>
+
+<!--
+#1998-03-10: maler: Declared quote.
+-->
+
+<!-- quote: Scare quotes and other purely presentational quotes. -->
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%p.pcd.mix;)*>
+]]>
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote %common.att;>
+]]>
+
+<!-- specref: Reference to a div, olist item, prod, or issue
+ in the current document; should generate italic "[n.n],
+ Section Title" for div, "n" for numbered item, "[n]" for
+ production, or "Issue id" for issue. -->
+<!ENTITY % specref.element "INCLUDE">
+<![%specref.element;[
+<!ELEMENT specref EMPTY>
+]]>
+<!-- ref attribute:
+ The purpose of a specref element is to link to a div, item
+ in an olist, or production in the current spec. -->
+<!ENTITY % specref.attlist "INCLUDE">
+<![%specref.attlist;[
+<!ATTLIST specref
+ %common.att;
+ %ref-req.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Added sub and sup.
+-->
+
+<!-- sub: Subscript. -->
+<!ENTITY % sub.element "INCLUDE">
+<![%sub.element;[
+<!ELEMENT sub (#PCDATA|phrase)*>
+]]>
+<!ENTITY % sub.attlist "INCLUDE">
+<![%sub.attlist;[
+<!ATTLIST sub %common.att;>
+]]>
+
+<!-- sup: Superscript. -->
+<!ENTITY % sup.element "INCLUDE">
+<![%sup.element;[
+<!ELEMENT sup (#PCDATA|phrase)*>
+]]>
+<!ENTITY % sup.attlist "INCLUDE">
+<![%sup.attlist;[
+<!ATTLIST sup %common.att;>
+]]>
+
+<!-- term: The term in text that is being defined in text. -->
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (#PCDATA|phrase)*>
+]]>
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term %common.att;>
+]]>
+
+<!-- termdef: Definition of a term in text. -->
+<!ENTITY % termdef.element "INCLUDE">
+<![%termdef.element;[
+<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
+]]>
+<!-- ID attribute:
+ A term definition must have an ID so that it can be linked
+ to from termref elements. -->
+<!-- term attribute:
+ The canonical form of the term or phrase being defined must
+ appear in this attribute, even if the term or phrase also
+ appears in the element content in identical form (e.g., in
+ the term element). -->
+<!ENTITY % termdef.attlist "INCLUDE">
+<![%termdef.attlist;[
+<!ATTLIST termdef
+ %common-idreq.att;
+ term CDATA #REQUIRED>
+]]>
+
+<!-- termref: Mention of a term, along with a link to the
+ definition in the current document. -->
+<!ENTITY % termref.element "INCLUDE">
+<![%termref.element;[
+<!ELEMENT termref (#PCDATA|phrase)*>
+]]>
+<!-- ref attribute:
+ A term reference must link to the termdef element that
+ defines the term. -->
+<!ENTITY % termref.attlist "INCLUDE">
+<![%termref.attlist;[
+<!ATTLIST termref
+ %common.att;
+ %def-req.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!-- titleref: Citation of another document, which can also
+ link to that document if it is a Web resource. -->
+<!ENTITY % titleref.element "INCLUDE">
+<![%titleref.element;[
+<!ELEMENT titleref (#PCDATA|phrase)*>
+]]>
+<!-- href attribute:
+ A title reference can optionally function as a hypertext
+ link to the resource with this title. E.g.:
+
+<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc>
+ -->
+
+<!ENTITY % titleref.attlist "INCLUDE">
+<![%titleref.attlist;[
+<!ATTLIST titleref
+ %common.att;
+ %simple-xlink.att;
+ %href.att;
+ %user-new.att;>
+]]>
+
+<!--
+#2000-03-07: maler: Added var.
+-->
+
+<!-- var: String standing for a variable value that the user
+ or system will supply. For example: "For each node
+ <var>x</var> in this node-set..." -->
+<!ENTITY % var.element "INCLUDE">
+<![%var.element;[
+<!ELEMENT var (%tech.pcd.mix;)*>
+]]>
+<!ENTITY % var.attlist "INCLUDE">
+<![%var.attlist;[
+<!ATTLIST var %common.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!-- xnt: Mention of a nonterminal in text, along with a link to
+ the production in another document that defines it. -->
+<!ENTITY % xnt.element "INCLUDE">
+<![%xnt.element;[
+<!ELEMENT xnt (#PCDATA|phrase)*>
+]]>
+<!-- href attribute:
+ The nonterminal must hyperlink to a resource that serves
+ to define it (e.g., a production in a related XML
+ specification). E.g.:
+
+<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt>
+ -->
+
+<!ENTITY % xnt.attlist "INCLUDE">
+<![%xnt.attlist;[
+<!ATTLIST xnt
+ %common.att;
+ %simple-xlink.att;
+ %href-req.att;
+ %user-new.att;>
+]]>
+
+<!--
+#1997-12-29: maler: Declared xspecref.
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!-- xspecref: Reference to a div, olist item, prod, or issue
+ in a related specification document; should generate
+ no special text. -->
+<!ENTITY % xspecref.element "INCLUDE">
+<![%xspecref.element;[
+<!ELEMENT xspecref (#PCDATA|phrase)*>
+]]>
+<!-- href attribute:
+ The spec reference must hyperlink to the resource to
+ cross-refer to (e.g., a section in a related XML
+ specification). E.g.:
+
+<xspecref href="http://www.w3.org/TR/spec.htm#sec2">
+the section on constraints</xspecref>
+ -->
+
+<!ENTITY % xspecref.attlist "INCLUDE">
+<![%xspecref.attlist;[
+<!ATTLIST xspecref
+ %common.att;
+ %simple-xlink.att;
+ %href-req.att;
+ %user-new.att;>
+]]>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!-- termref: Mention of a term, along with a link to the
+ definition in a related document. -->
+<!ENTITY % xtermref.element "INCLUDE">
+<![%xtermref.element;[
+<!ELEMENT xtermref (#PCDATA|phrase)*>
+]]>
+<!-- href attribute:
+ The term reference must hyperlink to the resource that
+ serves to define the term (e.g., a term definition in
+ a related XML specification). E.g.:
+
+<xtermref href="http://www.w3.org/TR/spec.htm#term5">
+entity
+</xtermref>
+ -->
+
+<!ENTITY % xtermref.attlist "INCLUDE">
+<![%xtermref.attlist;[
+<!ATTLIST xtermref
+ %common.att;
+ %simple-xlink.att;
+ %href-req.att;
+ %user-new.att;>
+]]>
+
+<!-- ............................................................... -->
+<!-- Unused elements for ADEPT ..................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-09-30: maler: Added unusued elements.
+#1997-10-14: maler: Fixed div to move nested div to the mixture.
+#1998-05-14: maler: Added key-term, htable, and htbody.
+#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist.
+-->
+
+<!-- The following elements are purposely declared but never
+ referenced. Declaring them allows them to be pasted from
+ an HTML document, an earlier version of an XMLspec document,
+ or a DocBook document into a document using this DTD in ADEPT.
+ The ATD Context Transformation mechanism will try to convert
+ them to the appropriate element for this DTD. While this
+ conversion will not work for all fragments, it does allow many
+ cases to work reasonably well. -->
+
+<!ENTITY % div.element "INCLUDE">
+<![%div.element;[
+<!ELEMENT div
+ (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
+]]>
+<!ENTITY % h1.element "INCLUDE">
+<![%h1.element;[
+<!ELEMENT h1 (%head.pcd.mix;|em|a)*>
+]]>
+<!ENTITY % h2.element "INCLUDE">
+<![%h2.element;[
+<!ELEMENT h2 (%head.pcd.mix;|em|a)*>
+]]>
+<!ENTITY % h3.element "INCLUDE">
+<![%h3.element;[
+<!ELEMENT h3 (%head.pcd.mix;|em|a)*>
+]]>
+<!ENTITY % h4.element "INCLUDE">
+<![%h4.element;[
+<!ELEMENT h4 (%head.pcd.mix;|em|a)*>
+]]>
+<!ENTITY % h5.element "INCLUDE">
+<![%h5.element;[
+<!ELEMENT h5 (%head.pcd.mix;|em|a)*>
+]]>
+<!ENTITY % h6.element "INCLUDE">
+<![%h6.element;[
+<!ELEMENT h6 (%head.pcd.mix;|em|a)*>
+]]>
+<!ENTITY % pre.element "INCLUDE">
+<![%pre.element;[
+<!ELEMENT pre (%eg.pcd.mix;|em)*>
+]]>
+<!ENTITY % ul.element "INCLUDE">
+<![%ul.element;[
+<!ELEMENT ul (item|li)*>
+]]>
+<!ENTITY % ol.element "INCLUDE">
+<![%ol.element;[
+<!ELEMENT ol (item|li)*>
+]]>
+<!ENTITY % li.element "INCLUDE">
+<![%li.element;[
+<!ELEMENT li (#PCDATA|%obj.mix;)*>
+]]>
+<!ENTITY % em.element "INCLUDE">
+<![%em.element;[
+<!ELEMENT em (#PCDATA)*>
+]]>
+<!ENTITY % a.element "INCLUDE">
+<![%a.element;[
+<!ELEMENT a (#PCDATA)*>
+]]>
+
+<!ENTITY % key-term.element "INCLUDE">
+<![%key-term.element;[
+<!ELEMENT key-term (#PCDATA)*>
+]]>
+<!ENTITY % htable.element "INCLUDE">
+<![%htable.element;[
+<!ELEMENT htable
+ (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+]]>
+<!ENTITY % htbody.element "INCLUDE">
+<![%htbody.element;[
+<!ELEMENT htbody (tr)+>
+]]>
+<!ENTITY % statusp.element "INCLUDE">
+<![%statusp.element;[
+<!ELEMENT statusp (%p.pcd.mix;|%p.mix;)*>
+]]>
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist (listitem*)>
+]]>
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist (listitem*)>
+]]>
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem (para*)>
+]]>
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (#PCDATA)*>
+]]>
+
+<!-- ............................................................... -->
+<!-- Local Elements ................................................ -->
+<!-- ............................................................... -->
+
+<!--
+#2003-04-05: gadams: Add local element declaration inclusion
+-->
+<!ENTITY % XMLSPEC.local.inc "IGNORE">
+<!ENTITY % XMLSPEC.local.mod
+ PUBLIC "-//W3C//DTD XMLSPEC Local Elements//EN"
+ "xmlspec-local.mod">
+<![%XMLSPEC.local.inc;[
+%XMLSPEC.local.mod;
+]]>
+
+<!-- ............................................................... -->
+<!-- Change history ................................................ -->
+<!-- ............................................................... -->
+
+<!--
+#This revision history is no longer being maintained. See the CVS log
+#for detailed revisions history.
+#####################################################################
+#1997-08-18: maler
+#- Did a major revision.
+#1997-09-10: maler
+#- Updated FPI.
+#- Removed namekey element and put key attribute on name element.
+#- Made statusp element and supporting entities.
+#- Added slist element with sitem+ content.
+#- Required head on scrap and added new bnf subelement.
+#- Added an xnt element and allowed it and nt in regular text and rhs.
+#- Removed the ntref element.
+#- Added back the com element to the content of rhs.
+#- Added a key attribute to bibl.
+#- Removed the ident element.
+#- Added a term element to be used inside termdef.
+#- Added an xtermref element parallel to termref.
+#- Beefed up DTD comments.
+#1997-09-12: maler
+#- Allowed term element in general text.
+#- Changed bibref to EMPTY.
+#- Added ref.class to termdef.pcd.mix.
+#1997-09-14: maler
+#- Changed main attribute of xtermref from def to href.
+#- Added termdef.class to label contents.
+#1997-09-30: maler
+#- Added character entity module and added new entities.
+#- Removed p from appearing directly in self; created %p.mix;.
+#- Added inform-div (non-normative division) element.
+#- Fixed xtermref comment to mention href, not ref.
+#- Extended orglist model to allow optional affiliation.
+#- Modified author to make affiliation optional.
+#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
+#- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
+#- Added unused HTML elements.
+#- Put empty system ID next to public ID in entity declarations.
+#1997-10-14: maler
+#- Fixed "unused" div content model to move nested div to mixture.
+#1997-10-16: maler
+#- Added SGML Open Exchange tables.
+#1997-11-28: maler
+#- Added support for prodgroup and its attributes.
+#- Added support for HTML tables.
+#- Added loc and bibref to content of com.
+#- Added loc to general p content models.
+#- Allowed p as alternative to statusp in status.
+#- Added non-null system IDs to external parameter entity declarations.
+#- (Modified the SGML Open table module to make it XML-compliant.)
+#- (Modified the character entity module.)
+#1997-12-29: maler
+#- Moved #PCDATA occurrences to come before GIs in content models.
+#- Removed use of the SGML Open table module.
+#- Added xspecref element.
+#- Ensured that all FPIs contain 4-digit year.
+#- (Modified the character entity module.)
+#1998-03-10: maler
+#- Merged the character entity and table modules into the main file.
+#- Added ldquo and rdquo entities.
+#- Added common attributes to prodgroup.
+#- Made the email element in header optional.
+#- Removed reference to the SGML Open table model.
+#- Added ednote element.
+#- Added quote element.
+#- Updated XLink usage to reflect 3 March 1998 WD.
+#- Added "local" entities to the class entities for customization.
+#- Parameterized several content models to allow for customization.
+#1998-03-23: maler
+#- Cleaned up some comments and removed some others.
+#- Added xml:space semi-common attribute to eg and bnf elements.
+#- Added show and embed attributes on all the uses of href.
+#- Added %common.att; to all HTML table elements.
+#- Added a real URI to the "typical invocation" comment.
+#1998-05-14: maler
+#- Fixed mdash, ldquo, and rdquo character entities.
+#- Switched to the full HTML 4.0 table model.
+#- Removed htable/htbody elements and replaced them with table/tbody.
+#- Added issue element to %note.class; and declared it.
+#- Allowed prevlocs and latestloc in either order.
+#- Added key-term, htable, htbody, and statusp as unused elements.
+#- Removed real statusp element in favor of plain p.
+#1998-05-21: maler
+#- Declared generic constraint and constraintnote elements.
+#- Added constraintnote to %note.class;.
+#- Added constraint to %eg.pcd.mix; and prod content model.
+#1998-08-22: maler
+#- Fixed %illus.class; to mention table instead of htable.
+#- Added definitions to %illus.class; for DOM model.
+#- Added DOM definitions element and its substructure.
+#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED.
+#- Added clarifying comments to href-using elements.
+#1998-11-30: maler
+#- Added new unused elements to support DocBook translation.
+#- Updated maler phone numbers.
+#1998-12-3: maler
+#- Fixed character entities with respect to escaping of ampersands.
+#- Added many more explanatory comments.
+#1999-07-02: maler
+#- Added %loc.class; to all PCD mixes that didn't already have it.
+#- Removed unused %loc.pcd.mix;.
+#- Made version in spec header optional.
+#- Added three new attributes to spec.
+#- Broadened content of edtext.
+#- Added optional copyright element to header.
+#- Reorganized XLink-related parameter entities; added xmlns:xlink.
+#- Changed edtext content from #PCDATA to %p.pcd.mix;.
+#- Added show/actuate atts and default values to all href elements.
+#- Changed versioning scheme from 8-digit dates to version numbers.
+#- Added w3c-doctype, other-doctype, status atts to spec element.
+#- Added prodrecap element inside scrap.
+#- Added headstyle attribute to scrap.
+#2000-03-07: maler
+#- Added proto element, its arg subelement, and the %argtypes; entity.
+#- Added function, var, sub, sup, phrase, el, att, attval elements.
+#- Expanded emph to %p.pcd.mix;.
+#- Allowed status and abstract to appear in the opposite order.
+#- Updated XLink usage to the latest WD, except for href and source.
+#- Removed the xml:attributes attribute from graphic.
+#- Added %local.graphic.att; to graphic.
+#- Added common diff attribute.
+#- Added div5 element.
+#- Broadened content models of publoc, prevlocs, and latestloc.
+#- Added head, source, resolution, and status attribute to issue.
+#- Added cr, issues, and dispcmts to w3c-doctype attribute on spec.
+#- Added example element.
+-->
+
+<!-- ............................................................... -->
+<!-- End of XML specification DTD .................................. -->
+<!-- ............................................................... -->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/old/req/xmlspec.xsl Mon Sep 29 02:56:35 2008 +0000
@@ -0,0 +1,2586 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets. Do not edit this file.-->
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" exclude-result-prefixes="saxon" version="1.0">
+
+<!-- ====================================================================== -->
+<!-- xmlspec.xsl: An HTML XSL[1] Stylesheet for XML Spec V2.1[2] markup
+
+ Version: $Id$
+
+ URI: http://dev.w3.org/cvsweb/spec-prod/html/xmlspec.xsl
+
+ Authors: Norman Walsh (norman.walsh@sun.com)
+ Chris Maden (crism@lexica.net)
+ Ben Trafford (ben@legendary.org)
+ Eve Maler (eve.maler@sun.com)
+ Henry S. Thompson (ht@cogsci.ed.ac.uk)
+
+ Date: Created 07 September 1999
+ Last updated $Date$ by $Author$
+
+ Copyright (C) 2000, 2001, 2002 Sun Microsystems, Inc. All Rights Reserved.
+ This document is governed by the W3C Software License[3] as
+ described in the FAQ[4].
+
+ [1] http://www.w3.org/TR/xslt
+ [2] http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm
+ [3] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+ [4] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+
+ Notes:
+
+ This stylesheet attempts to implement the XML Specification V2.1
+ DTD. Documents conforming to earlier DTDs may not be correctly
+ transformed.
+
+ ChangeLog: (See also: CVS ChangeLog)
+
+ 15 August 2002: Norman Walsh, <Norman.Walsh@Sun.COM>
+ - Version 1.3 released at http://www.w3.org/2002/xmlspec/html/1.3/xmlspec.xsl
+ There have never been any "official" releases before, so the version number
+ is arbitrary.
+
+ 15 August 2001: Hugo Haas <hugo@w3.org>
+ - Slightly modified the status sentence introducing editors'
+ copies.
+ - Now using role to distinguish editors' copies: e.g.
+ <spec w3c-doctype="wd" role="editors-copy">
+
+ 14 August 2001: Hugo Haas <hugo@w3.org>
+ - If w3c-doctype is not a W3C TR, do not use a Note style
+ sheet, use <http://www.w3.org/StyleSheets/TR/base.css>
+ instead.
+ - If the other-doctype is "editors-copy", do not use the W3C
+ logo and mark the document as such in the status section.
+
+ 12 Jun 2001: (Norman.Walsh@Sun.COM)
+ - Support non-tabular examples. If tabular.examples is non-zero,
+ tables will be used for examples, otherwise nested divs and
+ CSS will be used. tabular.examples is *zero* by default.
+
+ 06 Jun 2001: (Norman.Walsh@Sun.COM)
+ - Support copyright element in header; use the content of that
+ element if it is present, otherwise use the auto-generated
+ copyright statement.
+
+ 15 May 2001: (Norman.Walsh@Sun.COM)
+ - Changed copyright link to point to dated IPR statement:
+ http://www.w3.org/Consortium/Legal/ipr-notice-20000612
+
+ 25 Sep 2000: (Norman.Walsh@East.Sun.COM)
+ - Sync'd with Eve's version:
+ o Concatenated each inline element's output all on one line
+ to avoid spurious spaces in the output. (This is really an
+ IE bug, but...) (15 Sep 2000)
+ o Updated crism's email address in header (7 Sep 2000)
+ o Changed handling of affiliation to use comma instead of
+ parentheses (9 Aug 2000)
+
+ 14 Aug 2000: (Norman.Walsh@East.Sun.COM)
+
+ - Added additional.title param (for diffspec.xsl to change)
+ - Fixed URI of W3C home icon
+ - Made CSS stylesheet selection depend on the w3c-doctype attribute
+ of spec instead of the w3c-doctype element in the header
+
+ 26 Jul 2000: (Norman.Walsh@East.Sun.COM)
+
+ - Improved semantics of specref. Added xsl:message for unsupported
+ cases. (I'm by no means confident that I've covered the whole
+ list.)
+ - Support @role on author.
+ - Make lhs/rhs "code" in EBNF.
+ - Fixed bug in ID/IDREF linking.
+ - More effectively disabled special markup for showing @diffed
+ versions
+
+ 21 Jul 2000: (Norman.Walsh@East.Sun.COM)
+
+ - Added support for @diff change tracking, primarily through
+ the auxiliary stylesheet diffspec.xsl. However, it was
+ impractical to handle some constructions, such as DLs and TABLEs,
+ in a completely out-of-band manner. So there is some inline
+ support for @diff markup.
+
+ - Added $additional.css to allow downstream stylesheets to add
+ new markup to the <style> element.
+
+ - Added required "type" attribute to the <style> element.
+
+ - Fixed pervasive problem with nested <a> elements.
+
+ - Added doctype-public to xsl:output.
+
+ - Added $validity.hacks. If "1", then additional disable-output-escaping
+ markup may be inserted in some places to attempt to get proper,
+ valid HTML. For example, if a <glist> appears inside a <p> in the
+ xmlspec source, this creates a nested <dl> inside a <p> in the
+ HTML, which is not valid. If $validity.hacks is "1", then an
+ extra </p>, <p> pair is inserted around the <dl>.
+
+ 5 June 2001, Henry S. Thompson (ht@cogsci.ed.ac.uk)
+
+ - Fixed a link in copyright boilerplate to be dated
+
+ -->
+<!-- ====================================================================== -->
+
+ <xsl:preserve-space elements="*"/>
+
+ <xsl:strip-space elements=" abstract arg attribute authlist author back bibref blist body case col colgroup component constant constraint constraintnote copyright def definitions descr div div1 div2 div3 div4 div5 ednote enum enumerator example exception footnote front gitem glist graphic group header htable htbody inform-div1 interface issue item itemizedlist langusage listitem member method module note notice ol olist orderedlist orglist param parameters prod prodgroup prodrecap proto pubdate pubstmt raises reference resolution returns revisiondesc scrap sequence slist sourcedesc spec specref status struct table tbody tfoot thead tr typedef ul ulist union vc vcnote wfc wfcnote"/>
+
+ <xsl:param name="validity.hacks" select="1"/>
+ <xsl:param name="show.diff.markup" select="0"/>
+ <xsl:param name="additional.css" select="''"/>
+ <xsl:param name="additional.title"/>
+ <xsl:param name="called.by.diffspec" select="0"/>
+ <xsl:param name="show.ednotes" select="1"/>
+ <xsl:param name="tabular.examples" select="0"/>
+ <xsl:param name="toc.level" select="5"/>
+
+ <xsl:key name="ids" match="*[@id]" use="@id"/>
+ <xsl:key name="specrefs" match="specref" use="@ref"/>
+
+ <xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="no" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+ <xsl:strip-space elements="author"/>
+
+ <!-- not handled:
+ attribute: unhandled IDL stuff
+ case: unhandled IDL stuff
+ component: unhandled IDL stuff
+ constant: unhandled IDL stuff
+ copyright: boilerplate notice always used instead
+ definitions: unhandled IDL stuff
+ descr: unhandled IDL stuff
+ enum: unhandled IDL stuff
+ enumerator: unhandled IDL stuff
+ exception: unhandled IDL stuff
+ group: unhandled IDL stuff
+ interface: unhandled IDL stuff
+ method: unhandled IDL stuff
+ module: unhandled IDL stuff
+ param: unhandled IDL stuff
+ parameters: unhandled IDL stuff
+ raises: unhandled IDL stuff
+ reference: unhandled IDL stuff
+ returns: unhandled IDL stuff
+ sequence: unhandled IDL stuff
+ struct: unhandled IDL stuff
+ typedef: unhandled IDL stuff
+ typename: unhandled IDL stuff
+ union: unhandled IDL stuff
+
+ Warning!
+ Only handles statuses of NOTE, WD, and REC.
+ -->
+
+ <!-- Output a warning for unhandled elements! -->
+ <xsl:template match="*">
+ <xsl:message>
+ <xsl:text>No template matches </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+
+ <font xmlns="http://www.w3.org/1999/xhtml" color="red">
+ <xsl:text><</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>></xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text></</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>></xsl:text>
+ </font>
+ </xsl:template>
+
+ <!-- Template for the root node. Creation of <html> element could
+ go here, but that doesn't feel right. -->
+ <xsl:template match="/">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- abstract: appears only in header -->
+ <!-- format as a second-level div -->
+ <!-- called in enforced order from header's template -->
+ <xsl:template match="abstract">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'abstract'"/>
+ </xsl:call-template>
+ <xsl:text>Abstract</xsl:text>
+ </h2>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- affiliation: follows a name in author and member -->
+ <!-- put it in parens with a leading space -->
+ <xsl:template match="affiliation">
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- arg: appears only in proto -->
+ <!-- argument in function prototype -->
+ <!-- output argument type, italicized as placeholder; separate the
+ list with commas and spaces -->
+ <xsl:template match="arg">
+ <xsl:if test="preceding-sibling::arg">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <var xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:value-of select="@type"/>
+ </var>
+ <xsl:if test="@occur = 'opt'">
+ <xsl:text>?</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- att: attribute name -->
+ <!-- used lots of places -->
+ <!-- format as monospaced code -->
+ <xsl:template match="att">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- attribute: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- attval: attribute name -->
+ <!-- used lots of places -->
+ <!-- format as quoted string -->
+ <xsl:template match="attval">
+ <xsl:text>"</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>"</xsl:text>
+ </xsl:template>
+
+ <!-- authlist: list of authors (editors, really) -->
+ <!-- called in enforced order from header's template, in <dl>
+ context -->
+ <xsl:template match="authlist">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>Editor</xsl:text>
+ <xsl:if test="count(author) > 1">
+ <xsl:text>s</xsl:text>
+ </xsl:if>
+ <xsl:text>:</xsl:text>
+ </dt>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- author: an editor of a spec -->
+ <!-- only appears in authlist -->
+ <!-- called in <dl> context -->
+ <xsl:template match="author">
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ <xsl:if test="@role = '2e'">
+ <xsl:text> - Second Edition</xsl:text>
+ </xsl:if>
+ </dd>
+ </xsl:template>
+
+ <!-- back: back matter for the spec -->
+ <!-- make a <div> for neatness -->
+ <!-- affects numbering of div1 children -->
+ <xsl:template match="back">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="back">
+ <xsl:apply-templates/>
+ <xsl:call-template name="autogenerated-appendices"/>
+ </div>
+ </xsl:template>
+
+ <!-- bibl: bibliographic entry -->
+ <!-- only appears in blist -->
+ <!-- called with <dl> context -->
+ <!-- if there's a key, use it in the <dt>, otherwise use the ID -->
+ <!-- if there's an href, add a ref in parens at the end of the text -->
+ <xsl:template match="bibl">
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="label">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@key">
+ <xsl:value-of select="@key"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <a href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@href">
+ <xsl:text> (See </xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>.)</xsl:text>
+ </xsl:if>
+ </dd>
+ </xsl:template>
+
+ <!-- bibref: reference to a bibliographic entry -->
+ <!-- make a link to the bibl -->
+ <!-- if the bibl has a key, put it in square brackets; otherwise use
+ the bibl's ID -->
+ <xsl:template match="bibref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @ref)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[</xsl:text>
+ <xsl:choose>
+ <xsl:when test="key('ids', @ref)/@key">
+ <xsl:value-of select="key('ids', @ref)/@key"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@ref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>]</xsl:text>
+ </a>
+ </xsl:template>
+
+ <!-- blist: list of bibliographic entries -->
+ <!-- set up the list and process children -->
+ <xsl:template match="blist">
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+ </xsl:template>
+
+ <!-- bnf: un-marked-up BNF productions -->
+ <!-- preformatted within a table cell -->
+ <!-- scrap provides <table> context -->
+ <xsl:template match="bnf">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <tr>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <pre>
+ <xsl:apply-templates/>
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:template>
+
+ <!-- body: the meat of the spec -->
+ <!-- create a TOC and then go to work -->
+ <!-- (don't forget the TOC for the back matter and a pointer to end
+ notes) -->
+ <xsl:template match="body">
+ <xsl:if test="$toc.level > 0">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="toc">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'contents'"/>
+ </xsl:call-template>
+ <xsl:text>Table of Contents</xsl:text>
+ </h2>
+ <p class="toc">
+ <xsl:apply-templates select="div1" mode="toc"/>
+ </p>
+ <xsl:if test="../back">
+ <xsl:text>
+</xsl:text>
+ <h3>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'appendices'"/>
+ </xsl:call-template>
+
+ <xsl:text>Appendi</xsl:text>
+ <xsl:choose>
+ <xsl:when test="count(../back/div1 | ../back/inform-div1) > 1">
+ <xsl:text>ces</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>x</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h3>
+ <p class="toc">
+ <xsl:apply-templates mode="toc" select="../back/div1 | ../back/inform-div1"/>
+ <xsl:call-template name="autogenerated-appendices-toc"/>
+ </p>
+ </xsl:if>
+ <xsl:if test="//footnote[not(ancestor::table)]">
+ <p class="toc">
+ <a href="#endnotes">
+ <xsl:text>End Notes</xsl:text>
+ </a>
+ </p>
+ </xsl:if>
+ </div>
+ <hr xmlns="http://www.w3.org/1999/xhtml"/>
+ </xsl:if>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="body">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="autogenerated-appendices">
+ <!-- there are none by default -->
+ </xsl:template>
+
+ <xsl:template name="autogenerated-appendices-toc">
+ <!-- there are none by default -->
+ </xsl:template>
+
+ <!-- caption: see table -->
+
+ <!-- case: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- code: generic computer code -->
+ <!-- output as HTML <code> for monospaced formatting -->
+ <xsl:template match="code">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- col: see table -->
+
+ <!-- colgroup: see table -->
+
+ <!-- com: formal production comment -->
+ <!-- can appear in prod or rhs -->
+ <xsl:template match="com">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <i>
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+ </i>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <i>
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+ </i>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- this could probably be handled better, but given that rhs can
+ have arbitrary text and com mixed in, I don't feel like
+ spending enough time to figure out how -->
+ <xsl:template match="rhs/com">
+ <i xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+ </i>
+ </xsl:template>
+
+ <!-- component: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- constant: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- constraint: a note in a formal production -->
+ <!-- refers to a constraint note -->
+ <xsl:template match="constraint">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[Constraint: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[Constraint: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- constraintnote: note constraining a formal production -->
+ <!-- see also constraintnote/head -->
+ <xsl:template match="constraintnote">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="constraint">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- copyright: notice for this document-->
+ <!-- right now, a boilerplate copyright notice is inserted by the
+ template for header; this may need to be changed -->
+
+ <!-- day: day of month of spec -->
+ <!-- only used in pudate; called directly from header template -->
+ <xsl:template match="day">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- def: glossary definition -->
+ <!-- already in <dl> context from glist -->
+ <xsl:template match="def">
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- definitions: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- descr: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- div[n]: structural divisions -->
+ <!-- make an HTML div -->
+ <!-- see also div[n]/head -->
+ <xsl:template match="div1">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div1">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div2">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div2">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div3">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div3">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div4">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div4">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="div5">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div5">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- ednote: editors' note -->
+ <xsl:template match="ednote">
+ <xsl:if test="$show.ednotes != 0">
+ <table xmlns="http://www.w3.org/1999/xhtml" border="1">
+ <xsl:attribute name="summary">
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:value-of select="name"/>
+ </xsl:if>
+ </xsl:attribute>
+ <tr>
+ <td align="left" valign="top" width="50%">
+ <b>
+ <xsl:text>Editorial note</xsl:text>
+ <xsl:if test="name">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="name"/>
+ </xsl:if>
+ </b>
+ </td>
+ <td align="right" valign="top" width="50%">
+ <xsl:choose>
+ <xsl:when test="date">
+ <xsl:apply-templates select="date"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="left" valign="top">
+ <xsl:apply-templates select="edtext"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="date">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="edtext">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- edtext: text of an editors' note -->
+ <!-- ednote is currently hidden -->
+
+ <!-- el: an XML element -->
+ <!-- present as preformatted text, no markup -->
+ <!-- Chris's personal preference is to put pointy-brackets around
+ this, but he seems to be in the minority -->
+ <xsl:template match="el">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- email: an email address for an editor -->
+ <!-- only occurs in author -->
+ <xsl:template match="email">
+ <xsl:text> </xsl:text>
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:text><</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>></xsl:text>
+ </a>
+ </xsl:template>
+
+ <!-- emph: in-line emphasis -->
+ <!-- equates to HTML <em> -->
+ <!-- the role attribute could be used for multiple kinds of
+ emphasis, but that would not be kind -->
+ <xsl:template match="emph">
+ <em xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></em>
+ </xsl:template>
+
+ <!-- enum: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- enumerator: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- example: what it seems -->
+ <!-- block-level with title -->
+ <!-- see also example/head -->
+ <xsl:template match="example">
+ <xsl:variable name="class">
+ <xsl:choose>
+ <xsl:when test="$tabular.examples = 0">exampleOuter</xsl:when>
+ <xsl:otherwise>example</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="{$class}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="example/head">
+ <xsl:text>
+</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$tabular.examples = 0">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="exampleHead">
+ <xsl:text>Example: </xsl:text>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <h5 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+
+ <xsl:text>Example: </xsl:text>
+ <xsl:apply-templates/>
+ </h5>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- eg: a literal example -->
+ <!-- present as preformatted text -->
+ <xsl:template match="eg">
+ <xsl:variable name="content">
+ <pre xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </pre>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$tabular.examples = 0">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="exampleInner">
+ <xsl:copy-of select="$content"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <table xmlns="http://www.w3.org/1999/xhtml" class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example">
+ <tr>
+ <td>
+ <xsl:copy-of select="$content"/>
+ </td>
+ </tr>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- exception: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- footnote: format as endnote, actually -->
+ <xsl:template match="footnote">
+ <xsl:variable name="this-note-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <sup xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[</xsl:text>
+ <a name="FN-ANCH-{$this-note-id}" id="FN-ANCH-{$this-note-id}" href="#{$this-note-id}">
+ <xsl:apply-templates select="." mode="number-simple"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+ </xsl:template>
+
+ <!-- front: front matter for the spec -->
+ <!-- make a div for cleanliness -->
+ <xsl:template match="front">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="front">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- function: name of a function -->
+ <!-- format as HTML <code> for monospaced presentation -->
+ <xsl:template match="function">
+ <code xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></code>
+ </xsl:template>
+
+ <!-- gitem: glossary list entry -->
+ <!-- just pass children through for <dd>/<dt> formatting -->
+ <xsl:template match="gitem">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- glist: glossary list -->
+ <!-- create <dl> and handle children -->
+ <xsl:template match="glist">
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"></p></xsl:text>
+ </xsl:if>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dl>
+ <xsl:if test="$validity.hacks = 1 and local-name(..) = 'p'">
+ <xsl:text disable-output-escaping="yes"><p></xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- graphic: external illustration -->
+ <!-- reference external graphic file with alt text -->
+ <xsl:template match="graphic">
+ <img xmlns="http://www.w3.org/1999/xhtml" src="{@source}">
+ <xsl:if test="@alt">
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@alt"/>
+ </xsl:attribute>
+ </xsl:if>
+ </img>
+ </xsl:template>
+
+ <!-- group: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- head: title for a variety of constructs -->
+
+ <!-- constraintnotes have different types, but they're
+ non-enumerated; nothing is done with them right now -->
+ <xsl:template match="constraintnote/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <b><xsl:text>Constraint: </xsl:text><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="div1/head">
+ <xsl:text>
+</xsl:text>
+ <h2 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h2>
+ </xsl:template>
+
+ <xsl:template match="div2/head">
+ <xsl:text>
+</xsl:text>
+ <h3 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h3>
+ </xsl:template>
+
+ <xsl:template match="div3/head">
+ <xsl:text>
+</xsl:text>
+ <h4 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h4>
+ </xsl:template>
+
+ <xsl:template match="div4/head">
+ <xsl:text>
+</xsl:text>
+ <h5 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h5>
+ </xsl:template>
+
+ <xsl:template match="div5/head">
+ <xsl:text>
+</xsl:text>
+ <h6 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ </h6>
+ </xsl:template>
+
+ <xsl:template match="inform-div1/head">
+ <xsl:text>
+</xsl:text>
+ <h2 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:apply-templates select=".." mode="divnum"/>
+ <xsl:apply-templates/>
+ <xsl:text> (Non-Normative)</xsl:text>
+ </h2>
+ </xsl:template>
+
+ <xsl:template match="issue/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <b><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="scrap/head">
+ <xsl:text>
+</xsl:text>
+ <h5 xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+ </h5>
+ </xsl:template>
+
+ <xsl:template match="vcnote/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <b><xsl:text>Validity constraint: </xsl:text><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="wfcnote/head">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <b><xsl:text>Well-formedness constraint: </xsl:text><xsl:apply-templates/></b>
+ </p>
+ </xsl:template>
+
+ <!-- header: metadata about the spec -->
+ <!-- pull out information into standard W3C layout -->
+ <xsl:template match="header">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="head">
+ <xsl:if test="not(/spec/@role='editors-copy')">
+ <p>
+ <a href="http://www.w3.org/">
+ <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"/>
+ </a>
+ </p>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ <h1>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="title[1]"/>
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'title'"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="title"/>
+ <xsl:if test="version">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="version"/>
+ </xsl:if>
+ </h1>
+ <xsl:if test="subtitle">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="subtitle[1]"/>
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'subtitle'"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="subtitle"/>
+ </h2>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select="w3c-doctype[1]"/>
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'w3c-doctype'"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates select="w3c-doctype"/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="pubdate/day">
+ <xsl:apply-templates select="pubdate/day"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="pubdate/month"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="pubdate/year"/>
+ </h2>
+ <dl>
+ <xsl:apply-templates select="publoc"/>
+ <xsl:apply-templates select="latestloc"/>
+ <xsl:apply-templates select="prevlocs"/>
+ <xsl:apply-templates select="authlist"/>
+ </dl>
+
+ <!-- output the altlocs -->
+ <xsl:apply-templates select="altlocs"/>
+
+ <xsl:choose>
+ <xsl:when test="copyright">
+ <xsl:apply-templates select="copyright"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p class="copyright">
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ <xsl:text>Copyright</xsl:text>
+ </a>
+ <xsl:text> © </xsl:text>
+ <xsl:apply-templates select="pubdate/year"/>
+ <xsl:text> </xsl:text>
+ <a href="http://www.w3.org/">
+ <acronym title="World Wide Web Consortium">W3C</acronym>
+ </a>
+ <sup>®</sup>
+ <xsl:text> (</xsl:text>
+ <a href="http://www.lcs.mit.edu/">
+ <acronym title="Massachusetts Institute of Technology">MIT</acronym>
+ </a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.ercim.org/">
+ <acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>
+ </a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.keio.ac.jp/">Keio</a>
+ <xsl:text>), All Rights Reserved. W3C </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
+ <xsl:text>, </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
+ <xsl:text> and </xsl:text>
+ <a href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a>
+ <xsl:text> rules apply.</xsl:text>
+ </p>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ <hr xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:apply-templates select="notice"/>
+ <xsl:apply-templates select="abstract"/>
+ <xsl:apply-templates select="status"/>
+ <xsl:apply-templates select="revisiondesc"/>
+ </xsl:template>
+
+ <xsl:template match="revisiondesc">
+ <!-- suppressed by default -->
+ </xsl:template>
+
+ <xsl:template match="copyright">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="copyright/p">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="copyright">
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- inform-div1: non-normative back matter top-level division -->
+ <!-- treat like div1 except add "(Non-Normative)" to title -->
+ <xsl:template match="inform-div1">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="div1">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- interface: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- issue: open issue before the Working Group -->
+ <!-- maintain an ID for linking to it -->
+ <!-- currently generates boilerplate head plus optional head child
+ element; this should probably be cleaned up to only use the
+ head if it's present -->
+ <xsl:template match="issue">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="issue">
+ <p class="prefix">
+ <xsl:if test="@id">
+ <a name="{@id}" id="{@id}"/>
+ </xsl:if>
+ <b>
+ <xsl:text>Issue (</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>):</xsl:text>
+ </b>
+ </p>
+ <xsl:apply-templates/>
+
+ <xsl:if test="not(resolution)">
+ <p class="prefix">
+ <b>
+ <xsl:text>Resolution:</xsl:text>
+ </b>
+ </p>
+ <p>None recorded.</p>
+ </xsl:if>
+ </div>
+ </xsl:template>
+
+ <!-- item: generic list item -->
+ <xsl:template match="item">
+ <li xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </li>
+ </xsl:template>
+
+ <!-- kw: keyword -->
+ <!-- make it bold -->
+ <xsl:template match="kw">
+ <b xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></b>
+ </xsl:template>
+
+ <!-- label: term for defintion in glossary entry -->
+ <!-- already in <dl> context from glist -->
+ <xsl:template match="label">
+ <dt xmlns="http://www.w3.org/1999/xhtml" class="label">
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ <xsl:call-template name="anchor"/>
+
+ <xsl:apply-templates/>
+ </dt>
+ </xsl:template>
+
+ <!-- language: -->
+ <!-- langusage: -->
+ <!-- identify language usage within a spec; not actually formatted -->
+
+ <!-- latestloc: latest location for this spec -->
+ <!-- called in a <dl> context from header -->
+ <xsl:template match="latestloc">
+ <dt xmlns="http://www.w3.org/1999/xhtml">Latest version:</dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- lhs: left-hand side of formal productions -->
+ <!-- make a table row with the lhs and the corresponding other
+ pieces in this crazy mixed-up content model -->
+ <xsl:template match="lhs">
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="../@id">
+ <a name="{../@id}" id="{../@id}"/>
+ </xsl:if>
+ <xsl:apply-templates select="ancestor::prod" mode="number"/>
+<!--
+ This could be done right here, but XT goes into deep space when the
+ node to be numbered isn't the current node and level="any":
+ <xsl:number count="prod" level="any" from="spec"
+ format="[1]"/>
+ -->
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <code><xsl:apply-templates/></code>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:text> ::= </xsl:text>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='rhs']"/>
+ </tr>
+ </xsl:template>
+
+ <!-- loc: a Web location -->
+ <!-- outside the header, it's a normal cross-reference -->
+ <xsl:template match="loc">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- member: member of an organization -->
+ <!-- appears only in orglist, which creates <ul> context -->
+ <xsl:template match="member">
+ <li xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </li>
+ </xsl:template>
+
+ <!-- method: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- module: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- month: month of spec -->
+ <!-- only used in pudate; called directly from header template -->
+ <xsl:template match="month">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- name: name of an editor or organization member -->
+ <!-- only appears in author and member -->
+ <!-- just output text -->
+ <xsl:template match="name">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- note: a note about the spec -->
+ <xsl:template match="note">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="note">
+ <p class="prefix">
+ <b>Note:</b>
+ </p>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- notice: a front-matter advisory about the spec's status -->
+ <!-- make sure people notice it -->
+ <xsl:template match="notice">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="notice">
+ <p class="prefix">
+ <b>NOTICE:</b>
+ </p>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- nt: production non-terminal -->
+ <!-- make a link to the non-terminal's definition -->
+ <xsl:template match="nt">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- ====================================================================== -->
+ <!-- OrderedList Numeration -->
+
+ <xsl:template name="next.numeration">
+ <xsl:param name="numeration" select="'default'"/>
+ <xsl:choose>
+ <!-- Change this list if you want to change the order of numerations -->
+ <xsl:when test="$numeration = 'arabic'">loweralpha</xsl:when>
+ <xsl:when test="$numeration = 'loweralpha'">lowerroman</xsl:when>
+ <xsl:when test="$numeration = 'lowerroman'">upperalpha</xsl:when>
+ <xsl:when test="$numeration = 'upperalpha'">upperroman</xsl:when>
+ <xsl:when test="$numeration = 'upperroman'">arabic</xsl:when>
+ <xsl:otherwise>arabic</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="list.numeration">
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$node/ancestor::olist">
+ <xsl:call-template name="next.numeration">
+ <xsl:with-param name="numeration">
+ <xsl:call-template name="list.numeration">
+ <xsl:with-param name="node" select="$node/ancestor::olist[1]"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="next.numeration"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- olist: an ordered list -->
+ <xsl:template match="olist">
+ <xsl:variable name="numeration">
+ <xsl:call-template name="list.numeration"/>
+ </xsl:variable>
+
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$numeration='arabic'">1</xsl:when>
+ <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+ <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+ <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+ <xsl:when test="$numeration='upperroman'">I</xsl:when>
+ <!-- What!? This should never happen -->
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unexpected numeration: </xsl:text>
+ <xsl:value-of select="$numeration"/>
+ </xsl:message>
+ <xsl:value-of select="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <ol xmlns="http://www.w3.org/1999/xhtml" type="{$type}">
+ <xsl:apply-templates/>
+ </ol>
+ </xsl:template>
+
+ <!-- orglist: a list of an organization's members -->
+ <xsl:template match="orglist">
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ul>
+ </xsl:template>
+
+ <!-- p: a standard paragraph -->
+ <xsl:template match="p">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@id">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- param: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- parameters: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- phrase: semantically meaningless markup hanger -->
+ <!-- role attributes may be used to request different formatting,
+ which isn't currently handled -->
+ <xsl:template match="phrase">
+ <span xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@role">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@role"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </span>
+ </xsl:template>
+
+ <!-- prevlocs: previous locations for this spec -->
+ <!-- called in a <dl> context from header -->
+ <xsl:template match="prevlocs">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>Previous version</xsl:text>
+ <xsl:if test="count(loc) > 1">s</xsl:if>
+ <xsl:text>:</xsl:text>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- prod: a formal grammar production -->
+ <!-- if not in a prodgroup, needs a <tbody> -->
+ <!-- has a weird content model; makes a table but there are no
+ explicit rules; many different things can start a new row -->
+ <!-- process the first child in each row, and it will process the
+ others -->
+ <xsl:template match="prod">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="lhs | rhs[preceding-sibling::*[1][name()!='lhs']] | com[preceding-sibling::*[1][name()!='rhs']] | constraint[preceding-sibling::*[1][name()!='rhs']] | vc[preceding-sibling::*[1][name()!='rhs']] | wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+ </tbody>
+ </xsl:template>
+
+ <xsl:template match="prodgroup/prod">
+ <xsl:apply-templates select="lhs | rhs[preceding-sibling::*[1][name()!='lhs']] | com[preceding-sibling::*[1][name()!='rhs']] | constraint[preceding-sibling::*[1][name()!='rhs']] | vc[preceding-sibling::*[1][name()!='rhs']] | wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+ </xsl:template>
+
+ <!-- prodgroup: group of formal productions -->
+ <!-- create one <tbody> for each group -->
+ <xsl:template match="prodgroup">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </tbody>
+ </xsl:template>
+
+ <!-- prodrecap: reiteration of a prod -->
+ <!-- process the prod in another node that will never generate a
+ <tbody> or a number, plus links the lhs to the original
+ production -->
+ <xsl:template match="prodrecap">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="key('ids', @ref)" mode="ref"/>
+ </tbody>
+ </xsl:template>
+
+ <xsl:template match="processing-instruction('specprod')">
+ <xsl:if test="contains(., 'production-recap')"/>
+ <table xmlns="http://www.w3.org/1999/xhtml" class="scrap" summary="Scrap">
+ <tbody>
+ <xsl:apply-templates select="//prod" mode="ref"/>
+ </tbody>
+ </table>
+ </xsl:template>
+
+ <!-- proto: function prototype -->
+ <!-- type and name of the function, with arguments in parens -->
+ <xsl:template match="proto">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <em><xsl:value-of select="@return-type"/></em>
+ <xsl:text> </xsl:text>
+ <b><xsl:value-of select="@name"/></b>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>)</xsl:text>
+ </p>
+ </xsl:template>
+
+ <!-- pubdate: date of spec -->
+ <!-- called directly from header -->
+
+ <!-- publoc: location of current version of spec -->
+ <!-- called from header in <dl> context -->
+ <xsl:template match="publoc">
+ <dt xmlns="http://www.w3.org/1999/xhtml">This version:</dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="altlocs">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>This document is also available </xsl:text>
+ <xsl:text>in these non-normative formats: </xsl:text>
+ <xsl:for-each select="loc">
+ <xsl:if test="position() > 1">
+ <xsl:if test="last() > 2">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:if test="last() = 2">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="position() = last() and position() > 1">and </xsl:if>
+ <a href="{@href}"><xsl:apply-templates/></a>
+ </xsl:for-each>
+ <xsl:text>.</xsl:text>
+ </p>
+ </xsl:template>
+
+ <!-- pubstmt: statement of publication -->
+ <!-- not currently output -->
+
+ <!-- quote: a quoted string or phrase -->
+ <!-- it would be nice to use HTML <q> elements, but browser support
+ is abysmal -->
+ <xsl:template match="quote">
+ <xsl:text>"</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>"</xsl:text>
+ </xsl:template>
+
+ <!-- raises: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- reference: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- resolution: resolution of an issue -->
+ <xsl:template match="resolution">
+ <p xmlns="http://www.w3.org/1999/xhtml" class="prefix">
+ <b>
+ <xsl:if test="@role='partial'">Partial </xsl:if>
+ <xsl:text>Resolution:</xsl:text>
+ </b>
+ </p>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- returns: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- revisiondesc: description of spec revision -->
+ <!-- used for internal tracking; not formatted -->
+
+ <!-- rhs: right-hand side of a formal production -->
+ <!-- make a table cell; if it's not the first after an LHS, make a
+ new row, too -->
+ <xsl:template match="rhs">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='lhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <code><xsl:apply-templates/></code>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='com' or name()='constraint' or name()='vc' or name()='wfc']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <code><xsl:apply-templates/></code>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='com' or name()='constraint' or name()='vc' or name()='wfc']"/>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- role: part played by a member of an organization -->
+ <xsl:template match="role">
+ <xsl:text> (</xsl:text>
+ <i xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></i>
+ <xsl:text>) </xsl:text>
+ </xsl:template>
+
+ <!-- scrap: series of formal grammar productions -->
+ <!-- set up a <table> and handle children -->
+ <xsl:template match="scrap">
+ <xsl:apply-templates select="head"/>
+ <table xmlns="http://www.w3.org/1999/xhtml" class="scrap" summary="Scrap">
+ <xsl:apply-templates select="bnf | prod | prodgroup"/>
+ </table>
+ </xsl:template>
+
+ <!-- sequence: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- sitem: simple list item -->
+ <!-- just make one paragraph with <br>s between items -->
+ <xsl:template match="sitem">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sitem[position() > 1]" priority="2">
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- slist: simple list -->
+ <!-- using a <blockquote> to indent the list is very wrong, but it works -->
+ <xsl:template match="slist">
+ <blockquote xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ <xsl:apply-templates/>
+ </p>
+ </blockquote>
+ </xsl:template>
+
+ <!-- source: the source of an issue -->
+ <xsl:template match="source">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <b>Source</b>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- sourcedesc: description of spec preparation -->
+ <!-- used for tracking the source, but not formatted -->
+
+ <!-- spec: the specification itself -->
+ <xsl:template match="spec">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="header/langusage/language">
+ <xsl:attribute name="lang">
+ <xsl:value-of select="header/langusage/language/@id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <head>
+
+ <title>
+ <xsl:apply-templates select="header/title"/>
+ <xsl:if test="header/version">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="header/version"/>
+ </xsl:if>
+ <xsl:if test="$additional.title != ''">
+ <xsl:text> -- </xsl:text>
+ <xsl:value-of select="$additional.title"/>
+ </xsl:if>
+ </title>
+ <xsl:call-template name="css"/>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ <xsl:if test="//footnote[not(ancestor::table)]">
+ <hr/>
+ <div class="endnotes">
+ <xsl:text>
+</xsl:text>
+ <h3>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'endnotes'"/>
+ </xsl:call-template>
+ <xsl:text>End Notes</xsl:text>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="//footnote[not(ancestor::table)]" mode="notes"/>
+ </dl>
+ </div>
+ </xsl:if>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!-- Specref -->
+
+ <!-- specref: reference to another part of teh current specification -->
+ <xsl:template match="specref">
+ <xsl:variable name="target" select="key('ids', @ref)[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="local-name($target)='issue' or starts-with(local-name($target), 'div') or starts-with(local-name($target), 'inform-div') or local-name($target) = 'vcnote' or local-name($target) = 'prod' or local-name($target) = 'label'">
+ <xsl:apply-templates select="$target" mode="specref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unsupported specref to </xsl:text>
+ <xsl:value-of select="local-name($target)"/>
+ <xsl:text> [</xsl:text>
+ <xsl:value-of select="@ref"/>
+ <xsl:text>] </xsl:text>
+ <xsl:text> (Contact stylesheet maintainer).</xsl:text>
+ </xsl:message>
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @ref)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>???</xsl:text>
+ </a>
+ </b>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="issue" mode="specref">
+ <xsl:text>[</xsl:text>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:text>Issue </xsl:text>
+ <xsl:apply-templates select="." mode="number"/>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="div1|div2|div3|div4|div5" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+ </xsl:template>
+
+ <xsl:template match="inform-div1" mode="specref">
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <b>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <xsl:apply-templates select="head" mode="text"/>
+ </b>
+ </a>
+ </xsl:template>
+
+ <xsl:template match="vcnote" mode="specref">
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[VC: </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </b>
+ </xsl:template>
+
+ <xsl:template match="prod" mode="specref">
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[PROD: </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="number-simple"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </b>
+ </xsl:template>
+
+ <xsl:template match="label" mode="specref">
+ <b xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[</xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </b>
+ </xsl:template>
+
+ <!-- /Specref -->
+
+ <!-- status: the status of the spec -->
+ <xsl:template match="status">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>
+</xsl:text>
+ <h2>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ <xsl:with-param name="default.id" select="'status'"/>
+ </xsl:call-template>
+ <xsl:text>Status of this Document</xsl:text>
+ </h2>
+ <xsl:if test="/spec/@role='editors-copy'">
+ <p><strong>This document is an editors' copy that has
+ no official standing.</strong></p>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- struct: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- sub: subscript -->
+ <xsl:template match="sub">
+ <sub xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </sub>
+ </xsl:template>
+
+ <!-- subtitle: secondary title of spec -->
+ <!-- handled directly within header -->
+ <xsl:template match="title">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- sup: superscript -->
+ <xsl:template match="sup">
+ <sup xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </sup>
+ </xsl:template>
+
+ <!-- table: the HTML table model adopted wholesale; note however that we -->
+ <!-- do this such that the XHTML stylesheet will do the right thing. -->
+ <xsl:template match="caption|col|colgroup|td|tfoot|th|thead|tr|tbody">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <!-- Wait: some of these aren't HTML attributes after all... -->
+ <xsl:if test="local-name(.) != 'diff'">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- but table is special, to handle footnotes -->
+ <xsl:template match="table">
+ <table xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <!-- Wait: some of these aren't HTML attributes after all... -->
+ <xsl:if test="local-name(.) != 'diff'">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+
+ <xsl:if test=".//footnote">
+ <tbody>
+ <tr>
+ <td>
+ <xsl:apply-templates select=".//footnote" mode="table.notes"/>
+ </td>
+ </tr>
+ </tbody>
+ </xsl:if>
+ </table>
+ </xsl:template>
+
+ <!-- term: the actual mention of a term within a termdef -->
+ <xsl:template match="term">
+ <b xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></b>
+ </xsl:template>
+
+ <!-- termdef: sentence or phrase defining a term -->
+ <xsl:template match="termdef">
+ <xsl:text>[</xsl:text>
+ <a xmlns="http://www.w3.org/1999/xhtml" name="{@id}" id="{@id}" title="{@term}">
+ <xsl:text>Definition</xsl:text>
+ </a>
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <!-- termref: reference to a defined term -->
+ <xsl:template match="termref">
+ <a xmlns="http://www.w3.org/1999/xhtml" title="{key('ids', @def)/@term}">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- tfoot: see table -->
+ <!-- th: see table -->
+ <!-- thead: see table -->
+
+ <!-- title: title of the specification -->
+ <!-- called directly within header -->
+
+ <!-- titleref: reference to the title of any work -->
+ <!-- if a URL is given, link it -->
+ <xsl:template match="titleref">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <cite>
+ <xsl:apply-templates/>
+ </cite>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <cite xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </cite>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- tr: see table -->
+
+ <!-- typedef: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- typename: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- ulist: unordered list -->
+ <xsl:template match="ulist">
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ul>
+ </xsl:template>
+
+ <!-- union: -->
+ <!-- IDL stuff isn't handled yet -->
+
+ <!-- var: a variable -->
+ <xsl:template match="var">
+ <var xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </var>
+ </xsl:template>
+
+ <!-- vc: validity check reference in a formal production -->
+ <xsl:template match="vc">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[VC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[VC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- vcnote: validity check note after a formal production -->
+ <xsl:template match="vcnote">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="constraint">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- version: version of this spec -->
+ <!-- called directly from header -->
+ <xsl:template match="version">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- w3c-designation: canonical name for this spec -->
+ <!-- not used for formatting -->
+
+ <!-- w3c-doctype: type of document the specification is -->
+ <!-- used by header template to select CSS stylesheet for output
+ HTML -->
+ <xsl:template match="w3c-doctype">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- wfc: well-formedness check reference in a formal production -->
+ <xsl:template match="wfc">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+ <td xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[WFC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td/><td/><td/><td/>
+ <td>
+ <xsl:if test="@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="key('ids', @def)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:text>[WFC: </xsl:text>
+ <xsl:apply-templates select="key('ids', @def)/head" mode="text"/>
+ <xsl:text>]</xsl:text>
+ </a>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- wfcnote: well-formedness check note after formal production -->
+ <xsl:template match="wfcnote">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="constraint">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <!-- xnt: external non-terminal -->
+ <!-- xspecref: external specification reference -->
+ <!-- xtermref: external term reference -->
+ <!-- just link to URI provided -->
+ <xsl:template match="xnt | xspecref | xtermref">
+ <a xmlns="http://www.w3.org/1999/xhtml" href="{@href}">
+ <xsl:apply-templates/>
+ </a>
+ </xsl:template>
+
+ <!-- year: year of spec -->
+ <!-- only used in pudate; called directly from header template -->
+ <xsl:template match="year">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- Silly HTML elements used for pasting stuff in; shouldn't ever
+ show up in a spec, but they're easy to handle and you just
+ never know. -->
+ <xsl:template match="a|div|em|h1|h2|h3|h4|h5|h6|li|ol|pre|ul">
+ <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- legacy XML spec stuff -->
+ <xsl:template match="htable">
+ <table xmlns="http://www.w3.org/1999/xhtml" summary="HTML Table">
+ <xsl:for-each select="@*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </table>
+ </xsl:template>
+ <xsl:template match="htbody">
+ <tbody xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="@*">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </tbody>
+ </xsl:template>
+ <xsl:template match="key-term">
+ <b xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates/></b>
+ </xsl:template>
+ <xsl:template match="statusp">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- legacy DocBook stuff -->
+ <xsl:template match="itemizedlist">
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ul>
+ </xsl:template>
+ <xsl:template match="listitem">
+ <li xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </li>
+ </xsl:template>
+ <xsl:template match="orderedlist">
+ <ol xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </ol>
+ </xsl:template>
+ <xsl:template match="para">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- mode: divnum -->
+ <xsl:template mode="divnum" match="div1">
+ <xsl:number format="1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back/div1 | inform-div1">
+ <xsl:number count="div1 | inform-div1" format="A "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="front/div1 | front//div2 | front//div3 | front//div4 | front//div5"/>
+
+ <xsl:template mode="divnum" match="div2">
+ <xsl:number level="multiple" count="div1 | div2" format="1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div2">
+ <xsl:number level="multiple" count="div1 | div2 | inform-div1" format="A.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="div3">
+ <xsl:number level="multiple" count="div1 | div2 | div3" format="1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div3">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | inform-div1" format="A.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="div4">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4" format="1.1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div4">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4 | inform-div1" format="A.1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="div5">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4 | div5" format="1.1.1.1.1 "/>
+ </xsl:template>
+
+ <xsl:template mode="divnum" match="back//div5">
+ <xsl:number level="multiple" count="div1 | div2 | div3 | div4 | div5 | inform-div1" format="A.1.1.1.1 "/>
+ </xsl:template>
+
+ <!-- mode: notes -->
+ <xsl:template mode="notes" match="footnote">
+ <xsl:variable name="this-note-id">
+ <xsl:choose>
+ <xsl:when test="@id">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:text>[</xsl:text>
+ <a name="{$this-note-id}" id="{$this-note-id}" href="#FN-ANCH-{$this-note-id}">
+ <xsl:apply-templates select="." mode="number-simple"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </dd>
+ </xsl:template>
+
+ <!-- mode: table.notes -->
+ <xsl:template match="footnote" mode="table.notes">
+ <xsl:apply-templates mode="table.notes"/>
+ </xsl:template>
+
+ <xsl:template match="footnote/p[1]" mode="table.notes">
+ <xsl:variable name="this-note-id">
+ <xsl:choose>
+ <xsl:when test="../@id">
+ <xsl:value-of select="../@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id(parent::*)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <p xmlns="http://www.w3.org/1999/xhtml" class="table.footnote">
+ <sup>
+ <a name="{$this-note-id}" id="{$this-note-id}" href="#FN-ANCH-{$this-note-id}">
+ <xsl:apply-templates select="parent::footnote" mode="number-simple"/>
+ <xsl:text>.</xsl:text>
+ </a>
+ </sup>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+ </xsl:template>
+
+ <!-- mode: number -->
+ <xsl:template mode="number" match="prod">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates select="." mode="number-simple"/>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="number" match="issue">
+ <xsl:number level="single" format="1"/>
+ </xsl:template>
+
+ <xsl:template mode="number" match="prod[@diff='add']">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates select="preceding::prod[not(@diff='add')][1]" mode="number-simple"/>
+<!--
+ Once again, this could be done right here, but XT won't hear of it.
+ <xsl:number level="any" count="prod[not(@diff='add')]"/>
+ -->
+ <xsl:number level="any" count="prod[@diff='add']" from="prod[not(@diff='add')]" format="a"/>
+ <xsl:text>]</xsl:text>
+ </xsl:template>
+
+ <!-- mode: number-simple -->
+ <xsl:template mode="number-simple" match="prod">
+ <xsl:number level="any" count="prod[not(@diff='add')]"/>
+ </xsl:template>
+
+ <xsl:template mode="number-simple" match="footnote">
+ <xsl:number level="any" format="1"/>
+ </xsl:template>
+
+ <!-- mode: ref -->
+ <xsl:template match="lhs" mode="ref">
+ <tr xmlns="http://www.w3.org/1999/xhtml" valign="baseline">
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="ancestor::prod" mode="number"/>
+ <xsl:text> </xsl:text>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="../@id">
+ <a href="#{../@id}">
+ <code><xsl:apply-templates/></code>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <code><xsl:apply-templates/></code>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup != 0">
+ <xsl:attribute name="class">
+ <xsl:text>diff-</xsl:text>
+ <xsl:value-of select="ancestor-or-self::*/@diff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:text> ::= </xsl:text>
+ </td>
+ <xsl:apply-templates select="following-sibling::*[1][name()='rhs']"/>
+ </tr>
+ </xsl:template>
+
+ <xsl:template mode="ref" match="prod">
+ <xsl:apply-templates select="lhs" mode="ref"/>
+ <xsl:apply-templates select="rhs[preceding-sibling::*[1][name()!='lhs']] | com[preceding-sibling::*[1][name()!='rhs']] | constraint[preceding-sibling::*[1][name()!='rhs']] | vc[preceding-sibling::*[1][name()!='rhs']] | wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+ </xsl:template>
+
+ <!-- mode: text -->
+ <!-- most stuff processes just as text here, but some things should
+ be hidden -->
+ <xsl:template mode="text" match="ednote | footnote"/>
+
+ <!-- mode: toc -->
+ <xsl:template mode="toc" match="div1">
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 1">
+ <xsl:apply-templates select="div2" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div2">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 2">
+ <xsl:apply-templates select="div3" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div3">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 3">
+ <xsl:apply-templates select="div4" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div4">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 4">
+ <xsl:apply-templates select="div5" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="div5">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="toc" match="inform-div1">
+ <xsl:apply-templates select="." mode="divnum"/>
+ <a xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="target" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="head" mode="text"/>
+ </a>
+ <xsl:text> (Non-Normative)</xsl:text>
+ <br xmlns="http://www.w3.org/1999/xhtml"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$toc.level > 2">
+ <xsl:apply-templates select="div2" mode="toc"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="css">
+ <style xmlns="http://www.w3.org/1999/xhtml" type="text/css">
+ <xsl:text>
+code { font-family: monospace; }
+
+div.constraint,
+div.issue,
+div.note,
+div.notice { margin-left: 2em; }
+
+li p { margin-top: 0.3em;
+ margin-bottom: 0.3em; }
+</xsl:text>
+ <xsl:if test="$tabular.examples = 0">
+ <xsl:text>
+div.exampleInner pre { margin-left: 1em;
+ margin-top: 0em; margin-bottom: 0em}
+div.exampleOuter {border: 4px double gray;
+ margin: 0em; padding: 0em}
+div.exampleInner { background-color: #d5dee3;
+ border-top-width: 4px;
+ border-top-style: double;
+ border-top-color: #d3d3d3;
+ border-bottom-width: 4px;
+ border-bottom-style: double;
+ border-bottom-color: #d3d3d3;
+ padding: 4px; margin: 0em }
+div.exampleWrapper { margin: 4px }
+div.exampleHeader { font-weight: bold;
+ margin: 4px}
+</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$additional.css"/>
+ </style>
+ <link xmlns="http://www.w3.org/1999/xhtml" rel="stylesheet" type="text/css">
+ <xsl:attribute name="href">
+ <xsl:text>http://www.w3.org/StyleSheets/TR/</xsl:text>
+ <xsl:choose>
+ <xsl:when test="/spec/@role='editors-copy'">base</xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="/spec/@w3c-doctype='wd'">W3C-WD</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='rec'">W3C-REC</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='pr'">W3C-PR</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='cr'">W3C-CR</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='note'">W3C-NOTE</xsl:when>
+ <xsl:when test="/spec/@w3c-doctype='wg-note'">W3C-WG-NOTE</xsl:when>
+ <xsl:otherwise>base</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>.css</xsl:text>
+ </xsl:attribute>
+ </link>
+ </xsl:template>
+
+ <xsl:template name="href.target">
+ <xsl:param name="target" select="."/>
+
+ <xsl:text>#</xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$target/@id">
+ <xsl:value-of select="$target/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($target)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!-- ================================================================= -->
+
+<xsl:template name="object.id">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="default.id" select="''"/>
+
+ <xsl:choose>
+ <!-- can't use the default ID if it's used somewhere else in the document! -->
+ <xsl:when test="$default.id != '' and not(key('ids', $default.id))">
+ <xsl:value-of select="$default.id"/>
+ </xsl:when>
+ <xsl:when test="$node/@id">
+ <xsl:value-of select="$node/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($node)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="anchor">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="conditional" select="1"/>
+ <xsl:param name="default.id" select="''"/>
+
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="node" select="$node"/>
+ <xsl:with-param name="default.id" select="$default.id"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$conditional = 0 or $node/@id">
+ <a xmlns="http://www.w3.org/1999/xhtml" name="{$id}" id="{$id}"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ================================================================= -->
+
+</xsl:transform>