6. SMIL 2.0リンク付けモジュール

6.1 導入

SMIL 2.0 リンク付けモジュールは,ナビゲーションのハイパリンクを 張るためにSMIL 2.0文書属性及び要素を定義する。これらは, 利用者相互作用又は一時的なイベントのような他の引金となるイベントが引金と なって起こり得るSMILプレゼンテーションを通じてナビゲーションする。 SMIL 2.0は並んだリンク要素だけに与える。リンクは, uni-方向のある単一に向かうリンク(リンクはすべてちょうど一つのリンク元及び一つののリンク先資源をもっている)に制限されている。

SMIL 2.0 リンク付けモジュールは,LinkingAttributesBasicLinking及びObjectLinkingと名付けられる。 LinkingAttributesモジュールは,要素のリンクとセマンティクスをリンクする SMILを提供するために使用される1集合の属性を含む。 BasicLinkingモジュールは,SMIL 2.0リンク要素それ自身を含む。 ObjectLinkingモジュールは,言語プロファイルが含んでもよい。 添加オプションリンクの特徴を含む。BasicLinkingモジュールがその要素上の LinkingAttributesモジュールからの属性を明示的に含むことに注意する。

6.2 他のXMLリンク付け関連様式との関係

6.2.1 XPointerとの関係

XPointer[XPTR]は, それらの一意の識別子上よりむしろ,XML構造中のそれらの配置ではXML文書のコンポーネントがアドレスされることを 可能にする。これは,XML文書の任意の部分をその文書を修正する必要なしに, 参照することを可能にする。XPointerなしで,文書内に指すことは それに一意の識別子を加える,又はHTMLアンカーと名付けられるような 文書に特定の要素を挿入することを要求してもよい。 XPointersは,URI[URI] 属性値の部分素片識別子内に置かれる。 SMIL 2.0明細は,利用者エージェントがSMIL 2.0 URI属性値中の XPointersを処理することができることを許可するが,要求しない。

6.2.2 XLinkとの関係

可能なところで,SMILリンク構築は,XLink[XLINK]から構築するように, 同じ要素,属性及び値名をもっている。 これは,両方のフォーマットでのコード中のリンクを書くことをより容易に学べるようにする。 XLinkに精通している制作者は,より速くSMILリンクを学ぶことができ,その逆も又同様とする。 さらに,それは,SMILコードが処理されることをより容易にし, XLinkが推奨として一旦開放されたコードをXLinkとして認められる。 そして,適切なものが機構を変形するとき,利用可能になる。しかしながら,SMILリンク属性は XLink構築とは異なり,また個別の名前空間の一部とする。 SMILのモジュール化機構を使用すると,これらの構築は, XLink名前空間の中ではなくSMIL 2.0指定に定義された名前空間の中にある。

6.2.3 XML Baseとの関係

SMILプロファイルはXML Base [XMLBase]を使用してもよい。 例えば,SMIL 2.0言語プロファイルSMIL 2.0 Language Profile はXML Baseのサポートを含んでいる。XML Baseがプロファイルに 組入れられる場合,XML Base宣言は,そのプロファイルの 文書の中で使用されるSMILのURI属性値に当てはまる。 これらの属性はSMIL BasicLinking Modulehref属性及び SMIL BasicMedia Modulesrc属性を含む。

6.2.4 XHTMLとの関係

要素名,属性名及びSMILリンク構築の属性値は, 可能なところでリンク振る舞いに対応するXHTML [XHTML11]の構築のように同じとする。 これは両方の言語で学ぶこと及び書くことを促進し,そして混乱を回避する。 さらに,一旦フォーマットが開放されればXLinkのように両方の言語のリンク構築の進行可能を促進してもよい。しかし,SMILの中のリンク構築は,任意のXHTML関連付け名前空間の下ではなく,SMIL 2.0に定義された名前空間の管轄に入る。

6.3 SMIL 2.0文書内へのリンク付け

SMIL 2.0リンク付けモジュールは素片識別子の名前及び'#'コネクタをサポートする。素片部分は参照付けられたSMIL文書内の要素のうち一つを識別するid値とする。これで構築することによって SMIL 2.0は,値は"name"属性の値ではなく一意の識別子の値の 違いと共に,HTML(つまり,それは, 形式の位置識別子を使用する "http://www.example.org/some/path#anchor1")の中で 現在使用されるような位置識別子をサポートする。 このリンクの型は,型IDの属性をもっている要素を単に目標とすることができる。

そのプレゼンテーションの初めよりむしろ,制作者は 特定要素の開始時に素片識別子を使用するリンクに よってSMIL 2.0プレゼンテーションへのリンクをコード化 することができる。部分名を含むリンクに続く 場合,あたかも利用者が有効な素片によって,指定された要素の始まり のリンク先文書によって 表わされるプレゼンテーションを早送りしたかのように, プレゼンテーションは開始することが望ましい。 より情報を得るために,SMIL 2.0 タイミング及び同期モジュール の中のタイミング構築へのリンクの議論を参照すること。

