SMIL(同期マルチメディア統合言語)1.0 仕様書


W3C REC-smil-19980615


SMIL(同期マルチメディア統合言語)1.0 仕様書

W3C勧告 1998年6月15日

このバージョン(原文):
http://www.w3.org/TR/1998/REC-smil-19980615
最新バージョン:
http://www.w3.org/TR/REC-smil
以前のバージョン:
http://www.w3.org/TR/1998/PR-smil-19980409

著作権 © 1998 W3C (マサチューセッツ工科大学, フランス国立情報処理自動化研究所, 慶應義塾大学), すべての権利が留保されている。W3Cの 免責商標文書利用ソフトウェア使用許諾 規則が適用される。このサイトとの相互交信は、我々の公開プライバシー条項および会員プライバシー条項に準拠する。

この文書について

この文書は、W3C (the World Wide Web Consortium) 同期マルチメディアワーキンググループによって用意されているものである。ワーキンググループには、以下の個人が含まれていた。

謝辞: ワーキンググループのメンバーに加えて、以下の方々がSMILの努力にご貢献くださった。Bert Bos (W3C), Dan Connolly (W3C), Patrick Deunhouwer (Philips), Martin Dürst (W3C), Al Gilman, Håkon Lie (W3C), Chris Lilley (W3C), Curtis Reynolds (RealNetworks), Michael Riesman, Curtis Reynolds (RealNetworks), Henning Schulzrinne (Columbia University), Koga Youichirou (W3C).

編集者:Philipp Hoschka, W3C (hoschka@w3.org)

概要

この文書は、同期マルチメディア統合言語 (the Synchronized Multimedia Integration Language) のバージョン1(SMIL 1.0.「スマイル」と発音する)を規定する。SMILは、1セットの独立したマルチメディアオブジェクトを1つの同期マルチメディア表現に統合することを可能にする。SMILを使って、制作者は次のようなことができる。

  1. 表現の時間的な挙動を記述する。
  2. 表現のスクリーン上のレイアウトを記述する。
  3. ハイパーリンクをマルチメディアオブジェクトと結び付ける。

この仕様書は以下のように構築されている。1 は、仕様書のアプローチを表わす。2 は、"smil" エレメントを定義する。3 は、SMIL文書のヘッダ部分の内容にできるエレメントを定義する。4 は、SMIL文書の本体部分の内容にできるエレメントを定義する。とりわけこのセクションは、SMILで使われる時間モデル (time model) を定義する。5 は、SMIL DTDを記述する。

この文書の位置づけ

この文書は、W3Cメンバーおよびその他の利害関係者によって検討され、ディレクターによってW3C勧告として公布されているものである。この文書は安定した文書であって、参照資料として用いたり、他の文書からの規範的参照として引用してもよい。勧告の作成におけるW3Cの役割は、仕様書に注意をひき、その広範な普及を促進することである。これはウェブの機能性と相互運用性を拡張することである。

この勧告についてのコメントは 公開メーリングリスト www-smil@w3.org に送られたい。

入手可能な言語

この仕様書の英語版が唯一の規範的バージョンである。しかしながら、他の言語での翻訳を探すなら http://www.w3.org/AudioVideo/SMIL/translations を見ること。

エラッタ

この仕様書内の既知のエラーの一覧は http://www.w3.org/AudioVideo/SMIL/errata で入手可能である。

目次

1 仕様書のアプローチ

SMIL文書はXML 1.0 文書 [XML10] である。読者はXML 1.0 で定義されている概念と用語に馴染んでいることを期待される。

この仕様書は、URLにおいて定義されているが潜在的にURNを使って表現できない特定の機能には依存していない。したがって、仕様書を一貫して、より一般性を有する用語であるURI [URI] が使われる。

SMIL文書の文法は 5.2 のDTDによって定義される。DTD表記を用いて定義できないアトリビュート値の文法は、そのアトリビュート値を内容とすることができるアトリビュートを使う最初のエレメントと一緒に定義される。そうしたアトリビュート値の文法は、XML 1.0 仕様書で定義されているEBNF (the Extended Backus-Naur Form) を用いて定義される。

エレメントの定義は以下のように構築されている。まず、エレメントのアトリビュートすべてをアルファベット順に定義する。アトリビュートは以下の方法で定義されている。アトリビュートがあるエレメントによって仕様書内で初めて使われるのであれば、アトリビュートの意味が定義される。アトリビュートが既に他のエレメントで使われていれば、仕様書はそのアトリビュートが使われる最初のエレメントの中にある定義を参照する。エレメントアトリビュートの定義に続けて、その文法がDTD表記を用いて定義できないアトリビュート値の定義が置かれる。エレメント定義の最後のセクションは、エレメントの内容を規定する。

2 smil エレメント

エレメントのアトリビュート

"smil" エレメントは、以下のアトリビュートをもつことができる。

id
このアトリビュートは、文書内部でエレメントを一意的に識別する。その値はXML識別子である。

エレメントの内容

"smil" エレメントは、以下の子を内容とすることができる。

body
4.1 で定義されている。
head
3.1 で定義されている。

3 文書のヘッダ

3.1 head エレメント

"head" エレメントは、表現の時間的挙動と関係しない情報を内容とする。

エレメントのアトリビュート

"head" エレメントは、以下のアトリビュートをもつことができる。

id
2 で定義されている。

エレメントの内容

"head" エレメントは、以下の子を内容とすることができる。

layout
3.2 で定義されている。
meta
3.4 で定義されている。
switch
4.3 で定義されている。

"head" エレメントは、任意の個数の "meta" エレメントと、"layout" エレメントか "switch" エレメントかのいずれか一方とを包含してよい。

3.2 layout エレメント

"layout" エレメントは、観念的な(視覚的または聴覚的な)レンダリング面の上で文書本体の中にあるエレメントがどのように位置決定されるかを決定する。

文書が layout エレメントを1つも含んでいなければ、body エレメントの位置決定は実装依存である。

SMIL文書は、"switch" エレメント(4.3 に定義されている)内部に数個の layout エレメントを囲い込むことにより、複数の代替的なレイアウトを包含することができる。これを使って、たとえば、異なるレイアウト言語を用いて文書のレイアウトを記述することができる。

以下の例は、どのようにすればSMIL基本レイアウト言語(3.3 に定義されている)の代替としてCSS2を使うことができるかを示す。

<smil>
  <head>
    <switch>
     <layout type="text/css">
        [region="r"] { top: 20px; left: 20px }
     </layout>
     <layout>
       <region id="r" top="20" left="20" />
     </layout>
   </switch>
   </head>
   <body>
     <seq>
       <img region="r" src="http://www.w3.org/test" dur="10s" />
     </seq>
   </body>
</smil>

(この例では両方の layout 選択肢がともに同じレイアウトを帰結することに注意すること。)

エレメントのアトリビュート

id
2 で定義されている。
type
このアトリビュートは、layout エレメントでどのレイアウト言語が使われるかを指定する。もしプレーヤがその言語を理解しないならば、プレーヤは次の "</layout>" タグまでの内容すべてをスキップしなければならない。type アトリビュートのデフォルト値は "text/smil-basic-layout" である。

エレメントの内容

layout エレメントの type アトリビュートが "text/smil-basic-layout" という値をもてば、このエレメントは以下のエレメントを内容とすることができる。

region
3.3.1 で定義されている。
root-layout
3.3.2 で定義されている。

"layout" エレメントの type アトリビュートが他の値をもつならば、このエレメントはキャラクタデータを内容とする。

3.3SMIL基本レイアウト言語

この節はSMILのための基本的なレイアウト言語を定義する。SMIL基本レイアウト言語は、CSS2で定義されている視覚的レンダリングモデルと一致し、CSS2仕様書により定義されているフォーマットプロパティを再利用し、新しく "fit" アトリビュートを導入する [CSS2]。読者はCSS2で定義されている概念および用語に馴染んでいることを期待される。

SMIL基本レイアウト言語が制御するのはメディアオブジェクトエレメント(4.2.3 に定義されている)だけである。他のSMILエレメントのためにSMIL基本レイアウト言語を使うことは不法である。

SMIL基本レイアウトの型識別子は "text/smil-basic-layout" である。

固定プロパティ値

以下のスタイルシートはSMIL基本レイアウトにおいて合法なCSS2プロパティ "display"、"position" の値を定義する。これらのプロパティ値は固定される。

a           {display:block}
anchor      {display:block}
animation   {display: block;
             position: absolute}
body        {display: block}
head        {display: none}
img         {display: block;
             position: absolute}
layout      {display: none}  
meta        {display: none}
par         {display: block}
region      {display: none}
ref         {display: block;
             position: absolute}
root-layout {display: none}
seq         {display: block}
smil        {display: block}
switch      {display:block}
text        {display: block;
             position: absolute}
textstream  {display: block;
             position: absolute}
video       {display: block;
             position: absolute}

これらの定義の結果として、すべての絶対的位置指定エレメント(animation、img、ref、text、textstream、video)は、ルートエレメント (smil) のコンテントエッジによって定義される単一の包含ブロック内部に包含されることに注意すること。

デフォルト値

SMIL基本レイアウトは、レイアウト関連のアトリビュートすべてにデフォルト値を定義する。これらはCSS2における対応するプロパティの初期値と一致する。

制作者が文書中のメディアオブジェクトすべてにデフォルトのレイアウト値を選びたいならば、文書は次のような "text/smil-basic-layout" という型の空 layout エレメントを含まなければならない。

<layout type="text/smil-basic-layout"></layout>

