Bonjour,
J'aimerais savoir quels sont les avantages (et inconvénients) du XML pat rapport au XHTML et si il sont déstinés au même emploi.

J'aurais notament à faire une mise en page qui change chaque semaine pour mon site. J'ai lu quelque part qu'il était facile d'exporter en XML des mises en page faite à partir de InDesign. Cela permettrait-il de changer facilement ma mise en page? Est-ce une pratique courament utilisée par les webmasters?

Merci.
Modifié par mathmax (27 Sep 2005 - 21:27)
Hum... Ta question demande le même genre de réponse que celle-ci:
"Bonjour, j'aimerais savoir quels sont les avantages (et inconvénients) du train par rapport à un chariot filo-guidé?"

Parce qu'en fait ce sont deux choses distinctes, même s'il y a un recouvrement partiel.

XML est un langage de balisage, un peu comme HTML mais plus général. Il permet de stocker des informations structurées de manière hiérarchique.Tu peux par exemple écrire

<tarte>
<recette nombrepersonnes="4">
<ingrédients>(...)</ingrédients>
<procédure>(...)</procédure>
</recette>
<prix unité="euros">(...)</prix>
</tarte>

Un fichier au format XML respecte quelques règles d'écriture (par exemple, toute balise ouverte doit être fermée).

HTML est un langage de balisage qui ne respecte pas les mêmes normes. Une balise peut en pas être fermée (exemple: <img (...)>).

