戻る 次へ

付録 B SMIL の構文

ここでは、SMIL ファイルの構造および SMIL マークアップを記述する構文規則について説明します。 これらの規則を理解することによって、SMIL プレゼンテーション作成時にメディアの制作者が直面する一般的な問題を回避することができます。

今すぐ表示してください。 (サンプル クリップを表示するための要件)
このサンプルは、SMIL 2.0 ファイル記述の基本事項を示します。

SMIL の拡張子およびファイル名

SMIL ファイルは単純なテキスト ファイルであり、任意のテキスト エディタで作成することができます。 Ram ファイルと同様、作成した内容は必ずプレーン テキストで保存してください。 SMIL ファイルには my_smilfile.smil のように、スペースを含まない簡単な名前と、拡張子 .smil を付ける必要があります。

タグ、属性、および値

SMIL タグはペアで使用され、次のような形式を取ります。

<tag attribute="value"...> ... </タグ>

SMIL タグには以下の 3 つの基本部があります。

tag タグ ペアの前半部では、タグ名が左の山かっこの直後に記述されます。 <body> タグなど、一部のタグは名前だけで構成されます。 その他のタグには、属性が含まれるものがあります。 タグ ペアの後半部は、</smil> のようにタグ名だけがスラッシュの直後に記述されます。 後半のタグには属性がありません。
属性 各属性はタグの 1 機能を定義します。 タグに複数の属性がある場合、属性の順番は無関係です。 属性は通常、タグの次に記述されます。 たとえば <smil> タグには特定の属性を記述することができ、<seq> タグには別の属性を記述することができます。 タグに使用できない属性を記述した場合、RealPlayer からエラー メッセージが返されます。
"value" ほとんどの SMIL 属性には、等号 (=) およびその後に必ず二重引用符で囲んだ値とを記述します。 場合によっては、あらかじめ定義した値の一覧から選択することもあります。 その他の場合、独自の値を定義します。 属性に応じて、値には整数やパーセント値、名前などが使用されます。

タグ ペアの終了タグ

HTML に慣れている方は、ブラウザが終了タグの省略を許可する場合があることをご存じでしょう。 たとえば、HTML の段落は <p> および </p> タグの間に記述する必要がありますが、ほとんどのブラウザは終了タグ </p> の省略を許可しています。 SMIL では省略は許可されず、終了タグを省略するとエラー メッセージが返されます。

単独タグの終了スラッシュ

タグが <head> および </head> のようなタグ ペアに含まれない単独タグの場合、<meta/> のように必ずスラッシュで終了する必要があります。 スラッシュは RealPlayer に対して、必要な情報がすべてタグの山かっこ内に記述されていて、終了タグがないということを知らせます。 一般に、タグ ペアはヘッダー セクションやボディ セクションのようなセクションを作成します。一方単独タグは、「このタイトルを表示する」、「このビデオ クリップを再生する」など、特定の動作を記述します。

タグおよび属性の大文字と小文字の区別

タグ名や属性、値は大文字と小文字を区別します。 この点でも SMIL は HTML と違って厳密です。 たとえば HTML では、段落タグは <p><P> のどちらでもかまいません。 しかし SMIL では、<smil> タグの記述は <SMIL><Smil><smIL> など、すべてが小文字となっているタグ以外はどのようなタグの記述も許可されません。 タグや属性の大文字、小文字は、必ずこのマニュアルに記載されている形式で記述してください。

タグの ID 値

SMIL タグにはすべて、id="value" という形式で ID を与えることができます。 一部の SMIL タグには ID が必要です。 たとえばレイアウトの各領域には、再生対象クリップの割り当てに使用する ID が必要です。 その他のタグの場合、別の SMIL 要素がそのタグと相互作用するかどうかによって、ID はオプションとなります。 以下に、すべての SMIL タグに適用される規則および 参考情報を示します。

SMIL タグ

RealPlayer 用の SMIL 2.0 ファイルの先頭行および最終行は、次のようになります。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:rn="http://features.real.com/2001/SMIL20/Extensions">
...
</smil>

SMIL 2.0 ネームスペース

<smil> タグには次の例のように、必須の長い属性が 1 つあります。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language" ...>

この属性は、ファイルに SMIL 2.0 マークアップが含まれていることを示しています。 この属性を省略してタグ名 (<smil>) だけを記述すると、SMIL 1.0 ファイルを定義することになり、このマニュアルで説明している機能の多くが使用できなくなります。 つまり、この属性および値は上記のとおり正確に記述し、SMIL 2.0 ファイルとして機能させる必要があります。

備考: SMIL 2.0 および RealNetworks 拡張ネームスペースは有効な HTTP URL (ブラウザで開くことが可能) ですが、RealPlayer は SMIL 2.0 ファイル再生時にこれらの Web ページを要求しません。

RealNetworks 拡張ネームスペース

RealPlayer 用にカスタマイズされた SMIL 2.0 機能を使用するには、次のように RealNetworks ネームスペースを <smil> タグに記述する必要があります。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:rn="http://features.real.com/2001/SMIL20/Extensions">