これらは,SMILタイミングを含む文書へ 部分名を含むリンクをたどるために 定義された特別のセマンティクスとする。これらのセマンティクスは, SMIL 2.0タイミング及び同期モジュール と定義される。

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

その統合性質により, SMIL 2.0文書のプレゼンテーションは他の(非SMIL)アプリケーション 又はプラグインを含んでいてもよい。 例えば,SMIL 2.0利用者エージェントは埋込まれたHTMLページを表示するのにプラグインのHTMLを使用してもよい。 逆に,HTML利用者エージェントはHTMLページに埋込まれたSMIL 2.0文書を表示するのにプラグインのSMILを使用してもよい。 これがSMIL 2.0及びHTMLを統合することを サポートする方法のほんの一つとすることに注意すること。 別の選択肢は合併された言語アプローチを使用する。 一層の詳細のために,SMIL2.0 モジュールを参照すること。

埋込まれたプレゼンテーションでは,リンクが異なるレベル及び矛盾による文書によって定義してもよい。 この場合,文書を含むことによって定義されたリンクは,埋込みオブジェクトによって定義されたリンクに優先することが望ましい。 利用者エージェントとプラグインの間のコミュニケーションを要求してもよいのでSMIL 2.0実装がこの推奨に応じないことを選んでもよいことに注意する。

埋込まれたSMIL 2.0文書でリンクが定義される場合,リンクの辿りは埋込まれたSMIL 2.0文書だけに影響する。

SMIL 2.0文書の中に埋込まれているリンクが非SMIL文書で定義される場合,リンク辿りは埋込まれた文書のプレゼンテーションに単に影響することが出来, SMIL 2.0文書に含まれているプレゼンテーションは影響することは出来ない。 この制限はSMILの将来の版で和らげられてもよい。

6.3.2 エラーの扱い

それが現実に文書の一部でない要素を識別するので,SMIL 2.0文書中へのリンクが解決できない素片識別子("dangling link")を含む場合,SMIL 2.0ソフトウェアは素片識別子を無視し,文書の始めから再生を開始することが望ましい。

SMIL 2.0文書の中へのリンクがswitch要素の内容とする要素を 識別する素片識別子を含む場合, SMIL 2.0ソフトウェアは, 最も外側の原型に行くこととしてswitch要素の代わりにこのリンクを解釈することが望ましい。 言いかえれば,リンクはswitchの中にそれ自体含まれていない switch原型要素をアクセスすると見なされることが望ましい。

6.4 SMIL 2.0 LinkingAttributesモジュール

SMIL 2.0リンク属性モジュールは, それらの要素へのセマンティクスをリンクするSMILを加えるために 要素をリンクすることで,言語プロファイルが含むこと ができる,いくつかの属性を定義する。 基本リンク付けモジュールにおける要素はこれらの属性を明示的に含める。 これらの属性は,言語プロファイルに よって許可された場合,他の名前空間からの要素を リンクすることを適用できる。

sourceLevel
この属性は,リンクに続く場合にリンクを含むプレゼンテーションメディアオブジェクト の相対的なオーディオボリュームを設定する。この属性は0以上のパーセンテージ値をとる。 sourceLevel属性のユニットは,SMIL2.0 レイアウトモジュールの sourceLevel属性のために記述されたものと一致している。また,オーディオレベルは同じ方法で修正される。 sourceLevelのアプリケーションボリューム制御(例えば, sourceLevel属性)は,リンクを含むプレゼンテーションに前述でメディア指定ボリューム制御で累積的とする。リンク先資源のディスプレイが完成する場合,親プレゼンテーション上の sourceLevel属性の効果は,削除されることが望ましい。デフォルト値は「100%」とする。
destinationLevel
リンクに続く場合,この属性は,遠隔資源の中で メディアオブジェクトの相対的なオーディオボリュームを セットする。この属性は0以上のパーセンテージ値をとる。 destinationLevel 属性は,リンク先メディアの自然な又は組込みオーディオボリュームに 適用され,したがって,メディアが destinationLevel属性 のアプリケーションなしで再生されるボリュームに 関連がある。destinationLevel属性のユニットは, SMIL 2.0レイアウトモジュールの soundLevel属性のために記述されたものと一致している。 また,オーディオレベルは同じ方法で 修正される。 destinationLevelのアプリケーションボリューム制御(例えば,soundLevel属性)は,遠隔資源によって, 指定されたメディア指定ボリューム制御 で累積的とする。デフォルト値は「100%」とする。
sourcePlaystate
この属性は,リンクが辿られる場合にリンクを含むプレゼンテーションの一時的振る舞いを制御する。それは次の値をもつことができる。
  • play: リンクが辿られる場合,リンクを含むプレゼンテーションは再生し続ける。
  • pause: リンクが辿られる場合,リンクを含むプレゼンテーションは休止する。リンク先資源のディスプレイが完成する場合, 親プレゼンテーションは動きを再開することが望ましい。
  • stop: リンクが辿られる場合,リンクを含むプレゼンテーションは止まる。すなわち,それはプレゼンテーションの始めにリセットされる。リンク先資源の終了は 親プレゼンテーションを継続させないし再開させないだろう。
