2. SMIL 2.0モジュール

2.1 導入

SMIL 1.0[SMIL10]が公表されてから,SMILの概念と,HTML(HyperText Markup Language)[HTML4]及び他のXML言語との統合に関する関心が高まってきた。同様に,W3C HTML作業グループは,HTMLを,部分集合化し,拡張し,他の言語に統合する準備において,XHTML(Extensible HyperText Markup Language)[XHTML10]を規定した。それぞれの機能を他のXMLに基づく言語に統合するために考えられた戦略は,モジュール化 及びプロファイル化 の概念に基づいている([SMIL-MOD]及び[XMOD])。

モジュール化 は,意味的に関係するXMLの要素,属性及び属性値を含むモジュールの集合として,マーク付け機能を指定するアプローチとする。プロファイル化は,特定のアプリケーションによって要求された機能を提供するために,これらのモジュールを結合することを通じてXMLに基づく言語を生成することとする。

プロファイル化は,例えば,クライアントの能力のためにプレゼンテーション及び相互作用を最適化するといった特定の必要性にXMLに基づく言語を合わせる能力を導入する。プロファイル化は,他のマーク付け言語からの機能を統合し,その機能を指定することから言語設計者を解放するための能力も追加する。さらに,それは,機能を組み込むために同じモデルを使用することでマーク付けの一貫性に備える。同一の構成要素が制作を容易にし,その一方で,利用者側ではコードの再利用の可能性をもたらす。例えば,SMIL文書,XHTML+SMIL文書及びSVGの文書に対して,SMILのタイミング及び同期の機能を支援するスケジューラを使用できる。

言語設計者は,モジュール化によって,他の既存の言語プロファイルとの統合を意図した専用のマーク付けを規定できる。それら統合のために意図された規定の例には,MathML[MathML]及びXForms[XFORMS]がある。

モジュール化及びプロファイル化は,XML[XML10]の拡張可能性の特性,並びにXML名前空間[XML-NS]及びXMLスキーマ[XSCHEMA]といった関係する技術を使用する。

2.では,SMILのモジュール化及びプロファイル化に基づくフレームワークを記述し,SMIL 2.0のモジュール,それらの識別子,及びこのフレームワーク内での適合性要件を規定する。

2.1.1 モジュール化及びプロファイル化

この規定の中で使用されるモジュール化のアプローチは,XHTMLモジュール化[XMOD]の中で示されているものから派生している。SMILモジュール化及びプロファイル化に基づくフレームワークは,2.1.1では,参考情報として記述される。

モジュール は,機能の一つの単位を表現する意味的に関係したXMLの要素,属性及び属性値の集まりとする。モジュールは,緊密に結びついた一連のもの(集合群)で定義される。この緊密性は,これらのモジュールの要素が同じ名前空間と関連しているという点で表現される。

言語プロファイル は,モジュールの結合とする。モジュールは,原子的(atomic) とする。つまり,言語プロファイルにモジュールが含まれていた場合,それらは部分集合化することができない。さらに,モジュール規定は,そのモジュールを含む言語プロファイルが準拠しなければならない統合要件の集合を含んでもよい。

一般に,単一の名前空間に関連したモジュールをほぼすべて組み込む一つの主となる言語プロファイルが存在する。例えば,SMIL 2.0言語プロファイルは,ほとんどのSMIL 2.0モジュールを使用する。通常,例えば"SMIL 2.0"という,同じ名前を,大雑把に(SMIL 2.0言語プロファイル及びSMIL 2.0モジュール群の)両方を参照するために使用する。さらに,名前"プロファイル"は,"言語プロファイル"を意味するために使用する。

より大きなものの部分集合であったり,又は異なる名前空間に関連したモジュールの混合物を組み込む他の言語プロファイルを規定できる。SMIL 2.0 Basicは,前者の例であって,XHTML+SMILは,後者の例である。

言語プロファイルの中の特殊なモジュールに,いわゆる構造モジュールがあるが,それはその中に言語プロファイルのルート要素(例えば,<smil>又は<html>)を含んでいる。単一の名前空間に関連したモジュールを組み込むいかなる言語プロファイルも,その名前空間に関連した構造モジュールを含む。

特に記述する必要がある他のモジュールに,名前空間によって提供される機能のコアを特徴づけるものがある。これは,ホスト言語 及び統合集合の概念によって表現される。それらは両方とも,言語プロファイルのための適合性要件の集合(それは少なくともモジュールのコア集合を組み込むための要件を含む。)に関係がある。その集合は,ホスト言語及び統合集合に対して異なっていてもよい。ホスト言語は構造モジュールを組み込まなければならないが,統合集合はその必要はない。同様のその他の違いが存在してもよい。

