13. SMIL 2.0言語プロファイル

13.1 要約

SMIL 2.0プロファイルは,SMIL 2.0言語に含まれるSMIL 2.0モジュール,及びこれらのモジュールがどのように統合されているかの詳細を記述する。それは,アニメーション,内容制御,レイアウト,リンク付け,メディアオブジェクト,メタ情報,構造,タイミング及び,遷移効果を含む主なSMIL 2.0機能のサポートを含む。SMIL 2.0マーク付けから直接再生をサポートするウェブクライアントのために設計された。

13.2 SMIL 2.0プロファイル

SMIL 2.0プロファイルは,マーク付け言語として定義されている。この言語の構文は,"SMIL 2.0モジュール"の中で定義されているSMILモジュールに基づいた文書型定義(DTD)又はXMLスキーマで形式的に記述されている。

SMIL 2.0プロファイル設計要件は,次とする。

  1. プロファイルが,完全に過去に遡ってSMIL 1.0と互換性をもつことを保証すること。
  2. すべてのモジュールのセマンティクスが,(内容とタイミングを含む)SMILセマンティクスとの適合性を維持することを保証すること。
  3. 他の要件と矛盾せずに適切な場合,新しいW3C勧告を採用すること。

13.3 SMIL 2.0言語プロファイルの規約定義

13.3.1 文書適合性

SMILのこの版は,SMIL 2.0名前空間のタグ及び属性に限ってSMIL 2.0文書が厳密に適合していることの定義を提供する。16.2 "SMIL 2.0言語の拡張" は,他の名前空間と共にSMIL 2.0を使用する(例えば,SMIL 2.0文書内に新しいタグを含む)ための情報を提供する。

13.3.2 SMIL 2.0言語適合性

SMIL 2.0文書の適合

SMIL 2.0のDTD(文書型定義を見よ)を含めて,この文書(同期マルチメディア統合言語(SMIL)2.0プロファイル仕様)で記述されている仕様に従うなら,SMIL 2.0文書は,適合SMIL 2.0文書とする。適合SMIL 2.0文書は,次のすべての基準に合わなくてはならない。

  1. 文書のルート要素は,smil要素でなくてはならない。
  2. 文書は,整形式XML形式でなければならない。
  3. 次のW3C勧告に適合していなければならない。
  4. SMIL 2.0文書は,次のDOCTYPE宣言を含むことができる。

    SMIL 2.0言語DOCTYPEは次のとおりとする。

    <!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN"
                          "http://www.w3.org/2001/SMIL20/SMIL20.dtd">  
    

    文書がこの宣言を含む場合,それは,妥当なXML文書でなければならない。これは,DTDの中で定義されている構文に拡張することが許されていないことを意味することに,注意しなければならない。文書が無効な場合,利用者エージェントはエラーをあげることが望ましい。

  5. 文書は,URI識別子におけるsmilルート要素上のxmlns属性をもつ要素のためにデフォルト名前空間を宣言しなければならない。
    <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
       ...
    </smil>  
    

    デフォルト名前空間宣言は,xmlns="http://www.w3.org/2001/SMIL20/Language"でなければならない。

  6. 文書は,XML DOCTYPE宣言([XML10]の中で定義される)及び1つ以上のXML名前空間宣言([XML-NS]の中で定義される)の両方を定義してよい。適合SMIL 2.0利用者エージェントによってSMIL 2.0文書として認識されるために,文書は,<smil>タグ上のデフォルト名前空間としてSMIL 2.0名前空間識別子を含まなければならない。例えば次のとおりとする。

    カスタム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>
    
  7. DOCTYPEもデフォルト名前空間宣言もどちらも宣言していない文書は,SMIL 1.0文書として処理される。SMIL 1.0名前空間によって定義されていない拡張要素又は属性は,XML名前空間機構を使用して宣言することが望ましい。

  8. この記述の時点で,DTDが名前空間適格な拡張の許可可能性を記述する方法をもたず,しかも,SMIL 2.0適合文書に対する拡張が名前空間適格でなければならないとすれば,ここで拡張文書を妥当にするために使用されるアルゴリズムは次となる。

    すべての非SMIL 2.0名前空間要素及び属性,並びに非SMIL 2.0名前空間要素を参照するすべてのxmln属性が,与えられた文書から削除され,さらに,SMIL 2.0 DTDを指す適当な<!DOCTYPE ... >文が含まれるなら,結果は妥当なXML文書とする。

  9. モジュール名前空間,モジュール集まり名前空間,SMIL 2.0言語名前空間及びSMIL 2.0名前空間全体を含めた,いくつかのSMIL 2.0名前空間が,多くのSMIL 2.0属性に付随する。同じ局所部分をもつSMIL 2.0 名前空間の属性は,SMIL 2.0言語文書構文に関しては,同じ属性と見なされる。SMIL 2.0属性を一つの要素上で複数使うことは,たとえ,それぞれが異なったSMIL 2.0名前空間で適格としても,不正とし,SMIL利用者エージェントは構文エラーとしてこれを扱う。 例えば,begin 属性が,ref要素上で2回現れるので,次の文書素片はエラーとする。
    <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のmeta要素におけるcontent属性のための特性値としてのbaseを非推奨とする。

