Mais à quoi peut servir XML ? Débat !

Eléphant du PHP | 199 Messages

11 juin 2005, 20:24

Ca me sert à structurer des données grace aux dtd et puis c'est rapide à analyser d'abord :D , enregistres peu de données (<20 Mo).

Eléphant du PHP | 70 Messages

11 juin 2005, 22:35

Merci à tous de vos avis très éclairés sur le sujet.
Mon propos n'était évidemment pas de comprendre l'intérêt de XML en tant que format d'échange, là, c'est évident bien que fondamentalement pas obligatoire.
Non il s'agit plutôt de comprendre l'intérêt de XML avec ses outils associés comme XPath utilisé à fond dans XMLRAD par exemple ...
Car si les fonctions d'analyse de XPath apparaissent (de loin pour moi) comme pertinentes, elles n'en restent pas moins lourdes à mettre en oeuvre ...
Et je suis un ardent défenseur de HTML/CSS qui permet une relative séparation entre la donnée et l'apparence ... tout échanger via XML me parait une contrainte inutile ...
Mais j'ai sûrement besoin de murir sur le sujet :- :lol:

ViPHP
fab
ViPHP | 2657 Messages

12 juin 2005, 13:39

et si tu dois exporter des données d'un programme a un autre tu le fais en HTML aussi ?

Mammouth du PHP | 19672 Messages

12 juin 2005, 13:53

Ta question est bizarre fab : suppose un instant que tu veuilles utiliser une application sous Linux qui produise des données que tu dois exporter pour une utilisation par quelqu'un d'autre sur une application windows donc incompatible avec la tienne. Si ton application peut générer ces données en XML et que l'autre peut lire du XML, alors ton problème est réglé. C'est ça l'intéret du XML.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 70 Messages

12 juin 2005, 15:13

Ne le prends pas mal , fab
je n'ai pas évoqué les échanges de données entre programmes, car
pour moi les données sont stockées en général en base de .. données :-)
Par contre, des programmes qui se causent (socket et autres prog réseau), XML ne peut pas être pire que CSV ....

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

12 juin 2005, 15:16

Par contre, des programmes qui se causent (socket et autres prog réseau), XML ne peut pas être pire que CSV ....
Pas pire je ne sais pas, mais pas mieux en tous cas c'est certain (pas forcément plus lisible, et beaucoup plus lourd par contre)

ViPHP
ViPHP | 2144 Messages

12 juin 2005, 16:08

J'ai pas l'impression qu'on puisse comparer le XML et le CSV.
Le CSV ne possède aucun moyen de définir une structure précise et fixe, et se limite à l'usage de simples délimiteurs.
XML est quant à lui un langage contenant des méta-données, qui servent à décrire les données que contient le fichier.
On peut donc avoir des données consistantes, avec une validation par DTD ou schéma, directement sans que le programmeur ne doivent se préoccuper de vérifier la cohérence de la structure du fichier.
Bien sûr, comme trop souvent en informatique, l'XML est devenu un argument commerciale, et est utilisé parfois à tord et à travers (cfr : pour certains composants de jeu de Microsoft, où on écrit du code de programmation avec du xml :P :P :P :P )
Je pense qu'il faut voir ce langage dans des concepts d'échange de donnée plus complexes que l'exportation de base de donnée de site web.
XML n'est pas le seul langage "méta-donnée" mais qu'il y ai une volonté de normalisation est tout à fait positif.
J'ai terminer récemment un stage où l'ensemble de la structure de donnée utilisée dans l'application pour mémoriser les informations était du XML, et je ne vois vraiment pas comment un modèle de donnée aussi complexe aurait pu être fait avec un simple CSV.
Sans compter la facilité de manipulation/modification de donnée, sans commune mesure avec les moyens d'accès à un csv
Je pense qu'en bref, il n'y a pas de mauvaise technique, seulement les mauvais usages qu'on en fait parfois :D :D :D

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