show属性値デフォルト値を決定することができる,又はsourcePlaystate属性の割当てを上書きする。一般に,show属性 は,sourcePlaystate属性においてprecendenceを引継ぐ。 sourcePlaystate上のshowのインパクトのための規則は次の通りとする。
  • show属性がnewという値を割当てた場合,その後sourcePlaystate属性のためのデフォルトは,playとする。
  • show属性がreplaceという値,又はpauseという非推奨された値を割当てた場合,その後プレゼンテーションはあたかもsourcePlaystate属性がpauseに設定されていたかのように振る舞う。 sourcePlaystate属性の割当ては無視される。
言語プロファイルの中で定義される完成した資源を構成する ものを定義する必要がある,又は実装の依存とする必要があることに注意すること。典型的な定義は, 利用者がディスプレイウインドウを閉じる場合,又は連続的なメディアオブジェクトが終了する場合であろう。
destinationPlaystate
リンクに続く場合,この属性は,外部資源 (href属性によって典型的に識別された)の一時的な振る舞いを 制御する。 この資源が連続的なメディアオブジェクトとする 場合,それは単に適用される。 それは次の値をもつことができる。
  • play:リンクが辿られる場合,リンク先は再生する。
  • pause:リンクが辿られる場合,リンク先はhref属性の値によって描写されたポイントで 休止された状態で表示される。

デフォルト値はplayとする。

show
この属性は,リンクが活性化される場合にプレゼンテーションの現在の状態を扱う方法を指定する。 次の値が許可される。
  • new: リンク先資源のプレゼンテーションは,新しい文脈の中で始まり,リンク元資源には影響しない。リンクを含むプレゼンテーション及び遠隔資源の両方がオーディオメディアを含む場合,両方は並列で再生される。
  • pause: この値は show属性がnewを設定すること及び, sourcePlaystate属性がpause を設定することを支持して非推奨される。
  • replace: 現在の状態で現在のプレゼンテーションは休止され, リンク先資源と取替えられる。 プレイヤーが履歴機構を申し出れば, リンク元プレゼンテーションは利用者がそれに対して戻ったとき,休止された状態から回復する。 sourcePlaystateshow属性が pauseという値をもっているとき,デフォルト値は休止される。 リンク先が,このリンク要素があるのと 同じ文書の中ならば,次にこの要素のsourcePlaystate 属性の割当ては無視され, リンクは sourcePlaystateの値があたかも停止したように処理される。 現在の文書内に ハイパリンクを張ることに関するより多くの議論に ついては, SMIL 2.0タイミング及び同期モジュールの 「ハイパリンク及びタイミング」の章を参照のこと。

showのデフォルト値は, replaceとする。

external
この属性は,現在のアプリケーション又はある外部アプリケーションによって リンク先が開かれるかどうかを定義する。 trueの値は,このメディア型を扱うために システム上で定義された外部アプリケーションでのリンクを開くだろう。 しかし,現在のアプリケーションが参照されたメディアのメディア型をサポートしない場合, 外部アプリケーションを使用して,メディアを与えることを試みることが望ましく, falseの値は, 現在のアプリケーションのリンク先を開くだろう。 外部アプリケーションにメディア型を関連させる 手段がシステム依存及びここには定義されないことに注意すること。 外部のデフォルト値はfalseとする。
actuate
そのタイムスパンが活性な場合,リンクがあるイベントによって引金になっていないのか,又は自動的に辿られているのかどうかを actuate属性は決める。そのデフォルト値はonRequestであり, それは何かがリンク辿りを引金にしなければならない手法で, 典型的な利用者対話型とする。 onRequestの値は, さらに割当てることができる。この値は, リンク要素が活性化になる場合,リンクが自動的に辿られる ことを示す。SMILタイミングを含むリンク要素 にとってこれは,リンク要素の活性持続時間が実効的に開始する場合, 言い換えれば,要素のbeginEventイベントが 始動する場合とする。これは,SMILリンクが,時間イベント開始の引金を引く任意のイベントによって, 引金を引かれて、エンコードされる,ということを意味する。 詳細については SMIL 2.0 タイミング及び同期モジュールを参照のこと。

次の属性の各々はHTML[HTML4] の中に同じ名前の属性として 同じ構文をもっている。また適用可能な同じセマンティクスとする。