3.3.1 region エレメント

region エレメントは、メディアオブジェクトエレメントの位置やサイズ、スケーリングを制御する。

以下の例の断片では text エレメントの位置がレンダリング窓の上側ボーダーから5ピクセルの距離に設定される。

<smil>
  <head>
    <layout>
      <region id="a" top="5" />
    </layout>
  </head>
  <body>
    <text region="a" src="text.html" dur="10s" />
  </body>
</smil>

エレメントのアトリビュート

"region" エレメントは、以下のアトリビュートをもつことができる。

background-color
このアトリビュートの使用および定義は、CSS2仕様書における "background-color" プロパティに同じである。ただし、SMIL基本レイアウトは "system colors" のサポートを要求しない。
background-color アトリビュートがない場合、背景は透明である。
fit
視覚的メディアオブジェクトの本来的な高さおよび幅が "region" エレメントの height, width アトリビュートで指定されている値と異なる場合、このアトリビュートが挙動を指定する。このアトリビュートは、CSS2プロパティの上へ1対1対応をもたないが、CSS2において擬態することができる。
このアトリビュートは、以下の値をもつことができる。
fill
コンテントがボックスのすべての辺に接するように、オブジェクトの高さおよび幅を独立に伸縮する。
hidden
  • メディアオブジェクトエレメントの本来的な高さ(幅)が "region" エレメントに定義されている高さ(幅)よりも小さい場合、オブジェクトを上(左)端から始めてレンダリングし、残った高さ(幅)は背景色で埋める。
  • メディアオブジェクトエレメントの本来的な高さ(幅)が "region" エレメントで定義されている高さ(幅)よりも大きい場合、オブジェクトを上(左)端から始めて "region" エレメントで定義されている高さ(幅)に達するまでレンダリングし、オブジェクトのうちでその高さ(幅)より下(右)にある部分は切り落とす。
meet
アスペクト比を保存しながら、内容を切り落とさずに、高さまたは幅が height または width アトリビュートで指定された値と等しくなるまで、視覚的メディアオブジェクトを伸縮する。オブジェクトの左上隅はボックスの左上の座標に位置決定され、右側または下部の空スペースは背景色で埋められる。
scroll
エレメントのレンダリングされている内容が境界を越えるとき、スクロール機構が呼び出されるべきである。
slice
アスペクト比を保存しながら、いくらかの内容が切り落とされてもよいものとして、高さまたは幅が height, width アトリビュートで指定された値と等しくなるまで、視覚的メディアオブジェクトを伸縮する。正確な状況により視覚的メディアオブジェクトの水平方向または垂直方向に切り落とされた残りの切片が表示される。あふれた幅はメディアオブジェクトの右から切り落とされる。あふれた高さはメディアオブジェクトの下から切り落とされる。

"fit" のデフォルト値は "hidden" である。

height
このアトリビュートの使用および定義は、CSS2仕様書の "height" プロパティと同じである。アトリビュート値は、CSS2で定義されている「百分率」値 ("percentage" value) でもよく、ある種類の「長さ」値 ("length" value) であってもよい。「長さ」値については、SMIL基本レイアウトは、CSS2で定義されているピクセル単位 (pixel unit) だけしかサポートしない。そのため、ピクセル値に "px" 単位修飾語 (qualifier) はつけないでおくこともできる(CSS2では "px" 単位修飾語が必須である)。
id
2 で定義されている。
位置指定可能エレメントの region アトリビュートを region の id 値に合わせて設定することにより、region エレメントが位置指定可能エレメント (positionable element) に適用される。
left
このアトリビュートの使用および定義は、CSS2仕様書の "left" プロパティと同じである。アトリビュート値には "height" アトリビュートのアトリビュート値と同じ制限がある。
デフォルト値は 0 である。
skip-content
このアトリビュートは、SMILの将来的な拡張性(付録を見ること)のために導入される。これは以下の2つの場合で解釈される。

"skip-content" アトリビュートの値が "true" であり、上記のケースのうちの1つが当てはまるならば、エレメントの内容は無視される。値が "false" ならばエレメントの内容は処理される。
"skip-content" のデフォルト値は "true" である。

title
このアトリビュートは、設定先のエレメントについてのアドバイス的情報を提示する。title アトリビュートの値は様々な方法でユーザエージェントによりレンダリングされてもよい。たとえば、ビジュアルブラウザは、title を「ツールチップ」(ポインティングデバイスがオブジェクト上で静止したときに現れる短いメッセージ)として表示することが多い。
すべての "region" エレメントが意味ある記述をともなう "title" アトリビュートをもつことが強く推奨される。オーサリングツールは、どのエレメントもこのアトリビュートなしにSMIL文書に導入できないことを確保するべきである。
top
このアトリビュートの使用および定義は、CSS2仕様書の "top" プロパティと同じである。アトリビュート値には "height" アトリビュートのアトリビュート値と同じ制約がある。
デフォルト値は 0 である。
width
このアトリビュートの使用および定義は、CSS2仕様書の "width" プロパティと同じである。アトリビュート値には "height" アトリビュートのアトリビュート値と同じ制約がある。
z-index
このアトリビュートの使用および定義は、CSS2仕様書の "z-index" プロパティと同じであるが、以下の例外がある。

エレメントの内容

"region" は空エレメントである。

3.3.2 root-layout エレメント

"root-layout" エレメントは、ルートエレメントの layout プロパティの値を決定し、これが順々に、たとえばSMIL表現がレンダリングされるウィンドウといったようなビューポートのサイズを決定する。

文書が2つ以上の "root-layout" エレメントを含んでいれば、これはエラーであり、文書は表示されるべきではない。

エレメントのアトリビュート

"root-layout" エレメントは、以下のアトリビュートをもつことができる。

background-color
3.3.1 で定義されている。
height
3.3.1
で定義されている。ルートエレメントの高さを設定する。長さ値だけが認められる。
id
2 で定義されている。
skip-content
3.3.1 で定義されている。
title
3.3.1 で定義されている。
width
3.3.1
で定義されている。ルートエレメントの幅を設定する。長さ値だけが認められる。

エレメントの内容

"root-layout" は空エレメントである。

3.4 meta エレメント

"meta" エレメントは、文書のプロパティ(例.制作者、廃棄日、キーワード一覧など)を定義し、それらのプロパティに値を割り当てるために使うことができる。各 "meta" エレメントは単一の property/value の対を指定する。

エレメントのアトリビュート

"meta" は以下のアトリビュートをもつことができる。

content
このアトリビュートは、meta エレメント内で定義されるプロパティの値を指定する。
"content" アトリビュートは "meta" エレメントに必須である。
id
2 で定義されている。
name
このアトリビュートは、meta エレメント内で定義されているプロパティを識別する。
"name" アトリビュートは "meta" エレメントに必須である。
skip-content
3.3.1 で定義されている。

プロパティのリストはオープンエンドである。この仕様書は以下のプロパティを定義する。

base
このプロパティの値は、文書内で使われているすべての相対指定URIのためのベースURIを決定する。
pics-label または PICS-Label
このプロパティの値は、PICS [PICS] で定義されているように、文書について合法的なレーティングラベルを指定する。
title
このプロパティの値は、表現の表題を内容とする。

エレメントの内容

"meta" は空エレメントである。

4 文書の本体

4.1 body エレメント

"body" エレメントは、文書の時間的な挙動およびリンクの挙動に関連する情報を包含する。このエレメントは黙示的に "seq" エレメント(4.2.2 で定義されている。"body" エレメントの時間的意味の定義については 4.2.4 を見ること)を定義する。

エレメントのアトリビュート

"body" エレメントは以下のアトリビュートをもつことができる。

id
2 で定義されている。

エレメントの内容

"body" エレメントは以下の子を内容とすることができる。

a
4.5.1 で定義されている。
animation
4.2.3 で定義されている。
audio
4.2.3 で定義されている。
img
4.2.3 で定義されている。
par
4.2.1 で定義されている。
ref
4.2.3 で定義されている。
seq
4.2.2 で定義されている。
switch
4.3 で定義されている。
text
4.2.3 で定義されている。
textstream
4.2.3 で定義されている。
video
4.2.3 で定義されている。

4.2 同期エレメント

4.2.1 par エレメント

par エレメントの子は時間的に重なり合うことができる。par 内の子のテキスト出現順は、その表現のタイミングにとって重要性を有しない。

エレメントのアトリビュート

"par" エレメントは以下のアトリビュートをもつことができる。

abstract
エレメントに含まれている内容の簡潔な記述
author
エレメントに含まれている内容の制作者の名前
begin
このアトリビュートは、エレメントの明示的開始点に時刻を指定する。その意味の定義については 4.2.4 を見ること。
このアトリビュートは以下の2タイプの値を包含できる。
delay-value
遅延値 (delay value) は、表現時間を測定するクロック値 (clock value)である。表現時間は表現の速度で進む。これはテープデッキのカウンターに示されるタイムコードのようにふるまう。ユーザのアクションやプレーヤ自身によって止めたり増減させることができる。
遅延値の意味は、そのエレメントの、同期エレメントである直近の祖先(すなわち "a" エレメントや "switch" エレメントである祖先は無視される)に依存する。
  • この祖先が "par" エレメントであれば、値は、そのエレメントの実効的開始点からの遅延を定義する(図 4.1 を見ること)。
  • この祖先が "seq" エレメント(4.2.2 で定義される)であれば、値は、同期エレメントである最初の辞書的な先輩の実効的終了点からの遅延を定義する(図 4.2 を見ること)。
