This section is informative.
The SMIL 3.0 Language profile extends the SMIL 2.1 Language profile with new functionalities introduced in SMIL 3.0 Modules. Specifically, the following modules have been added to the list of modules:
The following modules were changed for SMIL 3.0:
In addition to new and changed modules, this version of SMIL also has a new requirement about the media formats that are to be supported by user agents, and the readIndex attribute was added to the Core collection, meaning it can occur on many more elements.
This section is normative.
The SMIL 3.0 Language profile describes the SMIL 3.0 modules that are included in the SMIL 3.0 Language and details how these modules are integrated. It contains support for all of the major SMIL 3.0 features including animation, content control, layout, linking, media object, meta-information, structure, timing and transition effects. It is designed for Web clients that support direct playback from SMIL 3.0 markup.
This section is informative.
The SMIL 3.0 Language profile is defined as a markup language. The syntax of this language is formally described with a document type definition (DTD) or an XML Schema which is based on the SMIL modules as defined in "The SMIL 3.0 Modules".
The SMIL 3.0 Language profile design requirements are:
This section is normative.
Note that all sections in this document are normative, unless explicitly marked inforrmative.
This section is normative.
The definition of document conformance for SMIL 3.0 Language profile documents is given in the Conformance of SMIL 3.0 Documents section of the SMIL 3.0 Scalability Framework. Within the referenced section, the following definitions should be used:
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 3.0//EN"
"http://www.w3.org/2007/07/SMIL30/SMIL30.dtd"> xmlns="http://www.w3.org/2007/07/SMIL30/Language"
http://www.w3.org/TR/2007/WD-SMIL3-20070713/smil30DTD/SMIL30.dtd
(@@ to be updated at REC publication with final URI)
This version of SMIL provides a definition of strictly conforming SMIL 3.0 documents, which are restricted to tags and attributes from the SMIL 3.0 namespace. The Section "Extending a SMIL 3.0 Profile" provides information on using the SMIL 3.0 Language profile with other namespaces, for instance, on including new tags within SMIL 3.0 documents.
The definition of user agent conformance for SMIL 3.0 Language profile documents is given in the Conformance of SMIL 3.0 User Agents section of the SMIL 3.0 Scalability Framework.
The SMIL 3.0 Language profile supports the structured-timeline-centric multimedia features found in the SMIL 3.0 modules. It uses only modules from the SMIL 3.0 recommendation. As the language profile includes the mandatory modules, it is a SMIL Host Language conforming language profile. This language profile includes the following SMIL 3.0 modules:
The collection names contained in the following table define the SMIL 3.0 Language profile vocabulary.
| SMIL 3.0 Language Profile | |
|---|---|
| Collection Name | Elements in Collection |
| Animation | animate, set, animateMotion, animateColor |
| ContentControl | switch, prefetch |
| Layout | region, root-layout, layout, regPoint, topLayout |
| LinkAnchor | a, area (anchor) |
| MediaContent | text, img, audio, video, ref, animation, textstream, brush, smilText, param |
| Metainformation | , |
| State | newvalue, setvalue, send |
| Structure | smil, head, body |
| Schedule | par, seq, excl |
| TextContent | tev, clear, br, span, p, div, textStyle, textStyling |
| Transition | transition |
| Other | customAttributes, customTest, paramGroup, priorityClass |
In the following sections, we define the set of elements and attributes used in each of the modules included in the SMIL 3.0 Language profile. The content model for each element is described. The content model of an element is a description of elements which can appear as its direct children. The special content model "EMPTY" means that a given element may not have children.
| Collection Name | Attributes in Collection |
|---|---|
| Core | alt (CDATA), class (NMTOKEN), id (ID), label (CDATA), longdesc (CDATA), readIndex (CDATA), title (CDATA), xml:base (CDATA) |
| I18n | xml:lang (NMTOKEN) |
The id, class and title attributes in the collection Core are defined for all the elements of the SMIL 3.0 Language profile. The id attribute is used in the SMIL 3.0 Language Language profile to assign a unique XML identifier to every element in a SMIL document. In this document, equivalent but deprecated attributes and elements are in parentheses.
The Animation Module provides a framework for incorporating animation into a timing framework, and a mechanism for composing the effects of multiple animations. The Animation Module uses the timing modules included in this profile for the underlying model of time. The SMIL 3.0 Language profile includes the animation functionality of the BasicAnimation module. The BasicAnimation Module defines the semantics for the animate, set, animateMotion and animateColor elements.
In the SMIL 3.0 Language profile, Animation elements can have the
following attributes and content model :
| Animation Module | ||
|---|---|---|
| Elements | Attributes | Content model |
| animate | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, expr, fill (freeze | remove | hold | auto | default), fillDefault (remove | freeze | hold | transition | auto | inherit) | EMPTY |
| set | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, to, skip-content, customTest, expr, fill (freeze | remove | hold | auto | default), fillDefault (remove | freeze | hold | transition | auto | inherit) | EMPTY |
| animateMotion | Core, I18n, basicTiming, Test, targetElement, origin, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, expr, fill (freeze | remove | hold | auto | default), fillDefault (remove | freeze | hold | transition | auto | inherit) | EMPTY |
| animateColor | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, expr, fill (freeze | remove | hold | auto | default), fillDefault (remove | freeze | hold | transition | auto | inherit) | EMPTY |
This profile adds the animate, set, animateMotion and animateColor elements to the content model of the par, seq, excl and priorityClass elements of the Timing and Synchronization Modules. It also adds these elements to the content model of the body element of the Structure Module.
Specifying the target element of the animation
The animation target elements supported in the SMIL 3.0 Language profile are the region element defined in the Layout Modules, the area (anchor) element defined in the Linking Modules and the text, img, audio, animation, video, ref, textstream and the brush elements defined in the Media Objects modules.
The SMIL 3.0 Language profile uses the targetElement attribute to identify the element to be affected by animation elements. As recommended in the BasicAnimation Module when the targetElement attribute is supported, this profile excludes the XLink attributes href, type, actuate and show from the animate, set, animateMotion and animateColor elements.
Specifying the target attribute of the animation
The target attributes of the animations are a subset of those of the region, area (anchor), and media elements. The animatable attributes of the region, area (anchor), and media elements are listed in the table below.
The area (anchor) element has the coords attribute which can be subject to animation. The attribute coords is considered of type string in this profile. This means that only discrete non-additive animation is supported on this attribute.
The media elements have the following sub-region attributes which can be
subject to animation: left, right, top, bottom, width, height, z-index and backgroundColor.
Integration definitions
The SMIL 3.0 Language profile defines a set of integration definitions as required by the Animation modules. These definitions are:
coerced-integer-value = Math.floor( interpolated-value + 0.5 )
The Content Control
Modules provide a framework for selecting content based on a set of test
attributes. The Content Control
Modules define semantics for the switch, prefetch, customAttributes and customTest elements. The SMIL 3.0
Language profile includes the Content Control functionality of the BasicContentControl, CustomTestAttributes, PrefetchControl, RequireContentControl and SkipContentControl
modules.
In the SMIL 3.0 Language profile, Content Control elements can have the
following attributes and content model :
| Content Control Module | ||
|---|---|---|
| Elements | Attributes | Content model |
| switch | Core, I18n, Test, customTest, expr | (switch*, (((Animation)+, (switch | Animation)*, (((Schedule | priorityClass | MediaContent | prefetch | a | State)+, (Schedule | MediaContent | switch | prefetch | a | Animation | State)*) | ((param | area | )+, (param | area | switch | Animation | )*))) | (priorityClass+, (switch | priorityClass)*))) | layout* |
| prefetch | Core, I18n, Test, Timing, mediaSize, mediaTime, bandwidth, src, clipBegin (clip-begin), clipEnd (clip-end), skip-content, customTest, expr | EMPTY |
| customAttributes | Core, I18n, Test, skip-content | customTest+ |
| customTest | Core, I18n, skip-content, defaultState (true|false) 'false', override (visible | hidden) 'hidden', uid (URI) | EMPTY |
This profile adds the switch element to the content model of the par, seq and excl elements of the Timing and Synchronization Modules, of the body and the head elements of the Structure Module, of the content model of the a element of the Linking Modules. The profile adds the customAttributes element to the content model of the head and the customTest element to the content model of the customAttributes element.
The Content Control functionality is used to define the Attribute set "Test":
The collection of Attributes Test is added to all the elements defined in the SMIL 3.0 Language profile, except customTest and customAttributes. A SMIL 3.0 user agent must support all of the values for the and systemCPU attributes listed in the Content Control Modules. In addition, the user agent should accept namespaced values as future extensions, and not declare a syntax error. The user agent should return false for unrecognized values of the and systemCPU attributes.
The Layout Modules provide a framework for spatial layout of visual components. The Layout Modules define semantics for the region, root-layout, topLayout, layout and the regPoint elements. The SMIL 3.0 Language profile includes the Layout functionality of the AlignmentLayout Module, AudioLayout Module, BackgroundTilingLayout Module, BasicLayout Module, MultiWindowLayout Module, OverrideLayout Module, StructureLayoutModule, SubRegionLayout Module modules.
In the SMIL 3.0 Language profile, Layout elements can have the following
attributes and content model :
| Layout Module | ||
|---|---|---|
| Elements | Attributes | Content model |
| region | Core, I18n, Test, TextAttributes, backgroundColor (background-color), backgroundImage, backgroundOpacity, backgroundRepeat, bottom, chromaKey, chromaKeyOpacity, chromaKeyTolerance, customTest, erase (never | whenDone) 'whenDone', fit (fill | hidden | meet | scroll | slice | meetBest), height, left, mediaAlign (topLeft | topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight), mediaBackgroundOpacity, mediaOpacity, mediaRepeat (preserve | strip) 'preserve', paramGroup, regAlign (topLeft | topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight), regionName, regPoint (topLeft | topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight), right, sensitivity, showBackground (always | whenActive), skip-content, soundAlign (left | both | right), soundLevel, textMode (append | replace | inherit | crawl | scroll | jump) 'append', textPlace (fromTop | fromBottom | inherit) 'fromTop',, textStyle, textRate, textWrapOption (wrap | noWrap | inherit) 'wrap', top, viewBox, width, z-index | region* |
| root-layout | Core, I18n, Test, backgroundColor (background-color), backgroundImage, backgroundOpacity, backgroundRepeat, customTest, height, skip-content, width | EMPTY |
| topLayout | Core, I18n, Test, backgroundColor (background-color), backgroundImage, backgroundOpacity, backgroundRepeat, close, customTest, height, open, skip-content, width | region* |
| layout | Core, I18n, Test, customTest, type | (root-layout | region | topLayout | regPoint)* |
| regPoint | Core, I18n, Test, bottom, customTest, left, regAlign, right, skip-content, top | EMPTY |
(**) The "background-color" attribute of SMIL1.0 is deprecated in favor of "backgroundColor", but both are supported.
The attribute collection SubregionAttributes is defined as follows:
| Collection Name | Attributes in Collection |
|---|---|
| SubregionAttributes | backgroundColor, backgroundOpacity, bottom, fit, height, left, mediaAlign, regAlign, regPoint, right, soundAlign, top, width, z-index |
This profile adds the layout element to the content model of the head element of the Structure Module. It also adds this element to the content model of the switch element of the Content Control Modules, when the switch element is a child of the head element.
The Linking Modules provide a framework for relating documents to content, documents and document fragments. The Linking Modules define semantics for the a and area (anchor) elements. They define also the semantics of a set of attributes defined for these elements. The SMIL 3.0 Language profile includes the Linking functionality of the BasicLinking, LinkingAttributes and ObjectLinking modules.
Both the a and area elements have an href attribute, whose value must be a valid URI.
Support for URIs with XPointer fragment identifier syntax is not required.
In the SMIL 3.0 Language profile, Linking elements can have the following
attributes and content model :
| Linking Module | ||
|---|---|---|
| Elements | Attributes | Content model |
| a | Core, I18n, basicTiming, Test, href, sourceLevel, destinationLevel, sourcePlaystate (play | pause | stop) 'pause', destinationPlaystate (play | pause) 'play', show (new | replace | pause) 'replace', accesskey, tabindex, target, external, actuate, customTest, expr | (Schedule | MediaContent | ContentControl | Animation | State )* |
| area (anchor) | Core, I18n, basicTiming, Test, shape, coords, href, nohref, sourceLevel, destinationLevel, sourcePlaystate, destinationPlaystate, show, accesskey, tabindex, target, external, actuate, shape, fragment, skip-content, customTest, expr | (animate | set)* |
This profile adds the a element to the content model of the par, seq, and excl elements of the Timing and Synchronization Modules. It also adds these elements to the content model of the body element of the Structure Module.
In the SMIL 3.0 language profile, a value of onLoad set on the attribute actuate indicates that the link is automatically traversed when the linking element becomes active. For linking elements containing SMIL timing, this is when the active duration of the linking element begins.
The attribute tabindex specifies the position of the element in the tabbing order at a particular instant for the current document. The tabbing order defines the order in which elements will receive focus when navigated by the user via an input device such as a keyboard. At any particular point in time, only active elements are taken into account for the tabbing order; inactive elements are ignored.
When a media object element has a tabindex attribute and becomes active, then its ordered tab index is inserted in the SMIL tab index at the location specified by the media object's tabindex attribute value. This assumes that the media object itself has tab indices, such as embedded HTML with tabindex attributes. This enables all link starting points in a SMIL presentation to have a place on the ordered list to be tab-keyed through, including those in embedded presentations.
For SMIL 1.0 backward compatibility, the anchor element is available but deprecated in favor of area. The anchor element supports the same attributes as area, both the new SMIL 3.0 attributes and the SMIL 1.0 attributes as defined in [SMIL10].
SMIL 1.0 backward compatibility: The show attribute value pause is deprecated in favor of setting the show attribute to new and the sourcePlaystate attribute to pause.
The Media Object Modules provide a framework for declaring media. The Media Object Modules define semantics for the ref, animation, audio, img, video, text, textstream and brush elements. The SMIL 3.0 Language profile includes the Media functionality of the BasicMedia, BrushMedia, MediaAccessibility, MediaClipping, MediaClipMarkers, MediaDescription, MediaOpacity, MediaPanZoom, MediaParam, and MediaRenderAttributes modules.
In the SMIL 3.0 Language profile, media elements can have the following attributes and content model:
This profile adds the ref, animation, audio, img, video, text, textstream and brush elements to the content model of the par, seq, excl, and priorityClass elements of the Timing and Synchronization Modules. It also adds these elements to the content model of the body element of the Structure Module. It also adds these elements to the content model of the a element of the Linking Modules.
SMIL 1.0 only allowed anchor as a child element of a media element. In addition to anchor, the following elements are allowed in SMIL 3.0 as children of a SMIL media object: area, param, animate, set, animateColor, animateMotion (note that the a element is not included). The switch element is allowed, with the restriction that in this case the content of the switch may only be from the same set of elements.
The following royalty-free media formats are required to be supported:
While many SMIL user agents support speciality media types for streaming audio and video content, SMIL user agent developers are also encouraged to support the following non-royalty-free media formats to further interoperability of SMIL content:
Since both of these technologies are not freely available to user agent developers, the actual availability will remain player dependent.
This section is informative.
Authors are encouraged to encode media objects using one of the required or recommended MIME types whenever possible. This will ensure that their SMIL documents can be played back by a wide range of SMIL user agents.
If authors use a MIME type that is not in the list of required or recommended types, they should provide an alternative version encoded using a baseline format. This can be achieved by using a switch element as shown in the following example:
<switch> <audio src="non-baseline-format-object" /> <audio src="baseline-format-object" /> </switch>
In this example, a user agent that supports the non-baseline format will play the first audio media object, and a user agent that does not support the non-baseline format will play the second media object.
This section is informative.
SMIL 3.0 follows the lead of SVG Tiny in the way JPEG is required. The normative text is adapted from [SVGMobile12-JPEG].
This section specifies the JPEG support required by SMIL 3.0 implementations. The required support is targeted at specifying a level of functionality known to be compatibly supported within the industry and without licensing issues.
In general when people refer to JPEG [JPEG], they actually mean JPEG compressed images within the JFIF [JFIF] file format. JFIF was created by the Independent JPEG Group (IJG) for storing a single JPEG-compressed image in a file.
SMIL 3.0 User Agents are required to support JPEG images stored in a JFIF file [JFIF]. Other transport or storage mechanisms may be supported.
The following coding processes defined by the JPEG specification [JPEG], in Table 1, section 4.11, must be supported:
The following statements also apply:
The following encoding processes are not required, but may be supported
SMIL 3.0 UA's should convert Y,Cb,Cr values compressed in the JPEG image to RGB as defined in the JFIF specification [JFIF] and may assume that the RGB values are sRGB.
The MediaRenderAttributes Module defines the erase attribute, and defers definition of the "display area" to the language profile. "Display area" for the purposes of the SMIL 3.0 Language corresponds to a SMIL BasicLayout region. The effects of erase="never" apply after the active duration of the media object and any fill period (defined by SMIL Timing and Synchronization), and only until other media plays to the region targeted by the media object, or until the same media object restarts.
The Metainformation Module provides a framework for describing a document, either to inform the human user or to assist in automation. The Metainformation Module defines semantics for the and elements. The SMIL 3.0 Language profile includes the Metainformation functionality of the Metainformation module.
In the SMIL 3.0 Language profile, Metainformation elements can have the following attributes and content model :
| Metainformation Module | ||
|---|---|---|
| Elements | Attributes | Content model |
| Core, I18n, skip-content, content (CDATA), name (CDATA) | EMPTY | |
| Core, I18n, skip-content | EMPTY | |