言語プロファイル適合性の主な目的は,相互運用を強化することとする。むしろ,ホスト言語適合性のために必須なモジュールは,文書をレンダリングする処理系が,関連する必須なモジュール集合をサポートする一方で,すべての他の(未知の)要素及び属性を無視する場合に,適合する言語プロファイルで交換されるいかなる文書も理にかなったプレゼンテーションを行うといった方法で,定義される。ここで,"理にかなったプレゼンテーション"は,分かりやすいものとして理解されることが望ましく,必ずしも制作者の元来の意図に近く反映されなくともよい。制作者の意図を正確に反映するためには,文書交換のために使用される特定の言語プロファイルに一致させるための折衝を行わなければならなくなる。

2.2 SMIL 2.0モジュール

SMILの機能は,10個の機能領域に分けられる。個々の機能領域内では,更なる分割が適用されてモジュールモジュール群となる。これらのモジュールのすべて及びこれらのモジュールだけが,SMIL名前空間と関連する。

機能領域及びそれらの対応するモジュール群は,次のとおり。

  1. タイミング
    1. AccessKeyTiming
    2. BasicInlineTiming
    3. BasicTimeContainers
    4. EventTiming
    5. ExclTimeContainers
    6. FillDefault
    7. MediaMarkerTiming
    8. MinMaxTiming
    9. MultiArcTiming
    10. RepeatTiming
    11. RepeatValueTiming
    12. RestartDefault
    13. RestartTiming
    14. SyncbaseTiming
    15. SyncBehavior
    16. SyncBehaviorDefault
    17. SyncMaster
    18. TimeContainerAttributes
    19. WallclockTiming
  2. 時間操作
    1. TimeManipulations
  3. アニメーション
    1. BasicAnimation
    2. SplineAnimation
  4. 内容制御
    1. BasicContentControl
    2. CustomTestAttributes
    3. PrefetchControl
    4. SkipContentControl
  5. レイアウト
    1. AudioLayout
    2. BasicLayout
    3. HierarchicalLayout
    4. MultiWindowLayout
  6. リンク付け
    1. BasicLinking
    2. LinkingAttributes
    3. ObjectLinking
  7. メディアオブジェクト
    1. BasicMedia
    2. BrushMedia
    3. MediaAccessibility
    4. MediaClipping
    5. MediaClipMarkers
    6. MediaDescription
    7. MediaParam
  8. メタ情報
    1. Metainformation
  9. 構造
    1. Structure
  10. 遷移
    1. BasicTransistions
    2. InlineTransitions
    3. TransitionModifiers

これらのモジュールの各々は,意味的に関係する要素,特性及び属性の集合を導入する。個々の機能領域には,この規定における対応する箇条が存在する。モジュールの各々に関する更なる詳細は,それら箇条内で規定される。

モジュールは,独立していても,又は補足的でもよい。例えば,SyncMasterモジュールは,SyncBehaviorモジュールを要求しその上に構築される。しかし,PrefetchControlモジュール及びSkipContentControlモジュールは,互いに独立している。さらに,他の機能領域からのモジュールを要求するモジュールもある。

モジュールは,そのモジュールの統合要求を規定する。一つのモジュールが,基礎的な特徴のために及び統合の前提条件として他のモジュールを要求する場合,言語プロファイルは,最初のモジュールを含むために2番目のモジュールを含まなければならない。(この場合,)最初のモジュールは,2番目のモジュールに依存するという。依存性は入れ子になってもよい。すなわち,モジュールは,それ自体が依存するモジュールに依存してもよい。

表2.1は,SMIL 2.0のモジュール群及びそれらの依存関係を表す。