event-value
エレメントは、一定のイベントが発生したときに開始する(図 4.3 を見ること)。値はエレメントイベント (element-event) である(下記の定義を見ること)。
イベントを生成するエレメントは「スコープ内」になくてはならない。「スコープ内」のエレメントのセットSは以下のように決定される。
  1. そのエレメントの、同期エレメントである直近の祖先からのすべての子を取って、Sに加える。
  2. すべての "a" エレメントおよび "switch" エレメントをSから除く。"switch" エレメントでない限りすべての "a" エレメントの子をSに加える。

結果のセットSが「スコープ内」のエレメントのセットである。


<par>
  <audio id="a" begin="6s" src="audio" />
</par>

'par' エレメントにおける遅延 D


図 4.1: "par" エレメント内で遅延値を使う
<seq>
  <audio src="audio1" />
  <audio begin="5s" src="audio2" />
</seq>

'seq' エレメントにおける遅延 D


図 4.2: "seq" エレメント内で遅延値を使う
<par>
  <audio id="a" begin="6s" ... />
  <img  begin="id(a)(4s)" ... />
</par>

イベント値を有するエレメント D


図 4.3: エレメントイベント値のある同期アトリビュート
copyright
エレメントに包含されている内容の著作権表示
dur
このアトリビュートは、エレメントの明示的な持続時間を指定する。その意味の定義については 4.2.4 を見ること。アトリビュート値には、クロック値か "idefinite" という文字列かを取ることができる。
end
このアトリビュートは、エレメントの明示的な終了点を指定する。その意味の定義については 4.2.4 を見ること。アトリビュートは "begin" アトリビュートと同じ型のアトリビュート値を包含できる。
endsync
このアトリビュートの意味の定義については 4.2.4 を見ること。アトリビュートは 以下の値をもつことができる。

"endsync" のデフォルト値は "last" である。

id
2 で定義されている。
region
このアトリビュートは、文書の layout セクション内部で定義されている概念的なレンダリング面(視覚的または聴覚的)を指定する。その値はXML識別子でなくてはならない。この id をもつレンダリング面が layout セクション内に定義されていなければ、このエレメントのフォーマットプロパティの値は、デフォルトのレイアウトによって決定される。"par" エレメントの "region" アトリビュートは、この仕様書内で定義されている、SMILのための基本レイアウト言語によって使うことができない。このアトリビュートは、他のレイアウト言語によって要求的される場合があるので、万全を期すために付加される。
repeat
このアトリビュートの意味については 4.2.4 を見ること。アトリビュート値には整数か "indefinite" という文字列かを取ることができる。デフォルト値は 1 である。
system-bitrate
4.4 で定義されている。
system-captions
4.4 で定義されている。
system-language
4.4 で定義されている。
system-overdub-or-caption
4.4 で定義されている。
system-required
4.4 で定義されている。
system-screen-size
4.4 で定義されている。
system-screen-depth
4.4 で定義されている。
title
3.3.1 で定義されている。
すべての "par" エレメントが意味ある記述を有する "title" アトリビュートをもつことが強く推奨される。オーサリングツールは、このアトリビュートなしにはSMIL文書へエレメントを導入できないことを確保するべきである。

子の間の同期についての注意

パラレルグループ内の子の間での同期の正確さは、実装依存である。再生遅延の場合の同期、すなわち、"far" エレメントがオーディオやビデオといった継続的メディア型を2つ以上含みその1つが遅延を受ける場合を例に取る。プレーヤは以下の同期挙動を示すことができる。

固い同期 (hard synchronization)
プレーヤは "par" エレメント内の子を共通のクロックに同期させる(図 4.4 a を見ること)。
柔らかい同期 (soft synchronization)
"par" エレメントの子はそれぞれ自身のクロックを有し、これは "par" エレメント内の他の子のクロックと独立して進む(図 4.4 b を見ること)。


固い同期 D

a) 固い同期:ビデオの遅延:オーディオが停止され、あるいはいくつかのビデオフレームが落とされる。正確な挙動は実装依存である。

柔らかい同期 D

b) 柔らかい同期


図 4.4: 異なる同期政策を使うプレーヤの再生スケジュールに関する遅延の効果

アトリビュート値

クロック値 (clock value)
クロック値は、以下の文法をもつ。
Clock-val             ::= Full-clock-val | Partial-clock-val | Timecount-val
Full-clock-val        ::= Hours ":" Minutes ":" Seconds ("." Fraction)?
Partial-clock-val     ::= Minutes ":" Seconds ("." Fraction)?
Timecount-val         ::= Timecount ("." Fraction)?
                          ("h" | "min" | "s" | "ms")? ; デフォルトは "s".
Hours                 ::= 2DIGIT; 任意の正の数
Minutes               ::= 2DIGIT; 00 ~ 59
Seconds               ::= 2DIGIT; 00 ~ 59
Fraction              ::= DIGIT+
Timecount             ::= DIGIT+
2DIGIT                ::= DIGIT DIGIT
DIGIT                 ::= [0-9]

以下は、合法的なクロック値の例である。


n個の数字をもつ端数は、以下の値を表現する。

x * 1/10**n

例:

00.5s = 5 * 1/10 秒 = 500 ミリ秒
00:00.005 = 5 * 1/1000 秒 = 5 ミリ秒

エレメントイベント値 (element-event value)
エレメントイベント値は、同期エレメント内の特定のイベントを指定する。
エレメントは以下の文法をもつ。
Element-event     ::= "id(" Event-source ")(" Event ")"
Event-source      ::= Id-value
Event             ::= "begin" | Clock-val | "end"
以下のイベントが定義されている。
begin
このイベントは、エレメントの実効的開始点で生成される。
使用例:begin="id(x)(begin)"
clock-val
このイベントはエレメントに関連づけられているクロックが特定の値に達したときに生成される。このクロックはエレメントの実効的開始点に 0 で開始する。"par" および "seq" エレメントについては、クロックはエレメントの実効的開始点からの表示経過時間を与える。メディアオブジェクトエレメントについては、意味は実装依存である。クロックは実効的開始点からの表現経過時間を与えてもよく、オブジェクトのメディア時間を与えてもよい。たとえばネットワークの遅延などのせいで、オブジェクトの表示が開始したときから経過した表現時間とは異なる場合があるので、推奨されるアプローチは後者である。
イベントを生成するエレメントの実効的持続時間の値を越えるクロック値を使うことは、エラーである。

使用例:begin="id(x)(45s)"

end
このイベントは、エレメントの実効的終了点に生成される。
使用例:begin="id(x)(end)"

エレメントの内容

par エレメントは以下の子を内容とすることができる。

a
4.5.1 で定義されている。
animation
4.2.3 で定義されている。
audio
4.2.3 で定義されている。
img
4.2.3 で定義されている。
par
4.2.1 で定義されている。
ref
4.2.3 で定義されている。
seq
4.2.2 で定義されている。
switch
4.3 で定義されている。
text
4.2.3 で定義されている。
textstream
4.2.3 で定義されている。
video
4.2.3 で定義されている。

これらのエレメントはすべて、par エレメントの直接の子として複数回現れてもよい。

4.2.2 seq エレメント

"seq" エレメントの子は、時間的な連なりを形成する。

アトリビュート

seq エレメントは以下のアトリビュートをもつことができる。

abstract
4.2.1 で定義されている。
author
4.2.1 で定義されている。
begin
4.2.1 で定義されている。
copyright
4.2.1 で定義されている。
dur
4.2.1 で定義されている。
end
4.2.1 で定義されている。
id
2 で定義されている。
region
4.2.1 で定義されている。
"seq" エレメントの region アトリビュートは、この仕様書内で定義されるSMIL用基本レイアウト言語によって使うことができない。このアトリビュートは他のレイアウト言語によって必要とされる場合があるため、完全性を期すために加えられる。
repeat
4.2.1 で定義されている。
system-bitrate
4.4 で定義されている。
system-captions
4.4 で定義されている。
system-language
4.4 で定義されている。
system-overdub-or-caption
4.4 で定義されている。
system-required
4.4 で定義されている。
system-screen-size
4.4 で定義されている。
system-screen-depth
4.4 で定義されている。
title
3.3.1 で定義されている。
すべての "seq" エレメントが意味ある記述を有する "title" アトリビュートをもつことが強く推奨される。オーサリングツールは、どのエレメントもこのアトリビュートなしにSMIL文書に導入できないことを確保するべきである。

エレメントの内容

seq エレメントは以下の子を内容とすることができる。

a
4.5.1 で定義されている。
animation
4.2.3 で定義されている。
audio
4.2.3 で定義されている。
img
4.2.3 で定義されている。
par
4.2.1 で定義されている。
ref
4.2.3 で定義されている。
seq
4.2.2 で定義されている。
switch
4.3 で定義されている。
text
4.2.3 で定義されている。
textstream
4.2.3 で定義されている。
video
4.2.3 で定義されている。

4.2.3 メディアオブジェクトエレメント:ref, animation, audio,img, video,text, textstream エレメント

メディアオブジェクトエレメントは、メディアオブジェクトをSMIL表現に取り込むことを可能にする。メディアオブジェクトは参照によって(URIを用いて)取り込まれる。

メディアオブジェクトには2つの型がある。本来的な持続期間のあるメディアオブジェクト(例.ビデオ、オーディオ)(「持続的メディア (continuous media) とも呼ばれる)と、本来的持続期間のないメディアオブジェクト(例.テキスト、画像)(「離散的メディア (discrete media) とも呼ばれる)とである。

