previous   next   contents  

16. SMIL 3.0 Scalability Framework

Editor for SMIL 3.0
Dick Bulterman, CWI
Editors for Earlier Versions of SMIL
Nabil Layaïda, INRIA
Kenichi Kubota, Panasonic
Aaron Cohen, Intel
Michelle Kim, IBM.

Table of contents

16.1 Overview and Summary of Changes for SMIL 3.0

This section is informative.

The SMIL 3.0 Scalability Framework revises the SMIL 2.1 Basic Profile and Scalability Framework[SMIL21-basic-profile]. With the introduction of the SMIL 3.0 Tiny profile, the definition of the Scalability Framework has been migrated into a separate document. The text has been revised to conform to current SMIL practice and intent.

16.2 Abstract

This section is normative.

SMIL 3.0 provides a scalability framework, where a family of scalable SMIL profiles can be defined using a sub- or superset of the SMIL 3.0 Language, Daisy, Mobile, or Extended Mobile profiles, or a superset of the SMIL 3.0 Tiny profile. A SMIL document can be authored conforming to the scalability framework such that it provides limited functionality on a resource-constrained device while allowing richer capabilities on a more capable device. This section defines the requirements for conforming SMIL documents and SMIL user agents. Moreover, it describes scalable SMIL profile architecture, guidelines for defining them, and their conformance requirements.

16.3 Introduction to the SMIL 3.0 Scalability Framework

This section is informative.

The Synchronized Multimedia Integration Language (SMIL) includes powerful functionality for various multimedia services for platforms of various/differing complexities, ranging from desktops to ubiquitous information appliances such as minimum capability mobile phones, 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 3.0 elements and attributes will be required on all platforms. SMIL 3.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, digital talking book player, or a mobile phone may only support a small subset of SMIL 3.0 modules in its own profile.

The W3C SYMM working group has defined a scalability architecture that require a SMIL user agent to implement only the sub- or superset of the SMIL 3.0 standard it needs, while maintaining document interoperability between device profiles built for different needs. A scalable profile enables user agents to support incremental extra collections of modules containing the baseline functionality needed for an implementation environment, or it allows certain modules to be removed from a more extensive profiles in those situations where this extra functionality is not necessary.

At the same time, SMIL 3.0 provides a additional mechanism in which a document author is given the ability to specify which SMIL modulesare required within a document.

Conformance to the scalable SMIL profile architecture provides a basis for interoperability guarantees.

The advantages of scalable profiles are:

The SMIL 3.0 scalability framework allows module-level inclusion or exclusion of functionality. SMIL user agent developers are also able to focus their implementations by specifically excluding support for individual SMIL elements or attributes, as is explained in the section on document conformance. Note that in these cases, a document containing unsupport elements or attributes should always parse correctly on any SMIL-compliant user agent.

16.4 Normative Definition of the SMIL 3.0 Scalability Framework

This section is normative.

A scalable profile is defined by extending any SMIL host language conforming profile using the content control facilities to support application/device specific features via a namespace mechanism. Individual user agents may opt-out of a particular language feature by explicitly ignoring it during document processing. In this way, both author and user-agent-development needs are supported for a wide community without have to define a large number of standard profiles.

In SMIL 3.0, the scalability framework can also be applied between two host language profiles where one language is made of a strict subset of the modules of the other language. This is the scalability to profiles framework. The scalability to profiles framework allows, for example, the definition of a base line profile and a more advanced profile. It also allows constraining the modules used in the scalability of the base line profile to those of the advanced profile. In this case, the base line profile is said to be a scalable profile to the more advanced profile.

A scalable profile to a profile is defined by extending its set of modules using the content control facilities to support application/device specific features via a namespace mechanism. The scalable profile to a given profile must include the description of the language it scales to, for example by including a description of its namespace.

16.4.1 Conforming SMIL 3.0 Documents