表2.1 SMIL 2.0のモジュール群及びそれらの依存関係
モジュール 依存関係
AccessKeyTiming なし
AudioLayout BasicLayout
BasicAnimation BasicInlineTiming
BasicContentControl なし
BasicInlineTiming なし
BasicLayout なし
BasicLinking なし
BasicMedia なし
BasicTimeContainers なし
BasicTransitions なし
BrushMedia なし
CustomTestAttributes BasicContentControl
EventTiming なし
ExclTimeContainers なし
FillDefault BasicTimeContainers,
ExclTimeContainers,及び/又は
TimeContainerAttributes
HierarchicalLayout BasicLayout
InlineTransitions なし
LinkingAttributes なし
MediaAccessibility MediaDescription
MediaClipMarkers MediaClipping
MediaClipping BasicMedia
MediaDescription なし
MediaMarkerTiming なし
MediaParam BasicMedia
MetaInformation なし
MinMaxTiming なし
MultiArcTiming AccessKeyTiming,
BasicInlineTiming,
EventTiming,
MediaMarkerTiming,
RepeatValueTiming,
SyncbaseTiming,及び/又は
WallclockTiming
MultiWindowLayout BasicLayout
ObjectLinking BasicLinking
PrefetchControl なし
RepeatTiming なし
RepeatValueTiming なし
RestartDefault RestartTiming
RestartTiming なし
SkipContentControl なし
SplineAnimation BasicAnimation
Structure BasicContentControl,
BasicInlineTiming,
BasicLayout,
BasicLinking,
BasicMedia,
BasicTimeContainers,
SkipContentControl,及び
SyncbaseTiming
SyncbaseTiming なし
SyncBehavior BasicTimeContainers,
ExclTimeContainers,及び/又は
TimeContainerAttributes
SyncBehaviorDefault SyncBehavior
SyncMaster SyncBehavior
TimeContainerAttributes なし
TimeManipulations なし
TransitionModifiers BasicTransitions,及び/又は
InlineTransitions
WallclockTiming なし

2.2.1 SMIL DOM

SMILは,XMLに基づく言語であって,(XMLの)DOMコア([DOM1]及び[DOM2])に適合する。将来的には,SMILに特定されたDOM勧告が,タイミング及び同期化,メディア統合並びにその他の同期化マルチメディア機能を規定するかもしれない。

言語プロファイルは,DOMサポートを含んでもよい。サポートされるDOMの粒度は,その言語プロファイルの中で選択されるモジュールに対応する。すべてのモジュールと同じように,DOMのために必要なサポートは,言語プロファイルのオプションとする。

2.3 SMIL 2.0モジュール及び言語プロファイルの識別子

2.3では,SMIL 2.0名前空間及びSMIL 2.0モジュールのための識別子を規定する。各SMILホスト言語適合の言語プロファイルは,それを識別するために使用することが望ましい名前空間URIを明示的に示すことを要求される。その名前空間URIは,2.4.3に定義される"SMILホスト言語適合の言語プロファイルのための識別子に関する要件"に準拠しなければならない。

2.3.1 SMILのMIME型

SMIL構造モジュールを含む言語プロファイルで制作された文書は,"application/smil"のMIME型と関連することができる。"application/smil"のMIME型を使用する文書は,ホスト言語適合となるために要求される。

2.3.2 SMIL 2.0モジュールのためのXML名前空間識別子

SMIL 2.0モジュールの完全な集合並びに(そのモジュールの)内部に含まれる要素及び属性のためのXML名前空間識別子は,次による。

http://www.w3.org/2001/SMIL20/

2.3.3 SMIL 2.0のモジュール及び機能のための識別子

この規定における各モジュールは,それに関連する一意な識別子をもつ。それら識別子は,一意に矛盾なくモジュールの各々を識別することを意図している。それら識別子は,特定のSMIL 2.0モジュールを参照する必要がある状況での値としてだけでなく,実装が特定のモジュールを含むかどうかを試験する際の値として使用することが望ましい。

表 2.2は,SMIL 2.0モジュールのための識別子をまとめて示す。