SMIL 2.0言語プロファイルは,XML Base Recommendation [XMLBase]をサポートする。XML Baseは,すべての要素においてサポートされる,そしてURI属性を定義している個々のモジュールの規定に従ってURIの解釈に影響する。 より具体的には,適用可能なXML Baseに基づくURIはすべて,メディア要素audiovideoimganimationtextstreamtext,及びrefsrc属性だけでなく,リンク要素aarea及びanchorhref属性の解釈にも適用されなければならない。 XML Baseは,また,SMIL 2.0言語要素のすべてのlongdesc属性にも適用されなければならない。

上の規則は,SMIL 2.0のためのXML Schema規約が利用可能となったら,改訂されることが望ましい。改訂版は,XML Schema検定を考慮するだろう。

適合SMIL 2.0言語利用者エージェント

SMIL 2.0利用者エージェントは,SMIL 2.0文書を解析処理できて,出力媒体に文書内容を表示できるプログラムとする。適合SMIL 2.0利用者エージェントは,次の基準のすべてに合わなくてはならない。

  1. XML 1.0勧告[XML10]に合致するために,利用者エージェントは,SMIL 2.0文書を解析し,整形式かどうか評価しなければならない。利用者エージェントが検定利用者エージェントと述べ立てる場合,[XML10]に従って,参照されたDTDに関しても文書を検定しなければならない。
  2. 利用者エージェントが,SMIL 2.0要素及び属性によってSMIL 2.0の機能性を,並びに,これらの要素及び属性に付随するセマンティクスをサポートすると述べ立てるとき,それはこの規定と合致した方式でサポートしなければならない。
  3. 利用者エージェントは,任意の適合SMIL 2.0文書の解析及び処理に成功できなければならず,しかも,すべてのSMIL 2.0言語プロファイル機能のセマンティクスをサポートして正確に実装できなければならない。
  4. 利用者エージェントのXMLパーサは,[XML10]及び[XML-NS]で定義されたXML要素を解析及び処理できなければならない。
  5. 利用者エージェントによって認識されたsmilルート要素は,次の三つの型の一つに分類される。
    1. smilルート要素上のデフォルト名前空間は,利用者エージェントによってそのまま認識される。利用者エージェントは,認識された名前空間によって識別された版として文書を処理することが望ましい。smilルート要素上のデフォルトの名前空間によって定義されていない要素,属性,又はほかの構文はいずれも,[XML-NS]において記述された要素及び属性のための名前空間を宣言する標準XML機構を使用して,名前空間完全適格でなければならない。"skip-content"(SkipContentモジュールで定義されている)機構が,利用者エージェントによって認識されない拡張要素に適用される。デフォルト名前空間の一部分でない不適格要素は,不正であり,結果としてエラーとならなければならない。

      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>
      
    2. デフォルト名前空間宣言が,文書中のsmilルート要素に存在しない。この文書は,SMIL 1.0文書として処理される。
    3. smil ルート要素上でデフォルト名前空間宣言が認識されない。SMIL利用者エージェントは,SMILのどのような版としても文書を認識しない。そして,エラーをあげなければならない。
  6. 利用者エージェントは,次のW3C勧告をSMIL 2.0内容に関してサポートしなければならない。
  7. 利用者エージェントは,不認識名前空間からの名前空間接頭辞適格要素を無視して, skip-content属性をサポートしなければならない。skip-content属性が宣言されていない場合,真値が仮定される。
  8. 利用者エージェントは,不認識デフォルト名前空間宣言をもつ要素を無視して, skip-content属性をサポートしなければならない。skip-content属性が宣言されていない場合,真値が仮定される。
  9. 利用者エージェントは,その属性のために規定された構文に適合しない属性値にエラーをあげなければならない。
  10. SMIL 2.0 languageプロファイル文書で構文エラーを検出すると,利用者エージェントはエラーをあげなければならず,その文書を再生してはならない。
  11. 属性構文の非推奨(ハイフン付)及び新(camelCase)版が,同じ文書内で使われたときには,SMIL 2.0利用者エージェントはcamelCase版だけを考慮することが望ましい。
  12. 適合SMIL 2.0 Language利用者エージェントは,SMIL 1.0 勧告[SMIL10]で規定されているように,SMIL 1.0文書を再生しなければならない。