alt
この属性はSMIL 2.0メディアオブジェクトモジュール でSMIL 2.0のために定義される。 メディアオブジェクト要素におけるalt属性のための そこで与えられた推奨は,同様に要素をリンクする際にその使用に当てはまる。
accesskey
この属性は,このリンクの活性化が 順次に利用者によって活性化のキーボードキー を割当てる。それはHTML[HTML4] の中に同じ名前の属性として 同じ意味をもっている。埋込まれた場合, 埋込まれたプレゼンテーションでの活性化されたキーストロークにリンクは実効的とする。 すなわち,利用者がSMILプレゼンテーションの間にそのキーを打てば,そのナビゲーションが埋込まれたメディア内に生じる。 多数のオブジェクト中のリンクを明確にするための規則は次のとおりとする。
  • SMILに定義されたキーストロークリンクは,埋込まれたメディアに定義されたものの上に優位を占める。
  • 同時に活性SMILをリンクする要素が同じ"accesskey"をもっている場合,優先度は最も最初に活性化されたものに行き,そしてSMILコード上で最初に定義されたものに行う。
  • SMIL 2.0 レイアウトモジュールで使用されるプロファイルの中で,主要な区画に置かれたメディアオブジェクト中のリンクは,SMIL 2.0レイアウトモジュールの中で "stacking level" により定義されるように,優位を占める。
  • 区画が割当てられてないメディアオブジェクトは,stacking levelにおいて,区画が割当てられたすべてのメディアオブジェクトより前にあると想定される。これは目のよく見えない人の為のリンクの張られた話す本のようなキーストローク入力を 行っているオーディオオブジェクトの可能性を認める。
tabindex
この属性はHTML [HTML4]の中でtabindex属性として同じ機能を提供する。 それは, 現在の文書のためのタブ付けする順番に要素の位置を 指定する。タブ付けする順番は,キーボード経由で利用者に よってナビゲートされた場合,要素が焦点を受取る順番を定義する。 特別の場合では,活性な時間軸を備えた要素だけがタブ付けする順番によって考慮に入れられる。不活性要素はタブ付けする順番を無視する。
メディアオブジェクト要素がtabindex 属性をもっている場合,その順序の正しいtab indexは,メディアオブジェクトのtabindex属性値によって指定された位置でSMIL tab indexに挿入される。 これはメディアオブジェクトそれ自体が,tabindex属性によって埋込まれたHTMLのようなtab indicesをもっていることと仮定する。 埋込まれたプレゼンテーションを含むが,これは,SMILプレゼンテーション中のすべてのリンク出発点がtab-keyedされるために並んだリストを置く事をこれは可能にする。
target
この属性は,リンクが開かれる既存のディスプレイ環境を定義する (例えばSMIL区画,HTMLフレーム又は別の名前のウィンドウ)又は与えられた名前を備えた新しいディスプレイ環境の制作を引金にする。その値はディスプレイ環境の識別子とする。現在活性化ディスプレイ環境がこの識別子をもっていない場合,新しいディスプレイ環境は目標の識別子に開かれ割当てられる。プレゼンテーションが異なるタイプのディスプレイ環境(例えばSMIL区画及びHTMLフレーム)を使用する場合,識別子のための名前空間はこれらの異なるタイプのディスプレイ環境間で共有される。(***おかしい)例えば,ある物は文書中で"foo"の値を2回使ってtarget属性を使用することができない,及びHTMLフレームを一度指定させる。そして,SMIL区画も指定させる。要素が,show属性及びtarget属性をもっている場合,show属性は無視される。

これらの例はSMIL 2.0 言語プロファイルへコード化される。

例1

この例はtarget属性及びaccesskey属性の使用を示す。ディスプレイの上半部は画像を示す。利用者が画像をクリックすれば,SMILプレゼンテーションがディスプレイの下半部で再生される。利用者が'a'のキーを打った場合,同じことが起こる。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
    <layout>
      <region id="source"      height="%50"/>
      <region id="destination" top   ="%50"/>
    </layout>
 </head>
 <body>
   <a href="embeddedSMIL.smil" target="destination" accesskey="a">
     <img region="source" src="source.jpg" dur="indefinite"/>
   </a>
 </body>
</smil>

例2

