previous next contents

# 9. The SMIL 2.0 Structure Module

Editors
  Warner ten Kate (warner.ten.kate@philips.com), (Philips Electronics)
  Aaron Cohen (aaron.m.cohen@intel.com), (Intel)

## Table of contents

## 9.1 Introduction

This section is informative.

This Section defines the SMIL structure 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 out 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.

## 9.2 The SMIL 2.0 Structure Module Syntax and Semantics

This section is normative.

### 9.2.1 Elements and attributes

This section defines the elements and attributes that make up the SMIL 2.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 can have the following attributes:

id
  The id attribute uniquely identifies an element within a document. Its value is an XML identifier.
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.0 [XML10]. 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 2.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
  The xmlns attribute declares an XML namespace, and is defined in "Namespaces in XML" [XML-NS].

##### Element content

The smil element can 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 can have the following attributes:

id
  Defined in id under the smil element.
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 HTML+SMIL language profile (still in progress and not yet ready for Last Call), the body element comes from HTML, and acts as a par time container.

##### Element attributes

The body element can have the following attributes:

id
  Defined in id under the smil element.
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 2.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.

## 9.3 Integrating the SMIL Structure Module

This section is normative.

When this module is included in a language profile, the id, class, and title attributes defined in this module must be added 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 2.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 need to be overridden. This realizes 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].

## 9.4 DTD

This section is normative.

This section specifies the DTD of the SMIL 2.0 Structure module.

    <!-- ====================================================================== -->
    <!-- SMIL Structure Module  =============================================== -->
    <!-- file: SMIL-struct.mod

         This is SMIL 2.0.
         Copyright 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.

         This DTD module is identified by the PUBLIC and SYSTEM identifiers:

         PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Document Structure//EN"
         SYSTEM "SMIL-struct.mod"

         Author: Warner ten Kate, Jacco van Ossenbruggen
         Revision: $Id: SMIL-struct.mod,v 1.15 2000/08/24 11:07:09 jvanoss Exp $

         ===================================================================== -->

    <!-- ================== SMIL Document Root =============================== -->
    <!ENTITY % smil.attrib  "" >
    <!ENTITY % smil.content "EMPTY" >
    <!ENTITY % smil.qname   "smil" >

    <!ELEMENT %smil.qname; %smil.content;>
    <!ATTLIST %smil.qname; %smil.attrib;
            %Core.attrib;
            %I18n.attrib;
            xmlns %URI; #FIXED %SMIL.ns;
    >

    <!-- ================== The Document Head ================================ -->
    <!ENTITY % head.content "EMPTY" >
    <!ENTITY % head.attrib  "" >
    <!ENTITY % head.qname   "head" >

    <!ELEMENT %head.qname; %head.content;>
    <!ATTLIST %head.qname; %head.attrib;
            %Core.attrib;
            %I18n.attrib;
    >

    <!--=================== The Document Body - Timing Root ================== -->
    <!ENTITY % body.content "EMPTY" >
    <!ENTITY % body.attrib  "" >
    <!ENTITY % body.qname   "body" >

    <!ELEMENT %body.qname; %body.content;>
    <!ATTLIST %body.qname; %body.attrib;
            %Core.attrib;
            %I18n.attrib;
    >
    <!-- end of SMIL-struct.mod -->

## 9.5 Schema

This section is informative.

This section will specify the XML schema of the SMIL 2.0 Structure module.

previous next contents