表2.2 SMIL 2.0モジュール識別子
モジュール名 識別子
AccessKeyTiming http://www.w3.org/2001/SMIL20/AccessKeyTiming
AudioLayout http://www.w3.org/2001/SMIL20/AudioLayout
BasicAnimation http://www.w3.org/2001/SMIL20/BasicAnimation
BasicContentControl http://www.w3.org/2001/SMIL20/BasicContentControl
BasicInlineTiming http://www.w3.org/2001/SMIL20/BasicInlineTiming
BasicLayout http://www.w3.org/2001/SMIL20/BasicLayout
BasicLinking http://www.w3.org/2001/SMIL20/BasicLinking
BasicMedia http://www.w3.org/2001/SMIL20/BasicMedia
BasicTimeContainers http://www.w3.org/2001/SMIL20/BasicTimeContainers
BasicTransistions http://www.w3.org/2001/SMIL20/BasicTransistions
BrushMedia http://www.w3.org/2001/SMIL20/BrushMedia
CustomTestAttributes http://www.w3.org/2001/SMIL20/CustomTestAttributes
EventTiming http://www.w3.org/2001/SMIL20/EventTiming
ExclTimeContainers http://www.w3.org/2001/SMIL20/ExclTimeContainers
FillDefault http://www.w3.org/2001/SMIL20/FillDefault
HierarchicalLayout http://www.w3.org/2001/SMIL20/HierarchicalLayout
InlineTransitions http://www.w3.org/2001/SMIL20/InlineTransitions
LinkingAttributes http://www.w3.org/2001/SMIL20/LinkingAttributes
MediaAccessibility http://www.w3.org/2001/SMIL20/MediaAccessibility
MediaClipMarkers http://www.w3.org/2001/SMIL20/MediaClipMarkers
MediaClipping http://www.w3.org/2001/SMIL20/MediaClipping
MediaDescription http://www.w3.org/2001/SMIL20/MediaDescription
MediaMarkerTiming http://www.w3.org/2001/SMIL20/MediaMarkerTiming
MediaParam http://www.w3.org/2001/SMIL20/MediaParam
Metainformation http://www.w3.org/2001/SMIL20/Metainformation
MinMaxTiming http://www.w3.org/2001/SMIL20/MinMaxTiming
MultiArcTiming http://www.w3.org/2001/SMIL20/MultiArcTiming
MultiWindowLayout http://www.w3.org/2001/SMIL20/MultiWindowLayout
ObjectLinking http://www.w3.org/2001/SMIL20/ObjectLinking
PrefetchControl http://www.w3.org/2001/SMIL20/PrefetchControl
RepeatTiming http://www.w3.org/2001/SMIL20/RepeatTiming
RepeatValueTiming http://www.w3.org/2001/SMIL20/RepeatValueTiming
RestartDefault http://www.w3.org/2001/SMIL20/RestartDefault
RestartTiming http://www.w3.org/2001/SMIL20/RestartTiming
SkipContentControl http://www.w3.org/2001/SMIL20/SkipContentControl
SplineAnimation http://www.w3.org/2001/SMIL20/SplineAnimation
Structure http://www.w3.org/2001/SMIL20/Structure
SyncbaseTiming http://www.w3.org/2001/SMIL20/SyncbaseTiming
SyncBehavior http://www.w3.org/2001/SMIL20/SyncBehavior
SyncBehaviorDefault http://www.w3.org/2001/SMIL20/SyncBehaviorDefault
SyncMaster http://www.w3.org/2001/SMIL20/SyncMaster
TimeContainerAttributes http://www.w3.org/2001/SMIL20/TimeContainerAttributes
TimeManipulations http://www.w3.org/2001/SMIL20/TimeManipulations
TransitionModifiers http://www.w3.org/2001/SMIL20/TransitionModifiers
WallclockTiming http://www.w3.org/2001/SMIL20/WallclockTiming

表2.2のモジュール識別子に加えて,特定のモジュールのサポート又は非サポートとして表現されなくともよい,言語プロファイルごとに異なる特徴及び変化が存在してもよい。これらの特徴は,次の識別子を使用して表現してよい。

http://www.w3.org/2001/SMIL20/NestedTimeContainers
プロファイルは,par及びseqの時間コンテナが入れ子になることを許す。
http://www.w3.org/2001/SMIL20/DeprecatedFeatures
プロファイルは,非推奨のSMIL 1.0の特徴をサポートする。

SMIL BasicContentControlモジュールをサポートする実装は,XML名前空間機構と共に使用するための識別子として,これらを許可しなければならないし,関連する名前空間識別子がsystemRequired試験属性と共に使用されることを許可しなければならない。プロファイルは,実装が"true"を返さなければならないそれらの属性を識別しなければならない。これは,統合の要件とする。実装は,完全にはサポートされないモジュール特徴に対しては,"false"を返さなければならない。

モジュールは,一つの集まりとして識別することもできる。次の四つのモジュールの集まりが定義される。

http://www.w3.org/2001/SMIL20/
SMIL 2.0規定によって規定されるすべてのモジュール。
http://www.w3.org/2001/SMIL20/Language
SMIL 2.0 Languageプロファイルによって使われるモジュール。
http://www.w3.org/2001/SMIL20/HostLanguage
SMILホスト言語適合性に対して要求されるモジュール。
http://www.w3.org/2001/SMIL20/IntegrationSet
SMIL統合集合適合性に対して要求されモジュール。

2.4 SMIL適合性

2.4では,SMILホスト言語及びSMIL統合集合適合性のための規則を規定する。最初に,ホスト言語適合性及び統合集合適合性のための適合性要件を与える。その要件は,XHTMLホスト言語文書型適合性及びXHTML統合集合文書型適合性[XMOD]のために示された要件と同様とする。最後の箇条では,ホスト言語適合の言語プロファイルのための識別子に関する要件を与える。

現在,SMIL 2.0モジュールを使用する三つの言語プロファイルが存在する。それらは,SMIL 2.0 LanguageプロファイルSMIL 2.0 Basic Languageプロファイル及びXHTML+SMIL 2.0 Languageプロファイル[XHTML+SMIL]とする。最初の二つは,SMILホスト言語適合になっており,3番目は,SMIL統合集合適合になっている。