A SMIL 3.0 document is a conforming SMIL 3.0 document if it adheres to the specification of the corresponding SMIL profile definition, including SMIL 3.0's DTD (see Document Type Definition). A conforming SMIL 3.0 document must meet all of the following criteria:

  1. The root element of the document must be the smil element.
  2. The document must be well-formed XML.
  3. It must conform to the following W3C Recommendations:
    • The XML 1.1 specification (Extensible Markup Language (XML) 1.1) [XML11].
    • Namespaces in XML [XML-NS]. Full XML Namespaces must be supported.
    • Any use of CSS styles and properties shall conform to Cascading Style Sheets, level 2 CSS2 Specification [CSS2].
  4. A SMIL 3.0 document may contain the DOCTYPE declaration defined within the relevant profile specification. If a document contains this declaration, it must be a valid XML document. Note that this implies that extensions to the syntax defined in the DTD are not allowed. If the document is invalid, the user agent should issue an error.

    A document is a conforming SMIL 3.0 document if it satisfies the requirements of the relevant profile specification and is valid per the normative DTD identified by that profile.

    Per section 7.6 of the W3C Process Document, W3C will make every effort to make this normative DTD available in its original form at this URI.

    The SYMM WG also publishes a non-normative SMIL 3.0 DTD identified by

    The SYMM WG plans to make changes to this DTD over time to correct errata. If you choose to refer to this DTD, please note that it is subject to change without notice at any time. The SYMM WG MAY publish a normative "snapshot" of the corrected DTD at a new URI by following the W3C Process for modifying a Recommendation.

    Individuals are free to use either of the two URIs above as the system identifier in the SMIL 3.0 profile's DOCTYPE, according to the desired level of stability.

  5. A document must declare a default namespace for its elements with an xmlns attribute on the smil root element. The default namespace declaration must be defined by the relevant profile specification. The default namespace URI may only be used to refer to the approved version of profile's specification: different URIs will be used for any and all new versions of the profile. The default namespace name may be reused in any update of the profile which is made for the purpose of clarification or bug fixes. These changes will be minor in that they do not (a) change the meaning of existing documents written using the namespace, or (b) affect the operation of existing software written to process such documents. The SYMM WG may reuse this namespace URI in a future specification that revises the SMIL 3.0 DTD, thus affecting the validity of published documents.
  6. A document may declare both an XML DOCTYPE declaration (as defined in [XML11]) and one or more XML namespace declarations (as defined in [XML-NS]). To be recognized as a SMIL 3.0 document by a conforming SMIL 3.0 user agent, the document must include the SMIL 3.0 namespace identifier as the default namespace on the <smil> tag. For example:

    Declare a SMIL 3.0 document with custom extensions conforming to a custom DTD:

    <!DOCTYPE smil SYSTEM "">
    <smil xmlns="" version="3.0" baseProfile="Language"
  7. A document that declares neither a DOCTYPE nor a default namespace declaration will be processed as a SMIL 1.0 document. Extension elements or attributes not defined by the SMIL 1.0 namespace should be declared using the XML namespace mechanism.
  8. Given that, as of this writing, DTDs have no way to describe the allowability of namespace-qualified extensions, and that extensions to SMIL 3.0 conformant documents must be namespace-qualified, here is the algorithm to be used to validate documents with extensions:

    If all non-SMIL 3.0 namespace elements and attributes and all xmlns attributes which refer to non-SMIL 3.0 namespace elements are removed from the given document and if the appropriate <!DOCTYPE ... > statement which points to the SMIL 3.0 DTD is included, the result is a valid XML document.

  9. Many SMIL 3.0 attributes are associated with several SMIL 3.0 and SMIL 2.0 namespaces including the module namespaces, module collection namespaces, the SMIL 3.0 language namespace, and the overall SMIL 3.0 namespace. Attributes in the SMIL 3.0 namespaces having the same local part are considered the same attribute as far as SMIL 3.0 Language document syntax. It is illegal to use a SMIL 3.0 attribute several times on an element, even if each occurrence is qualified by a different SMIL 3.0 namespace, and SMIL user agents shall treat this as a syntax error. For example, the following document fragment is an error, because the begin attribute appears twice on the ref element:
    <smil xmlns="" version="3.0" baseProfile="Language"
    <ref begin="5s" BasicInlineTiming:begin="5s"/>

Neither the SMIL 3.0 definition nor these conformance criteria provide designated size limits on any aspect of SMIL 3.0 content. There are no maximum values on the number of elements, the amount of character data, or the number of characters in attribute values.