この例は,メディアオブジェクト要素における tabindex属性の使用を示す。 HTMLファイル "caption1.html" は3つのリンクをもっていて,3つの最初のタブはそれらのリンクに順番に焦点をあてる。 ファイル "caption2.html" は4つのリンクをもっていて,タブ4-7はそれらに順番に焦点をあてる。 タブ8及び,9は,v1.mpgの内部の2つのリンクに焦点をあてる。 タブ10は,概してgraph.imfのプレゼンテーションに焦点をあてる。 9つの最初のつまみがつけられた焦点のうちのいかなるものでも活性化された場合, 埋込まれたプレゼンテーションcaption1.html,caption2.rtx又はv1.mpgのうちの1つの内部のリンクは, そのプレゼンテーションだけに影響して,引金にされる。第10のタブ付けされた焦点が活性化される場合, SMILプレゼンテーションそれ自身は同じプレゼンテーションスペースにhttp://www.example.org/プレゼンテーションを ロードして,影響される。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <seq>
    <video src="http://www.example.org/graph.imf"/>
    <par>
        <a tabindex="4" href="http://www.example.org/presentation">
            <video src="http://www.example.org/graph.imf" ... />
        </a>
        <video tabindex="3" src="http://www.example.org/v1.mpg" ... />
        <text tabindex="1" src="http://www.example.org/caption1.html" ... />
        <text tabindex="2" src="http://www.example.org/caption2.html" ... />
    </par>
  </seq>

6.5 SMIL 2.0 BasicLinkingモジュール

リンク要素は,オブジェクト間のリンクのナビゲーションの記述を許可する。SMIL 2.0リンクはuni-directional,single-headed,in-lineリンク要素だけを与える。

6.5.1 a要素

a要素の機能は,HTML[HTML4]の中のa要素の機能に非常に似ている。同期目的のために,a要素は透明とする。つまり,子要素の同期には影響しない。a要素はネストしてもよい。一つのa要素は一つのhref属性をもっている。

a要素はそのたどりのためのいくつかの引金を同時に指定することができる。例えば,要素の内容視覚的なメディアは利用者又はaccesskey属性がたどりを引金にするためにタイプすることができるので指定されたキーによって選択されることができる。その 多数の引金が指定される場合に,それらのうちのどれでもリンクのたどりを活性化することができる。すなわち,論理的なORは,たどりが生じるかどうか決める引金になる条件のリストに適用される。

時間の間たどりのための条件のうちの1つに遭遇し,a 要素が活性化とする場合,たどりは生じる。それが含むメディア又は要素が活性又は凍結の場合,a要素は敏感とする。一層の詳細のためにSMIL 2.0 タイミング及び同期モジュールを見ること。タイミング目的のために,a 要素は離散的なメディアと考えられる。すなわち,組込み持続時間は0とする。a 要素は時間コンテナでなく,子要素のタイミングを抑制しないことに注意すること。

属性
href
この属性はHTML [HTML4]href属性として同じ構文とセマンティクスをもっている。それは,リンク先のURIを含む。href属性は,a要素に要求される。

a要素もSMIL 2.0 LinkingAttributes モジュールで定義される属性を含む。

要素内容

a要素の内容は,言語プロファイルによって定義されなければならない。一般的に,a要素は子として言語プロファイルの中のメディア及び,タイミング要素を含んでもよいことを期待される。

他の統合必要条件

a 要素へのSMIL 2.0タイミングを適用する言語プロファイルは,デフォルト及び, a 要素に対するfill 属性の許可された値を指定しなければならない。SMIL 2.0言語プロファイルのようなSMIL 1.0と互換性をもちつづけたいa要素へのSMIL 2.0タイミングを適用している言語は,autoへのa要素に対するfill 属性の値をデフォルトにしなければならない。 そして,autoへの値を固定することを考慮することが望ましい。 他のすべての場合で,互換性については,autoのデフォルト値を使うことを推奨される。

プロファイルによって指定されない場合,a要素におけるfill属性の値はautoに固定される。

これらの例は,SMIL 2.0 言語プロファイルにコード化される。

例 1

リンクは,再生していたプレゼンテーションを交換する新しいプレゼンテーションを開始する。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewhereelse.smi">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

例 2

リンクは,再生していたプレゼンテーションに加えて新しいプレゼンテーションを開始する。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewhereelse.smi" show="new">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

これは SMIL 2.0 プレイヤが HTML 利用者エージェントを生むことを可能にした。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewebpage.html" show="new">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

例 3

リンクは新しいプレゼンテーションを開始及び,再生しているプレゼンテーションを休止する。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewhereelse.smi" show="new" sourcePlaystate="pause">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

例 4

以下の例は,あるプレゼンテーションAの要素からもう一方のプレゼンテーションBの中間への1つのリンクを含む。これは,id "next"についての要素の実効開始点から開始しているプレゼンテーションBを再生するだろう。

Presentation A:

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/presentationB#next">
    <video src="rtsp://www.example.org/graph.imf"/>
  </a>


Presentation B (http://www.example.org/presentation):

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <seq>
    <video src="rtsp://www.example.org/graph.imf"/>
    <par>
      <video src="rtsp://www.example.org/timbl.rm" region="l_window"/>
      <video id="next" src="rtsp://www.example.org/v1.rm" region="r_window"/>
             ^^^^^^^^^
      <text src="rtsp://www.example.org/caption1.html" region="l_2_title"/>
      <text src="rtsp://www.example.org/caption2.rtx" region="r_2_title"/>
    </par>
  </seq>

6.5.2 area要素

a要素の機能は,完全なメディアオブジェクトとのリンクを関連させることを単に可能にする際に制限される。HTML area要素[HTML4]はオブジェクトの視覚ディスプレイの空間の部分とのリンクを関連させることが有用なことを実証している。

SMIL 2.0におけるarea要素のセマンティクスは,リンク先の外観を引金にするために視覚オブジェクトの空間の部分を選択することができることを指定できるという点で,HTMLにおけることと同じとする。coords属性はこの空間の部分を指定する。対照的に,a要素が視覚オブジェクトに適用された場合,リンクたどりの引金を引くためにそのオブジェクトのどんな視覚的な部分も選択することができるのを指定する。

メディアオブジェクトのディスプレイにおける非空間的な部分からのリンクを提供することによってその area要素もまた,HTMLarea要素の構文及びセマンティクスを拡張する。SMIL 2.0 タイミング及び同期モジュールを含むプロファイルで使用された場合,area要素は一時的なサブ部分へオブジェクトを解体すること,begin及びend属性のような属性を使用することを可能にする。begin及びend属性の値はメディアオブジェクトの含み始めと関係付けられる。area要素はこれらのタイミング属性及びid属性を使用することによって,メディアオブジェクトのリンク先をサブ部分にすることを可能にする。

SMIL 1.0 [SMIL10]anchor要素は,areaに賛成して,非推奨される。SMIL 2.0の指定のために,anchor 要素はareaのために同義語として扱われることが望ましい。

属性

HTML [HTML4]の中でのように同じ構文,適用可能及び,同じセマンティクスならば,area要素は下にリストされた属性をもつことができる。

href
BasicLinking moduleで定義されている。
alt
LinkingAttributes moduleで定義されている。
tabindex
LinkingAttributes moduleで定義されている。
accesskey
LinkingAttributes moduleで定義されている。
target
LinkingAttributes moduleで定義されている。
nohref
設定された場合,このboolean属性はたとえメディアオブジェクトのための他のarea要素がそのためのリンクを定義しても区画が関連するリンクをもっていないことを指定する。
shape
この属性は,スクリーン上のanchorのshapeを指定し,coords属性と共に使用される。SMIL shape属性はHTML [HTML4]の中で同じような振る舞いをもつ。 前に切り取られたが,プレゼンテーションのためにメディアが計られた後で,shape属性が適用しているオブジェクトは要素を含むもののメディアとする。
coords
shape属性に沿って,この属性はスクリーン上の位置及びanchorのshapeを指定する。値の数及び順序は,定義されているshapeに依存する。SMIL及びHTMLが視覚ディスプレイの振る舞いを共有するところで,SMILのcoords属性は,HTML[HTML4]の中での同じような振る舞いをする。SMILディスプレイの振る舞いに適用するSMILcoords属性がどのようであるかは次の通りとする。
  1. coords属性によって使用された左上隅元は,それが表示される区画ではなく,画像ディスプレイ空間にある。 ある例は,メージ及び左上隅の区画の左上隅端が異なる場合,left及びtop属性がメディアオブジェクト要素の中で使用されており,そしてその区画で適用される場合とする。
  2. HTML中のように,coords属性のピクセル値は,ディスプレイ空間(つまり,典型的な利用者スクリーン)のピクセルを参照する。これらは画像元のピクセル値とは異なり得る。それらはSMILの中では異なり得ることのある例は,region要素のfit属性が"hidden"ではないこととする。
  3. SMILの中で,目に見えないことが画像の部分にとって可能とする。例えば,region要素のfit属性が隠れた場合,及び画像が区画よりピクセルの中で大きい場合にこれは起こるとする。そのような場合,画像に活性領域を置くための規則は,切り取りが起きない場合,画像がとるスクリーンスペースへ適用される。これはパーセンテージ値を注意するために重要な項目とする。これらは,切り取られた画像に適用されないが,切り取られた場合,画像が占める空間には適用する。だがそれが切り取られなければ,画像が占めるスペースに適用されない。この規則で,ディスプレイ境界を越えて置かれる領域は活性ではない。
同じメディアオブジェクト要素の多数area要素の子が同時にcoords属性についての活性オーバーラップ領域を定義する場合,HTML [HTML4]の中でのように,文書中で最も初期にコード化されたarea要素が先行をとる。

area要素の次の属性は SMIL に対して一意であり及び,HTML の中には見つからない。それらはLinkingAttributes module属性における章の中で上部に定義されている。

要素内容

area要素は空とする。

これらの例はSMIL 2.0 言語プロファイルの中でコード化される。

1) 一時的な区分へビデオを分解すること

次の例において, ニュース放送(カメラはインタビューを受けた人が質問に答えているところを撮ることに続いて質問をしているインタビューする人を撮る)中のインタビューの一時的な構造は,分割によって開示される。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <video src="video" title="Interview" >
        <area id="firstQ" begin="0s" dur="20s" title="first question" /> 
        <area id="firstA" begin="first0.end" dur="50s" title="first answer" />
    </video>
  </body>
