The SMIL 2.1 Mobile Profile is a collection of SMIL 2.1 modules that provide support for the SMIL 2.1 language within the context of a mobile device. Such a device is expected to have sufficient display, memory, and processor capabilities to render basic interactive multimedia presentations in SMIL. The SMIL 2.1 Mobile Profile is a super-set of the SMIL 2.1 Basic Profile and a sub-set of the SMIL 2.1 Extended Mobile Profile. The SMIL 2.1 Mobile Profile is largely compatibility with the SMIL profile that third Generation Partnership Program (3GPP) has defined for the multimedia messaging (MMS) and the enhanced packed switched streaming (e-PSS) mobile services in its own specification ([3GPP26.246R6]).
The functionality of the SMIL 2.1 Mobile Profile may be further extended by using the SMIL 2.1 Scalability Framework. When extending the functionality of this profile, it is highly recommended to include functionality from the SMIL 2.1 Extended Mobile Profile first.
This section is informative.
The SMIL 2.1 Mobile 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 2.1 Modules".
In the text in this profile specification, the term Mobile Profile will be considered to refer exclusively to the SMIL 2.1 Mobile Profile as defined in this document.
The Mobile Profile design requirements are:
This section is informative.
The Third Generation Partnership Program (3GPP) [3GPP] has defined its own SMIL language profile. This profile specifically targets the Multimedia Messaging Service (MMS) and the Packet Switched Streaming Service (PSS). Both are mobile services. The 3GPP SMIL profile was first defined for 3GPP Release 4 in Section 8.1 of [3GPP26.234R4], updated for Release 5 in Section 8.1 of [3GPP26.234R5]. The latest available version (by 2005) is part 3GPP Release 6 in Technical Specification [3GPP26.246R6]. The 3GPP SMIL language profile is based on SMIL 2.0. A future revision of it may incorporate SMIL 2.1.
The Mobile Profile includes all modules of 3GPP SMIL and the following additional ones: AccessKeyTiming Module, BackgroundTilingLayout Module, AudioLayout Module, AlignmentLayout Module, and FullScreenTransitions Module.
This section is informative.
Also the Third Generation Partnership Project 2 (3GPP2) [3GPP2] defines its own SMIL Language Profile. The first version of the 3GPP2 SMIL profile is defined in 3GPP2 File Formats for Multimedia Services [3GPP2.C.S0050-0] and is the same as the 3GPP Release 5 SMIL profile [3GPP26.234R5], except the namespace identifier. The 3GPP2 File Formats for Multimedia Services defines a set of common file formats to specific services such as Multimedia Messaging Services (MMS) [3GPP2.C.S0045] and Multimedia Streaming Services (MSS), and its SMIL profile includes a superset of the SMIL modules for these services. The revision A of the 3GPP2 SMIL profile, which is now under discussion (as of Dec. 2005), will include the following additional modules: AccessKeyTiming Module, MultiArcTiming Module, BasicAnimation Module, and AudioLayout Module. A future revision of it may incorporate SMIL 2.1.
Comparing the Mobile Profile with the revision A of the 3GPP2 SMIL profile, the additional modules are:BackgroundTilingLayout Module, AlignmentLayout Module, and FullScreenTransitions Module. The missing modules are MultiArcTiming Module and BasicAnimation Module.
This section is normative.
This version of SMIL provides a definition of strictly conforming Mobile Profile documents, which are restricted to tags and attributes from the SMIL 2.1 namespace. In the future, the language described in this profile may be extended by other W3C Recommendations, or by private extensions. For these extensions, the following rules must be obeyed:
Conformant Mobile Profile user agents are expected to handle documents containing extensions that obey these two rules.
The Mobile Profile is a conforming SMIL 2.1 specification. The rules for defining conformant documents are provided in the SMIL 2.1 Language Conformance in the SMIL 2.1 Language Profile document. Note that while the section is written for the SMIL 2.1 Language profile, all of the rules apply to the Mobile Profile as well, with the exception that the Mobile Profile's namespace should be used instead of the SMIL 2.1 Language Profile's namespace and the Mobile Profile's DOCTYPE declaration should be used instead of the SMIL 2.1 Language Profile DOCTYPE declaration.
Documents written for the Mobile Profile must declare a default namespace for its elements with an xmlns attribute on the smil root element with its identifier URI:
<smil xmlns="http://www.w3.org/2005/SMIL21/Mobile"> ... </smil>
The default namespace declaration must be
xmlns="http://www.w3.org/2005/SMIL21/Mobile"
Language designers and implementors wishing to extend the Mobile Profile must consider the implications of the use of namespace extension syntax. Please consult the section on Scalable Profiles for restrictions and recommendations for best practice when extending SMIL.
Mobile Profile DOCTYPE declaration
A SMIL 2.1 document can contain the following DOCTYPE declaration:
The SMIL 2.1 Mobile Profile DOCTYPE is:
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.1 Mobile//EN" "http://www.w3.org/2005/SMIL21/SMIL21Mobile.dtd">
If a document contains this declaration, it must be a valid XML
document.
Note that this implies that extensions to the syntax defined in the DTD are
not allowed. If the document is invalid, the user agent should issue an
error.
Since the Mobile Profile defines a conforming SMIL document, the rules for defining conformant user agents are the same as provided in the Conforming SMIL 2.1 Language User Agents in the SMIL 2.1 Language Profile document, with the exception that the conforming user agent must support the Mobile Profile's namespace instead of the SMIL 2.1 Language Profile's namespace.
The Mobile Profile supports the SMIL 2.1 features for basic multimedia presentations. It uses only modules from the SMIL 2.1 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 2.1 modules:
The collection names contained in the following table define the Mobile Profile vocabulary.
SMIL 2.1 Mobile Profile | |
---|---|
Collection Name | Elements in Collection |
ContentControl | switch, prefetch |
Layout | region, root-layout, layout, regPoint |
LinkAnchor | a, area |
MediaContent | text, img, audio, video, ref, textstream, param, paramGroup |
Metainformation | , |
Structure | smil, head, body |
Schedule | par, seq |
Transition | transition |
In the following sections, we define the set of elements and attributes used in each of the modules included in the Mobile 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 | id (ID), class (NMTOKEN), title (CDATA), alt (CDATA), longdesc (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 Mobile Profile. The id attribute is used in the Mobile Profile to assign a unique XML identifier to every element in a SMIL document.
A conforming Mobile Profile document should not use the SMIL 1.0 attributes that have been depreciated in SMIL 2.0. Mobile Profile implementations are not required to support these attributes. This would be considered an unjustified burden for the targeted constraint devices. The unsupported depreciated SMIL 1.0 attributes are the following: anchor, background-color, clip-begin, clip-end, repeat; and the additional depreciated test attributes of Content Control: system-bitrate, system-captions, system-language, system-required, system-screen-size, and, system-screen-depth.
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 and prefetch elements. The Mobile Profile
includes the Content Control functionality of the BasicContentControl, PrefetchControl and SkipContentControl modules.
In the Mobile Profile, Content Control elements can have the following
attributes and content model :
Content Control Module | ||
---|---|---|
Elements | Attributes | Content model |
switch | Core, I18n, Test | ((Schedule | MediaContent | ContentControl | LinkAnchor)* | (layout )*) |
prefetch | Core, I18n, Test, Timing, mediaSize, mediaTime, bandwidth, src, skip-content, clipBegin, clipEnd | EMPTY |
This profile adds the switch element to the content model of the par and seq 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.
Content Control functionality is used to define the attribute set "Test":
Collection Name | Attributes in Collection |
---|---|
Test | systemBitrate, systemCaptions, systemLanguage, , systemRequired, systemScreenSize, systemScreenDepth, systemOverdubOrSubtitle, systemAudioDesc, , systemCPU, systemComponent |
The Test attributes collection is added to all the elements defined in the Mobile Profile. A mobile 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, layout and the regPoint elements. The Mobile Profile includes the Layout functionality of the BasicLayout, AudioLayout, BackgroundTilingLayout, and AlignmentLayout modules.
In the Mobile Profile, Layout elements can have the following attributes
and content model :
Layout Module | ||
---|---|---|
Elements | Attributes | Content model |
region | Core, I18n, Test, backgroundColor, showBackground (always | whenActive), bottom, fit (fill | hidden | meet | scroll | slice), width, height, left, right, top, soundLevel, z-index, skip-content, regionName | EMPTY |
root-layout | Core, I18n, Test, backgroundColor , width, height, skip-content | EMPTY |
layout | Core, I18n, Test, type | (root-layout | region | regPoint)* |
regPoint | Core, I18n, Test, top, bottom, left, right, regAlign ( topLeft|topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight ), skip-content | EMPTY |
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 elements. They define also the semantics of a set of attributes defined for these elements. The SMIL 2.1 Mobile Profile includes the Linking functionality of the BasicLinking and LinkingAttributes 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 Mobile Profile, Linking elements can have the following attributes
and content model :
Linking Module | ||
---|---|---|
Elements | Attributes | Content model |
a | Core, I18n, Timing, Test, href, sourceLevel, destinationLevel, sourcePlaystate (play | pause | stop) 'pause', destinationPlaystate (play | pause) 'play', show (new | replace | pause) 'replace', accesskey, tabindex, target, external, actuate | (Schedule | MediaContent | ContentControl)* |
area | Core, I18n, Timing, Test, shape, coords, href, nohref, sourceLevel, destinationLevel, sourcePlaystate, destinationPlaystate, show, accesskey, tabindex, target, external, actuate, shape, fragment, skip-content | EMPTY |
This profile adds the a element to the content model of the par and seq 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 Mobile 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.
Linking behavior in the Mobile Profile may be used to navigate within a document or to link across documents. When linking to destinations outside the current document, implementations may ignore the values "play" and "pause" of the sourcePlaystate attribute, and the values "new" and "pause" of the show attribute; in these cases, the semantics of the "stop" attribute (for sourcePlaystate ) and the "replace" attribute (for show) should be used. If an implementation ignores the values of the sourcePlaystate and show attributes, it may also ignore the sourceLevel attribute.
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.
The Media Object Modules provide a framework for declaring media. The Media Object Modules define semantics for the ref, audio, img, video, text, and textstream elements. The Mobile Profile includes the Media Object functionality of the BasicMedia, MediaClipping, MediaParam, and MediaAccessibility modules.
In the Mobile Profile, media elements can have the following attributes and content model:
Media Object Module | ||
---|---|---|
Elements | Attributes | Content model |
text, img, audio, video, ref, textstream | Core, I18n, Timing, Test, region, fill (freeze | remove | hold | transition | auto | default), , copyright, abstract, src, type, erase, mediaRepeat, paramGroup, sensitivity, tabindex, transIn, transOut, clipBegin, clipEnd, readIndex, endsync, mediaAlign, regPoint, regAlign, soundAlign, soundLevel. | (param | area | switch)* |
param | Core, I18n, Test, name, value, valuetype (data | ref | object), type, skip-content | EMPTY |
paramGroup | Core, I18n, Test, skip-content | (param)* |
The area and param elements are allowed as a child of a media object reference. The a element is not included in this list. 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 as is listed above.
This section is informative.
The members of the W3C SYMM Working Group recommend that at least the following content types and file formats be supported by Mobile Profile user agents:
This section is normative.
The MediaParam module defines the erase attribute, and defers definition of the "display area" to the language profile. "Display area" for the purposes of the Mobile Profile 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 Mobile Profile includes the Metainformation functionality of the Metainformation module.
In the Mobile 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 |
This profile adds the element to the content model of the head element of the Structure Module.
The content model of metadata is empty. Profiles that extend the Mobile Profile may define their own content model of the metadata element.
The Structure Module provides a framework for structuring a SMIL document. The Structure Module defines semantics for the smil, head, and body elements. The Mobile Profile includes the Structure functionality of the Structure module.
In the Mobile Profile, the Structure elements can have the following attributes and content model :
Structure Module | ||
---|---|---|
Elements | Attributes | Content model |
smil | Core, I18n, Test, xmlns | (head?,body?) |
head | Core, I18n | (*,(,*)?,((layout|switch),*)?, (transition+,*)?, (paramGroup+,*)?) |
body | Core, I18n, Timing, fill, abstract, , copyright | (Schedule | MediaContent | ContentControl | a )* |
The body element acts as the root element to span the timing tree. The body element has the behavior of a seq element. Timing on the body element is supported. The syncbase of the body element is the application begin time, which is implementation dependent, as is the application end time. Note that the effect of fill on the body element is between the end of the presentation and the application end time, and therefore the effect of fill is implementation dependent.
The Timing and Synchronization Modules provide a framework for describing timing structure, timing control properties and temporal relationships between elements. The Timing and Synchronization Modules define semantics for par and seq elements. In addition, these modules define semantics for attributes including begin, dur, end, repeatCount, repeatDur, min, max. The Mobile Profile includes the Timing and Synchronization functionality of the BasicInlineTiming, EventTiming, MinMaxTiming, RepeatTiming, AccessKeyTiming, BasicTimeContainers modules.
In the Mobile Profile, Timing and Synchronization elements can have the following attributes and content model :
Timing and Synchronization Module | ||
---|---|---|
Elements | Attributes | Content model |
par | Core, I18n, Timing, Test, endsync, fill (freeze | remove | hold | auto | default), abstract, , copyright, region | (Schedule | MediaContent | ContentControl | a)* |
seq | Core, I18n, Timing, Test, fill (freeze | remove | hold | auto | default), abstract, , copyright, region | (Schedule | MediaContent | ContentControl | a) * |
The Attribute collection Timing is defined as follows:
Collection Name | Attributes in Collection |
---|---|
Timing | begin, dur, end, repeatCount, repeatDur, min, max |
This profile adds the par and seq elements to the content model of the body element of the Structure Module and adds these elements to the content model of the a element of the Linking Modules.
Elements of the Media Object Modules have the attributes describing timing and properties of contents.
The Mobile Profile specifies which types of events can be used as part of the begin and end attribute values. The supported events are described as Event-symbols according to the syntax introduced in the SMIL Timing and Synchronization module.
The supported event symbols in the Mobile Profile are:
Event | example |
---|---|
focusInEvent (In DOM Level 2: "DOMFocusIn") | end="foo.focusInEvent" |
focusOutEvent (In DOM Level 2: "DOMFocusOut") | begin="foo.focusOutEvent" |
activateEvent (In DOM Level 2: "DOMActivate") | begin="foo.activateEvent" |
beginEvent | begin="foo.beginEvent" |
endEvent | end="foo.endEvent" |
repeatEvent | end="foo.repeatEvent" |
inBoundsEvent | end="foo.inBoundsEvent" |
outOfBoundsEvent | begin="foo.outOfBoundsEvent" |
As defined by the SMIL syncbase timing semantics, any event timing attributes that reference an invalid time-value description will be treated as if "indefinite" were specified.
<ref id="x" end="30s" src="15s.mpg" /> <ref id="y" end="10s" src="20s.mpg" /> <ref id="z" repeatCount="4" src="5s.mpg" />
x.endEvent occurs at roughly 30s when the active duration is reached, y.endEvent occurs at roughly 10s when the playback of the continuous media is ended early by the active duration being reached, and z.endEvent occurs at roughly 20s when the fourth and final repeat has completed, thus reaching the end of its active duration. The endEvent is delivered to elements which support timing, such as media elements and time containers, and does not bubble.
A media element's bounds are restrained by the bounds of the region in which it is contained., i.e., a media element's bounds do not extend beyond its region's bounds. The inBoundsEvent is delivered to media elements only, and does not bubble.
Note that, unlike with keyboard focus which can only be active on one object at a time, the state of being within an object's bounds can be true for multiple objects simultaneously. For instance, if one object is on top of another and the cursor is placed on top of both objects, both would have raised an inBoundsEvent more recently than the raising of any respective outOfBoundsEvent. If a player does not support a pointer cursor, then these players will typically not generate the inBoundsEvent and outOfBoundEvent events.
A media element's bounds are restrained by its region's bounds, i.e., a media element's bounds do not extend beyond its region's bounds. The outOfBoundsEvent is delivered to media elements only, and does not bubble.
There will be cases where events occur simultaneously. To ensure that each Mobile implementation handles them in the same order, the following order must be used to resolve ties:
Events are listed in order of precedence, e.g., if event #6 in this list occurs at the same time as event #7, then #6 must be raised prior to #7.
The InBoundsEvent, focusInEvent, OutOfBoundsEvent, activateEvent, and focusOutEvent events do not bubble and are delivered to the target media element.
The beginEvent, endEvent and repeatEvent events do not bubble and are delivered to the timed element on which the event occurs.
The Mobile Profile supports an extensible set of events. In order to resolve possible name conflicts with the events that are supported in this profile qualified event names are supported. Namespace prefixes are used to qualify the event names. As a result, the colon is reserved in begin and end attributes for qualifying event names.
For example:
<smil ... xmlns:example="http://www.example.com"> <img id="foo" .../> <audio begin="foo.example:focusInEvent".../> ... </smil>
A SMIL document's begin time is defined as the moment a user agent begins the timeline for the overall document. A SMIL document's end time is defined as equal to the end time of the body element.
The Transition Effects Modules provide a framework for describing transitions such as fades and wipes. The Transition Modules define semantics for the transition element. The Mobile Profile includes the functionality of the BasicTransitions and FullScreenTransitions modules.
In the Mobile Profile, Transition Effects elements have the following attributes and content model :
Transition Effects Module | ||
---|---|---|
Elements | Attributes | Content model |
transition | Core, I18n, Test, dur, type, subtype, startProgress, endProgress, direction, fadeColor, scope, skip-content | EMPTY |
This profile adds the transition element to the content model of the head element of the Structure Module.
The Transition Effects Modules add transIn and transOut attributes to ref, audio, img, video, text and textstream elements of the Media Object Modules.
The Transition Effects Modules add the transition value to the fill attribute for all elements on which this value of the fill attribute is supported.
This section is normative.
The Mobile Profile Document Type Definition is defined as a set of SMIL 2.1 modules. All SMIL 2.1 modules are integrated according to the guidelines in the W3C Note "Synchronized Multimedia Modules based upon SMIL 1.0" [SMIL-MOD], and defined within their respective module sections.