SMIL 3.0 deprecates base as a property value for the content attribute of the meta element of SMIL 1.0 in favor of the more general XML Base URI mechanisms.

All SMIL 3.0 profile specifications support the XML Base Recommendation [XMLBase]. XML Base is supported on all elements, and affects the interpretation of URIs as specified in the individual modules defining the URI attributes. Specifically, any applicable XML Base base URI must be applied to the interpretation of the href attribute of the link elements a, area and anchor, as well as the src attribute of the media elements audio, video, img, animation, textstream, text, and ref. XML Base must also be applied on longdesc and label attributes of all of the SMIL 3.0 elements.

The rules above should be revised once a normative XML Schema for SMIL 3.0 is available. This revision will take into account XML Schema validation.

16.4.2 Conforming SMIL 3.0 Language User Agents

A SMIL 3.0 user agent is a program which can parse and process a SMIL 3.0 document and render the contents of the document onto output media. A conforming SMIL 3.0 user agent must meet all of the following criteria:

  1. In order to be consistent with the XML 1.1 Recommendation [XML11], the user agent must parse and evaluate a SMIL 3.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 [XML11].
  2. When the user agent claims to support the functionality of SMIL 3.0 through SMIL 3.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 and process any conforming SMIL 3.0 documents, and support and correctly implement the semantics of all features of the relevant SMIL 3.0 profile.
  4. The XML parser of the user agent must be able to parse and process XML constructs defined in [XML11] and [XML-NS].
  5. The default namespace on the smil root element recognized by the user agent will fall into one of three types:
    1. Default namespace on the smil root element recognized in its entirety by the user agent. The user agent should process the document as the version identified by the recognized namespace. Any elements, attributes, or other syntax not defined by the default namespace on the smil root element must be fully namespace qualified using the standard XML mechanisms for declaring namespaces for elements and attributes described in [XML-NS]. The "skip-content" mechanism (defined in the SkipContent 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.


      1) A pure SMIL 1.0 document:

      <smil xmlns="">

      2) A pure SMIL 3.0 Language profile document:

      <smil xmlns="" version="3.0" baseProfile="Language">

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

      <smil xmlns=""
            xmlns:smil30="" >

      4) A SMIL 3.0 Tiny profile document that has been extended to use the 'foo' element from a fictitious SMIL 3.5 version of SMIL:

      <smil xmlns=""
    2. No default namespace declaration is present on the smil root element in the document. The document will be processed as a SMIL 1.0 document.
    3. The namespace declaration is a valid name of an earlier release of a SMIL profile. For example, assume the namespace declaration is "". The document will be processed as a SMIL 2.0 document.
    4. Default namespace declaration on the smil root element unrecognized. A SMIL user agent will not recognize the document as any version of SMIL and must issue an error.
  6. The user agent must support the following W3C Recommendations with regard to SMIL 3.0 content:
    • Complete support for the XML 1.1 specification (Extensible Markup Language (XML) 1.1) [XML11].
    • Complete support for inclusion of non-SMIL 3.0 namespaces within SMIL 3.0 content via Namespaces in XML [XML-NS]. A xmlns declaration or xmlns prefix declaration may be used on any element in the SMIL 3.0 document.
  7. The user agent ignores namespace prefix qualified elements from unrecognized namespaces and must support the skip-content attributes. If no skip-content attributes are declared, the value of true is assumed.
  8. The user agent ignores elements with unrecognized default namespace declarations and must support the skip-content attribute. If no skip-content attributes are declared, the value of true is assumed.
  9. The user agent must issue an error for an attribute value which does not conform to the syntax specified for that attribute.
  10. The detection of a syntax error in a SMIL 3.0 language Profile document must result in the user agent issuing an error and not playing the document.
  11. When the hyphenated (deprecated) and the camelCase version of an attribute syntax are used in the same document, SMIL 3.0 user agents should take into account the camelCase version only.
  12. Conforming SMIL 3.0 user agents must play SMIL 1.0 documents as specified in the SMIL 1.0 Recommendation [SMIL10] and SMIL 2.0 documents as specified in the SMIL 2.0 Recommendation [SMIL20].

