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 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.

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.

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:

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].

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.

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.

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.

The user agent must completely support all SMIL 2.0 modules listed as
required for host language conformance.

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].

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.

The default namespace recognized by the user agent will fall into one
of three types:

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.

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:

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.

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:

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:

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:

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.4 Conformance of Scalable User
Agents

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).