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.
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:
A scalable profile is defined by extending the SMIL Basic, 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 the SMIL Basic. It may render significantly more complex documents to the extent it supports extensions. The browsers conforming to the SMIL 2.0 language profile will be automatically conforming to SMIL 2.0 Basic.
This section is normative.
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:
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.0 document.
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:
Examples:
<smil xmlns="http://www.w3.org/TR/REC-smil"> . . . </smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/PR/Language"> . . . </smil>
<smil xmlns="http://www.w3.org/TR/REC-smil" xmlns:smil20="http://www.w3.org/2001/SMIL20/PR"> <smil20:excl> ... </smil20:excl> </smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/PR/Language" xmlns:smil30="http://www.example.org/2002/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.0 in a uniform way. The SMIL 2.0 namespace may be used with other XML namespaces as per [XMLNAMES], although such documents are not strictly conforming SMIL 2.0 documents as defined elsewhere. Future work by W3C will address ways to specify conformance for documents involving multiple namespaces.
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:
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/PR/Language"> ... </smil>
The default namespace must be xmlns="http://www.w3.org/2001/SMIL20/PR/Language".
With the systemRequired attribute the author may specify what components of SMIL 2.0 are required to render the document.
Examples:
<smil xmlns="http://www.w3.org/2001/SMIL20/PR/Language" xmlns:smil20lang="http://www.w3.org/2001/SMIL20/PR/Language" systemRequired="smil20lang" > ... </smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/PR/Language" xmlns:transition="http://www.w3.org/2001/SMIL20/PR/BasicTransitions" xmlns:layout="http://www.w3.org/2001/SMIL20/PR/HierarchicalLayout" systemRequired="transition+layout" > ... </smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/PR/Language" xmlns:HostLanguage="http://www.w3.org/2001/SMIL20/PR/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 for 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/PR/Language" xmlns:BrushMedia="http://www.w3.org/2001/SMIL20/PR/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.
A scalable SMIL document must be a conforming SMIL 2.0 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.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).