アンカーとリンクは、視覚的メディアオブジェクト、すなわち、観念的な視覚的レンダリング面にレンダリングされるメディアオブジェクトに添付できる。

メディアオブジェクトを再生するとき、プレーヤはメディアオブジェクトエレメントの名前からメディアオブジェクトの正確な型を引き出してはならない。その代わりに "type" アトリビュートに含まれている型情報や、サーバやOSによってコミュニケートされる型情報のような、型についての他のソースだけに頼らなければならない。

しかしながら、制作者は、メディアオブジェクトが分類されるグループがエレメント名に反映されていることを確認するべきである。これはSMIL文書の可読性を高めるためである。メディアオブジェクトのグループについて疑問があるときは、制作者は一般的な "ref" エレメントを使うべきである。

エレメントのアトリビュート

メディアオブジェクトエレメントは以下のアトリビュートをもつことができる。

abstract
4.2.1 で定義されている。
alt
特定のメディアオブジェクトを表示できないユーザエージェントのため、このアトリビュートは代替テキストを指定する。すべてのメディアオブジェクトが意味ある記述を有する "alt" アトリビュートをもつことが強く推奨される。オーサリングツールは、どのエレメントもこのアトリビュートなしにSMIL文書に導入できないことを確保するべきである。
author
4.2.1 で定義されている。
begin
4.2.1 で定義されている。
clip-begin
clip-begin アトリビュートは、メディアオブジェクトの開始点からのオフセットとして連続的メディアオブジェクトの開始点を指定する。
clip-begin アトリビュートの値は以下の文法をもつ。
Clip-time-value   ::= Metric "=" ( Clock-val | Smpte-val )
Metric            ::= Smpte-type | "npt"
Smpte-type        ::= "smpte" | "smpte-30-drop" | "smpte-25"
Smpte-val         ::= Hours ":" Minutes ":" Seconds 
                      [ ":" Frames [ "." Subframes ]]
Hours             ::= 2DIGIT
Minutes           ::= 2DIGIT
Seconds           ::= 2DIGIT
Frames            ::= 2DIGIT
Subframes         ::= 2DIGIT

このアトリビュートの値は、メートル法の指定子 (specifier) に、文法および意味がそのメートル法の指定子に依存する時間値を続けたものからなる。以下の書式が認められる。

SMPTE タイムスタンプ
SMPTE タイムコード [SMPTE] はフレームレベルのアクセスの正確性のために使うことができる。メートル法の指定子は以下の値をもつことができる。
smpte
smpte-30-drop
これらの値は毎秒 29.97 フレームの "SMPTE 30 drop" の使用を示す。時間値の "frames" フィールドは 0 から 29 までの値を想定できる。30 と毎秒 29.97 フレームとの違いは、10分ごとは除いて1分ごとの最初2つのフレームインデックスを落とすことにより、処理される。
smpte-25
時間指定の "frames" フィールドは 0 から 24 までの値を想定できる。

時間値は、hours:minutes:seconds:frames.subframes という書式をもつ。frame 値が 0 であればこれを省略してもよい。Subframes は1フレームの100分の1で測定される。
例:
clip-begin="smpte=10:12:33:20"

通常再生時間
通常再生時間は、SMILクロック値で時間を表わす。メートル法指定子は "npt" であり、時間値の文法はSMILクロック値の文法と同一である。
例:
clip-begin="npt=123.45s"
clip-begin="npt=12:05:35.3
"
clip-end
clip-end アトリビュートは、再生されるべき連続的メディアオブジェクト(オーディオ、ビデオその他の表現といったもの)の sub-clip の終端を指定する。このアトリビュートは clip-begin アトリビュートと同じアトリビュート値を用いる。
"clip-end" アトリビュートがメディアオブジェクトの持続時間をはみ出すならば、値は無視され、クリップ終端はメディアオブジェクトの実効的終了点と等しく設定される。
copyright
4.2.1 で定義されている。
dur
4.2.1 で定義されている。
end
4.2.1 で定義されている。
fill
このアトリビュートの意味の定義については 4.2.4 を見ること。アトリビュートは "remove" および "freeze" という値をもつことができる。
id
2 で定義されている。
longdesc
このアトリビュートは、リンク(URI)を、メディアオブジェクトの長文記述 (long description) に指定する。この記述が alt アトリビュートを使って提供される短文記述 (short description) を補うべきである。メディアオブジェクトが関連づけられたアンカーを持っているとき、このアトリビュートはアンカーの内容についての情報を提供するべきである。
region
4.2.1 で定義されている。
repeat
4.2.1 で定義されている。
src
src アトリビュートの値はメディアオブジェクトのURIである。
system-bitrate
4.4 で定義されている。
system-captions
4.4 で定義されている。
system-language
4.4 で定義されている。
system-overdub-or-caption
4.4 で定義されている。
system-required
4.4 で定義されている。
system-screen-size
4.4 で定義されている。
system-screen-depth
4.4 で定義されている。
title
3.3.1 で定義されている。
すべてのメディアオブジェクトは意味ある記述を有する "title" アトリビュートをもつべきである。オーサリングツールは、どのエレメントもこのアトリビュートなしにSMIL文書に導入できないことを確保するべきである。
type
"src" アトリビュートで参照されているメディアオブジェクトのMIME型

エレメントの内容

メディアオブジェクトエレメントは以下のエレメントを包含できる。

anchor
4.5.2 で定義されている。

4.2.4SMIL時間モデル

4.2.4.1 時間モデル値

以下の議論において、「エレメント」という用語は同期エレメントだけをいう。

エレメントごとに、黙示的 (implicit)、明示的 (explicit)、要求的 (desired) あるいは実効的 (effective) な、開始点 (begin)、持続時間 (duration)、あるいは終了点 (end) を定義する。

実効的な開始点、持続時間、終了点は、文書の読者が実際に視聴するものを指定する。

黙示的な値、明示的な値、要求的な値は、実効的な値を定義するために用いられる補助的な値である。

SMIL 1.0 で定義されているエレメントのこれらの値のそれぞれを計算するための規則は、次のセクションに記述されている。

  1. SMILの各エレメントは黙示的開始点をもつ。
  2. 各エレメントには "begin" アトリビュートをエレメントに付加することにより明示的開始点を割り当てることができる。
    begin = "明示的開始点の値"

    明示的開始点がそのエレメントの黙示的開始点よりも早ければ、エラーである。

  3. SMILの各エレメントは黙示的終了点をもつ。
  4. 各エレメントには "end" アトリビュートをエレメントに付加することにより明示的終了点を割り当てることができる。
    end = "明示的終了点の値"
  5. エレメントの黙示的持続時間は、黙示的終了点と黙示的開始点との間の差である。
  6. SMILの各エレメントには "dur" アトリビュートをエレメントに付加することにより明示的持続期間を割り当てることができる。
    dur = "明示的持続時間の値"
  7. エレメントの要求的開始点は、エレメントが明示的開始点を与えられていればこれに等しく、与えられていなければ黙示的開始点に等しい。
  8. 各エレメントは要求的終了点をもつ。
  9. エレメントの要求的持続期間は、要求的終了点と要求的開始点との間の差である。
  10. 各エレメントは実効的開始点をもつ。
  11. 各エレメントは実効的終了点をもつ。(注意:子の実効的終了点はどのような場合でも、その親の実効的終了点よりも遅くなることができない。)
  12. エレメントの実効的持続時間は、実効的終了点と実効的開始点との間の差である。
4.2.4.2 SMIL 1.0 エレメントの時間モデル値の決定

このセクションは、4.2.4.1 の規則でカバーされない場合において、SMIL 1.0 の同期エレメントについて時間モデル値がどのように計算されるのかを定義する。

エレメントの黙示的開始点の決定

エレメントの黙示的終了点の決定

エレメントに合致する最初の記述が使われるべき記述である。

エレメントの要求的終了点の決定

エレメントの要求的開始点の決定

エレメントの要求的開始点は、4.2.4.1 の規則 7 によって決定される。

エレメントの実効的開始点の決定

エレメントの実効的開始点は、親エレメントの実行終了点がそれより早くない限り、エレメントの要求的開始点に等しい。親エレメントの実効的終了点の方が早い場合にはエレメントはまったく示されない。

エレメントの実効的終了点の決定

4.3 switch エレメント

switch エレメントは、制作者が、受け付け可能なエレメントをそこから1つだけ選択するべき代替的エレメントのセットを指定することを可能にする。エレメントがSMIL 1.0 エレメントであって、media-type がデコードでき、そのエレメントのテストアトリビュート(4.4 を見ること)のすべてが "true" と評価されれば、エレメントは受付可能である。

エレメントは以下のようにして選択される。プレーヤは switch エレメント内で発生する順番にエレメントを評価する。switch 内部の他のエレメントすべてを排斥して、受け付け可能な最初のエレメントが選択される。

そこで、制作者は、もっとも好ましいものから最も好ましくないものへと選択肢を並べるべきである。さらに、制作者は、<switch> 中の最後の項目として比較的フェイルセーフ的な選択肢をおいて、(明示的に求められなくとも)少なくとも switch 内部の1つの項目が選ばれるようにするべきである。実装は、すべてについてテストアトリビュートが失敗であるときに、<switch> 内のオブジェクトを勝手に取り出すべきではない。

http URI がコンテントネゴシエーションを提供し、一定の場合にはこれが "switch" エレメントを使うことの代替策となる場合があることに注意すること。

アトリビュート

switch エレメントは以下のアトリビュートをもつことができる。

