This section is Normative.
Since the publication of SMIL 1.0 [SMIL10], interest in the integration of SMIL concepts with the HTML, the Hypertext Markup Language [HTML40], and other XML languages, has grown. Likewise, the W3C HTML Working Group is specifying how XHTML, the Extensible Hypertext Markup Language [XHTML10], can be subset, be extended, or be integrated with other languages. The strategy considered for integrating respective functionality with other XML languages is based on the concepts of modularization and profiling [MODMOD], [SMIL-MOD], [XMOD], [XPROF].
Modularization is a solution in which a language's functionality is partitioned into sets of semantically-related elements and attributes. Profiling is the combination of these feature sets to provide support for the functionality required within a particular application domain. The re-use of modules across profiles should enhance the interoperability between the various application domains.
This specification complies with the XHTML modularization conformance requirements as set forth in the XHTML Modularization specification [XMOD]. For the purposes of this specification we further define:
The main purpose of the notion of language profile family is to enhance interoperability. Language profiles within the same language profile family share the same MIME type(s). Preferably, the mandatory modules of a language profile family should be defined in such a way that any offered document conforming to a language profile in that language profile family will yield a reasonable presentation when the renderer, while supporting that language profile family's mandatory module set, would ignore all other (unknown) elements and attributes. Here, "reasonable presentation" is to be understood as something intelligible, which is not necessarily a close reflection of the author's original intentions. For that purpose a language profile negotiation would have to be conducted.
There is an important difference between the concepts of module family and language profile family. The first indicates the functionality space, and the second has to do with the document type (and MIME type). A language profile associates with one doctype, which is called the "host language". Therefore, the "Structure Module", containing the doctype's root element, is an essential module in any language profile family.
@@ In respect of decreasing document size: should the remainder of this section stay?
SMIL functionality is partitioned into modules based on the following design requirements:
The first requirement specifies that a collection of modules can be "recombined" in such a way as to be backwardly compatible with SMIL 1.0 (it will properly play SMIL 1.0 conforming content).
The second requirement specifies that the semantics of SMIL must not change when they are embodied in a module. Fundamentally, this ensures the integrity of the SMIL content and timing models. This is particularly relevant when a different syntax is required to integrate SMIL functionality with other languages.
The third requirement states that modules be of reasonable granularity. This requirement reflects the core purpose of modularization and profiling. On the one hand, the modularization should lead to separation of functionality, such that language profile designs can optimize for performance and complexity. On the other hand, the range of modules should be limited, such that interoperability is promoted.
The fourth requirement specifies that, where functionality overlaps, modules be isomorphic with other modules from other W3C recommendations. This will assist designers when sharing modules across language profiles.
The fifth requirement states that specific attention be paid to providing multimedia functionality to the XHTML language. XHTML is the reformulation of HTML in XML.
The sixth requirement ensures that modules have integrated support for the document object model. This facilitates additional control through scripting and user agents.
These requirements led to a partitioning of SMIL functionality into twenty five modules.
This section is Informative.
SMIL functionality is partitioned into nine functional areas. Within each functional area a further partitioning is applied into modules. The modules are complementary. For example, the Timing Level 2 Module adds syncBehavior to the timing in the Timing Level 0 and Level 1 Modules.
@@ This is a Normative statement !! When a language profile includes a module of a higher level, the modules of the lower levels MUST be included. Some elements or attributes are labeled as Profile Specific. This means that those elements or attributes are optional to the language profile, as long as the module from which they stem is the top level module.
The functional areas and the modules are:
Each of these modules introduces a set of semantically-related elements, properties, and attributes.
All these modules, and only these modules, are members of the SMIL module family. @@ This is a Normative statement ??
The Structure Level 0 Module, Timing Level 0 Module, and Media Object Level 0 Module are mandatory modules in any language profile in the SMIL language profile family. This implies that the SMIL Structure Level 0 Module must at least be accompanied with the two other modules. Those modules themselves can still be used in other, non-SMIL family, language profiles.
Below, the modules are listed.
@@ Need check on completeness.
@@ Need check on correct division over levels.
@@ The names for the script to generate hyperlinks to the element and attribute definitions need check on being identical.
This section is Informative.
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, seq, and excl elements. In addition, the modules define semantics for attributes including begin, dur, end, repeatCount, repeatDur, and others.
The Timing Level 0 Module is a mandatory module in any language profile in the SMIL language profile family.
Note that upon building a language profile which integrates SMIL timing with other, non-SMIL, modules, that the elements from this Timing Level 0 Module may appear as attributes to the elements from the other XML language, rather than as these elements themselves. In that case, the element's functionality is declared using the timeContainer attribute.
@@ To be moved to corresponding module
The timing attributes are used by the elements in this Timing Level 0 Module
and in the other Timing
Modules, and by the elements in the
Media Modules, in the
Linking Modules, and in
the Content Control
Modules. As upon integration with non-SMIL modules, the elements from this
module may appear as attributes instead of elements, the referenced timing
attributes are also used by those non-SMIL elements.
Usage of the Timing Level 1 Module requires inclusion of the Timing Level 0 Module. (@@ Therefore, should we design the modules as inclusive, rather than complementary?) Consequently, the same usage rules apply.
This means that upon integrating with a non-SMIL language, the excl element may appear as an attribute using the timeContainer construct. Another implication is that the added attributes (restart etc.) are adopted by the same elements who have adopted the attributes in the Timing Level 0 Module.
When this module is used it adds the 'multiple time conditions' and 'events' semantics to the begin and end attributes.
@@ To be moved to corresponding module
When this module is used it adds the
restart, the
restartDefault, the
syncBehavior, and the
syncBehaviorDefault
attributes to the par,
seq, and
excl elements.
Usage of the Timing Level 2 Module requires inclusion of the Timing Level 0 Module and the Timing Level 1 Module. Consequently, the same usage rules apply.
@@ To be moved to corresponding module
When this module is used it adds the 'media marker' semantics to the
begin and
end attributes.
This section is Informative.
This section is Informative.
The Animation Modules provide a framework for incorporating animation onto a timeline (a timing model) and a mechanism for composing the effects of multiple animations (a composition model). The Animation Modules define semantics for the animate, set, animateMotion, and animateColor elements.
@@ To be moved to corresponding module
When this module is used, it adds the
animate,
set,
animateMotion, and
animateColor elements to the
content model of the ref,
animation,
audio,
img,
video,
text, and
textstream elements of the
Media Object Modules (if
those are present in the language profile). It also adds these elements to
the content model of the par,
seq, and
excl elements of the
Timing Modules, and to the
content model of the body element of
the Structure Level 0
Module (if those are present in the language profile).
Usage of the Animation Level 1 Module requires inclusion of the Animation Level 0 Module. Consequently, the same usage rules apply.
@@ To be moved to corresponding module
When this module is used it adds the
keyTimes and
keySplines attributes to the
animate element.
This section is Informative.
The Transition Effects Modules define a taxonomy of transition effects as well as semantics and syntax for integrating these effects into XML documents.
@@ To be moved to corresponding module
When this module is used, it adds the
transition element to the content
model of the layout element of the
Layout Level 0 Module (if
present in the language profile). The
transition attribute is added
to the elements in the Media
Object Level 0 Module (if present in the language profile).
Usage of the Transition Effects Level 1 Module requires inclusion of the
Transition Effects Level
0 Module. Consequently, the same usage rules apply.
In addition, the usage of the Transition Effects Level 1 Module requires
support for hierarchical layout, such as supported by the
Layout Level 1 Module.
@@ To be moved to corresponding module
When this module is used it adds transition effects functionality for transitions
over multiple regions.
This section is Informative.
The Media Object Modules provide a framework for declaring media. The Media Object Modules define semantics for the ref, animation, audio, img, video, text, and textstream elements.
The Media Object Level 0 Module is a mandatory module in any language profile in the SMIL language profile family.
@@ To be moved to corresponding module
When this module is used, it adds the
ref,
animation,
audio,
img,
video,
text, and
textstream elements to the content
model of the par,
seq, and
excl elements of the
Timing Modules (if those
are present in the language profile). It also adds these elements to the
content model of the body element of
the Structure Level 0
Module (if those are present in the language profile). It also adds these
elements to the content model of the a
element of the Linking
Modules (if those are present in the language profile).
Usage of the Media Object Level 1 Module requires inclusion of the Media Object Level 0 Module. Consequently, the same usage rules apply.
@@ To be moved to corresponding module
When this module is used it adds the
stripRepeat and the
readIndex attributes to the
ref,
animation,
audio,
img,
video,
text, and
textstream elements of the
Media Object Level 0 Module
(if present in the language profile).
@@ To be moved to corresponding module
When this module is used, it adds the
param element to the content model
of the ref,
animation,
audio,
img,
video,
text, and
textstream elements of the
Media Object Level 0 Module
(if present in the language profile).
@@ To be moved to corresponding module
When this module is used, it adds the
rtpmap element to the content model
of the ref,
animation,
audio,
img,
video,
text, and
textstream elements of the
Media Object Level 0 Module
(if present in the language profile).
@@ To be moved to corresponding module
When this module is used it adds the
port, the
transport, and the
rtpformat attributes to the
ref,
animation,
audio,
img,
video,
text, and
textstream elements of the
Media Object Level 0 Module
(if present in the language profile).
@@ To be moved to corresponding module
When this module is used, it adds the
brush element to the content model
of ?? (@@ needs completion).
This section is Informative.
This section is Informative.
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 and uGroup elements.
@@ To be moved to corresponding module
When this module is used, it adds the
switch element to the content model
of the par,
seq, and
excl elements of the
Timing Modules (if those
are present in the language profile). It also adds this element to the content
model of the body element of the
Structure Level 0 Module
(if present in the language profile). It also adds this element to the content
model of the a element of the
Linking Modules (if present
in the language profile). It also adds this element to the content model
of the head element of the
Structure Level 0 Module
(if present in the language profile).
@@ To be moved to corresponding module
When this module is used, the test attributes are added to the attribute
lists of all the elements in the
Layout Modules, the
Media Object Modules, the
Timing Modules, and the
Transition Effects Modules
(if those are present in the language profile).
@@ To be moved to corresponding module
When this module is used, it adds the
skipContent attribute to all
other elements in the language profile.
Usage of the Content Control Level 1 Module requires inclusion of the Content Control Level 0 Module. Consequently, the same usage rules apply.
@@ To be moved to corresponding module
When this module is used, it adds the
prefetch element to the content
model of the par,
seq, and
excl elements of the the
Timing Modules (if those
are present in the language profile). It also adds this element to the content
model of the body element of the
Structure Level 0 Module
(if present in the language profile). It also adds this element to the content
model of the a element of the
Linking Modules (if those
are present in the language profile).
@@ To be moved to corresponding module
When this module is used, the
userAttributes element is
added to the content model of the head
element (where the uGroup is part
of the content model of the
userAttributes element).
The uGroup attribute is added to
the attribute lists of all the elements in the
Media Object Modules, and
the Timing Modules (if those
are present in the language profile).
This section is Informative.
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 the elements.
@@ To be moved to corresponding module
When this module is used, it adds the
and the
elements to the content
model of the head element of the
Structure Level 0 Module
(if present in the language profile).
This section is Informative.
The Structure Module provides a framework for structuring a SMIL document. The Structure Module defines semantics for the smil, head, and body elements.
The Structure Level 0 Module is a mandatory module in any language profile in the SMIL language profile family.
This section is Informative.
The Layout Modules provide a framework for spatial layout of visual components. The Layout Modules define semantics for the layout, root-layout, and region elements.
@@ To be moved to corresponding module
When this module is used, it adds the
layout element to the content model
of the head element of the
Structure Level 0 Module
(if present in the language profile). It also adds this element to the content
model of the switch element of the
Content Control
Modules (if present in the language profile).
Usage of the Layout Level 1 Module requires inclusion of the Layout Level 0 Module. Consequently, the same usage rules apply.
@@ To be moved to corresponding module
When this module is used, it adds the
element to the content
model of the layout element.
@@ To be moved to corresponding module
When this module is used, it adds the
soundLevel attribute to the
region element.
Usage of the Layout Level 2 Module requires inclusion of the Layout Level 0 Module and the Layout Level 1 Module. Consequently, the same usage rules apply.
This section is Informative.
The Linking Modules provide a framework for relating documents to content, documents and document fragments. The Linking Modules define semantics for the a and the area elements.
@@ To be moved to corresponding module
When this module is used, it adds the a
and the anchor
(deprected)elements to the content model of the
par,
seq, and
excl elements of the
Timing Modules (if those
are present in the language profile). It also adds these elements to the
content model of the body element of
the Structure Level 0
Module (if present in the language profile).
Usage of the Linking Level 1 Module requires inclusion of the Linking Level 0 Module, except for the replacement defined below. Consequently, the same usage rules apply.
@@ To be moved to corresponding module
When this module is used, it adds the
fragment attribute to the existing
attribute range of the area element.
This section is Informative.
SMIL is an XML language and conforms to the (XML) DOM Core [DOM1], [DOM2]. The SMIL DOM specifies extensions to the DOM Core, adding support for timing and synchronization, media integration, and other synchronized multimedia functionality [SMIL-DOM].
A language profile may include DOM support. The granularity of DOM being supported, corresponds to the modules being selected in that language profile. As with all modules, required support for the DOM is an option of the language profile.
This section is Informative.
A requirement for SMIL modularization is that the modules be isomorphic with other modules from other W3C recommendations. Isomorphism will assist designers when sharing modules across language profiles. The Table below lists the isomorphism between SMIL and XHTML modules.
SMIL modules | XHTML modules | |||
---|---|---|---|---|
Functionality | Module Name | Elements | Module Name | Elements |
Timing | Timing Level 0 | par, seq | <none> | - |
Timing Level 1 | excl, priorityClass | <none> | - | |
Animation | Animation Level 0 | animate, set, animateMotion, animationColor | <none> | - |
Animation Level 1 | - | <none> | - | |
Transition Effects | Transition Effects Level 0 | transition | <none> | - |
Transition Effects Level 1 | - | <none> | - | |
Media | Media Object Level 0 | ref, audio, video, text, img, animation, textstream | Object | object |
Image | img | |||
Applet | applet, param | |||
Media Object Level 1 | param | Object | param | |
rtpmap, brush | <none> | - | ||
Content Control | Content Control Level 0 | switch | <none> | - |
Content Control Level 1 | prefetch, userAttributes, uGroup | <none> | - | |
Structure | Structure Level 0 | smil, head, body | Structure | html, head, body, title, span, div |
Metainformation | Metainformation Level 0 | meta, metadata | Metainformation | meta |
Link | link | |||
Base | base | |||
Layout | Layout Level 0 | layout, root-layout, region | Stylesheet | style (CSS) |
Layout Level 1 | viewport | <none> | - | |
Layout Level 2 | advanced layout syntax (TBD) | <none> | - | |
Linking | Linking Level 0 | - | Hypertext | @@ ?? |
Linking Level 1 | a | Hypertext | a | |
anchor | - | - | ||
area | Client-side Image Map | map, area | ||
DOM | SMIL DOM | - | <none> | - |
As can be seen in the table, the Metainformation module appears in both SMIL and HTML. In SMIL the Linking Level 1 Module provides towards isomorphism between the corresponding Linking modules in SMIL and XHTML.
This section is Informative.
There are a range of possible language profiles that may be built using SMIL modules. Below, five language profiles are presented to inform the reader of how language profiles may be constructed to solve particular problems. These example language profiles are non-normative. However, the first three language profiles have been documented as normative specifications by the SYMM WG.
The SMIL-Boston Language Profile supports for composition of multimedia presentations. It uses modules from the SMIL module family only. As the language profile includes the three mandatory modules (Structure Level 0, Timing Level 0, and Media Object Level 0), it represents a language profile in the SMIL language profile family.
The SMIL-Boston Language Profile includes the following SMIL modules:
@@ to be checked (in particular by implementers)
A normative specification of the language profile is given in the SMIL Boston Language Profile specification.
The HTML+SMIL Language Profile integrates SMIL timing into HTML. It uses modules from the SMIL module family.
The HTML+SMIL Language Profile includes the following SMIL modules:
@@ to be checked (in particular by implementers)
The language profile uses XHTML modules for structure, layout, and linking and SMIL modules for multimedia and timing.
A normative specification of the language profile is given in the HTML+SMIL Language Profile specification.
The SMIL-Basic Language Profile supports a lightweight version of the SMIL-Boston language profile and is intended for use with resource-constrained devices such as mobile phones. It uses a subset of the modules used in the SMIL-Boston language profile, which are modules from the SMIL module family. As the language profile includes the three mandatory modules (Structure Level 0, Timing Level 0, and Media Object Level 0), it represents a language profile in the SMIL language profile family.
The SMIL-Basic Language Profile includes the following SMIL modules:
@@ to be checked (in particular by implementers)
The Lightweight Timed-Text Language Profile handles simple presentations supporting timing of text content. It integrates SMIL timing with XHTML text markup. The simplest version of this could be used to sequence stock quotes or headlines on constrained devices such as a palmtop device or a smart phone. The language profile uses modules from the SMIL module family. Its complete module set forms a subset of the modules used in the HTML+SMIL language profile.
The Lightweight Timed-Text Language Profile includes the following SMIL modules:
This language profile uses XHTML modules [XMOD] for structure and layout and SMIL modules for timing and animation.
The Web-Enhanced Media Language Profile supports the integration of interactive broadcast or on-demand streaming media presentations with Web access browsing. The primary media will often define the main timeline. The language profile uses a subset of the modules used in the SMIL-Boston language profile and forms a superset of the modules used in the SMIL-Basic language profile, which are modules from the SMIL module family. However, it may incorporate modules from other namespaces. As the language profile includes the three mandatory modules (Structure Level 0, Timing Level 0, and Media Object Level 0), it represents a language profile in the SMIL language profile family.
The Web-Enhanced Media Language Profile includes the following SMIL modules: