Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

10 utilisateurs inconnus

 Mot :   Pseudo :  
 
 Page :  1  2
Page Suivante 
Auteur
 Sujet :

xml / xstl

 
n°4837
chocoboy
Profil : Membre
Posté le 07-08-2003 à 13:40:43  profilanswer
 

Reprise du message précédent :

cil20 a écrit :

je crois qu'on est d'accord, mais je m'exprime mal.
 
juste XSL=XSL-FO, XSL=!XSLT (et anciennement XSL=XSLT+XSL(-FO)+XPath).
 
(X)HTML est déjà un langage de rendu graphique (partiellement), donc créer un document HTML structuré revient à faire aussi du mm coup la mise en forme, achevée par le navigateur du client.
 
Pour faire avec XSLT la mise en forme, tu vas simplement lui dire d'écrire les règle de style en CSS qui s'appliquent à ton document.
Tu ne formattes pas réellement ton document : tu fournis juste au client le moyen de mettre en forme, mais le document n'est pas finalisé, c'est le navigateur qui se charge de ce travail.
 
C'est parce que (X)HTML inclu des règles de formatage que l'on peut se passer de XSL-FO.
 
Mais avec XSLT tu ne va pas directement spécifier que tel élément doit être block ou inline, avec ou sans bordure. Tu vas lui faire écrire des éléments déjà standardisés et des règles CSS qui à leurs tours préciseront ces paramètres de mise en forme.
 
Pour être plus clair :

Citation :

XSLT permet de faire de la mise en page


==> ben c'est un pb de termes, pour moi il permet d'extraire de l'info pour la mettre dans un autre format, et quand ce format est du HTML, la mise en forme est déjà incluse.
 
 

Citation :

Par exemple, XSLT permet de générer du PHP... essaie de faire la même chose avec CSS

 
Tout à fait d'accord. CSS n'est que de la mise en forme "de base", et n'a pas vocation à transformer un document. Et PHP est un langage de script, pas de "représentation" (visuelle, sonore...)


 
Le coup du XSL:FO, peut être que les termes ont changé depuis... t'as un lien qui confirme ce que tu dis ? En tout cas j'en avais jamais entendu parler avant...
 
Désolé si je me trompe, j'ai comme l'impression qu'il y a une certaine confusion dans ce que tu m'expliques à propos d'XSLT ?
 
Un exemple de XSL:FO généré par XSLT :
 

Code :
  1. <?xml version="1.0" encoding="iso-8859-1"?>   
  2. <xsl:stylesheet version="1.0"
  3. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  4. xmlns:fo="http://www.w3.org/1999/XSL/Format">
  5. <xsl:param name="language" />
  6. <xsl:param name="url_img" />
  7. <xsl:param name="url_org_chart_photo" />
  8. <xsl:template match="root">
  9.    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  10.  
  11.     <fo:layout-master-set>
  12.      <fo:simple-page-master master-name="page"
  13.                   page-height="29.7cm"
  14.                   page-width="21cm"
  15.                   margin-top="1cm"
  16.                   margin-bottom="2cm"
  17.                   margin-left="2.5cm"
  18.                   margin-right="2.5cm">
  19.        <fo:region-before extent="1.5cm"/>
  20.        <fo:region-body margin-top="1.5cm"/>
  21.        <fo:region-after extent="1.5cm"/>
  22.      </fo:simple-page-master>
  23.  </fo:layout-master-set>
  24.  <fo:page-sequence master-reference="page">
  25.      <fo:flow flow-name="xsl-region-body">
  26.    <xsl:for-each select="//content/paragraph">
  27.     <fo:block font-weight="bold" space-after="5pt"><xsl:number count="paragraph" />. <xsl:value-of select="@title" /></fo:block>
  28.         <fo:block space-after="20pt">
  29.      <fo:external-graphic>
  30.       <xsl:attribute name="height">100pt</xsl:attribute>
  31.       <xsl:attribute name="width">auto</xsl:attribute>
  32.       <xsl:attribute name="src">
  33.        <xsl:value-of select="$url_img" /><xsl:value-of select="img/@src" />
  34.       </xsl:attribute>
  35.      </fo:external-graphic>
  36.     </fo:block>
  37.     <fo:block space-after="20pt">
  38.      <xsl:apply-templates select="text()|*" />
  39.     </fo:block>
  40.    </xsl:for-each>
  41.      </fo:flow>
  42.    </fo:page-sequence>     
  43. </fo:root>
  44. </xsl:template>
  45. </xsl:stylesheet>


 
"Mais avec XSLT tu ne va pas directement spécifier que tel élément doit être block ou inline, avec ou sans bordure. "  :??:  
 
comme tu les vois, je génère un XSL:FO à partir d'un XML après transformation XSLT, ce XSL:FO est traité par FOP pour générer un document PDF (c'est comme ça que ça marche dans Cocoon 2)
 
Maintenant, XSL:FO n'intervient à aucun moment pour générer du XHTML...
 
Autre chose XSLT peut également générer du XSLT...


Message édité par chocoboy le 07-08-2003 à 13:43:48
n°4838
chocoboy
Profil : Membre
Posté le 07-08-2003 à 13:45:04  profilanswer
 

Si tu t'en sens le courage fais des essais avec Cocoon 2 :
http://cocoon.apache.org/
 
C'est à mon avis, l'un des meilleurs moyens (mais assez complexe) pour comprendre les interactions entre toutes les technos XML.