id
2 で定義されている。
title
3.3.1
で定義されている。すべての switch エレメントが意味のある記述のある "title" エレメントをもつことが強く推奨される。オーサリングツールは、どのエレメントもこのアトリビュートなしでSMIL文書に導入できないことを確保することが強く推奨される。

エレメントの内容

"switch" エレメントが "body" エレメントの直接または間接の子として使われるのであれば、以下の子を包含できる。

a
4.5.1 で定義されている。
animation
4.2.3 で定義されている。
audio
4.2.3 で定義されている。
img
4.2.3 で定義されている。
par
4.2.1 で定義されている。
ref
4.2.3 で定義されている。
seq
4.2.2 で定義されている。
switch
4.3 で定義されている。
text
4.2.3 で定義されている。
textstream
4.2.3 で定義されている。
video
4.2.3 で定義されている。

これらのエレメントはすべて "switch" エレメントの子として複数回現れてもよい。

"switch" エレメントが "head" エレメント内部で使われるのであれば、以下の子を包含できる。

layout
3.2 で定義されている。
switch エレメントの内部に複数の layout エレメントが発生してもよい。

4.4 テストアトリビュート

この仕様書は、任意の同期エレメントに付加できる、システムの能力や設定をテストするテストエレメントのリストを定義する。概念的には、これらのアトリビュートは2値テストを表現する。エレメントに指定されているテストアトリビュートの1つが "false" と評価すれば、このアトリビュートをもつエレメントは無視される。

以下のリスト内部では「ユーザ設定」という概念が目立つかもしれない。ユーザ設定はたいていは設定ダイアログボックスを使って再生エンジンによって設定されるが、この仕様書は、そうした設定がどのようにしてユーザからSMILプレーヤにコミュニケートされるかについて何らの制限も設けない。

SMIL 1.0 では、以下のテストアトリビュートが定義される。

system-bitrate
このアトリビュートは、システムに利用可能なおおよその帯域を、1秒あたりのビット数で指定する。帯域の測定はアプリケーション特有である。これは、アプリケーションは、end-to-end の接続の洗練された測定方法を使っても、ユーザによって制御される単純な静的設定を使ってもよいということである。後者の場合には、これは、たとえば、ユーザのネットワークへの接続に基づいた選択をするために使うことができる。モデムユーザにとっての典型的な値は、14400、28800、56000 bit/s などであろう。利用可能なシステムビットレートが与えられた値以上であれば "true" と評価する。利用可能なシステムビットレートが与えられた値未満であれば "false" と評価する。
このアトリビュートは0より大きい整数値を想定できる。その値が実装定義の最大帯域値を超えるならば、このアトリビュートはつねに "false" と評価する。
system-captions
このアトリビュートは、制作者が、表現の音声部分と等価な追加のテキスト(この情報を欲したり必要としたりしている聴覚障碍のある人々や読み方を学んでいる人々に向けられたもの)と、広い聴衆に向けられたテキストとを区別することを可能にする。ユーザが非公開のキャプション情報を見る欲求を示すならばこのアトリビュートは "on" という値をもち、ユーザがそうした情報を見たくないことを示していれば "off" という値をもつ。値が "on" であれば "true" と評価し、"off" であれば "false" と評価する。
system-language
アトリビュート値は、[REF1766] に定義されている言語名の、コンマで区切られたリストである。

ユーザ設定で示されている言語のうちの1つが、このパラメータに与えられている言語の1つと正確に一致するか、

プレフィックスに続く最初のタグキャラクタが "-" であるようなこのパラメータの値の中に与えられている言語のうちの1つのプリフィックスに正確に一致すれば "true" と評価する。

それ以外の場合には、"false" と評価する。

注意:このプレフィックスのマッチング規則の利用は、言語タグが言語に対して、ユーザがあるタグをもつ言語を理解すればそのタグをプリフィックスとするタグをもつ言語をすべて理解できるということがつねに真であるような方法で割り当てられていることを示すものではない。

これがそうである場合、プレフィックス規則は単にプレフィックスタグの使用を許可するだけである。

実装の注意:ユーザに利用可能な言語設定の選択をするとき、実装者は、ユーザが上述の言語マッチングの詳細に詳しくないという事実を考慮に入れて、適切なガイダンスを提供するべきである。例としては、ユーザが "en-gb" を選択しているとすれば、イギリス英語が利用可能でなければ、ユーザに何らかの種類の英語の文書を配信されることを想定してよい。ユーザ設定の設定のためのユーザインターフェイスは、最善のマッチングの挙動を得るために "en" を付加することをユーザに案内するべきである。

複数の聴衆に向けられた内容については、複数の言語をリストしてもよい。たとえば "Treaty of Waitangi" の上演はオリジナルのマオリ語版と英語版とが同時に表示されるのであるが、こういったものが必要となろう。

            <audio src="foo.rm" system-language="mi, en"/>

しかしながら、system-language テストアトリビュートが置かれたオブジェクト内部に複数の言語があるというだけのことから、それが複数言語の聴衆向けであるということにはならない。"A First Lesson in Latin" といったような、明らかに英語を読み書きできる聴衆によって利用される、初心者向けの語学入門書が例になるだろう。この場合には、system-language テストアトリビュートは "en" だけを取り込むべきである。

オーサリング上の注意:"switch" の中にいくつかの代替的言語のオブジェクトが囲い込まれており、そのどれもマッチしないならば、このことがオーディオトラックなしでビデオが表示されるという状況を導く場合があることを制作者は理解するべきである。そこで、そうした switch の末尾には、どの場合にも受け入れ可能な "catch-all" 選択を取り込むことが推奨される。

system-overdub-or-caption
このアトリビュートは、オプションが利用可能なときに、ユーザが吹き替えとキャプショニングのどちらを好むかを決定する設定である。アトリビュートは "caption" および "overdub" という値をもつことができる。ユーザ設定がこのアトリビュート値にマッチすれば "true" と評価し、マッチしないならば "false" と評価する。
system-required
このアトリビュートは、拡張子の名前を指定する。拡張子が実装によってサポートされていれば "true" と評価し、それ以外では "false" と評価する。将来のバージョンのSMILでは、このアトリビュート値は、XMLネームスペース [NAMESPACES] となるであろう。
system-screen-size
アトリビュート値は以下の文法をもつ。
screen-size-val ::= screen-height"X"screen-width
これらはそれぞれピクセル値であり、0より大きい整数値でなくてはならない。SMIL再生エンジンが与えられたサイズの表現を表示できるならば "true" と評価する。SMIL再生エンジンがそれより小さい表現しか表示できないならば "false" と評価する。
system-screen-depth
このアトリビュートは、エレメントを表示するために必要なスクリーンカラーパレットの深度をビット数で指定する。値は0より大きくなければならない。典型的な値は 1, 8, 24 などである。SMIL再生エンジンが与えられた色深度で画像やビデオを表示できるならば "true" と評価する。SMIL再生エンジンが、与えられたよりも小さい色深度でしか画像やビデオを表示できないならば "false" と評価する。

1) 異なるビットレートをもつ内容からの選択

一般的なシナリオでは、実装は、エレメントの "system-bitrate" パラメータを経由して選択ができるものと思ってよい。メディアプレーヤは、「選択」(switch 内部のエレメント)のそれぞれを1つずつ評価して、メディアプレーヤとメディアサーバとの間のリンクの既知の特性によって与えられる受け付け可能なビットレートを探す。

...
<par>
  <text .../>
  <switch>
    <par system-bitrate="40000">
    ...
    </par>
    <par system-bitrate="24000">
    ...
    </par>
    <par system-bitrate="10000">
    ........
    </par>
  </switch>
</par>
...

2) 異なるビットレートをもつオーディオリソースの間の選択

switch 内部のエレメントはエレメントの任意の組み合わせであってもよい。たとえば、単に代替オーディオトラックを指定することもできる。

...
<switch>
   <audio src="joe-audio-better-quality" system-bitrate="16000" />
   <audio src="joe-audio" system-bitrate="8000" />
</switch>
...

3) 異なる言語によるオーディオリソースの間の選択

以下の例では、オーディオリソースはフランス語と英語とで利用可能である。ユーザの設定している言語に基づき、プレーヤはこれらのオーディオリソースから1つを選ぶことができる。

...
<switch>
   <audio src="joe-audio-french" system-language="fr"/>
   <audio src="joe-audio-english" system-language="en"/>
</switch>
...

4) 異なるスクリーンのために書かれた内容の間の選択

以下の例では、表現は異なる解像度とビット深度をもつスクリーンのためにデザインされた代替的部分を包含している。スクリーンの特定の特性によって、プレーヤは選択肢のうちの1つを選ぶことができる。

...
<par>
  <text .../>
  <switch>
    <par system-screen-size="1280X1024" system-screen-depth="16">
    ........
    </par>
    <par system-screen-size="640X480" system-screen-depth="32">
    ...
    </par>
    <par system-screen-size="640X480" system-screen-depth="16">
    ...
    </par>
  </switch>
</par>
...

5) キャプショントラックをストックティッカーから区別する

以下の例では、キャプションはユーザがキャプションがオンにしたい場合にだけ表示される。

...
<seq>
  <par>
    <audio      src="audio.rm"/>
    <video      src="video.rm"/>
    <textstream src="stockticker.rtx"/>
    <textstream src="closed-caps.rtx" system-captions="on"/>
  </par>
</seq>
...

6) 吹き替え、キャプショントラックの言語の選択