ウェブアクセス可能性イニシアティブは,"User Agent Accessibility Guidelines 1.0" [UAAG]を定義している。 開発者は,その文書の少なくともレベルA要件を満たしている利用者エージェントを設計することを奨励されている。 UAAG 1.0がW3C勧告になれば,SMILは,SMIL利用者エージェント適合性の一部としてUAAG 1.0のレベルA適合性を要求するようになるだろう。

13.3.3 SMIL 2.0言語プロファイル

SMIL 2.0言語プロファイルは,SMIL 2.0モジュール内で見られる時間軸に並んだマルチメディア機能をサポートする。 SMIL 2.0勧告のモジュールだけを利用する。 言語プロファイルは必須モジュールを含むので,それは,SMILホスト言語適合性言語プロファイルとなる。 この言語プロファイルは,次のSMIL 2.0モジュールを含む。

次の表に含まれる集まり名は,SMIL 2.0プロファイル語彙を定義する。
SMIL 2.0プロファイル
集まり名 集まりの要素
Animation animatesetanimateMotionanimateColor
ContentControl switchprefetch
Layout regionroot-layoutlayoutregPointtopLayout
LinkAnchor aarea (anchor)
MediaContent textimgaudiovideorefanimationtextstreambrushparam
Metainformation meta
Structure smilheadbody
Schedule parseqexcl
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)

集まりコアのidclass and title 属性は,SMIL 2.0プロファイルのすべての要素で定義される。 id 属性は,SMIL文書のすべての要素に一意なXML識別子を割り当てるために,SMIL 2.0 Languageプロファイルで使われる。 この文書では,等価だが非推奨な属性及び要素は括弧に入れる。

13.3.4 アニメーションモジュール

アニメーションモジュールは,アニメーションをタイミングフレームワークに組み入れるためのフレームワーク及び,多重アニメーションの効果を構成するための機構を提供する。 アニメーションモジュールは,時間の土台モデルのためにこのプロファイルに含まれるタイミングモジュールを利用する。 SMIL 2.0プロファイルは,BasicAnimation モジュールのアニメーション機能性を含んでいる。 BasicAnimation モジュールは,animatesetanimateMotion及びanimateColor 要素のセマンティクスを定義する。

SMIL 2.0 Languageプロファイルで,アニメーション要素は,次の属性及び内容モデルをもつことができる。
アニメーションモジュール
要素 属性 内容モデル
animate CoreI18nbasicTimingTestattributeNameattributeTypetargetElementfromtobyvaluescalcModeaccumulateadditiveskip-contentcustomTestfill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) EMPTY
set CoreI18nbasicTimingTestattributeNameattributeTypetargetElementtoskip-contentcustomTestfill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) EMPTY
animateMotion CoreI18nbasicTimingTesttargetElementoriginfromtobyvaluescalcModeaccumulateadditiveskip-contentcustomTestfill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) EMPTY
animateColor CoreI18nbasicTimingTestattributeNameattributeTypetargetElementfromtobyvaluescalcModeaccumulateadditiveskip-contentcustomTestfill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) EMPTY

このプロファイルは,animatesetanimateMotion及びanimateColor要素を,タイミング及び同期モジュールparseqexcl and priorityClass要素の内容モデルに追加する。 また,これらの要素を,構造モジュールbody要素の内容モデルに追加する。

アニメーションのターゲット要素を規定する。

SMIL 2.0プロファイルでサポートされているアニメーションターゲット要素は,レイアウトモジュールで定義されるregion要素,Linking Modulesで定義されるarea (anchor)要素,textimgaudioanimationvideoreftextstream及び,Media Objects modulesで定義されるbrush要素とする。

SMIL 2.0言語プロファイルは,アニメーション要素によって影響を受ける要素を識別するためにtargetElement属性を利用する。 BasicAnimation モジュールで勧告されているように,targetElement属性がサポートされている場合,このプロファイルは,XLink属性hreftypeactuate及びshowanimatesetanimateMotion及びanimateColor要素から排除する。

アニメーションのターゲット属性を規定する。

アニメーションのターゲット属性は,regionarea (anchor),及びmedia要素の属性の部分集合とする。 regionarea (anchor)及び media要素のアニメーション属性は,次の表にあげられる。

area (anchor)要素は,アニメーションに従属したcoords属性をもつ。 coords属性は,このプロファイルでの文字列型とみなされる。 これは,離散的非加算アニメーションだけがこの属性上でサポートされることを意味する。

メディア要素は,アニメーション(leftrighttopbottomwidthheightz-index 及びbackgroundColor)に従属した次の下位区域属性をもつ。
要素 ターゲット要素 ターゲット属性
animate region soundLevelleftrighttopbottomwidthheightz-indexbackgroundColor (background-color), regionName
area (anchor) coords(string)
textimg, audioanimationvideoreftextstream leftrighttopbottomwidthheightz-indexbackgroundColor
brush leftrighttopbottomwidthheightz-indexbackgroundColor (background-color), color
set region soundLevelleftrighttopbottomwidthheightz-indexbackgroundColorregionName
area (anchor) coords(string)
textimg,  audioanimationvideoreftextstream leftrighttopbottomwidthheightz-indexbackgroundColor
brush leftrighttopbottomwidthheightz-indexcolor
animateMotion region Animates the top and left attributes of the region.
textimg,  audioanimationvideoreftextstream Animates the top and left attributes of the sub-region associated with the media element.
animateColor region backgroundColor (background-color)
textimg,  audioanimationvideoreftextstream backgroundColor
brush color

