previous next contents

# 14. SMIL 2.0 Basic Profile and Scalability Framework

Editors
  Kenichi Kubota (kuboken@isl.mei.co.jp), Panasonic
  Aaron Cohen (aaron.m.cohen@intel.com), Intel
  Michelle Kim (mykim@us.ibm.com), IBM

## Table of contents

## 14.1 Abstract

SMIL 2.0 provides a scalability framework, where a family of scalable SMIL profiles can be defined using subsets of the SMIL 2.0 language profile. A SMIL document can be authored conforming to a scalable SMIL profile such that it provides limited functionality on a resource-constrained device while allowing richer capabilities on a more capable device. SMIL 2.0 Basic (or SMIL Basic) is a profile that meets the needs of resource-constrained devices such as mobile phones and portable disc players. The SMIL Basic profile provides the basis for defining scalable SMIL profiles. SMIL Basic is SMIL host language conformant. It consists of precisely those modules that are required for SMIL host language conformance. This section defines the SMIL 2.0 Basic profile and requirements for conforming SMIL Basic documents and SMIL Basic user agents. More, it describes scalable SMIL profiles, guidelines for defining them, and their conformance requirements.

## 14.2 Introduction

This section is informative.

The Synchronized Multimedia Integration Language (SMIL) includes powerful functionality for various multimedia services for customers of various/differing preferences, ranging from desktops to ubiquitous information appliances such as mobile phones, portable disk players, car navigation systems, television sets, and voice user agents. Each of these platforms has its specific capabilities and requirements. It is clear that not all of the SMIL 2.0 features will be required on all platforms. SMIL 2.0 modularization groups semantically related SMIL elements, attributes, and attribute values into a disjoint set of SMIL modules. These modules can then be recombined to produce a SMIL profile that meets the needs of different communities. For example a hand held device or a cell-phone may only support a small subset of SMIL 2.0 modules in its own profile.

As such a SMIL profile allows a SMIL user agent to implement only the subset of the SMIL 2.0 standard it needs, while maintaining document interoperability between devices profiles built for different needs. SMIL 2.0 provides a framework for defining a family of scalable profiles. A scalable profile enables user agents of a wide range of complexity to render from a single, scalable, SMIL document intelligent presentations tailored to the capabilities of the target devices. Conformance to a SMIL Basic profile provides a basis for interoperability guarantees.

The advantages of scalable profiles are:

- Authors can re-purpose SMIL content targeting a wide range of devices that implement SMIL semantics.
- The rendering of the same content can be improved automatically as devices get more powerful.
- All SMIL 2.0 documents can share a document type, a schema, and a set of defined namespaces, and the required default xmlns declaration.
- Any future SMIL 2.0 extensions can easily be incorporated into SMIL documents and user agents.

A scalable profile is defined by extending the SMIL Basic profile, using the content control facilities to support application/device specific features via a namespace mechanism. SMIL Basic is SMIL 2.0 host language conformant. It contains all the SMIL modules required for host language conformance. In fact, it contains only those modules required for host language conformance. A user agent is said to be SMIL Basic conformant if it can render documents at least as complex as those allowed by SMIL Basic. It may render significantly more complex documents to the extent it supports extensions. User agents conforming to the SMIL 2.0 language profile automatically conform to SMIL 2.0 Basic.

## 14.3 SMIL 2.0 Basic Profile

This section is normative.

### 14.3.1 Definition

SMIL 2.0 Basic Profile consists of the same set of modules that are required for SMIL Host Language Conformance in resource constrained devices. It includes the following SMIL 2.0 Modules:

- SMIL 2.0 Content Control Modules -- BasicContentControl and SkipContentControl
- SMIL 2.0 Layout Modules -- BasicLayout
- SMIL 2.0 Linking Modules -- BasicLinking
- SMIL 2.0 Media Object Modules-- BasicMedia
- SMIL 2.0 Structure Module -- Structure
- SMIL 2.0 Timing and Synchronization Modules -- BasicInlineTiming, MinMaxTiming, BasicTimeContainers, and RepeatTiming

While not strictly required, we strongly encourage languages based upon SMIL Basic to include the SyncbaseTiming module from SMIL 2.0 Timing and Synchronization using the scalable profiles mechanism, and for SMIL Basic User agents to support the module when device constraints are not prohibitive.

#### XML Namespace Declarations and Internationalization

XML namespace declaration using the xmlns and XML internationalization xml:lang attributes are supported on all elements.

### 14.3.2 Conformance of SMIL 2.0 Basic Documents

A SMIL Basic document is a "conforming" SMIL Basic document if it is a conforming SMIL 2.0 document.

### 14.3.3 Conformance of SMIL 2.0 Basic User Agents

