Copyright © 2005 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use rules apply.
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.
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.
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.
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 <text>
or
<textstream>
media object element in a [SMIL2] document.
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 W3C technical reports index at http://www.w3.org/TR/.
This document is a public W3C Working Draft for review by W3C members and other interested parties. Publication as a Working Draft 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.
This document has been produced as part of the W3C Synchronized Multimedia Activity, following the procedures set out for the W3C Process. The authors of this document are members of the Timed Text (TT) Working Group (W3C Members only).
Feedback on this document should be sent to the email list public-tt@w3.org, which is the public mailing
list of Timed Text Working Group (list archives). To
subscribe, send an email to public-tt-request@w3.org with the word
subscribe
in the subject line.
This document was produced under the W3C's Current Patent Practice, dated 24 January 2002. as amended by the W3C Patent Policy Transition Procedure. The Working Group maintains a public list of patent disclosures relevant to this document; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy.
1 Introduction
1.1 System Model
1.2 Document Example
2 Definitions
2.1 Acronyms
2.2 Terminology
2.3 Documentation
Conventions
3 Conformance
3.1 Content
Conformance
3.2 Processor
Conformance
4 Document Types
4.1 DFXP Content
4.2 AFXP Content
5 Vocabulary
5.1 Namespaces
5.2 Profiles
5.3 Catalog
5.3.1 Core Catalog
5.3.2 Authoring Catalog
6 Parameters
6.1 Element
Vocabulary
6.2 Attribute
Vocabulary
6.2.1 ttp:cellResolution
6.2.2 ttp:clockMode
6.2.3 ttp:defaultLengthUnit
6.2.4 ttp:defaultTimeMetric
6.2.5 ttp:frameRate
6.2.6 ttp:frameRateMultiplier
6.2.7 ttp:markerMode
6.2.8 ttp:pixelAspectRatio
6.2.9 ttp:profile
6.2.10 ttp:smpteMode
6.2.11 ttp:subFrameRate
6.2.12 ttp:tickRate
6.2.13 ttp:timeBase
7 Content
7.1 Element
Vocabulary
7.1.1 tt
7.1.2 head
7.1.3 body
7.1.4 div
7.1.5 p
7.1.6 span
7.1.7 br
7.2 Attribute
Vocabulary
7.2.1 id
7.2.2 xml:lang
7.2.3 xml:space
8 Styling
8.1 Element
Vocabulary
8.1.1 styling
8.1.2 style
8.2 Attribute
Vocabulary
8.2.1 style
8.2.2 tts:backgroundColor
8.2.3 tts:color
8.2.4 tts:direction
8.2.5 tts:display
8.2.6 tts:displayAlign
8.2.7 tts:dynamicFlow
8.2.8 tts:extent
8.2.9 tts:fontFamily
8.2.10 tts:fontSize
8.2.11 tts:fontStyle
8.2.12 tts:fontWeight
8.2.13 tts:lineHeight
8.2.14 tts:opacity
8.2.15 tts:origin
8.2.16 tts:overflow
8.2.17 tts:padding
8.2.18 tts:showBackground
8.2.19 tts:textAlign
8.2.20 tts:textOutline
8.2.21 tts:unicodeBidi
8.2.22 tts:visibility
8.2.23 tts:wrapOption
8.2.24 tts:writingMode
8.2.25 tts:zIndex
8.3 Style Value
Expressions
8.3.1 <alpha>
8.3.2 <color>
8.3.3 <digit>
8.3.4 <duration>
8.3.5 <familyName>
8.3.6 <genericFamilyName>
8.3.7 <flowStyle>
8.3.8 <flowUnit>
8.3.9 <hexDigit>
8.3.10 <integer>
8.3.11 <length>
8.3.12 <namedColor>
8.3.13 <quotedString>
8.3.14 <string>
8.4 Style
Association
8.4.1 Inline Styling
8.4.2 Referential Styling
8.4.3 Chained Referential
Styling
8.5 Style
Inheritance
8.5.1 Content Style Inheritance
8.5.2 Region Style Inheritance
9 Layout
9.1 Element
Vocabulary
9.1.1 layout
9.1.2 region
9.2 Attribute
Vocabulary
9.2.1 region
9.3 Region Layout and
Presentation
9.3.1 Synchronic Region Construction
9.3.2 Synchronic Flow Processing
9.3.3 Elaborated Example
9.4 Line Layout
10 Timing
10.1 Element
Vocabulary
10.2 Attribute
Vocabulary
10.2.1 begin
10.2.2 end
10.2.3 dur
10.2.4 timeContainer
10.3 Time Value
Expressions
10.3.1 <timeExpression>
10.4 Time
Intervals
11 Animation
11.1 Element
Vocabulary
11.1.1 set
11.2 Attribute
Vocabulary
12 Metadata
12.1 Element
Vocabulary
12.1.1 meta
12.1.2 ttm:title
12.1.3 ttm:desc
12.1.4 ttm:copyright
12.1.5 ttm:agent
12.1.6 ttm:name
12.1.7 ttm:actor
12.2 Attribute
Vocabulary
12.2.1 ttm:agent
12.2.2 ttm:role
A Reduced XML Infoset
A.1 Document
Information Item
A.2 Element Information
Item
A.3 Attribute
Information Item
A.4 Character
Information Item
B Schemas (Normative)
B.1 Relax NG Schema
B.1.1 Driver
B.1.2 Modules
B.1.2.1 Animation Module
B.1.2.2 Classes Module
B.1.2.3 Content Module
B.1.2.4 Core Attributes Module
B.1.2.5 Data Types Module
B.1.2.6 Document Module
B.1.2.7 Header Module
B.1.2.8 Layout Module
B.1.2.9 Metadata Module
B.1.2.10 Metadata Items Module
B.1.2.11 Metadata Attributes Module
B.1.2.12 Parameter Attributes Module
B.1.2.13 Styling Attributes Module
B.1.2.14 Styling Module
B.1.2.15 Timing Attributes Module
B.2 XML Schema Definition (XSD)
Schema
B.2.1 Driver
B.2.2 Modules
B.2.2.1 Animation Module
B.2.2.2 Content Module
B.2.2.3 Core Attributes Module
B.2.2.4 Data Types Module
B.2.2.5 Document Module
B.2.2.6 Header Module
B.2.2.7 Layout Module
B.2.2.8 Metadata Module
B.2.2.9 Metadata Items Module
B.2.2.10 Metadata Attributes Module
B.2.2.11 Parameter Attributes Module
B.2.2.12 Styling Attributes Module
B.2.2.13 Styling Module
B.2.2.14 Timing Attributes Module
B.2.2.15 XML Attributes Module
C References (Normative)
D Other References (Non-Normative)
E Requirements (Non-Normative)
F Streaming DFXP Content (Non-Normative)
G Acknowledgments (Non-Normative)
Unless specified otherwise, this section and its sub-sections are non-normative.
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.
DFXP is expressly designed to meet only a limited set of requirements established by [TTAF1-REQ], and summarized in E Requirements. In particular, only those requirements which service the need of performing interchange with existing, legacy distribution systems are satisfied.
Note:
It is intended that a more feature-rich profile, known presently as the Authoring Format Exchange Profile (AFXP), be developed and published to address the full set of documented requirements.
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
<text>
or <textstream>
media object element
in a [SMIL2] document. Certain properties of DFXP support
streamability of content, as described in F Streaming
DFXP Content.
Note:
While DFXP was not expressly designed for direct (embedded) integration into a SMIL document instance, such integration is not precluded.
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 Figure 1 – System Model, 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.
Note:
Because DFXP will be a proper subset of the AFXP, compiling an arbitrary AFXP document instance into a DFXP document instance may result in loss of content (e.g., due to selection of alternative content), loss of timing structure or styling structure (e.g., due to flattening of timing or styling), as well as other information. As a consequence, it is not possible, in general, to decompile an arbitrary DFXP document instance into the original AFXP document instance while making use of only DFXP constructs.
A DFXP document instance consists of a tt
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.
<tt xml:lang="" xmlns="http://www.w3.org/2004/11/ttaf1"> <head> <meta/> <styling/> <layout/> </head> <body/> </tt> |
Document level metadata may specify a document title, description, and copyright information. In addition, arbitrary metadata drawn from other namespaces may be specified.
<meta xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata"> <ttm:title>Timed Text DFXP Example</ttm:title> <ttm:copyright>The Authors (c) 2004</ttm:copyright> </meta> |
Styling information may be specified in the form of style specification definitions that are referenced by layout and content information.
In Example Fragment – DFXP Styling, five style sets of specifications are defined, with one set serving as a collection of default styles.
<styling xmlns:tts="http://www.w3.org/2004/11/ttaf1#styling"> <!-- s1 specifies default color, font, and text alignment --> <style id="s1" tts:color="white" tts:fontFamily="proportional-sans-serif" 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> |
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 Example Fragment – DFXP
Layout, the region definition makes reference to style specification
s1
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.)
<layout xmlns:tts="http://www.w3.org/2004/11/ttaf1#styling"> <region id="subtitleArea" style="s1" tts:extent="560px 62px" tts:padding="5px 3px" tts:backgroundColor="black" tts:displayAlign="after" /> </layout> |
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 Example Fragment – DFXP Body, each
paragraph (p
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.
<body region="subtitleArea"> <div> <p id="subtitle1" begin="0.76" end="3.45"> It seems a paradox, does it not, </p> <p id="subtitle2" begin="5.0" end="10.0"> that the image formed on<br/> the Retina should be inverted? </p> <p id="subtitle3" begin="10.0" end="16.0" style="s2"> It is puzzling, why is it<br/> we do not see things upside-down? </p> <p id="subtitle4" begin="17.2" end="23.0"> You have never heard the Theory,<br/> then, that the Brain also is inverted? </p> <p id="subtitle5" begin="23.0" end="27.0" style="s2"> No indeed! What a beautiful fact! </p> <p id="subtitle6a" begin="28.0" end="34.6" style="s2Left"> But how is it proved? </p> <p id="subtitle6b" begin="28.0" end="34.6" style="s1Right"> Thus: what we call </p> <p id="subtitle7" begin="34.6" end="45.0" style="s1Right"> the vertex of the Brain<br/> is really its base </p> <p id="subtitle8" begin="45.0" end="52.0" style="s1Right"> and what we call its base<br/> is really its vertex, </p> <p id="subtitle9a" begin="53.5" end="58.7"> it is simply a question of nomenclature. </p> <p id="subtitle9b" begin="53.5" end="58.7" style="s2"> How truly delightful! </p> </div> </body> |
The first subtitle Subtitle 1 – Time
Interval [0.76, 3.45) is presented during the time interval 0.76 to
3.45 seconds. In this example, the default units for time are seconds since no
ttp:defaultTimeMetric
metadata attribute is specified in the
document. 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
tts:displayAlign="after"
being specified on the region
definition.
Note:
The notation "[X,Y]" denotes a closed interval from X to Y, including X and Y; "[X,Y)" denotes a right half-open interval from X to Y, including X but not including Y; "(X,Y]" denotes a left half-open interval from X to Y, not including X but including Y; "(X,Y)" denotes an open interval from X to Y, not including X or Y.
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 tts:textAlign="center"
to specify
the paragraph's alignment in the inline progression direction.
The third subtitle continues, using a variant style which overrides the default style's foreground color with a different color.
The fourth subtitle reverts to the default style.
The fifth subtitle continues, again using a variant style which overrides the default style's foreground color with a different color.
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.
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.
The eighth subtitle uses the same style override as the previous subtitle in order to maintain the right (end) justification of the paragraph.
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.
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.
AFXP |
Authoring Format Exchange Profile |
DFXP |
Distribution Format Exchange Profile |
TT |
Timed Text |
TT AS |
Timed Text Authoring System |
TT AF |
Timed Text Authoring Format |
TT WG |
Timed Text Working Group |
An instance of an abstract data set as represented by a Reduced XML Infoset.
A set of constraints that defines a class of XML Information Sets [XML InfoSet].
Each specified or defaulted attribute of an XML document corresponds with an attribute information item as defined by [XML InfoSet], §2.3.
Each data character appearing in an XML document corresponds with a character information item as defined by [XML InfoSet], §2.6.
A logical region into which rendered content is placed when modeling or performing presentation processing.
Each element appearing in an XML document corresponds with an element information item as defined by [XML InfoSet], §2.2.
A profile (subset) of the TT AF that serves a set of needs for content exchange.
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.
An XML Information Set [XML InfoSet] that satisfieds the constraints specify by A Reduced XML Infoset.
A logical region that establishes a coordinate system into which content regions are placed and optionally clipped.
Textual information that is intrinsically or extrinsically associated with timing information.
A content type that represents timed text media for the purpose of interchange among authoring systems.
A content authoring system capable of importing and exporting timed text authoring format content.
An abstract document instance that satisfies the following conditions: if after pruning all element and attribute information items whose names are not members of the collection of element types and attributes defined by the associated abstract document type, the document element is one of the document element types permitted by the associated abstract document type and the descendants of the document element satisfy their respective element type's content specifications.
Within normative prose in this specification, the words may, should, and must are defined as follows:
Conforming documents and/or TT AF processors are permitted to, but need not behave as described.
Conforming documents and/or TT AF processors are strongly recommended to, but need not behave as described.
Conforming documents and/or TT AF processors are required to behave as described; otherwise, they are in error.
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:
<example
count = integer
size = (large|medium|small) : medium>
Content: (all | any*)
</example>
|
In an XML representation, bold-face attribute names (e.g. count 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 size
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 [XML Schema Part 2], a hyperlink to
its definition therein is given.
The allowed content of the information item is shown as a grammar fragment,
using the Kleene operators ?
, *
and +
.
Each element name therein is a hyperlink to its own illustration.
Editorial note: GA | 2004-10-25 |
Need to add hyperlinks to instances of element (and attribute) names that appear in a grammar fragment or prose. |
All paragraphs marked as a Note are considered non-normative.
Example code fragments are depicted with a light blue-green background color and labeled as "Example Fragment", such as in the following:
<tt xml:lang="" xmlns="http://www.w3.org/2004/11/ttaf1"> <head> <meta/> <styling/> <layout/> </head> <body/> </tt> |
Editorial notes are shown with a light brown background and include the label "Editorial Note", such as in the following:
Editorial note: GA | 2004-10-25 |
Remove all editorial notes and the above paragraph prior to final publishing of this document. |
This section specifies the general conformance requirements for TT AF content and processors.
A TT AF document instance conforms to this specification if the following criteria are satisfied:
The document instance is or can be represented as a Reduced XML Infoset as defined by A Reduced XML Infoset.
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 4 Document Types.
The Reduced XML Infoset that corresponds to the document instance is a Valid Abstract Document Instance of the associated Abstract Document Type.
The document instance satisfies all mandatory semantic constraints defined by this specification.
A TT AF processor conforms to this specification if the following criteria are satisfied:
The processor provides at least one mechanism for notionally instantiating a Reduced XML Infoset representation of a conformant TT AF document instance.
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 4 Document Types.
The processor does not a priori reject or abort the processing of a conformant TT AF document instance.
The processor supports all mandatory processing semantics defined by this specification.
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 9.3 Region Layout and Presentation and 9.4 Line Layout, respectively.
If the processor supports some optional processing semantics defined by this specification, then it does so in a manner consistent with the defined semantics.
This section defines two TT AF Abstract Document Types:
Each abstract document type consists of the following constraints:
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
a non-empty collection of element types that may appear as the document element
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 conditions: if after pruning all element information items whose names are not members of the collection of element types defined by the associated abstract document type, the document element is one of the document element types permitted by the associated abstract document type and the descendants of the document element satisfy their respective element type's content specifications.
Note:
The definition of validity employed here does not require the presence of any attribute, does not take into account the value of any attribute, and does not take into account any semantics associated with ID/IDREF/IDREFS typed attributes.
Note:
While a conformant user agent may not a priori 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. For example, an author may validate a document instance using a schema that enforces the presence of certain attributes, enforces the values of certain attributes, etc.
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 5 Vocabulary.
This specification defines two types of normative schemas that may be used to validate a subset of conformant DFXP document instances:
The (root) document element of a DFXP document instance must be a
tt
element, as defined by 7.1.1 tt.
This section serves as a placeholder for the future specification of AFXP Content as an abstract document type of the Timed Text Authoring Format intended for general interchange among authoring systems.
The AFXP document type shall be a proper superset of the vocabulary defined for use with the DFXP Content abstract document type; in particular, the AFXP document type shall be defined such that a valid DFXP document instance is also a valid AFXP document instance.
Note:
The AFXP document type is not specified in this revision of this specification.
This section defines the namespaces, profiles, and vocabulary (as an element an attribute catalog) of the Timed Text Authoring Format (TT AF) as follows:
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.
Note:
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.
Name | Prefix | Value |
---|---|---|
TT | tt: |
http://www.w3.org/2004/11/ttaf1 |
TT Parameter | ttp: |
http://www.w3.org/2004/11/ttaf1#parameter |
TT Style | tts: |
http://www.w3.org/2004/11/ttaf1#style |
TT Style Extension | ttsx: |
http://www.w3.org/2004/11/ttaf1#style-extension |
TT Metadata | ttm: |
http://www.w3.org/2004/11/ttaf1#metadata |
TT Metadata Extension | ttmx: |
http://www.w3.org/2004/11/ttaf1#metadata-extension |
Editorial note: GA | 2004-10-25 |
The namespace URIs specified above are expected to change prior to final publishing of this specification, and, therefore, should be treated as provisional. In particular, the embedded year (2004) may change and the embedded month (11) will be removed. |
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.
Name | Value |
---|---|
DFXP |
http://www.w3.org/2004/11/ttaf1#profile-dfxp |
AFXP |
http://www.w3.org/2004/11/ttaf1#profile-afxp |
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
sub-profile suffix of a profile URI: if a sub-profile is subtractive
(results in a proper subset), then the sub-profile is expressed as
"-token"; if additive (results in a proper superset), then it is expressed as
"+token", where token expresses an author determined sub-profile that
adheres to the xsd:NCName
data type defined in [XML Schema Part 2], §3.3.7.
All tokens used in a sub-profile suffix that do not start with the prefix
x-
are reserved for future standardization.
The profile of a document instance is specified using a
ttp:profile
attribute as defined by 6.2.9 ttp:profile.
Editorial note: GA | 2004-10-25 |
The profile URIs specified above are expected to change prior to final publishing of this specification, and, therefore, should be treated as provisional. In particular, the embedded year (2004) may change and the embedded month (11) will be removed. |
An example of an author defined "tiny" subtractive sub-profile of DFXP is shown below in Example Fragment – DFXP Subtractive Profile.
<tt ttp:profile="http://www.w3.org/2004/11/ttaf1#profile-dfxp-x-tiny" xml:lang="" xmlns="http://www.w3.org/2004/11/ttaf1" xmlns:ttp="http://www.w3.org/2004/11/ttaf1#parameter"> ... </tt> |
Note:
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
x-
.
The vocabulary of the Timed Text Authoring Format (TT AF) is defined in two major catalogs (divisions of vocabulary):
The core catalog defines the baseline, core vocabulary of the TT AF, and, in particular, the vocabulary of DFXP; the authoring catalog defines additional vocabulary that are available for use only by AFXP.
The core vocabulary catalog is intended to satisfy the needs of DFXP while providing a baseline vocabulary for AFXP. This vocabulary is divided into distinct categories, specified in detail in the following sections:
The core element vocabulary specified for use with a TT AF document instance is enumerated in Table 3 – Element Vocabulary.
Module | Elements |
---|---|
Animation | set |
Content | body, div, p, span, br |
Document | tt |
Head | head |
Layout | layout, region |
Metadata | meta |
Metadata Items | ttm:actor, ttm:agent, ttm:copyright, ttm:desc, ttm:name, ttm:title |
Styling | styling, style |
Element vocabulary groups that are used in defining content models for TT AF element types are enumerated in Table 4 – Element Vocabulary Groups.
Group | Elements |
---|---|
Animation.class | set |
Block.class | div, p |
Inline.class | span |
Meta.class | meta, ttm:copyright, ttm:desc, ttm:title |
The attribute vocabulary specified for use with the core vocabulary catalog is enumerated in Table 5 – Attribute Vocabulary.
Module | Attributes |
---|---|
Core Attributes | id, xml:lang, xml:space |
Layout | region |
Metadata Attributes | ttm:agent, ttm:role |
Parameter Attributes | ttp:cellResolution, ttp:clockMode, ttp:defaultLengthUnit, ttp:defaultTimeMetric, ttp:frameRate, ttp:frameRate-multipler, ttp:markerMode, ttp:pixelAspectRatio, ttp:profile, ttp:smpteMode, ttp:subFrameRate, ttp:tickRate, ttp:timeBase |
Styling | style |
Styling Attributes | tts:backgroundColor, tts:color, tts:direction, tts:display, tts:displayAlign, tts:dynamicFlow, tts:extent, tts:fontFamily, tts:fontSize, tts:fontStyle, tts:fontWeight, tts:lineHeight, tts:opacity, tts:origin, tts:overflow, tts:padding, tts:showBackground, tts:textAlign, tts:textOutline, tts:unicodeBidi, tts:visibility, tts:wrapOption, tts:writingMode, tts:zIndex |
Timing Attributes | begin, end, dur, timeContainer |
Note:
All vocabulary defined by the TT AF consistently makes use of the so-called lowerCamelCase 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.
This section specifies the parameters 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.
No parameters related element vocabulary is defined for use in the core vocabulary catalog.
The following attributes are defined in the TT Parameter Namespace.
ttp:cellResolution
ttp:clockMode
ttp:defaultLengthUnit
ttp:defaultTimeMetric
ttp:frameRate
ttp:frameRateMultiplier
ttp:markerMode
ttp:pixelAspectRatio
ttp:profile
ttp:smpteMode
ttp:subFrameRate
ttp:tickRate
ttp:timeBase
Unless explicitly stated otherwise, linear white-space (LWSP) may appear between tokens of a value of a TT Parameter.
The ttp:cellResolution
attribute may be used by an author to
express 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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:cellResolution : columns rows columns | rows : <digit>+ |
If not specified, the number of columns and rows must both be considered to be 1.
A ttp:cellResolution
attribute is considered to be
significant only when specified on the tt
element.
The ttp:clockMode
attribute is used to specify the
interpretation of time expressions as real-time time coordinates when
operating with time base of clock
as defined by 6.2.13 ttp:timeBase.
If specified, the value of this attribute must adhere to the following syntax:
ttp:clockMode : "local" | "gps" | "utc" |
If the time base, defined by 6.2.13 ttp:timeBase, is
designated as clock
, then this parameter applies as follows: if
the parameter's value is local
, then time expressions are
interpreted as local wall-clock time coordinates; if utc
, then
time expressions are interpreted as UTC (coordinated universal time) time
coordinates; if gps
, then time expressions are interpreted as
GPS (global positioning system) time coordinates.
If not specified, the value of this parameter must be considered to be
utc
.
The ttp:defaultLengthUnit
attribute is used to specify the
default unit to use when interpreting a <length> style
property value expression in the case no unit is specified.
The value of this attribute must take the same form as the unit term of the <length>.
If not specified, the default length unit must be considered to be pixels.
A ttp:defaultLengthUnit
attribute is considered to be
significant only when specified on the tt
element.
The ttp:defaultTimeMetric
attribute is used to specify the
default metric to use when interpreting a time-count term used in a
<timeExpression> in the case that no metric term is provided.
The value of this attribute must take the same form as the metric term of the <timeExpression>.
If not specified, the default time metric must be considered to be seconds.
A ttp:defaultTimeMetric
attribute is considered to be
significant only when specified on the tt
element.
The ttp:frameRate
attribute is used to specify the frame rate
of a related media object or the intrinsic frame rate of document instance in
case it is intended to function as an independent media object.
If specified, the value of this attribute must adhere to the following syntax:
ttp:frameRate : <digit>+ |
The frame rate that applies to a document instance is used to interpret time expressions that are expressed in frames as defined by 10.3.1 <timeExpression>.
A frame is interpreted as an division of a second of media time, such that if the frame rate is specified as F, then a second of media time is divided into F intervals of equal duration, where each interval is labeled as frame f, with f∈ [0…F−1].
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.
A ttp:frameRate
attribute is considered to be significant
only when specified on the tt
element.
The ttp:frameRateMultiplier
attribute is used to specify a
multiplier to be applied to the frame rate specified by a
ttp:frameRate
attribute in order to compute the effective frame
rate.
If specified, the value of this attribute must adhere to the following syntax:
ttp:frameRateMultiplier : numerator ( ":" demoninator )? numerator | denominator : <digit>+ |
A frame rate multiplier is used when the desired frame rate cannot be expressed as an integral number of frames per second.
If not specified, the frame rate multiplier must be considered to be equal to one (1:1).
A ttp:frameRateMultiplier
attribute is considered to be
significant only when specified on the tt
element.
Note:
The frame rate multiplier used for synchronizing with NTSC 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…MHz (= 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.
The ttp:markerMode
attribute is used to specify constraints
on the interpretation and use of time expressions that correspond with [SMPTE 12M] time coordinates when operating with time
base of smpte
as defined by 6.2.13 ttp:timeBase.
If specified, the value of this attribute must adhere to the following syntax:
ttp:markerMode : "continuous" | "discontinuous" |
If the time base, defined by 6.2.13 ttp:timeBase, is
designated as smpte
, then this parameter applies as follows: if
the parameter's value is continuous
, then [SMPTE 12M] time coordinates may be assumed to be linear
and either monotonically increasing or decreasing; however, if
discontinuous
, then any assumption must not be made regarding
linearity or monotonicity of time coordinates.
If not specified, the value of this parameter must be considered to be
continuous
.
If a value of discontinuous
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.
Editorial note: GA | 2005-02-14 |
Should it be permissible to express durations in some other (secondary) time base instead of ignoring in discontinuous mode? For example, some real-time time base? |
Note:
When operating with smpte
time base and
discontinuous
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.
An additional side-effect of operating in discontinuous
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.
Note:
The notion of marker discontinuity as captured by this parameter is
logically independent from the method used to count frames as expressed by
the ttp:smpteMode
parameter. In particular, even if the
ttp:smpteMode
parameter is specified as dropNTSC
or dropPAL
, the marker mode may be specified as
continuous
, 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 10:00:00:00
and
10:00:01:00
.
The ttp:pixelAspectRatio
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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:pixelAspectRatio : width ":" height width | height : <digit>+ |
If not specified, then square pixels (i.e., aspect ratio 1:1) must be assumed to apply.
A ttp:pixelAspectRatio
attribute is considered to be
significant only when specified on the tt
element.
Note:
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.
The ttp:profile
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.
If specified, the value of this attribute must adhere to the
xsd:anyURI
data type defined by [XML Schema
Part 2], §3.2.17, and, further, must specify a profile URI as defined by
5.2 Profiles.
If not specified, then the Distribution Format Exchange Profile (DFXP) must be assumed to apply.
A ttp:profile
attribute is considered to be significant only
when specified on the tt
element.
The ttp:smpteMode
attribute is used to specify constraints on
the interpretation and use of frame counts that correspond with [SMPTE 12M] time coordinates when operating with time
base of smpte
as defined by 6.2.13 ttp:timeBase.
If specified, the value of this attribute must adhere to the following syntax:
ttp:smpteMode : "dropNTSC" | "dropPAL" | "nonDrop" |
If the time base, defined by 6.2.13 ttp:timeBase, is
designated as smpte
, then this parameter applies as follows: if
the parameter's value is nonDrop
, then, within any given second
of a time expression, frames count from 0 to N−1, where N
is the value specified by the ttp:frameRate
parameter, but while
ignoring any value specified by the ttp:frameRateMultiplier
parameter.
If this parameter's value is dropNTSC
, then, within any given
second of a time expression except the second 00
, frames count
from 0 to N−1, where N is the value specified by the
ttp:frameRate
parameter, but while ignoring any value specified
by the ttp:frameRateMultiplier
parameter. If the second of a
time expression is 00
and the minute of the time expression is
not 00
, 10
, 20
, 30
,
40
, or 50
, then frame codes 00
and
01
are dropped during that second; otherwise, these frame codes
are not dropped.
Note:
For example, when operating in dropNTSC
mode with
ttp:frameRate
of 30
, a discontinuity in frame
count occurs between consecutive frames as shown in the following sequence
of time expressions: 01:08:59:28
, 01:08:59:29
,
01:09:00:02
, 01:09:00:03
.
If this parameter's value is dropPAL
, then, within any given
second of a time expression except the second 00
, frames count
from 0 to N−1, where N is the value specified by the
ttp:frameRate
parameter, but while ignoring any value specified
by the ttp:frameRateMultiplier
parameter. If the second of a
time expression is 00
and the minute of the time expression is
even but not 00
, 20
, or 40
, then frame
codes 00
through 03
are dropped during that second;
otherwise, these frame codes are not dropped.
Note:
For example, when operating in dropPAL
mode with
ttp:frameRate
of 30
, a discontinuity in frame
count occurs between consecutive frames as shown in the following sequence
of time expressions: 01:09:59:28
, 01:09:59:29
,
01:10:00:04
, 01:10:00:04
.
Note:
The dropPAL
mode is also known as the M/PAL or
PAL (M) 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.
The ttp:subFrameRate
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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:subFrameRate : <digit>+ |
The sub-frame rate that applies to a document instance is used to interpret time expressions that are expressed in sub-frames as defined by 10.3.1 <timeExpression>.
A sub-frame is interpreted as an division of a frame of media time, such that if the sub-frame rate is specified as S, then a frame of media time is divided into S intervals of equal duration, where each interval is labeled as sub-frame s, with s∈ [0…S−1].
If not specified, the sub-frame rate must be considered to be equal to one (1).
A ttp:subFrameRate
attribute is considered to be significant
only when specified on the tt
element.
Note:
The sub-frame is sometimes referred to as a field in the context of synchronization with an interlaced video media object.
The ttp:tickRate
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.
If specified, the value of this attribute must adhere to the following syntax:
ttp:tickRate : <digit>+ |
The tick rate that applies to a document instance is used to interpret
time expressions that are expressed in ticks by using the
t
metric as defined by 10.3.1
<timeExpression>.
A tick is interpreted as an integral division of a second of media time, such that if the tick rate is specified as T, then a second of media time is divided into T intervals of equal duration, where each interval is labeled as tick t, with t∈ [0…T−1].
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.
Note:
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.
The ttp:timeBase
attribute is used to specify the temporal
coordinate system by means of which time expressions are interpreted in a
document instance.
If specified, the value of this attribute must adhere to the following syntax:
ttp:timeBase : "media" | "smpte" | "clock" |
If the time base is designated as media
, 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.
If the time base is designated as smpte
, then a time
expression denotes a [SMPTE 12M] time coordinate with
which the content of a document instance is to be synchronized. In this case,
the value of the ttp:markerMode
and ttp:smpteMode
parameters apply, as defined by 6.2.7 ttp:markerMode and 6.2.10 ttp:smpteMode,
respectively
If the time base is designated as clock
, 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.
If not specified, the default time base must be considered to be
media
.
When operating with either media
or smpte
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 clock
time base, no transformations are permitted, and
diacrhonic presentation proceeds on a linear, monotonically increasing time
line based on the passage of real time.
Note:
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.
This section specifies the content matter of the core vocabulary catalog.
The following elements specify the structure and principal content aspects of a document instance:
tt
head
body
div
p
span
br
The tt
element serves as the root, document element of a
document instance.
The tt
element accepts as its children zero or one
head
element followed by zero or one body
element.
<tt
begin = <timeExpression>
dur = <timeExpression>
end = <timeExpression>
id = ID
tts:extent = string
xml:lang = string
xml:space = (default|preserve) : default
{any attribute in TT Parameter namespace ...}
{any attribute not in default or any TT namespace ...}>
Content: head?, body?
</tt>
|
If begin
and (or) end
attributes are specified
on the tt
element, then they specify the beginning and (or)
ending points of a time interval for a document instance in relationship with
some external application or presentation context. The temporal begin and end
points determined by an external application or presentation are referred to
subsequently as the external time interval.
Note:
For example, if a document instance represents a timed text media object
to be presented in synchronization with a video media object, then the
begin
and end
attributes may be used by an author
to express the time into the external video media object's time line at
which the timed text is intended to become active.
If the dur
attribute is specified on the tt
element, then it specifies the temporal duration of the active time interval
for a document instance.
If the tts:extent
attribute is specified on the
tt
element, then it specifies the spatial extent of the root
container region in which content regions are located and presented. If no
tts:extent
attribute is specified, then the spatial extent of
the root container region is considered to be infinite in both width and
height (with origin at top, left of region).
An xml:lang
attribute must be specified on the
tt
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.
If no xml:space
attribute is specified upon the
tt
element, then it must be considered as if the attribute had
been specified with a value of default
.
The head
element is a container element used to group header
matter, including metadata, styling, and layout information.
The head
element accepts as its children zero or more
elements in the Meta.class
element group, followed by zero or
one styling
element, followed by zero or one layout
element.
Any metadata specified by children in the Meta.class
element
group applies semantically to the document instance as a whole, and not just
the head
element.
A styling
child element is used to specify style constructs
that are referenced from other style constructs, by layout constructs, and by
content elements.
A layout
child element is used to specify layout constructs
that are referenced by content elements.
<head id = ID xml:lang = string xml:space = (default|preserve)> Content: Meta.class*, styling?, layout? </head> |
The body
element functions as a logical container and a
temporal structuring element for a sequence of textual content units
represented as logical divisions.
The body
element accepts as its children zero or more
elements in the Meta.class
element group, followed by zero or
more elements in the Animation.class
element group, followed by
zero or more div
elements.
Any metadata specified by children in the Meta.class
element
group applies semantically to the body
element and its
descendants as a whole.
Any animation elements specified by children in the
Animation.class
element group apply semantically to the
body
element.
<body begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID region = IDREF style = IDREFS timeContainer = (par|seq) xml:lang = string xml:space = (default|preserve) {any attribute in TT Metadata namespace ...} {any attribute in TT Style namespace ...} {any attribute not in default or any TT namespace ...}> Content: Meta.class*, Animation.class*, div* </body> |
An author may specify a temporal interval for a body
element
using the begin
, dur
, and end
attributes. If the begin point of this interval remains unspecified, then the
begin point is interpreted as the begin point of the tt
element's temporal interval. Similarly, if the end point of this interval
remains unspecified, then the end point is interpreted as the end point of
the tt
element's temporal interval.
Note:
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.
If relative begin or end times are specified on the body
element, then these times are resolved by reference to the begin and end time
of the external time interval.
If the external time interval is shorter than the computed duration of the
body
element, then the active time interval of a document
instance is truncated to the active end point of the external time
interval.
If no timeContainer
attribute is specified, then a
body
element must be interpreted as having sequential
time containment semantics.
An author may associate a set of style properties with a body
element by means of either the style
attribute or inline style
attributes or a combination thereof.
Note:
Style properties that are associated with a body
element in
a document instance are available for style inheritance by descendant
content elements such as div
, p
, and
span
.
The div
element functions as a logical container and a
temporal structuring element for a sequence of textual content units
represented as logical paragraphs.
Note:
When rendered on a continuous (non-paged) visual presentation medium, a
div
element is expected to generate a single block area that
contains zero or more child block areas generated by the div
element's child p
elements.
If the single block area generated by a div
element does
not contain any child areas, then it is not expected to be presented.
The div
element accepts as its children zero or more elements
in the Meta.class
element group, followed by zero or more
elements in the Animation.class
element group, followed by zero
or more p
elements.
Note:
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. This constraint is expected to be relaxed for use by an AFXP document instance.
Any metadata specified by children in the Meta.class
element
group applies semantically to the div
element and its
descendants as a whole.
Any animation elements specified by children in the
Animation.class
element group apply semantically to the
div
element.
<div begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID region = IDREF style = IDREFS timeContainer = (par|seq) xml:lang = string xml:space = (default|preserve) {any attribute in TT Metadata namespace ...} {any attribute in TT Style namespace ...} {any attribute not in default or any TT namespace ...}> Content: Meta.class*, Animation.class*, p* </div> |
If no timeContainer
attribute is specified, then a
div
element must be interpreted as having parallel time
containment semantics.
An author may associate a set of style properties with a div
element by means of either the style
attribute or inline style
attributes or a combination thereof.
Note:
Style properties that are associated to a div
element in a
document instance are available for style inheritance by descendant content
elements such as p
and span
.
A p
element represents a logical paragraph, serving as a
transition between block level and inline level formatting semantics.
The p
element accepts as its children zero or more elements
in the Meta.class
element group, followed by zero or more
elements in the Animation.class
element group, followed by zero
or more span
element, br
element, or text nodes
interpreted as anonymous spans.
Any metadata specified by children in the Meta.class
element
group applies semantically to the p
element and its descendants
as a whole.
Any animation elements specified by children in the
Animation.class
element group apply semantically to the
p
element.
<p begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID region = IDREF style = IDREFS timeContainer = (par|seq) xml:lang = string xml:space = (default|preserve) {any attribute in TT Metadata namespace ...} {any attribute in TT Style namespace ...} {any attribute not in default or any TT namespace ...}> Content: Meta.class*, Animation.class*, (#PCDATA|span|br)* </p> |
If a sequence of children of a p
element consists solely of
character information items, then that sequence must be considered to be an
anonymous span for the purpose of applying style properties that
apply to span
elements.
The span
element functions as a logical container and a
temporal structuring element for a sequence of textual content units having
inline level formatting semantics.
When presented on a visual medium, a span
element is intended
to generate a sequence of inline areas, each containing one or more glyph
areas.
The span
element accepts as its children zero or more
elements in the Meta.class
element group, followed by zero or
more elements in the Animation.class
element group, followed by
zero or more br
element or text nodes interpreted as anonymous
spans.
Note:
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. This constraint is expected to be relaxed for use by an AFXP document instance.
Any metadata specified by children in the Meta.class
element
group applies semantically to the span
element and its
descendants as a whole.
Any animation elements specified by children in the
Animation.class
element group apply semantically to the
span
element.
<span begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID region = IDREF style = IDREFS timeContainer = (par|seq) xml:lang = string xml:space = (default|preserve) {any attribute in TT Metadata namespace ...} {any attribute in TT Style namespace ...} {any attribute not in default or any TT namespace ...}> Content: Meta.class*, Animation.class*, (#PCDATA|br)* </span> |
The br
element denotes an explicit line break.
When presented on a visual medium, the presence of a br
element must be interpreted as if a LINE SEPARATOR
(&0x2028;
) character were specified in its place.
<br id = ID xml:lang = string xml:space = (default|preserve)> Content: EMPTY </br> |
This section defines the following common attributes used with many or all element types in the core vocabulary catalog:
id
xml:lang
xml:space
The id
attribute is used to uniquely identify elements in a
document instance.
The id
attribute may be used with any element in the core
vocabulary catalog.
The xml:lang
attribute is used as defined by [XML 1.1], §2.12, Language Identification.
The xml:lang
attribute must be specified on the
tt
element and may be specified by an instance of any other
element type in the core vocabulary catalog.
The xml:space
attribute is used as defined by [XML 1.1], §2.10, White Space Handling.
The xml:space
attribute may be used with any element in the
core vocabulary catalog.
The semantics of the value default
are fixed to mean that
white space that appears in element content as defined by [XML 1.1], §3.2.1, must be normalized at the application
layer during subsequent processing, such as presentation or transformation
processing, as follows:
replace each TAB character (	
) and NEWLINE
character (

) with a SPACE character
( 
);
replace each sequence of two or more SPACE characters with a single SPACE character;
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.
This section specifies the styling 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.
The following elements specify the structure and principal styling aspects of a document instance:
styling
style
The styling
element is a container element used to group
styling matter, including metadata that applies to styling matter.
The styling
element accepts as its children zero or more
elements in the Meta.class
element group, followed by zero or
more style
elements.
<styling id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace ...}> Content: Meta.class*, style* </styling> |
The style
element is used to define a single style
specification or a set of style specifications.
The style
element accepts as its children zero or more
meta
elements.
<style id = ID style = IDREFS xml:lang = string xml:space = (default|preserve) {any attribute in TT Style namespace ...} {any attribute in TT Style Extension namespace ...} {any attribute not in default or any TT namespace ...}> Content: Meta.class* </style> |
A style
element is considered to define a computed style
specification set, where the set is determined using the following
ordered rules:
If a style
attribute is specified on the
style
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
style
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
style
attribute.
If the style
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.
Two named style properties are considered to match if their expanded names match, where expanded name is defined by [XML Namespaces 1.1], §2.1, and the expanded name of a named style property is the expanded name of the attribute that specifies the named style property.
If a style
element appears as a descendant of a
region
element, then the style
element must be
ignored for the purpose of computing referential styles as defined by 8.4.2 Referential
Styling and 8.4.3 Chained
Referential Styling.
This section defines the style
attribute used with both style
definition elements as well as content elements.
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:
tts:backgroundColor
tts:color
tts:direction
tts:display
tts:displayAlign
tts:dynamicFlow
tts:extent
tts:fontFamily
tts:fontSize
tts:fontStyle
tts:fontWeight
tts:lineHeight
tts:opacity
tts:origin
tts:overflow
tts:padding
tts:showBackground
tts:textAlign
tts:textOutline
tts:unicodeBidi
tts:visibility
tts:wrapOption
tts:writingMode
tts:zIndex
Unless explicitly stated otherwise, linear white-space (LWSP) may appear between tokens of a value of a TT Style Property.
Note:
This specification makes use of lowerCamelCased local names for style attributes that are based upon like-named properties defined by [XSL 1.0]. This convention is likewise extended to token values of such properties.
The style
attribute is used to reference one or more
style
elements each of which define a computed style
specification set.
The style
attribute may be specified by an instance of the
following element types:
body
div
p
region
span
style
Note:
See the specific element type definitions that permit use of the
style
attribute for further information on its semantics.
The tts:backgroundColor
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.
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.
Values: | <color> | inherit |
Initial: | transparent |
Applies to: | region , body ,
div , p , span |
Inherited: | no |
Animatable: | discrete |
The tts:backgroundColor
style is illustrated by the following
example.
<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> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.7.2.
The tts:color
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.
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.
Values: | <color> | inherit |
Initial: | transparent |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
Note:
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be
enclosed in an anonymous span.
The tts:color
style is illustrated by the following
example.
<region id="r1"> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:textAlign="center"/> </region> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.17.1.
The tts:direction
attribute is used to specify a style
property that defines the directionality of an embedding or override
according to the Unicode bidirectional algorithm.
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.
Values: | ltr | rtl |
inherit |
Initial: | ltr |
Applies to: | span |
Inherited: | yes |
Animatable: | none |
The tts:direction
style is illustrated by the following
example.
|
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.27.1.
The tts:display
attribute is used to specify a style property
that defines whether an element is a candidate for layout and composition in
a region.
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.
Values: | auto | none |
inherit |
Initial: | auto |
Applies to: | body , div ,
p , span |
Inherited: | no |
Animatable: | discrete |
If the value of this attribute is auto
, then the affected
element is a candidate for region layout and presentation; however, if the
value is none
, then the affected element and its descendants
must be considered ineligible for region layout and presentation.
The tts:display
style is illustrated by the following
example.
<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> ... <div region="r1"> <p dur="5"> [[[ <span tts:display="none"> <set begin="1" dur="1" tts:display="auto"/> Beautiful soup, </span> <span tts:display="none"> <set begin="2" dur="1" tts:display="auto"/> so rich and green, </span> <span tts:display="none"> <set begin="3" dur="1" tts:display="auto"/> waiting in a hot tureen! </span> ]]] </p> </div> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [CSS2], § 9.2.5.
The tts:displayAlign
attribute is used to specify a style
property that defines the alignment of block areas in the block progression
direction.
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.
Values: | before | center |
after | inherit |
Initial: | before |
Applies to: | region |
Inherited: | yes |
Animatable: | none |
The tts:displayAlign
style is illustrated by the following
example.
<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> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.13.4.
The tts:dynamicFlow
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.
This style property applies only to a region when the
tts:overflow
property for that region has the value
dynamic
.
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.
Values: | auto | ( <flowUnit>
<flowStyle>? ){1,3} ( <duration>{1,2} )? |
Initial: | visible |
Applies to: | region |
Inherited: | no |
Animatable: | none |
If the value of this attribute consists of one <flowUnit>, then content is cleared from, flowed within, and filled into the region using the specified unit of flow and optional style of flow.
If the value of this attribute consists of two <flowUnit> values, then the first value specifies the unit of flow and optional style of flow for content cleared from the region, while the second specifies the unit of flow and optional style of flow for content flowed within and filled into the region.
If three values are specified, then the first specifies the units and manner of clearing from, the second specifies the units and manner of flowing within, and the third specifies the units and manner of filling into the region.
If a <flowStyle> is not specified for one of the three flow values,
then a flow style of jump
applies.
If one <duration> value is specified, then it denotes the time interval to wait between dynamic fill insertions. If two <duration> values are specified, then the second denotes the time interval to wait prior to clearing content from and flowing content within the region after the region has become full as a result of a dynamic fill insertion. The former <duration> is referred to as the fill interval, while the latter is referred to as the inter-fill interval.
The tts:dynamicFlow
style is illustrated by the following
example.
<region id="r1"> <style tts:extent="240px 117px"/> <style tts:backgroundColor="black"/> <style tts:color="yellow"/> <style tts:fontFamily="proportional-sans-serif"/> <style tts:fontSize="18px"/> <style tts:overflow="dynamic"/> <style tts:dynamicFlow="glyph smooth"/> </region> ... <div region="r1"> 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. The quick brown fox jumps over the lazy dog. </div> |
Editorial note: GA | 2005-02-02 |
The semantics of this style property needs more elaboration combined with visual examples. |
The tts:extent
attribute is used to specify the
width and height of a region area.
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.
Values: | auto | <length>
<length> | inherit |
Initial: | auto |
Applies to: | tt , region |
Inherited: | no |
Animatable: | none |
If the value of this attribute consists of two <length> specifications, then they must be interpreted as width and height, where the first specification is the width, and the second specification is the height.
If the value of this attribute is auto
, 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
tts:extent
specified on the tt
element, if present,
or by the external authoring context, if not present.
The tts:extent
style is illustrated by the following
example.
<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>
...
<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>
|
The tts:fontFamily
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.
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.
Values: | (<familyName> |
<genericFamilyName>) ("," (<familyName> |
<genericFamilyName>))* | inherit |
Initial: | default |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
Note:
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be
enclosed in an anonymous span.
Note:
The initial value, default
, is a generic font family name,
and is further described in 8.3.6
<genericFamilyName> below.
The tts:fontFamily
style is illustrated by the following
example.
<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="proportional-sans-serif"/> </region> ... <div region="r1"> <p> "The time has come," the Walrus said,<br/> "to talk of many things: </p> <p tts:textAlign="end" tts:fontFamily="monospace-serif"> 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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.8.2.
The tts:fontSize
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.
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.
Values: | <length> <length>? |
inherit |
Initial: | See prose |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
If a single <length> value is specified, then this length applies equally to horizontal and vertical scaling of a glyph's EM square; if two <length> values are specified, then the first expresses the horizontal scaling and the second expresses vertical scaling.
Note:
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.
If horizontal and vertical sizes are expressed independently, then the metrics of the <length> values must be the same.
A <length> value used to express font size must be non-negative.
The initial value of this property is defined as follows: if the value of
the ttp:defaultLengthUnit
parameter is c
or
em
, then the initial value of tts:fontSize
is
1c
; otherwise the initial value is the same as the height of the
root container region.
Note:
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be
enclosed in an anonymous span.
The tts:fontSize
style is illustrated by the following
example.
<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="proportional-sans-serif"/> <style tts:fontSize="18px"/> </region> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.8.4.
The tts:fontStyle
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.
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.
Values: | normal | italic |
oblique | reverse-oblique |
inherit |
Initial: | normal |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
Note:
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be
enclosed in an anonymous span.
The tts:fontStyle
style is illustrated by the following
example.
<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="proportional-sans-serif"/>
</region>
...
<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>
|
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.8.7.
The tts:fontWeight
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.
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.
Values: | normal | bold |
inherit |
Initial: | normal |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
Note:
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be
enclosed in an anonymous span.
The tts:fontWeight
style is illustrated by the following
example.
<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="proportional-sans-serif"/> </region> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.8.9.
The tts:lineHeight
attribute is used to specify a style
property that defines the inter-baseline separation between line areas
generated by content flowed into a region.
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.
Values: | normal | <length> |
inherit |
Initial: | normal |
Applies to: | p |
Inherited: | yes |
Animatable: | discrete |
If the value of this attribute is normal
, 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.
If specified as a <length>, then the length must be non-negative.
The tts:lineHeight
style is illustrated by the following
example.
<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="proportional-sans-serif"/>
<style tts:fontSize="16px"/>
<style tts:lineHeight="32px"/>
</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>
|
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.15.4.
The tts:opacity
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.
When presented onto a visual medium, the opacity of the affacted element is applied uniformly to all marks produced by the affected element (and its descendants).
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.
Values: | <alpha> | inherit |
Initial: | 1.0 |
Applies to: | region |
Inherited: | no |
Animatable: | discrete |
An <alpha> value greater than 1.0 must be considered equivalent to an <alpha> value of 1.0.
The tts:opacity
style is illustrated by the following
example.
<region id="r1" dur="5"> <set begin="0" dur="1" tts:opacity="1.00"/> <set begin="1" dur="1" tts:opacity="0.75"/> <set begin="2" dur="1" tts:opacity="0.50"/> <set begin="3" dur="1" tts:opacity="0.25"/> <set begin="4" dur="1" 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> ... <p region="r1"> The sun was shining on the sea </p> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [CSS3 Color], § 3.2.
The tts:origin
attribute is used to specify the x
and y 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.
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.
Values: | auto | <length>
<length> | inherit |
Initial: | auto |
Applies to: | region |
Inherited: | no |
Animatable: | none |
If the value of this attribute consists of two <length> specifications, then they must be interpreted as x and y coordinates, where the first specification is the x coordinate, and the second specification is the y coordinate.
If the value of this attribute is auto
, 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.
The tts:origin
style is illustrated by the following
example.
<region id="r1">
<style tts:origin="40px 40px"/>
<style tts:extent="308px 92px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="ceqnter"/>
<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>
|
The tts:overflow
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.
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.
Values: | visible | hidden
| dynamic | inherit |
Initial: | hidden |
Applies to: | region |
Inherited: | no |
Animatable: | none |
If the value of this attribute is visible
, 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
hidden
, then content should be clipped outside of the affected
region.
Note:
Unless a manual line break element br
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 tts:overflow
style that applies to the region is visible
.
If the value of this attribute is dynamic
, then content is
dynamically flowed into and out of the affected region according to the
values of the tts:dynamicFlow
style property; in this case, the
semantics of the tts:dynamicFlow
apply whether or not the
affected region has overflowed.
The tts:overflow
style is illustrated by the following
example.
<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="proportional-sans-serif"/> <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="proportional-sans-serif"/> <style tts:fontSize="18px"/> <style tts:wrapOption="noWrap"/> <style tts:overflow="hidden"/> </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> |
Note:
In the above example, the tts:noWrap
is set to
noWrap
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.
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.20.2.
The tts:padding
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.
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.
Values: | <length> | <length>
<length> | <length> <length> <length>
<length> | inherit |
Initial: | 0 |
Applies to: | region |
Inherited: | no |
Animatable: | discrete |
If the value of this attribute consists of one <length> specification, then that length applies to all edges of the affected areas. If the value consists of two <length> specifications, then the first applies to the before and after edges, and the second applies to the start and end edges. If four <length> specifications are provided, then they apply to before, end, after, and start edges, respectively.
The tts:padding
style is illustrated by the following
example.
<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>
...
<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>
|
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.
The tts:showBackground
attribute is used to specify
constraints on when the background color of a region is intended to be
presented.
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.
Values: | always |
whenActive | inherit |
Initial: | always |
Applies to: | region |
Inherited: | no |
Animatable: | discrete |
If the value of this attribute is always
, then the background
color of a region is always rendered when performing presentation processing
on a visual medium; if the value is whenActive
, then the
background color of a region is rendered only when some content is selected
into the region.
The tts:showBackground
style is illustrated by the following
example.
<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> |
|
Note:
The semantics of the style property represented by this attribute are based upon that defined by [SMIL2], § 5.3.1.
The tts:textAlign
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.
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.
Values: | start | center |
end | inherit |
Initial: | start |
Applies to: | p |
Inherited: | yes |
Animatable: | discrete |
The tts:textAlign
style is illustrated by the following
example.
<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> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.15.9.
The tts:textOutline
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.
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.
Values: | none | <color>?
<length> <length>? inherit |
Initial: | none |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
Note:
For the purpose of determining applicability of this style property,
each character child of a p
element is considered to be
enclosed in an anonymous span.
The value of this attribute consists of an optional <color> term
followed by one or two <length> terms. If a color term is
present, then it denotes the outline color; if no color term is
present, the computed value of the tts:color
applies. The first
length term denotes the outline thickness and the second length
term, if present, indicates the blur radius.
The tts:textOutline
style is illustrated by the following
example.
<region id="r1">
<style tts:backgroundColor="transparent"/>
<style tts:color="yellow"/>
<style tts:textOutline="black 2px 0px"/>
<style tts:fontFamily="proportional-sans-serif"/>
<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>
|
The tts:unicodeBidi
attribute is used to specify a style
property that defines a directional embedding or override according to the
Unicode bidirectional algorithm.
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.
Values: | normal | embed |
bidiOverride | inherit |
Initial: | normal |
Applies to: | span |
Inherited: | no |
Animatable: | none |
The tts:unicodeBidi
style is illustrated by the following
example.
|
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.27.6.
The tts:visibility
attribute is used to specify a style
property that defines whether generated areas are visible or not when
rendered on a visual presentation medium.
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.
Values: | visible | hidden
| inherit |
Initial: | visible |
Applies to: | region , body ,
div , p , span |
Animatable: | discrete |
Animatable: | discrete |
The tts:visibility
style has no affect on content layout or
composition, but merely determines whether composed content is visible or
not.
The tts:visibility
style is illustrated by the following
example.
<region id="r1"> <style tts:extent="398px 121px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style/> </region> ... <p region="r1" dur="4" tts:visibility="hidden"> <span> <set begin="1" tts:visibility="visible"/> Curiouser </span> <span> <set begin="2" tts:visibility="visible"/> and </span> <span> <set begin="3" tts:visibility="visible"/> curiouser! </span> </p> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.28.8.
The tts:wrapOption
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.
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.
Values: | wrap | no-wrap |
inherit |
Initial: | wrap |
Applies to: | span |
Inherited: | yes |
Animatable: | discrete |
For the purpose of determining applicability of this style property, each
character child of a p
element is considered to be enclosed in
an anonymous span.
The tts:wrapOption
style is illustrated by the following
example.
<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>
...
<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>
|
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.15.13.
The tts:writingMode
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.
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.
Values: | lrtb | rltb |
tbrl | tblr | lr |
rl | tb | inherit |
Initial: | lr-tb |
Applies to: | region |
Inherited: | no |
Animatable: | none |
The tts:writingMode
style is illustrated by the following
example.
<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> ... <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> |
Note:
In the second paragraph in the above example that targets region
r2
, the tts:unicodeBidi
and
tts:direction
properties are set to bidiOverride
and rtl
, respectively, in order to override the normally
left-to-right directionality of characters in the Latin script.
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.27.7.
The tts:zIndex
attribute is used to specify a style property
that defines the front-to-back ordering of region areas in the case that they
overlap.
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.
Values: | <integer> | inherit |
Initial: | 0 |
Applies to: | region |
Inherited: | no |
Animatable: | discrete |
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.
The tts:zIndex
style is illustrated by the following
example.
<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> ... <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> |
Note:
The semantics of the style property represented by this attribute are based upon that defined by [XSL 1.0], § 7.28.9.
Style property values include the use of the following expressions:
<alpha>
<color>
<digit>
<duration>
<familyName>
<flowStyle>
<flowUnit>
<genericFamilyName>
<hexDigit>
<integer>
<namedColor>
<quotedString>
<string>
An <alpha> expression is used to express an opacity value, where 0 means fully transparent and 1 means fully opaque.
<alpha> : <digit> ( "." <digit>+ )? |
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.
<color> : "#" rrggbb | "#" rrggbbaa | "rgb" "(" r-value "," g-value "," b-value ")" | "rgba" "(" r-value "," g-value "," b-value "," a-value ")" | <namedColor> rrggbb : <hexDigit>{6} rrggbbaa : <hexDigit>{8} r-value | g-value | b-value | a-value : component-value component-value : non-negative-integer // valid range: [0,255] non-negative-integer : <digit>+ |
A <digit> is used to express integers and other types of numbers or tokens.
<digit> : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" |
A <duration> expression is used to express a temporal duration value.
<duration> : <digit> ( "." <digit>+ )? metric? metric : "s" // seconds | "ms" // milliseconds | "f" // frames | "t" // ticks |
If no metric is specified, then the value then the default metric
specified by a ttp:defaultTimeMetric
parameter is used. If no
default metric is specified, then the time count must be interpreted as
seconds.
When operating with smpte
time base and
discontinuous
mode, a duration expression must be considered to
denote a duration in (local) real-time, independently of the governing time
base.
A <familyName> expression specifies a font family name.
If the name contains a whitespace or quotation delimiter character, then it must be expressed as a <quotedString>.
<familyName> : <string> | <quotedString> |
A <genericFamilyName> expression specifies a font family using a general token that indicates a class of font families.
The resolution of a generic family name to an concrete font instance is considered to be implementation dependent, both in the case of content authoring and content interpretation.
<genericFamilyName> : "default" | "monospace-sans-serif" | "monospace-serif" | "proportional-sans-serif" | "proportional-serif" |
The mapping between a generic (font) family name and an actual font is not determined by this specification.
A <flowStyle> expression specifies the manner in which content is dynamically flowed from, within, and into a region.
<flowStyle> : "jump" | "smooth" | "fade" |
Editorial note: GA | 2005-02-02 |
The semantics of flow style values need to be elaborated in combination with visual examples. |
A <flowUnit> expression specifies a unit of content to be dynamic flowed from, within, and into a region.
<flowUnit> : "glyph" | "inline" | "line" | "block" |
Editorial note: GA | 2005-02-08 |
The semantics of flow unit
values need to be elaborated in combination with visual examples. Here,
"glyph" corresponds with a spacing glyph produced by rendering a
character inline area (in XSL FO terminology); "inline" corresponds with
some maximal sequence of character inline areas that is generated by an
inline element (e.g., the span element); "line" corresponds
with a line area (a kind of a block area); and "block" corresponds with a
maximal sequence of line areas produced by a block element (e.g., the
p element). |
A <hexDigit> is used to express integers and other types of numbers or tokens that employ base 16 arithmetic.
For the purpose of parsing, no distinction must be made between lower and upper case.
<hexDigit> : <digit> | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" |
An <integer> expression is used to express an arbitrary, signed integral value.
<integer> : ( "+" | "-" )? <digit>+ |
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.
<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 : <digit>+ non-negative-real : <digit>* "." <digit>+ units : "px" | "em" | "c" // abbreviation of "cell" |
A <namedColor> is used to express an RGBA color with a convenient name.
For the purpose of parsing, no distinction must be made between lower and upper case.
<namedColor> : "transparent" // #00000000 | "black" // #000000ff | "silver" // #c0c0c0ff | "gray" // #808080ff | "white" // #ffffffff | "maroon" // #800000ff | "red" // #ff0000ff | "purple" // #800080ff | "fuchsia" // #ff00ffff | "green" // #008000ff | "lime" // #00ff00ff | "olive" // #808000ff | "yellow" // #ffff00ff | "navy" // #000080ff | "blue" // #0000ffff | "teal" // #008080ff | "aqua" // #00ffffff |
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.
<quotedString> : "\"" ( char - { "\"" } )* "\"" | "\'" ( char - { "\'" } )* "\'" |
Style matter may be associated with content matter in a number of ways:
inline styling
referential styling
chained referential styling
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 inline styling.
Style properties associated by inline styling are afforded a higher priority than all other forms of style association.
<p tts:color="white">White 1 <span tts:color="yellow">Yellow</span> White 2</p> |
Note:
In the above example, the two text fragments "White 1 "
and
" White 2"
, which are interpreted as anonymous spans, are not
associated with a color style property; rather, they inherit their color
style from their parent p
element as described in 8.5.1 Content Style
Inheritance below.
Style properties may be expressed in an out-of-line manner and referenced
by the affected element using the style
attribute. When
expressed in this manner, the association of style information is referred to
as referential styling.
If a style
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.
Note:
The use of referential styling encourages the reuse of style specifications while sacrificing locality of reference.
Note:
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 8.4.1 Inline Styling.
<style id="s1" tts:color="white"/> <style id="s2" tts:color="yellow"/> ... <p style="s1">White 1 <span style="s2">Yellow</span> White 2</p> |
Note:
In the above example, the two text fragments "White 1 "
and
" White 2"
, which are interpreted as anonymous spans, are not
associated with a color style property; rather, they inherit their color
style from their parent p
element as described in 8.5.1 Content Style
Inheritance below.
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 chained referential styling.
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.
A loop in a sequence of chained style references must be considered an error.
Note:
The use of chained referential styling encourages the grouping of style specifications into general and specific sets, which further aids in style specification reuse.
Note:
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 8.4.1 Inline Styling.
<style id="s1" style tts:color="white" tts:fontFamily="monospace-serif"/> <style id="s2" style="s1" tts:color="yellow"/> ... <p style="s1">White Monospace</p> <p style="s2">Yellow Monospace</p> |
Subsequent to the association of style matter with content matter as described above in 8.4 Style Association, styles are further propagated to content matter using:
content style inheritance
region style inheritance
Style properties are inherited from ancestor elements in the following case:
if a style property is not associated with an element (or an anonymous span) and the style property is designated as inheritable, or
if a style property is associated with an element and the associated
style property value is inherit
.
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 tts:fontFamily="monospace-sans-serif">
<span tts:color="yellow">Yellow Monospace</span>
</p>
|
Note:
In the above example, the span
element that encloses the
character items Yellow Monospace
is not associated with a
tts:fontFamily
style property and this property is
inheritable; therefore, the value of the tts:fontFamily
style
is inherited from the computed style specification set of the ancestor
p
element, and is added to the computed style specification
set of the span
element.
Style properties are inherited from a region element in the following case:
if a style property P is not associated with an element (or an anonymous span) E and the style property is designated as inheritable, and
if that style property P is in the computed style specification set of region R as defined by 9.1.2 region below, and
if that element E is flowed into region R.
<region id="r1"> <style tts:color="yellow"/> <style tts:fontFamily="monospace-serif"/> </region> ... <p region="r1">Yellow Monospace</p> |
This section specifies the layout 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.
Note:
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.
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).
The following elements specify the structure and principal layout aspects of a document instance:
layout
region
The layout
element is a container element used to group
layout matter, including metadata that applies to layout matter.
The layout
element accepts as its children zero or more
elements in the Meta.class
element group, followed by zero or
more region
elements.
<layout begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID timeContainer = (par|seq) xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace ...}> Content: Meta.class*, region* </layout> |
If begin
and (or) end
attributes are specified
on the layout
element, then they specify the beginning and (or)
ending points of a time interval during which layout semantics are eligible
for activation, and with respect to which individual regions are temporally
active or inactive.
If a dur
attribute is specified on the layout
element, then it specifies the simple duration of the layout matter defined
by this element.
The region
element is used to define a space or area into
which content is to be flowed for the purpose of presentation.
The region
element accepts as its children zero or more
elements in the Meta.class
element group, followed by zero or
more elements in the Animation.class
element group, followed by
zero or more style
elements.
Any metadata specified by children in the Meta.class
element
group applies semantically to the region
element and its
descendants as a whole. Any animation elements specified by children in the
Animation.class
element group apply semantically to the
region
element. Any style
child element must be
considered a local style definition that applies only to the containing
region
element, i.e., does not apply for resolving referential
styling.
<region begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID style = IDREFS timeContainer = (par|seq) xml:lang = string xml:space = (default|preserve) {any attribute in TT Style namespace ...} {any attribute not in default or any TT namespace ...}> Content: Meta.class*, Animation.class*, style* </region> |
A region
element is considered to define a computed style
specification set, where the set is determined using the following ordered
rules:
If a style
attribute is specified on the
region
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 style
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 style
attribute.
If the region
element has any style
element
children, then each style specification of the computed style
specification set of each child style
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
style
elements proceeds from first to last such child
element.
If the style
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.
Two named style properties are considered to match if their expanded names match, where expanded name is defined by [XML Namespaces 1.1], §2.1, and the expanded name of a named style property is the expanded name of the attribute that specifies the named style property.
If the computed style specification set of a region does not contain a
specification of the tts:extent
style property, then no content
is flowed into the region for the purpose of presentation.
If begin
and (or) end
attributes are specified
on a region
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 a dur
attribute is specified on the layout
element, then it specifies the simple duration of the region.
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.
This section defines the region
attribute used with content
elements.
The region
attribute is used to reference a
region
element which defines a space or area into which a
content element is intended to be flowed.
The region
attribute may be specified by an instance of the
following element types:
body
div
p
span
Note:
See 9.3 Region Layout and Presentation below for further information on content flow in a region.
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.
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, I, as follows:
for each temporally active region R, replicate the portion of
the document's sub-tree headed by the body
element;
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 R;
if the pruned sub-tree is non-empty, then reparent it to the R element;
finally, after completing the above steps, prune the original
body
element from the intermediate document, then prune all
region
, begin
, end
, and
dur
attributes, which are no longer semantically
relevant;
The pseudo-code shown in Example – Content Hierarchy Region Mapping provides one possible algorithm that implements these processing steps.
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 ) ) |
The result of performing the processing described above will be a sequence of N intermediate documents instances, I0…IN−1.
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 [XSL 1.0], and semantically extended by TT AF specific style properties that have no XSL FO counterpart.
Each intermediate document produced by 9.3.1 Synchronic Region Construction is mapped to an XSL FO document instance, F, as follows:
for each significant text node in a content element that is not a
child of a span
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;
for each element, determine its computed style specification set, if applicable;
map the tt
element to an fo:root
element,
populated initially with an fo:layout-master-set
element
that contains a valid fo:simple-page-master
that, in turn,
contains an fo:region-body
child, where the root container
extent expressed on the tt
element is mapped to
page-width
and page-height
attributes on the
fo:simple-page-master
element;
map the layout
element to an fo:page-sequent
element and a child fo:flow
element that reference the page
master and page region defined by the simple page master produced
above;
map each non-empty region
element to an
fo:block-container
element with an
absolute-position
attribute with value
absolute
, and where the region's position and extent are
mapped to equivalent top
, left
,
width
, and height
attributes;
for each body
, div
, and p
element that is not associated with a tts:display
style
property with the value none
, map the element to a distinct
fo:block
element, populating the style properties of
fo:block
by using the computed style specification set
associated with each original TT AF content element;
for each span
element that is not associated with a
tts:display
style property with the value none
and for each anonymous span, map the element or sequence of character
items to a distinct fo:inline
element, populating the style
properties of fo:inline
by using the computed style
specification set associated with each original TT AF content element or
anonymous span;
for each TT AF style property attribute in some computed style specification set that has no counterpart in [XSL 1.0], map that attribute directly through to the relevant formatting object produced by the input TT AF content element to which the style property applies;
optionally, synthesize a unique id
attribute on each
resulting formatting object element that relates that element to the
input element that resulted in that formatting object element;
For each resulting XSL FO document instance F, if processing requires presentation on a visual medium, then apply the formatting semantics prescribed by [XSL 1.0] in order to produce an XSL FO area tree that may then be subsequently rendered onto the visual medium.
An example of the processing steps described above is elaborated below, starting with Example – Sample Source Document.
<tt tts:extent="640 480" xmlns="http://www.w3.org/2004/11/ttaf1" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <head> <layout> <region id="r1"> <style tts:origin="10 100"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <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="10 300"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="yellow"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> </region> </layout> </head> <body id="b1"> <div id="d1" begin="0" dur="2"> <p id="p1" region="r1">Text 1</p> <p id="p2" region="r2">Text 2</p> </div> <div id="d2" begin="1" dur="2"> <p id="p3" region="r2">Text 3</p> <p id="p4" region="r1">Text 4</p> </div> </body> </tt> |
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.
The following, first intermediate document shows the synchronic state at
time interval [0,1), during which time only division d1
is
temporally active, and where paragraphs p1
and p2
(and their ancestors) are selected into regions r1
and
r2
, respectively.
<tt tts:extent="640 480" xmlns="http://www.w3.org/2004/11/ttaf1" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <head> <layout> <region id="r1"> <style tts:origin="10 100"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="red"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> <body id="b1-1"> <div id="d1-1"> <p id="p1">Text 1</p> </div> </body> </region> <region id="r2"> <style tts:origin="10 300"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="yellow"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> <body id="b1-2"> <div id="d1-2"> <p id="p2">Text 2</p> </div> </body> </region> </layout> </head> </tt> |
An XSL FO document instance produced by performing flow processing upon the first intermediate document is shown below.
<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> |
The following, second intermediate document shows the synchronic state at
time interval [1,2), at which time both divisions d1
and
d2
are temporally active, and where paragraphs p1
and p4
(and their ancestors) are selected into region
r1
and paragraphs p2
and p3
(and their
ancestors) are selected into region r2
.
<tt tts:extent="640 480" xmlns="http://www.w3.org/2004/11/ttaf1" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <head> <layout> <region id="r1"> <style tts:origin="10 100"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="red"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> <body 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="10 300"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="yellow"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> <body 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> |
The following, third intermediate document shows the synchronic state at
time interval [2,3), at which time only division d2
is
temporally active, and where paragraphs p4
and p3
(and their ancestors) are selected into regions r1
and
r2
, respectively.
<tt tts:extent="640 480" xmlns="http://www.w3.org/2004/11/ttaf1" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <head> <layout> <region id="r1"> <style tts:origin="10 100"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="red"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> <body id="b1-1"> <div id="d2-1"> <p id="p4">Text 4</p> </div> </body> </region> <region id="r2"> <style tts:origin="10 300"/> <style tts:extent="620 96"/> <style tts:fontSize="40"/> <style tts:fontWeight="bold"/> <style tts:backgroundColor="black"/> <style tts:color="yellow"/> <style tts:textAlign="center"/> <style tts:displayAlign="center"/> <body id="b1-2"> <div id="d2-2"> <p id="p3">Text 3</p> </div> </body> </region> </layout> </head> </tt> |
The semantics of line layout, including line breaking, defined by [XSL 1.0] apply to the performance of the composition and layout of lines for presentation processing of a document instance on a visual medium.
This section specifies the timing 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.
No timing related element vocabulary is defined for use in the core vocabulary catalog.
This section defines the following basic timing attributes for use with timed elements:
begin
end
dur
In addition, this section defines the timeContainer
for use
with timed elements that serve simultaneously as timing containers.
The begin
attribute is used to specify the begin point of a
temporal interval associated with a timed element. If specified, the value of
a begin
attribute must adhere to a <timeExpression>
specification as defined by 10.3.1
<timeExpression>.
The begin point of a temporal interval is included in the interval; i.e., the interval is left-wise closed.
Note:
The semantics of the begin
attribute are based upon that
defined by [SMIL2], § 10.3.1.
The end
attribute is used to specify the ending point of a
temporal interval associated with a timed element. If specified, the value of
a end
attribute must adhere to a <timeExpression>
specification as defined by 10.3.1
<timeExpression>.
The ending point of a temporal interval is not included in the interval; i.e., the interval is right-wise open.
The presentation effects of an 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).
Note:
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).
Note:
The semantics of the end
attribute are based upon that
defined by [SMIL2], § 10.3.1.
The dur
attribute is used to specify the duration of a
temporal interval associated with a timed element. If specified, the value of
a dur
attribute must adhere to a <timeExpression>
specification as defined by 10.3.1
<timeExpression>.
Note:
The semantics of the dur
attribute are based upon that
defined by [SMIL2], § 10.3.1.
The timeContainer
attribute is used to specify a local
temporal context by means of which timed child elements are temporally
situated.
If specified, the value of a timeContainer
attribute must be
one of the following:
par
seq
If the time container semantics of an element instance is
par
, 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.
If the time container semantics of an element instance is
seq
, 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.
Each time container is considered to constitute an independent time base, i.e., time coordinate system.
If a timeContainer
attribute is not specified on an element
that has time container semantics, then par
time container
semantics must apply.
Time container semantics applies only to the following element types:
tt
layout
region
body
div
p
span
Note:
The semantics of parallel and sequential time containment are based upon that defined by [SMIL2], § 10.3.2.
Timing attribute values include the use of the following expressions:
<timeExpression>
A <timeExpression> is used to specify a coordinate along some time
base, where the applicable time base is determined by the
ttp:timeBase
parameter.
Note:
See 6.2.13 ttp:timeBase, 6.2.5 ttp:frameRate, 6.2.11 ttp:subFrameRate, and 6.2.12 ttp:tickRate for further information on explicit specification of time base, frame rate, sub-frame rate, and tick rate.
<timeExpression> : clock-time | offset-time clock-time : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )? offset-time : time-count fraction? metric? hours : <digit> <digit> | <digit> <digit> <digit>+ minutes | seconds : <digit> <digit> frames : <digit> <digit> | <digit> <digit> <digit>+ sub-frames : <digit>+ fraction : "." <digit>+ time-count : <digit>+ metric : "h" // hours | "m" // minutes | "s" // seconds | "ms" // milliseconds | "f" // frames | "t" // ticks |
If a <timeExpression> is expressed in terms of a
offset-time and no metric term is specified, then the
default metric specified by a ttp:defaultTimeMetric
parameter is
used. If no default metric is specified, then the time count must be
interpreted as seconds.
If a <timeExpression> is expressed in terms of a clock-time, 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.
If a <timeExpression> is expressed in terms of a clock-time
and a frames term is specified, then the value of this term must be
constrained to the interval [0…F-1], where F is the frame
rate determined by the the ttp:frameRate
parameter as defined by
6.2.5 ttp:frameRate.
If a <timeExpression> is expressed in terms of a clock-time
and a sub-frames term is specified, then the value of this term must
be constrained to the interval [0…S-1], where S is the
sub-frame rate determined by the the ttp:subFrameRate
parameter
as defined by 6.2.11
ttp:subFrameRate.
The semantics of time containment, durations, and intervals defined by [SMIL2] apply to the interpretation of like-named timed elements and timing vocabulary defined by this specification, given the following constraints:
The implicit duration of body
, div
,
p
, and span
(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
indefinite
duration value as defined by [SMIL2]; if the element's parent time container is a
sequential time container, then the implicit duration is equivalent to
zero.
If the governing time mode is media
or smpte
with mode continuous
, then time expressions must be
interpreted as equivalent to offset clock values related to the associated
media time line.
If the governing time mode is smpte
with mode
discontinuous
, 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 [SMIL2].
If the governing time mode is clock
, then time expressions
must be interpreted as equivalent to wallclock time expressions in [SMIL2], where the applicable wallclock used is
determined by the clock mode parameter.
This section specifies the animation 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.
The following elements specify the structure and principal animation aspects of a document instance:
set
The set
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.
The set
element accepts as its children zero or more elements
in the Meta.class
element group.
<set begin = <timeExpression> dur = <timeExpression> end = <timeExpression> id = ID xml:lang = string xml:space = (default|preserve) {a single attribute in TT Style or TT Style Extension namespace} {any attribute not in default or any TT namespace ...}> Content: Meta.class* </set> |
Note:
The use of multiple set
element children may be used to
effect fade and position transitions.
Note:
The semantics of the set
element are based upon that
defined by [SMIL2], § 3.5.2.
This section specifies the metadata 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.
The meta
element serves as a generic container element for
grouping metadata information.
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:
ttm:title
ttm:desc
ttm:copyright
ttm:agent
ttm:name
ttm:actor
The meta
element functions as a generic container for
metadata information.
Metadata information may be expressed by a meta
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
meta
child elements that express metadata. Both types of
metadata are referred to in this document as metadata items.
<meta id = ID name = xsd:NMTOKEN xml:lang = string xml:space = (default|preserve) {any attribute in TT Metadata namespace ...}> {any attribute not in default or any TT namespace ...}> Content: {any element not in TT namespace}* </meta> |
Note:
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 meta
element children of any non-empty element type
except for the body
element. See specific element vocabulary
definitions for any constraints that apply to such usage.
The ttm:title
element is used to express a human-readable
title of a specific element instance.
<ttm:title id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace ...}> Content: #PCDATA </ttm:title> |
Note:
No specific use of the ttm:title
element is defined by this
specification.
The ttm:desc
element is used to express a human-readable
description of a specific element instance.
<ttm:desc id = ID role = NMTOKENS xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace ...}> Content: #PCDATA </ttm:desc> |
Note:
No specific use of the ttm:desc
element is defined by this
specification.
The ttm:copyright
element is used to express a human-readable
copyright that applies to some scoping level.
A copyright statement that applies to a document as a whole should appear
as a child of the head
element.
<ttm:copyright id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in default or any TT namespace ...}> Content: #PCDATA </ttm:copyright> |
Note:
No specific use of the ttm:copyright
element is defined by
this specification.
The ttm:agent
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.
The ttm:agent
element accepts as its children zero or more
ttm:name
elements followed by zero or one ttm:actor
element.
At least one ttm:name
element child should be specified that
expresses a name for the agent, whether it be the name of a person,
character, group, or organization.
<ttm:agent
id = ID
type = (person|character|group|organization|other)
xml:lang = string
xml:space = (default|preserve)
{any attribute not in default or any TT namespace ...}>
Content: ttm:name*, ttm:actor?
</ttm:agent>
|
A type
attribute must be specified on each
ttm:agent
element, and, if specified, must have one of the
following values:
person
character
group
organization
other
If the value of the type
attribute is character
,
then the ttm:agent
element instance should specify a
ttm:actor
child that specifies the agent that plays the role of
the actor.
A ttm:agent
metadata item is considered to be significant
only when specified as a child of the head
element or as a child
of a meta
element child of the head
element.
Note:
A ttm:agent
element instance is typically referenced using
a ttm:agent
attribute on a content element.
Note:
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.
The ttm:name
element is used to specify a name of a person,
character, group, or organization.
<ttm:name
id = ID
type = (full|family|given|alias|other)
xml:lang = string
xml:space = (default|preserve)
{any attribute not in default or any TT namespace ...}>
Content: #PCDATA
</ttm:name>
|
A type
attribute must be specified on each
ttm:name
element, and, if specified, must have one of the
following values:
full
family
given
alias
other
The relationship between the type of a name and the syntactic expression of the name is not defined by this specification.
The ttm:actor
element is used to link the definition of a
(role-based) character agent with another agent that portrays the
character.
<ttm:actor
id = ID
agent = IDREF
xml:lang = string
xml:space = (default|preserve)
{any attribute not in default or any TT namespace ...}>
Content: EMPTY
</ttm:actor>
|
The agent
attribute of a ttm:actor
element must
reference a ttm:agent
element that denotes the person, group, or
organization acting the part of a character.
This section specifies the following attributes in the TT Metadata Namespace
for use with the meta
element and with certain content
elements:
ttm:agent
ttm:role
Note:
Only certain metadata item attributes may be used with content elements. See the definitions of content elements to determine permissible usage.
The ttm:agent
attribute takes a IDREF
value, and
is used with certain content elements to designate the agent that performs or
is involved in the performance of the content.
If specified, a ttm:agent
attribute must reference a
ttm:agent
element instance that appears as a descendent of the
same document instance of the referring element.
The ttm:role
attribute may be used by a content author to
express a role, function, or characteristic of some content element that is
so labeled.
If specified, the value of this attribute must adhere to the following syntax:
ttm:role : "action" | "caption" | "kinesic" | "music" | "lyrics" | "sound" | "thought" | "title" | extension-role extension-role : "x-" token-char+ token-char : { XML NameChar } // XML 1.1 Production [4a] |
Note:
All values of ttm:role
that do not start with the prefix
x-
are reserved for future standardization.
For the purposes of this specification, a Reduced XML Infoset is an XML Information Set [XML InfoSet] that consists of only the following information items and information item properties:
This appendix specifies the following schemas for use with DFXP document instances:
Relax NG, Compact Syntax (RNC) Schema
XML Schema Definition (XSD) Schema
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.
This section specifies a Relax NG Compact Syntax (RNC) [RELAX NG] based schema for DFXP, also available in a ZIP Archive.
# ....................................................................... # TT-AF 1.0 Distribution Format Exchange Profile (DFXP) Schema .......... # ....................................................................... # default namespace default namespace tt = "http://www.w3.org/2004/11/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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # 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.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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # 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.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.Metadata.class = empty TTAF.MetadataItems.class = empty # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # 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.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.Styled.attrib.class, TTAF.TimedContainer.attrib.class TTAF.div.content.extra = empty TTAF.div.content = (TTAF.Metadata.class*, TTAF.Animation.class*, (TTAF.BlockNoDiv.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.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.Styled.attrib.class, TTAF.TimedContainer.attrib.class TTAF.span.content.extra = empty TTAF.span.content = (TTAF.Metadata.class*, TTAF.Animation.class*, (TTAF.InlineNoSpan.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.br.content = empty # 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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Core Attributes Module ................................. # ....................................................................... TTAF.id.attrib = attribute id { xsd:ID }? TTAF.lang.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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.1 DFXP Datatypes Module ....................................... # ....................................................................... TTAF.Alpha.datatype = string TTAF.Agent.datatype = xsd:IDREFS TTAF.Boolean.datatype = "false" | "true" TTAF.CellResolution.datatype = string TTAF.ClockMode.datatype = "local" | "gps" | "utc" TTAF.Color.datatype = string TTAF.Coordinate.datatype = string TTAF.Coordinates.datatype = string TTAF.Dimension.datatype = string TTAF.Direction.datatype = "ltr" | "rtl" | "inherit" TTAF.Display.datatype = "auto" | "none" | "inherit" TTAF.DisplayAlign.datatype = "auto" | "before" | "center" | "after" | "inherit" TTAF.DynamicFlow.datatype = string TTAF.Extent.datatype = string TTAF.FontFamily.datatype = string TTAF.FontSize.datatype = TTAF.Length.datatype TTAF.FontStyle.datatype = "normal" | "italic" | "oblique" | "inherit" TTAF.FontWeight.datatype = "normal" | "bold" | "inherit" TTAF.FrameRate.datatype = string TTAF.LanguageCode.datatype = xsd:NMTOKEN TTAF.LanguageCodes.datatype = string TTAF.Length.datatype = string TTAF.LengthUnit.datatype = "px" | "em" | "c" TTAF.LineHeight.datatype = TTAF.Length.datatype TTAF.MarkerMode.datatype = "continuous" | "discontinuous" TTAF.MetadataAgentType.datatype = "person" | "character" | "group" | "organization" | "other" TTAF.MetadataNameType.datatype = "full" | "family" | "given" | "alias" | "other" TTAF.Origin.datatype = string TTAF.Overflow.datatype = "visible" | "hidden" | "inherit" TTAF.Padding.datatype = string TTAF.Profile.datatype = TTAF.URI.datatype TTAF.Ratio.datatype = string TTAF.Role.datatype = xsd:NMTOKENS TTAF.ShowBackground.datatype = "always" | "whenActive" | "inherit" TTAF.SMPTEMode.datatype = "dropNTSC" | "dropPAL" | "nonDrop" TTAF.TextAlign.datatype = "start" | "center" | "end" | "inherit" TTAF.TextOutline.datatype = string TTAF.TickRate.datatype = string TTAF.TimeBase.datatype = "media" | "smpte" | "clock" TTAF.TimeContainer.datatype = "par" | "seq" TTAF.TimeCoordinate.datatype = string TTAF.TimeDuration.datatype = string TTAF.TimeMetric.datatype = "h" | "m" | "s" | "ms" | "f" | "t" 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 = "auto" | xsd:integer | "inherit" # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # 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.extent.attrib, TTAF.Core.attrib.class, TTAF.Parameter.attrib.class, TTAF.TimedContainer.attrib.class TTAF.tt.content = (TTAF.head?, TTAF.body?) # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # 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*) # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Layout Module .......................................... # ....................................................................... # region reference attribute; must reference /head/styling//region TTAF.region.attrib = attribute region { xsd:IDREF }? # layout - generic layout container TTAF.layout = element layout { TTAF.layout.attlist, TTAF.layout.content } TTAF.layout.attlist &= TTAF.Core.attrib.class, TTAF.TimedContainer.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*) # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Metadata Module ........................................ # ....................................................................... # namespace prefix bindings namespace tt = "http://www.w3.org/2004/11/ttaf1" namespace local = "" # meta - generic metadata TTAF.meta = element meta { TTAF.meta.attlist, TTAF.meta.content } TTAF.meta.attlist &= TTAF.Core.attrib.class, attribute name { xsd:NMTOKEN } TTAF.External.class = element * - tt:* { ( attribute * - local:* { text } | text | TTAF.External.class )* } TTAF.meta.content.extra = empty TTAF.meta.content = ((TTAF.MetadataItems.class | TTAF.External.class | TTAF.meta.content.extra)*) TTAF.Metadata.class |= TTAF.meta # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Metadata Items Module ...................................... # ....................................................................... namespace ttm = "http://www.w3.org/2004/11/ttaf1#metadata" namespace ttmx = "http://www.w3.org/2004/11/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, attribute role { xsd:NMTOKENS }? 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, attribute role { xsd:NMTOKENS }? 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.agent | TTAF.meta.desc | TTAF.meta.title | TTAF.MetadataItems.extra TTAF.Metadata.class |= TTAF.meta.title | TTAF.meta.desc | TTAF.meta.copyright # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Metadata Attributes Module .............................. # ....................................................................... namespace tt = "http://www.w3.org/2004/11/ttaf1" namespace ttm = "http://www.w3.org/2004/11/ttaf1#metadata" namespace ttmx = "http://www.w3.org/2004/11/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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Parameter Attributes Module ............................ # ....................................................................... namespace ttp = "http://www.w3.org/2004/11/ttaf1#parameter" # Standard Metadata Attributes TTAF.cellResolution.attrib = attribute ttp:cellResolution { TTAF.CellResolution.datatype }? TTAF.clockMode.attrib = attribute ttp:clockMode { TTAF.ClockMode.datatype }? TTAF.defaultLengthUnit.attrib = attribute ttp:defaultLengthUnit { TTAF.LengthUnit.datatype }? TTAF.defaultTimeMetric.attrib = attribute ttp:defaultTimeMetric { TTAF.TimeMetric.datatype }? TTAF.frameRate.attrib = attribute ttp:frameRate { TTAF.FrameRate.datatype }? TTAF.frameRateMultiplier.attrib = attribute ttp:frameRateMultiplier { TTAF.Ratio.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.Ratio.datatype }? TTAF.smpteMode.attrib = attribute ttp:smpteMode { TTAF.SMPTEMode.datatype }? TTAF.subFrameRate.attrib = attribute ttp:subFrameRate { TTAF.FrameRate.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.defaultLengthUnit.attrib, TTAF.defaultTimeMetric.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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Styling Attributes Module .............................. # ....................................................................... namespace tt = "http://www.w3.org/2004/11/ttaf1" namespace tts = "http://www.w3.org/2004/11/ttaf1#style" namespace ttsx = "http://www.w3.org/2004/11/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.Alpha.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.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.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, TTAF.region.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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # TT-AF 1.0 DFXP Styling Module ......................................... # ....................................................................... # style reference attribute; must reference /head/styling//(g|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 # ....................................................................... # ....................................................................... # .......................................................................
# ....................................................................... # 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 # ....................................................................... # ....................................................................... # .......................................................................
This section specifies a W3C XML Schema Definition (XSD) [XML Schema Part 1] based schema for DFXP, also available in a ZIP Archive.
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1"> <xs:include schemaLocation="ttaf1-dfxp-document.xsd"/> </xs:schema>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata" xmlns:tts="http://www.w3.org/2004/11/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/2004/11/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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata" xmlns:tts="http://www.w3.org/2004/11/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/2004/11/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> <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:element ref="tt:p" 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:InlineNoSpan.class" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="tt:span.attlist"/> </xs:complexType> <xs:complexType name="br.eltype"> <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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1"> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> <xs:attributeGroup name="Core.attrib.class"> <xs:attribute name="id" type="xs:ID"/> <xs:attributeGroup ref="xml:specialAttrs"/> </xs:attributeGroup> <xs:attributeGroup name="Core.required.attrib.class"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute ref="xml:lang" use="required"/> <xs:attribute ref="xml:space"/> </xs:attributeGroup> </xs:schema>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1#datatype" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ttd="http://www.w3.org/2004/11/ttaf1#datatype"> <xs:simpleType name="alpha"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="agent"> <xs:restriction base="xs:IDREFS"/> </xs:simpleType> <xs:simpleType name="cellResolution"> <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="coordinate"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="coordinates"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="dimension"> <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="auto"/> <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:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="fontFamily"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="fontSize"> <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="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:string"/> </xs:simpleType> <xs:simpleType name="length"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="lengthUnit"> <xs:restriction base="xs:token"> <xs:enumeration value="px"/> <xs:enumeration value="em"/> <xs:enumeration value="c"/> </xs:restriction> </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="origin"> <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="dynamic"/> <xs:enumeration value="inherit"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="padding"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="profile"> <xs:restriction base="xs:anyURI"/> </xs:simpleType> <xs:simpleType name="ratio"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="role"> <xs:restriction base="xs:NMTOKENS"/> </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="textAlign"> <xs:restriction base="xs:token"> <xs:enumeration value="auto"/> <xs:enumeration value="start"/> <xs:enumeration value="center"/> <xs:enumeration value="end"/> <xs:enumeration value="inherit"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="textOutline"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="tickRate"> <xs:restriction base="xs:string"/> </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:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="timeDuration"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType name="timeMetric"> <xs:restriction base="xs:token"> <xs:enumeration value="h"/> <xs:enumeration value="m"/> <xs:enumeration value="s"/> <xs:enumeration value="ms"/> <xs:enumeration value="f"/> <xs:enumeration value="t"/> </xs:restriction> </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:restriction base="xs:string"/> </xs:simpleType> </xs:schema>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttp="http://www.w3.org/2004/11/ttaf1#parameter" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <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:import namespace="http://www.w3.org/2004/11/ttaf1#parameter" schemaLocation="ttaf1-dfxp-parameter-attribs.xsd"/> <xs:import namespace="http://www.w3.org/2004/11/ttaf1#style" schemaLocation="ttaf1-dfxp-styling-attribs.xsd"/> <xs:attributeGroup name="tt.attlist"> <xs:attributeGroup ref="tt:Core.required.attrib.class"/> <xs:attributeGroup ref="ttp:Parameter.attrib.class"/> <xs:attributeGroup ref="tt:TimedContainer.attrib.class"/> <xs:attribute ref="tts:extent"/> </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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata" xmlns:tts="http://www.w3.org/2004/11/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:layout.attlist"/> </xs:complexType> <xs:element name="head" type="tt:head.eltype"/> </xs:schema>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata" xmlns:tts="http://www.w3.org/2004/11/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/2004/11/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 ref="tt:TimedContainer.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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata"> <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/> <xs:import namespace="http://www.w3.org/2004/11/ttaf1#metadata" schemaLocation="ttaf1-dfxp-metadata-items.xsd"/> <xs:attributeGroup name="meta.attlist"> <xs:attributeGroup ref="tt:Core.attrib.class"/> <xs:attribute name="name" type="xs:NMTOKEN"/> </xs:attributeGroup> <xs:complexType name="meta.eltype" mixed="true"> <xs:sequence> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="tt:meta.attlist"/> </xs:complexType> <xs:element name="meta" type="tt:meta.eltype"/> <xs:group name="Metadata.class"> <xs:choice> <xs:group ref="ttm:MetadataItems.class"/> <xs:element ref="tt:meta"/> </xs:choice> </xs:group> </xs:schema>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1#metadata" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttd="http://www.w3.org/2004/11/ttaf1#datatype" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata"> <xs:import namespace="http://www.w3.org/2004/11/ttaf1#datatype" schemaLocation="ttaf1-dfxp-datatypes.xsd"/> <xs:import namespace="http://www.w3.org/2004/11/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="unbounded"/> </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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1#metadata" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ttd="http://www.w3.org/2004/11/ttaf1#datatype" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata"> <xs:import namespace="http://www.w3.org/2004/11/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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1#parameter" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ttd="http://www.w3.org/2004/11/ttaf1#datatype" xmlns:ttp="http://www.w3.org/2004/11/ttaf1#parameter"> <xs:import namespace="http://www.w3.org/2004/11/ttaf1#datatype" schemaLocation="ttaf1-dfxp-datatypes.xsd"/> <xs:attribute name="cellResolution" type="ttd:cellResolution"/> <xs:attribute name="clockMode" type="ttd:clockMode"/> <xs:attribute name="defaultLengthUnit" type="ttd:lengthUnit"/> <xs:attribute name="defaultTimeMetric" type="ttd:timeMetric"/> <xs:attribute name="frameRate" type="ttd:frameRate"/> <xs:attribute name="frameRateMultiplier" type="ttd:ratio"/> <xs:attribute name="markerMode" type="ttd:markerMode"/> <xs:attribute name="profile" type="ttd:profile"/> <xs:attribute name="pixelAspectRatio" type="ttd:ratio"/> <xs:attribute name="smpteMode" type="ttd:smpteMode"/> <xs:attribute name="subFrameRate" type="ttd:frameRate"/> <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:defaultLengthUnit"/> <xs:attribute ref="ttp:defaultTimeMetric"/> <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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1#style" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ttd="http://www.w3.org/2004/11/ttaf1#datatype" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <xs:import namespace="http://www.w3.org/2004/11/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:length"/> <xs:attribute name="opacity" type="ttd:alpha"/> <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="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: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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.w3.org/2004/11/ttaf1" xmlns:ttm="http://www.w3.org/2004/11/ttaf1#metadata" xmlns:tts="http://www.w3.org/2004/11/ttaf1#style"> <xs:include schemaLocation="ttaf1-dfxp-core-attribs.xsd"/> <xs:include schemaLocation="ttaf1-dfxp-metadata.xsd"/> <xs:import namespace="http://www.w3.org/2004/11/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>
<xs:schema targetNamespace="http://www.w3.org/2004/11/ttaf1" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ttd="http://www.w3.org/2004/11/ttaf1#datatype" xmlns:tt="http://www.w3.org/2004/11/ttaf1"> <xs:import namespace="http://www.w3.org/2004/11/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>
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:attribute name="lang" type="xs:language"/> <xs:attribute name="space" default="preserve"> <xs:simpleType> <xs:restriction base="xs:NCName"> <xs:enumeration value="default"/> <xs:enumeration value="preserve"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attributeGroup name="specialAttrs"> <xs:attribute ref="xml:lang"/> <xs:attribute ref="xml:space"/> </xs:attributeGroup> </xs:schema>
The Distribution Format Exchange Profile (DFXP) of the Timed Text Authoring Format (TT AF) satisfies a subset of the requirements established by [TTAF1-REQ]. The following table enumerates these requirements and indicates the extent to which they are satisfied by DFXP, where S denotes a requirement is satisfied, P denotes a requirement is partially satisfied, and N denotes a requirement is not satisfied.
ID | Name | Status | Comments |
---|---|---|---|
R100 | Specification Format | S | |
R101 | Specification Modularity | S | |
R102 | Specification Organization | S | |
R103 | Core and Periphery | S | TT extension namespaces |
R104 | Evolution of Core | S | TT extension namespaces |
R105 | Ownership of Core | S | TT namespaces |
R106 | Surjection of Core | S | |
R107 | Evolution of Periphery | S | TT extension namespaces |
R108 | Ownership of Periphery | S | Non-TT namespaces |
R109 | Transformation | S | Supports 3GPP, QText, RealText, SAMI |
R110 | Streamable Transformation | S | Progressive decoding |
R111 | Accessibility – Content | S | Alternative document instances |
R112 | Accessibility – Authoring System | S | |
R200 | Authorability | S | |
R201 | Multiple Natural Languages | S | Alternative document instances |
R202 | Natural Language Coverage | S | Unicode 4.0 |
R203 | Natural Language Association Granularity | S | See xml:lang |
R204 | Minimum Character Representability | S | Unicode 4.0 |
R205 | Intrinsic and Extrinsic Text Content | P | Intrinsic only |
R206 | Markup Association | P | Intrinsic only |
R207 | Conditional Content | N | |
R208 | Flowed Text | S | |
R209 | Logical Flowed Text Vocabulary | S | |
R210 | Presentational Flowed Text Vocabulary | S | Implied mapping from logical flowed text. |
R211 | Flowed Text Vocabulary Relationship | S | |
R212 | Flowed Text Vocabulary Separation | N | |
R213 | Non-Flowed Text | N | |
R214 | Non-Flowed Text Vocabulary | N | |
R215 | Hybrid Flowed and Non-Flowed Text | N | |
R216 | Hyperlinking | N | Can support via XLink |
R217 | Embedded Graphics | N | |
R218 | Non-Embedded Graphics | N | |
R219 | Embedded Fonts | N | |
R220 | Non-Embedded Fonts | N | |
R221 | Descriptive Vocabulary | S | See ttm:agent ,
ttm:role |
R222 | Embedded Audio | N | |
R223 | Non-Embedded Audio | N | |
R290 | Markup Format | S | |
R291 | Markup Format and Unicode Interaction | S | |
R292 | Extrinsic Resource References | N | No extrinsic references |
R293 | Schema Validity Specification | S | |
R300 | Inline Styling | S | |
R301 | Inline Styling Form | P | Inline and referential styling |
R301 | Out-of-Line Styling | N | |
R301 | Out-of-Line Styling Form | N | |
R304 | Styling Prioritization | S | |
R305 | Style Parameters – Aural | N | |
R306 | Style Parameters – Visual | P | 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 |
R307 | Style Parameters – Temporal Fill Mode | S | See tts:dynamicFlow |
R390 | Style Parameter Symmetry | S | |
R391 | Style Parameter Definitions | S | |
R392 | Style Parameter Shorthands | S | |
R401 | Inline Timing | S | |
R402 | Out-of-Line Timing | N | |
R403 | Synchronization Parameters | P | Supports begin, end, dur |
R404 | Synchronization Parameter Value Spaces | P | Supports offset values, media marker values (SMPTE 12M), wallclock values |
R405 | Time Containment Semantics | P | Supports sequential, parallel |
R500 | Animation Modes | P | Supports discrete |
R501 | Scroll Animation | S | See tts:dynamicFlow |
R502 | Highlight Animation | S | <set
tts:backgroundColor="..."/> |
R503 | Fade Transition Animation | S | <set
tts:opacity="..."/> |
R504 | Animated Style Parameters – Aural | N | |
R505 | Animated Style Parameters – Visual | P | Supports animating background color, color, display, opacity, origin, visibility |
N506 | Animated Content | S | |
R600 | Metadata Item Association | S | See meta ,
Meta.class |
R601 | Metadata Item Constituents | P | Supports name, value |
R602 | Metadata Item Value Representation | P | See meta |
R603 | Metadata Item Extensibility | S | See meta |
R604 | Metadata Item Validation | S | See meta |
R690 | Dublin Core Preference | N | Uses ttm:copyright ,
ttm:desc , ttm:title |
Editorial note: GA | 2004-02-08 |
This section is intended to informatively describe how that one may stream DFXP content. The following material is expected to be revised and/or enhanced in the next revision of this document. |
DFXP Content is designed to support streamability by implementing the following properties:
can be progressively encoded (i.e., does not require computing subsequent data prior to sending current data);
can be progressively decoded (i.e., does not require forward references, but uses only reverse references when necessary);
does not require dereferencing (and subsequent loading) of any resources other than DFXP content (i.e., no embedded URIs);
does not support alternative content forms (e.g., different language, graphics formats, time bases) in a single document;
has timing structure compiled into inline format that makes possible a temporal ordering of content that follows temporal presentation order;
constrains content models to prevent arbitrary nested content structures;
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 root fragment, 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.
In applications that require abtitrary (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.
An example of such a fragmentation of a DFXP document instance is shown in Figure 2 – Fragment Streaming.
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.
The current members of the Timed Text Working Group are: Glenn Adams, Extensible Formatting Systems, Inc. (chair); Michael Dolan, Invited Expert; Geoff Freed, WGBH; Sean Hayes, Microsoft; Erik Hodge, RealNetworks; David Kirby, BBC; Thierry Michel, W3C (team contact); Dave Singer, Apple Computer.
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 (AFXP concepts, including applicative timing), Eric Hodge (timing), Thierry Michel (metadata), and Dave Singer (animation, scrolling).
Former or inactive members of the Timed Text Working Group include: Kees Blom, CWI; Brad Botkin, WGBH; Dick Bulterman, CWI; Gerry Fields, WGBH; Markus Gylling, DAISY Consortium; Markku Hakkinen, Japanese Society for Rehabilitation of Persons with Disabilities; Masahiko Kaneko, Microsoft; George Kerscher, DAISY Consortium.
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.
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).
The editor wishes to especially acknowledge the following contributions by non-members: John Birch (dynamic flow).