<?xml version= 1.0 encoding= iso standalone= yes ?>

of 9
105 views
PDF
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Document Description
Multimédia XML Benoît Piranda Équipe SISAR Université de Marne La Vallée XML l avenir de HTML? Extensible Markup Language, entre HTML et SGML tente de se servir des principes de simplicité du HTML et de
Document Share
Document Transcript
Multimédia XML Benoît Piranda Équipe SISAR Université de Marne La Vallée XML l avenir de HTML? Extensible Markup Language, entre HTML et SGML tente de se servir des principes de simplicité du HTML et de la souplesse SGML Richesse sémantique plus structuré que HTML langage de mise en forme permet l écriture de ses propres DTD Adapté à la réalisation de documents pour Internet moins lourds à mettre en œuvre que SGML conserve la structure initiale de HTML (balises prédéfinies) XML 1.0 est recommandé officiellement par W3C depuis XML Caractéristique importante : la mise en forme des données est totalement séparée des données elles-mêmes. Cela permet de séparer complètement l'information (le contenu) de son apparence (le contenant), et donc de fournir plusieurs types de sortie pour un même fichier de données, en fonction de l'utilisateur ou de l'application (tableau, graphique, image, animation multimédia, fichier HTML,, fichier PDF...). La norme XML La DTD si le document contient une DTD il doit la respecter il doit respecter un formalisme plus rigoureux que HTML pas de balise d ouverture sans fermeture (et vice et versa) Les feuilles de style Structuration des données pour l affichage CSS : issus de l HTML XSL : avec langage de programmation Encore en cours de développement Des liens hypertextes étendus XLL liens multidirectionnels liens multidirectionnels pour retourner au point de départ d un lien inclusion d un sous-document lié dans le document courant Format XML Entête Version Codage du jeu de caractères ISO : europe de l ouest Référence DTD externe ou interne Standalone= yes : DTD dans la page Standalone= no : DTD dans un fichier externe ?xml version= 1.0 encoding= iso standalone= yes ? La DTD Document Type Definition Grammaire permettant de vérifier la conformité d un document Document valide si vérifiant sa DTD Document bien formé si il répond aux règles de XML Emplacement de la DTD Forme interne : dans le fichier ?xml version= 1.0 standalone= yes ? !DOCTYPE élément-racine [déclaration des éléments] Forme externe : dans un fichier accessible par son URL ?xml version= 1.0 standalone= no ? !DOCTYPE élément-racine SYSTEM nom_du_fichier.dtd Langage simple permettant de définir les règles de dérivation 1 Règle de définition de la DTD Déclarer un élément ! ELEMENT Nom Modèle Nom : intitulé de l élément Modèle Type du contenu ANY #PCDATA EMPTY Liste des sous-balises possibles !ELEMENT personne (nom,prenom,telephone), ? !ELEMENT nom (#PCDATA) !ELEMENT prenom (#PCDATA) !ELEMENT telephone (#PCDATA) !ELEMENT (#PCDATA) Règle de définition de la DTD Règle d énumération? : facultatif *,+ : tuples : ou, : séparateur de liste !ELEMENT recettes (liste_ingredients, suite_instructions) !ELEMENT liste_ingredients (ingredient)+ !ELEMENT ingredient (#PCDATA) !ELEMENT suite_instructions (instruction)* !ELEMENT instruction (#PCDATA) Exemples !ELEMENT adresses (adresse)* !ELEMENT adresse (titre?,nom,(boite_postale numero_rue),cp_ville) !ELEMENT titre (#PCDATA) !ELEMENT nom (#PCDATA) !ELEMENT boite_postale (#PCDATA) !ELEMENT numero_rue (#PCDATA) !ELEMENT cp_ville (#PCDATA) ?xml version= 1.0 encoding= iso ? !DOCTYPE adresses SYSTEM adresses.dtd dtd adresses adresse nomsociété Générale /nom boite_postale7001 /boite_postale cp_ville13100 Aix en Provence /cp_ville /adresse adresse titremonsieur /titre nomluc Minighetti /nom numero_rue112 rue de Lyon /numero_rue cp_ville13000 Marseille /cp_ville /adresse /adresses Exemple : ordre libre, contenu mixte !ELEMENT texte (#PCDATA menace rire question cynique)* !ELEMENT menace (#PCDATA) !ELEMENT rire (#PCDATA clignant_oeil)* !ELEMENT question (#PCDATA) !ELEMENT clignant_oeil (#PCDATA) !ELEMENT cynique (#PCDATA) ?xml version= 1.0 encoding= iso ? !DOCTYPE text t SYSTEM texte.dtd t texte Quelquefois la conscience nous dit: menacetu dois penser davantage aux femmes et aux hommes. /menace Alors, bien sûr, on se demande parfois, questionpourquoi il y a là tant matière à reflexion, /question mais quelquefois aussi, on obéit et réfléchit. La femme dit à l'homme: rireoh chéri, clignant_oeiltu vaux ton poids d'or! /clignant_oeil /rire Et l'homme répond: cyniqueoui, parce que je pousse le chariot et que j'y ai mis une pièce de dix francs! /cynique La femme rétorque: riretu as tout compris! /rire /texte Exemple : ANY / EMPTY !ELEMENT anytext ANY !ELEMENT anglais (#PCDATA) !ELEMENT italiano (#PCDATA) ?xml version= 1.0 encoding= iso ? !DOCTYPE anytext SYSTEM anytext.dtd anytext c'est un peu de texte qui signifie en anglais: anglaisthis is some text /anglais et en italien: italianociò iò è un certo testo /italiano /anytext Les entités Abréviations définies Exemple HTML : Schéma de définition !ENTITY [%] Nom [SYSTEM PUBLIC] valeur [mentions supplémentaires] Utilisation &Nom; !ELEMENT lignes_texte (#PCDATA nouvelle_ligne)* !ELEMENT nouvelle_ligne EMPTY ?xml version= 1.0 encoding= iso ? !DOCTYPE lignes_texte SYSTEM lignes_texte.dtd lignes_texte Ceci est le texte, mais où commence la nouvelle_ligne / nouvelle ligne? /lignes_texte 2 Exemple d entités !ELEMENT blocs_de_texte (#PCDATA) !ENTITY jpa Je vous prie d'agréer mes cordiales salutations ?xml version= 1.0 encoding= iso ? !DOCTYPE blocs_de_texte SYSTEM blocs_de_texte.dtd blocs_de_texte En l'attente, &jpa; /blocs_de_texte Exemple d entité !ENTITY % article numero_article, nom_article, quantite_article !ENTITY % additif description classe_produit !ELEMENT stock (entree sortie)* !ELEMENT entree (numero_entree, (%article;), (%additif;)) !ELEMENT sortie (numero_sortie, (%article;), (%additif;)) !ELEMENT numero_entree (#PCDATA) !ELEMENT numero_sortie (#PCDATA) !ELEMENT numero_article (#PCDATA) !ELEMENT nom_article (#PCDATA) !ELEMENT quantite_article (#PCDATA) !ELEMENT description (#PCDATA) !ELEMENT classe_produit (#PCDATA) ?xml version= 1.0 encoding= iso ? !DOCTYPE stock SYSTEM stock.dtd stock entree numero_entree452 /numero_entree numero_article45-234 /numero_arcicle nom_articlefauteuil de bureau ministre /nom_article quantite_article10 /quantite_article classe_produitc-iii /classe_produit /entree sortie numero_sortie318 /numero_sortie numero_arcicle37-917 /numero_arcicle nom_articlearmoire à glaces Narcisse /nom_article tit ti l 3 / tit ti l Règle de définition des attributs Attributs : paramètres de la balise Déclaration d attributs ! ATTLIST Elément Attribut Type Type représente le type de donnée de l'attribut, il en existe trois : CDATA : une chaîne de caractères ID : identifiant unique IDREF : référence à un identifiant existant Liste de valeurs possibles ! ATTLIST Elément Attribut (Valeur1 Valeur2... ) val.def. Niveau de nécessité de l'attribut : #IMPLIED : optionnel #REQUIRED : obligatoire #FIXED : affectation d'une valeur par défaut s'il n'est pas défini Exemple d attributs !ELEMENT autos (auto)* !ELEMENT auto EMPTY !ATTLIST auto type CDATA #REQUIRED annee_construction CDATA #REQUIRED km CDATA #REQUIRED puissance CDATA #REQUIRED prix_vente CDATA #REQUIRED ?xml version= 1.0 encoding= iso ? !DOCTYPE autos SYSTEM autos.dtd autos auto type= audi 80 annee_construction= 1992 km= 125000 puissance= 90 prix_vente= 6250 Euros / /autos Exemple d attributs !ELEMENT hotels (hotel)* !ELEMENT hotel (#PCDATA) !ATTLIST hotel nom CDATA #REQUIRED categorie (I II III IV V) #REQUIRED chambre_simple (oui non) #IMPLIED chambre_double (oui non) oui ?xml version= 1 1.0 encoding= iso ? !DOCTYPE hotels SYSTEM hotels.dtd hotels hotel nom= au lion d'or categorie= iv hôtel situé en lisière de forêt, 150 lits, calme et cher. /hotel hotel nom= arabesque categorie= ii chambre_double= oui chambre_simple= oui hôtel en ville simple, 400 chambres, satisfaisant, sans confort particulier. /hotel hotel nom= lancelot categorie= iii chambre_simple= non hôtel situé dans le centre, 100 lits, agréable, facilement accessible. /hotel /hotels Exemple d attributs avec identifiant !ELEMENT livres (livre)* !ELEMENT livre (#PCDATA) !ATTLIST livre isbn ID #REQUIRED titre CDATA #REQUIRED auteur CDATA #REQUIRED ?xml version= 1 1.0 encoding= iso ? !DOCTYPE livres SYSTEM livres.dtd livres livre isbn= nr_ titre= fleurette facile auteur= professeur Trouvetout Une introduction entre le génie et la folie. /livre livre isbn= nr_ titre= fleurette facile II auteur= professeur Trouvetout Une autre introduction entre le génie et la folie. /livre /livres 3 Exemple d attributs avec référence !ELEMENT liste (point)* !ELEMENT point (#PCDATA) !ATTLIST point nom ID #REQUIRED point_parent IDREF #IMPLIED ?xml version= 1 1.0 encoding= iso ? !DOCTYPE liste SYSTEM liste.dtd liste point nom= racine contenu /point point nom= introduction point_parent= racine introduction /point point nom= histoire point_parent= introduction histoire /point point nom= aujourd_hui point_parent= introduction etat actuel /point point nom= pas point_parent= racine premiers pas /point point nom= exemple point_parent= pas un petit exemple /point /liste Règle de définition de la DTD !ELEMENT img EMPTY !ATTLIST img %attrs; src %URI; #REQUIRED alt %Text; #REQUIRED longdesc %URI; #IMPLIED height %Length; #IMPLIED width %Length; #IMPLIED usemap %URI; #IMPLIED ismap (ismap) #IMPLIED Exemple de définition d attributs La balise img est une balise vide dont les attributs sont src pour le lien (obligatoire) alt pour le texte (obligatoire) Longdesc (facultatif) height ht (facultatif) tif) weight (facultatif) usemap (facultatif) ismap (facultatif) XML principe Un premier exemple simple Liste d informations avec champs facultatifs Liste de musiques Pas toujours de photo de l album ?xml version= 1.0 encoding= iso ? music SUBJECT= XML album artistejohnny Hallyday /artiste titrea la vie, A la mort! /titre photoalavie.jpg /photo date2002 /date piste numero1 /numero chansonentre nous /chanson /piste piste numero2 /numero chansondis-le moi /chanson /piste piste numero3 /numero chansonmarie /chanson /piste piste numero11 /numero chansonceux qui parlent aux étoiles /chanson /piste piste numero12 /numero chansonsi c'était à refaire /chanson /piste /album album artistejohnny Hallyday /artiste titresang pour sang /titre photosangpoursang.jpg /photo date2000 /date XML principe Utilisation d une feuille de style CSS album { position:relative; display:block; width:620px; top:10px; left:40px; background-color:#c0c0c0; padding:2px; } artiste t { position:relative; width:200px; background-color:#808080; color:#000000; font-family:tahoma,arial,helvetica,sans-serif; font-size:14pt; padding:5px; } titre { position:relative; width:300px; background-color:#808080; color:#ffffff; font-family:tahoma,arial,helvetica,sans-serif; font-size:14pt; padding:5px; } Lien avec une feuille de style xsl Affichage des données Extraction des informations /head body xsl:for-each select= music/album hr / table class= type1 tr thnum /th th xsl:value-of / /th /tr xsl:for-each select= piste TR TD[ xsl:value-of select= numero /] /TD TD xsl:value-of select= chanson / /TD /TR /xsl:for-each /table /xsl:for-each /body /html /xsl:template Plusieurs mises en forme des données En changeant le ficher xsl associé ?xml version= 1.0 encoding= iso ? ?xml-stylesheet href= model1.xsl type= text/xsl ? music SUBJECT= XML /xsl:stylesheet 4 Description de scène 3D Problème assez complexe Liste d objets dont on donne des informations sur la géométrie, la radiométrie (couleur) Géométrie : sphère, bloc, cylindre Chaque type a des paramètres propres Rayon, hauteur Radiométrie Composante diffuse, spéculaire Peuvent être des couleurs, ou des textures Objet miroir, transparent? On l affiche en HTML html head /head body bgcolor=# h2liste des objets /h2 ul li isphere /i, rayon 2, origine en (1.,0.,2.), font color=#cc4c99couleur diffuse(0.8,0.3,0.6) /font,,, font color=#e5e5e5couleur spéculaire(0.9,0.9,0.9) /font /li li ipavé /i, coté 1, origine en (2.,-3.,2.), texture diffuse (bois.png), font color=#e5e5e5couleur spéculaire(0.9,0.9,0.9) /font, miroir /li li icylindre /i, rayon 2, hauteur 2, origine en (1.,0.,0.), font color=#cc4c99couleur diffuse(0.8,0.3,0.6) /font /li /ul /body /html Les balises ne servent qu à la mise en page Pas d information sémantique Pas de lien entre les données d une ligne Utilisons le langage XML pour décrire les informations Données uniquement Pas de mise en forme pour l instant Règles Les balises Simples X /X Vides Objet miroir : pas de paramètre Avec paramètres : attributs OBJET id= 1 /OBJET Guillemets obligatoires Choix de structuration de la (sphere, bloc, cylindre) Paramètres simple Paramètres vecteur (diffus, spéculaire, miroir) Paramètre de COULEUR R,V,B Paramètre de TEXTURE NOM Transformations 2D DTD correspondante !ELEMENT objet geometrie,(radiometrie)+ !ATTLIST objet id CDATA #REQUIRED nom CDATA #IMPLIED !ELEMENT geometrie (valeur vec3d)* !ATTLIST geometrie type (sphere bloc cylindre) #REQUIRED !ELEMENT valeur (#PCDATA) !ATTLIST valeur type CDATA #REQUIRED !ELEMENT vec3d (x,y,z) !ATTLIST vec3d type CDATA #REQUIRED !ELEMENT radiometrie (texture couleur) !ATTLIST radiometrie type (diffus speculaire miroir) #REQUIRED 5 ?xml version= 1.0 encoding= iso ? SCENE SUBJECT= XML OBJET id= 1 nom= boule GEOMETRIE type= sphere VALEUR type= rayon 1. /valeur VEC3D type= origine x1. /x y0. /y z2. /z /vec3d /GEOMETRIE RADIOMETRIE type= diffus COULEUR R0.8 /R V0.3 /V B0.6 /B /COULEUR /RADIOMETRIE RADIOMETRIE type= spéculaire COULEUR R0.9 /R V0.9 /V B0.9 /B /COULEUR /RADIOMETRIE 9 /V B0 9 /B /COULEUR /RADIOMETRIE /OBJET OBJET id= 2 nom= pavé GEOMETRIE type= bloc VEC3D type= dimensions x1. /x y1. /y z3. /z /vec3d VEC3D type= origine x1. /x y0. /y z2. /z /vec3d /GEOMETRIE RADIOMETRIE type= diffus TEXTURE NOMbois.png /NOM VEC2D type= echelle s1. /s t1. /t /vec2d VEC2D type= décalage s0. /s t0.5 /t /vec2d /texture /radiometrie RADIOMETRIE type= spéculaire COULEUR R0.9 /R V0.9 /V B0.9 /B /COULEUR /RADIOMETRIE RADIOMETRIE type= miroir / /OBJET /SCENE Visualisation dans un navigateur Les balises ont une signification Elles sont organisées hiérarchiquement Mise en page des données Feuille de style CSS XSL : extensible Style Language Mêmes propriétés que CSS Langage de transformation XSLT Vocabulaire XML pour la sémantique de formatage Exemple de XSL ?xml version= 1.0 encoding= iso ? xsl:stylesheet xmlns:xsl= http://www.w3.org/tr/wd-xsl !-- Feuille de style pour la scène 3D -- xsl:template match= / html head style table.type1 { border-style:groove; border-collapse:collapse; background-color:white; font-family: Times,Helvetica; font-size: 14; line-height: 14pt; } /style /head body titleliste des objets /title h1liste des objets /h1 table class= type1 xsl:for-each select= scene/objet TR TD[ xsl:value-of /] xsl:value-of / /TD TD xsl:apply-templates select= geometrie / /td TD xsl:apply-templates select= radiometrie / /td /TR /xsl:for-each /table /body /html /xsl:template Exemple de XSL (suite) Combinaison XML avec XSL xsl:template match= geometrie i xsl:value-of / /i xsl:apply-templates select= valeur / xsl:apply-templates select= vec3d / /xsl:template xsl:template match= vec3d xsl:value-of /=( xsl:value-of select= x /, xsl:value-of select= y /, xsl:value-of select= z /) /xsl:template ?xml version= 1.0 encoding= iso ? ?xml-stylesheet href= model1.xsl type= text/xsl ? ?xml version= 1.0 encoding= iso ? SCENE SUBJECT= XML OBJET id= 1 nom= boule GEOMETRIE type= sphere xsl:template match= valeur xsl:value-of /= xsl:value-of/ /xsl:template xsl:template match= texture texture nom = xsl:value-of select= nom / xsl:apply-templates select= vec2d / /xsl:template xsl:template match= radiometrie [ i xsl:value-of / /i xsl:apply-templates/] /xsl:template /xsl:stylesheet 6 Issus du langage XPATH Définir une règle associée à une balise xsl:template match= pattern ... /xsl:template xsl:template match= vec3d xsl:value-of l /=( xsl:value-of l select= x /, xsl:value-of select= y /, xsl:value-of select= z /) /xsl:template Exécuter une règle xsl:apply-template template Relance récursivement l application des règles Option : select permet de filtrer le flux d entrée xsl:template match= geometrie i xsl:value-of / /i xsl:apply-templates select= valeur / xsl:apply-templates select= vec3d / /xsl:template Afficher le contenu d une balise xsl:value-of select= expression / Option : disable-output-escaping= yes no Mode d affichage du caractère Réaliser une boucle xsl:for-each select= pattern instructions... /xsl:for-each Répète instructions pour toutes les instances de «pattern» disponibles dans le flux courant // affichage de l attribut type xsl:value-of / // affichage du contenu de la balise VALEUR xsl:apply-templates select= valeur / xsl:for-each select= scene/objet TR TD[ xsl:value-of TD xsl:apply-templates select= geometrie / /td TD xsl:apply-templates select= radiometrie / /td /TR /xsl:for-each Instructions conditionnelles xsl:if test= condition Instructions... /xsl:if xsl:choose xsl:when test= condition1 instr1... /xsl:when xsl:when test= condition2 instr2... /xsl:when... xsl:otherwise instr3... /xsl:otherwise /xsl:choose Trier des balises xsl:sort select= pattern lang= langue data-type= text number nom order= ascending descending case-order= upper-first lower-first / first / Uniquement dans les instructions xsl:for-each et xsl:apply-template 7 XML pour ses propres applications Parser XML Existe sur tous les systèmes Libxml2 sous linux Exemple : Description de scène 3D Multimédia Support Director Benoît Piranda Équipe SISAR Université de Marne La Vallée Réalisation de document multimédia Un logiciel spécifique : Macromédia Director structuration des média (les acteurs) données générales géométrie instants d apparition et de disparition méthode d insertion dans la scène (mélange des couleurs) données spécifiques organisation des acteurs en tenant compte du temps placement géométrique position, orientation, déformation placement temporel instant d entrée et de sortie informations géométriques et de couleurs pour plusieurs images clés interpolation entre les images clés Macromédia Director Gestion des média incorporation d un très grand nombre de format de média images images animées séquences de films sons organisation des données en mémoire (les distribution) chargement dynamique optimisation des animations (chargement unique des média utilisés plusieurs fois) exportation sous forme d un fichier exécutable MS Windows ou mac prêt à graver pour créer un CD ROM Macromédia Director Interactivité très forte notion de comportement rôle que l on peut associer à un acteur lié à un événement (souris, clavier ) indépendant (mouvement aléatoire) pilotage d un média de haut niveau (lecture, arrêt d une animation QuickTime, réglage du niveau sonore...) bibliothèque de comportement et langage de programmation (LINGO) La boite à outils La scène Le scénario La distribution L inspecteur de propriétés 8 La distribution Regroupement des média utilisables dans l animation la mémoire de l animation La scène Partie visible de l animation interface avec l utilisateur organisation géométrique des acteurs Le scénario Organisation temporelle des acteurs Pistes vitesse palette transition son script Instant courant Le scénario Interpolation des informations géométriques suivant une trajectoire dirigée par des images clés Image clé Arrière plan Profondeur des objets dans la scène Premier plan Les propriétés des acteurs Propriétés gén
Similar documents
View more...
Search Related
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x