12 juin 2005, 16:22

L'usage qui me choque le plus pour le xml, c'est dans les web-services, où on aurait du partir d'un principe simple : compression des données.
Sans aller jusqu'à gzipper, l'utilisation d'un format ouvert mais propre à ce protocole aurait été la bienvenue, plutot que d'utiliser le lourd XML. On se retrouve avec des flux de plusieurs kilo-octets où la masse utile de données est d'une poignées d'octets.

Et dans tous les échanges réseau on met trop au second plan la réduction des flux de données, et on présente XML comme une super solution, alors que n'importe quel format ouvert mais plus léger ferait mieux l'affaire.

Je trouve dommage qu'on veuille absolument d'un langage universel, car on se retrouve à tout vouloir faire avec ce dernier, et au final c'est un mal plutot qu'un bien.

naholyr, qui trouve que <result type="int" value="123"> est un peu plus lourd que result=int:123

Invité
Invité n'ayant pas de compte PHPfrance

12 juin 2005, 21:04

Aussi une autre utilité que j'ai trouvé et qui me parait avoir un bon avenir, c'est la séparation des couches d'un site web. On peut grace à XML, en développant beaucoup, permettre au designer d'intégrer le PHP de manière très simple. Par exemple une balise du genre <pseudo> qui affiche le pseudo de la personne. Vous me direz qu'il y a les moteurs de templates pour faire ca, mais là je parle d'un truc totalement extensible puisqu'on le code nous même.
Voilà y a pas d'exemple utile pour l'instant, mais on peut chercher plus. En tout cas c'est ce que XML recherche et que l'HTML n'aura pas. On peut facilement séparer prog serveur/design/prog client ...

Mammouth du PHP | 19672 Messages

12 juin 2005, 21:09

...Vous me direz qu'il y a les moteurs de templates pour faire ca...
Précisément, c'est même leur intérêt majeur, or dans un template, on utilise aussi ses propre balises du genre {PSEUDO}
...c'est ce que XML recherche et que l'HTML n'aura pas. On peut facilement séparer prog serveur/design/prog client ...
Et qu'est-ce que le XHTML sinon la version XML du HTML :?: Le XHTML est un langage XML, il ne faudrait pas l'oublier. En outre, le XML, c'est surtout une structure: on écrit pas en XML, on écrit dans un langage XML.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 28 Messages

12 juin 2005, 21:18

J'ai pas trop testé l'XHTML pour moi c'est de l'alourdissement inutile. C'est vrai que ca vaut mieux d'utiliser un moteur de template pour faire {pseudo} plutot que <pseudo>.
Mais par exemple, on peut faire <module name="ident"> qui ajoute un truc pour s'authentifier. C'est plus pratique que de faire un plugin avec Smarty (par exemple) etc.
Et aussi l'XML c'est sur le client contrairement aux templates qui s'execute sur le serveur. On peut donc s'appuyer sur javascript ou autre étant donné qu'on est au niveau client. J'ai pas d'idée tout de suite, mais c'est clair que ca peut être pratique.

Mammouth du PHP | 19672 Messages

12 juin 2005, 21:25

.... l'XHTML pour moi c'est de l'alourdissement inutile....
Ça n'alourdit rien du tout: en tous cas certainement pas au niveau du code: ça alourdit peut-être la charge de travail d'un développeur habitué à bacler son code html qu'il faut reprendre pour mettre aux normes. Comme le XHTML doit respecter la syntaxe XML, il faut bien entendu coder avec rigueur. Mais le but de la manoeuvre est essentiellement d'assainir le web d'une quantité astronomique de sites mal faits et c'est aussi une tentative (louable a mon sens) de standardisation: à terme, on obtiendra peut-être des navigateurs qui comprendront tous le même langage sans que l'un ou l'autre introduise sa propre cuisine comme ce fut la cas à la grande époque des guerres intestines entre Netscape et Microsoft avec le HTML.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 104 Messages