以下の例では、フランス語の映画が、英語、ドイツ語、オランダ語の吹き替えおよびキャプショントラックつきで利用可能である。以下のSMILセグメントはこれを表示し、ユーザが設定している選択肢をオンにする。

...
<par>
  <switch>
    <audio src="movie-aud-en.rm" system-language="en"
                system-overdub-or-caption="overdub"/>
    <audio src="movie-aud-de.rm" system-language="de"
                system-overdub-or-caption="overdub"/>
    <audio src="movie-aud-nl.rm" system-language="nl"
                system-overdub-or-caption="overdub"/>
     <!-- French for everyone else -->
     <audio src="movie-aud-fr.rm"/>
   </switch>
   <video src="movie-vid.rm"/>
   <switch>
     <textstream src="movie-caps-en.rtx" system-language="en"
                 system-overdub-or-caption="caption"/>
     <textstream src="movie-caps-de.rtx" system-language="de"
                system-overdub-or-caption="caption"/>
     <textstream src="movie-caps-nl.rtx" system-language="nl"
                 system-overdub-or-caption="caption"/>
     <!-- French captions for those that really want them -->
     <textstream src="movie-caps-fr.rtx" system-captions="on"/>
   </switch>
</par>
...

4.5 ハイパーリンクエレメント

リンクエレメントは、オブジェクト間のナビゲーション的リンクの記述を可能にする。

SMILはインラインのリンクエレメントだけを提供する。リンクは一方通行であり、片側だけを頭にしたリンクに限定される(すなわち、すべてのリンクはちょうど1つのリンク元と1つのリンク目的地とをもつ)。SMILのリンクはすべてユーザによって作動させられる。

埋め込み文書内のリンクの扱い

その統合の性質上、SMIL文書の表現が、他の(非SMIL)アプリケーションやプラグインを呼び出す場合がある。たとえば、埋めこまれたHTMLページを表示するためにSMILブラウザが、HTMLプラグインを使う場合がある。その逆に、HTMLページ内に埋めこまれたSMIL文書を表示するためにHTMLブラウザがSMILプラグインを使う場合もある。

そうした表現の中で、異なるレベルの文書によってリンクが定義されて矛盾衝突が生じる場合がある。この場合には、埋めこみオブジェクトによって定義されたリンクよりもリンクを包含している側の文書によって定義されたリンクが優先する。このことはブラウザとプラグインとの間のコミュニケーションを要求する場合があるので、SMILの実装はこの勧告に従わないことを選んでもよいことに注意すること。

埋めこみSMIL文書内でリンクが定義されていれば、リンクのトラバーサルは埋めこみSMIL文書にだけ影響を及ぼす。

リンクがSMIL文書内に埋めこまれた非SMIL文書内で定義されていれば、リンクのトラバーサルは埋めこみ文書の表現にのみ影響を及ぼすことができ、包含側のSMIL文書の表現には影響を及ぼせない。この制限は、将来のバージョンのSMILで解放される場合がある。

アドレッシング

SMILは、ネームフラグメント識別子と "#" 接続子エレメントとをサポートする。これは、SMILが現在HTMLで用いられているようなロケータ(たとえば、HTMLは "http://foo.com/some/path#anchor1" という形式のロケータを用いる)をサポートすることを意味している。

SMILフラグメントへのリンク

SMIL文書を指すロケータは、フラグメント部を含んでもよい(例.http://www.w3.org/test.smi#par1)。フラグメント部は、参照先のSMIL文書内部のエレメントの1つを識別する id 値である。フラグメント部を含んでいるリンクがフォローされれば、あたかもユーザがフラグメントによって示されているエレメントの実効的開始点まで目的文書によって表わされている表現を早送りしたかのように表現が始まることになる。

以下の特別なケースが起こりうる。

  1. リンクによってアドレスされているエレメントが "repeat" アトリビュートをもつ。
    1. "repeat" アトリビュートの値がnであれば、エレメントのn回の繰り返し全部が再生される。
    2. "repeat" アトリビュートの値が "indefinite" であれば、"indefenite" という repeat 値について定義されている規則に従い再生は終了する。
  2. リンクによってアドレスされているエレメントが、"repeat" アトリビュートを含む他のエレメントの内部にある。
    1. "repeat" の値がnであれば、リンクによってアドレスされているエレメントの最初から再生が開始し、それに続けて "repeat" アトリビュートを含んでいるエレメントがn-1回繰り返される。
    2. "repeat" アトリビュートの値が "indefenite" ならば、リンクによってアドレスされているエレメントの最初から再生が開始する。再生は、"indefenite" という repeat 値について定義されている規則に従って、終了する。
  3. リンクによってアドレスされているエレメントが "switch" エレメントの内容である: "switch" エレメントの内容であるエレメントへリンクすることは禁止される。

4.5.1 a エレメント

"a" エレメントの機能はHTML 4.0 [HTML40] における "a" エレメントの機能ととてもよく似ている。SMILは、リンクがフォローされたときにソースの時間的な挙動を制御する "show" というアトリビュートを付加する。同期目的のため、"a" エレメントは透過的である。すなわち、その子の同期に影響しないのである。"a" エレメントは href をもたなくてはならない。

アトリビュート

"a" エレメントは以下のアトリビュートをもつことができる。

id
2 で定義されている。
href
このアトリビュートはリンクの目的地のURIを内容とする。
"href" アトリビュートは "a" エレメントに必須である。
show
このアトリビュートは、リンクがフォローされたときに、リンクを含んでいるソースの文書の挙動を制御する。以下の値のうちから1つをとることができる。

"show" のデフォルト値は "replace" である。

title
3.3.1 で定義されている。
すべての "a" エレメントが意味のある記述をもった "title" アトリビュートをもつことが強く勧められる。オーサリングツールは、どのエレメントもこのアトリビュートなしにSMIL文書内に導入できないことを確保するべきである。

エレメントの内容

"a" エレメントは、以下の子を包含できる。

animation
4.2.3 で定義されている。
audio
4.2.3 で定義されている。
img
4.2.3 で定義されている。
par
4.2.1 で定義されている。
ref
4.2.3 で定義されている。
seq
4.2.2 で定義されている。
switch
4.3 で定義されている。
text
4.2.3 で定義されている。
textstream
4.2.3 で定義されている。
video
4.2.3 で定義されている。

例 1

リンクは、再生中の表現を置き換える新しい表現を開始する。

<a href="http://www.cwi.nl/somewhereelse.smi">
     <video src="rtsp://foo.com/graph.imf" region="l_window"/>
</a>

この例では、2行目はSMIL表現の合法的な任意のサブツリーへの参照によって置き換えることができる。

例 2

リンクは、再生中の表現に追加して新しい表現を開始する。

<a href="http://www.cwi.nl/somewhereelse.smi" show="new">
     <video src="rtsp://foo.com/graph.imf" region="l_window"/>
</a>

たとえば、これは、SMILプレーヤがHTMLブラウザを生み散らすことを可能にする。

例 3

リンクは、新しい表現を開始し、再生中の表現を停止する。

<a href="http://www.cwi.nl/somewhereelse.smi" show="pause">
     <video src="rtsp://foo.com/graph.imf" region="l_window"/>
</a>

例 4

以下の例は、ある表現Aの中のエレメントから他の表現Bの途中へのリンクを包含する。これは、表現Bを "next" という id をもつエレメントの実効的開始点から始めて再生することになる。

表現A :

     <a href="http://www.cwi.nl/presentationB#next">
       <video src="rtsp://foo.com/graph.imf"/>
     </a>


表現B (http://www.cwi.nl/presentation):

      ...
      <seq>
        <video src="rtsp://foo.com/graph.imf"/>
        <par>
          <video src="rtsp://foo.com/timbl.rm" region="l_window"/>
          <video id="next" src="rtsp://foo.com/v1.rm" region="r_window"/>
                 ^^^^^^^^^
          <text src="rtsp://foo.com/caption1.html" region="l_2_title"/>
          <text src="rtsp://foo.com/caption2.rtx" region="r_2_title"/>
        </par>
      </seq>
      ...

4.5.2 anchor エレメント

"a" エレメントの機能は、リンクを完全なメディアオブジェクトと関連づけることを可能にするだけである点で、制限されている。HTMLイメージマップは、リンクをオブジェクトの空間的なサブパートに関連づけることが便利であることを示している。anchor エレメントは、SMILについて同様の機能を実現する。

  1. anchor エレメントは、("a" エレメントが、リンクを完全なメディアオブジェクトに関連づけることをを可能にするだけであるのに対して)"href" アトリビュートを使ってメディアオブジェクトの空間的および時間的サブパートにリンク先を結びつけることを可能にする。
  2. anchor エレメントは、"id" アトリビュートを使ってメディアオブジェクトのサブパートをリンク先にすることも可能にする。
  3. anchor エレメントは、"coords" アトリビュートを使って1つのオブジェクトを空間的なサブパートに分割することを可能にする。
  4. anchor エレメントは、"begin" アトリビュートと "end" アトリビュートをつかって1つのオブジェクトを時間的サブパートに分割することを可能にする。begin アトリビュートや end アトリビュートの値はメディアオブジェクトの開始との相対比較である。

アトリビュート

anchor エレメントは以下のアトリビュートをもつことができる。

begin
4.2.1 で定義されている。
coords
このアトリビュートの値は、視覚的メディアオブジェクトの表示領域内部に長方形を指定する。このアトリビュートの文法および意味は、リンクが長方形に関連づけられるときのHTMLイメージマップにおける coords アトリビュートと似ている。長方形は4つの値によって指定される。最初の2つの値は長方形の左上隅の座標を指定する。次の2つの値は長方形の右下隅の座標を指定する。座標は視覚的メディアオブジェクトの左上隅に対する相対比較である(図 4.5 を見ること)。座標が百分率値で指定されていれば、これはメディアオブジェクト表示領域の合計幅または高さに対する相対比較である。
誤った coords 値をもつアトリビュートは無視される(right-x が left-x 以下または bottom-y が top-y 以下)。coords アトリビュートによって定義される長方形がメディアオブジェクトによって覆われる領域を越えれば、越えた高さや幅はメディアオブジェクトの周囲から切り落とされる。
coords アトリビュートの値は以下の文法をもつ。
coords-value ::= left-x "," top-y "," right-x "," bottom-y


coords アトリビュートの意味 D


図 4.5: "coords" アトリビュートの意味

end
4.2.1 で定義されている。
id
2 で定義されている。
show
4.5.1 で定義されている。
skip-content
3.3.1 で定義されている。
title
3.3.1 で定義されている。
すべての anchor エレメントが意味のある記述をもつ "title" エレメントをもつことが強く推奨される。オーサリングツールは、どのエレメントもこのアトリビュートなしにSMIL文書に導入できないことを確保するべきである。

1) リンクを空間的サブパートに関連づける

以下の例では、ビデオクリップによって占められるスクリーン空間が、2つの部分に分割されている。これらの部分のそれぞれに異なるリンクが関連づけられている。

<video src="http://www.w3.org/CoolStuff">
  <anchor href="http://www.w3.org/AudioVideo" coords="0%,0%,50%,50%"/>
  <anchor href="http://www.w3.org/Style"      coords="50%,50%,100%,100%"/>
</video>

2) リンクを時間的サブパートに関連づける

