The SMIL Boston profile describes the SMIL modules that are included and details how this modules are integrated. It contains support for all of the major SMIL Boston 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 SMIL Boston markup such as standalone multimedia players.
This section is informative.
The SMIL Boston Profile is defined as a markup language. The syntax of this language is formally described with a document type definition (DTD) or XML Schema which is based on the SMIL modules as defined in "Modularization of SMIL" [SMIL-MOD]
The SMIL Boston Profile design requirements are:
This section is normative.
A conforming SMIL Boston document is a document that requires only the facilities described as mandatory in this specification. Such a document must meet all of the following criteria:
<!DOCTYPE SMIL-Boston PUBLIC "-//W3C//DTD SMIL Boston //EN" "smil-boston.dtd">
The user agent must conform to the "User Agent Conformance" section of the XHTML specification ([XHTML10], section 3.2).
The SMIL-Boston Profile supports the timeline-centric multimedia features found in SMIL language. This profile includes the following SMIL modules:
The collection names contained in the following table define the SMIL Boston Profile vocabulary.
Collection Name | Elements in Collection |
---|---|
Animation | animate, set, animateMotion, animateColor |
ContentControl | switch, prefetch, userAttributes |
Layout | region, root-layout, layout, regPoint, viewport |
LinkAnchor | a, area |
MediaContent | text, img, audio, video, ref, animation, textstream, brush? |
Metainformation | , |
Structure | smil, head, body |
Schedule | par, seq, excl, priorityClass |
Transition | transition, |
In the following sections, we define the set of elements and attributes used in each of the modules included in the SMIL Boston 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) |
The id and class attributes in the collection Core are defined for all the elements of the SMIL Boston Profile. The id attribute is used in the SMIL Boston Profile to assign a unique XML identifier to every element in a SMIL document.
The Animation Module provides 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 SMIL Boston profile includes the functionality of the Animation module level 0. The Animation Module defines semantics for the animate, set, animateMotion, and animateColor elements.
In the SMIL Boston Language Profile, Animation elements can have the following
attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
animate | Core, Timing, attributeName, attributeType, additive, accumulate, calcMode, values, from, to, by | EMPTY |
set | Core, Timing, attributeName, attributeType, to | EMPTY |
animateMotion | Core, Timing, additive, accumulate, calcMode, values, from, to, by , path, origin | EMPTY |
animateColor | Core, Timing, attributeName, attributeType, additive, accumulate, calcMode, values, from, to, by | EMPTY |
This profile adds the animate, set, animateMotion, and animateColor elements to the content model of the par, seq and excl elements of the Timing and Synchronization Module. It also adds these elements to the content model of the body element of the Structure Module.
Integration issues with animation
We need to go through the animation module and check for any additional integration requirements that we may not have covered.
Specifying the target element
The target element supported in the SMIL Boston Profile is the element region defined in the layout module.
Specifying the target attribute
The target attributes of the animations are those of the region and area elements. The region element has the following attributes which can be subject to animation: soundLevel, width, height, z-index, left, right, top, bottom, backgoundColor (background-color). The area element has the coord attribute which can be subject to animation. The attribute coord is considered of type string in this profile. This means that only discrete non-additive animation is supported on this attribute.
Elements | Target Element | Target Attributes |
---|---|---|
animate | region | soundLevel, width, height, z-index, left, right, top, bottom, backgoundColor (background-color) |
area | coords(string) | |
set | region | soundLevel, width, height, left, right, top, bottom |
area | coords(string) | |
animateMotion | region | N/A |
animateColor | region | backgroundColor (background-color) |
The Content Control Module provides a framework for selecting content based
on a set of test attributes. The Content Control Module defines semantics
for the switch and the prefetch
elements.The SMIL Boston profile includes the functionality of the Content
Control module level 0 together with the element prefetch.
In the SMIL Boston Language Profile, Content Control elements can have the
following attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
switch | Core, Timing, title, skipContent (skip-content) | (Schedule | MediaContent | ContentControl | LinkAnchor )* |
prefetch | Core, mediaSize, mediaTime, bandwidth | (Schedule | MediaContent | ContentControl | LinkAnchor )*> |
This profile adds the switch element to the content model of the par, seq, and excl elements of the Timing and Synchronization Module, of the body element of the Structure Module, of the content model of the a element of the Linking Module and of the head element of the Structure Module.
The Content Control Module defines the Attribute set "Test".
Collection Name | Attributes in Collection |
---|---|
Test | systemBitrate (Number), systemCaptions (on|off), systemLanguage (CDATA), (caption|overdub), systemRequired (URI), systemScreenSize (CDATA), systemScreenDepth ( CDATA), systemOverdubOrSubtitle (overdub|subtitle), systemAudioDesc (on|off), , systemCPU, systemComponent (CDATA), |
The collection of Attributes Test can be added to all the elements defined in the SMIL Boston profile.
The Layout Module provides a framework for spatial layout of visual components. The Layout Module defines semantics for the , layout, root-layout, region and the regPoint elements. The SMIL Boston profile includes the functionality of the entire Layout module (levels 0, 1 and 2).
In the SMIL Boston Language Profile, Layout elements can have the following
attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
region | Core, Accessibility, backgroundColor (background-color), bottom, fit (fill | hidden | meet | scroll | slice), width, height, left, right, title, top, volume, z-index, regPoint, regAlign | EMPTY |
root-layout | Core, Accessibility, backgroundColor(background-color), width, height, skipContent(skip-content), title | EMPTY |
Core, Accessibility, (background-color), width, height, skipContent(skip-content), title | region, EMPTY | |
layout | Core, Accessibility, type | root-layout, region, viewport |
regPoint | Core, Accessibility, top, bottom, left, right, regAlign ( topLeft|topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight ) | EMPTY |
Make sure that all these attribute value lists are complete.
(*) If the type attribute of the "layout" element has the value "text/smil-basic-layout", it can contain the "region" and the "root-layout" elements. If the type attribute of the layout element has the value "text/smil-extended-layout", in addition to the "layout" and "root-layout" elements it can contain the "viewportt" element. For more details, see the layout element description in the Layout Module.
(**) The "background-color" attribute of SMIL1.0 is deprecated in favor of "backgroundColor", but both are supported.
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 Module.
Maybe just list them all in tables of collections of elements and attributes as you have started to do here.What I would do is use the module sections to create and name the attribute and element collections, then I would have a following section that listed the elements and there content and attribute models using the collection names. This way everything is defined before using, and you don't have to keep using the language "this adds that to the content model of X".
The Linking Module provides a framework for relating documents to content, documents and document fragments. The Linking Module defines semantics for the a and area elements (SMIL Boston linking level 1). It defines also the semantics of a set of attributes defined for theses elements (SMIL Boston linking level 0).
Both the a and area elements have an href attribute, whose value should be a valid URI. Support for URI's using http:// and file:/ access protocols is required. Support for other protocols is optional.
Support for URI's with XPointer fragment identifier syntax is not required.
In the SMIL Boston Language Profile, Linking elements can have the following
attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
a | Core, Timing, Test, href, sourceLevel, destinationLevel, sourcePlaystate(play | pause | stop) 'pause', destinationPlaystate (play | pause | stop) 'play', show (new | replace) 'replace', accesskey, tabindex, target, external, actuate | MediaContent, Schedule, |
area ( anchor) | Core, Timing, Test, shape, coords, href, nohref, alt, sourceLevel, destinationLevel, sourcePlaystate, destinationPlaystate, show, accesskey, tabindex, target, external | EMPTY |
This profile adds the area and a elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It also adds these elements to the content model of the body element of the Structure Module.
SMIL 1.0 backward compatibility: The <anchor> element is available but deprecated in favor of <area>.
SMIL 1.0 backward compatibility: The show attribute value "pause" is deprecated in favor of setting the the "show" attribute to "new" and the "sourcePlaystate" attribute to "pause".
The Media Object Module provides a framework for declaring media. The Media Object Module defines semantics for the ref, animation, audio, img, video, text, textstream and brush elements. The SMIL Boston profile includes the functionality of the Media Object module level 0.
Should these attributes be included in the profile : brush, StripRepeat, readIndex, param, namedMarkers. Good topic for the face2face, please post this as a discussion issue!.
In the SMIL Boston Language Profile, media object elements can have the following content model and attributes, in addition to the attributes defined in the SMIL Media Object Module:
Elements | Attributes | Content Model |
---|---|---|
text | Core, Timing, abstract, src, region, fill (freeze | remove | hold), alt, , copyright, title, type | param, LinkAnchor, Schedule, Animation |
img | Core, Timing, abstract, src, region, fill (freeze | remove | hold), alt, , copyright, title, type | area, param, LinkAnchor, Schedule, Animation |
audio | Core, Timing, abstract, src, , copyright, title, type, clipBegin(clip-begin), clipEnd(clip-end) | param, LinkAnchor, Schedule, Animation |
video | Core, Timing, abstract, src, region, fill (freeze | remove | hold), alt, , copyright, title, type, clipBegin(clip-begin), clipEnd(clip-end) | area, param, LinkAnchor, Schedule, Animation |
ref, animation, textstream | Core, Timing, abstract, src, region, fill (freeze | remove | hold), alt, , copyright, title, type | param, LinkAnchor, Schedule, Animation |
brush | Core, Timing, abstract, region, fill (freeze | remove | hold), alt, , copyright, title, type, color | param, LinkAnchor, Schedule, Animation |
In the SMIL Boston Language Profile, media object elements can contain the following elements:
SMIL 1.0 only allowed "anchor" as a child element of a media element. In addition to "anchor", the following elements are now allowed as children of a SMIL media object: area, par, seq, excl, param, animate, set, animateColor, animateMotion.
This profile 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 and Synchronization Module. 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 Module.
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 Boston profile includes the functionality of the Metainformation module level 0.
In the SMIL Boston Language Profile, Metainformation elements can have the following attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
Core, Accessibility, Meta | EMPTY | |
Core, Accessibility, | RDF |
The RDF (Resource Description Framework) element in this table is defined in the W3C Metadata Recommendation [RDFsyntax].
Define what RDF means. Actually I think that the element allowed is the RDF element in the rdf namespace, whatever the URI is. Should use the complete URI in the spec here.
The Attribute collections Core, Accessibility and Meta in the previous table are defined as follows:
Collection Name | Attributes in Collection |
---|---|
Accessibility | xml:lang (NMTOKEN), title (CDATA) |
Meta | content (CDATA), name (CDATA), skipContent (true|false) 'true'. |
This profile adds the element to the content model of the head element of the Structure Module.
The Structure Module provides a framework for structuring a SMIL document. The Structure Module defines semantics for the smil, head, and body elements. The SMIL Boston profile includes the functionality of the Structure module level 0.
In the SMIL Boston Language Profile, Structure elements can have the following attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
smil | Core, Accessibility, xmlns | head?, body?, ? |
head | Core, Accessibility, profile | Metainformation, Transition, (switch | layout)? |
body | Core, Accessibility, Timing | (Schedule | MediaContent | ContentControl | LinkAnchor )* |
The body element acts as the root element to span the timing tree. The body element has a "timeContainer" attribute fixed to the value of "seq".
The Timing and Synchronization Module provides a framework for describing timing structure, timing control properties, and temporal relationships between elements. The Timing and Synchronization Module defines semantics for par, seq, and excl elements. In addition, this module defines semantics for attributes including begin, dur, end, repeatCount, repeatDur, beginEvent and endEvent. The SMIL Boston profile includes the functionality of the Timing and Synchronization module level 0 and 1.
begin-event and end-event are attribute value names on the r.h.s. of begin and end. Need to clarify this, and also, we are calling them beginEvent and endEvent, no hypen. ALso need to include the deprecated 'repeat'.
In the SMIL Boston Language Profile, Timing and Synchronization elements can have the following attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
par | Core, Accessibility, Timing, repeatDur, endSync, restart | (Schedule | MediaContent | ContentControl | LinkAnchor )* |
seq | Core, Accessibility, Timing, restart | (Schedule | MediaContent | ContentControl | LinkAnchor )* |
excl | Core, Accessibility, Timing, endSync, restart | (Schedule | MediaContent | ContentControl | LinkAnchor )*, |
priorityClass | Core, Accessibility, peers ( stop | pause| defer | never ) 'stop', higher ( stop | pause ) 'pause', lower ( defer | never ) 'defer' | (Schedule | MediaContent | ContentControl | LinkAnchor )* |
Missing syncBehavior attributes.
This module is mandatory in any profile incorporating SMIL modules. The Attribute collections Timing and basicTiming are defined as follows:
Timing Attributes | Attributes in Collection |
---|---|
Timing | begin (beginEvent, endEvent), dur, end (beginEvent, endEvent), repeat (deprecated), repeatCount, repeatDur |
basicTiming | begin, dur, end |
Elements of media object module have the attributes describing timing and properties of contents. For timing, the begin and end attribute can have one or multiple values among offset-value, syncbase-value, syncToPrev-value and wall clock times. Multiple values are separated by semicolons as defined in the Timing and Synchronization module.
This profile adds the par, seq, and excl elements to the content model of ref, animation, audio, img, video, text, and textstream elements of the Media Objects Module. It also adds these elements to the content model of the body element of the Structure Module and to elements to the content model of the a and area elements of the Linking Module.
The SMIL Boston Profile specify which types of events can be used. The supported events are described as Event-symbols according to the syntax introduced in the SMIL Timing and Synchronisation module.
Event | example |
---|---|
beginEvent | begin="foo.beginEvent + 2s" |
endEvent | end="foo.endEvent + 2s" |
activate | begin="foo.activate" |
repeat | end="foo.repeat" |
Semantics for these events need to be added.
These events do not bubble and are delivered to the targeted media element.
We need to work the details of the GUI event model and are considering an extensible event set (author defined).
The Transition Effects Module provides a framework for describing transitions such as fades and wipes. The Transition Effects Module defines semantics for the transition and transitionFilter elements. The SMIL Boston profile includes the functionality of the Transition Effects module levels 0 and 1.
In the SMIL Boston Language Profile, Transition Effects elements can have the following attributes and Content Model:
Elements | Attributes | Content Model |
---|---|---|
transition | Core, type, subtype, dur, startPercent, endPercent, direction, horzRepeat, vertRepeat, borderWidth, color, multiElement, childrenClip | EMPTY |
transitionFilter | Core, basicTiming, type, subtype, horzRepeat, vertRepeat, borderWidth, color, multiElement, childrenClip, percentDone | transition |
This profile adds the transition and tansitionFilter element to the content model of the layout element of the Layout Module. It adds also the transitionFilter element to the content model of the ref, animation, audio, img, video, text, textstream and brush elements elements of the Media Object Module.
The transition module adds transIn and transOut attributes to animation, audio, img, video, text, textstream and brush elements of the Media Object Module.
This section is normative
In the future, SMIL Boston Language may be extended by other W3C recommendations, or by private extensions. For these extensions, it is recommended that the following rules are obeyed:
Need to ensure that skip-content attribute is added to all elements and that value is set correctly.
It is recommended that SMIL Boston players are prepared to handle documents that contain extension that obey these two rules.
Extensions should be handled using an XML namespace mechanism defined in the XML namespace recommandation. In the rest of the section, the syntax and semantics for XML namespaces defined in the W3C recommendation [NAMESPACES] will be used for demonstration purposes only.
The following cases can occur:
<?xml:namespace ns="http://www.acme.com/new-smil" prefix="new" ?> <?xml:namespace ns="http://www.w3.org/TR/PR-smil" ?> (* URI TBD *) <smil> <body> <par> <new:a> ... </new:a> <mytags:a ... /> ... </mytags:a>
<b> ... </b> </par> </body> </smil>
This section is normative.
The SMIL Boston document type is defined as a set of SMIL Boston modules. All SMIL Boston modules are integrated according to the guidelines in the "Modularization of SMIL Boston" specification [SMIL-MOD], and defined within their respective module sections.
This section is normative.
<!-- ....................................................................... --> <!-- SMIL Boston DTD ...................................................... --> <!-- file: smilboston.dtd --> <!-- SMIL Boston DTD This is SMIL Boston. Copyright 1998-2000 World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. Permission to use, copy, modify and distribute the SMIL Boston DTD and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. The copyright holders make no representation about the suitability of the DTD for any purpose. It is provided "as is" without expressed or implied warranty. Author: Jacco van Ossenbruggen Revision: $Id: smil-boston-profile.html,v 1.2 2000/06/22 17:41:48 hugo Exp $ --> <!-- This is the driver file for the SMIL Boston DTD. Please use this formal public identifier to identify it: "-//W3C//DTD SMIL Boston//EN" --> <!ENTITY % SMIL.profile "'-//W3C//DTD SMIL Boston//EN'" > <!-- Define the Content Model --> <!ENTITY % smil-model.mod PUBLIC "-//W3C//ENTITIES SMIL-Boston Document Model 1.0//EN" "smil-model-1.mod" > <!-- Modular Framework Module ................................... --> <!ENTITY % smil-framework.module "INCLUDE" > <![%smil-framework.module;[ <!ENTITY % smil-framework.mod PUBLIC "-//W3C//ENTITIES SMIL-Boston Modular Framework 1.0//EN" "smil-framework-1.mod" > %smil-framework.mod;]]> <!-- The SMIL Boston Profile includes the following sections: C. The SMIL Animation Module D. The SMIL Content Control Module G. The SMIL Layout Module H. The SMIL Linking Module I. The SMIL Media Object Module J. The SMIL Metadata Module K. The SMIL Structure Module L. The SMIL Timing and Synchronization Module M. Integrating SMIL Timing into other XML-Based Languages P. The SMIL Transition effects Module The SMIL Streaming Media Object Module is optional. --> <!ENTITY % streamingmedia.model "IGNORE"> <![%streamingmedia.model;[ <!ENTITY % streaming-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Streaming Media Objects//EN" "SMIL-streamingmedia.mod"> %streaming-mod; ]]> <!ENTITY % anim-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Animation//EN" "SMIL-anim.mod"> <!ENTITY % control-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Content Control//EN" "SMIL-control.mod"> <!ENTITY % layout-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Layout//EN" "SMIL-layout.mod"> <!ENTITY % link-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Linking//EN" "SMIL-link.mod"> <!ENTITY % media-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Media Objects//EN" "SMIL-media.mod"> <!ENTITY % meta-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Document Metadata//EN" "SMIL-metadata.mod"> <!ENTITY % struct-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Document Structure//EN" "SMIL-struct.mod"> <!ENTITY % timing-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Timing//EN" "SMIL-timing.mod"> <!ENTITY % transition-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Transition//EN" "SMIL-transition.mod"> <!ENTITY % integrate-mod PUBLIC "-//W3C//ELEMENTS SMIL-Boston Integration//EN" "SMIL-integrate.mod"> %struct-mod; %anim-mod; %control-mod; %meta-mod; %layout-mod; %link-mod; %media-mod; %timing-mod; %transition-mod; %integrate-mod;
Should have a section fot DTD and another for Schema. We need to have DTD for this draft, XML SChema later. Either both or neither should be in appendix, but not assymetric like it is here.
Good question. In any case, I think that we will have a greater chance of success by defining the baseline formats on a pre-profile basis, rather than a separate document that specifies media that needs to be supported in order to use SMIL modules or be part of the SMIL language family.
Does the profile require support for some or all features of SMIL Boston? If it requires some, what features are not required If it requires all, is it realistic to expect that someone will really implement the full Boston Language Profile in the near future (including transitions, animation)
All required features of the SMIL Boston language should be listed here. Features in modules not included in this profile should not be mentioned. There are no "optional" features within the profile, there are only optional feature within a module that a profile can choose to include or not. And yes, we expect the vendors to implement the full language profile as we define it here.
Should we define:
See in-line for more remarks.
Editor: the in-lined comments have been left in the text as issue trackers from the previous draft. Spell in-line with a hypen.