SMIL 2.0 fournit un cadre d'adaptation, où une famille de profils SMIL adaptables peut être définie en utilisant des sous-ensembles du profil de langage SMIL 2.0. Un document SMIL peut être écrit conformément à un profil adaptable SMIL de telle façon qu'il fournisse des fonctionnalités réduites sur un appareil aux ressources restreintes tout en autorisant des des possibilités plus importantes avec un appareil plus complet. SMIL 2.0 Basic (ou SMIL Basic) est un profil qui satisfait aux besoins des appareils avec des ressources restreintes comme les téléphones portables ou les lecteurs de CD portables. Le profil SMIL Basic fournit les bases pour définir des profils SMIL adaptables. SMIL Basic est conforme au langage hôte SMIL. Il se compose précisément des modules qui sont requis pour la conformité avec le langage hôte SMIL. Cette section définit le profil SMIL 2.0 Basic et les obligations des documents et agents utilisateurs SMIL Basic conformes. De plus, elle décrit les profils adaptables SMIL, les directives pour les définir et leurs obligations pour la conformité.
Cette section est informative.
Le Langage d'Intégration Multimédias Synchronisés (SMIL) inclut des fonctionnalités puissantes pour des services multimédias variés pour des consommateurs ayant des préférences variées/différentes, allant des appareils de bureau jusqu'aux dispositifs d'information omniprésents tels les téléphones portables, les lecteurs de CD portables, les systèmes de navigation des voitures, les ensembles de télévision et les agents utilisateurs vocaux. Chacune de ces plate-formes a des capacités et des exigences propres. Il est clair que les caractéristiques de SMIL 2.0 ne seront pas toutes requises sur toutes les plate-formes. La modularisation de SMIL 2.0 regroupe les éléments, les attributs, et les valeurs d'attributs de SMIL sémantiquement liés dans un ensemble disjoint de modules SMIL. Ces modules peuvent être recombinés pour produire un profil SMIL qui corresponde aux besoins de différentes communautés. Par exemple, un appareil portable ou un téléphone cellulaire peuvent ne ne gérer qu'un sous-ensemble réduit de modules SMIL 2.0 dans son propre profil.
Ainsi, un profil SMIL permet à un agent utilisateur SMIL d'implémenter seulement le sous-ensemble de la norme SMIL 2.0 dont il a besoin, tout en maintenant l'interopérabilité du document entre les profils d'appareils construits pour des besoins différents. SMIL 2.0 fournit un environnement de développement pour définir une famille de profils adaptables. Un profil adaptable permet aux agents utilisateurs de complexité très variable de rendre, à partir d'un seul document SMIL adaptable, une présentation adaptée aux capacités de l'appareil cible. Une conformité avec le profil SMIL Basic offre une garantie d'interopérabilité.
Les avantages des profils adaptables sont :
Un profil adaptable est défini en élargissant le profil SMIL Basic, en utilisant les facilités de contrôle du contenu pour gérer les caractéristiques spécifiques des applications/appareils via un mécanisme d'espace de de nommage. SMIL Basic est conforme au langage hôte SMIL 2.0. Il contient tous les modules SMIL requis pour la conformité avec le langage hôte. En fait, il ne contient que les modules requis pour la conformité avec le langage hôte. Un agent utilisateur est dit être conforme à SMIL Basic s'il peut interpréter des documents au moins aussi complexes qui ceux autorisés par SMIL Basic. Il peut interpréter des documents significativement plus complexes dans la mesure où il gère des extensions. Les agents utilisateurs conformes au profil de langage SMIL 2.0 sont automatiquement conformes à SMIL 2.0 Basic.
Cette section est normative.
Le profil SMIL 2.0 Basic se compose du même ensemble des modules requis pour la conformité avec le langage hôte SMIL dans les appareils à ressources restreintes. Cela inclut les modules SMIL 2.0 suivants :
Bien que pas strictement requis, nous encourageons fortement, pour les langages basés sur SMIL Basic à d'inclure le module SyncbaseTiming dans « Les modules de temporisation et de synchronisation de SMIL 2.0 » en utilisant le mécanisme des profils adaptables, et, pour les agents utilisateurs SMIL Basic, de gérer le module quand les limitations de l'appareil ne l'interdisent pas.
Les déclarations des espaces de nommage XML utilisant les attributs xmlns et d'internationalisation XML xml:lang sont gérés sur tous les éléments.
Un document SMIL Basic est un document SMIL Basic « conforme », s'il est un document SMIL 2.0 conforme.
Un agent utilisateur SMIL Basic est un programme qui peut analyser des documents SMIL 2.0, traiter le sous-ensemble des fonctionnalités de SMIL 2.0 défini et rendre le contenu du document sur des médias de sortie. Un agent utilisateur SMIL Basic conforme doit respecter tous les critères suivants :
Exemples :
<smil xmlns="http://www.w3.org/TR/REC-smil"> . . . </smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> . . . </smil>
<smil xmlns="http://www.w3.org/TR/REC-smil" xmlns:smil20="http://www.w3.org/2001/SMIL20"> <smil20:excl> ... </smil20:excl> </smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language" xmlns:smil30="http://www.example.org/2002/SMIL30/"> <smil30:foo> ... </smil30:foo> </smil>
Cette section est normative.
Un profil adaptable permet aux agents utilisateurs, du plus simple au plus complexe, de rendre, à partir d'un seul document SMIL adaptable, des présentations intelligentes adaptées aux capacités des appareils cibles. Une famille de profils SMIL adaptables peut se construire en utilisant le profil Basic plus un jeu de modules additionnels qui sont combinés pour les besoins particuliers de chacun des profils. Un profil spécifie une certaine adaptabilité en utilisant les facilités de contrôle de contenu pour gérer les caractéristiques spécifiques des applications/appareils via un mécanisme d'espace de nommage. Ce mécanisme permettra l'extension et la mise en place de sous-ensembles SMIL 2.0 de façon uniforme. L'espace de nommage SMIL 2.0 peut être utilisé avec d'autres espaces de nommage XML selon [XML-NS], bien que de tels documents ne soient pas strictement des documents SMIL 2.0 conformes comme défini par ailleurs. Il est prévu qu'un travail ultérieur du W3C puisse fournir les moyens de spécifier la conformité des documents mettant en œuvre de multiples espaces de nommage.
Un profil SMIL 2.0 adaptable contient tous les modules du profil SMIL Basic, comme défini ci-dessus.
De plus, il peut contenir un ou plusieurs des modules SMIL 2.0 qui ne font pas partie de SMIL 2.0 Basic.
La déclaration d'espace de nommage XML utilisant l'attribut xmlns et l'attribut d'internationalisation XML xml:lang sont gérés sur tous les éléments.
Un profil adaptable est spécifié en utilisant les facilités de contrôle de contenu via un mécanisme d'espace de nommage comme suit :
Cette section est informative.
Ici, nous présentons certaines directives pour l'adaptabilité, à l'intention des auteurs de contenu SMIL Basic, qui permettront à leurs contenus d'être joués sur le plus large éventail d'appareils conformes SMIL Basic et conformes au langage SMIL 2.0.
Un document SMIL 2.0 doit déclarer l'espace de nommage pour ses éléments avec l'attribut xmlns de son élément racine smil avec son URI identifiant :
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"> ... </smil>
L'espace de nommage par défaut doit être xmlns="http://www.w3.org/2001/SMIL20/Language".
Avec l'attribut systemRequired l'auteur peut spécifier quels composants de SMIL 2.0 sont requis pour interpréter le document.
Exemples :
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:smil20lang="http://www.w3.org/2001/SMIL20/Language"
systemRequired="smil20lang" >
...
</smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:transition="http://www.w3.org/2001/SMIL20/BasicTransitions"
xmlns:layout="http://www.w3.org/2001/SMIL20/HierarchicalLayout"
systemRequired="transition+layout" >
...
</smil>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:HostLanguage="http://www.w3.org/2001/SMIL20/HostLanguage"
systemRequired="HostLanguage" >
...
</smil>
L'URI de l'espace de nommage de SMIL et les URI des identifiants de module sont définis et réservés dans les modules SMIL 2.0. Les préfixes des espaces de nommage sont placés par l'auteur du document, par exemple, "transition" et "layout". Cela fournit aux auteurs un moyen d'exprimer explicitement quels modules additionnels sont requis pour la gestion du document.
L'auteur peut choisir de qualifier explicitement des blocs de contenu avec les attributs systemRequired ou system-required. L'exemple suivant contient l'attribut systemRequired sur le conteneur seq dans un élément switch, permettant l'inclusion de l'élément brush quand le test "BrushMedia" réussit, et fournissant une alternative basée sur des images quand le module BrushMedia n'est pas géré :
<smil xmlns="http://www.w3.org/2001/SMIL20/Language"
xmlns:BrushMedia="http://www.w3.org/2001/SMIL20/BrushMedia" >
<head>
<layout>
<region id="colorbox" top="0px" left="0px" height="50px" width="50px" />
</layout>
</head>
<body>
<switch>
<seq systemRequired="BrushMedia">
<brush dur="5s" color="#0000FF" region="colorbox"/>
<brush dur="5s" color="#00FF00" region="colorbox"/>
<brush dur="5s" color="#FF0000" region="colorbox"/>
</seq>
<seq>
<img dur="5s" src="blue.jpg" region="colorbox"/>
<img dur="5s" src="green.jpg" region="colorbox"/>
<img dur="5s" src="red.jpg" region="colorbox"/>
</seq>
</switch>
</body>
</smil>
La valeur de l'attribut systemRequired réfère à l'URI identifiant le module en utilisant le préfixe de nommage xmlns:, par exemple, "BrushMedia". Il est préférable que ce nom, en tant qu'identifiant du ou des modules requis, soit le nom du module défini dans la spécification SMIL 2.0. La liste des noms des modules est résumée dans les modules SMIL 2.0.
Notez qu'il y a une différence implicite entre l'attribut systemRequired sur l'élément smil et un attributsystemRequired « en-ligne » sur les autres éléments SMIL. Le premier est une obligation forte pour le rendu du document. Par exemple, si le systemRequired sur l'élément smil liste un module que l'agent utilisateur ne gère pas, même si le module n'est effectivement pas utilisé dans le document, le document est malgré tout interdit de présentation par cet agent utilisateur.
Réciproquement, l'utilisation de l'attribut systemRequired sur d'autres éléments spécifie seulement une condition sur le rendu d'un sous-arbre du document. Si une partie du contenu de la présentation requiert une gestion au-delà de SMIL Basic, cela étant spécifié par l'attribut systemRequired sur l'élément smil, les caractéristiques additionnelles devraient être enveloppées avec l'élément switch et des attributs de test du système, ceux-ci pouvant alors être évalués par un agent utilisateur et être traités en conséquence.
Un document SMIL adaptable doit être un document SMIL 2.0 conforme.
Un agent utilisateur conforme doit se conformer aux obligations pour les agents utilisateurs SMIL Basic, ci-dessus.
Un agent utilisateur conforme doit implémenter au minimum tous les modules définis par le profil SMIL 2.0 Basic.
L'élément switch et les attributs de test du système peuvent être traités soit par le client dans le terminal, soit par le serveur, côté serveur avant livraison (peut-être après une négociation CC/PP [CC/PP]).