12 juin 2005, 22:59

Salut,

C'est marrant de lire que le XML est une mode, et PHP c'est quoi si c'est pas une mode ?

En même temps ça ne m'étonne pas tant que ça sur un forum de PHP. En ce sens que le XML est proche de l'objet (j'entends dans la manière de penser une structure de données) alors qu'un fichier "plat" (type CSV) est plus proche du procédural.
Le XML donne du sens aux données au même titre que le typage dans un langage objet. Et le typage manque cruellement à PHP qui pourtant est en train de doucement s'orienter vers l'objet. Voilà pour la généralité.

zeus a écrit : "De plus, même si le XML sert à stocker des données, en cas de gros volume de données, les tailles, performances comperées tourneront toujours à l'avantage des SGBD puisque le XML est avant tout un fichier texte !!!"

Pour répondre en partie je cite Bertrand Meyer dans "Conception et programmation orientées objet" :
Pour répondre aux questions comme "Quelle est la date de naissance de l'auteur de l'ouvrage Le Rouge et le Noir ?", l'implémentation relationnelle devra calculer des jointures, des projections, etc.
[...]
Cette technique fonctionne et est largement utilisée, mais elle n'est applicable qu'à des schémas simples. Le nombre d'opérations de jointure deviendrait rapidement prohibitif dans un système devant gérer régulièrement des requêtes contenant de nombreuses indirections, come "Combien y a-t-il de chambres dans l'ancienne maison du chef du service où la femme qui était la première de la classe de maîtrise du plus jeune oncle maternel de mon épouse a été mutée quand la compagnie mère a entamé son deuxième tour de financement par capital risque ?" - qui ne présente pas de problème particulier dans un réseau d'objets d'un système OO.


Suite... il existe des bases de données orientées objet dans un format propriétaire (stockage dans un fichier) qui permettent de gérer des volumes de données importants dans un seul fichier et qui offrent une élégance et une facilité déroutante pour récupérer une liste d'objets, exemple en Java :

Code : Tout sélectionner

// Retourne une collection d'objets du type du prototype : ObjectContainer db = Db4o.openFile("store.dbo"); Employee prototype =new Employee(null, 0); ObjectSet result = db.get(prototype); listResult(result);
Voilà, avec ces 4 lignes on obtient une collection de n employés et ensuite on en fait ce qu'on veut, on les garde ou pas :) ! Pour les "obsédés" de la performance je signale que c'est très rapide !
Pour en revenir à XML, on voit rapidement son intérêt dans une base de données objet pour le stockage et le maintien du sens au travers des applications et sa portabilité.

HS reprenant celui de albat (page 1) :
On rencontre des abus semblables avec Java.
De nombreuses offres d'emploi exigent des compétences Java.
Voulant comprendre les raisons d'un tel engouement, j'ai appelé plusieurs de ces boîtes.
9 fois sur 10, leurs projets étaient réalisables en PHP.
"Oui, mais on préfère le faire en Java parce que... euh... Ben, c'est mieux, non ?"


Bah si on pousse le raisonnement plus loin, tous les sites web de la terre sont réalisables en HTML pur et dur sans même une feuille de styles :P

A vous.

Eléphant du PHP | 287 Messages

13 juin 2005, 13:04

et PHP c'est quoi si c'est pas une mode ?
En même temps ça ne m'étonne pas tant que ça sur un forum de PHP
exemple en Java
Bah si on pousse le raisonnement plus loin, tous les sites web de la terre sont réalisables en HTML pur et dur sans même une feuille de styles
ça sent le vilain troll à poil long et bouclé :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

13 juin 2005, 13:06

ça sent le vilain troll à poil long et bouclé :lol:
D'un autre côté c'est assez habituel avec les javaistes qui passent dans le coin. Je crois qu'ils ne nous aiment pas :)