表2.3及び表2.4は,SMIL 2.0の要素及び属性の特定の集合を一つの集まりとして参照するために使われる名前の一覧を示す。これらは,SMILホスト言語適合性及びSMIL統合集合適合性に関する2.4.1及び2.4.2において最小サポートの定義の中で使用される。用語"最小サポート(minimam support)"は,一つの要素が含むことができる要素の最小集合,及び一つの要素で使用することが可能な属性の最小集合を参照するために使用される。

表2.3 SMIL 2.0の要素の集まりの名前
要素集合名 要素
TIMING-ELMS parseq
MEDIA-ELMS refanimationaudioimgvideotexttextstream
EMPTY いかなる要素も最小集合として要求されない。

 
表2.4 SMIL 2.0の属性の集まりの名前
属性集合名 属性
TIMING-ATTRS beginenddurrepeatDurrepeatCountmaxminfillendsync
CONTCTRL-ATTRS systemBitratesystemCaptionssystemLanguagesystemRequiredsystemScreenSizesystemScreenDepthsystemOverdubOrSubtitlesystemAudioDescsystemOperatingSystemsystemCPUsystemComponent
MEDIA-ATTRS srctype
LINKING-ATTRS hrefsourceLeveldestinationLevelsourcePlaystatedestinationPlaystateshowaccesskeytabindextargetexternalactuatealt
COMMON-ATTRS idclass, xml:langtitle

2.4.1 SMIL ホスト言語適合性

次のモジュールを含む場合,言語プロファイルはSMIL 2.0ホスト言語適合性という。

  1. Structure
  2. BasicContentControl
  3. BasicInlineTiming
  4. BasicLayout
  5. BasicLinking
  6. BasicMedia
  7. BasicTimeContainers
  8. MinMaxTiming
  9. RepeatTiming
  10. SkipContentControl
  11. SyncbaseTiming

さらに,次の要件を満足しなければならない。

  1. 言語プロファイルは,それがどのモジュールを集めるかを定義する。
  2. 言語プロファイルは,集められているモジュールが指定するすべての要素,属性及び属性値を含む。
  3. 言語プロファイルは,表2.5に一覧が示されているとおりの要素及び属性に対する"最小サポート"要件を満たす。
  4. 言語プロファイルは,それが集めるモジュールによって示される統合要件に準拠する。
  5. 言語プロファイルは,モジュールの統合に関係するセマンティクスを規定する。
  6. 言語プロファイルは,そのDTD又はXMLスキーマを定義する。
  7. SMILホスト言語適合の言語プロファイルのための識別子に関する要件で示される要件に適合する一意な識別子を定義する。
  8. 厳密には要求されないが,SyncbaseTimingモジュールは,ホスト適合性プロファイルに含まれることが望ましい。SMIL 2.0 Language,XHTML+SMIL及びSVGを含むSMILモジュールに統合した他の言語との高水準な無矛盾性及び相互運用性を保持するため,ホスト言語適合プロファイルにこのモジュールを含めることを強く推奨する。厳しく制約された装置上で操作するために設計されるプロファイルだけが,SyncbaseTimingモジュールを省略してもよい。
表2.5 SMILホスト言語適合性のための最小サポート
要素 最小サポート
要素 属性
smil headbody COMMON-ATTRSCONTCTRL-ATTRSxmlns
head layoutswitch COMMON-ATTRS
body TIMING-ELMSMEDIA-ELMSswitcha COMMON-ATTRS
layout root-layoutregion COMMON-ATTRSCONTCTRL-ATTRStype
root-layout EMPTY COMMON-ATTRSbackgroundColorheightwidthskip-content
region EMPTY COMMON-ATTRSbackgroundColorbottomfitheightleftrightshowBackgroundtopwidthz-indexskip-contentregionName
refanimationaudioimgvideotexttextstream area COMMON-ATTRSCONTCTRL-ATTRSTIMING-ATTRSrepeatMEDIA-ATTRSregion
a MEDIA-ELMS COMMON-ATTRSLINKING-ATTRS
area EMPTY COMMON-ATTRSLINKING-ATTRSTIMING-ATTRSrepeatshapecoordsnohref
parseq TIMING-ELMSMEDIA-ELMSswitcha COMMON-ATTRSCONTCTRL-ATTRSTIMING-ATTRSrepeat
switch TIMING-ELMSMEDIA-ELMSalayout COMMON-ATTRSCONTCTRL-ATTRS