統合定義

SMIL 2.0 Languageプロファイルは,アニメーションモジュールによって要求される統合定義集合を定義する。この定義は次のようになる。

13.3.5 内容制御モジュール

内容制御モジュールは,テスト属性集合に基づいた内容を選択するためのフレームワークを提供する。 内容制御モジュールは,switchprefetchcustomAttributes及びcustomTest要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,BasicContentControlCustomTestAttributesPrefetchControl 及びSkipContentControlモジュールの内容制御機能性を含んでいる。

SMIL 2.0言語プロファイルでは,内容制御要素は,次の属性及び内容モデルをもつことができる。
Content Control Module
要素 属性 内容モデル
switch CoreI18nTestcustomTest (Schedule | priorityClass | MediaContent | ContentControl | LinkAnchor | Animation | layout )*
prefetch CoreI18nTestTimingmediaSizemediaTimebandwidthsrcclipBegin (clip-begin), clipEnd (clip-end), skip-contentcustomTest EMPTY
customAttributes CoreI18nTestskip-content customTest+
customTest CoreI18nskip-contentdefaultState (true|false) 'false'override (visible | hidden) 'hidden'uid (URI) EMPTY

このプロファイルは,switch要素を,body及びhead要素の,Timing and Synchronization Modulesparseq及びexcl要素の内容モデルに,そして,Linking Modulesa要素の内容モデルに追加する。 このプロファイルは,customAttributes要素を,headの内容モデルに追加し,customTest要素をcustomAttributes要素の内容モデルに追加する。

内容制御機能性は,"Test"属性集合の定義に使われる。
集まり名 集まりにおける属性
Test systemBitrate (system-bitrate)systemCaptions (system-captions)systemLanguage (system-language) system-overdub-or-captionsystemRequired (system-required)systemScreenSize (system-screen-size) systemScreenDepth (system-screen-depth)systemOverdubOrSubtitlesystemAudioDescsystemOperatingSystemsystemCPUsystemComponent

テスト属性の集まりは,customTest及びcustomAttributesを除いて,SMIL 2.0プロファイルで定義されているすべての要素に追加される。 SMIL 2.0利用者エージェントは,内容制御モジュールでリストされているsystemOperatingSystem 及び systemCPU 属性の値のすべてをサポートしなければならない。 加えて,利用者エージェントは,将来の拡張として,名前空間の値を受け入れ,構文エラーを宣言しないことが望ましい。 利用者エージェントは,systemOperatingSystem 及び systemCPU属性の認識できない値に対して,偽を返すことが望ましい。 SMIL 2.0 languageプロファイルのためのXMLスキーマを参照すること。

13.3.6 レイアウトモジュ−ル

レイアウトモジュ−ルは,視覚的構成部品の空間的レイアウトのためのフレームワークを提供する。 レイアウトモジュールは,regionroot-layouttopLayoutlayout及びregPoint要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,BasicLayoutAudioLayoutMultiWindowLayout及び HierarchicalLayoutモジュールのレイアウト機能を含んでいる。

SMIL 2.0 Language Profile内で,Layout要素は,次の属性及び内容モデルをもつことができる。
レイアウトモジュール
要素 属性 内容モデル
region CoreI18nTestbackgroundColor (background-color), showBackground (always | whenActive), bottomfit (fill | hidden | meet | scroll | slice), widthheightleftrighttopsoundLevelz-indexskip-contentcustomTestregionName region*
root-layout CoreI18nTestbackgroundColor (background-color), widthheightskip-contentcustomTest EMPTY
topLayout CoreI18nTestbackgroundColor (background-color), widthheightopencloseskip-contentcustomTest region*
layout CoreI18nTesttypecustomTest (root-layout | region | topLayout | regPoint)*
regPoint CoreI18nTesttopbottomleftrightregAlign ( topLeft|topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight ), skip-contentcustomTest EMPTY

(**) SMIL 1.0のbackground-color属性は,"backgroundColor"を優先して非推奨とされている。しかし,両方ともサポートされている。

属性集まりSubregionAttributesは,次のように定義されている。
集まり名 集まりにおける属性
SubregionAttributes topleftbottomrightwidthheightz-indexfitbackgroundColor (background-color)regPointregAlign

このプロファイルは,layout要素を構造モジュールhead要素の内容モデルに追加する。 switch要素がhead要素の子であれば,それは,この要素を,内容制御モジュールswitch要素の内容モデルにも追加する。

