Comment exécuter les transformations XSL côté serveur sous Dreamweaver. Création de pages XSLT et conversion de pages HTML en pages XSLT.
L’interface utilisateur a été simplifiée sous Dreamweaver CC et versions ultérieures. Par conséquent, il se peut que vous ne trouviez pas certaines options décrites dans cet article sous Dreamweaver CC et versions ultérieures. Pour plus d’informations, consultez cet article.
Vous pouvez exécuter des transformations XLS côté serveur sur le serveur. Informez-vous sur les transformations XSL côté client et côté serveur et sur l’utilisation de XML et de XSL avec les pages web avant de créer des pages affichant des données XML.
Pour exécuter des transformations côté serveur, votre serveur doit être correctement configuré. Pour plus d’informations, contactez l’administrateur de votre serveur.
Le déroulement général des transformations XSL côté serveur est le suivant (chaque étape individuelle est décrite dans d’autres rubriques) :
1. Créez un site Dreamweaver.
2. Choisissez une technologie de serveur et configurez un serveur d’application.
3. Testez le serveur d’application.
Vous pouvez par exemple créer une page à traiter et vous assurer que le serveur d’application effectue l’opération requise.
4. Créez un fragment ou une page XSLT, ou convertissez une page HTML en page XSLT.
Sur votre site Dreamweaver, créez un fragment XSLT ou une page XSLT entière.
Convertissez une page HTML existante en une page XSLT entière.
5. Associez une source de données XML à la page.
6. Affichez les données XML en les liant au fragment XSLT ou à la page XSLT entière.
7. Le cas échéant, ajoutez un objet XSLT Région répétée au tableau ou à la ligne de tableau contenant les espaces réservés pour données XML.
8. Insérez des références.
Pour insérer une référence au fragment XSLT dans votre page dynamique, utilisez le comportement de serveur Transformation XSL.
Pour insérer une référence à la page XSLT dans la page dynamique, supprimez tout le code HTML de la page dynamique, puis utilisez le comportement de serveur Transformation XSL.
9. Envoyez la page et le fragment.
Envoyez la page dynamique et le fragment XSLT (ou la page XSLT entière) à votre serveur d’application. Si vous utilisez un fichier XML local, envoyez-le également.
10. Affichez la page dynamique dans un navigateur.
Le serveur d’application transforme alors les données XML, les insère dans la page dynamique et les affiche dans le navigateur.
Les pages XSLT permettent d’afficher des données XML sur des pages web. Vous pouvez créer soit une page XSLT entière (une page XSLT contenant une balise <body> et une balise <head>), soit un fragment XSLT. Lorsque vous créez un fragment XSLT, vous créez en fait un fichier indépendant qui ne contient pas de balise body ni head, mais simplement du code qui sera ensuite inséré dans une page dynamique.
Si vous utilisez une page XSLT existante et devez lui associer une source de données XML.
Sélectionnez XSLT (page entière) pour créer une page XSLT entière.
Sélectionnez XSLT (Fragment) pour créer un fragment XSLT.
Un clic sur le bouton Annuler entraîne la génération d’une nouvelle page XSLT à laquelle aucune source de données XML n’est associée.
Le schéma de votre source de données XML s’affiche dans le panneau Liaisons
Le tableau suivant décrit les différents éléments que le schéma est susceptible de contenir.
Elément |
Représente |
Détails |
---|---|---|
<> |
Elément XML non répété obligatoire |
Elément qui apparaît une fois seulement au sein de son nœud parent |
<>+ |
Elément XML répété |
Elément qui apparaît une ou plusieurs fois au sein de son nœud parent |
<>+ |
Elément XML facultatif |
Elément qui apparaît zéro ou plusieurs fois au sein de son nœud parent |
Nœud d’élément en gras |
Elément contextuel en cours |
En règle générale, l’élément répété lorsque le point d’insertion se trouve au sein d’une région répétée |
@ |
Attribut XML |
|
Vous pouvez aussi convertir des pages HTML existantes en pages XSLT. Si, par exemple, vous disposez d’une page statique prédéfinie à laquelle vous souhaitez ajouter des données XML, vous pouvez la convertir en page XSLT, plutôt que de créer une page XSLT et de la redéfinir entièrement.
Une copie de la page s’ouvre dans la fenêtre de document. La nouvelle page est une feuille de style XSL, enregistrée avec l’extension .xsl.
Si vous utilisez une page XSLT existante ou si vous en créez une sous Dreamweaver sans lui associer de source de données XML, vous devez utiliser le panneau Liaisons pour associer une source de données XML.
Pour ajouter une source de données XML, vous pouvez aussi cliquer sur le lien Source, dans le coin supérieur droit du panneau Liaisons.
Choisissez Associer un fichier local, cliquez sur le bouton Parcourir, recherchez le fichier XML local sur votre ordinateur, puis cliquez sur OK.
Choisissez Associer un fichier distant, puis indiquez l’adresse URL d’un fichier XML sur Internet (par exemple un fil RSS).
Le schéma de votre source de données XML s’affiche dans le panneau Liaisons.
Après avoir créé une page XSLT et lui avoir associé une source de données XML, vous pouvez lier des données à la page. Pour ce faire, vous ajoutez un emplacement réservé pour données XML dans votre page, puis vous utilisez le Créateur d’expression XPATH ou l’inspecteur Propriétés pour mettre en forme les données sélectionnées qui vont s’afficher dans la page.
En règle générale, il est conseillé d’utiliser l’objet XSLT Région répétée pour afficher des éléments XML répétés sur une page. Dans ce cas, vous pouvez créer un tableau d’une seule ligne avec une ou plusieurs colonnes, ou un tableau de deux lignes si vous avez l’intention d’insérer un en-tête.
Un espace réservé pour données XML est créé sur la page. Cet espace réservé est en surbrillance et encadré d’accolades. Il utilise la syntaxe XPath (langage XML Path) pour décrire la structure hiérarchique du schéma XML. Par exemple, si vous faites glisser l’élément enfant title sur la page, et si ses éléments parents sont rss, channel et item, la syntaxe de l’espace réservé dynamique sera \{rss/channel/item/title\}.
Double-cliquez sur l’emplacement réservé des données XML dans la page pour ouvrir le Créateur d’expression XPATH. Le Créateur d’expression XPATH permet de mettre les données sélectionnées en forme ou de sélectionner d’autres éléments dans le schéma XML.
Lorsque vous utilisez la fonction Aperçu dans le navigateur, Dreamweaver effectue une transformation XSL en interne, sans faire appel à un serveur d’application.
L’objet XSLT Région répétée permet d’afficher sur une page web des éléments répétés provenant d’une source de données XML. Par exemple, si vous affichez des titres et descriptions d’articles à partir d’un fil d’informations contenant entre 10 et 20 articles, chaque titre et chaque description du fichier XML est probablement un élément enfant d’un élément répété.
En mode Création, toute région contenant un emplacement réservé pour données XML peut être convertie en région répétée. Toutefois, les zones les plus fréquentes sont les tableaux, les lignes de tableau ou une série de lignes de tableau.
La sélection peut être de tout type, notamment tableau, ligne de tableau ou même paragraphe de texte.
Pour sélectionner précisément une région sur une page, vous pouvez utiliser le sélecteur de balises dans le coin inférieur gauche de la fenêtre de document. Par exemple, si la région correspond à un tableau, cliquez dans ce tableau, puis cliquez sur la balise dans le sélecteur de balises.
Choisissez Insertion > Objets XSLT > Région répétée.
Dans la catégorie XSLT du panneau Insertion, cliquez sur le bouton Région répétée.
Dans la fenêtre de document, un contour fin de couleur grise délimite la région répétée. Lors de l’affichage de l’aperçu dans un navigateur (Fichier > Aperçu dans le navigateur), le cadre gris disparaît et la sélection est développée pour afficher les éléments répétés spécifiés dans le fichier XML.
Lorsque vous ajoutez l’objet XSLT Région répétée à la page, l’emplacement réservé pour données XML dans la fenêtre de document est tronqué. En effet, Dreamweaver met à jour le chemin XPath de l’espace réservé pour données XML afin qu’il se réfère au chemin de l’élément répété.
L’inspecteur Propriétés permet de sélectionner un autre nœud XML à répéter pour créer la région répétée.
Après avoir inséré un objet XSLT Région répétée dans une région, vous pouvez le modifier à l’aide de l’inspecteur Propriétés.
Après avoir créé un fragment XSLT, vous pouvez l’insérer dans une page web dynamique à l’aide du comportement de serveur Transformation XSL. Lorsque vous insérez ce comportement de serveur dans une page et affichez celle-ci dans un navigateur, un serveur d’application effectue une transformation qui affiche les données XML du fragment XSLT sélectionné. Dreamweaver prend en charge les transformations XSL pour les pages ColdFusion, ASP ou PHP.
La procédure d’insertion du contenu d’une page XSLT entière dans une page dynamique est identique. Avant d’utiliser le comportement de serveur Transformation XSL pour insérer la page XSLT entière, supprimez tout le code HTML de la page dynamique.
Lors de l’insertion de fragments XSLT, vous devez toujours cliquer sur le bouton Afficher les modes Code et Création après avoir placé le point d’insertion sur la page, de façon à s’assurer que le point d’insertion est à l’emplacement voulu. S’il n’y est pas, cliquez de nouveau dans l’écran Code pour placer le point d’insertion à l’endroit voulu.
Dreamweaver renseigne le champ de texte suivant avec le chemin d’accès ou l’adresse URL du fichier XML associé à ce fragment. Pour modifier le contenu de ce champ, cliquez sur le bouton Parcourir et sélectionnez un autre fichier.
Un sous-dossier includes/MM_XSLTransform/ contenant un fichier contenant une bibliothèque d’exécution est également créé dans le dossier racine du site. Le serveur d’application utilise les fonctions définies dans ce fichier lors de la transformation.
Pour supprimer un fragment XSLT d’une page, supprimez le comportement de serveur Transformation XSL qui a permis d’insérer le fragment. La suppression de ce comportement de serveur supprime uniquement le fragment XSLT ; les fichiers associés (XML, XSLT ou bibliothèque d’exécution) ne sont pas affectés.
Vous devez toujours utiliser cette méthode pour supprimer un comportement de serveur. En effet, la suppression manuelle du code correspondant ne supprime que partiellement le comportement de serveur, même si celui-ci disparaît bien du panneau Comportements de serveur.
Après avoir ajouté un fragment XSLT à une page web dynamique, vous pouvez à tout moment modifier le comportement de serveur Transformation XSL.
Vous pouvez créer un lien dynamique dans votre page XSLT qui établit un lien vers une URL spécifique lorsque l’utilisateur clique sur un mot ou un groupe de mots spécifié dans vos données XML. Pour obtenir des instructions complètes, voir l’errata Dreamweaver à l’adresse www.adobe.com/go/dw_documentation_fr.
Lorsque vous créez une page XSLT entière (autrement dit, une page XSLT qui contient des balises <body> et <head>), vous pouvez afficher les données XML sur la page, puis les mettre en forme comme tout autre contenu à l’aide de l’inspecteur Propriétés ou du panneau Styles CSS. Lorsque vous créez un fragment XSLT pour l’insertion dans une page dynamique, tel qu’un fragment à insérer dans une page ASP, PHP ou Cold Fusion), le rendu des styles du fragment et de la page dynamique devient plus compliqué. Bien que le fragment XSLT soit traité de façon indépendante par rapport à la page dynamique, il est important de conserver à l’esprit que le fragment est conçu pour cette page dynamique et que le code renvoyé par le fragment XSLT sera placé quelque part entre les balises <body> de la page dynamique. Etant donné ce processus, il est important de s’assurer qu’aucun élément <head> (tel que des définitions de style ou des liens vers des feuilles de style externes) n’est inclus dans des fragments XSLT. Sinon, le serveur d’application place ces éléments dans la section <body> de la page dynamique, ce qui débouche sur un marquage non valide.
Vous pouvez, par exemple, décider de créer un fragment XSLT à insérer dans une page dynamique et le mettre en forme au moyen de la même feuille de style externe que la page dynamique. Si vous attachez la même feuille de style au fragment, la page HTML résultante contient un lien en double à la feuille de style (un dans la section <head> de la page dynamique et un autre dans la section <body> de la page, là où le contenu du fragment XSLT apparaît). Une meilleure façon de procéder consiste à utiliser des feuilles de style à la conception pour référencer la feuille de style externe.
Lors du formatage du contenu des fragments XSLT, utilisez la procédure suivante :
Tout d’abord, attachez une feuille de style externe à la page dynamique. (Cette procédure reprend les meilleures pratiques d’application des styles au contenu d’une page web.)
Ensuite, attachez la même feuille de style externe au fragment XSLT en tant que feuille de style à la conception. Tel que leur nom l’indique, les feuilles de style à la conception fonctionnent uniquement en mode Création sous Dreamweaver.
Une fois les deux étapes précédentes terminées, vous pouvez créer de nouveaux styles dans votre fragment XSLT à l’aide de la feuille de style qui a été associée à votre page dynamique. Vous obtiendrez un code HTML mieux structuré (dans la mesure où la référence à la feuille de style n’est valide que sous Dreamweaver) et le fragment affichera toujours les styles requis en mode Création. De plus, tous vos styles sont appliqués au fragment et à la page dynamique lorsque vous affichez cette dernière en mode Création ou en affichez un aperçu dans un navigateur.
Si vous demandez un aperçu du fragment XSLT dans un navigateur, ce dernier n’affiche pas les styles. Par contre, vous devez afficher un aperçu de la page dynamique dans le navigateur afin de consulter le fragment XSLT dans le contexte de la page dynamique.
Lorsque vous ajoutez le comportement de serveur Transformation XLS à une page web, vous pouvez définir des paramètres de transformation XSL. Un paramètre contrôle la façon dont les données XML sont traitées et affichées. Par exemple, vous pouvez utiliser un paramètre pour identifier et afficher un article spécifique d’un fil d’informations. Lorsque la page est chargée dans un navigateur, seul l’article spécifié par le paramètre est affiché.
Pour utiliser une valeur statique, saisissez-la dans la zone Valeur.
Pour utiliser une valeur dynamique, cliquez sur l’icône Dynamique à côté de la zone Valeur, renseignez la boîte de dialogue Données dynamiques, puis cliquez sur le bouton OK. Pour plus d’informations, cliquez sur le bouton Aide de la boîte de dialogue Données dynamiques.
Vous pouvez créer des régions conditionnelles simples ou multiples sur une page XSLT. Vous pouvez soit sélectionner un élément en mode Création, puis appliquer une région conditionnelle à la sélection, soit insérer une région conditionnelle à l’emplacement du point d’insertion dans le document.
Supposons que vous souhaitiez afficher l’expression « Non disponible » en regard du prix d’un article lorsque celui-ci est en rupture de stock. Pour ce faire, vous tapez l’expression « Non disponible » sur la page, la sélectionnez et lui appliquez une région conditionnelle. Dreamweaver entoure l’expression des balises <xsl:if> et affiche uniquement le mot « Non disponible » sur la page lorsque les données répondent aux conditions définies par l’expression conditionnelle.
Vous pouvez rédiger une expression conditionnelle simple à insérer dans votre page XSLT. Tout contenu sélectionné à l’ouverture de la boîte de dialogue Région conditionnelle est entouré d’un bloc <xsl:if>. Si aucun contenu n’est sélectionné, le bloc <xsl:if> est entré au point d’insertion. Il est judicieux d’utiliser cette boîte de dialogue pour démarrer, puis de personnaliser l’expression en mode Code.
L’élément <xsl:if> est similaire à l’instruction if d’autres langages. Il a pour fonction de tester une condition et de déclencher une action en fonction du résultat. L’élément <xsl:if> vous permet de tester si une expression est vraie ou fausse.
L’exemple suivant vérifie si la valeur de l’attribut @available du nœud contextuel correspond à true (vrai).
Le code suivant est inséré dans votre page XSLT :
<xsl:if test="@available='true'"> Content goes here </xsl:if>
Vous devez placer les valeurs de chaîne telles que true entre guillemets. Dreamweaver code les guillemets (') à votre intention, afin qu’elles apparaissent dans un format XHTML valide.
Outre tester des nœuds pour des valeurs, vous pouvez utiliser toute fonction XSLT prise en charge dans votre instruction conditionnelle. La condition est testée pour le nœud en cours de votre fichier XML. L’exemple suivant teste le dernier nœud des résultats :
Pour plus d’informations et des exemples concernant l’écriture d’expressions conditionnelles, consultez la section <xsl:if> du panneau Références (Aide > Référence).
Vous pouvez rédiger une expression conditionnelle simple à insérer dans votre page XSLT. Tout contenu sélectionné à l’ouverture de la boîte de dialogue Région conditionnelle est entouré d’un bloc <xsl:choose>. Si vous ne sélectionnez pas de contenu, le bloc <xsl:choose> est entré au point d’insertion. Il est judicieux d’utiliser cette boîte de dialogue pour démarrer, puis de personnaliser l’expression en mode Code.
L’élément <xsl:choose> est similaire à l’instruction case d’autres langages. Il a pour fonction de tester une condition et de déclencher une action en fonction du résultat. L’élément <xsl:choose> vous permet de tester plusieurs conditions.
L’exemple suivant vérifie si la valeur du sous-élément price du nœud contextuel est inférieure à 5.
Le code suivant est inséré dans votre page XSLT :
<xsl:choose> <xsl:when test="price<5"> Content goes here </xsl:when> <xsl:otherwise> Content goes here </xsl:otherwise> </xsl:choose>
Une fois que vous avez spécifié la condition et cliqué sur OK, une autre balise <xsl:when> est insérée dans le bloc <xsl:choose>.
Pour plus d’informations et des exemples concernant l’écriture d’expressions conditionnelles, consultez les sections <xsl:choose> du panneau Références (Aide > Référence).
L’inspecteur de définition des propriétés des régions conditionnelles permet de modifier la condition utilisée dans une région conditionnelle dans votre page XSL. La région conditionnelle teste la condition et déclenche une action en fonction du résultat.
L’inspecteur de définition des propriétés des régions conditionnelles permet de modifier la condition utilisée dans une région conditionnelle multiple dans votre page XSL. La région conditionnelle multiple teste la condition et déclenche une action en fonction du résultat.
Vous pouvez ajouter des balises de commentaires XSL à un document ou vous pouvez entourer une sélection de balises de commentaires XSL.
En mode Création, sélectionnez Insertion > Objets XSLT > Commentaires XSL, tapez les commentaires (ou ne remplissez pas la zone), puis cliquez sur OK.
En mode Code, sélectionnez Insertion > Objets XSLT > Commentaires XSL.
Vous pouvez également cliquer sur l’icône Commentaire XSL de la catégorie XSLT du panneau Insertion.
XPath (langage XML Path) est une syntaxe non XML destinée à traiter des parties d’un document XML. Elle est essentiellement utilisée comme langage de requêtes pour des données XML, tout comme le langage SQL est utilisé pour des requêtes de bases de données. Pour plus d’informations sur XPath, consultez les spécifications du langage XPath sur le site web du W3C, à l’adresse www.w3.org/TR/xpath.
Le Créateur d’expression XPath est une fonction de Dreamweaver qui vous permet de créer des expressions XPath simples pour l’identification de nœuds de données spécifiques et pour les régions répétées. Cette méthode présente un avantage sur le glissement-déplacement de valeurs à partir de l’arborescence du schéma XML car elle vous permet de mettre en forme la valeur qui est affichée. Le contexte en cours est identifié en fonction de la position du point d’insertion dans le fichier XSL lors de l’ouverture de la boîte de dialogue Créateur d’expressions XPath. Le contexte en cours est affiché en gras dans l’arborescence du schéma XML. Au fur et à mesure que vous effectuez des sélections dans cette boîte de dialogue, les instructions XPATH correctes relatives à votre contexte en cours sont générées. Cette fonction simplifie le processus d’écriture d’expressions XPath correctes, tant pour les novices que les utilisateurs expérimentés.
Cette fonction a été conçue pour vous aider à créer des expressions XPath simples pour identifier un nœud spécifique ou pour les régions répétées. Elle ne vous permet pas de modifier les expressions manuellement. Si vous devez créer des expressions complexes, utilisez le Créateur d’expressions XPath pour démarrer, puis personnalisez vos expressions en mode Code ou au moyen de l’inspecteur Propriétés.
L’expression XPath appropriée est rédigée dans la zone Expression pour identifier le nœud.
Si vous sélectionnez un autre nœud dans l’arborescence du schéma XML, l’expression change en conséquence.
Dans l’exemple suivant, vous souhaitez afficher le sous-élément price du nœud item :
Une telle sélection insère le code suivant dans votre page XSLT :
<xsl:value-of select="price"/>
Le formatage d’une sélection est utile lorsque la valeur du nœud renvoie un nombre. Dreamweaver propose une liste prédéfinie de fonctions de mise en forme. Vous trouverez la liste complète de ces fonctions, ainsi que des exemples, dans le panneau Références.
Dans l’exemple suivant, vous souhaitez afficher le sous-élément price sous la forme d’une devise à deux décimales :
Ces options devraient insérer le code suivant dans votre page XSLT :< ; xsl-de select="format-number(provider/store/items/item/price,’$#.00’)" / >
<xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>
Pour plus d’informations et des exemples concernant la sélection de nœuds pour renvoyer une valeur, consultez la section <xsl:value-of/> du panneau Références.
Vous pouvez sélectionner un nœud à répéter et, éventuellement, choisir de filtrer les résultats. Dans la boîte de dialogue Créateur d’expressions XPath, votre contenu sélectionné sera entouré d’un bloc <xsl:for-each>. Si aucun contenu n’est sélectionné, le bloc <xsl:for-each> est entré au point d’insertion.
L’expression XPath appropriée est rédigée dans la zone Expression pour identifier le nœud.
Les éléments répétés sont identifiés par le symbole Plus (+) dans l’arborescence du schéma XML.
Dans l’exemple suivant, vous souhaitez répéter chaque nœud item au sein du fichier XML.
Lorsque vous cliquez sur OK, le code suivant est inséré dans votre page XSLT :
<xsl:for-each select="provider/store/items/item"> Content goes here </xsl:for-each>
Dans certains cas, vous souhaiterez peut-être utiliser un sous-ensemble des nœuds répétés. Ainsi, vous souhaiterez peut-être utiliser uniquement les articles dotés d’un attribut d’une valeur spécifique. Vous devez alors créer un filtre.
Utilisez un filtre pour identifier les nœuds répétés possédant des valeurs d’attribut spécifiques.
Filtrer par
Indique le nœud répété contenant les données sur lesquelles fonder le filtre. Ce menu déroulant propose une liste de nœuds ancêtres relatifs au nœud sélectionné dans l’arborescence du schéma XML.
Où
Spécifie l’attribut ou le sous-élément du nœud Filtrer par qui sera utilisé pour filtrer les résultats. Vous pouvez sélectionner un attribut ou un sous-élément dans le menu déroulant, ou vous pouvez entrer votre propre expression XPath dans ce champ pour identifier les enfants présents aux autres niveaux.
Opérateur
Spécifie l’opération de comparaison à utiliser dans l’expression de filtre.
Valeur
Spécifie la valeur à rechercher dans le nœud Filtrer par. Indiquez une valeur. Si des paramètres dynamiques sont définis pour votre page XSLT, vous pouvez en sélectionner un dans le menu déroulant.
En fonction des valeurs que vous tapez ou sélectionnez dans les menus déroulants, l’expression XPath figurant dans la zone Expression est modifiée.
L’exemple suivant renvoie uniquement les nœuds item dans lesquels la valeur de l’attribut @available correspond à true (vrai).
Lorsque vous cliquez sur OK, le code de suivant est inséré dans votre page XSLT :<xsl:for-each select="provider/store/items/item[@available = 'true']"> Insérer le contenu ici </xsl:for-each>
<xsl:for-each select="provider/store/items/item[@available = 'true']"> Content goes here </xsl:for-each>
Vous devez placer les valeurs de chaîne telles que true entre guillemets. Dreamweaver code les guillemets (') à votre intention, afin qu’elles apparaissent dans un format XHTML valide.
Vous pouvez créer des filtres plus complexes qui vous permettent de spécifier des nœuds parents dans vos critères de filtre. L’exemple suivant affiche uniquement les nœuds item pour lesquels l’attribut @id de store est égal à 1 et le nœud price correspondant à item est supérieur à 5.
Lorsque vous cliquez sur OK, le code de suivant est inséré dans votre page XSLT :<xsl:for-each select="provider/store/items/item[@available = 'true']"> Insérer le contenu ici </xsl:for-each>
Pour plus d’informations et des exemples de régions répétées, consultez la section <xsl:for-each> du panneau Références.
<xsl:for-each select="provider/store[@id = 1]/items/item[price > 5]"> Content goes here </xsl:for-each>
Accéder à votre compte