Le profil SMIL 2.0 décrit les modules SMIL 2.0 inclus dans le langage SMIL 2.0 et détaille comment ces modules sont intégrés. Il contient la gestion de tous les fonctionnalités majeures de SMIL 2.0 incluant l'animation, le contrôle de contenu, la la disposition, les liens, l'objet média, la méta-information, la structure, la temporisation et les effets de transition. Il est conçu pour les clients Web qui gèrent une lecture directe du balisage SMIL 2.0.
Cette section est informative.
Le profil SMIL 2.0 est défini comme un langage balisé. La syntaxe de ce langage est formellement décrite dans une définition de type de document (DTD) ou un schéma XML qui est basé sur les modules SMIL comme défini dans « Les modules SMIL 2.0 ».
Les conditions requises pour la conception du profil SMIL 2.0 sont :
Cette section est normative.
Cette version de SMIL fournit une définition des documents strictement conforme avec SMIL 2.0, qui sont limités aux balises et attributs de l'espace de nommage SMIL 2.0. La section « L'extension du langage SMIL 2.0 » fournit l'information pour l'utilisation de SMIL 2.0 avec d'autres espaces de nommage, par exemple, en incluant de nouvelles balises dans les documents SMIL 2.0.
Un document SMIL 2.0 est un document SMIL 2.0 conforme s'il adhère à la spécification décrite dans ce document (spécification du profil du Langage d'Intégration Multimédias Synchronisés (SMIL) 2.0) incluant le DTD de SMIL 2.0 (voir « La définition du type du document »). Un document SMIL 2.0 conforme doit respecter tous les critères suivants :
Le DOCTYPE du langage SMIL 2.0 est :
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN" "http://www.w3.org/2001/SMIL20/SMIL20.dtd">
Si un document contient cette déclaration, ça doit être un document XML valide. Notez que ceci implique que les extensions à la syntaxe définie dans le DTD ne sont pas autorisées. Si le document n'est pas valide, l'agent utilisateur devrait produire une erreur ;
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> ... </smil>
La déclaration de l'espace de nommage par défaut doit être xmlns="http://www.w3.org/2001/SMIL20/Language" ;
Déclarons un document SMIL 2.0 avec des extensions personnalisées conformes à un DTD personnalisé :
<!DOCTYPE smil SYSTEM "http://www.example.org/myveryownSMIL.dtd"> <smil xmlns="http://www.w3.org/2001/SMIL20/Language" xmlns:mysmil="http://www.example.org/2001/SMIL30/Language"> <mysmil:foo> ... </mysmil:foo> </smil>
Si tous les éléments et attributs d'un espace de nommage non-SMIL 2.0 et tous les attributs xmlns qui se rapportent à des éléments d'un espace de nommage non-SMIL 2.0 sont retirés du document donné et si la déclaration <!DOCTYPE ... > approprié qui pointe sur le DTD de SMIL 2.0 est inclus, le résultat est un document XML valide ;
<smil xmlns="http://www.w3.org/2001/SMIL20/Language" xmlns:BasicInlineTiming="http://www.w3.org/2001/SMIL20/BasicInlineTiming"> ... <ref begin="5s" BasicInlineTiming:begin="5s"/> ... </smil>
Le langage SMIL 2.0 ou ces critères de conformité ne fournissent aucune limite de taille sur n'importe quel aspect du contenu SMIL 2.0. Il n'y a aucune limite supérieure sur le nombre d'éléments, la quantité de données textuelles ou le nombre de caractères dans les valeurs d'attribut.
SMIL 2.0 déprécie base comme valeur de propriété pour l'attribut content de l'élément de SMIL 1.0 en faveur des mécanismes d'URI plus généraux de XML Base.
Le profil de langage SMIL 2.0 gère la recommandation XML Base [XMLBase]. XML Base est géré sur tous les éléments et affecte l'interprétation des URI, comme spécifié dans les modules individuels définissant les attributs d'URI. En particulier, tout URI de base XML Base applicable doit être appliqué pour l'interprétation de l'attribut href des éléments de lien a, area et anchor, ainsi que de l'attribut src des éléments médias audio, video, img, animation, textstream, text et ref. XML Base doit aussi être appliqué aux attributs longdesc de tous les éléments du langage SMIL 2.0.
Les règles ci-dessus devraient être révisées une fois qu'un schéma XML normatif pour SMIL 2.0 sera disponible. Cette révision prendra en compte la validation du schéma XML.
Un agent utilisateur SMIL 2.0 est un programme qui peut analyser et traiter un document SMIL 2.0 et rendre le contenu du document sur un média de sortie. Un agent utilisateur SMIL 2.0 conforme doit satisfaire à tous les critères suivants :
Exemples :
1) Un document SMIL 1.0 pur :
<smil xmlns="http://www.w3.org/TR/REC-smil"> ... </smil>
2) Un document SMIL 2.0 pur :
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> ... </smil>
3) Un document SMIL 1.0 qui a été étendu pour utiliser l'élément excl :
<smil xmlns="http://www.w3.org/TR/REC-smil"
xmlns:smil20="http://www.w3.org/2001/SMIL20/" >
<smil20:excl>
...
</smil20:excl>
</smil>
4) Un document SMIL 2.0 qui a été étendu pour utiliser l'élément "foo" d'une version SMIL 3.0 fictive de SMIL :
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:smil30="http://www.example.org/2001/SMIL30/" >
<smil30:foo>
...
</smil30:foo>
</smil>
L'Initiative d'Accessibilité au Web (WAI) définit « Les directives pour l'accessibilité des agents utilisateurs 1.0 » [UAAG]. Les développeurs sont encouragés à concevoir des agents utilisateurs qui répondent au moins aux exigences du Niveau A de ce document. Si UAAG 1.0 devient une Recommandation du W3C, une future version de SMIL est susceptible d'exiger la conformité avec le Niveau A de UAAG 1.0 comme faisant partie de la conformité d'un agent utilisateur SMIL.
Le profil de langage SMIL 2.0 gère les fonctionnalités multimédias axées sur un plan de montage chronologique des modules SMIL 2.0. Il utilise seulement les modules de la recommandation SMIL 2.0. Comme le profil de langage inclut les modules obligatoires, c'est un profil de langage conforme au langage hôte SMIL. Ce profil de langage inclut les modules SMIL 2.0 suivants :
Les noms de collection contenus dans le tableau suivant définissent le vocabulaire du profil SMIL 2.0.
| Profil SMIL 2.0 | |
|---|---|
| Nom de la collection | Éléments de la collection |
| Animation | animate, set, animateMotion, animateColor |
| ContentControl | switch, prefetch |
| Layout | region, root-layout, layout, regPoint, topLayout |
| LinkAnchor | a, area (anchor) |
| MediaContent | text, img, audio, video, ref, animation, textstream, brush, param |
| Metainformation | , |
| Structure | smil, head, body |
| Schedule | par, seq, excl |
| Transition | transition |
Dans les sections suivantes, nous définissons l'ensemble des éléments et attributs utilisés dans chaque module compris dans le profil SMIL 2.0. Le modèle de contenu est décrit pour chaque élément. Le modèle de contenu d'un élément est une description des éléments qui peuvent apparaître en tant qu'enfants directs. Le modèle de contenu spécial "EMPTY" signifie qu'un élément donné ne peut pas avoir d'enfant.
| Nom de la collection | Attributs de la collection |
|---|---|
| Core | id (ID), class (NMTOKEN), title (CDATA), alt (CDATA), longdesc (CDATA), xml:base vf (CDATA) |
| I18n | xml:lang (NMTOKEN) |
Les attributs id, class et title de la collection Core sont définis pour tous les éléments du profil SMIL 2.0. L'attribut id est utilisé dans le profil de langage SMIL 2.0 pour assigner un identifiant XML unique à chaque élément d'un document SMIL. Dans ce document, les attributs et éléments équivalents, mais dépréciés, sont entre parenthèses.
Le module d'animation fournit un cadre pour l'intégration d'une animation dans un environnement de temporisation et un mécanisme pour la composition des effets de plusieurs animations. Le module d'animation utilise les modules de temporisation inclus dans ce profil pour modèle sous-jacent du temps. Le profil SMIL 2.0 inclut la fonctionnalité d'animation du module BasicAnimation. Le module BasicAnimation définit la sémantique des éléments animate, set, animateMotion et animateColor.
Dans le profil de langage SMIL 2.0, les éléments d'animation peuvent avoir les attributs et le modèle de contenu suivants :
| Module d'animation | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| animate | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, fill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) | EMPTY |
| set | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, to, skip-content, customTest, fill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) | EMPTY |
| animateMotion | Core, I18n, basicTiming, Test, targetElement, origin, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, fill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) | EMPTY |
| animateColor | Core, I18n, basicTiming, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, customTest, fill (freeze | remove | hold | auto | default), fillDefault ( remove | freeze | hold | transition | auto | inherit ) | EMPTY |
Ce profil ajoute les éléments animate, set, animateMotion et animateColor au modèle de contenu des éléments par, seq, excl et priorityClass dans « Les modules de temporisation et de synchronisation ». Il ajoute également ces éléments au modèle de contenu de l'élément body du module Structure.
Spécification de l'élément cible de l'animation
Les éléments cibles d'animation gérés dans le profil SMIL 2.0 sont l'élément region, défini dans « Les modules de disposition », l'élément area (anchor), défini dans « Les modules de lien », et les éléments text, img, audio, animation, video, ref, textstream et brush, définis dans « Les modules d'objet média ».
Le profil de langage SMIL 2.0 utilise l'attribut targetElement pour identifier l'élément qui doit être affecté par les éléments d'animation. Comme recommandé dans « Le module BasicAnimation », quand l'attribut targetElement est géré, ce profil exclut les attributs XLink href, type, actuate et show des éléments animate, set, animateMotion et animateColor.
Spécification de l'attribut cible de l'animation
Les attributs cibles des animations sont un sous-ensemble de ceux de region, area (anchor) et des éléments médias. Les attributs que l'on peut animer, des éléments region, area (anchor) et des éléments médias, sont listés dans le tableau ci-dessous.
L'élément area (anchor) a l'attribut coords qui peut être sujet à une animation. L'attribut coords est considéré être du type chaîne dans ce profil. Ceci signifie que seule une animation discrète non-additive est gérée par cet attribut.
Les éléments médias ont les attributs de sous-région suivants, qui peuvent être
sujets à une animation :
left,
right,
top,
bottom,
width,
height,
z-index et
backgroundColor.
Définitions d'intégration
Le profil de langage SMIL 2.0 définit un ensemble de définitions d'intégration comme cela est exigé par les modules d'animation. Ces définitions sont :
coerced-integer-value = Math.floor( interpolated-value + 0.5 )
Les modules de contrôle de contenu
fournissent un environnement de développement pour choisir le contenu en fonction d'un ensemble d'attributs de test.
Les modules de contrôle de contenu définissent
une sémantique pour les éléments
switch,
prefetch,
customAttributes
et customTest.
Le profil SMIL 2.0 inclut les fonctionnalités de contrôle du contenu
des modules BasicContentControl,
CustomTestAttributes,
PrefetchControl
et SkipContentControl.
Dans le profil de langage SMIL 2.0, les éléments de contrôle de contenu peuvent avoir les attributs et le modèle de contenu suivants :
| Module de contrôle de contenu | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| switch | Core, I18n, Test, customTest | (Schedule | priorityClass | MediaContent | ContentControl | LinkAnchor | Animation | layout )* |
| prefetch | Core, I18n, Test, Timing, mediaSize, mediaTime, bandwidth, src, clipBegin (clip-begin), clipEnd (clip-end), skip-content, customTest | EMPTY |
| customAttributes | Core, I18n, Test, skip-content | customTest+ |
| customTest | Core, I18n, skip-content, defaultState (true|false) 'false', override (visible | hidden) 'hidden', uid (URI) | EMPTY |
Ce profil ajoute l'élément switch au modèle de contenu des éléments par, seq et excl dans « Les modules de temporisation et de synchronisation », au modèle de contenu des éléments body et head dans « Le module de structure », au modèle de contenu de l'élément a dans « Les modules de lien ». Le profil ajoute l'élément customAttributes au modèle de contenu de l'élément head et l'élément customTest au modèle de contenu de l'élément customAttributes.
Les fonctionnalités de contrôle de contenu sont utilisée pour définir l'ensemble d'attributs "Test" :
| Nom de la collection | Attributs de la collection |
|---|---|
| Test | systemBitrate (system-bitrate), systemCaptions (system-captions), systemLanguage (system-language), system-overdub-or-caption, systemRequired (system-required), systemScreenSize (system-screen-size), systemScreenDepth (system-screen-depth), systemOverdubOrSubtitle, systemAudioDesc, , systemCPU, systemComponent |
La collection d'attributs Test est ajoutée à tous les éléments définis dans le profil SMIL 2.0, à l'exception de customTest et customAttributes. Un agent utilisateur SMIL 2.0 doit gérer toutes les valeurs des attributs et systemCPU, listées dans les modules de contrôle de contenu. De plus, l'agent utilisateur devrait accepter les valeurs avec un espace de nommage comme de futures extensions et ne pas déclarer d'erreur de syntaxe. L'agent utilisateur devrait renvoyer une valeur "false" pour les valeurs inconnues des attributs et systemCPU .
Les modules de disposition fournissent un environnement de développement pour la disposition spatiale des composants visuels. Les modules de disposition définissent la sémantique des éléments region, root-layout, topLayout, layout et regPoint. Le profil SMIL 2.0 inclut les fonctionnalités de disposition des modules BasicLayout, AudioLayout, MultiWindowLayout et HierarchicalLayout.
Dans le profil de langage SMIL 2.0, les éléments de disposition peuvent avoir les attributs et le modèle de contenu suivants :
| Module de disposition | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| region | Core, I18n, Test, backgroundColor (background-color), showBackground (always | whenActive), bottom, fit (fill | hidden | meet | scroll | slice), width, height, left, right, top, soundLevel, z-index, skip-content, customTest, regionName | region* |
| root-layout | Core, I18n, Test, backgroundColor (background-color), width, height, skip-content, customTest | EMPTY |
| topLayout | Core, I18n, Test, backgroundColor (background-color), width, height, open, close, skip-content, customTest | region* |
| layout | Core, I18n, Test, type, customTest | (root-layout | region | topLayout | regPoint)* |
| regPoint | Core, I18n, Test, top, bottom, left, right, regAlign ( topLeft|topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight ), skip-content, customTest | EMPTY |
(**) L'attribut "background-color" de SMIL 1.0 est déprécié en faveur de "backgroundColor", mais les deux sont gérés.
La collection d'attributs SubregionAttributes est définie comme suit :
| Nom de la collection | Attributs de la collection |
|---|---|
| SubregionAttributes | top, left, bottom, right, width, height, z-index, fit, backgroundColor (background-color), regPoint, regAlign |
Ce profil ajoute l'élément layout au modèle de contenu de l'élément head dans « Le module de structure ». Il ajoute également cet élément au modèle de contenu de l'élément switch dans « Les modules de contrôle de contenu », quand l'élément switch est un enfant de l'élément head.
Les modules de lien fournissent un environnement de développement pour mettre en rapport des documents avec un contenu, d'autres documents ou fragments de document. Les modules de lien définissent la sémantique des éléments a et area (anchor). Ils définissent également la sémantique d'un ensemble d'attributs définis pour ces éléments. Le profil SMIL 2.0 inclut les fonctionnalités de lien des modules BasicLinking, LinkingAttributes et ObjectLinking.
Les deux éléments a et area ont un attribut href, dont la valeur doit être un URI valide.
La gestion des URI avec une syntaxe d'identifiant de fragment XPointer n'est pas exigée.
Dans le profil de langage SMIL 2.0, les éléments de lien peuvent avoir les attributs et le modèle de contenu suivants :
| Module de lien | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| a | Core, I18n, basicTiming, Test, href, sourceLevel, destinationLevel, sourcePlaystate (play | pause | stop) 'pause', destinationPlaystate (play | pause | stop) 'play', show (new | replace | pause) 'replace', accesskey, tabindex, target, external, actuate, customTest | (Schedule | MediaContent | ContentControl | Animation )* |
| area (anchor) | Core, I18n, basicTiming, Test, shape, coords, href, nohref, sourceLevel, destinationLevel, sourcePlaystate, destinationPlaystate, show, accesskey, tabindex, target, external, actuate, shape, fragment, skip-content, customTest | (animate | set)* |
Ce profil ajoute les éléments area et a au modèle de contenu des éléments par, seq et excl dans « Les modules de temporisation et de synchronisation ». Il ajoute également ces éléments au modèle de contenu de l'élément body dans « Le module de structure » errata-E17.
Dans le profil de langage SMIL 2.0, une valeur fixée à onLoad pour l'attribut actuate indique que le lien est automatiquement activé quand l'élément de lien devient actif. Pour les éléments de lien contenant une temporisation SMIL, c'est quand la durée active de l'élément de lien débute.
L'attribut tabindex spécifie la position de l'élément dans l'ordre de tabulation à un instant particulier pour le document courant. L'ordre de tabulation définit l'ordre dans lequel les éléments recevront le focus quand ils sont parcourus par l'utilisateur via un dispositif d'entrée tel qu'un clavier. À tout point particulier dans le temps, seuls les éléments actifs sont pris en compte pour l'ordre de tabulation ; les éléments inactifs sont ignorés.
Quand un élément d'objet média a un attribut tabindex et devient actif, alors son index de tabulation ordonné est inséré dans l'index de tabulation de SMIL à l'emplacement spécifié par la valeur de l'attribut tabindex de l'objet média. Ceci suppose que l'objet média en question possède un index tabulé, tel qu'un document HTML incorporé avec des attributs tabindex. Ceci permet à tous les points de départ des liens dans une présentation SMIL d'avoir une place dans la liste ordonnée pour leur parcours avec la touche tabulation, y compris les liens des présentations incorporées.
Pour une compatibilité avec SMIL 1.0, l'élément anchor est valide mais déprécié en faveur de l'élément area. L'élément anchor reconnaît les mêmes attributs que area, les nouveaux attributs SMIL 2.0 et les attributs SMIL 1.0 qui sont définis dans [SMIL10].
Compatibilité avec SMIL 1.0 : La valeur pause de l'attribut show est déprécié en faveur du paramétrage des attributs show à la valeur new et sourcePlaystate à la valeur pause.
Les modules d'objet média fournissent un environnement de développement pour déclarer des médias. Les modules d'objet média définissent une sémantique pour les éléments ref, animation, audio, img, video, text, textstream et brush. Le profil SMIL 2.0 inclut les fonctionnalités de média des modules BasicMedia, MediaClipping, MediaClipMarkers, MediaParam, BrushMedia et MediaAccessibility.
Dans le profil de langage SMIL 2.0, les éléments médias peuvent avoir les attributs et le modèle de contenu suivants :
| Modules d'objet média | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| text, img, audio, animation, video, ref, textstream | Core, I18n, Timing, Test, SubregionAttributes, region, fill (freeze | remove | hold | transition | auto | default), , copyright, abstract, src, type, erase, mediaRepeat, sensitivity, tabindex, customTest, transIn, transOut, clipBegin (clip-begin), clipEnd (clip-end), readIndex | (param | area (anchor) | switch | Animation)* |
| brush | Core, I18n, Timing, Test, SubregionAttributes, abstract, region, fill (freeze | remove | hold | transition | auto | default), , copyright, color, skip-content, erase, sensitivity, tabindex, customTest, transIn, transOut, readIndex | (param | area (anchor) | switch | Animation)* |
| param | Core, I18n, Test, name, value, valuetype (data | ref | object), type, skip-content | EMPTY |
SMIL 1.0 autorise l'utilisation de anchor seulement comme élément enfant d'un élément média. En plus de anchor, les éléments suivants sont maintenant autorisés comme enfants d'un objet média SMIL : area, param, animate, set, animateColor, animateMotion (notez que l'élément a n'est pas inclus). L'élément switch est autorisé, avec la restriction que, dans ce cas, le contenu du switch peut seulement provenir d'un même ensemble d'éléments.
Cette section est informative.
Les membres du Groupe de Travail SYMM du W3C pensent que les types MIME suivants seront généralement reconnus par les agents utilisateurs SMIL :
Les développeurs des agents utilisateurs SMIL devraient, par conséquent, s'efforcer de fournir une gestion de chacun de ces types. Notez, cependant, que cette section n'est pas normative et que la gestion de ces types MIME n'est pas une condition préalable pour la conformité avec cette spécification.
Les auteurs sont encouragés à coder des objets médias en utilisant un des types MIME généralement reconnus quand c'est possible. Ceci assurera que leurs documents SMIL puissent être joués par un large éventail d'agents utilisateurs SMIL.
Si les auteurs utilisent un type MIME qui ne fait pas partie de la liste des types généralement reconnus, ils devraient fournir une version alternative codée en utilisant un format de base. Ceci peut être réalisé en utilisant un élément switch comme dans l'exemple suivant :
<switch> <audio src="objet-format-pas-de-base" /> <audio src="objet-format-de-base" /> </switch>
Dans cet exemple, un agent utilisateur gérant le format qui n'est pas un format de base jouera le premier objet média audio, et un agent utilisateur ne gérant pas ce premier format jouera le deuxième objet média audio.
Cette section est normative.
Le module MediaParam définit l'attribut erase, et reporte la définition de la « zone d'affichage » dans le profil de langage. Une « zone d'affichage », pour le langage SMIL 2.0, correspond à l'élément region du module BasicLayout de SMIL. Les effets de erase="never" s'appliquent après la durée active de l'objet média et une éventuelle période de remplissage (définie par la temporisation et la synchronisation de SMIL), et seulement jusqu'à ce qu'un autre média se joue dans la région ciblée par l'objet média, ou jusqu'à ce que le même objet média recommence.
Le module de méta-information fournit un environnement de développement pour décrire un document, soit pour informer l'utilisateur humain, soit pour aider à l'automatisation. Le module de méta-information définit la sémantique des éléments et . Le profil SMIL 2.0 inclut la fonctionnalité de méta-information du module Metainformation.
Dans le profil de langage SMIL 2.0, les éléments de méta-information peuvent avoir les attributs et le modèle de contenu suivant :
| Module de méta-information | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| Core, I18n, skip-content, content (CDATA), name (CDATA) | EMPTY | |
| Core, I18n, skip-content | EMPTY | |
Ce profil ajoute l'élément au modèle de contenu de l'élément head dans « Le module de structure ».
Le modèle de contenu de l'élément metadata est vide. Les profils qui étendent le profil de langage SMIL 2.0 peuvent définir le schéma RDF (cadre de description de ressource) à utiliser, en étendant le modèle de contenu de l'élément metadata. Le cadre de description de ressource est défini dans la recommandation RDF [RDFsyntax] du W3C.
Le module de structure fournit un environnement de développement pour structurer un document SMIL. Le module de structure définit une sémantique pour les éléments smil, head, et body. Le profil SMIL 2.0 inclut la fonctionnalité de structure du module Structure.
Dans le profil de langage SMIL 2.0, les éléments de structure peuvent avoir les attributs et le modèle de contenu suivants :
| Module de structure | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| smil | Core, I18n, Test, xmlns | (head?, body?) |
| head | Core, I18n | (*, (customAttributes,*)?,(,*)?,((layout|switch),*)?, (transition+,*)?) |
| body | Core, I18n, Timing, fill, abstract, , copyright | (Schedule | MediaContent | ContentControl | a )* |
L'élément body agit comme élément racine pour encadrer l'arbre de temporisation. L'élément body a le comportement d'un élément seq. Une temporisation sur l'élément body est gérée. La base de synchronisation de l'élément body est le temps du début de l'application, qui est dépendant de l'implémentation, tout comme l'est le temps de fin de l'application. Notez que l'effet de l'attribut fill sur l'élément body a lieu entre la fin de la présentation et le temps de fin de l'application, et de ce fait l'effet de fill est dépendant de l'implémentation.
Les modules de temporisation et de synchronisation fournissent un environnement de développement pour décrire la structure de temporisation, les propriétés du contrôle de la temporisation et les relations temporelles entre les éléments. Les modules de temporisation et de synchronisation définissent une sémantique pour les éléments par, seq, excl et priorityClass. De plus, ces modules définissent une sémantique pour les attributs incluant begin, dur, end, repeat (déprécié), repeatCount, repeatDur, syncBehavior, syncTolerance, syncBehaviorDefault, syncToleranceDefault, restartDefault, fillDefault, restart, min, max. Le profil SMIL 2.0 inclut les fonctionnalités de temporisation des modules BasicInlineTiming, SyncbaseTiming, EventTiming, MinMaxTiming, RepeatTiming, RepeatValueTiming, WallclockTiming, MultiArcTiming, AccessKeyTiming, BasicTimeContainers, ExclTimeContainers, RestartTiming, SyncBehavior, SyncBehaviorDefault, RestartDefault et FillDefault.
Dans le profil de langage SMIL 2.0, les éléments de temporisation et de synchronisation peuvent avoir les attributs et le modèle de contenu suivants :
| Module de temporisation et de synchronisation | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| par | Core, I18n, Timing, Test, endsync, customTest, fill (freeze | remove | hold | auto | default), abstract, , copyright, region | (Schedule | MediaContent | ContentControl | a | Animation)* |
| seq | Core, I18n, Timing, Test, customTest, fill (freeze | remove | hold | auto | default), abstract, , copyright, region | (Schedule | MediaContent | ContentControl | a | Animation * |
| excl | Core, I18n, Timing, Test, endsync, skip-content, customTest, fill (freeze | remove | hold | auto | default ), abstract, , copyright, region | ((Schedule | MediaContent | ContentControl | a | Animation)* | priorityClass+) |
| priorityClass | Core, I18n, Test, peers ( stop | pause| defer | never ) 'stop', higher ( stop | pause ) 'pause', lower ( defer | never ) 'defer', skip-content, pauseDisplay, customTest, abstract, , copyright | ((Schedule | MediaContent | ContentControl | a | Animation)*) |
Les collections d'attributs Timing et basicTiming sont définies comme suit :
| Nom de la collection | Attributs de la collection |
|---|---|
| Timing | begin, dur, end, repeat (déprécié), repeatCount, repeatDur, syncBehavior ( canSlip | locked | independent | default), syncTolerance, syncBehaviorDefault ( canSlip | locked | independent | inherit ) 'inherit', syncToleranceDefault, restartDefault (always | whenNotActive | never), fillDefault ( remove | freeze | hold | transition | auto | inherit ), restart (always | whenNotActive | never | default), min, max |
| basicTiming | begin, dur, end, repeat (déprécié), repeatCount, repeatDur, min, max |
Ce profil ajoute les éléments par, seq, et excl au modèle de contenu de l'élément body dans « Le module de structure » et ajoute ces éléments au modèle de contenu des éléments a et area dans « Les modules de lien » errata-E18.
Les éléments des modules d'objet média ont les attributs décrivant la temporisation et les propriétés des contenus.
Le profil de langage SMIL 2.0 spécifie quels types d'événement peuvent être utilisés en tant que valeur pour les attributs begin et end. Les événements reconnus sont décrits comme symboles d'événement selon la syntaxe introduite dans « Les modules de temporisation et de synchronisation de SMIL ».
Les symboles d'événement gérés dans le profil de langage SMIL 2.0 sont :
| Événement | exemple |
|---|---|
| focusInEvent (Dans DOM Niveau 2 : "DOMFocusIn") | end="foo.focusInEvent + 3s" |
| focusOutEvent (Dans DOM Niveau 2 : "DOMFocusOut") | begin="foo.focusOutEvent" |
| activateEvent (Dans DOM Niveau 2 : "DOMActivate") | begin="foo.activateEvent" |
| beginEvent | begin="foo.beginEvent + 2s" |
| endEvent | end="foo.endEvent + 2s" |
| repeatEvent | end="foo.repeatEvent" |
| inBoundsEvent | end="foo.inBoundsEvent" |
| outOfBoundsEvent | begin="foo.outOfBoundsEvent + 5s" |
| topLayoutCloseEvent | end="toplayout1.topLayoutCloseEvent" |
| topLayoutOpenEvent | end="toplayout2.topLayoutOpenEvent+5s" |
<ref id="x" end="30s" src="15s.mpg" /> <ref id="y" end="10s" src="20s.mpg" /> <ref id="z" repeatCount="4" src="5s.mpg" />
l'événement x.endEvent se produit à peu près à 30s quand la durée active est écoulée, L'événement y.endEvent se produit à peu près à 10s quand la lecture du média continu se termine précocement, car la durée active est atteinte, et l'événement z.endEvent se produit à peu près à 20s quand la quatrième et dernière répétition se termine, en atteignant la fin de sa durée active. L'événemnt endEvent est délivré aux éléments qui gèrent la temporisation, tels que les éléments médias et les conteneurs de temps, et ne bouillonne pas.
Les limites d'un élément média sont contraintes par les limites de la région dans laquelle il est contenu, i.e., les limites d'un élément média ne s'étendent pas au-delà des limites de sa région. L'événement inBoundsEvent est délivré à un seul élément média et ne bouillonne pas.
Notez que, à la différence du focus clavier qui ne peut être actif que sur un seul objet à la fois, l'état consistant à se tenir dans les limites d'un objet peut être vrai pour plusieurs objets simultanément. Par exemple, si un objet est au-dessus d'un autre et que le curseur est placé sur les deux objets, tous les deux auraient déclenché auparavant un événement inBoundsEvent plutôt qu'un éventuel événement outOfBoundsEvent respectif.
Les limites d'un élément média sont contraintes par les limites de sa région, i.e., les limites d'un élément média ne s'étendent pas au-delà des limites de sa région. L'événement outOfBoundsEvent est délivré seulement aux éléments médias et ne bouillonne pas.
Il y aura des cas où des événements se produiront simultanément. Pour s'assurer que chaque implémentation du langage SMIL 2.0 les manipule dans le même ordre, l'ordre suivant doit être utilisé pour résoudre les indécisions :
Les événements sont listés par ordre de priorité, par exemple, si l'événement #6 dans la liste se produit en même temps que l'événement #7, alors #6 doit se déclencher avant #7.
Les événements InBoundsEvent, focusInEvent, OutOfBoundsEvent, activateEvent et focusOutEvent ne bouillonnent pas et sont délivrés à l'élément média cible.
Les événements beginEvent, endEvent et repeatEvent ne bouillonnent pas et sont délivrés à l'élément temporisé sur lequel l'événement se produit.
Les événements topLayoutOpenEvent et topLayoutCloseEvent ne bouillonnent pas et sont délivrés à l'élément topLayout sur lequel l'événement se produit.
Le profil de langage SMIL 2.0 gère un jeu d'événements extensible. Afin de résoudre les conflits de noms possibles avec les événements qui sont gérés dans ce profil, les noms d'événement qualifiés sont gérés. Des préfixes d'espace de nommage sont utilisés pour qualifier les noms d'événement. En conséquence, le caractère deux-points est réservé dans les attributs end et begin à la qualification des noms d'événement.
Par exemple :
<smil ... xmlns:example="http://www.example.com">
<img id="foo" .../>
<audio begin="foo.example:focusInEvent".../>
...
</smil>
Le temps de début d'un document SMIL est défini au moment où l'agent utilisateur entame le plan de montage chronologique pour tout le document. Le temps de fin d'un document SMIL est défini comme étant égal au temps de fin de l'élément body.
Les modules des effets de transition fournissent un environnement de développement pour décrire des transitions tels que des fondus et des balayages. Les modules des effets de transition définissent une sémantique de l'élément transition. Le profil SMIL 2.0 inclut les fonctionnalités des modules BasicTransitions et TransitionModifiers.
Dans le profil de langage SMIL 2.0, les éléments des effets de transition ont les attributs et le modèle de contenu suivants :
| Module des effets de transition | ||
|---|---|---|
| Éléments | Attributs | Modèle de contenu |
| transition | Core, I18n, Test, dur, type, subtype, startProgress, endProgress, direction, fadeColor, horzRepeat, vertRepeat, borderWidth, borderColor, skip-content, customTest | EMPTY |
Ce profil ajoute l'élément transition au modèle de contenu de l'élément head dans « Le module de structure ».
Les modules des effets de transition ajoutent les attributs transIn et transOut aux éléments ref, animation, audio, img, video, text, textstream et brush dans « Les modules d'objet média ».
Les modules des effets de transition ajoutent la valeur "transition" à l'attribut fill pour tous les éléments pour lesquels cette valeur de l'attribut fill est gérée.
Cette section est normative
Dans l'avenir, le langage SMIL 2.0 pourra être étendu par d'autres recommandations du W3C, ou par des extensions privées. Pour ces extensions, les règles suivantes doivent être respectées :
Les agents utilisateurs SMIL 2.0 conformes sont conçus pour manipuler des documents contenant des extensions qui obéissent à ces deux règles.
Cette section est normative.
La définition du type de document du profil de langage SMIL 2.0 est définie comme un ensemble de modules SMIL 2.0. Tous les modules SMIL 2.0 sont intégrés selon les directives de la Note du W3C « Les modules multimédias synchronisés basés sur SMIL 1.0 » [SMIL-MOD] et définis dans les sections respectives de leur module.
Cette section est informative.
Se référer à la section « Le schéma XML pour le profil de langage SMIL 2.0 ».