13.3.7 リンク付けモジュール

リンク付けモジュールは,文書を,内容,文書又は文書素片に関係付けるためのフレームワークを提供する。 リンク付けモジュールは,a及びarea (anchor)要素のためのセマンティクスを定義している。 これらの要素のために定義されている属性の集合のセマンティクスも定義している。 SMIL 2.0プロファイルは,BasicLinkingLinkingAttributes及びObjectLinking モジュールのリンク付け機能を含んでいる。

a及びareaの両要素は,href属性をもち,その値は妥当なURIでなければならない。

XPointer素片識別子構文をもつURIのサポートは,要求されない。

SMIL 2.0 Language Profile内で,リンク付け要素は,次の属性及び内容モデルをもつことができる。
リンク付けモジュール
要素 属性 内容モデル
a CoreI18nbasicTimingTesthrefsourceLeveldestinationLevelsourcePlaystate (play | pause | stop) 'pause', destinationPlaystate (play | pause | stop) 'play', show (new | replace | pause) 'replace', accesskeytabindextargetexternalactuatecustomTest (Schedule | MediaContent | ContentControl | Animation )*
area (anchor) CoreI18nbasicTimingTestshapecoordshrefnohrefsourceLeveldestinationLevelsourcePlaystatedestinationPlaystateshowaccesskeytabindextargetexternalactuateshapefragmentskip-contentcustomTest (animate | set)*

このプロファイルは,area及びa要素を,タイミング及び同期モジュールparseq及び 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に設定することを優先して非推奨とされている。

13.3.8 メディアオブジェクトモジュール

メディアオブジェクトモジュールは,メディアを宣言するためのフレームワークを提供する。 メディアオブジェクトモジュールは,refanimationaudioimgvideotexttextstream及び,brush要素のセマンティクスを定義している。 SMIL 2.0プロファイルは,BasicMediaMediaClippingMediaClipMarkersMediaParamBrushMedia及び,MediaAccessibilityモジュールのメディア機能を含んでいる。

SMIL 2.0 Language Profile内で,メディア要素は次の属性及び内容モデルをもつことができる。
メディアオブジェクトモジュール
要素 属性 内容モデル
textimg,  audioanimationvideoreftextstream CoreI18nTimingTestSubregionAttributesregionfill (freeze | remove | hold | transition | auto | default), authorcopyright abstractsrctypeerasemediaRepeatsensitivitytabindexcustomTesttransIntransOut, clipBegin (clip-begin)clipEnd (clip-end)readIndex (param | area (anchor) | switch | Animation)*
brush CoreI18nTimingTestSubregionAttributesabstractregionfill (freeze | remove | hold | transition | auto | default), authorcopyrightcolorskip-contenterasesensitivity, tabindexcustomTesttransIntransOutreadIndex (param | area (anchor) | switch | Animation)*
param CoreI18nTestnamevaluevaluetype (data | ref | object), type, skip-content EMPTY

このプロファイルは,refanimationaudioimgvideotexttextstream及び brush要素を,タイミング及び同期モジュールparseq,及び excl要素の内容モデルへ追加する。 それは,これらの要素を,構造モジュールbody要素の内容モデルへも追加する。 それは,これらの要素を,リンク付けモジュールa要素の内容モデルへも追加する。

SMIL 1.0では,メディア要素の子要素としてanchor だけが許可されていた。 anchorに加えて,次の要素が,現在,SMILメディアオブジェクトの子どもとして許可されている : areaparamanimatesetanimateColoranimateMotion (a要素は含まれないことに注意すること)。 switch要素は,switch の内容が要素の同じ集合からであるという制約で許可されている。

広範囲にサポートされているMIME型

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番目のメディアオブジェクトを再生するだろう。

メディアオブジェクト統合要求

MediaParamモジュールは,erase 属性を定義し,"表示領域"の定義を言語プロファイルに従わせる。 SMIL 2.0 Language の意図する "表示領域" は,SMIL BasicLayout 区域に対応する。 erase="never"の効果は,メディアオブジェクトの活性持続時間と(SMILタイミング及び同期で定義されている)fill期間の後に,メディアオブジェクトによりターゲットとされた区域に他のメディアが再生するまで,又は同じメディアオブジェクトが再始動するまでのみ適用する。

13.3.9 メタ情報モジュール

メタ情報モジュールは,人間の利用者へ知らせるため又は自動操作を補助するために,文書を記述するためのフレームワークを提供する。 メタ情報モジュールは,meta及び要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,メタ情報モジュールのメタ情報機能を含んでいる。

SMIL 2.0 Language Profile内で,メタ情報要素は,次の属性及び内容モデルをもつことができる。
メタ情報モジュール
要素 属性 内容モデル
meta CoreI18nskip-contentcontent (CDATA), name (CDATA) EMPTY
CoreI18nskip-content EMPTY