非推奨とされた要素及び属性のサポートは,与えられた言語がサポートするすべてのモジュールに対するSMIL 2.0ホスト言語適合性のために要求される。例えば,SMIL 2.0ホスト言語がMultiArcTimingモジュールをサポートする場合,それは,MultiArcTimingモジュールの中で定義される非推奨の構文をサポートしなければならない。

SMIL 2.0 StructureモジュールはSMILホスト言語適合なプロファイルの中だけで使用されてもよいので,SMIL 2.0 Structureモジュールは,ホスト言語適合性のために要求される2.4.1の最初で指名した他の少なくとも九つの他のモジュールを伴わなければならないことになる。ただし,それらのモジュールそれ自体は,SMILホスト言語に適合しない他の言語プロファイルで使用することができる。

2.4.2 SMIL統合集合適合性

次のモジュールを含む場合,言語プロファイルは,SMIL 2.0統合集合適合性という。

  1. BasicContentControl
  2. BasicInlineTiming
  3. BasicMedia
  4. BasicTimeContainers
  5. MinMaxTiming
  6. RepeatTiming
  7. SyncbaseTiming

さらに,次の要件を満足しなければならない。

  1. 言語プロファイルは,それがどのモジュールを集めるかを定義する。
  2. 言語プロファイルは,集められているSMIL 2.0モジュールが指定するすべての要素,属性及び属性値を含む。
  3. 言語プロファイルは,次の表2.6に一覧が示されているとおりの要素及び属性のための"最小サポート"要件を満たす。
  4. 言語プロファイルは,それが集めるSMIL 2.0モジュールによって示される統合要件に準拠する。
  5. 厳密には要求されないが,SyncbaseTimingモジュールは,Integration Set適合性プロファイルに含まれることが望ましい。SMIL 2.0 Language,XHTML+SMIL[XHTML+SMIL],及びSVG[SVG]を含む,SMILモジュールを統合した他の言語との高水準な無矛盾性及び相互運用性を保持するために,統合集合適合プロファイルにこのモジュールを含めることを強く推奨する。厳しく制約された装置を操作するために設計されたプロファイルだけが,SyncbaseTimingモジュールを省略してもよい。
表2.6 SMIL統合集合適合性の最小サポート
要素 最小サポート
要素 属性
refanimationaudioimgvideotexttextstream   CONTCTRL-ATTRSTIMING-ATTRSMEDIA-ATTRS
parseq TIMING-ELMSMEDIA-ELMSswitcha CONTCTRL-ATTRSTIMING-ATTRS
switch TIMING-ELMSMEDIA-ELMS CONTCTRL-ATTRS

非推奨とされた要素及び属性のサポートは,SMIL 2.0統合集合適合性に対しては要求されない。しかし,これらが含まれる場合には,上記の要件がこれらの要素及び属性にも適用される。サポートされる場合には,含まれるすべてのモジュールからのすべての非推奨とされた要素及び属性を,全体としてサポートすることが要求される。

2.4.3 SMILホスト言語適合の言語プロファイルのための識別子に関する要件

言語プロファイルは,そのDTD又はXMLスキーマを通して指定される。この場合の識別子は,言語プロファイルを識別するのに使用される。SMIL 1.0は,他の言語プロファイルとSMIL 1.0とを区別する決定的な識別子として,そのルート要素,smil,にデフォルト名前空間宣言を指定した[SMIL10]。その目的のために,SMIL 1.0に関する名前空間の識別子として,SMIL 1.0は,次を指定した。

http://www.w3.org/TR/REC-smil

使用される版及び言語プロファイルを識別するために,SMILホスト言語適合文書は,次の要件を満足しなければならない。

  1. 文書は,デフォルト名前空間[XML-NS]を宣言することが望ましい。
  2. デフォルト名前空間は,smilルート要素上で宣言されなければならない。
  3. SMILホスト言語適合の言語プロファイルがW3C勧告として発行された場合,デフォルト名前空間の識別子は,次の要件を満足しなければならない。
    1. URIは,W3Cによって示された要件に適合するとおりに組み立てられる[W3C-NSURI]
    2. デフォルト名前空間識別子は,言語プロファイルを識別することが望ましい。
      言語プロファイルがより大きな言語プロファイルの部分集合の場合,デフォルト名前空間識別子は,そのより大きな言語プロファイルを識別してもよい。部分集合の言語プロファイル>においてサポートされることが要求されるモジュールの集まりは,smil要素上のsystemRequired属性を通して示してもよい。
      例におけるSMIL Basic言語プロファイル規定を参照すること。

2.4.4 SMILホスト言語適合文書におけるエラーの取扱い