rn:sendTo などのようにカスタマイズされた属性には、このネームスペース用の rn: という接頭辞を付ける必要があります。 カスタマイズされた属性を使用しない場合はこのネームスペースを宣言する必要はありませんが、たとえ RealPlayer 以外のプレーヤーで再生する SMIL 2.0 ファイルであっても、このネームスペースを記述しておいた方が安全です。 カスタマイズされたネームスペースを SMIL ベースのプレーヤーが認識しない場合、プレーヤーはネームスペースを無視します。

ヘッダー セクション

SMIL ファイルでは、ヘッダー セクションは一般に <smil> タグの後に続きます。 ヘッダー セクションは <head> および </head> タグの間の部分です。 <smil> タグと異なり、<head> タグには属性がありません。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:rn="http://features.real.com/2001/SMIL20/Extensions">
<head>
<meta name="title" content="My First SMIL File"/>
<meta name="author" content="Pat Morales"/>
<meta name="copyright" content="(c)2001 Spectacular Media Limited"/>
<layout>
<root-layout width="320" height="240"/>
<region id="video_region"/>
</layout>
</head>
...body section...
</smil>

ボディ セクション

ボディ セクションはヘッダー セクションと共に使用され、SMIL マークアップ内でヘッダー セクションの後に続きます。 ボディとヘッダーを合わせて、プレゼンテーションの機能をすべて定義します。 ヘッダーはプレゼンテーションの形式を記述するのに対して、ボディはプレゼンテーションの内容を記述します。 ボディ セクションはヘッダー セクションと同様に、開始タグと終了タグ <body> および </body> を持ち、属性はありません。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:rn="http://features.real.com/2001/SMIL20/Extensions">
...header section...
<body>
<seq>
<!-- The following clips play in sequence. -->
<audio src="rtsp://helixserver.example.com/song1.rm"/>
<audio src="rtsp://helixserver.example.com/song2.rm"/>
<audio src="rtsp://helixserver.example.com/song3.rm"/>
</seq>
</body>
</smil>

インデントおよび改行

このマニュアル内の例では、各タグは新しい行で始まり、ファイル全体でインデントを使用しています。この方法は、SMIL マークアップ全般に強くお勧めします。 たとえば、SMIL ファイルの先頭行は次のようになります。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="title" content="My First SMIL File"/>

各行は前の行からインデントされ、新しいタグが前のセクションの一部であることを示します。 <meta/> タグは <head> セクションの一部であり、<head> セクションは <smil> セクションの一部です。

熟練した制作者は必ずマークアップにインデントを入れ、ファイルの構成を明確にします。一般にインデントは、Tab を押すごとに 1 段下がります。 これは、ファイルを読む制作者その他の人にとって内容をわかりやすくするためのものです。 ただし、RealPlayer はタブや改行を無視します。 次のようなファイルでも RealPlayer にとっては問題ありませんが、ユーザにはわかりにくいでしょう。

<smil xmlns="http://www.w3.org/2001/SMIL20/Language"><head><meta
name="title" content="My First SMIL File"/><meta name="author" content="Pat
Morales"/><meta name="copyright" content="(c)2001 Spectacular Media
Limited"/></head><body><seq><!-- The following clips play in sequence. ->
<audio src="song1.rm"/><audio src="song2.rm"/><audio src="song3.rm"/></seq>
</body></smil>

コメント

SMIL ファイルでは、次のようにコメントを追加することができます。

<!-- The following clips play in sequence. -->

このタグには終了スラッシュが不要です。 HTML をご存じなら、おそらく理由はおわかりでしょう。このタグは SMIL タグではなく、 HTML スタイルのコメント タグだからです。 HTML で広く使われているため、SMIL でもそのまま採用されました。

インデントと同様、コメント タグはプレゼンテーションに影響しません。 RealPlayer はコメント タグを無視します。このタグは、ファイルに注釈 を入れるためのものです。 インデントを使用しても、複雑な SMIL ファイルを理解するのは困難です。 コメントを使用すればファイルの処理内容に説明を追記することができるので、ファイルの機能を別の人が理解する場合や、制作者自身が読み返す場合にとても便利です。 SMIL マークアップ内に RealPlayer で再生したくないセクションがある場合、そのセクション全体をコメント アウトしてしまうこともできます。

ただし、コメント タグ内のハイフンには意味があります。 コメントは以下の 4 つの文字で始まることが必要です。

<!--

また、コメントは次の 3 つの文字で終了します。

-->

これらの開始および終了記号の間に、コメントをいくらでも記述することができます。 ただし、コメント内に別のコメントを入れることはできません。

SMIL 構文のまとめ


RealNetworks, Inc. ©2002, 2004 RealNetworks, Inc. All rights reserved.
詳細については、RealNetworks を参照してください。
画面左側に目次フレームが表示されない場合は、ここをクリックしてください。
戻る 次へ