このプロファイルは,meta要素を,構造モジュールhead要素の内容モデルに追加する。

メタデータの内容モデルは空とする。 SMIL 2.0 言語プロファイルを拡張するプロファイルは,メタデータ要素の内容モデルを拡張するのに使われるためにRDF(資源記述フレームワーク)スキーマを定義できる。 資源記述フレームワークは,W3C RDF勧告[RDFsyntax]で定義されている。

13.3.10 構造モジュール

構造モジュールは,SMIL文書を構造化するためのフレームワークを提供する。 構造モジュールは,smilhead及び body要素のためのセマンティクスを定義している。 SMIL 2.0プロファイルは,構造モジュールの構造機能を含んでいる。

SMIL 2.0 Language Profile内で,構造要素は,次の属性及び内容モデルをもつことができる。
構造モジュール
要素 属性 内容モデル
smil CoreI18nTestxmlns (head?,body?)
head CoreI18n (meta*, (customAttributes meta*)?,( meta*)?,((layout|switch),meta*)?, (transition+, meta*)?)
body CoreI18nTimingfillabstractauthorcopyright (Schedule | MediaContent | ContentControl | a )*

body要素は,タイミング木を補うために,根要素として作用する。 body要素は,seq要素の振る舞いをもっている。 body要素上のタイミングはサポートされている。 body要素のsyncbaseは,実装依存のアプリケーション開始時間及びアプリケーション終了時間とする。 body要素上のfillの効果は,プレゼンテーションの終了点とアプリケーションの終了時間の間とし,したがって,fillの効果は実装依存とする。

13.3.11 タイミング及び同期モジュール

タイミング及び同期モジュールは,タイミング構造,タイミング制御特性及び,要素間の一時的な関係を記述するためのフレームワークを提供する。 タイミング及び同期モジュールは,parseqexcl及び priorityClass要素のためのセマンティクスを定義する。 加えて,これらのモジュールは, begindurendrepeat (非推奨とする), repeatCountrepeatDursyncBehaviorsyncTolerancesyncBehaviorDefaultsyncToleranceDefaultrestartDefaultfillDefaultrestartmin及び maxを含む属性のためのセマンティクスを定義している。 SMIL 2.0プロファイルは, BasicInlineTiming, SyncbaseTiming, EventTiming, MinMaxTiming, RepeatTiming, RepeatValueTiming, WallclockTiming, MultiArcTiming, AccessKeyTiming, BasicTimeContainers, ExclTimeContainers, RestartTiming, SyncBehavior, SyncBehaviorDefault, RestartDefault 及び the FillDefault モジュールのタイミング機能を含んでいる。