</smil>

2) 空間の区分についての関連リンク

次の例において,ビデオクリップによって取り上げられたスクリーン空間は,二つの章へ分離している。異なるリンクは,これらの章の各々に関連している。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <video src="video" title="Interview" >
      <area shape="rect" coords="5,5,50,50" 
              title="Journalist" href="http://www.example.org/>
      <area shape="rect" coords="60,5,100,50" 
              title="Subject" href="http://www.example.org/>
   </video>
  </body>
</smil>

3) 一時的な区分についての関連リンク

次の例において,ビデオクリップの持続時間は二つのサブ間隔へ分離している。異なるリンクは,これらのサブ間隔の各々に関連している。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <video src="video" title="Interview" >
        <area begin="0s" dur="20s" title="first question" 
              href="http://www.example.org/>
        <area begin="20s" dur="50s" title="first answer" 
              href="http://www.example.org/>
   </video>
  </body>
</smil>

4) 空間のサブ部分についての関連リンク

次の例において,二つの領域は,ビデオクリップによって取上げられたスクリーン空間の中で割当てられる。異なるリンクは,これらの領域の各々に関連している。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area href="http://www.example.org/AudioVideo" coords="0%,0%,50%,50%"/>
    <area href="http://www.example.org/Style"      coords="50%,50%,100%,100%"/>
  </video>

5) 一時的なサブ部分についての関連リンク

次の例において,ビデオクリップの持続時間は二つの部分区間へ分離している。異なるリンクは,これらの部分区間の各々に関連している。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area href="http://www.example.org/AudioVideo" begin="0s" end="5s"/>
    <area href="http://www.example.org/Style"      begin="5s" end="10s"/>
  </video>

6) オブジェクトのサブ部分へのジャンプ

次の例は,あるプレゼンテーションAの中の要素から,もう一方のプレゼンテーションBの中に含まれていたビデオオブジェクトの中間へのリンクを含む。これは,ビデオ中でプレゼンテーションBを5秒目から再生するだろう。すなわち,プレゼンテーションは,あたかも利用者が"CoolStuff"の中の素片で設計されたポイントへ,全体のプレゼンテーションを早送りしたかのように開始するだろう。

Presentation A:

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/mm/presentationB#tim">
     <video id="graph" src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>


Presentation B:

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area id="joe" begin="0s" end="5s"/>
    <area id="tim" begin="5s" end="10s"/>
  </video>

7) リンクの異なる使用の組合わせ

次の例は,組合せとして使用される関連リンクの異なる使用がどのようであるかを示す。

Presentation A:

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/mm/presentationB#tim">
    <video id="graph" src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>


Presentation B:

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area id="joe" begin="0s" end="5s" coords="0%,0%,50%,50%"
            href="http://www.example.org/"/>
    <area id="tim" begin="5s" end="10s" coords="0%,0%,50%,50%"
            href="http://www.example.org/Tim"/>
  </video>

8) coords 属性及び再分類された画像

次の例は,画像ファイル"example.jpg"を示し,それは 100x100 ピクセルの次元をもつ。 "example1.smil"のための活性化領域はディスプレイ全体であり,それは元の画像の左上部4分の1を切り取った所とする。それに対応する画像領域が切り取るので,"example2.smil" のための活性化領域は引金になるはずがない。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
    <layout>
      <region id=region right="50" bottom="50"/>
    </layout>
  </head>
  <body>
    <img src="example.jpg" region="region">
      <area shape="rect" coords="0%,0%,50%,50%" href="example1.smil"/>
      <area shape="rect" coords="50%,50%,100%,100%" href="example2.smil"/>
    </img>
  </body
</smil>

6.6 SMIL 2.0 ObjectLinkingモジュール

この節の内容は,文書プロファイルにオプションで含まれうる能力を表現する。これらの機能は言語プロファイルに含まれていてもよいし,含まれていなくてもよい。しかし,それらはプロファイル内のオプションの機能であってはならない。このモジュールはBasicLinking モジュールのサポートを要求する。

6.6.1 fragment属性

プロファイルは,area要素の一部としてfragment属性を含むことを選んでもよい。それは,ホスト文書のレベルに加工したメディアオブジェクトを外部的にもつリンクを含むことを提供する。

fragment
この属性は,SMILプレゼンテーションのこのリンクの出発点として作用するためにある埋込まれたメディアオブジェクトの部分を参照する。この利用者が埋め込まれたメディアでディスプレイの一部分をクリックする場合,そうでなければ活性化させる場合,SMIL 利用者エージェントは活性化している現在のリンクとしてこれを識別する。これは,メディアオブジェクトの埋込まれたディスプレイ内に起こってもよいし,すべてのリンクを無視する。   

