par Philippe Poulard XSL Philippe Poulard 1
|
|
- Chantal Bois
- il y a 2 ans
- Total affichages :
Transcription
1 1 Philippe Poulard
2 2 T : principes et exemple Fonctionnement : XPath dans T Règles par défaut Pattern matching T Activation des règles : priorité, précédence, sélection Pilotage de T : Production de l'arbre de sortie Instructions de contrôle Typologies des structures, transformations régies par les données Passage de paramètres Variables, result tree fragments Indexation, méthode de Muench Éléments de haut niveau Traitement des blancs Espaces de nommage Numérotation Contrôle de la sérialisation de l'arbre de sortie Production HTML génération de liens Fonctionnalités avancées Intégration de multiples sources de données Structures de données internes Limitations de T Association d'un feuille de style T Programmation T FO Sommaire blocs gabarits des pages flots de contenus
3 T FO Transformation Formattage Edition Transformation Consultation FO PDF RTF PostScript T E X Viewer natif XML CSS T DSSSL OmniMark DOM Processeurs T Xalan, Saxon MSXML2.4.x, xsltproc SAX Alternatives à T Convertisseurs FO 3 FOP (Open Source : FO vers PDF RenderX's XEP (Commercial : FO vers PDF et PostScript jfor (Open Source : FO vers RTF
4 Principes T Transformation T utilise une grammaire XML Un document T est un document XML T est un langage déclaratif (peu procédural) basé sur des règles Langage de programmation : dédié au traitement des documents XML (transformations de structure) basé sur des définitions de règles à appliquer au document source Chaque règle produit un résultat 4 T : permet de manipuler des données faiblement typées (booléens, chaînes, nombres, ensembles de nœuds, fragments de résultat) fournit un ensemble d'opérations de déclaration et de soumission de règles comme <xsl:template>, <xsl:apply-templates>, de tri <xsl:sort>, de formatage du résultat <xsl:output> offre des instructions de contrôle du déroulement du programme (<xsl:if>, <xsl:for-each>, <xsl:choose> ) utilise intensivement XPath
5 Fonctionnement de T Données Document XML Arbres d'entrée DOM Arbre de sortie Sérialisation Document XML Programme Document T Règles T basées sur des modèles XPath Processeur T Document HTML Document texte 5 Certains processeurs peuvent traiter en entrée des arbres DOM ou des événements SAX Certains processeurs peuvent directement délivrer un arbre DOM ou des événements SAX à une application
6 Aperçu de T <?xml version="1.0" encoding="iso "?> <Cours> <Titre>Cours XML</Titre> <Auteur> <Nom>Poulard</Nom> <Prénom>Philippe</Prénom> </Auteur> <Description>Ce cours aborde les concepts de base mis en œuvre dans XML. </Description> </Cours> 6 <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns=" <xsl:output method="html"/> <xsl:template match="/"> <html> <head> dans le contexte de "/" <title><xsl:value-of select="cours/titre"/></title> </head> <body> <h1><xsl:value-of select="cours/titre"/></h1> <xsl:apply-templates select="cours/auteur"/> <xsl:apply-templates select="cours/description"/> </body> </html> <xsl:template match="auteur"> <p align="right">par <xsl:value-of select="nom"/> <xsl:value-of select="prénom"/></p> <xsl:template match="description"> <p><xsl:value-of select="."/></p> </xsl:stylesheet> dans le contexte de "Auteur" Cours XML - Web navig Cours XML par Poulard Philippe Ce cours aborde les concepts de base mis en œuvre dans XML. <html xmlns=" /1999/xhtml"> <head> <title>cours XML</title> </head> <body> <h1>cours XML</h1> <p align="right">par Poulard Philippe</p> <p>ce cours aborde les concepts de base mis en œuvre dans XML. </p> </body> </html>
7 S'utilise dans les attributs : remplacer les < par < XPath dans T <xsl:if test="position() < 5"> Non <xsl:if test="position() < 5"> Oui pour les définitions de règles On utilise un sous-ensemble de XPath : les patterns On y ajoute quelques fonctionnalités propres à T 7 extensions XPath Patterns Fonctions T : current() document() element-available() format-number() function-available() generate-id() key() system-property() unparsed-entity-uri()
8 Contexte d'évaluation de XPath dans T T défini le contexte d'évaluation de chaque expression XPath : le nœud contextuel la position du nœud dans le contexte la taille du contexte les variables les librairies de fonctions supplémentaires (current(), document(),...) la résolution des préfixes Fonctions définies par le processeur T > $custom:limit <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > xmlns:geom=" xmlns:math=" xmlns:xlink=" xmlns:custom=" Définitions utilisées dans la résolution des espaces de nommage <xsl:output method="html"/> <xsl:variable name="custom:limit" select="number(0.5)"/> <xsl:variable name="math:pi" select="number( )"/> <xsl:variable name="date" select="' '"/> Définitions utilisées dans la résolution des variables <xsl:value-of > $custom:limit 8 </xsl:stylesheet>
9 Règles par défaut T <?xml version="1.0" encoding="iso "?> <Cours niveau="débutant"> <!-- le meilleur cours sur XML ;o) --> <Titre>Cours XML</Titre> <Auteur> <Nom>Poulard</Nom> <Prénom>Philippe</Prénom> </Auteur> <?acheter du pain pour ce soir?> <Description>Ce cours aborde les concepts de base mis en œuvre dans XML. </Description> </Cours> <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Une feuille de style T minimaliste permet de produire un résultat. Ce résultat est obtenu grâce à des règles par défaut. Cours XML - Web navig Cours XML Poulard Philippe Ce cours aborde les concepts de base mis en œuvre dans XML. <?xml version="1.0"?> Cours XML Poulard Philippe Ce cours aborde les concepts de base mis en œuvre dans XML. Règles par défaut <xsl:template match="* /"> <xsl:apply-templates/> <xsl:template <xsl:value-of select="."/> 9 <xsl:template match="processing-instruction() comment()"/>
10 Pattern matching <xsl:template match="prénom"> <xsl:template match="nom"> <xsl:template match="auteur/nom"> <xsl:template <xsl:template match="rédacteur/nom"> <xsl:template match="//chapitre//nom"> règles candidates règle retenue <xsl:apply-templates select="//nom"/> 10 <?xml version="1.0" encoding="iso "?> <livre><titre>la philosophie chinoise</titre> <auteur rôle="principal"> <nom>doe</nom><prénom>john</prénom> </auteur> <auteur> <nom>doe</nom><prénom>jane</prénom> </auteur> <chapitre><titre>introduction</titre> <p>le grand <nom>lao Tseu</nom> a dit : <cite>il faut trouver la voie</cite>
11 Appel de règles selon le modèle délégatif <xsl:apply-templates select="expression"/> <xsl:apply-templates"/> Sélection explicite de nœuds Sélection implicite de tous les nœuds fils du contexte (peut contenir commentaires, textes, éléments ) Chaque item de la collection sélectionnée déclenchera sa propre règle (potentiellement différente) Le modèle délégatif est très évolutif, car ces règles peuvent continuer de fonctionner même en cas de modification de la structure Si l'élément title ne peut contenir que du texte, ces règles produiront le même résultat Modèle délégatif <xsl:template match="title"> <h1><xsl:apply-templates/></h1> <xsl:template match="bold"> <b><xsl:apply-templates/></b> Modèle non délégatif <xsl:template match="title"> <h1><xsl:value-of select="."/></h1> <xsl:template match="bold"> <b><xsl:value-of select="."/></b> 11 Si l'élément title est modifié et peut aussi contenir l'élément bold, le modèle délégatif produira l'effet souhaité. Si l'élément bold est modifié et peut aussi contenir l'élément italic, il suffira d'ajouter une règle pour ce nouvel élément
12 Appel de règle <xsl:call-templates name="nom-de-règle"/> Déclenchement de règle Définition de règle <xsl:template name="nom-de-règle"> Le contexte ne change pas <xsl:apply-templates select="expression"/> <xsl:apply-templates select="expression" mode="catégorie"/> Expression : désigne un ensemble de nœuds avec XPath Pattern : condition sur les nœuds pour déclencher la règle <xsl:template match="pattern"> <xsl:template match="pattern" mode="catégorie"> Le contexte devient celui de l'expression Contexte : Donné par la fonction current() Pattern : "sous-ensemble" de XPath retourne toujours un ensemble de nœud (node-set) les étapes de localisation ne doivent concerner que les axes child ou attribute ou descendent en utilisant la notation // 12 Quand plusieurs règles sont candidates, un algorithme de sélection permet de choisir celle qui sera appliquée, selon : le mode la priorité la préséance
13 Priorité explicite : <xsl:template match="pattern" priority="x"> Priorité Priorité par défaut (selon le pattern) Patterns à une seule étape de localisation : foo-élément 0 ns-blah:foo-élément 0 processing-instruction("foo") 0 0-0,25-0,25 plus une règle est spécifique, plus sa priorité est élevée * -0,5 text() -0,5 node() -0,5 Plus la valeur est grande, plus la priorité est élevée comment() processing-instruction() -0,5-0,5 13 Autres patterns : 0,5
14 Préséance : s'applique aux règles importées par xsl:import Préséance Règle de préséance (comme avec les CSS et la : la dernière règle importée à la primeur sur les autres les règles d'un document importateur prévalent sur celles d'un document importé (surcharge des règles) 5.xsl <xsl:import href="6.xsl"/> 1.xsl <xsl:import href="5.xsl"/> <xsl:import href="2.xsl"/> 6.xsl 2.xsl <xsl:import href="4.xsl"/> <xsl:import href="3.xsl"/> 4.xsl Bibliothèque de règles 3.xsl Règles spécifiques Règles généralistes 14 Les règles surchargées peuvent être évoquées explicitement par : <xsl:apply-imports/>
15 Sélection de règle Toutes les règles Algorithme de résolution Règles avec un attribut "match"? oui non Règles du mode demandé? oui non une seule Règles dont le pattern correspond? aucune plusieurs une seule une seule Règles de plus grande préséance? plusieurs Règles de plus grande priorité? plusieurs (programme mal conçu) 15 Appliquer la règle Appliquer la dernière règle ou Arrêter le traitement (selon le processeur) Appliquer une règle par défaut
16 Production d'éléments Peut se faire : avec des éléments littéraux avec des instructions xsl:element par copie avec les instructions xsl:copy et xsl:copy-of Production de l'arbre de sortie <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <xsl:template match="bar"> <foo> </foo> ou <xsl:template match="bar"> <xsl:element name="foo"> </xsl:element> Copie du nœud courant, et de sa valeur <xsl:template match="bar"> <xsl:copy> </xsl:copy> Ne copie pas les attributs Copie les espaces de nommage 16 Arbre de sortie : <foo> </foo> Copie d'un nœud en profondeur, avec tous les sous-noeuds, et leur valeur <xsl:template match="bar"> <xsl:copy-of select="."/>
17 Calcul de valeurs <xsl:template match="livres"> <table border="1"> <xsl:apply-templates/> </table> Avec xsl:value-of <xsl:template match="livre"> <tr> <td><xsl:value-of select="titre"/></td> <td><xsl:value-of select="auteur/nom"/></td> <td><xsl:value-of select="auteur/prénom"/></td> </tr> <?xml version="1.0" encoding="iso "?> <livres> <livre> <auteur> <nom>victor</nom> <prénom>hugo</prénom> </auteur> <titre>les misérables</titre> </livre> <livre> <titre>germinal</titre> <auteur> <nom>emile</nom> <prénom>zola</prénom> </auteur> </livre> </livres> Production de l'arbre de sortie <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> Web navigator <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <table border="1"> <tr> <td>les misérables</td> <td>victor</td> <td>hugo</td> </tr> <tr> <td>germinal</td> <td>emile</td> <td>zola</td> </tr> </table> Les misérables Victor Hugo Germinal Emile Zola 17 A éviter : <xsl:value-of disable-output-escaping="yes" select="string('<')"/>
18 Production d'attributs Peut se faire : avec des éléments littéraux avec des instructions xsl:attribute avec des jeux d'attributs prédéfinis <xsl:template match="bar"> <foo> <xsl:attribute name="param">value</xsl:attribute> </foo> <xsl:template match="bar"> <xsl:element name="foo" use-attribute-set="foo-attributes"> </xsl:element> Contenus d'attributs calculés Production de l'arbre de sortie <xsl:template match="bar"> <foo param="value"> </foo> <img> <xsl:attribute name="src"> <xsl:text>img/</xsl:text> <xsl:value-of /> </xsl:attribute> </img> <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <image name="photo.jpg"> 18 Attribute Value Template Forme abrégée <img <img src="img/photo.jpg"/>
19 Production d'attributs Ensembles d'attributs Avec xsl:attribute-set Production de l'arbre de sortie <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <xsl:template match="chapter/title"> <fo:block xsl:use-attribute-set="title-style"> <xsl:apply-templates/> </fo:block> <xsl:template match="section/title"> <fo:block xsl:use-attribute-set="title-style"> <xsl:apply-templates/> </fo:block> <xsl:attribute-set name="title-style"> <xsl:attribute name="font-size">12pt</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="text-align">center</xsl:attribute> </xsl:attribute-set> <fo:block font-size="12pt" font-weight="bold" text-align="center"> </fo:block> 19 Il est possible d'utiliser à la fois sur le même élément : des définitions d'ensembles d'attributs et des définitions d'attribut uniques
20 Avec xsl:text Production de texte Permet de contrôler avec précision les contenus des éléments de sortie Production de l'arbre de sortie <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <xsl:template match="/"> (c) Philippe Poulard (c) Philippe Poulard <xsl:template match="/"> <xsl:text>(c) Philippe Poulard</xsl:text> (c) Philippe Poulard Les nœuds blancs qui ne sont pas inclus dans l'élément xsl:text ne produisent pas de nœud texte dans l'arbre de sortie Lorsqu'on produit une sortie HTML, on ne se soucie pas des nœuds blancs puisque HTML les réduit à un seul espace. Sauf pour les éléments comme pre. 20 A éviter : <xsl:template match="/"> <xsl:text disable-output-escaping="yes"><malformé></xsl:text> <malformé>
21 Production de commentaire Avec xsl:comment Production de l'arbre de sortie <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <xsl:template match="foo"> <!-- début du commentaire --> <xsl:comment> commentaire produit en sortie </xsl:comment> <!-- fin du commentaire --> <!-- commentaire produit en sortie --> 21 (sans commentaires)
22 Production d'instructions de traitement Avec xsl:processing-instruction Production de l'arbre de sortie <xsl:text> <xsl:element> <xsl:attribute> <xsl:processing-instruction> <xsl:comment> <xsl:attribute-set> <xsl:copy> <xsl:copy-of> <xsl:value-of> <xsl:number> <xsl:template match="/"> <xsl:processing-instruction name="xml-stylesheet"> <xsl:text>type="text/xsl" href="style.xsl"</xsl:text> </xsl:processing-instruction> <xsl:apply-templates /> <?xml-stylesheet type="text/xsl" href="style.xsl"?> 22
23 Exécution conditionnelle Instructions de contrôle du programme Avec xsl:if <xsl:if> <xsl:choose> <xsl:for-each> 23 <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > <xsl:template match="/"> <html> <body> <table border="1"> <xsl:apply-templates select="équipes/équipe"/> </table> </body> </html> <xsl:template match="équipe"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="bgcolor">yellow</xsl:attribute> </xsl:if> <td><xsl:apply-templates/></td> </tr> </xsl:stylesheet> <?xml version="1.0" encoding="iso "?> <équipes> <équipe cn="fr">om</équipe> <équipe cn="it">milan AC</équipe> <équipe cn="fr">psg</équipe> <équipe cn="en">arsenal</équipe> <équipe cn="it">juventus</équipe> </équipes> <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> Que se passe-t-il si on remplace par <xsl:apply-templates/>? Web nav OM Milan AC PSG Arsenal Juventus
24 Alternative Avec xsl:choose Instructions de contrôle du programme <xsl:if> <xsl:choose> <xsl:for-each> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > <xsl:template match="/"> <html> <body> <table border="1"> <xsl:apply-templates/> </table> </body> </html> <xsl:template match="équipe"> <tr> <td> <xsl:apply-templates/> (<xsl:choose> <xsl:when <xsl:when <xsl:when <xsl:otherwise>???</xsl:otherwise> </xsl:choose>) </td> </tr> </xsl:stylesheet> <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> <?xml version="1.0" encoding="iso "?> <équipes> <équipe cn="fr">om</équipe> <équipe cn="it">milan AC</équipe> <équipe cn="fr">psg</équipe> <équipe cn="en">arsenal</équipe> <équipe cn="it">juventus</équipe> </équipes> Web navigator OM (France) Milan AC (Italie) PSG (France) Arsenal (Angleterre) Juventus (Italie) 24
25 Boucle Avec xsl:for-each Instructions de contrôle du programme <xsl:if> <xsl:choose> <xsl:for-each> <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > <xsl:template match="/"> <html> <body> <table border="1"> <xsl:for-each select="équipes/équipe"> <tr> <td> <xsl:apply-templates/> (<xsl:choose> <xsl:when <xsl:when <xsl:when <xsl:otherwise>???</xsl:otherwise> </xsl:choose>) </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:stylesheet> 25
26 26 Tri Instructions de contrôle du programme <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > <xsl:template match="/"> <html> <body> <table border="1"> <xsl:for-each select="équipes/équipe"> <xsl:sort order="descending"/> <xsl:sort select="."/> Web navigator Juventus (Italie) Milan AC (Italie) OM (France) PSG (France) Arsenal (Angleterre) <xsl:if> <xsl:choose> <xsl:for-each> <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> <tr> <td> <xsl:apply-templates/> (<xsl:choose> <xsl:when <xsl:when <xsl:when <xsl:otherwise>???</xsl:otherwise> </xsl:choose>) </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:stylesheet> xsl:apply-templates xsl:sort ou xsl:for-each xsl:sort <xsl:apply-templates select="équipes/équipe"> <xsl:sort order="descending"/> <xsl:sort select="."/> </xsl:apply-templates> <?xml version="1.0" encoding="iso "?> <équipes> <équipe cn="fr">om</équipe> <équipe cn="it">milan AC</équipe> <équipe cn="fr">psg</équipe> <équipe cn="en">arsenal</équipe> <équipe cn="it">juventus</équipe> </équipes>
27 Typologie de structures <commande id="kh34jl"> <article id="4l34m" prix="120" qté="5"/> <article id="df40t" prix="210" qté="1"/> <article id="lnk23" prix="330" qté="4"/> </commande> Typologie de structure <vers>maître <b>corbeau</b> sur un arbre perché tenait dans son bec un fromage</vers> <vers>maître <i>renard</i> par l'odeur alléché </vers> Structure régulière (données organisées) Structure hybride Structure documentaire (document narratif) suivi de l'ordre des données Transformation régie par les modèles (Pull) Privilégie l'utilisation de structures programmées Transformation régie par les données (Push) Privilégie l'utilisation de xsl:apply-templates xsl:template 27 La plupart des documents sont des structures hybrides. Les structures purement documentaires ou régulières se trouvent dans des cas particuliers
28 Transformations régies par les données Structures contenant des ensembles d'éléments hétérogènes avec des éléments optionnels récursives dont l'ordre est important Exemple : que se passe-t-il si on triait un poème dans l'ordre alphabétique de ses vers? A l'opposé, une structure régulière, telle qu'une commande, peut être : non triée, triée par date triée par nom d'item triée par prix 28
29 29 Procédures xsl:call-template xsl:with-param xsl:param Instructions de contrôle du programme <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > <xsl:template match="/"> <html> <body> <table border="1"> <xsl:for-each select="équipes/équipe"> <tr> <td> <xsl:apply-templates/> (<xsl:call-template name="label-nation"> <xsl:with-param name="code-nation" </xsl:call-template>) </td> </tr> </xsl:for-each> </table> </body> </html> <xsl:template name="label-nation"> <xsl:param name="code-nation"/> <xsl:choose> <xsl:when test="$code-nation='fr'">france</xsl:when> <xsl:when test="$code-nation='en'">angleterre</xsl:when> <xsl:when test="$code-nation='it'">italie</xsl:when> <xsl:otherwise>???</xsl:otherwise> </xsl:choose> </xsl:stylesheet> <xsl:if> <xsl:choose> <xsl:for-each> <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> Les template nommés fournissent une structure de programmation équivalente aux procédures des langages procéduraux. Ils acceptent le passage de paramètres
30 30 Paramètres xsl:param <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:param name="filtre-nation" select="'fr'"/> <xsl:template match="/"> <html> <body> <h1>equipes en <xsl:call-template name="label-nation"> Passage de paramètres au programme <xsl:with-param name="code-nation" select="$filtre-nation"/> </xsl:call-template > </h1> <ul> <xsl:for-each <li><xsl:apply-templates/></li> </xsl:for-each> </ul> </body> </html> <xsl:template name="label-nation"> <xsl:param name="code-nation"/> <xsl:choose> Permet d'agir de l'extérieur Web navigator Equipes en France OM Valeur modifiable par programme externe PSG filtre-nation 'fr' <xsl:when test="$code-nation='fr'">france</xsl:when> <xsl:when test="$code-nation='en'">angleterre</xsl:when> <xsl:when test="$code-nation='it'">italie</xsl:when> <xsl:otherwise>???</xsl:otherwise> </xsl:choose> </xsl:stylesheet> Web navigator Equipes en Italie Juventus Milan AC Web navigator Le mode d'intéraction dépend du processeur et du langage filtre-nation 'it' Equipes en Anglete <xsl:variable> <xsl:param> Arsenal filtre-nation 'en'
31 Définition de variables xsl:variable Variables <xsl:variable> <xsl:param> On peut assigner à une variable : le résultat d'une expression XPath (boolean, number, string, node-set) du contenu (result-tree-fragment) (Représentation sérialisée d'un résultat) Exemples <xsl:variable name="organisme" select="'fifa'"> <xsl:variable name="âge-du-capitaine" select="number( 22 )"> string number <xsl:variable name="gagné" select="true()"> boolean 31 <xsl:variable name="équipes-françaises" <xsl:variable name="libellé-nation"> <xsl:call-template name="label-nation"> <xsl:with-param name="code-nation" </xsl:call-template> </xsl:variable> <xsl:variable name="lieu"> Stade de France <nation>fr</nation> </xsl:variable> node-set type dépendant du résultat de l'exécution de la règle nommée RTF
32 Utilisation de variables Variables <xsl:variable> <xsl:param> S'utilise dans les expressions XPath <xsl:value-of select="$organisme"/> <xsl:for-each < $âge-du-capitaine]"> <xsl:apply-templates select="$équipes-françaises/joueurs/joueur"/> <xsl:value-of select="$libellé-nation"/> <xsl:value-of select="$lieu"/> Portée : variables globales : définies par des éléments xsl:variable de premier niveau, fils de xsl:stylesheet.et Visibles dans tout le programme variables locales : définies dans les corps de règle. Visibles dans tous les nœuds following-sibling et descendant du nœud xsl:variable On ne peut pas définir 2 variables ayant le même nom si leurs portées se chevauchent (shadowing) à moins que l'une d'elles soit une variable globale ou que les 2 soient globales sans la même préséance. 32 <xsl:variable name="i" select="number(1)"/> <xsl:for-each select="équipe"> <xsl:variable name="i" select="number($i + 1)"/> </xsl:for-each> <p>il y a <xsl:value-of select="$i"/> équipes.</p> Non Provoque une erreur
33 Result tree fragment Ne peut pas s'utiliser comme un node-set <xsl:variable name="lieu"> Stade de France <nation>fr</nation> </xsl:variable> Variables <xsl:variable> <xsl:param> <xsl:apply-templates select="$lieu/nation"/> Non Provoque une erreur Les processeurs T utilisent souvent une extension non prévue dans le standard qui permette de convertir un result-tree-fragment en node-set. <xsl:apply-templates select="node-set($lieu)/nation"/> Son utilisation dépend du processeur Xalan-Java <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:xalan=" <xsl:apply-templates select="xalan:nodeset($lieu)/nation"/> 33 MSXML2.4.x <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:msxsl="urn:schemas-microsoft-com:xslt"> <xsl:apply-templates select="msxml:node-set($lieu)/nation"/>
34 Message Instructions de contrôle du programme xsl:message permet de renvoyer un message à la console, ou dans les logs, ou dans une boîte de dialogue <xsl:if> <xsl:choose> <xsl:for-each> <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> <xsl:choose> <xsl:when test="$code-nation='fr'">france</xsl:when> <xsl:when test="$code-nation='en'">angleterre</xsl:when> <xsl:when test="$code-nation='it'">italie</xsl:when> <xsl:otherwise> <xsl:message terminate="yes"> Code nation inconnu </xsl:message> </xsl:otherwise> </xsl:choose> 34
35 Erreurs Instructions de contrôle du programme <xsl:if> <xsl:choose> <xsl:for-each> xs:fallback s'utilise dans un contexte ou la cible de déploiement des programmes T n'est pas connue du développeur <xsl:apply-templates> <xsl:call-template> <xsl:apply-imports> <xsl:message> <xsl:fallback> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" > <xsl:template match="/"> <xsl:for-each <xsl:if <xsl:result-document format="html" href="equipe-{.}.html"> <xsl:fallback> <xsl:message terminate="yes"> Impossible de créer un fichier. L'instruction <xsl:result-document> n'est pas implémentée </xsl:message> </xsl:fallback> <html> <body> 35
36 Indexation Indexation L'indexation avec xsl:key permet d'augmenter les performances de certains traitements <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:param name="code-nation" select="'fr'"/> <xsl:key name="équipes-par-nation" match="équipe" <xsl:template match="équipes"> <html> <body> <ul> <xsl:for-each select="key('équipes-par-nation',$code-nation)"> <li><xsl:value-of select="équipe"/></li> </xsl:for-each> </ul> </body> </html> </xsl:stylesheet> On peut retrouver les équipes d'une nation, mais on peut difficilement obtenir la liste des nations méthode de Muench 36 <xsl:for-each <li><xsl:value-of select="."/></li> </xsl:for-each> Peu performant : oblige le processeur à "regarder en arrière" pour chaque item Peut-être préjudiciable pour les longues listes.
37 Méthode de Muench Génération d'id Fonction generate-id(node) Retourne un identifiant unique (dans le document) pour le nœud passé en argument, ou le premier nœud du node-set passé en argument, ou du nœud courant s'il n'y a pas d'argument La méthode de Muench (Muenchian method, by Steve Muench) : permet de grouper des données permet de sélectionner des valeurs distinctes 37 <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:key name="group" match="équipe" <xsl:template match="équipes"> <html> <body> <ul> <xsl:for-each <li><xsl:value-of </xsl:for-each> </ul> </body> </html> </xsl:stylesheet> ou <xsl:for-each select="équipe[count(. Dans un node-set, les nœuds sont uniques
38 Eléments T de premier niveau Sous la racine xsl:stylesheet, on trouve : <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:namespace-alias/> <xsl:output/> <xsl:preserve-space/> directives de traitement du processeur <xsl:strip-space/> <xsl:attribute-set/> <xsl:key/> <xsl:decimal-format/> <xsl:param/> <xsl:variable/> définitions d'ensembles de données <xsl:import/> <xsl:include/> <xsl:template/> </xsl:stylesheet> directives d'importation définitions de règles xsl:transform et xsl:stylesheet sont synonymes 38
39 Le goût du blanc Contrôle des éléments en entrée : <équipe xml:space="preserve"> <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:preserve-space elements="équipe joueur"/> <xsl:strip-space elements="équipes joueurs"/> </xsl:stylesheet> Contrôle des éléments en sortie : <xsl:text></xsl:text> <xsl:text disable-output-escaping="yes"></xsl:text> Un nœud texte utilisé seul permet de s'assurer qu'aucun autre contenu ne sera produit : <xsl:template match="foo"> <xsl:text>ici</xsl:text> <xsl:template> <xsl:text> </xsl:text> <xsl:text> </xsl:text> <xsl:text> </xsl:text> production du texte "ici" sans avant ni après <xsl:text> </xsl:text> espace insécable Normalisation des contenus d'éléments (les valeurs d'attributs sont toujours normalisées) : normalize-space() 39
40 Espaces de nommage dans T 40 <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <html> <body> <table border="1"> <xsl:apply-templates select="équipes/équipe"/> </table> </body> </html> </xsl:stylesheet> Ne sélectionne rien en utilisant obligatoirement un préfixe (sinon, les données ne sont pas adressables par XPath) <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:foot=" <xsl:template match="/"> <html> <body> <table border="1"> <xsl:apply-templates select="foot:équipes/foot:équipe"/> </table> </body> </html> </xsl:stylesheet> Quand on utilise un espace de nommage dans un document, les feuilles de style qui le traitent doivent aussi le déclarer <?xml version="1.0" encoding="iso "?> <équipes xmlns=" <équipe cn="fr">om</équipe> <équipe cn="it">milan AC</équipe> <équipe cn="fr">psg</équipe> <équipe cn="en">arsenal</équipe> <équipe cn="it">juventus</équipe> </équipes>
41 Espaces de nommage dans T Tous les espaces de nommage déclarés sont reproduits en sortie, sauf : celui associé au processeur T ceux exclus nominativement avec exclude-result-prefixes <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:foot=" exclude-result-prefixes="foot"> <xsl:template match="/"> <html> <body> <table border="1"> <xsl:apply-templates select="foot:équipes/foot:équipe"/> </table> </body> </html> </xsl:stylesheet> Exclusion de plusieurs déclarations d'espaces de nommage : exclude-result-prefixes="foot joueurs matchs" Exclusion de la déclaration d'espace de nommage par défaut : exclude-result-prefixes="#default" 41 Les alias utilisés dans la feuille de style peuvent être renommés dans le document produit : <xsl:namespace-alias stylesheet-prefix="pàv" result-prefix="planche-à-voile"/>
42 Formattage des nombres et numérotation <xsl:decimal-format/> format-number() Formattage des nombres La représentation des nombres est variable selon les pays <xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.'/> <xsl:value-of select="format-number( , '###.###,00', 'european')"/> ,20 Numérotation 42 <h2>sommaire</h2> <p> <xsl:for-each select="section"> <xsl:number level="multiple" format="1." count="section"/> <a href="#{generate-id()}"> <xsl:value-of select="title" /> </a> <xsl:for-each> </p> <xsl:number/> Permet de numéroter les tables des matières et indexes <?xml version="1.0" encoding="iso "?> <content> <section><title>objectifs</title> <p></p> </section> <section><title>prérequis</title> <p></p> </section> Web navig <section><title>manipulation</title> <section><title>démontage</title> 1 Objectifs <p></p> 2 Prérequis </section> <section><title>nettoyage</title> <p></p> </section> Sommaire 3 Manipulation 3.1 Démontage 3.2 Nettoyage
43 Contrôle de la sérialisation de l'arbre de sortie <xsl:output method = "html" version = "4.0" encoding = "iso " omit-xml-declaration = "yes" standalone = "yes" doctype-public = "-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system = "DTD/xhtml1-transitional.dtd" cdata-section-elements = "script style" indent = "yes" media-type = "text/html" /> arbre de sortie T sérialisation document XML <xsl:output method="xml"/> <xsl:output method="text"/> Il est recommandé d'utiliser xsl:text pour produire le résultat <xsl:output method="html"/> La mise au format HTML dépend des implémentations et des autres paramètres. On peut obtenir la réécriture des caractères non ASCII par des appels d'entités (é au lieu de é) <xsl:output method="mamethode"/> A programmer soit-même 43 Exemple : <xsl:output method="pdf"/>
44 Production HTML avec T <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns=" <xsl:template match="/"> <html> <head> <title><xsl:value-of select="cours/titre"/></title> </head> <body> </body> </html> </xsl:stylesheet> 44 Syntaxe "simplifiée" de la feuille de style <?xml version="1.0" encoding="iso "?> <html xsl:version="1.0" xmlns:xsl=" xmlns=" <head> <title><xsl:value-of select="cours/titre"/></title> </head> <body> </body> </html>
45 Production HTML avec T Les entités binaires Fonction unparsed-entity-uri(node) img/flipper.jpg <?xml version="1.0" encoding="iso "?> <!DOCTYPE zoo [ <!ATTLIST dauphin photo ENTITY> <!NOTATION jpg SYSTEM "images/jpeg"> <!ENTITY flipper SYSTEM "img/flipper.jpg" NDATA jpg> ]> <zoo> <aquarium> <dauphin id="jhgtr13" photo="flipper"> <nom>flipper</nom> </zoo> <xsl:template match="dauphin"> <h2><xsl:value-of select="nom" /></h2> <p> <xsl:if <img </xsl:if> </p> <h2>flipper</h2> <p> <img src="img/flipper.jpg"/> </p> Web navigator Flipper 45
46 46 Fonction generate-id(node) Construction d'une table des matières Génération de liens <head> <?xml version="1.0" encoding="iso "?> <title><xsl:value-of select="title"/></title> </head> <content><title>les tags</title> <body> <section><title>objectifs</title> <h1><xsl:value-of select="title"/></h1> <p>ce document décrit comment <h2>sommaire</h2> monter et démonter un tag. <ul> </p> <xsl:for-each select="//section"> </section> <li><a href="#{generate-id(title)}"> <section><title>prérequis</title> <xsl:value-of select="title"/> <p>le lecteur doit avoir une </a></li> Les tags... connaissance des tags approfondie. </xsl:for-each> </p> </ul> Les tags <p>en particulier, il doit maîtriser <xsl:apply-templates/> les tags bleus et les tags de compétition. </p> </section> <section><title>manipulation</title> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns=" <xsl:template match="content"> <html> </body> </html> <xsl:template match="/content/title"/> <xsl:template match="title"> Objectifs <info>penser à vérifier les tags <h2><a name="{generate-id()}"> Ce document avant toute manipulation. <xsl:value-of select="."/></a></h2> décrit comment </info> <step>enlever l'eau sale du tag.</step> monter et <xsl:template match="section"> <step>dévisser le capot inférieur.</step> <xsl:apply-templates/> démonter un tag. <step>cliquer sur OK.</step> Prérequis </section> <xsl:template match="p"> <p><xsl:apply-templates/></p> <xsl:template match="b"> Sommaire : Objectifs Prérequis Manipulation Le lecteur doit avoir une connaissance des
47 Intégration de sources de données multiples La fonction document() permet de réaliser des transformations simultanément sur plusieurs sources de données <?xml version="1.0" encoding="iso "?> <rapport> <analyse> <p>cette année, la <b>croissance</b> est au rendez-vous, </p> <analyse> </rapport> ventes.xml <?xml version="1.0" encoding="iso "?> <ventes> <charcuterie>23</charcuterie> <fromages>45</fromages> <primeurs>78</primeurs> </ventes> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <xsl:variable name="mes-ventes" select="document('ventes.xml')"> <xsl:apply-templates select="$mes-ventes/ventes"/> <xsl:apply-templates select="rapport"/> </xsl:stylesheet> 47 Rapport - Web Explorer charcuterie : 15% fromages : 31% primeurs : 54% Cette année, la croissance est au rendez-vous...
48 Données internes La fonction document() utilisée avec l'argument '' (chaîne vide) permet d'obtenir la feuille de style elle-même, et donc d'y adresser des informations <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:date="*** Traitement des dates ***"> <date:noms-mois> <date:mois court="jan">janvier</date:mois> <date:mois court="fév">février</date:mois> <date:mois court="déc">décembre</date:mois> </date:noms-mois> <xsl:template name="date:nom-mois"> <!--retourne le nom du mois en clair à partir du numéro de mois--> <xsl:param name="mois" select="0"/> <xsl:value-of select="document('')/*/date:noms-mois/date:mois[$mois]"/> </xsl:stylesheet> <xsl:variable name="année" select="substring-before($date, '-')"/> <xsl:variable name="mois" select="substring-before(substring-after($date, '-'), '-')"/> <xsl:variable name="jour" select="substring-after(substring-after($date, '-'), '-')"/> <xsl:variable name="nom-mois"> <xsl:call-template name="date:nom-mois"> <xsl:with-param name="mois" select="number($mois)"/> </xsl:call-template> </xsl:variable> <xsl:value-of select="$jour" /> <xsl:value-of select="$nom-mois" /> <xsl:value-of select="$année" /> 48
49 Transformation à l'identique : Dump XML avec T copie.xslt <?xml version="1.0" encoding="iso "?> <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template node()"> <xsl:copy> <xsl:apply-templates node()" /> </xsl:copy> </xsl:stylesheet> Utile : pour changer l'encodage pour sérialiser un arbre DOM à l'import dans une feuille de style qui fait de l'adaptation de structure Exemple : conversion des attributs en éléments <?xml version="1.0" encoding="iso "?> <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:import href="copie.xslt"/> <xsl:output method="xml" version="1.0" indent="yes" encoding="iso "/> <xsl:template <xsl:element name="{local-name(.)}" namespace="{namespace-uri(..)}"> <xsl:value-of select="." /> </xsl:element> </xsl:stylesheet> 49 Une autre feuille de style de copie mais qui ne permet pas de faire de l'adaptation de structure : <xsl:template match="/"> <xsl:copy-of select="."/>
50 Limitations de T Typage incontrôlable <xsl:variable name="expressionxpath">/doc/section[3]/section[2]</xsl:variable> <xsl:apply-templates select="$expressionxpath" /> Non Cet exemple ne fonctionne pas la variable expressionxpath est une chaîne de caractères la valeur de l'attribut select doit être un expression XPath il n'y a pas de fonction de transtypage d'une chaîne de caractères en une expression XPath Fragmentation des résultats impossible Il n'est pas possible de scinder la sortie du processeur T en plusieurs tranches Il n'est pas possible dans T de spécifier la nature du flux de sortie (pour écrire dans un fichier par exemple) 50 Cela doit être réalisé par des processus externes à T, ou par des extensions propriétaires : Apache Xalan <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:redirect="org.apache.xalan.xslt.extensions.redirect" extension-element-prefixes="redirect"> <xsl:template match=""> <redirect:write select="$filename"> <!-- toutes les sorties sont écrites dans le fichier $filename --> </redirect>
51 Association d'une feuille de style à un document Comment? Par l'utilisation d'une instruction de traitement spécifique : xml-stylesheet Convient : à T et aux CSS CSS : rendu pauvre (dans l'ordre du document, sur les éléments seulement) Syntaxe : (à inclure dans le document XML) <?xml-stylesheet href="mystyle.css" type="text/css"?> <?xml-stylesheet href="mystyle.xsl" type="text/xsl"?> Pour associer plusieurs feuilles de style en fonction du média : PI interprétée par les navigateurs, qui transforment le source XML avec la feuille de style spécifiée <?xml-stylesheet href="mystyle.xsl" type="text/xsl"?> <?xml-stylesheet href="mystyle.wml.xsl" type="text/xsl" media="wap"?> 51 Ce qu'on ne peut pas faire : passer des paramètres brancher un URIResolver maîtriser la sérialisation (PDF, GIF, PNG, JPEG) transformer un nœud autre que le document A éviter : les feuilles de styles sont applicables à une classe de documents (DTD) Ce qui est commun doit être factorisé : déporter l'association d'une feuille de style au niveau du processus de publication des documents, au lieu du document lui-même.
52 Programmation avec T Bibliothèques de règles existantes : manipulation de chaînes dates T design patterns : Muenchian method Kaysian method Wendel Piez method Oliver Becker's method Extensions : "standardisation" des extensions bibliothèques mathématiques, manipulation de chaînes... Performances Réseau éviter d'utiliser // (qui est un gouffre pour les performances) si on connaît le chemin éviter de surcharger le résultat avec de l'indentation inutile, qui ne devrait servir qu'à des fins de débuggage <xsl:output method="html" indent="no"/> 52 Organisation : Modulariser les programmes : utiliser xsl:import et xsl:include distinguer les règles fonctionnelles des règles de formattage utiliser les espaces de nommage pour les collections de règles
53 FO Formattage FO est une application XML (un jeu de balises) qui permet de décrire la mise en page d'un document. S'inspire de CSS. Chaîne de traitement <fo:root xmlns:fo=" </fo:root> Document XML T Document FO FOP Document PDF <xsl:template match="/"> <fo:root> <xsl:apply-template /> </fo:root> Formatting Objects Processor 53
54 Production FO avec T <?xml version="1.0"?> <xsl:template match= / > <fo:root> Layout <fo:layout-master-set> Content of document <fo:page-sequence > </ > <xsl:apply-templates select=" "/> <xsl:template match=" "> 54
55 Gabarit des pages FO <?xml version="1.0" encoding="iso "?> <fo:root xmlns:fo=" <fo:layout-master-set> <!-- gabarit des pages --> </fo:layout-master-set> <fo:page-sequence master-reference="content"> <!-- data --> </fo: page-sequence > </fo:root> 5 régions dont la disposition est déterminée par le sens de l'écriture : Hébreu Chinois traditionnel è une disposition spécifique des régions est prévue marge Un seul gabarit dans FO 1.0 <fo:simple-page-master margin-right="1cm" margin-left="1cm" margin-bottom="1cm" margin-top="1cm" page-width="21cm" page-height="29.7cm" master-name="content" > </fo:simple-page-master> page rectangulaire, largeur et hauteur fixes, marges fo:region-before région avant 55 début de région fo:region-start L'attribut region-name des éléments fo:region-xxx permet de nommer les régions (par défaut, leur nom est xsl-region-xxx). L'attribut extent permet de définir la taille des régions corps fo:region-body fo:region-after fin de région fo:region-end région après
56 Arbre FO fo:root fo:layout-master-set fo:declarations fo:page-sequence fo:color-profile fo:title fo:static-content fo:flow fo:simple-page-master fo:page-sequence-master fo:region-body fo:region-before fo:region-start fo:region-after fo:single-pagemaster-reference fo:region-end fo:repeatable-pagemaster-reference fo:repeatable-pagemaster-alternatives fo:conditional-pagemaster-reference 56
57 Types de pages Exemple Cover Left-hand Content pages Right-hand Content pages Heading Heading Page # Page # <fo:layout-master-set> <fo:simple-page-master master-name="cover" /> <fo:simple-page-master master-name="leftpage" /> <fo:simple-page-master master-name="rightpage" /> <fo:page-sequence-master master-name="contents" /> </fo:layout-master-set> 57 Agencement des pages : <fo:simple-page-master> Définition des types de pages <fo:page-sequence-master> Définition des séquences d'enchaînement <fo:simple-page-master master-name = name of the type of the page page-height = Page height page-width = Page width %margin-properties-css; = top, bottom, left, right, reference-orientation = writing-mode = lr-tb rl-tb tb-rl> Content : (fo:region-body, fo:region-before?, fo:region-after?, fo:region-start?, fo:region-end?) </fo:simple-page-master>
58 Enchaînement des pages <fo:page-sequence-master master-name = name of sequence> Content : (single-page-master-reference repeatable-page-master-reference repeatable-page-master-alternatives)+ </fo:page-sequence-master> Exemple <fo:page-sequence-master master-name="contents"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference master-name="leftpage" odd-or-even="even"/> <fo:conditional-page-master-reference master-name="rightpage" odd-or-even="odd"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> 58 <fo:simple-page-master master-name="leftpage" page-height="12cm" page-width="12cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm" margin-right="0.5cm"> <fo:region-body margin-top="3cm"/> <fo:region-before extent="1cm"/> <fo:region-after extent="1cm"/> </fo:simple-page-master>
59 Contenu des pages <fo:page-sequence master-reference = reference to a simple-page-master or page-sequence-master> Content : (title?,static-content*,flow) </fo:page-sequence> Remplissage du contenu du document : L'attribut master-reference fait référence à un élément <fo:simple-page-master> ou <fo:page-sequence-master> du même nom. Exemple <fo:page-sequence master-reference="contents"> Static content Flow <fo:static-content flow-name="xsl-region-before"> </fo:static-content> <fo:static-content flow-name="xsl-region-after"> </fo:static-content> <fo:flow flow-name="xsl-region-body"> </fo:flow> 59 </fo:page-sequence>
60 Bloc de contenu Remplissage : <fo:block> équivalent HTML de <div>! Le formattage est spécifié par des propriétés CSS en tant qu'attribut XML <fo:inline> équivalent HTML de <span> pour formatter une portion de texte dans un bloc Les propriétés CSS peuvent être aggrégées <fo:page-sequence master-reference="contents"> <fo:static-content flow-name="xsl-region-before"> <fo:block font-family="times" font-size="16pt"> Chapître 1 </fo:block> </fo:static-content> <fo:static-content flow-name="xsl-region-after"> <fo:block> Page <fo:page-number/> </fo:block> </fo:static-content> <fo:block font="times 16pt"> Insère le numéro de page courant 60 <fo:flow flow-name="xsl-region-body"> <fo:block> <fo:inline color="red" font-weight="bold"> FO </fo:inline> est un langage XML de formattage de document. </fo:block> </fo:flow> </fo:page-sequence>
61 Flot de contenu FO <fo:flow flow-name="xsl-region-body"> <fo:block> <!-- ici il y a du contenu --> </fo:block> </fo:flow> Un "bloc" par mise en forme spécifique L'extrapolation des propriétés de fo:block à partir de CSS est souvent triviale CSS FO.foo { } display: block; font-family: Arial; font-size: 20pt; font-weight: bold; text-align: center <fo:block > font-family="arial" font-size="20pt" font-weight="bold" text-align="center" Autres éléments : listes fo:list-block fo:list-item fo:list-item-label fo:list-item-body 61
62 Blocks FO 62
63 Blocks FO 63
64 Autres possibilités Liens <fo:block> <fo:basic-link external-destination=" color="blue"> </fo:basic-link> </fo:block> Images <fo:block text-align="center"> <fo:external-graphic src="file:images/logo.gif" width="50pt"/> </fo:block> Contrôle des sauts de page <fo:block text-align="start" font-size="14pt" font-family="serif" break-before="odd-page"> </fo:block> Numérotation des pages 64 <fo:static-content flow-name="xsl-region-after"> <fo:block font-family="helvetica" font-size="10pt" text-align="center"> Page - <fo:page-number/> </fo:block> </fo:static-content>
65 Autres possibilités Notes de bas de page <fo:block> Footer <fo:footnote> <fo:inline baseline-shift="super" font-size="smaller">(1)</fo:inline> <fo:footnote-body> <fo:list-block provisional-label-separation="0pt" provisional-distance-between-starts="18pt" space-after.optimum="6pt"> <fo:list-item> <fo:list-item-label end-indent="label-end()"> <fo:block>(1)</fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block>bla bla</fo:block> </fo:list-item-body> </fo:list-item> </fo:list-block> </fo:footnote-body> </fo:footnote> </fo:block> Références 65 <fo:external-graphic id="inriapic" src="url(' Voir page : <fo:page-number-citation ref-id="inriapic"/>)
Les technologies XML. Cours 2 : Transformation et Formatage de documents XML : Cours 2.2 : XSLT. Novembre 2010 - Version 3.2 -
Les technologies XML Cours 2 : Transformation et Formatage de documents XML : Cours 2.2 : XSLT Novembre 2010 - Version 3.2 - SOMMAIRE DU COURS TRANSFORMATIONS DE DOCUMENTS XML Introduction à XSL Noeuds
Introduction à XML. 1. Notions de base. Introduction à XML
Introduction à XML INTRODUCTION À XML 1. NOTIONS DE BASE 2. EXEMPLE SIMPLE 3. SYNTAXE XML 3.1. LES CARACTÈRES SPÉCIAUX 4. DTD 5. DOCUMENT XML AVEC FEUILLE DE STYLE CSS 6. XLS ET XSLT 6.1. EXEMPLE DE DOCUMENT
XSL Langage de transformation de XML. Approfondissements
XSL Langage de transformation de XML Approfondissements http://www.zvon.org/xxl/xsltreference/output/index.html Retour sur les modèles (template) Une feuille de style peut contenir plusieurs modèles Chaque
" extensible Markup Language " XML
" extensible Markup Language " XML Sylvie Vignes, Département Informatique et Réseaux École Nationale Supérieure des Télécommunications 46, rue Barrault 75634 Paris cedex 13 Département Informatique et
XML (extensible Markup Language)
XML (extensible Markup Language) Références : XML, Micro Application e-poche http://giles.chagnon.free.fr/cours/xml/base.html http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php 1. Qu est-ce que XML?
Introduction. Transformer des documents XML. XPath. XPath. Langage d'expressions de chemins dans un. permet de désigner un noeud (sous-arbre)
Introduction Transformer des documents 1 Désignation d un nœud (sous-arbre) d un document : XPATH Associer une présentation à un document : CSS Transformer un document en un autre document (HTML) : XSLT
Le langage XSLT. Transformation de fichiers XML
Le langage XSLT Transformation de fichiers XML 1 Présentation générale Règles élémentaires Construction du document résultat Structures itératives et conditionnelles Variables XSL Règles paramétrées, et
extensible Markup Language
LES TECHNOLOGIES DU WEB 1 ère Partie : au Web 1- à l'hypertexte 2- Présentation du protocole HTTP 3- de bases des CGI 4- Présentation du WEB2 (AJAX) 2 ème Partie : Présentation de HTML & XHTML 3 ème Partie
Le langage XML. Sébastien Jean. IUT de Valence Département Informatique. v3.3, 10 novembre 2008
Le langage XML Sébastien Jean IUT de Valence Département Informatique v3.3, 10 novembre 2008 Qu est ce que XML? Généralités XML = extensible Markup Language Spécification du W3C Version 1.0 (1998-2004)
Organisation d un document XSLT
Les comportements serveur XSLT CHAPITRE 6 375 tion, et générera un document résultat pouvant être une page XHTML, ou tout type de format selon le média visé (XML, WML, texte, etc.). Voir figure 6-5-a.
Programmation d applications pour le Web
Programmation d applications pour le Web Cours 2 ème année ING ISI-Tunis Elaboré par: Hela LIMAM Chapitre 3 Partie 2 XML+XSL Année universitaire 2011/2012 Semestre 2 1 Le XML ne fait rien. Il faudra passer
XPATH XSLT. Objectif du cours. Plan. XPath. Exemples d utilisations. Localisation de documents XML XPATH XSLT
Objectif du cours XPATH XSLT Yannick Prié UFR Informatique Université Lyon 1 UE2.2 Master SIB M1 20042005 Xpath syntaxe permettant de désigner des informations dans un arbre XML sous la forme de chemins
Transformations XML vers XML, HTML, XHTML, RTF et modification du contenu des documents
6 Transformations XML vers XML, HTML, XHTML, RTF et modification du contenu des documents Prenons l'exemple d'une entreprise dont le site d'e-commerce a été réalisé avec la solution XML Commerce One, qui
XSL-FO Extensible Stylesheet Language - Formatting Objects. Pierre-Alain Reynier http://www.lif.univ-mrs.fr/~preynier/xml/
XSL-FO Extensible Stylesheet Language - Formatting Objects Pierre-Alain Reynier http://www.lif.univ-mrs.fr/~preynier/xml/ 1 XSL-FO XSL-FO fait partie du standard XSL : http://www.w3.org/tr/xsl/#fo-section
XML. Nicolas Singer. Maître de conférence, université Champollion
XML Nicolas Singer Maître de conférence, université Champollion XML? Langage de description de documents électroniques : Pour stocker et échanger des documents Par extension, pour représenter tout type
Programmation XSLT. PROGRAMMATION XSLT p.1/27
Programmation XSLT PROGRAMMATION XSLT p.1/27 Programmation avec XSLT Combinaison de deux modes de programmation : Déclaratif : on donne les règles, et le processeur fait le reste. Impératif : on utilise
Internet statique et dynamique XML. Programmation de sites web statiques et dynamiques. extended Markup Language (XML) Jean CARTIER MASTER INI
Programmation de sites web statiques et dynamiques extended Markup Language () Jean CARTIER MASTER INI jcartier@laposte.net 1 extented Markup Language () Le HTML est un langage très bien adapté à la diffusion
Cours HTML/PHP. Cours HTML/PHP. E.Coquery. emmanuel.coquery@liris.cnrs.fr
Cours HTML/PHP E.Coquery emmanuel.coquery@liris.cnrs.fr Pages Web Pages Web statiques Principe de fonctionnement : L utilisateur demande l accès à une page Web depuis son navigateur. Adresse tapée, clic
2. XML. Cours Web. extended Markup Language (XML) 2. XML 2. XML. extented Markup Language (XML) Lionel Seinturier. Université Pierre & Marie Curie
Cours Web extended Markup Language (XML) Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr extented Markup Language (XML) Constat sur HTML langage très bien adapté à la diffusion
Web et présentation d information spatiale
Université de La Rochelle LUP-SIG 2004-2005 Programmation SIG et Internet Cartographique Web et présentation d information spatiale Format XML Jean-Michel FOLLIN jmfollin@univ-lr.fr Limitations HTML Limitations
Pages Web statiques. LIF4 - Initiation aux Bases de données : PHP. Pages Web dynamiques. Illustration. Illustration
statiques LIF4 - Initiation aux Bases de données : E.Coquery emmanuel.coquery@liris.cnrs.fr http ://liris.cnrs.fr/ ecoquery Principe de fonctionnement : L utilisateur demande l accès à une page Web depuis
CIM120. Http:// (Creation Web) Page 1
CIM120 Http:// (Creation Web) Page 1 Organisation du module CIM120 Evaluation: 1 eval sur table 1 eval des TP Page 2 Le Web: un peu d'histoire D'Arpanet à Internet... http://fr.wikipedia.org/wiki/histoire_d'internet
PHP et XML. Traitements de XML
PHP et XML XML et PHP 1 Traitements de XML Deux approches pour manipuler des documents XML: Approche DOM: Utilise un analyseur (Parser) qui transforme le document XML en structure d'arbre. Il faut parcourir
XML : l ASCII de demain
Carrefour de l information XML : l ASCII de demain Philippe Mabilleau ing. 3 octobre 2002 Le langage XML Historique : De l ASCII à XML XML : Le langage XML : La programmation XML : Les transformations
1 XML : Une première définition. 2.1 SGML... 1 2.2 HTML... 2 2.3 Feuille de style CSS... 3. 3 XML : extensible Markup Language 4
Introduction au Table des matières 1 : Une première définition 1 2 Historique d 1 2.1 SGML................................................. 1 2.2 HTML................................................. 2
XSL est utilisé pour permettre de convertir les données par exemple en HTML pour l affichage
المدرسة الوطنية العليا لإلعالم اآللي Ecole nationale Supérieure d Informatique Ecole Doctorale Promotion 2012-2013 Présenté par : Dr. Kamel Boukhalfa boukhalk@gmail.com, kboukhalfa@usthb.dz Source : Yves
Langage (X)HTML Damien Nouvel
Langage (X)HTML Plan Quelques statistiques du web Architecture client / serveur Langage XML Mise en forme HTML Structure d'un document HTML 2 / 36 Plan Quelques statistiques du web Architecture client
Multimedia Engineering XSL-FO
Multimedia Engineering XSL-FO Généralités Modèles de pages Régions centrales et périphériques Modèle de boîtes Texte et image Ressources Introduction XSL-FO (Formatting Object) est un langage de description
Outil pour le Web XML. Polytech Marseille. E. Tranvouez. Département Génie Industriel et Informatique
Outil pour le Web XML E. Tranvouez erwan.tranvouez@polytech.univ-mrs.fr http://erwan.tranvouez.free.fr Polytech Marseille Département Génie Industriel et Informatique 1 Sommaire 2 Problématique Contexte,
XSLT. extensible Stylesheet Language Transformations. deuxième partie
XSLT extensible Stylesheet Language Transformations deuxième partie Plan Paramètres Instruction de contrôles Variables Tri Exemple de référence
XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)
Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du
Modélisation et interopérabilité : Semaine 40, cours 3
Modélisation et interopérabilité : Semaine 40, cours 3 Benoît Valiron http://inf356.monoidal.net/ 1 Question pratique : Evaluation Trois choses : Un examen final (coef 2/3)
INTRODUCTION. Plan du cours. Introduction à XML XML? XML
Plan du cours Introduction à XML Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. XML : (a) introduction (b) le langage (c) les DTD (d) les espaces de noms 2. les schémas
Programmation WEB. HTML et Javascript
Programmation Web : HTML et Javascript Michaël Krajecki Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique Moulin de la Housse - BP 1039 51687 Reims Cedex 2. Tél. : 03 26
XML, DOM & XSL Synthèse de lecture
Dorine MAZEYRAT XML, DOM & XSL Synthèse de lecture Novembre 2008 NFE107 - Urbanisation des SI 0 SOMMAIRE 1. LE LANGAGE XML...2 1.1. Définition...2 1.2. Historique...2 1.3. Objectif...2 1.4. Présentation
Une introduction à XML/XSLT
Une introduction à XML/XSLT Bernd Amann et Philippe Rigaux Cnam 13 mars 2009 Table des matières 1 L application et ses besoins 2 2 XML, format universel 3 2.1 Qu est-ce que XML?.....................................
Le but de ce document est de donner les principes de manipulation de données XML, via XSLT à l'aide de PHP5.
Exemple XML XSLT avec PHP5 Rédacteur: Alain Messin CNRS UMS 2202 Admin06 06/09/2007 Le but de ce document est de donner les principes de manipulation de données XML, via XSLT à l'aide de PHP5. Il ne s'agit
Technologies du Web. Phases de travail Objectifs Activités
Technologies du Web Tutoriel 1 : «Structurer une page Web» PROBLEMATIQUE Créer la structure d une page Web avec un éditeur de texte. CONDITIONS DE DEROULEMENT DE L ACTIVITE Phases de travail Objectifs
INTRODUCTION. méta-langage
INTRODUCTION renault twingo Bic 1999 etc.. XML : extensible
Créer un modèle pour Joomla 1.5
Créer un modèle pour Joomla 1.5 Dans le dossier templates de Joomla, créer un nouveau dossier au nom du modèle (lettres-chiffres-tirets, éviter caractères accentués et spéciaux) Dans ce dossier template/nom_du_modèle,
Le langage de Transformation XSL
Le langage de Transformation XSL Formatage d un document XML, Le langage XSLT: Définition, Principe de fonctionnement, Structure d une feuille de style, Format d une règle de transformation, Tri, Choix
Programmation Web IMAC 2015-2016 TD 1 : HTML. 30 septembre 2015
Programmation Web IMAC 2015-2016 TD 1 : HTML 30 septembre 2015 Objectif: Ce TD a pour but d aborder les premières notions du langage HTML. Il est important de noter que le HTML n est pas un langage de
Le XML et ses normes associées partie I
Le XML et ses normes associées partie I TechnofuturTIC (formateur : Luc Libert, ULB) Exercice à distance Version complète (et plus complexe) Le but de l exercice est de mettre en pratique de manière concrète
Exercices et corrections. Licence QCI - module O21
Exercices et corrections Licence QCI - module O21 Exercice 1 Ecrivez le squelette d une page avec les caractéristiques suivantes - encodage : utf-8 - titre de la page : première page XHTML - auteur : vous
STRUCTURE D UNE PAGE HTML/CSS
STRUCTURE D UNE PAGE HTML/CSS C01 1. STRUCTURE Le langage Html est composé de balises ou (tags) qui permettent de structurer le texte, de le mettre en forme et d insérer des images. Ces instructions sont
96 Feuilles de style en cascade
Microsoft Expression Web (version 2) 96 Feuilles de style en cascade Définir les styles Dans la création de pages Web valides, un principe fondamental apparaît : le contenu doit être séparé de sa présentation.
Université de Reims Champagne-Ardenne. XML - Introduction. F. Nolot Licence professionnelle CMSII 1
Université de Reims Champagne-Ardenne XML - Introduction F. Nolot Licence professionnelle CMSII 1 Université de Reims Champagne-Ardenne XML - Introduction Historique F. Nolot Licence professionnelle CMSII
XML, DTD. Dan VODISLAV. Université de Cergy-Pontoise. Licence Informatique L3. Plan
XML, DTD Dan VODISLAV Université de Cergy-Pontoise Licence Informatique L3 Plan XML: pourquoi et comment Principes et caractéristiques de base Comparaison avec HTML et les BD relationnelles Le format XML
Exemples de DTD XML pour les interfaces homme-machine JMF
Exemples de DTD XML pour les interfaces homme-machine 1 Introduction XML utilisé pour les IHM Plusieurs DTD : SMIL, SVG, X3D Evidemment du texte (XML) balisé 2 SMIL (pronounced "smile") 3 4 Présentation
Les feuilles de Style HTML : CSS
Les feuilles de Style HTML : CSS Tarek Melliti Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) tarek.melliti@ibisc.univ-evry.fr Plan du cours Séances 1 : Introduction à l informatique
Créer des documents XML
1 Créer des documents XML La spécification XML définit comment écrire un document au format XML. XML n est pas un langage en lui-même mais, en revanche, un document XML est écrit dans un langage à balises
DTD (Document Type Definition) - XML (extensible Markup Language)
DTD (Document Type Definition) - XML (extensible Markup Language) Références : XML, Micro Application e-poche http://giles.chagnon.free.fr/cours/xml/base.html http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php
Spécifications de l'utilitaire mkdoc
Spécifications de l'utilitaire mkdoc Logilab S.A. 10, rue Louis Vicat F-75015 PARIS Tél : (+33) 1 45 32 03 12 Web : www.logilab.fr Adel : contact@logilab.fr Olivier CAYROL Spécifications de l'utilitaire
Les outils du XML. Xpath, XSL, XSLT, et autres trucs en X
Les outils du XML Xpath, XSL, XSLT, et autres trucs en X XPATH Un outil de sélection de nœud Document XML : vue arborescente Lemay Aurélien 5 Juin
Université de Reims Champagne-Ardenne XML. DTD : Document Type Definition. F. Nolot Licence professionnelle CMSII 2004-2005 1
Université de Reims Champagne-Ardenne XML DTD : Document Type Definition F. Nolot Licence professionnelle CMSII 2004-2005 1 Qu'est qu'une DTD? Permet de vérifier qu'un document XML est conforme à une syntaxe
XML et DTD: rappels Cours Document et Web Sémantique. Quelques concepts importants. Évolution de XML. Organisation
Plan et : rappels Cours Document et Web Sémantique Nicolas Malandain 1 Généralités Organisation Les éléments Les attributs Les sections littérales Les Entités Conseils 2 Organisation Les éléments Les attributs
Chapitre 3 : Le langage HTML Fascicule TIC Page 33
33 I. Introduction Les pages Web visualisées dans un navigateur Internet sont écrites avec un langage nommé HTML (HyperText Markup Language). C est un langage de description de contenu et de structure.
Observons un site... Une entête. Le corps de la page. Un à-côté. Un pied de page
Créer une page web Observons un site... Une entête Le corps de la page Un à-côté Un pied de page Un logo Un menu Un autre menu Une entête La fenêtre de gauche La partie principale de la page Plusieurs
XML et arbre. Représentation d un document XML sous forme d arbre. Commençons par deux exemples... suivis des explications.
XML et arbre Représentation d un document XML sous forme d arbre. Commençons par deux exemples... suivis des explications. Le texte de A Le texte de B
PROGRAMMATION HTML. Baccalauréat S -Spécialité ISN. Objectifs. Prérequis. Du code à la page. 4.3 : Langages de programmation : langage HTML
PROGRAMMATION HTML Baccalauréat S -Spécialité ISN 4.3 : Langages de programmation : langage HTML Objectifs L'élève doit être capable o de créer une page WEB en langage HTML o d'analyser une page WEB en
Programmation Tablette. Dominique Rossin Cours 1 - HTML / CSS
Programmation Tablette Dominique Rossin Cours 1 - HTML / CSS Objectifs Comprendre le fonctionnement d une application Web Comprendre le fonctionnement d une application Smartphone Programmer et déployer
Présentation. Les surnoms de JS. Historique. Programmation Web
Présentation Programmation Web JavaScript Jean-Christophe Deneuville jean-christophe.deneuville@xlim.fr Historique JavaScript est un langage reprenant quelques éléments de syntaxe de Java On l intègre
<link rel =" stylesheet " type =" text / css " href =" monstyle. css " />
Programmation Web AGRAL-3 et MTX-3, 2012-13 SÃl ance TP N o 5 Mars 2013 Objectifs Langage CSS Interactions HTML/CSS Manipulation [Où mettre ses fichiers? ] Pour ce TP vous allez mettre votre fichier HTML
XML Les documents semi-structurés
XML Les documents semi-structurés XML - extensible Markup Language XSL(T) - extensible Stylesheet Language XSD XML Schema DTD Document Type Definition Ivan Madjarov, IUT-R&T, 2006-2008 XML dérive d'un
Premiers pas en HTML, CSS et jquery
2 Premiers pas en HTML, CSS et jquery Arrivé à ce point dans la lecture de l ouvrage, vous êtes en mesure de créer un squelette HTML5 standard, de définir des règles de mise en forme CSS (directement dans
HTML/XHTML/XML. Olivier Aubert 1/26
HTML/XHTML/XML Olivier Aubert 1/26 Liens http://www.brics.dk/~amoeller/xml/overview.html http://www.w3.org/tr/xhtml1/#guidelines : annexe C, compatibility guidelines http://www710.univ-lyon1.fr/~exco/cours/cours/htm
Fiche 6 - Le langage HTML
Fiche 6 - Le langage HTML I Introduction HTML est un langage universel utilisé pour communiquer sur le Web. C est un langage dit de «marquage» (de «structuration» ou de «balisage») qui permet d écrire
XML - Semaine 6. XML - Semaine 6. Pierre Nerzic. février-mars 2016. 1 / 42 Pierre Nerzic
XML - Semaine 6 Pierre Nerzic février-mars 2016 1 / 42 Pierre Nerzic Le cours de cette semaine présente l API XML DOM permettant de produire et traiter un document XML : Principes, Création et modification
IV. Localisation des composants avec XPath
IV. Localisation des composants avec XPath 90 Langage XPath Est un langage d expression (non XML) Standard du W3C: XPath1.0 (1999), XPath2.0 (2010), XPath3.0 (2014) Objectif: exprimer des requêtes pour
HTML : Mini tutoriel
HTML : Mini tutoriel I. Introduction HTML est un langage de formatage de texte adapté à la conception de pages web. Le HTML est un langage balisé, fondé en particulier sur la notion de lien hypertexte,
Une rapide introduction à HTML / CGI
Une rapide introduction à HTML / CGI Patrick Fuchs Université Paris 7 Equipe de Bioinformatique Génomique et Moléculaire PLAN 1. Généralités 2. Les Bases d HTML 3. Outils HTML avancés 4. HTML dynamique
PARTENARIAT ICI FORMATION
PARTENARIAT ICI FORMATION Guide d installation de la vignette ICI Formation sur un site partenaire SOMMAIRE Le Partenariat ICI Formation... 3 Script de partenariat ICI Formation... 3 Génération de l'aperçu
SUPPORTS DE COURS SUR LE LANGAGE XML
SUPPORTS DE COURS SUR LE LANGAGE XML 1 1 COURS D'INTRODUCTION A XML GENERALITES XML n'est pas un langage à proprement parler comme peut l'être HTML : XML est une famille de langages ayant en commun le
L environnement multi fenêtré
Interffaces pour le Web L environnement multi fenêtré Une application s exécutant dans le cadre d un browser Web démarre généralement depuis un lien hypertexte ou un signet stocké dans le bookmark. La
Web & XML. Evaluation 1/2. ENSEIRB Programmation Web / XML. Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP. Page 1/9
Web & XML ENSEIRB Programmation Web / XML Evaluation 1/2 Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP Page 1/9 Historique : Version Date Origine de la mise à jour Rédigée par Validée par
xaltarica documents Intégration du langage XML Java Data Bnding JAXB, XML spy
Le monde XML xaltarica Christophe de Charentenay, ENSAE, Toulouse, octobre 2003 xaltarica consiste en une spécification du langage altarica en langage XML. Altarica rejoint alors le monde des langages
Le langage JavaScript TD N 3. Module IntegWEB MMI 1 2013/2014
1 Le langage JavaScript TD N 3 Module IntegWEB MMI 1 2013/2014 Jeu les tables de multiplication 2 Code HTML 3 apprendre les tables de multiplication
Gestion de l Information sur l Internet Exercices
Gestion de l Information sur l Internet Exercices Philippe Rigaux 22 septembre 2003 La plupart des exemples sur lesquels s appuient ces exercices sont sur le site : http://www.lri.fr/ rigaux/gii Vous pouvez
Les nouveautés de JSP 2.0
Les nouveautés de JSP 2.0 1 Introduction Nous avons déjà vu quelques nouveautés de la version 2.0 dans les travaux pratiques précédents (JSTL et langage d expressions). Il nous reste deux améliorations,
Samir Bennani sbennani@emi.ac.ma
XML 63 Samir Bennani sbennani@emi.ac.ma 64 version="1.0" version utilisée actuellement encoding indique le code utilisé : "UTF-8" par défaut standalone
INU3011 Documents structurés
INU3011 Documents structurés Cours 1 Hiver 2016 Copyright 2010-2016 Yves Marcoux - Reproduction interdite 1 Plan Introduction à XML En quoi ce cours peut vous être utile dans votre carrière? Contextes
Auto-évaluation XML cours de base
Auto-évaluation XML cours de base Document: F1006Test.fm 30/04/2010 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INTRDUCTIN AUT-ÉVALUATIN XML CURS DE BASE Ce test comporte
CRÉER DES PROCÉDURES FUNCTION
1 CRÉER DES PROCÉDURES FUNCTION Dans ce chapitre La différence entre les procédures Sub et Function Comment créer des fonctions personnalisées? À propos des fonctions et des arguments Quelques exemples
Programmation Web Avancée JQuery
1/27 Programmation Web Avancée JQuery Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017
Master Informatique 2 «RADI» Thème Applications Documentaires XML. Frédérik Bilhaut fbilhaut@info.unicaen.fr
Master Informatique 2 «RADI» Thème Applications Documentaires Frédérik Bilhaut fbilhaut@info.unicaen.fr XML Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 1 Plan du cours (4 2h) La sphère XML Le
GESTION DES CONNAISSANCES RECHERCHE DOCUMENTAIRE
L3 année 2007 2008 PROJET JAVA GESTION DES CONNAISSANCES RECHERCHE DOCUMENTAIRE Il s'agit d'écrire, de façon modulaire : un outil d'indexation des fichiers d'une arborescence donnée un outil d'export de
Déroulement. Conception de Sites Web dynamiques. 2 ème année en général. Conception de Sites Web 28/01/2010. Cours 1+2
Déroulement Conception de Sites Web dynamiques Cours 1+2 Patrick Reuter http://www.labri.fr/~preuter/cswd2010 CM vendredi de 8h00 à 9h00 (Amphi Bât. E 3ème) TD - Groupe 1 : vendredi, 9h00 10h30 (R1-14)
Présentation de XQuery
97 Chapitre 5 Présentation de XQuery 1. Présentation de XQuery Présentation de XQuery XML Query (plus communément appelé XQuery) est une spécification du W3C. De nos jours, de nombreux documents sont au
Ceci est une documentation préliminaire, traduite par Christine Dubois (Agilcom) et sujette à changement
Gestion des images Ceci est une documentation préliminaire, traduite par Christine Dubois (Agilcom) et sujette à changement Ce chapitre vous montre comment ajouter et afficher des images dans un site Web
Ce qu on ne sait pas faire avec le Web
Ce qu on ne sait pas faire avec le Web Le principal langage du Web est HTML HTML est un langage pour présenter des informations à l écran. 1. il ne permet pas d échanger des données 2. il ne permet pas
LES TABLEAUX. Créer un tableau élémentaire
LES TABLEAUX Il y a deux façons de créer dans un article : directement dans SPIP pour des tableaux élémentaires avec un éditeur html pour des tableaux complexes. Créer un tableau élémentaire Les colonnes
Tice -Seconde-Page Web 2015-2016
Ouvrez une page web, cliquer doit sur la souris et faite afficher le code source de la page. Quelqu un a écrit ce code pour faire afficher cette page. Nous allons nous aussi écrire du code pour faire afficher
Module BD et Sites Web
Module BD et Sites Web Cours 6 XSLT Remerciements à Bernd Amann 1 Plan Axes XPath Introduction à XSLT : comprendre les mécanismes du langage Règles XSLT Instructions XSLT Application : de XML à HTML 2
CHAPITRE 3 : Types de base, Opérateurs et Expressions
CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que
LI345 - EXAMEN DU 4 JUIN 2010
Nom : Prénom : page 1 Transactions Université Pierre et Marie Curie - Paris 6 - UFR 919 - Licence d'informatique LI345 - EXAMEN DU 4 JUIN 2010 Durée : 2h ---documents autorisés On note Li(X) : lecture
Arbres Mathématiques Informatique et Navigateurs Internet
Arbres Mathématiques Informatique et Navigateurs Internet Jacques Duma http://math.et.info.free.fr/ http://ateliermathematique.free.fr/ Arbres Expressions Mathématiques Structure arborescente de l expression
Qu'est-ce que le XML?
Qu'est-ce que le XML? La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), permettant de créer des documents structurés
PHP 5. simplexml. A. Belaïd 1
PHP 5 simplexml A. Belaïd 1 Introduction Dans les versions précédentes de PHP, il n y avait aucun outil permettant de manipuler simplement des fichiers XML Dans PHP 5, on trouve un mode, appelé, SimpleXML
Mini-projet XML/IHM Gestion d emplois du temps I3 - option SI
Mini-projet XML/IHM Gestion d emplois du temps I3 - option SI Olivier Beaudoux 4 septembre 2008 1 Introduction 1.1 Propos Dans ce mini-projet, nous proposons de construire différentes briques logicielles