SMIL 2.0 Language Profile内で,タイミング及び同期要素は,次の属性及び内容モデルをもつことができる。
タイミング及び同期モジュール
要素 属性 内容モデル
par CoreI18nTimingTestendsynccustomTestfill (freeze | remove | hold | auto | default), abstractauthorcopyrightregion (Schedule | MediaContent | ContentControl | a | Animation)*
seq CoreI18nTimingTestcustomTestfill (freeze | remove | hold | auto | default), abstractauthorcopyrightregion (Schedule | MediaContent | ContentControl | a | Animation *
excl CoreI18nTimingTestendsyncskip-contentcustomTestfill (freeze | remove | hold | auto | default ), abstractauthorcopyrightregion ((Schedule | MediaContent | ContentControl | a | Animation)* | priorityClass+)
priorityClass CoreI18nTestpeers ( stop | pause| defer | never ) 'stop', higher ( stop | pause ) 'pause', lower ( defer | never ) 'defer', skip-contentpauseDisplaycustomTestabstractauthorcopyright ((Schedule | MediaContent | ContentControl | a | Animation)*)

Timing及びbasicTimingの属性集まりは,次のように定義されている。
集まり名 集まりにおける属性
Timing begindurendrepeat (非推奨とする), repeatCountrepeatDursyncBehavior ( canSlip | locked | independent | default), syncTolerancesyncBehaviorDefault ( canSlip | locked | independent | inherit ) 'inherit', syncToleranceDefaultrestartDefault (always | whenNotActive | never), fillDefault ( remove | freeze | hold | transition | auto | inherit ), restart (always | whenNotActive | never | default), minmax
basicTiming begindurendrepeat (非推奨とする), repeatCountrepeatDurminmax

このプロファイルは,parseq及び, excl要素を,構造モジュールbody要素の内容モデルに追加し,そして,これらの要素を,リンク付けモジュールa及びarea要素の内容モデルに追加する。

メディアオブジェクトモジュールの要素は,内容のタイミング及び特性を記述するための属性をもっている。

サポートされているイベント記号

SMIL 2.0 Languageプロファイルは, begin及びend属性値の一部として使うことができるイベントの型を指定している。 サポートされているイベントは,SMILタイミング及び同期モジュールで導入された構文に従うEvent-symbolsとして記述されている。

SMIL 2.0 Language Profile内でサポートされているイベント記号は次の通りとする。
イベント
focusInEvent (In DOM Level 2: "DOMFocusIn") end="foo.focusInEvent + 3s"
focusOutEvent (In DOM Level 2: "DOMFocusOut") begin="foo.focusOutEvent"
activateEvent (In DOM Level 2: "DOMActivate") begin="foo.activateEvent"
beginEvent  begin="foo.beginEvent + 2s"
endEvent end="foo.endEvent + 2s"
repeatEvent end="foo.repeatEvent"
inBoundsEvent end="foo.inBoundsEvent"
outOfBoundsEvent begin="foo.outOfBoundsEvent + 5s"
topLayoutCloseEvent end="toplayout1.topLayoutCloseEvent"
topLayoutOpenEvent end="toplayout2.topLayoutOpenEvent+5s"

イベントセマンティクス

focusInEvent:
メディア要素がレンダリング区間でキーボード注目点を得るとき,起動される。 すなわち,それに続くすべてのキーストロークイベント情報が渡されてくるメディア要素になるときに起動される。 一度,要素がキーボード注目点をもつと,利用者動作又はDOMメゾッド呼び出しが注目点をそれから除く又は注目点を他のメディア要素に与えるまで,もしくは,レンダリング空間が削除されるまで,注目点をもち続ける。 一つのメディア要素だけが,ある時間に注目点をもつことができる。 focusInEventは,メディア要素だけに配信され,バブル動作しない。
focusOutEvent:
メディア要素が,レンダリング空間からキーボード注目点を失ったとき,起動される。 すなわち,それに続くすべてのキーストロークイベント情報が渡されてくるメディア要素であることを止めるときに起動される。 focusOutEventはメディア要素だけに配信され,バブル動作しない。
activateEvent:
メディア要素が,視覚レンダリング空間内でのマウスクリック又は,要素がキーボード注目点を得ているときの特定のキーストロークのような利用者入力によって活性化された場合に起動される。activateEventはメディア要素だけに配信され,バブル動作しない。
beginEvent:
要素が活性持続時間の再生が実際に始めたときに起動される。 要素が再生を始めない限り,このイベントは決して起こらない。 要素が繰り返し回数をもつ場合,beginEventは,最初の繰り返しのときだけ起動される。 beginEventは,メディア要素及び時間コンテナのようにタイミングをサポートしている要素に配信され,バブル動作しない。
endEvent:
要素が再生を実際に終了したときに起動される。 これは,その活性持続時間が達成された場合,又は再生している要素が止まったときとする。 次に例を示す。
<ref id="x" end="30s" src="15s.mpg" />
<ref id="y" end="10s" src="20s.mpg" />
<ref id="z" repeatCount="4" src="5s.mpg" />

この例では,活性持続時間が達成された約30sにx.endEventが起こり,活性持続時間が達成されるよりも早く連続メディアの再生が終了した約10sにy.endEventが起こり,4回目及び最後の繰り返しが完了し活性持続時間の終了点に到達した約20sにz.endEventが起こる。 endEventはメディア要素及び時間コンテナのようにタイミングをサポートしている要素に配信され,バブル動作しない。

repeatEvent:
繰り返しの要素の2回目及びその後の反復が再生を始めるとき,起動される。 しかし,repeatDurrepeatCount又はrepeat属性をもたない要素が,複数の開始時間により2回以上再生する要素は,再始動するときにrepeatEventを起動しない。 また,繰り返しをする時間コンテナの子どもは,親が繰返して子どもが再び再生を始めるときも,子ども自身のrepeatEventsは起動しない。 beginEventはメディア要素及び時間コンテナのようにタイミングをサポートしている要素に配信され,バブル動作しない。
inBoundsEvent:
次のうち一つが起こったとき起動される。

メディア要素の範囲は,それを含んでいる区域の範囲によって抑制される。 すなわち,メディア要素の範囲は,その区域の範囲を越えて拡張しない。 inBoundsEventはメディア要素だけに配信され,バブル動作しない。

ある時間に一つのオブジェクト上で活性するキーボード注目点とは違い,オブジェクトの範囲内にいるという状態は,同時に多数のオブジェクトに対して真になることができることに注意すること。 例えば,一つのオブジェクトが他のオブジェクトの上にあり,そしてカーソルが両方のオブジェクトの一番上に配置されたとき,両方のオブジェクトは,各々のoutOfBoundsEventの起動よりも最近にinBoundsEventが起動される。

outOfBoundsEvent:
次のうち一つが起こっとき起動される。

メディア要素の範囲は,それを含んでいる区域の範囲によって抑制される。 すなわち,メディア要素の範囲は,その区域の範囲を越えて拡張しない。 outOfBoundsEventはメディア要素だけに配信され,バブル動作しない。

topLayoutCloseEvent
任意の理由でtopLayoutが閉じるときに起動する。 このイベントはtopLayoutへ配信される。 追加メディアが区域内で活性になる場合にtopLayoutが再開するならば,topLayoutが再び閉じるときがあればそのときこのイベントは再び起動され,それがその後閉じる度に起動されるだろう。 このイベントは,topLayout要素だけに配信され,バブル動作しない。
topLayoutOpenEvent
topLayoutウィンドウが開くときに,起動される。 このイベントは,topLayoutへ配信される。 topLayoutが閉じ,そして追加メディアが区域内で活性になるときに再開するならば,このイベントは再び起動され,その後再開する度に起動されるだろう。 このイベントは,topLayout要素だけに配信され,バブル動作しない。

同時に起こるイベントの起動の順番

イベントが同時刻に起こる場合があるだろう。 各々のSMIL 2.0 Language実装がそれらを同じ順番で扱うことを保障するために,束縛を解くために次の順番が使われなければならない。

  1. InBoundsEvent
  2. focusInEvent (1に続くことが望ましい)
  3. OutOfBoundsEvent
  4. activateEvent (2に続くことが望ましい)
  5. focusOutEvent (3に続くことが望ましい)
  6. endEvent
  7. beginEvent (6に続かなければならない)
  8. repeatEvent
  9. topLayoutCloseEvent
  10. topLayoutOpenEvent (9に続かなければならない)

イベントは,優先順にリストされている。例えば,このリスト内のイベント#6がイベント#7と同時刻に起こる場合,#6は#7より優先して起動されなければならない。

InBoundsEvent,focusInEvent,OutOfBoundsEvent,activateEvent,及びfocusOutEventイベントはバブル動作せず,ターゲットメディア要素へ配信される。

beginEvent,endEvent及びrepeatEventはバブル動作せず,イベントが起こった時間要素へ配信される。

topLayoutOpenEvent及びtopLayoutCloseEventイベントはバブル動作せず,イベントが起こったtopLayout要素へ配信される。

サポートされたイベント集合の拡張

SMIL 2.0 Languageプロファイルは,イベントの拡張可能集合をサポートしている。 このプロファイルでサポートしているイベントとの名前衝突の可能性を解決するために,限定されたイベント名がサポートされる。 名前空間接頭辞が,イベント名を限定するために使われる。 その結果,コロンは,限定されたイベント名のために,begin及びend属性で予約されている。

<smil ... xmlns:example="http://www.example.com">
   <img id="foo" .../> 
   <audio begin="foo.example:focusInEvent".../>
    ... 
</smil>

統合定義

SMIL文書の開始時間は,利用者エージェントが文書全体の時間軸を開始する瞬間として定義されている。 SMIL文書の終了時間は,body要素の終了時間に等しいと定義されている。

13.3.12 遷移効果モジュール

遷移モジュールは,フェード及びワイプのような遷移を記述するためのフレームワークを提供する。 遷移モジュールは,transition要素のためのセマンティクスを定義する。 SMIL 2.0プロファイルは,BasicTransitions及び,TransitionModifiersモジュールの機能を含んでいる。

SMIL 2.0 Language Profile内で,遷移効果要素は,次の属性及び内容モデルをもっている。
遷移効果モジュール
要素 属性 内容モデル
transition CoreI18nTestdurtypesubtypestartProgressendProgressdirectionfadeColorhorzRepeatvertRepeatborderWidthborderColorskip-contentcustomTest EMPTY

このプロファイルは,transition要素を構造モジュールにおけるhead要素の内容モデルに追加する。 遷移効果モジュールは,transIn及びtransOut属性をメディアオブジェクトモジュールrefanimationaudioimgvideotexttextstream及びbrush要素に追加する。

遷移効果モジュールは,transition値を,fill属性のこの値がサポートされているすべての要素のfill属性に追加する。

13.4 SMIL 2.0言語の拡張

将来,SMIL 2.0言語は,他のW3C勧告又は,私的拡張によって拡張してもよい。 これらの拡張のために,次の規則に従わなければならない。

SMIL 2.0に適合性のある利用者エージェントは,これら二つの規則に従う拡張を含む文書を取り扱う用意ができている。

13.5 付録A SMIL 2.0文書型定義

SMIL 2.0言語プロファイル文書型定義は,SMIL 2.0モジュールの集合として定義されている。 すべてのSMIL 2.0モジュールは,W3Cノート"Synchronized Multimedia Modules based upon SMIL 1.0" [SMIL-MOD]でのガイドラインに従って統合され,そして,それら各々のモジュールの節で定義されている。

13.6 付録B SMIL 2.0XMLスキーマ

SMIL 2.0言語プロファイルのためのXMLスキーマを参照すること。