The Web Accessibility Initiative is defining "User Agent Accessibility Guidelines 1.0" [UAAG]. Developers are encouraged to design user agents that satisfy at least the Level A requirements of that document. Should UAAG 1.0 become a W3C Recommendation, a future version of SMIL is likely to require Level A conformance to UAAG 1.0 as part of SMIL user agent conformance.

16.4.3 Extending a SMIL 3.0 Profile

In the future, a SMIL 3.0 profile may be extended by other W3C Recommendations, or by private extensions. For these extensions, the following rules must be obeyed:

Conformant SMIL 3.0 user agents are prepared to handle documents containing extensions that obey these two rules.

16.4.4 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. A family of scalable SMIL profiles can be built using the SMIL 3.0 Tiny 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 3.0 in a uniform way. The SMIL 3.0 namespace may be used with other XML namespaces as per [XML-NS], although such documents are not strictly conforming SMIL 3.0 documents as defined elsewhere. It is expected that future work by W3C may address ways to specify conformance for documents involving multiple namespaces.


A scalable SMIL 3.0 profile contains all the modules specified for SMIL host-level language conformance.

Additionally it may contain any one or more additional modules from the set defined by the SMIL 3.0 Modules.

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 necessary to support the extended profile. The effective profile used by the document is defined as the union of the modules defined for SMIL 3.0 host-level language conformance and those specified in the systemRequired attribute.
  2. The systemRequired attribute may always be specified on the root smil element. If the basis of the scalable profile also support the SMIL 3.0 ContentControl module, the systemRequired attribute may also be specified inline on elements other than the root element.

16.5 SMIL 3.0 Document Scalability Guidelines

This section is informative.

This section presents scalability guidelines for SMIL content authors that will enable their content to be played on the widest range of SMIL conformant devices.

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

<smil xmlns="" version="3.0" baseProfile="Language">
... </smil>

If no namespace is specified, the namespace will default to: xmlns="", which is the SMIL 1.0 namespace.

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


The SMIL namespace URI and module identifiers URIs are defined and reserved in SMIL 3.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.

If supported by the profile used as the base for the scalable document, the author may choose to explicitly qualify blocks of content with the systemRequired attribute. 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="" 
      xmlns:BrushMedia="" >
      <region xml:id="colorbox" top="0px" left="0px" height="50px" width="50px" />
      <seq systemRequired="BrushMedia">
        <brush dur="5s" color="#0000FF" region="colorbox"/>
        <brush dur="5s" color="#00FF00" region="colorbox"/>
        <brush dur="5s" color="#FF0000" region="colorbox"/>
        <img dur="5s" src="blue.jpg"  region="colorbox"/>
        <img dur="5s" src="green.jpg" region="colorbox"/>
        <img dur="5s" src="red.jpg"   region="colorbox"/>

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 3.0 specification. The list of the module names is summarized in SMIL 3.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 (if supported by the base profile). 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 that provided by the base profile 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.

The SMIL 3.0 profiles are organized from the least capable to the most capable as follows:

  1. SMIL 3.0 Tiny Profile
  2. SMIL 3.0 Mobile Profile
  3. SMIL 3.0 Extended Mobile Profile
  4. SMIL 3.0 Daisy Profile
  5. SMIL 3.0 Language Profile

When extending a particular profile with additional modules, the namespace used in the extended profile should be that of the SMIL profile that includes the smallest superset of the modules needed to support the document. The systemRequired attribute should also be used and set to the original profile namespace together with the module(s) used in the extension.

For example, suppose the SMIL 3.0 Mobile Profile is to be extended with the exclusive time container module. The namespace used in documents for the extension should be set to the SMIL 3.0 Extended Mobile Profile namespace (which is the profile namespace that includes the smallest module superset containing the exclusive time container module) and the systemRequired attribute should be set to the SMIL 3.0 Mobile Profile namespace and the exclusive time container module namespace:

<smil xmlns=""

Note that it is also possible to use the full SMIL 3.0 Language Profile namespace in the above example:

<smil xmlns=""

This practice is NOT recommended because the resulting document will only be able to be processed by implementations that support the full SMIL 3.0 Language Profile, and not by implementations that support the more restricted SMIL 3.0 Extended Mobile Profile -- even though the Extended Mobile Profile provides all of the functionality required in the document.

previous   next   contents