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.
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.
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.
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.
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:
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.
Declare a SMIL 3.0 document with custom extensions conforming to a custom DTD:
<!DOCTYPE smil SYSTEM "http://www.example.org/myveryownSMIL.dtd"> <smil xmlns="http://www.w3.org/2007/07/SMIL30/Language" xmlns:mysmil="http://www.example.org/2005/SMIL30/Language"> <mysmil:foo> ... </mysmil:foo> </smil>
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.
<smil xmlns="http://www.w3.org/2007/07/SMIL30/Language" xmlns:BasicInlineTiming="http://www.w3.org/2007/07/SMIL30/BasicInlineTiming"> ... <ref begin="5s" BasicInlineTiming:begin="5s"/> ... </smil>
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 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.
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) A pure SMIL 1.0 document:
<smil xmlns="http://www.w3.org/TR/REC-smil"> ... </smil>
2) A pure SMIL 3.0 Language profile document:
<smil xmlns="http://www.w3.org/2007/07/SMIL30/Language"> ... </smil>
3) A SMIL 1.0 document that has been extended to use the excl element:
<smil xmlns="http://www.w3.org/TR/REC-smil" xmlns:smil30="http://www.w3.org/2007/07/SMIL30/" > <smil30:excl> ... </smil30:excl> </smil>
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="http://www.w3.org/2007/07/SMIL30/Tiny" xmlns:smil35="http://www.example.org/2007/SMIL35/"> <smil35:foo> ... </smil35:foo> </smil>
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.
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.
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:
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.
If no namespace is specified, the namespace will default to: xmlns="http://www.w3.org/TR/REC-smil", 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.
<smil xmlns="http://www.w3.org/2007/07/SMIL30/Language" xmlns:smil30lang="http://www.w3.org/2007/07/SMIL30/Language" systemRequired="smil30lang" > ... </smil>
<smil xmlns="http://www.w3.org/2007/07/SMIL30/Language" xmlns:transition="http://www.w3.org/2007/07/SMIL30/BasicTransitions" xmlns:align="http://www.w3.org/2007/07/SMIL30/AlignmentLayout" xmlns:override="http://www.w3.org/2007/07/SMIL30/OverrideLayout" xmlns:subregion="http://www.w3.org/2007/07/SMIL30/SubRegionLayout" systemRequired="transition+align+override+subregion" > ... </smil>
<smil xmlns="http://www.w3.org/2007/07/SMIL30/Tiny" xmlns:HostLanguage="http://www.w3.org/2007/07/SMIL30/HostLanguage" systemRequired="HostLanguage" > ... </smil>
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="http://www.w3.org/2007/07/SMIL30/Mobile" xmlns:BrushMedia="http://www.w3.org/2007/07/SMIL30/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 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:
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:
Note that it is also possible to use the full SMIL 3.0 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 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.