SMILホスト言語適合文書における構文エラーは,整形式の又は妥当なXMLに対するXMLの規則[XML10]に従って扱われる。

セマンティクスのエラーは,様々なレベルで起こり得る。例えば,宣言された属性値が未知の値という場合がある。組み立てられたプレゼンテーションは,複数のメディアオブジェクトが表示空間を取り合う場合,又はそれらがあいまいに同期する場合に,矛盾することもある。これらの後者の場合は,制作者の意図によると恐らくエラーなのだが,エラーとは考えられず,利用者エージェントは,この規定で定義される解決規則に従って表示する。

2.4.5 属性値における構文エラーの取扱い

属性値におけるエラーがパーサには未検出のままとなることがあるかもしれない。これは,値の型がCDATAとして宣言されているとか,又は例えばイベントの場合のように,値の範囲が決められていないことによる。しかし,言語プロファイルがサポートされた値集合を指定している,与えられた言語プロファイル内では,属性値のエラーは,検出することができる。言語プロファイルの規定は,それら属性値エラーが生じたときに要求されるエラーの扱いを規定することを要求する。

2.5 言語プロファイルのためのDTDの制作

2.5では,SMIL 2.0モジュールのDTDを使用して,どのように言語プロファイルを定義できるかを示す。読者は,"XHTMLのモジュール化(Modularization of XHTML"[XMOD]で定義される機構,特に,その附属書D[XMOD-APPD]及び附属書E[XMOD-APPE]をよく理解していると仮定する。一般に,SMIL 2.0モジュールのDTDは,XHTMLモジュールのDTDが使用するのと同じ機構を使用する。ただし,次に例外を示す。

  1. SMILは,非SMIL要素に出現可能なSMIL属性のために,修飾された属性名をサポートする。これは,これらの属性が,SMIL 2.0の名前空間に属するのを示すために接頭辞を使用できるようにする。
  2. SMILは,XHTMLのelement/attlistレベルの代わりにモジュールレベルのINCLUDE/IGNOREをサポートする。XHTMLモジュール化と同様に,これは,プロファイルが一つのモジュールの一部だけをインポートすることを禁止する。すなわち,すべての要素及び属性をサポートするのか,何もサポートしないのか,どちらかでなければならない。

次に,SMIL 2.0のモジュール化DTDを定義するために使用するファイルの簡略記述を与える。関連するファイル名の完全な一覧のためには,2.における表及び2.の最後を参照すること。

XHTMLモジュール化DTDと同じ機構に従って,SMIL 2.0規定は,別々のファイル,SMILモジュールファイル,の中に,すべてのSMIL 2.0の要素のXML要素宣言(すなわち,<!ELEMENT...>)及び属性リスト宣言(すなわち,<!ATTLIST...>)を置く。一つのSMILモジュールファイルが,SMIL 2.0規定の各々の機能領域に対して提供される。すなわち,アニメーション,レイアウト,タイミングなどに対して,それぞれ,一つのSMILモジュールファイルが存在する。

SMILモジュールファイルは,SMIL 2.0 Languageプロファイル規定の規定的な定義で使用される。他のSMILプロファイルを定義するために同じモジュールファイルを使用することが望ましいが,必須ではない。SMIL言語プロファイルが従わなければならない要件は,SMIL 2.0規定の中で示され,DTD記述の中では示されない。

互いに独立であって言語プロファイルに独立なSMILモジュールファイルを作成するために,要素宣言及び属性宣言は,XML実体を多用する。これは,プロファイルに,SMIL要素の実際の内容モデル及び属性を定義するために必要な取掛りを提供する。

SMIL 2.0 Languageプロファイルは,どのようにSMILモジュールファイルを使用できるかという例を提供する。そのDTDファイルの大部分は,異なるプロファイルをまたがって再利用される。再利用されるのは,SMILモジュールファイル,データ型及び共通属性で定義するファイル,必要な場合,名前空間接頭辞を追加する"qname"ファイル,及び適切な順序でファイルを含めるフレームワークファイルとする。

各々のプロファイルに対して異なるファイルは,ドライバファイル及び文書モデルファイルとする。一般に,これは,新しいプロファイルにも適用される。しかし,新しい言語プロファイルを定義するためには,拡張モジュール,どのモジュールを使用するかを定義するドライバファイル,及び拡張された文書モデルを定義する文書モデルファイルを書かなければならない。ドライバファイル及び文書モデルファイルについて,次に,更に詳細に示す。

ドライバファイル

これは,文書のDOCTYPE宣言によって参照されるファイルとする。その主な役割は,プロファイルがどの文書モデルファイル及びSMILモジュールファイルを使用しているか定義することとする。それは,すべての名前空間接頭辞で使用されるオプションの名前空間を定義してもよい。例えば,すべてのSMIL要素名に"foobar"を接頭辞として付けるためには,プロファイルの始めに次を付加できる。