fragment属性の値は,オブジェクトの活性可能な部分としてメディアオブジェクトを管理するプロセスによって識別可能でなければならない。参照されたメディアオブジェクトがHTMLファイルとする場合,fragment属性の値は,HTMLファイル内の指定されたアンカーとする。参照されたメディアオブジェクトがXMLファイルとする場合,fragment属性の値は,fragment 識別子(URI[URI]の中の'#'の後に来る部分)とする。

例えば次のSMILコードをとる。それは,フォーマットされたテキストメニューとしてディスプレイの部分を確立する。このメニューの中のアイテムをクリックすることはプレゼンテーション内のどこか他のところへのリンクを引金にする。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <ref src="menu.html" region="menubar">
    <area fragment="menuitem1" href="#selection1"/>
  </ref>

表示されたHTMLディスプレイでは,"menuitem1"という名でareaとしてマーク付けされて表示されたテキストの一部がある。利用者がSMILプレゼンテーションの間にこれをクリックする場合,SMILに活性化されたリンクは,ID"selection1"を備えたSMIL文書の一部にナビゲートされて引金になる。"menuitem1"と名付けられたHTMLareahref属性自身をもっている場合,このハイパリンクは上書きされ,SMILハイパリンクだけが処理される。href属性を備えたHTML area及び関連のないSMIL fragment属性は,上書きされない。クリックされた場合,埋込まれたHTML プレゼンテーション内のリンクをこのHTML areaは活性化させる。

fragment属性の使用は,埋込まれたメディアの中のリンクを上書きできる。メディア内部のリンクとする埋込まれたメディアの一部を属性が参照する場合,SMILプレゼンテーションだけ及び埋込まれたプレゼンテーションでないナビゲーションを引金にするだろうリンクを活性化させる。例えば,埋込まれたHTML文書の中の名付けられたアンカーを参照するfragment属性を仮定する。この名付けられたareahref属性をもっていて,それをHTMLプレゼンテーション自身内部の潜在的なナビゲーションの出発点にする。SMILプレゼンテーションの中に埋込まれた場合,HTMLディスプレイの部分的活性化はHTMLリンクではなくSMILリンクを引金にする。この方法で無視されない埋込まれたメディアの中のリンクは,他方では,活性化された場合,埋込まれたディスプレイ内のナビゲーションを引金にし続ける。SMILリンクのために定義されたすべての機能性は,埋込まれたメディアにリンクのために定義されたどんな等価な機能性も上書きするだろう。前述の例で,SMILarea要素のalt属性は,埋込まれたHTMLアンカーのaltタグを上書きするだろう。

fragment属性によって動作された参照することは埋込まれたメディアの深さの1レベルまで単に適用される。それは直接埋込まれたメディアに単に適用され,それは,SMILプレゼンテーションに埋込まれていたメディア内に順番に埋込まれたメディアに適用されない。例えば,その中の第2のSMILプレゼンテーションを埋込むSMILプレゼンテーションを考える。第2を埋込む1番目のメディアオブジェクト要素はその内にfragment属性を備えたarea要素をもっている。この属性の値は埋込まれたSMIL文書自体にだけ適用される。それは,この第2のSMILプレゼンテーション内に埋込まれたメディアには適用されない。

これらの例は,SMIL 2.0 言語プロファイルの中でコード化される。

構文的なサブ部分との関連リンク

以下に,メニューを表示する統合HTMLファイルを備えた例をあげる。

  link one
  link two

利用者はメニュー項目のうちの一つをクリックすることができる。そして,一致するHTMLファイルが表示される。すなわち,利用者が"link one"をクリックする場合,"Link1.html"ファイルが"LinkText"区画に表示される。 それらがfragmentsによって無視されるのでここに埋込まれた場合,埋込まれたHTMLプレゼンテーション,"overridden1.html"及び"overridden2.html"の内部で定義されたリンクが活性でないことに注意すること。

"menu.html" ファイルはコードを含む。

<html>
...
   <A NAME="link1" HREF="overridden1.html">link one</A><BR/>
   <A NAME="link2" HREF="overridden2.html">link two</A>

SMIL 2.0 は次の通りとする。

   <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
    <head>
      <layout>
        <region id="HTML"     width="100" height="100"/>
        <region id="LinkText" width="100" top   ="100"/>
      </layout>
    </head>
    <body>
      <par>
        <text region="HTML" src="menu.html" dur="indefinite">
          <area fragment="link1" href="#LinkOne"/>
          <area fragment="link2" href="#LinkTwo"/>
        </text>
        <excl dur="indefinite" >
          <text id="LinkOne" region="LinkText" src="Link1.html" dur="indefinite"/>
          <text id="LinkTwo" region="LinkText" src="Link2.html" dur="indefinite"/>
        </excl>
      </par>
    </body>

  </smil>