以下の例では、ビデオクリップの持続時間が2つのサブインターバルに分割されている。これらのサブインターバルのそれぞれに異なるリンクが関連づけられている。

<video src="http://www.w3.org/CoolStuff">
  <anchor href="http://www.w3.org/AudioVideo" begin="0s" end="5s"/>
  <anchor href="http://www.w3.org/Style"      begin="5s" end="10s"/>
</video>

3) オブジェクトのサブパートへ飛ぶ

以下の例は、ある表現Aのエレメントから他の表現Bに包含されているビデオオブジェクトの中間へのリンクを包含している。これはビデオの5秒目から始まる表現Bを再生することになる。(すなわち、表現は、あたかもユーザが "CoolStuff" というビデオのなかの指されたフラグメントが開始する点へ表現全体を早送りしたかのように開始する。)

表現A:

<a href="http://www.cwi.nl/mm/presentationB#tim">
   <video id="graph" src="rtsp://foo.com/graph.imf" region="l_window"/>
</a>


表現B:

<video src="http://www.w3.org/CoolStuff">
  <anchor id="joe" begin="0s" end="5s"/>
  <anchor id="tim" begin="5s" end="10s"/>
</video>

4) リンクの異なる使用法を組み合わせる

以下の例は、結び付けられたリンクの異なる使用法がどのようにして組み合わせて使うことができるかを示している。

表現A:

<a href="http://www.cwi.nl/mm/presentationB#tim">
  <video id="graph" src="rtsp://foo.com/graph.imf" region="l_window"/>
</a>


表現B:

<video src="http://www.w3.org/CoolStuff">
  <anchor id="joe" begin="0s" end="5s" coords="0%,0%,50%,50%"
          href="http://www.w3.org/"/>
  <anchor id="tim" begin="5s" end="10s" coords="0%,0%,50%,50%"
          href="http://www.w3.org/Tim"/>
</video>

5 SMIL DTD

5.1 XMLとの関係

SMIL 1.0 文書は、オプション的に文書型宣言を含んでよい。これは文書が利用する文書型定義(DTD)を指名するものである。SMILについては文書型宣言は以下のように見えるべきである。(二重引用符は単引用符で置き換えることができる)。

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 1.0//EN"
               "http://www.w3.org/TR/REC-smil/SMIL10.dtd">

XML 1.0 仕様書は、<!DOCTYPE> エレメントを使って、たとえば新しいエンティティ定義セットを付加するなどのようにDTDを拡張する方法を提供している。これをサポートしないSMILプレーヤも多いであろうから、制作者はSMILについてこの機能を用いてはならない。

以下はSMILにおいては違法である。

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 1.0//EN"
               "http://www.w3.org/TR/REC-smil/SMIL10.dtd" [
<!ENTITY % AcmeCorpSymbols PUBLIC
     "-//Acme Corp//ENTITIES Corporate Symbols//EN"
     "http://www.acme.com/corp_symbols.xml"
>
%AcmeCorpSymbols;
]>

5.2 DTD

<!--

    これはSMIL 1.0 のためのXML文書型定義(DTD)である。

    日付: 1998/06/15 08:56:30

    作成者: 
        Jacco van Ossenbruggen <jrvosse@cwi.nl> 
        Sjoerd Mullender       <sjoerd@cwi.nl>
        
    SMILについての踏み込んだ情報は

          http://www.w3.org/AudioVideo/

    で入手可能である。

-->

<!-- 一般的に使われるエンティティ -->
<!ENTITY % id-attr "id ID #IMPLIED">
<!ENTITY % title-attr "title CDATA #IMPLIED">
<!ENTITY % skip-attr "skip-content (true|false) 'true'">
<!ENTITY % desc-attr "
        %title-attr;
        abstract        CDATA   #IMPLIED
        author          CDATA   #IMPLIED
        copyright       CDATA   #IMPLIED
">

<!--=================== SMIL文書 =====================================-->
<!--
     ルートエレメント SMIL は、その他すべてのエレメントを内包する。
-->
<!ELEMENT smil (head?,body?)>
<!ATTLIST smil
        %id-attr;
>

<!--=================== 文書ヘッダ ========================================-->
<!ENTITY % layout-section "layout|switch">

<!ENTITY % head-element "(meta*,((%layout-section;), meta*))?">

<!ELEMENT head %head-element;>
<!ATTLIST head %id-attr;>


<!--=================== layout エレメント =================================-->
<!--
     layout は、SMIL基本レイアウトによって定義された region エレメント
     および root-layout エレメント、または外部レイアウト機構によって定義さ
     れたその他のエレメントを内包する。
-->
<!ELEMENT layout ANY>
<!ATTLIST layout
        %id-attr;
        type CDATA      "text/smil-basic-layout"
>


<!--=================== region エレメント =================================-->
<!ENTITY % viewport-attrs "
        height              CDATA    #IMPLIED
        width               CDATA    #IMPLIED
        background-color    CDATA    #IMPLIED
">

<!ELEMENT region EMPTY>
<!ATTLIST region
        %id-attr;
        %title-attr;
        %viewport-attrs;
        left                CDATA    "0"
        top                 CDATA    "0"
        z-index             CDATA    "0"
        fit                 (hidden|fill|meet|scroll|slice)    "hidden"
        %skip-attr;
>

<!--=================== root-layout エレメント ============================-->
<!ELEMENT root-layout EMPTY>
<!ATTLIST root-layout
        %id-attr;
        %title-attr;
        %viewport-attrs;
        %skip-attr;
>


<!--=================== meta エレメント ===================================-->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
        name    NMTOKEN #REQUIRED
        content CDATA   #REQUIRED
        %skip-attr;
>

<!--=================== 文書本体 ==========================================-->
<!ENTITY % media-object "audio|video|text|img|animation|textstream|ref">
<!ENTITY % schedule "par|seq|(%media-object;)">
<!ENTITY % inline-link "a">
<!ENTITY % assoc-link "anchor">
<!ENTITY % link "%inline-link;">
<!ENTITY % container-content "(%schedule;)|switch|(%link;)">
<!ENTITY % body-content "(%container-content;)">

<!ELEMENT body (%body-content;)*>
<!ATTLIST body %id-attr;>

<!--=================== 同期アトリビュート ================================-->
<!ENTITY % sync-attributes "
        begin   CDATA   #IMPLIED
        end     CDATA   #IMPLIED
">

<!--=================== switch パラメータアトリビュート ===================-->
<!ENTITY % system-attribute "
        system-bitrate             CDATA                #IMPLIED
        system-language            CDATA                #IMPLIED
        system-required            NMTOKEN              #IMPLIED
        system-screen-size         CDATA                #IMPLIED
        system-screen-depth        CDATA                #IMPLIED
        system-captions            (on|off)             #IMPLIED
        system-overdub-or-caption  (caption|overdub)    #IMPLIED
">

<!--=================== fill アトリビュート ===============================-->
<!ENTITY % fill-attribute "
        fill    (remove|freeze)    'remove'
">


<!--=================== パラレルエレメント ================================-->
<!ENTITY % par-content "%container-content;">
<!ELEMENT par    (%par-content;)*>
<!ATTLIST par
        %id-attr;
        %desc-attr;
        endsync CDATA           "last"
        dur     CDATA           #IMPLIED
        repeat  CDATA           "1"
        region  IDREF           #IMPLIED
        %sync-attributes;
        %system-attribute;
>

<!--=================== シーケンシャルエレメント ==========================-->
<!ENTITY % seq-content "%container-content;">
<!ELEMENT seq    (%seq-content;)*>
<!ATTLIST seq
        %id-attr;
        %desc-attr;
        dur     CDATA           #IMPLIED
        repeat  CDATA           "1"
        region  IDREF           #IMPLIED
        %sync-attributes;
        %system-attribute;
