SMIL 2.0プロファイルは,SMIL 2.0言語に含まれるSMIL 2.0モジュール,及びこれらのモジュールがどのように統合されているかの詳細を記述する。それは,アニメーション,内容制御,レイアウト,リンク付け,メディアオブジェクト,メタ情報,構造,タイミング及び,遷移効果を含む主なSMIL 2.0機能のサポートを含む。SMIL 2.0マーク付けから直接再生をサポートするウェブクライアントのために設計された。
SMIL 2.0プロファイルは,マーク付け言語として定義されている。この言語の構文は,"SMIL 2.0モジュール"の中で定義されているSMILモジュールに基づいた文書型定義(DTD)又はXMLスキーマで形式的に記述されている。
SMIL 2.0プロファイル設計要件は,次とする。
SMILのこの版は,SMIL 2.0名前空間のタグ及び属性に限ってSMIL 2.0文書が厳密に適合していることの定義を提供する。16.2 "SMIL 2.0言語の拡張" は,他の名前空間と共にSMIL 2.0を使用する(例えば,SMIL 2.0文書内に新しいタグを含む)ための情報を提供する。
SMIL 2.0のDTD(文書型定義を見よ)を含めて,この文書(同期マルチメディア統合言語(SMIL)2.0プロファイル仕様)で記述されている仕様に従うなら,SMIL 2.0文書は,適合SMIL 2.0文書とする。適合SMIL 2.0文書は,次のすべての基準に合わなくてはならない。
SMIL 2.0言語DOCTYPEは次のとおりとする。
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN"
"http://www.w3.org/2001/SMIL20/SMIL20.dtd">
文書がこの宣言を含む場合,それは,妥当なXML文書でなければならない。これは,DTDの中で定義されている構文に拡張することが許されていないことを意味することに,注意しなければならない。文書が無効な場合,利用者エージェントはエラーをあげることが望ましい。
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> ... </smil>
デフォルト名前空間宣言は,xmlns="http://www.w3.org/2001/SMIL20/Language"でなければならない。
カスタムDTDに適合するカスタム拡張をもつSMIL 2.0文書を宣言する。
<!DOCTYPE smil SYSTEM "http://www.example.org/myveryownSMIL.dtd">
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:mysmil="http://www.example.org/2001/SMIL30/Language">
<mysmil:foo>
...
</mysmil:foo>
</smil>
すべての非SMIL 2.0名前空間要素及び属性,並びに非SMIL 2.0名前空間要素を参照するすべてのxmln属性が,与えられた文書から削除され,さらに,SMIL 2.0 DTDを指す適当な<!DOCTYPE ... >文が含まれるなら,結果は妥当なXML文書とする。
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:BasicInlineTiming="http://www.w3.org/2001/SMIL20/BasicInlineTiming">
...
<ref begin="5s" BasicInlineTiming:begin="5s"/>
...
</smil>
SMIL 2.0言語又はこれらの適合基準は,SMIL 2.0内容のどんな側面においてもサイズ制限を与えない。要素数,文字データ量,又は属性値文字数における最大値はない。
SMIL 2.0は,より一般的なXML Base URI機構のためにSMIL 1.0の要素におけるcontent属性のための特性値としてのbaseを非推奨とする。
SMIL 2.0言語プロファイルは,XML Base Recommendation [XMLBase]をサポートする。XML Baseは,すべての要素においてサポートされる,そしてURI属性を定義している個々のモジュールの規定に従ってURIの解釈に影響する。 より具体的には,適用可能なXML Baseに基づくURIはすべて,メディア要素audio,video,img,animation,textstream,text,及びrefのsrc属性だけでなく,リンク要素a,area及びanchorのhref属性の解釈にも適用されなければならない。 XML Baseは,また,SMIL 2.0言語要素のすべてのlongdesc属性にも適用されなければならない。
上の規則は,SMIL 2.0のためのXML Schema規約が利用可能となったら,改訂されることが望ましい。改訂版は,XML Schema検定を考慮するだろう。
SMIL 2.0利用者エージェントは,SMIL 2.0文書を解析処理できて,出力媒体に文書内容を表示できるプログラムとする。適合SMIL 2.0利用者エージェントは,次の基準のすべてに合わなくてはならない。
例
1) 純粋なSMIL 1.0文書
<smil xmlns="http://www.w3.org/TR/REC-smil"> ... </smil>
2) 純粋なSMIL 2.0文書
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> ... </smil>
3) excl文書を使って拡張されたSMIL 1.0文書
<smil xmlns="http://www.w3.org/TR/REC-smil"
xmlns:smil20="http://www.w3.org/2001/SMIL20/" >
<smil20:excl>
...
</smil20:excl>
</smil>
4) SMILの架空のSMIL 3.0版から'foo'要素を使って拡張されたSMIL 2.0文書
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:smil30="http://www.example.org/2001/SMIL30/" >
<smil30:foo>
...
</smil30:foo>
</smil>
ウェブアクセス可能性イニシアティブは,"User Agent Accessibility Guidelines 1.0" [UAAG]を定義している。 開発者は,その文書の少なくともレベルA要件を満たしている利用者エージェントを設計することを奨励されている。 UAAG 1.0がW3C勧告になれば,SMILは,SMIL利用者エージェント適合性の一部としてUAAG 1.0のレベルA適合性を要求するようになるだろう。
SMIL 2.0言語プロファイルは,SMIL 2.0モジュール内で見られる時間軸に並んだマルチメディア機能をサポートする。 SMIL 2.0勧告のモジュールだけを利用する。 言語プロファイルは必須モジュールを含むので,それは,SMILホスト言語適合性言語プロファイルとなる。 この言語プロファイルは,次のSMIL 2.0モジュールを含む。
次の表に含まれる集まり名は,SMIL 2.0プロファイル語彙を定義する。
| SMIL 2.0プロファイル | |
|---|---|
| 集まり名 | 集まりの要素 |
| 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, param |
| Metainformation | , |
| Structure | smil, head, body |
| Schedule | par, seq, excl |
| Transition | transition |
13.3.4〜13.3.12で,SMIL 2.0プロファイルに含まれる各モジュールで使われる要素及び属性の集合を定義する。 各要素の内容モデルを記述する。 要素の内容モデルは,直接的な子どもとして現れうる要素の記述とする。 特別な内容モデル"EMPTY"は,子どもをもたない要素を意味する。
| 集まり名 | 集まりの属性 |
|---|---|
| Core | id (ID), class (NMTOKEN), title (CDATA), alt (CDATA), longdesc (CDATA), xml:base (CDATA) |
| I18n | xml:lang (NMTOKEN) |
集まりコアのid, class and title 属性は,SMIL 2.0プロファイルのすべての要素で定義される。 id 属性は,SMIL文書のすべての要素に一意なXML識別子を割り当てるために,SMIL 2.0 Languageプロファイルで使われる。 この文書では,等価だが非推奨な属性及び要素は括弧に入れる。
アニメーションモジュールは,アニメーションをタイミングフレームワークに組み入れるためのフレームワーク及び,多重アニメーションの効果を構成するための機構を提供する。 アニメーションモジュールは,時間の土台モデルのためにこのプロファイルに含まれるタイミングモジュールを利用する。 SMIL 2.0プロファイルは,BasicAnimation モジュールのアニメーション機能性を含んでいる。 BasicAnimation モジュールは,animate, set, animateMotion及びanimateColor 要素のセマンティクスを定義する。
SMIL 2.0 Languageプロファイルで,アニメーション要素は,次の属性及び内容モデルをもつことができる。
| アニメーションモジュール | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| animate | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, 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, 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, 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, fill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) | EMPTY |
このプロファイルは,animate, set, animateMotion及びanimateColor要素を,タイミング及び同期モジュールのpar, seq, excl and priorityClass要素の内容モデルに追加する。 また,これらの要素を,構造モジュールのbody要素の内容モデルに追加する。
アニメーションのターゲット要素を規定する。
SMIL 2.0プロファイルでサポートされているアニメーションターゲット要素は,レイアウトモジュールで定義されるregion要素,Linking Modulesで定義されるarea (anchor)要素,text, img, audio, animation, video, ref, textstream及び,Media Objects modulesで定義されるbrush要素とする。
SMIL 2.0言語プロファイルは,アニメーション要素によって影響を受ける要素を識別するためにtargetElement属性を利用する。 BasicAnimation モジュールで勧告されているように,targetElement属性がサポートされている場合,このプロファイルは,XLink属性href, type, actuate及びshowをanimate, set, animateMotion及びanimateColor要素から排除する。
アニメーションのターゲット属性を規定する。
アニメーションのターゲット属性は,region, area (anchor),及びmedia要素の属性の部分集合とする。 region, area (anchor)及び media要素のアニメーション属性は,次の表にあげられる。
area (anchor)要素は,アニメーションに従属したcoords属性をもつ。 coords属性は,このプロファイルでの文字列型とみなされる。 これは,離散的非加算アニメーションだけがこの属性上でサポートされることを意味する。
メディア要素は,アニメーション(left,
right,
top,
bottom,
width,
height,
z-index 及びbackgroundColor)に従属した次の下位区域属性をもつ。
統合定義
SMIL 2.0 Languageプロファイルは,アニメーションモジュールによって要求される統合定義集合を定義する。この定義は次のようになる。
coerced-integer-value = Math.floor( interpolated-value + 0.5 )
内容制御モジュールは,テスト属性集合に基づいた内容を選択するためのフレームワークを提供する。
内容制御モジュールは,switch,
prefetch,
customAttributes及びcustomTest要素のためのセマンティクスを定義している。
SMIL 2.0プロファイルは,BasicContentControl,
CustomTestAttributes,
PrefetchControl
及びSkipContentControlモジュールの内容制御機能性を含んでいる。
SMIL 2.0言語プロファイルでは,内容制御要素は,次の属性及び内容モデルをもつことができる。
| Content Control Module | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| switch | Core, I18n, Test, customTest | (Schedule | priorityClass | MediaContent | ContentControl | LinkAnchor | Animation | layout )* |
| prefetch | Core, I18n, Test, Timing, mediaSize, mediaTime, bandwidth, src, clipBegin (clip-begin), clipEnd (clip-end), skip-content, customTest | EMPTY |
| customAttributes | Core, I18n, Test, skip-content | customTest+ |
| customTest | Core, I18n, skip-content, defaultState (true|false) 'false', override (visible | hidden) 'hidden', uid (URI) | EMPTY |
このプロファイルは,switch要素を,body及びhead要素の,Timing and Synchronization Modulesのpar, seq及びexcl要素の内容モデルに,そして,Linking Modulesのa要素の内容モデルに追加する。 このプロファイルは,customAttributes要素を,headの内容モデルに追加し,customTest要素をcustomAttributes要素の内容モデルに追加する。
内容制御機能性は,"Test"属性集合の定義に使われる。
テスト属性の集まりは,customTest及びcustomAttributesを除いて,SMIL 2.0プロファイルで定義されているすべての要素に追加される。 SMIL 2.0利用者エージェントは,内容制御モジュールでリストされている 及び systemCPU 属性の値のすべてをサポートしなければならない。 加えて,利用者エージェントは,将来の拡張として,名前空間の値を受け入れ,構文エラーを宣言しないことが望ましい。 利用者エージェントは, 及び systemCPU属性の認識できない値に対して,偽を返すことが望ましい。 SMIL 2.0 languageプロファイルのためのXMLスキーマを参照すること。
レイアウトモジュ−ルは,視覚的構成部品の空間的レイアウトのためのフレームワークを提供する。 レイアウトモジュールは,region, root-layout, topLayout, layout及びregPoint要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,BasicLayout, AudioLayout, MultiWindowLayout及び HierarchicalLayoutモジュールのレイアウト機能を含んでいる。
SMIL 2.0 Language Profile内で,Layout要素は,次の属性及び内容モデルをもつことができる。
| レイアウトモジュール | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| region | Core, I18n, Test, backgroundColor (background-color), showBackground (always | whenActive), bottom, fit (fill | hidden | meet | scroll | slice), width, height, left, right, top, soundLevel, z-index, skip-content, customTest, regionName | region* |
| root-layout | Core, I18n, Test, backgroundColor (background-color), width, height, skip-content, customTest | EMPTY |
| topLayout | Core, I18n, Test, backgroundColor (background-color), width, height, open, close, skip-content, customTest | region* |
| layout | Core, I18n, Test, type, customTest | (root-layout | region | topLayout | regPoint)* |
| regPoint | Core, I18n, Test, top, bottom, left, right, regAlign ( topLeft|topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight ), skip-content, customTest | EMPTY |
(**) SMIL 1.0のbackground-color属性は,"backgroundColor"を優先して非推奨とされている。しかし,両方ともサポートされている。
属性集まりSubregionAttributesは,次のように定義されている。
| 集まり名 | 集まりにおける属性 |
|---|---|
| SubregionAttributes | top, left, bottom, right, width, height, z-index, fit, backgroundColor (background-color), regPoint, regAlign |
このプロファイルは,layout要素を構造モジュールのhead要素の内容モデルに追加する。 switch要素がhead要素の子であれば,それは,この要素を,内容制御モジュールのswitch要素の内容モデルにも追加する。
リンク付けモジュールは,文書を,内容,文書又は文書素片に関係付けるためのフレームワークを提供する。 リンク付けモジュールは,a及びarea (anchor)要素のためのセマンティクスを定義している。 これらの要素のために定義されている属性の集合のセマンティクスも定義している。 SMIL 2.0プロファイルは,BasicLinking, LinkingAttributes及びObjectLinking モジュールのリンク付け機能を含んでいる。
a及びareaの両要素は,href属性をもち,その値は妥当なURIでなければならない。
XPointer素片識別子構文をもつURIのサポートは,要求されない。
SMIL 2.0 Language Profile内で,リンク付け要素は,次の属性及び内容モデルをもつことができる。
| リンク付けモジュール | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| a | Core, I18n, basicTiming, Test, href, sourceLevel, destinationLevel, sourcePlaystate (play | pause | stop) 'pause', destinationPlaystate (play | pause | stop) 'play', show (new | replace | pause) 'replace', accesskey, tabindex, target, external, actuate, customTest | (Schedule | MediaContent | ContentControl | Animation )* |
| 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 | (animate | set)* |
このプロファイルは,area及びa要素を,タイミング及び同期モジュールのpar,seq及び excl要素の内容モデルに追加する。 それは,これらの要素を,構造モジュールのbody要素の内容モデルにも追加する。
SMIL 2.0 言語プロファイルでは,属性actuateに設定されたonLoad値は,リンク付け要素が活性になるときにリンクが自動的に辿られることを指し示す。 SMILタイミングを含むリンク付け要素に対して,これはリンク付け要素の活性持続時間が開始することを意味する。
属性tabindexは,現在の文書において特定の時点で,タブ順番で要素の位置を指定する。 タブ順番は,キーボードのような入力装置経由で利用者によって操作されたときに,フォーカスを得る要素の順番を定義している。 時間における特定の点では,活性要素だけがタブ順番の考慮に入れられる。非活性要素は無視される。
メディア要素が,tabindex属性をもち,そして活性になる場合,メディアオブジェクトのtabindex属性値によって指定された場所でSMILタブインデックスに,順序付けられたタブインデックスが挿入される。 これは,メディアオブジェクト自身が,tabindex属性をもつ埋込まれたHTMLのように,タブインデックスをもっているということを仮定する。 これは,埋め込まれたプレゼンテーションを含むSMIL プレゼンテーション中のすべてのリンク開始点が,タブキー入力により移っていくように順序付きリスト中に場所をもつことを可能にする。
SMIL 1.0後方互換性のためにanchor 要素は有効であるが,areaを優先して非推奨とされている。 anchor要素は,areaと同じ属性をサポートしており,それは新しい SMIL 2.0属性及び[SMIL10]で定義されるSMIL 1.0属性の両方を含む。
SMIL 1.0後方互換性: show の属性値pauseは,show属性をnewに設定しsourcePlaystate属性をpauseに設定することを優先して非推奨とされている。
メディアオブジェクトモジュールは,メディアを宣言するためのフレームワークを提供する。 メディアオブジェクトモジュールは,ref, animation, audio, img, video, text, textstream及び,brush要素のセマンティクスを定義している。 SMIL 2.0プロファイルは,BasicMedia, MediaClipping, MediaClipMarkers, MediaParam, BrushMedia及び,MediaAccessibilityモジュールのメディア機能を含んでいる。
SMIL 2.0 Language Profile内で,メディア要素は次の属性及び内容モデルをもつことができる。
| メディアオブジェクトモジュール | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| text, img, audio, animation, video, ref, textstream | Core, I18n, Timing, Test, SubregionAttributes, region, fill (freeze | remove | hold | transition | auto | default), , copyright, abstract, src, type, erase, mediaRepeat, sensitivity, tabindex, customTest, transIn, transOut, clipBegin (clip-begin), clipEnd (clip-end), readIndex | (param | area (anchor) | switch | Animation)* |
| brush | Core, I18n, Timing, Test, SubregionAttributes, abstract, region, fill (freeze | remove | hold | transition | auto | default), , copyright, color, skip-content, erase, sensitivity, tabindex, customTest, transIn, transOut, readIndex | (param | area (anchor) | switch | Animation)* |
| param | Core, I18n, Test, name, value, valuetype (data | ref | object), type, skip-content | EMPTY |
SMIL 1.0では,メディア要素の子要素としてanchor だけが許可されていた。 anchorに加えて,次の要素が,現在,SMILメディアオブジェクトの子どもとして許可されている : area, param, animate, set, animateColor, animateMotion (a要素は含まれないことに注意すること)。 switch要素は,switch の内容が要素の同じ集合からであるという制約で許可されている。
W3C SYMM 作業グループのメンバは,次のMIME型がSMIL利用者エージェントによって広範囲にサポートされることを信じている。
SMIL利用者エージェントの実装者は,これらの型の各々をサポートすることを提供するように励むことが望ましい。 しかしながら,この節は規約外であり,これらのMIME型のサポートは,この仕様への適合性のための前提条件ではないことに注意すること。
制作者は,可能な限り,広範囲にサポートされたMIME型の一つを利用して,メディアオブジェクトを符号化することを推奨する。 これは,SMIL文書が,広範囲なSMIL利用者エージェントによって再生されることができることを保障するだろう。
制作者が,広範囲にサポートされた型のリストにはないMIME型を使う場合,基本フォーマットを利用して符号化された代替版を提供することが望ましい。 これは,次の例に示すようなswitch要素を利用することによって成し遂げることができる。
<switch> <audio src="non-baseline-format-object" /> <audio src="baseline-format-object" /> </switch>
この例では,基本でないフォーマットをサポートしている利用者エージェントは,最初の音声メディアオブジェクトを再生するだろう。そして,基本でないフォーマットをサポートしていない利用者エージェントは,2番目のメディアオブジェクトを再生するだろう。
メタ情報モジュールは,人間の利用者へ知らせるため又は自動操作を補助するために,文書を記述するためのフレームワークを提供する。 メタ情報モジュールは,及び要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,メタ情報モジュールのメタ情報機能を含んでいる。
SMIL 2.0 Language Profile内で,メタ情報要素は,次の属性及び内容モデルをもつことができる。
| メタ情報モジュール | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| Core, I18n, skip-content, content (CDATA), name (CDATA) | EMPTY | |
| Core, I18n, skip-content | EMPTY | |
このプロファイルは,要素を,構造モジュールのhead要素の内容モデルに追加する。
メタデータの内容モデルは空とする。 SMIL 2.0 言語プロファイルを拡張するプロファイルは,メタデータ要素の内容モデルを拡張するのに使われるためにRDF(資源記述フレームワーク)スキーマを定義できる。 資源記述フレームワークは,W3C RDF勧告[RDFsyntax]で定義されている。
構造モジュールは,SMIL文書を構造化するためのフレームワークを提供する。 構造モジュールは,smil, head及び body要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,構造モジュールの構造機能を含んでいる。
SMIL 2.0 Language Profile内で,構造要素は,次の属性及び内容モデルをもつことができる。
| 構造モジュール | ||
|---|---|---|
| 要素 | 属性 | 内容モデル |
| smil | Core, I18n, Test, xmlns | (head?,body?) |
| head | Core, I18n | (*, (customAttributes,*)?,(,*)?,((layout|switch),*)?, (transition+,*)?) |
| body | Core, I18n, Timing, fill, abstract, , copyright | (Schedule | MediaContent | ContentControl | a )* |
body要素は,タイミング木を補うために,根要素として作用する。 body要素は,seq要素の振る舞いをもっている。 body要素上のタイミングはサポートされている。 body要素のsyncbaseは,実装依存のアプリケーション開始時間及びアプリケーション終了時間とする。 body要素上のfillの効果は,プレゼンテーションの終了点とアプリケーションの終了