n°4844
cil20
Profil : Membre
Posté le 07-08-2003 à 14:56:22  profilanswer
 

Citation :

Le coup du XSL:FO, peut être que les termes ont changé depuis... t'as un lien qui confirme ce que tu dis ? En tout cas j'en avais jamais entendu parler avant...


 
Le pb c'est que XSLT, XPath et XSL-FO étaient au départ un seul langage : XSL. Maintenant on parle couramment de XSL comme d'une famille qui regroupe les 3. Et XSL est XSL-FO (tu pourras aller voir les reco : XPath, XSLT et XSL ("aka XSL-FO" : je crois que c'est pour also known as).
 
qq liens :
 
http://www.seyboldreports.com/TSR/ [...] watch.html
http://www.w3.org/Style/XSL/
http://www.w3.org/TR/xsl/slice1.ht [...] d-Overview
 

Citation :

XSL:FO n'intervient à aucun moment pour générer du XHTML

: exact, c'est inutile parce que XHTML est déjà un langage de présentation. cf W3C :

Citation :


1.2 Benefits of XSL
Unlike the case of HTML, element names in XML have no intrinsic presentation semantics. Absent a stylesheet, a processor could not possibly know how to render the content of an XML document other than as an undifferentiated string of characters. XSL provides a comprehensive model and a vocabulary for writing such stylesheets using XML syntax.


 
XSL(-FO) est superflu puisque avec XHTML on utilise déjà une feuille de style CSS (ou les anciennes balises et anciens attributs de mise en forme)
 

Citation :

[quote]Mais avec XSLT tu ne va pas directement spécifier que tel élément doit être block ou inline, avec ou sans bordure.

 :??:  
 
comme tu les vois, je génère un XSL:FO à partir d'un XML après transformation XSLT, ce XSL:FO est traité par FOP pour générer un document PDF (c'est comme ça que ça marche dans Cocoon 2)[/quote]
ben oui, on est d'accord il me semble : pour la mise en forme tu te sers de XSL(-FO), à partir de XSLT (xlmns:fo, <fo:...)
 
J'en reviens à ce que je disais au début : XSL(-FO) est l'équivalent en XML des CSS, mais en plus poussé, et XSLT ne fait pas de mise en page, il cré un document dans un langage qui éventuellement - c'est le cas du (X)HTML - inclu la mise en page. Ce n'est pas "intentionnel" mais spécifique au langage final du document créé.

n°4845
cil20
Profil : Membre
Posté le 07-08-2003 à 14:58:09  profilanswer
 

Citation :

Si tu t'en sens le courage fais des essais avec Cocoon 2 :
http://cocoon.apache.org/
 
C'est à mon avis, l'un des meilleurs moyens (mais assez complexe) pour comprendre les interactions entre toutes les technos XML.

 
 
ok merci je vais essayer, j'ai une semaine de vacances bientôt.
 
Mais je reste persuadé de ce que je viens de dire ;)

n°4846
chocoboy
Profil : Membre
Posté le 07-08-2003 à 15:35:07  profilanswer
 

j'ai lu les reco, ce sont les mêmes que j'avais déjà lu plusieurs fois... ça me confirme donc ta mésinterprétation...
 
ce n'est pas péjoratif, mais tu lèveras certainement ces malentendus lorsque tu passeras à la pratique parce que là, vraissemblablement, t'en est à la théorie (tout le monde commence un jour).  :)  
 
après, tu fais ce que tu veux de ce que je te dis...

n°4848
cil20
Profil : Membre
Posté le 07-08-2003 à 16:15:47  profilanswer
 

je t'envoyais vers les reco juste pour "Le coup du XSL:FO, peut être que les termes ont changé depuis"
 
sinon pour "ça me confirme donc ta mésinterprétation..." je continu de croire qu'on a la mm idée mais un pb de comm. Tu est d'accord pour dire que XSLT n'est pas un langage de mise en page, non ? Tu PEUX t'en servir pour créer un document avec mise en page (en XHTML par exemple), mais son rôle n'est pas de METTRE en forme le doc. Par contre c'est la fonction de XSL-FO, comme tu le montre dans ton exemple de code (<fo:block font-weight="...)

n°4849
chocoboy
Profil : Membre
Posté le 07-08-2003 à 17:26:55  profilanswer
 

cil20 a écrit :

je t'envoyais vers les reco juste pour "Le coup du XSL:FO, peut être que les termes ont changé depuis"
 
sinon pour "ça me confirme donc ta mésinterprétation..." je continu de croire qu'on a la mm idée mais un pb de comm. Tu est d'accord pour dire que XSLT n'est pas un langage de mise en page, non ? Tu PEUX t'en servir pour créer un document avec mise en page (en XHTML par exemple), mais son rôle n'est pas de METTRE en forme le doc. Par contre c'est la fonction de XSL-FO, comme tu le montre dans ton exemple de code (<fo:block font-weight="...)
 


 
ok... menfin, c'est ta manière de présenter les choses qui m'embrouille un peu...
bon apprentissage  :)

n°4850
cil20
Profil : Membre
Posté le 07-08-2003 à 17:53:29  profilanswer
 

je suis pas sûr qu'une semaine me suffise, par contre ;)

n°4851
cil20
Profil : Membre
Posté le 07-08-2003 à 17:55:08  profilanswer
 

on a un peu squatté le post de noda, là, non ? :sarcastic:

 Page :  1  2
Page Suivante 

Aller à :
Ajouter une réponse