previous   next   contents  

3. SMIL 3.0 Structure

Editor for SMIL 3.0
Thierry Michel, W3C
Editor for Earlier Versions of SMIL
Warner ten Kate, Philips Electronics
Aaron Cohen, Intel.

Table of contents

3.1 Overview and Summary of Changes for SMIL 3.0

This section is informative.

The SMIL 3.0 specification adds the Identity Module to the SMIL 2.1 Structure Module [SMIL21-structure]. It also adds the xml:id attribute, which should be used to assign identity to elements instead of the id attribute, which has been deprecated in SMIL 3.0.

3.2 Introduction

This section is informative

This Section defines the SMIL Structure module and the Identity Module.
The Structure module provides the base elements for structuring SMIL content. These elements act as the root in the content model of all SMIL Host Language conformant language profiles. The Structure module is a mandatory module for SMIL Host Language conformant language profiles. The SMIL Structure module is composed of the smil, head, and body elements, and is compatible with SMIL 1.0 [SMIL10]. The corresponding SMIL 1.0 elements form a subset of the Structure module, both in syntax and semantics, as their attributes and content model is also exposed by the Structure module. Thus, the Structure module is backwards compatible with SMIL 1.0.

The Identity Module provides attributes to identify the SMIL version and the SMIL profile.

3.3 The SMIL 3.0 Structure Module Syntax and Semantics

This section is normative

3.3.1 Elements and attributes

This section defines the elements and attributes that make up the SMIL 3.0 Structure module.

The smil element

The smil element acts as the root element for all SMIL Host Language conformant language profiles.

Element attributes

The smil element may have the following attributes:

xml:id
The xml:id attribute uniquely identifies an element within a document. Its value is an XML identifier. Refer to the "xml:id Version 1.0" Recommendation [XML-ID]. It is strongly recommended that SMIL generators and authors use only xml:id to assign identity to elements.
id (Deprecated.)
The id attribute uniquely identifies an element within a document. Its value is an XML identifier. The id attribute is deprecated in SMIL 3.0; SMIL 3.0 content should use xml:id instead. If the xml:id and id attributes are used on the same element, the id will be ignored. The id attribute may become obsolete in a future version of SMIL. User agents should continue to support this deprecated attribute for reasons of backward compatibility.
class
The class attribute assigns a class name or a set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.
xml:lang
The xml:lang attribute specifies the language of an element, and is specified in XML 1.1 [XML11]. xml:lang differs from systemLanguage test attribute in one important respect. xml:lang provides information about content's language independent of what implementations do with the information, whereas systemLanguage is a test attribute with specific associated behavior (see systemLanguage in SMIL 3.0 BasicContentControl Module for details).
title
The title attribute offers advisory information about the element for which it is set. Values of the title attribute may be rendered by user agents in a variety of ways. For instance, visual browsers frequently display the title as a "tool tip" (a short message that appears when the pointing device pauses over an object).
xmlns[:/prefix/]
The standard XML attribute for identifying an XML namespace. Refer to the "Namespaces in XML" Recommendation [XML-NS] and to the rules for SMIL 3.0 Conformant Documents.
Element content

The smil element may contain the following elements:

head
body

The head element

The head element contains information that is not related to the temporal behavior of the presentation. Three types of information may be contained by head. These are meta information, layout information, and author-defined content control.

Element attributes

The head element may have the following attributes:

xml:id
Defined in xml:id under the smil element.
id
Defined in id under the smil element. It is recommended to use xml:id instead.
class
Defined in class under the smil element.
xml:lang
Defined in xml:lang under the smil element.
title
Defined in title under the smil element.
Element content

The head element contains elements depending on the other modules and specific syntax included in the language profile integrating this module.

The body element

The body element contains information that is related to the temporal and linking behavior of the document. It acts as the root element of the timing tree.

The body element has the timing semantics of a time container equal to that of the seq element [BasicTimeContainers module]. Note, that in other language profiles, where a body element from another (Structure) Module is in use, that body element may have different timing semantics. For example, in the XHTML+SMIL language profile (still in progress and not yet a W3C Recommendation), the body element comes from HTML, and acts as a par time container.

Element attributes

The body element may have the following attributes:

xml:id
Defined in xml:id under the smil element.
id (Deprecated.)
Defined in id under the smil element. It is recommended to use xml:id instead.
class
Defined in class under the smil element.
xml:lang
Defined in xml:lang under the smil element.
title
Defined in title under the smil element.

The timing attributes defined in the various SMIL 3.0 Timing modules are part of the body element so far as the corresponding timing modules, such as BasicInlineTiming, are part of the language profile. When a timing module is included in a language profile, the features of that module should be supported on the body element just as they are supported on the other elements in the profile. For example, the syncMaster attribute should be supported on the body element if the SyncMaster module is included in the integrating profile.

Element content

The body element contains elements depending on the other modules and specific syntax included in the language profile integrating this module.

3.4 Integrating the SMIL Structure Module

This section is normative

When this module is included in a language profile, the xml:id, class, and title attributes defined in this module must be included on all elements from all modules used in the profile, including those from other module families and of non-SMIL origin. The integrating profile should also consider adding the xml:lang attribute to the applicable elements.

The SMIL Structure module is the starting module when building any SMIL Host Language conformant language profile. The Structure module may not be used for building other, non-SMIL Host Language conformant language profiles. This implies that the SMIL Structure module must at least be accompanied with the other modules mandatory for SMIL Host language conformance, and the elements in the structure module must include at least the minimum content models required for SMIL Host language conformance.

When modules from outside the SMIL 3.0 namespace are integrated in the language profile, it must be specified how the elements from those non-SMIL modules fit into the content model of the used SMIL modules (and vice versa). For example, with respect to the SMIL Structure module, the Profiling Entities in the DTD should be overridden. This creates a so-called hybrid document type [XMOD]. In case of a so-called compound document type, the rules of XML namespaces must be satisfied [XML-NS].

3.5 The SMIL 3.0 Identity Module

This section is normative

3.5.1 SMIL 3.0 Identity Module Overview

This module contains two attributes, version and baseProfile, which are used to identify which version of SMIL and for which Profile the document is written for.

3.5.2 Elements and attributes

Element definition

The Identity Module does not contain any element definitions.

Attribute definition

This section defines the attributes that make up the SMIL 3.0 Identity Module.

version
value: version-number
version-number ::= "3.0"
The version attribute identifies the SMIL version number. If the version attribute value is different from the above value, the user agent should specify an error. See also Handling syntax errors.
baseProfile
value: profile-name
profile-name ::= "Language" | "UnifiedMobile" | "Daisy" | "Tiny" | "smilText" | user-defined-profile-name
user-defined-profile-name ::= "x-" NMTOKEN
The baseProfile attribute specifes the SMIL Profile used. If the baseProfile attribute value is different from the above values, the user agent should specify an error. See also Handling syntax errors.

This section is informative

Example of version and baseProfile attribute use

<smil xml:id="root" xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Tiny" >
  <head xml:id="head"> ...   </head>
  <body xml:id="body"> ...   </body>
</smil>

3.5.3 Integration Requirements for the SMIL 3.0 Identity Module

It is the responsibility of the language profile to specify which elements support the version and baseProfile attributes. All profiles should at least support these two attributes on the top-level smil element.


previous   next   contents