>

<!--=================== スイッチエレメント ================================-->
<!-- head の中では、switch が内包してよいのはレイアウトエレメントだけで
     あり、body の中ではコンテナエレメントだけである。しかしながら、この制
     約はDTDでは表現できないので、我々は両方とも許容する。
-->
<!ENTITY % switch-content "layout|(%container-content;)">
<!ELEMENT switch (%switch-content;)*>
<!ATTLIST switch
        %id-attr;
        %title-attr;
>

<!--=================== メディアオブジェクトエレメント ====================-->
<!-- SMILは構造を定義するだけである。実際のメディアデータは、メディ
     アオブジェクトの src アトリビュートによって参照される。
-->

<!-- さらに、SMIL仕様書で定義されているように、それらは以下のアトリ
     ビュートを有する。
-->
<!ENTITY % mo-attributes "
        %id-attr;
        %desc-attr;
        region     IDREF           #IMPLIED
        alt        CDATA           #IMPLIED
        longdesc   CDATA           #IMPLIED
        src        CDATA           #IMPLIED
        type       CDATA           #IMPLIED
        dur        CDATA           #IMPLIED
        repeat     CDATA           '1'
        %fill-attribute;
        %sync-attributes;
        %system-attribute;
">

<!--
     ほとんどの情報はアトリビュートの中にあり、メディアオブジェクトは空であ
     るか結び付けられたリンクエレメントを含んでいるかである。
-->
<!ENTITY % mo-content "(%assoc-link;)*">
<!ENTITY % clip-attrs "
        clip-begin      CDATA   #IMPLIED
        clip-end        CDATA   #IMPLIED
">

<!ELEMENT ref           %mo-content;>
<!ELEMENT audio         %mo-content;>
<!ELEMENT img           %mo-content;>
<!ELEMENT video         %mo-content;>
<!ELEMENT text          %mo-content;>
<!ELEMENT textstream    %mo-content;>
<!ELEMENT animation     %mo-content;>

<!ATTLIST ref           %mo-attributes; %clip-attrs;>
<!ATTLIST audio         %mo-attributes; %clip-attrs;>
<!ATTLIST video         %mo-attributes; %clip-attrs;>
<!ATTLIST animation     %mo-attributes; %clip-attrs;>
<!ATTLIST textstream    %mo-attributes; %clip-attrs;>
<!ATTLIST text          %mo-attributes;>
<!ATTLIST img           %mo-attributes;>

<!--=================== リンクエレメント ==================================-->

<!ENTITY % smil-link-attributes "
        %id-attr;
        %title-attr;
        href            CDATA                   #REQUIRED
        show            (replace|new|pause)     'replace'
">


<!--=================== インラインリンクエレメント ========================-->
<!ELEMENT a (%schedule;|switch)*>
<!ATTLIST a
        %smil-link-attributes;
>


<!--=================== 結び付けられたリンクエレメント ====================-->
<!ELEMENT anchor EMPTY>
<!ATTLIST anchor
        %skip-attr;
        %smil-link-attributes;
        %sync-attributes;
        coords          CDATA                   #IMPLIED
>

参照資料

[CSS2]
"Cascading Style Sheets, level 2", B. Bos, H. Lie, C. Lilley, I. Jacobs, 12 May 1998.
http://www.w3.org/TR/REC-CSS2/ で入手可能である。
[HTML40]
"HTML 4.0 Specification", D. Raggett, A. Le Hors, I. Jacobs, 24 April 1998.
http://www.w3.org/TR/REC-html40/ で入手可能である。
[ISO/IEC 10646]
ISO (International Organization for Standardization). ISO/IEC 10646-1993 (E). Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane. [Geneva]:International Organization for Standardization, 1993 (plus amendments AM 1 through AM 7).
[NAMESPACES]
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 27 March 1998
W3Cワーキングドラフト(作業草稿). http://www.w3.org/TR/WD-xml-names で入手可能である。
[PICS]
"PICS 1.1 Label Distribution -- Label Syntax and Communication Protocols", 31 October 1996, T. Krauskopf, J. Miller, P. Resnick, W. Trees
http://www.w3.org/TR/REC-PICS-labels-961031 で入手可能である。
[RFC1738]
"Uniform Resource Locators", T. Berners-Lee, L. Masinter, and M. McCahill, December 1994.
ftp://ftp.isi.edu/in-notes/rfc1738.txt で入手可能である。
[RFC1766]
"Tags for the Identification of Languages", H. Alvestrand, March 1995.
ftp://ftp.isi.edu/in-notes/rfc1766.txt で入手可能である。
[RFC1808]
"Relative Uniform Resource Locators", R. Fielding, June 1995.
ftp://ftp.isi.edu/in-notes/rfc1808.txt で入手可能である。
[RFC2045]
"Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", N. Freed and N. Borenstein, November 1996.
ftp://ftp.isi.edu/in-notes/rfc2045.txt で入手可能である。このRFCは、RFC1521、RFC1522、RFC1590 を改廃することに注意すること。
[SMPTE]
"Time and Control Codes for 24, 25 or 30 Frame-Per-Second Motion-Picture Systems - RP 136-1995".  Society of Motion Picture & Television Engineers.
[URI]
"Uniform Resource Identifiers (URI): Generic Syntax and Semantics", T. Berners-Lee, R. Fielding, L. Masinter, 4 March 1998.
http://www.ics.uci.edu/pub/ietf/uri/draft-fielding-uri-syntax-02.txt で入手可能である。これは、[RFC1738] および [RFC1808] を更新することと期待される、進行中の作業である。
[XML10]
"Extensible Markup Language (XML) 1.0", T. Bray, J. Paoli, C.M. Sperberg-McQueen, editors, 10 February 1998.
http://www.w3.org/TR/REC-xml/ で入手可能である。

付録

SMIL 1.0 の拡張

(非規範的)

将来、SMIL 1.0 は、他のW3C勧告によって、あるいは私的な拡張によって拡張されてもよい。

これらの拡張については、以下の規則に従うことが推奨される。

SMIL 1.0 プレーヤは、これら2つの規則に従う拡張を含む文書を扱うように準備されることが推奨される。

いったんそうしたXMLネームスペース機構がW3C勧告となれば、拡張はこれを使って扱われるべきである。セクションの残りでは、W3Cノート [NAMESPACE} において定義されているXMLネームスペースの文法および意味は、デモンストレーション目的でのみ用いられるべきである。

以下のケースが発生しうる。

  1. 文書が、空プレフィックスを定義するSMIL 1.0 仕様書のためのネームスペース宣言を含む。この場合には、非SMIL 1.0 エレメントおよびアトリビュートは、それらがXMLネームスペースを用いて宣言されている場合に限り、文書内で許容される。この文書はSMIL 1.0 を表わす文書型宣言を含んではならない。もし含んでいれば不当である。
    以下の例において、"new:a" というエレメントは合法的な拡張である。"mytags:a" や "b" というエレメントはXMLネームスペースを用いて先見されていないので文法エラーである。
    <?xml:namespace ns="http://www.acme.com/new-smil" prefix="new" ?>
    <?xml:namespace ns="http://www.w3.org/TR/PR-smil" ?>
    <smil>
      <body>
        <par>
          <new:a>
          ...
          </new:a>
          <mytags:a ... />
            ...
          </mytags:a>
    <b> ... </b> </par> </body> </smil>
  2. 文書が、文書型宣言を含まなかったり、1.0 より高いSMILバージョンを表わす文書型宣言を含み、あるいは 1.0 より高いバージョンをもつSMIL仕様書のためのネームスペース宣言を含む。SMIL 1.0 プレーヤがそうしたネームスペース宣言を認識できるよう、SMILの将来バージョンのURIは http://www.w3.org/TR/REC-smil で始まり、たとえばバージョン番号などであるような、より多くのキャラクタが続けられることが推奨される。
    この場合、SMIL 1.0 プレーヤは、1.0 より高いバージョン番号をもつSMIL文書を処理していると想定するべきである。
    以下の場合が発生しうる。
    未知のエレメント
    未知のエレメントは、無視される。
    未知のエレメントはSMIL 1.0 エレメントからなる内容を含む場合がある。そうした内容が無視されるか処理されるかは "skip-content" アトリビュートの値に依存する。アトリビュートが "true" に設定されているか、アトリビュートが存在しなければ、内容は処理されない。"false" に設定されていれば、内容は処理される。
    "empty" と宣言されたエレメントの内容
    将来のバージョンのSMILは、SMIL 1.0 では "empty" として宣言されているエレメントについて内容を許容するかも知れない。
    この内容が無視されるか否かは、元の空エレメントの "skip-content" の値に依存する。アトリビュートが "true" に設定されていれば、内容は処理されない。"false" に設定されていれば、内容は処理される。
    未知のアトリビュート
    未知のアトリビュートは、無視される。
    未知のアトリビュート値
    未知のアトリビュート値をもつアトリビュートは、無視される。
  3. 文書が、SMIL 1.0 を表わす文書型宣言を含む。この場合、たとえXMLネームスペースを用いて宣言されていても、文書はひとつも非SMIL 1.0 エレメントを含んではならない。これは、そうした拡張は文書を不当にレンダリングすることになるからである。

拡張としてのSMIL 1.0 の使用

SMILエレメントやアトリビュートを他のXMLベースの文書に取り込むためにXMLネームスペース機構が使われるときは、以下のネームスペース識別子を使うことが推奨される。http://www.w3.org/TR/REC-smil


どら猫本舗 (webmaster@doraneko.org)