SMIL 2.1 provides a scalability framework, where a family of scalable SMIL profiles can be defined using subsets of the SMIL 2.1 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.1 Basic (or SMIL Basic) is a profile that meets the needs of resource-constrained devices such as minimum capability mobile phones. 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.1 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.
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 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 2.1 features will be required on all platforms. SMIL 2.1 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 2.1 modules in its own profile.
As such, a SMIL profile allows a SMIL user agent to implement only the subset of the SMIL 2.1 standard it needs, while maintaining document interoperability between device profiles built for different needs. SMIL 2.1 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:
A scalable profile is defined, by extending the SMIL Basic profile, or any SMIL host language conformant profile using the content control facilities to support application/device specific features via a namespace mechanism. SMIL Basic is SMIL 2.1 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.1 language profile automatically conform to SMIL 2.1 Basic.
In SMIL 2.1, 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.
This section is normative.
SMIL 2.1 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.1 Modules:
While not strictly required, we strongly encourage languages based upon SMIL Basic to include the SyncbaseTiming module from SMIL 2.1 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 declaration using the xmlns and XML internationalization xml:lang attributes are supported on all elements.
A SMIL Basic document is a "conforming" SMIL Basic document if it is a conforming SMIL 2.1 document.
A SMIL Basic user agent is a program which can parse SMIL 2.1 documents, process the subset of SMIL 2.1 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:
<smil xmlns="http://www.w3.org/TR/REC-smil"> . . . </smil>
<smil xmlns="http://www.w3.org/2005/SMIL21/Language"> . . . </smil>
<smil xmlns="http://www.w3.org/TR/REC-smil" xmlns:smil21="http://www.w3.org/2005/SMIL21"> <smil21:excl> ... </smil21:excl> </smil>
<smil xmlns="http://www.w3.org/2005/SMIL21/Language" xmlns:smil30="http://www.example.org/2005/SMIL30/"> <smil30:foo> ... </smil30:foo> </smil>
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.1 in a uniform way. The SMIL 2.1 namespace may be used with other XML namespaces as per [XML-NS], although such documents are not strictly conforming SMIL 2.1 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 2.1 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.1 Modules which are not part of SMIL 2.1 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:
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.1 Language conformant devices.
A SMIL 2.1 document must declare a namespace for its elements with its xmlns attribute at the smil root element with its identifier URI:
The default namespace must be xmlns="http://www.w3.org/2005/SMIL21/Language".
With the systemRequired attribute the author may specify what components of SMIL 2.1 are required to render the document.
<smil xmlns="http://www.w3.org/2005/SMIL21/Language" xmlns:smil21lang="http://www.w3.org/2005/SMIL21/Language" systemRequired="smil21lang" > ... </smil>
<smil xmlns="http://www.w3.org/2005/SMIL21/Language" xmlns:transition="http://www.w3.org/2005/SMIL21/BasicTransitions" xmlns:align="http://www.w3.org/2005/SMIL21/AlignmentLayout" xmlns:override="http://www.w3.org/2005/SMIL21/OverrideLayout" xmlns:subregion="http://www.w3.org/2005/SMIL21/SubRegionLayout" systemRequired="transition+align+override+subregion" > ... </smil>
<smil xmlns="http://www.w3.org/2005/SMIL21/Language" xmlns:HostLanguage="http://www.w3.org/2005/SMIL21/HostLanguage" systemRequired="HostLanguage" > ... </smil>
The SMIL namespace URI and module identifiers URIs are defined and reserved in SMIL 2.1 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/2005/SMIL21/Language" xmlns:BrushMedia="http://www.w3.org/2005/SMIL21/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.1 specification. The list of the module names is summarized in SMIL 2.1 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.
The SMIL 2.1 language profiles are organized from the least capable to the most capable as follows:
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 2.1 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 2.1 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 2.1 Mobile Profile namespace and the exclusive time container module namespace:
Note that it is also possible to use the full SMIL 2.1 Language Profile namespace in the above example:
This practice is NOT recommended because the resulting document will only be able to be processed by implementations that support the full SMIL 2.1 Language Profile, and not by implementations that support the more restricted SMIL 2.1 Extended Mobile Profile -- even though the Extended Mobile Profile provides all of the functionality required in the document.
A scalable SMIL document must be a conforming SMIL 2.1 document.
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.1 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).