<!ENTITY % SMIL.prefixed "INCLUDE" >
<!ENTITY % SMIL.prefix "foobar" >

モジュールの中で,例えば,<video>,として定義される要素は,<foobar:video>として構文解析されるようになる。これは,他の要素上に現れるSMIL属性に対しても適用される。そこで,例えば,"begin"は,"foobar:begin"になる。デフォルトは,qname接頭辞を空とする。すなわち,デフォルトによって名前空間接頭辞は実効的に付けないこととする。

これらの定義の後に,ドライバファイルは,フレームワークファイルを取り込み,それに続けて,データ型,共通属性,qname及び文書モデルファイルを取り込む。その後に,このプロファイルが使用するSMILモジュールファイルが取り込まれる。

文書モデルファイル

文書モデルファイルは,そのプロファイルの中の要素の内容モデル及び属性リストを定義するために,SMILモジュールファイルが使用するXML実体を含む。

内容モデルは,一般に,プロファイルごとに異なっている。すなわち,他のモジュールからの要素を含む。SMILモジュールファイルの中でこれらの依存性を避けるために,内容モデルは,文書モデルファイルの中で定義される必要がある。SMILモジュールファイルの中で定義されるとおりの(仮の)デフォルト内容モデルは,すべてのSMIL 2.0要素に対して"EMPTY"とする。

同じ理由で,SMILモジュールファイルは,それらの要素に対してデフォルト属性リストだけを定義する。このデフォルトリストは,SMIL 2.0コア属性及び同じSMILモジュールファイルの中で定義される属性だけを含む。他のすべての属性は,適切なXML実体を定義することによって,このデフォルトリストに追加される必要がある。例えば,Media Objectsモジュールファイルは,そのメディアオブジェクトにおけるコア及びメディア関係属性だけを追加する。タイミング属性などの他の属性は,文書モデルファイルによってこのリストに追加される。

表2.7 SMIL 2.0モジュールのDTDで使用されるすべてのファイルの公式公開識別子及びシステム識別子
事前定義されたプロファイルのためのドライバファイル
-//W3C//DTD SMIL 2.0//EN http://www.w3.org/2001/SMIL20/SMIL20.dtd
事前定義されたプロファイルのための文書モデルファイル
-//W3C//ENTITIES SMIL 2.0 Document Model 1.0//EN http://www.w3.org/2001/SMIL20/smil-model-1.mod
SMIL 2.0モジュールファイル
-//W3C//ELEMENTS SMIL 2.0 Animation//EN http://www.w3.org/2001/SMIL20/SMIL-anim.mod
-//W3C//ELEMENTS SMIL 2.0 Content Control//EN http://www.w3.org/2001/SMIL20/SMIL-control.mod
-//W3C//ELEMENTS SMIL 2.0 Layout//EN http://www.w3.org/2001/SMIL20/SMIL-layout.mod
-//W3C//ELEMENTS SMIL 2.0 Linking//EN http://www.w3.org/2001/SMIL20/SMIL-link.mod
-//W3C//ELEMENTS SMIL 2.0 Media Objects//EN http://www.w3.org/2001/SMIL20/SMIL-media.mod
-//W3C//ELEMENTS SMIL 2.0 Document Metainformation//EN http://www.w3.org/2001/SMIL20/SMIL-metainformation.mod
-//W3C//ELEMENTS SMIL 2.0 Document Structure//EN http://www.w3.org/2001/SMIL20/SMIL-struct.mod
-//W3C//ELEMENTS SMIL 2.0 Timing//EN http://www.w3.org/2001/SMIL20/SMIL-timing.mod
-//W3C//ELEMENTS SMIL 2.0 Transition//EN http://www.w3.org/2001/SMIL20/SMIL-transition.mod
他のユティリティ(データ型,共通属性,qname及びフレームワークのファイル)
-//W3C//ENTITIES SMIL 2.0 Datatypes 1.0//EN http://www.w3.org/2001/SMIL20/smil-datatypes-1.mod
-//W3C//ENTITIES SMIL 2.0 Common Attributes 1.0//EN http://www.w3.org/2001/SMIL20/smil-attribs-1.mod
-//W3C//ENTITIES SMIL 2.0 Qualified Names 1.0//EN http://www.w3.org/2001/SMIL20/smil-qname-1.mod
-//W3C//ENTITIES SMIL 2.0 Modular Framework 1.0//EN http://www.w3.org/2001/SMIL20/smil-framework-1.mod