A SMIL Basic user agent is a program which can parse SMIL 2.0 documents, process the subset of SMIL 2.0 functionality defined, and render the contents of the document onto output mediums. A conforming SMIL Basic user agent must meet all of the following criteria:

1. In order to be consistent with the XML 1.0 Recommendation [XML10], the user agent must parse and evaluate a SMIL 2.0 document for well-formedness. If the user agent claims to be a validating user agent, it must also validate documents against their referenced DTDs according to [XML10].
2. When the user agent claims to support the functionality of SMIL 2.0 through SMIL 2.0 elements and attributes and the semantics associated with these elements and attributes, it must do so in ways consistent with this specification.
3. The user agent must be able to successfully parse any conforming SMIL 2.0 documents, and correctly implement the semantics of all supported SMIL 2.0 modules.
4. The user agent must be able to successfully parse conforming SMIL 1.0 Documents and correctly implement the semantics of all supported SMIL 2.0 modules in the context of SMIL 1.0 compatible syntax.
5. The user agent must completely support all SMIL 2.0 modules listed as required for host language conformance.
6. The XML parser of the user agent must be able to parse and process XML constructs defined in [XML10] and Namespaces in XML [XML-NS].
7. The user agent must ignore unimplemented attributes and elements. Unimplemented attributes should be treated as if they were not specified. Unimplemented elements should have the skip-content mechanism applied. If no skip-content attribute is declared, the value of true is assumed.
8. The user agent must correctly evaluate all SMIL 2.0 namespace URIs when used with the systemRequired and system-required attributes.
9. The default namespace recognized by the user agent will fall into one of three types:
   1. Default namespace recognized in its entirety by the user agent. The user agent should process the document as the recognized version. The skip-content mechanism (defined in the SkipContentControl module) will be applied to extension elements unrecognized by the user agent. Unqualified elements not part of the default namespace are illegal and must result in an error.

      Examples:

      - A pure SMIL 1.0 document:

            <smil xmlns="http://www.w3.org/TR/REC-smil">
             . . .
            </smil>

      - A pure SMIL 2.0 document:

            <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
            . . .
            </smil>

      - A SMIL 1.0 document that has been extended to use the excl element:

            <smil xmlns="http://www.w3.org/TR/REC-smil"
                  xmlns:smil20="http://www.w3.org/2001/SMIL20">
              <smil20:excl>
                ...
              </smil20:excl>
            </smil>

      - A SMIL 2.0 document that has been extended to use the 'foo' element from a fictitious SMIL 3.0 version of SMIL:

            <smil xmlns="http://www.w3.org/2001/SMIL20/Language"
                  xmlns:smil30="http://www.example.org/2002/SMIL30/">
              <smil30:foo>
                ...
              </smil30:foo>
            </smil>

   2. No default namespace declaration is present in the document. The document will be processed as a SMIL 1.0 document.
   3. Default namespace unrecognized. A SMIL user agent will not recognize the document as any version of SMIL and must issue an error.
10. The user agent must support the following W3C Recommendations with regard to SMIL 2.0 content:
    - Complete support for the Extensible Markup Language (XML) 1.0 (Second Edition) [XML10].
    - Complete support for inclusion of non-SMIL 2.0 namespaces within SMIL 2.0 content via Namespaces in XML [XML-NS]. An xmlns prefix declaration may be used on any element in the SMIL 2.0 language profile.
    - The user agent must issue an error for an attribute value that does not conform to the syntax specified for that attribute. The detection of a syntax error in a SMIL 2.0 language profile document must result in the user agent issuing an error and not playing the document.

## 14.4 Scalable Profiles

This section is normative.

A scalable profile enables user agents of a wide range of complexity to render from a single, scalable, SMIL document intelligent presentations tailored to the capabilities of the target devices. A family of scalable SMIL profiles can be built using the Basic Profile plus additional sets of modules geared to the particular needs each profile addresses. A profile specifies scalability using the content control facilities to support application/device specific features via a namespace mechanism. This mechanism will enable the extension and sub-setting of SMIL 2.0 in a uniform way. The SMIL 2.0 namespace may be used with other XML namespaces as per [XML-NS], although such documents are not strictly conforming SMIL 2.0 documents as defined elsewhere. It is expected that future work by W3C may address ways to specify conformance for documents involving multiple namespaces.

### 14.4.1 Definition

A scalable SMIL 2.0 profile contains all the modules in the SMIL Basic Profile as defined above.

Additionally it may contain any one or more modules from the SMIL 2.0 Modules which are not part of SMIL 2.0 Basic.

XML namespace declaration using the xmlns attribute and XML internationalization xml:lang attributes are supported on all elements.

A scalable profile is specified by using the content control facilities via a namespace mechanism as follows:

1. The systemRequired attribute specifies a set of modules that are to be added to SMIL Basic to support the profile. The profile is defined as the union of the modules in the SMIL 2.0 Basic profile and those specified in the systemRequired attribute.
2. The systemRequired attribute can be specified either on the root smil element, or specified inline on elements other than the root element.

### 14.4.2 SMIL 2.0 Document Scalability Guidelines

This section is informative.

Here we present some scalability guidelines for SMIL Basic content authors that will enable their content to be played on the widest range of SMIL Basic and SMIL 2.0 Language conformant devices.

A SMIL 2.0 document must declare a namespace for its elements with its xmlns attribute at the smil root element with its identifier URI:

    <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
      ...
    </smil>

The default namespace must be xmlns="http://www.w3.org/2001/SMIL20/Language".

With the systemRequired attribute the author may specify what components of SMIL 2.0 are required to render the document.

Examples:

- A document that requires full support of the SMIL 2.0 language profile:

      <smil xmlns="http://www.w3.org/2001/SMIL20/Language"
            xmlns:smil20lang="http://www.w3.org/2001/SMIL20/Language"
            systemRequired="smil20lang" >
        ...
      </smil>

- A document with specific requirements for support of the BasicTransitions and HierarchicalLayout modules:

      <smil xmlns="http://www.w3.org/2001/SMIL20/Language"
            xmlns:transition="http://www.w3.org/2001/SMIL20/BasicTransitions"
            xmlns:layout="http://www.w3.org/2001/SMIL20/HierarchicalLayout"
            systemRequired="transition+layout" >
        ...
      </smil>

- A document that explicitly requires support for the HostLanguage module collection. Note that SMIL Basic documents are required to be Host Language conformant, so listing this requirement explicitly is not strictly necessary:

      <smil xmlns="http://www.w3.org/2001/SMIL20/Language"
            xmlns:HostLanguage="http://www.w3.org/2001/SMIL20/HostLanguage"
            systemRequired="HostLanguage" >
        ...
      </smil>

The SMIL namespace URI and module identifiers URIs are defined and reserved in SMIL 2.0 Modules. Namespace prefixes are set by the document author, e.g., "transition", and "layout". This provides authors with a means to express explicitly what additional modules are required to support the document.

The author may choose to explicitly qualify blocks of content with the systemRequired or system-required attributes. The following example contains the systemRequired attribute on the seq container within a switch, allowing the inclusion of the brush element when the "BrushMedia" test succeeds, and providing an image based alternative when the BrushMedia module is not supported:

    <smil xmlns="http://www.w3.org/2001/SMIL20/Language"
          xmlns:BrushMedia="http://www.w3.org/2001/SMIL20/BrushMedia" >
      <head>
        <layout>
          <region id="colorbox" top="0px" left="0px" height="50px" width="50px" />
        </layout>
      </head>
      <body>
        <switch>
          <seq systemRequired="BrushMedia">
            <brush dur="5s" color="#0000FF" region="colorbox"/>
            <brush dur="5s" color="#00FF00" region="colorbox"/>
            <brush dur="5s" color="#FF0000" region="colorbox"/>
          </seq>
          <seq>
            <img dur="5s" src="blue.jpg"  region="colorbox"/>
            <img dur="5s" src="green.jpg" region="colorbox"/>
            <img dur="5s" src="red.jpg"   region="colorbox"/>
          </seq>
        </switch>
      </body>
    </smil>

The value of systemRequired attribute refers to the module identifier URI using the xmlns: name prefix, e.g. "BrushMedia". It is preferable that this name, as an identifier of the required module(s), be the module name defined in the SMIL 2.0 specification. The list of the module names is summarized in SMIL 2.0 Modules.

Note that there is an implied difference between the systemRequired on the smil element and an "inline" systemRequired on the other SMIL elements. The former is a hard requirement for rendering the document. For example, if the systemRequired on the smil element lists a module that the user agent does not support even though the module is not actually used in the document, the document is still prohibited from presentation by that user agent.

Conversely, the use of the systemRequired attribute on other elements only specifies a requirement for rendering a sub-tree of the document. If some of the content of a presentation requires support beyond SMIL Basic and that specified on the systemRequired attribute on the smil element, the additional features should be wrapped with the switch element and system test attributes, which can then be evaluated by a user agent and be processed accordingly.

### 14.4.3 Conformance of Scalable SMIL 2.0 Documents

A scalable SMIL document must be a conforming SMIL 2.0 document.

### 14.4.4 Conformance of Scalable User Agents

A conforming scalable user agent must conform to the requirements for SMIL Basic User Agents above.

A conforming user agent must implement as a minimum all the modules defined by the SMIL 2.0 Basic Profile.

The switch element and the system test attributes can be processed either by the client in the terminal, or by the server on the server side before delivery (perhaps after a CC/PP [CC/PP] negotiation).

previous next contents