previous   next   contents  

10. SMIL Structure Module

Editors
Warner ten Kate (warner.ten.kate@philips.com), (Philips Electronics)

Table of contents

10.1 Introduction

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 document types in the SMIL language profile family. The Structure Module is a mandatory module in a language profile building a member of the SMIL language profile family. The Structure Module is isomorphic with the XHTML Structure Module [XMOD].

The SMIL Structure Module is composed out of the smil, head, and body element, 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.

10.2 The SMIL Structure Level 0 Syntax and Semantics

This section is Normative on the Semantics, and Informative on the Syntax. (The DTD is normative on the syntax.)

10.2.1 Elements and attributes

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

The smil element

The smil element acts as the root element for all Document Types of the SMIL Language profile family.

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 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 Content Control 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. @@ Add hyperlinks to respective sections in spec.

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.
profile
The profile attribute specifies the language profile to which the current document's Document Type conforms. It is defined in "XHTML" [XHTML11].

@@ Revisit profile. We need a way to identify the used language profile. When using DTDs, the FPI serves that purpose. Further, in its use as specfied by HTML, the attribute should move to the Metainformation Module (with text on Integration).

@@ Is skip-content/skipContent an attribute of head?

Element content

The head element can contain the following elements:

<-- NONE -->

The head element contains other elements depending on the modules included in the language profile.

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 to span the timing tree.

The body element has the timing semantics of a time container equal to that of the seq element [Timing Level0 Module]. @@ Insert correct hyperlinks. 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, the body element takes the semantics of the par element.

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 are part of the body element so far as the corresponding Timing Modules are part of the language profile. For example, syncMaster is only part of the body element if the Timing Level 2 module is included.

@@ Is skip-content/skipContent an attribute of body?

Element content

The body element can contain the following elements:

par
seq
ref
audio
video
img
animation
text
textstream

The body element contains other elements depending on the modules included in the language profile.

10.3 Integrating the SMIL Structure Module

This section is Normative.

When this module is used the id, and title attributes are added to all other modules used, including other module families of, non-SMIL origin.

The SMIL Structure Module is the starting module when building any language profile in the SMIL language profile family [SMIL Modules]. The Structure Module cannot be used for building other, non SMIL language profile family, language profiles. To be called a member of the SMIL language profile family the language profile should at least include the following modules [SMIL Modules]:

This implies that the SMIL Structure Module must at least be accompanied with the above two other modules. (Those modules themselves can still be used in other, non SMIL language profile family, language profiles.) In particular, this implies that the corresponding attributes from the Timing Level 0 Module are supported by the body element. @@ A consequence is that <body> also has the attribute restart, for example.

When building a language profile in the SMIL language profile family the SMIL Structure Module must be integrated with the other SMIL modules conform the descriptions in the SMIL-Boston language profile. This means that the set of modules shared between any language profiles in the SMIL language profile family comply to the same content model and behavior. This obviously concern the integration requirements specified by the corresponding modules, but in particular includes the additional requirements specified in the SMIL-Boston language profile. Do we have such additional requirements?

When non-SMIL modules 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). 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].

10.4 DTD

This section is Normative.

This section specifies the DTD of the SMIL Structure Module.

@@ The xml:base attribute needs to be added, awaiting XLink resolutions. This also requires adaptation in the meta Module. Note, that XHTML knows a separate Base Module.

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

     This is Smil-Boston.
     Copyright 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.

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

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

     Author: Warner ten Kate
     Revision: $Id: structure.html,v 1.2 2000/06/22 17:42:00 hugo Exp $

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




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

<!ELEMENT %smil.qname; %smil.content;>
<!ATTLIST %smil.qname; %smil.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.attr;
        profile %URI; #FIXED %SMIL.profile;
>

<!--=================== 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;>

<!-- end of SMIL-struct.mod -->

10.5 Schema

This section is Informative.

This section specifies the Schema of the SMIL Structure Module.




previous   next   contents