XHTML est une reformulation de HTML qui respecte les normes d'écriture d'un fichier XML (exemple: <img (...) />, et qui est en conséquence un fichier XML.

Donc XML est un format de stockage d'informations, qui nécessite d'être mise en forme pour être lu par un outil (à l'aide d'une feuille de styles CSS ou XSL pour un navigateur Web par exemple). Pour simplifier, XHTML est une normalisation de HTML permettant de tirer parti des nombreux outils qui existent pour la manipulation des fichiers au format XML.

Ils ne sont donc pas destinés au même emploi. Pour plus de renseignements, n'hésite pas à fouiner dans les ressources!
Modifié par Gilles (13 Sep 2005 - 16:19)
Merci pour ta réponse. Quelques points me paraissent encore obscures:

a écrit :
Parce qu'en fait ce sont deux choses distinctes, même s'il y a un recouvrement partiel.

XML est un langage de balisage, un peu comme HTML


Je ne suis pas sûr de bien comprendre: Es-ce que un site peut être entièrement fait avec du XML et du CSS (sans HTML)? Si oui, c'est donc que le XML peut remplaçer le HTML, donc il y forçément des avantages ou des inconvénients à choisir l'une des deux solutions: XML ou HTML. Non?

a écrit :
Donc XML est un format de stockage d'informations, qui nécessite d'être mise en forme pour être lu par un outil

Cela veut-il dire que le XML ne peux être utilisé tous seul pour faire une page web (à l'inverse du HTML, il faut nécéssairement le mettre en forme avec une feuille de style)?

a écrit :
Pour simplifier, XHTML est une normalisation de HTML permettant de tirer parti des nombreux outils qui existent pour la manipulation des fichiers au format XML.

Quels sont ces nombreux outils?

Aurais-tu des informations pour ce qui est d'exporter du XML à partir de InDesign?

PS: merci pour le lien vers les ressources. Je ne connaissais pas cette page. C'est une mine d'informations!
Modifié par mathmax (13 Sep 2005 - 18:23)
Bonjour.

Pour ma part, j'utilise XML pour générer des pages web.

Les langages html et xhtml sont destinés à présenter du contenu à l'aide d'un agent comprenant ce langage.
Le jeu de balise est fixe et préétablis.
Largement suffisant pour présenter ce pourquoi il est prévu, le langage souffre de limitations évidentes
quand il est question de rédiger un traité de mathématique ou de décrire un
dessin vectoriel. (par exemple)

Avec XML, il n'y a aucune (ou très peu) de contrainte, et il est possible de décrire ce qu'on veux dans ce langage,
en créant balises et attributs adaptés.

<page title="Exemple XML">

<panel id="header">
Contenu de la bannière
</panel>

<panel id="menu">
<btn action="load" url="page2.php">Option 1</btn>
<btn action="exec(javascript:alert('En Construction'))">Option 2</btn>
</panel>

<panel id="main">
Contenu de main
</panel>

<panel id="footer">
<mailto adr="monmail@monserveur.com">Envoyez nous un mail ?</mailto>
</panel>

</page>


Voilà un exemple inventé de toute pièce dont l'expressivité donne à penser qu'il sert à générer une page html...

Mais pour visualiser la page html, il faut connaitre un autre langage autrement plus rebutant: XSLT

XSLT va se charger de transformer le code XML en ... HTML!
En effet, le navigateur connait html, mais ne peux pas deviner ce que la structure XML veut signifier.
La transformation est indispensable.

Un exemple de transformation: la balise <page title="Exemple XML"> va être transformée en
<html><head><title>Exemple XML</title></head><body>

et </page> en </body></html>

Le transformateur XSLT peut être programmé pour générer du html, du xhtml, strict ou transitionnal, avec tel ou tel encodage...
ou du texte brut, ou du pdf, ou tout ce qu'on veut...

Pour mettre en oeuvre XSLT le plus simple (pour moi) est PHP5 qui fournit des outils puissants.

Les prérequis pour tirer partis de cette technologie sont:
- PHP
- XSL
- XPATH
- DOM

Il est à noter que Internet Explorer est capable de lire et d'afficher correctement un fichier XML
associé à un fichier XSL et une feuille CSS.
Le navigateur effectue lui même la transformation et affiche le résultat.
Celà permet de s'initier sans PHP.

Attention : Cette technologie difficile ouvre tellement de portes qu'on risque de tomber accro!
Modifié par GeorgesM (13 Sep 2005 - 20:14)
Merci pour ces précisions. Quelques questions encore:

a écrit :
il est possible de décrire ce qu'on veux dans ce langage,
en créant balises et attributs adaptés.

Comment on indique que telle balise à telle fonction quand on la crée?

Si le XML est de toute façon transformé en HTML par XSLT pour les navigateurs. Pourquoi ne pas écrire directement du HTML. En plus la traduction XML->HTML respecte t-elle la sémentique du HTML?

a écrit :

Les prérequis pour tirer partis de cette technologie sont:
- PHP
- XSL
- XPATH
- DOM

A quoi servent en gros ces prérequis?

Par contre toujours rien à propos de Indesign et de l'exportation en XML?
Modifié par mathmax (13 Sep 2005 - 21:02)
a écrit :
Par contre toujours rien à propos de Indesign et de l'exportation en XML?


Je ne connais pas Indesign.... Smiley rolleyes

a écrit :
Comment on indique que telle balise à telle fonction quand on la crée?

L'humain le comprend généralement assez bien, cf l'exemple patissier de Gilles.
Pour le faire comprendre aux machines, c'est la DTD, et le programme XSL chargé de réaliser la transformation qui donne un sens sous forme de résultat.

Si le XML est de toute façon transformé en HTML... 


Justement, on n'est pas limité à html. On peut transformer XML en ce qu'on veut.
Imaginons que dans deux ans ou moins, avec la percée d'adsl, tous les téléviseurs soient branchés internet.
Supposons aussi que "Sony l'a fait" avec un balisage maison, histoire de
casser les pieds.
Dans ce cas, on utiliserais XSLT pour prendre du xhtml et le transformer en balisage Sony et afficher nos pages sur le télévisieur.
Comme xhtml est (ou devrait être du XML), cette transformation est possible.

Concernant le point d'une transformation (pas traduction) XML->HTML, le respect de la sémantique HTML
est de la responsabilité de la personne rédigeant le XSL.
Selon sa culture, ses vues, ses convictions, il respecterait ou pas.

Maintenant, ce code HTML n'a d'existence qu'entre le moment où le transformateur l'a généré, et le moment où l'agent va l'interpréter.
Et normalement, on n'y a jamais accès. On ne le lit pas.
On demande à ce code d'être irréprochable, mais la sémantique n'a plus de sens...
L'avantage, c'est d'imaginer de pouvoir envoyer du code pour IE, du code pour FF, et même pour Netscape 4 ou Mosaic.
C'est possible.

Enfin, Les prérequis:
PHP pour manipuler le transformateur, objet XsltProcessor
XSL pour être en mesure d'appliquer les "templates" si particuliers de ce langage hors norme
XPATH qui est le langage d'adressage propre à XML
DOM parce que html est transformé en DOM à l'intérieur des navigateurs, et que ce modèle colle bien à XML aussi.
Modifié par GeorgesM (13 Sep 2005 - 21:44)
Administrateur
mathmax a écrit :

Si le XML est de toute façon transformé en HTML par XSLT pour les navigateurs. Pourquoi ne pas écrire directement du HTML.

C'est un peu le même problème que HTML avec des tables et XHTML/CSS séparant le contenu de la présentation: XML permet de stocker avec beaucoup de richesse sémantique les contenus et XSLT de les transformer en quelque chose d'utilisable par un humain ou un navigateur.
Le but est de pouvoir réutiliser le contenu XML dans d'autres applications:
- un autre type de navigateur
- un moteur de recherche de haut niveau qui sait faire la distinction en fonction des balises contenant le texte genre chercher un nom dans les auteurs mais pas dans les gens cités
- un livre-papier avec XSL-FO
- un blog avec RSS ou ATOM qui sont au format XML mais avec des particularités
- des index ou sommaires automatiques par date, par titre, par auteur en moins de 15 lignes

Si c'est pour un site vitrine, l'effort demandé n'en vaut probablement pas la chandelle mais pour un journal comme Le Monde ou une agence de presse comme l'AFP, c'est super intéressant. Entre les deux, tout dépend du contenu, des formes voulues et de leur pérennité.

Plus le document est richement balisé au départ, plus il est versatile et exploitable simplement (on n'en garde que la partie qui nous intéresse dans telle application). L'inverse est difficilement réalisable et encore avec beaucoup d'efforts (transformer un site en tableaux de présentation, balises font vers du HTML propre, valide et accessible, c'est théoriquement possible puisqu'il y a un minimum de structure et de balises mais alors le boulot! L'inverse, même non souhaitable, est très simple)

mathmax a écrit :

Par contre toujours rien à propos de Indesign et de l'exportation en XML?

Une rapide recherche dans Google ne me renvoie rien de concret, juste quelques retours d'expériences comme celui-ci
Mais il faudrait chercher des mots-clefs de XSLT en plus des mots "indesign xml", j'essaierai ça.


GeorgesM a écrit :
(...)
Enfin, Les prérequis:
PHP pour manipuler le transformateur, objet XsltProcessor
XSL pour être en mesure d'appliquer les "templates" si particuliers de ce langage hors norme
XPATH qui est le langage d'adressage propre à XML
DOM parce que html est transformé en DOM à l'intérieur des navigateurs, et que ce modèle colle bien à XML aussi.

Avec un site statique (c'est un cas très particulier, je le concède), XSLT (et XPath bien entendu) suffit, comme par exemple Saxon.
Mais s'il faut un langage serveur, PHP (ou Java ou Python ou ...) et DOM se révèlent indispensable à leur tour bien entendu Smiley smile