Aller au contenu

Débuter en XML


20cent

Sujets conseillés

Bonsoir à tous ! smiley%20(15).gif

Je souhaiterais m'initier au XML et ainsi mieux saisir le fonctionnement de ce langage, qui semble en tous cas prometteur.

J'ai cru comprendre certaines notions de bases grâce aux quelques tutoriaux que j'ai pu trouver sur le net mais je suis toujours à la recherche d'un cours complet et concret.

Auriez-vous de bonnes adresses à me conseiller ? Des conseils à me donner ?

Pensez-vous que cet apprentissage puisse se faire dans la continuité / en parallèle de mon apprentissage en XHTML et CSS ?

Cette technologie est-elle difficile à assimiler ?

Quelques autres questions "en vrac" tant que vous êtes là : :D

  • Quel est la différence entre XSL et XSLT ?
  • Puis-je dire que XML+XSL = XHTML ?

D'avance, merci pour vos réponses. :)

Nota : Mes lectures actuelles sont les suivantes :

Edit : fautes d'orthographe ! :blush:

Modifié par 20cent
Lien vers le commentaire
Partager sur d’autres sites

Je souhaiterais avant tout me familiariser avec le langage avant de décider d'aller plus avant et d'investir dans un ouvrage papier.

Mais je note la référence pour plus tard au cas où ! Merci. :)

Lien vers le commentaire
Partager sur d’autres sites

Ok. Cela dit, je pense que, ce méta-langage étant passionant et étant voué à jouer un rôle central sur le web dans les années à venir, un investissement papier ne sera pas une perte :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour 20cent,

Je n'ai pas encore appronfondi le sujet, je ne peux donc que te donner des pistes :whistling:

Il y a le manuel de Competence Micro, sur le principe d'exercices pratiques commentés, code source et corrigés sur le site : XML pour débutants (5.80 euros).

Et ces sites, que tu connais peut être déjà (mais qui peuvent être utiles à d'autres)

- XMLfr

- XML en 10 points

- Mutualiser l'effort de montée en compétences sur XML

- Traduction du standard « Extensible Markup Language (XML) 1.0 » du W3C

- XML - langage et applications (2e édition)

Lien vers le commentaire
Partager sur d’autres sites

Juste des petites indications..

le XML n'est pas un langage mais un métalangage, c'est à dire une grammaire qui sert à définir des langages.

Depuis le XHTML, le HTML est un langage XML, donc en faisant du HTML tu fais du XML. Donc tu l'a déjà appris en apprenant le XHTML (mais oui : respecter la casse, l'encodage, fermer les balises, etc.... c'est ça) !

Quelques langages XML :

- documents : XHTML

- images vectorielles : SVG

- déscription de documents : RDF

- feuilles de style : XSL

Le XML pur ne peut servir que de base de donnée.

Un langage XML se défnit par une DTD qui indfique quelles balises sont utilisables et comment les utiliser et un espace de nom qui sert à définir les fonctions de ces balises.

Les trosi forces du métalangage XML :

1. facile à éditer, facile à consulter, facile à comprendre, ouvert

2. on peut insérer du code en langage XML dans un code en un autre langage XML grace aux préfixes des espaces de nom.

3. on peut tarnsformer un document en langage XML en un document en un autre langage XML grace au XSLT, qui est lui même un langage XML.

Donc tu vois, XSL et XSLT sont deux choses différentes : présenattion et transformation.

Pourquoi l'apprendre ?

Déjà, ne compte pas faire un site en XML pur, je l'ai déjà fait en créant ma propre DTD et en mettant des liens et des images à l'aide de l'espace de nom XHTML. Ca ne sert à rien et tu perd tout le coté sémantique. De plus, certains navigateurs sont complètement perdus.

Par contre, tu peux faire une base de donnée (et la transformer ensuite en page XHTML avec XSLT) pour pouvoir la maintenir plus facilement. Mais cette transformation devra se faire du côté serveur pour être optimum.

En fait, le véritable interêt d'apprendre le XML, c'est de mieux coder en XHTML. Car on comprend le fonctionement et pourquoi c'est important de mettre ce xmlns qui nous embete tant ou de déclarer l'encodage. De plus, on apprend plus facilement les autres langages qui en sont tirés. Mais je le répète, le XML s'apprend en 10 minutes, ce n'est qu'une grammaire. Et tu le connais déjà je suppose.

Lien vers le commentaire
Partager sur d’autres sites

Bien que les explications de pierredureau soient très bonnes, c'est probable que tu en aies trop reçu pour ton argent ! ;)

Question de te familiariser avec XML et XSL(T) pour débuter, outre les références présentés par Monique, je te suggère l'incontournable w3schools.com :

http://www.w3schools.com/xml/default.asp

http://www.w3schools.com/xsl/xsl_languages.asp

http://www.w3schools.com/xsl/default.asp (XSL et XSLT s'entrecoupent)

Tu verras, après avoir lu les tutoriels qui s'y trouvent, en relisant le message de pierre, tout sera plus clair ! Moi-même qui n'y suis qu'un novice, j'ai pu m'y retrouver suite à ces lectures. ;)

Ensuite, si tu souhaites approfondir XSLT (parce que tu verras que XML comme tel, t'auras rapidement fais le tour), je te suggère le bouquin de Michael Kay aux éditions Wrox.

http://www.amazon.com/exec/obidos/tg/detai...0612489-1445744

Lien vers le commentaire
Partager sur d’autres sites

Non je rêve, mon idole, mon maître à penser, Denis, a dit que mes explications sont très bonnes (en plus des explications données à une heure du matin, imbibé d'alcool) !

Si il savait qu'il est résponsable de ma conversion aux normes et donc de mon interêt pour le XML...

:D

Lien vers le commentaire
Partager sur d’autres sites

Non je rêve, mon idole, mon maître à penser, Denis, a dit que mes explications sont très bonnes

ppppfffff... euh, c'est n'importe quoi !!! :P

Sérieusement, si j'ai pu d'une manière ou d'une autre contribué à t'influencer, tu m'en vois honoré !

Lien vers le commentaire
Partager sur d’autres sites

Guest Hellway

D'une manière générale pour XML, les bonnes adresses sont dans l'ODP. Si y'a bien une rubrique dans ce dernier qui est bien gérée, c'est celle-là.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

moi je suis un peu connaisseur de ODP. a vrai dire je suis editeur dessus.

en ce qui concerne XML, il y a plusieurs choses a savoir:

XML est un langage balise de description de donnees.

meme certaines secretaires connaissent ce langage.

en fait il n'y a pas grand chose a savoir sur la langage lui meme, si ce n'est qu'il est simple d'utilisation.

pour ecrire en XML il te faut un editeur qui sache parler en unicode (en particulier UTF-8), mais ce n'est pas interatif.

le veritable interet du XML, c'est qu'il s'agit d'un langage standard, un format d'echange de donnees, utilise a travers les systemes d'exploitation , les sites web, etc...

commence par t'amuser, avec php, en rajoutant les options DOM, et sablot, pour parser entierement un document XML, et le modifier. un document XML doit etre entierement valide, sinon il'est pas lu par le parseur XML, c'est a dire que les caracteres qu'il contient doivent exister, les references (du type &blabla;) doivent etre toutes definies par un dtd, et surtout son arbre de balises (la representation interne d'un document XML) doit etre bien equilibre, cad qu'a chaque balise ouvrante doit correspondre une balise fermante, et les balises doivent se fermer dans le sens contraire de leur ouverture:

ceci n'est pas valide:

<a href=&quot;http://www.toto.com"><b> coucou </a></b>

ceci est valide:

<a href=&quot;http://www.toto.com"><b> coucou </b></a>

valide:

é

pas valide:

&ecute;

comme parseur XML, il y a donc DOM (specifie par le W3C) qui fait une representation memoire du document XML, il y a SAX qui ne fait PAS de representation memoire, mais qui permets de traiter des documents pas bien formes.

DOM est implemente de diverses manieres:

il y a libxml2 de gnome qui le fait tres bien.

dans java aussi il existe des classes DOM.

pareil pour SAX.

etc...

treve de tous ceci.

sur le modele de XML, il existe aussi des specifications:

XHTML qui est defini a partir d'un DTD (une document type definition) qui par exmeple est utilisee quand le validateur du W3C analyse tes pages XHTML.

RSS, qui est aussi un type de documents XML, specialise dans la description de fils de discussion

RDF, qui lui semble etre cantonne a la semantique des documents sur le net.

SOAP, qui specifie un service Internet.

XSL est un format de document XML, specifie aussi par une dtd qui specifie comment un autre document XML doit etre modifie. (autrement dit tu vas modifier un document XML a l'aide d'un autre document XML)

XML peut aussi etre utilise pour definir tes propres documents. pour cela il faut definir une dtd. meme les dtd peuvent etre retranscrites sous forme XML, via une autre norme XML, dont je me souviens plus le nom.

il y a aussi XPath qui est un systeme d'interrogation de documents XML (il faut voir pour cela ton doc XML comme une base de donnees).

les bases de donnees, elles-memes (MySQL, Oracle, etc), peuvent etre transcrites integralement un XML. Java le fait, via son projet hibernate. (tapotes hibernate dans google)

quels sont les meilleurs langages pour traiter l'XML:

PHP, a mon avis n'est pas le meilleur choix si tu veux disposer des meilleures fonctions (meme s'il y a des classes PEAR comme XML Transformer et XML Parse)

dans un premier temps tu vas trouver Java, qui possede l'implemetation XML la plus complete possible ,ce qui vas te permettre de faire des choses remarquables, avec des API comme struts, dom, etc...

tu as le langage C qui permet d'acceder directement aux librairies de traitement XML

tu as C++ qui pemets de le gerer assez facilement (plus facilement que java, mais le nombre d'api disponibles est moindre par rapport a celui-ci)

tu as aussi PERL.

Maintenant voici un exemple de ce que peux faire XML:

je suis journaliste je tapes mes documents dans Star Office, qui comme chacun le sait utilise un format XML pour enregistrer ces donnees. je peux aussi le faire avec Word, avec InDesign ou QuarkXPress qui ont meme le pouvoir d'associer des bouts de documents a des balises XML (c'est tres tres interessant).

j'uploade mon fichier sur mon site web, via un formulaire basique.

mon fichier est foutu dans la base de donnees.

ce fichier va etre nettoye par DOM, analyse par Xpath qui va le categoriser.

lorsque le visiteur va consulter le site, celui-ci va prendre ce document nettoye, va le transformer soit en XHTML, soit en SVG, soit en PDF soit au format texte.

le site va aussi mettre a disposition un fil RSS, qui va faire etat des dernieres informations disponibles sur le site. ce fil RSS peut etre meme consulte par un logicile cote client, qui va se charger de le mettre a jour sans que tu consultes le site.

le site va mettre aussi un systeme de XML-RPC: imagine que tu veuille faire une requete depuis un autre logiciel qui veux savoir des donnees precises sur le fonctionnement de ton site. il va envoyer une requete XML RPC au site qui va lui envoyer les donnees correspondantes que ton logiciel va traiter

sur mac il y a un logiciel qui le fait plus ou moins: je crois que c'est weather pop dont le role est de consulter la meteo.

en bref pour pouvoir faire du XML il ne faut pas avoir peur des boucles de programmation, il faut aimer apprendre, etre curieux, il faut aimer les programmes bien foutus, extensibles, separant representation des donnees des donnees elles-memes.

si tu veux apprendre je te conseille le fameux livre blanc d'xml sur le site http://www.application-servers.com, et bien sur le site du W3. il faut que tu t'accroche aux tutoriaux et a google, et que tu connaisses bien le langage a partir duquel tu vas faire du XML.

Valdo.

Modifié par valdo
Lien vers le commentaire
Partager sur d’autres sites

un document XML doit etre entierement valide, sinon il'est pas lu par le parseur XML, c'est a dire que les caracteres qu'il contient doivent exister, les references (du type &blabla;) doivent etre toutes definies par un dtd, et surtout son arbre de balises (la representation interne d'un document XML) doit etre bien equilibre, cad qu'a chaque balise ouvrante doit correspondre une balise fermante, et les balises doivent se fermer dans le sens contraire de leur ouverture:

Tout cela est vrai, mais il ne faut pas faire la confusion entre document bien formé et document valide.

Le parseur XML ne veut qu'une seule chose : un document bien formé*. La notion de validité n'intervient que lorsqu'une DTD a été spécifiée pour le document XML. A ce moment, le parseur (s'il en est capable, tous ne le font pas) va également vérifier la correspondance entre cette "grammaire" qu'est la DTD et ton "discours" XML. Si tout roule par rapport à cette DTD, alors ton document XML est bien formé et valide.

*les principales règles à respecter pour obtenir un document bien formé :

  • chaque balise de début doit se voir associer une balise de fin
  • les éléments peuvent être imbriqués, mais ne doivent pas se recouvrir
  • il ne peut y avoir qu'un seul élément racine
  • toutes les valeurs d'attributs doivent être entourées de guillemets
  • un élément ne peut pas avoir deux attributs du même nom
  • les commentaires/instructions de traitement ne peuvent pas être placés dans les balises
  • les caractères < et & doivent être échappés s'ils sont des données textuelles ou dans une valeur d'attribut (< et &)
  • ...

Lien vers le commentaire
Partager sur d’autres sites

Tout cela est vrai, mais il ne faut pas faire la confusion entre document bien formé et document valide.

Oui, mais a fortiori si un document n'est pas bien forme, il ne peut pas etre valide.

desole pour avoir fait la confusion

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Guest Hellway

Tiens, désolé de faire remonter un sujet assez ancien, mais existe-t-il un moteur PHP optimisé et compétent de transformation de document XML via XSLT ?

J'ai fait quelques recherches, mais je n'en trouve pas et pour PHP en lui-même, on est obligé d'installer un nouveau module (ce qui est pas possible chez les hébergeurs gratuits...

Lien vers le commentaire
Partager sur d’autres sites

Hellway,

il y a plusieurs solutions.

La première est d'utiliser PEAR (pear.php.net) avec les classes XML Transformer et XML Tree

la seconde est d'oublier XML et de passer par un système de templates de page que tu instancieras avec les données à insérer.

la troisième est d'utiliser lycos, car je crois qu'ils ont les extensions DOM d'installées.

la quatrième est d'utiliser l'hébergement PHP 5 de dotgeek.net, car PHP 5 supporte "nativement" les extensions DOM XSLT et DOM XML.

Laurent.

Modifié par valdo
Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...

Bonjour,

J'ajoute un lien vers une présentatation très claire de XLM et

des nombreux formats spécifiques basés sur lui comme par exemple XHTML (pages Web), XForms (formulaires), SVG (images animées), SSML (voix synthétique), SMIL (multimedia), EAD (archives)
sur Pour les formats ouverts !, le blog incontournable de Thierry Sthr et Sylvain Lhullier.
Lien vers le commentaire
Partager sur d’autres sites

Guest vchahun
Puis-je dire que XML+XSL = XHTML ?

<{POST_SNAPBACK}>

Pas du tout ! Enfin bon, dans un sens, c'est vrai:

-XSL est un langage qui permet de transformer une certaine forme de XML en une autre forme de XML

-XHTML est une reformulation de HTML en XML, donc c'est au final un dialecte XML

Donc l'association de XML avec XSL permet de produire du XHTML

... entre autres ! Car à partir d'un document de base, on peut le traduire dans tous les dialectes XML possibles. Exemple: un document XML contenant:

<page>
 <titre>Ma page web en XML</titre>
 <contenu>Blablabla pouet pouet coin coin <retourligne />Et voila une nouvelle ligne ... etc</contenu>
</page>

Avec un document XSL contenant:

<xsl:template match="page">
<html><title><xsl:value-of select="titre" /></title>
<body><xsl:apply-templates /></body></html>
</xsl:template>
<xsl:template match="retourligne"><br /></xsl:template>

Va produire un document HTML qui est facile à imaginer ...

On peut aussi produire un document RSS:

<xsl:template match="page">
<rss><channel><title>RSS des pages de mon site</title>
<item><title><xsl:value-of select="titre" /></title>
<description><xsl:value-of select="contenu"</description></item>
</channel></rss></xsl:template>

etc ...

PS: les exemples fournis ne contiennent pas la structure de base, par exemple le prologue XML ...

Outre XSL, tu dois déjà connaitre CSS qui est au même titre un langage de feuilles de styles. Il peut être appliqué à XML comme à HTML, et la solution XML+XSL+CSS permet de parvenir à des choses surprenantes ...

Voila, sinon si tu recherches une référence claire pour XSL (et XPath), tu as SelfHTML, qui est aussi en général une bonne ressource de connaissance.

Bien sur, tu peux aussi trouver des informations sur le site du W3C, mais c'est souvent compliqué de bien comprendre les spécifications !

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

Bonjour,

Complet, avec des exercices, le Cours de XML de Gilles Chagnon :

Ce cours a été initialement conçu pour des étudiants en technologies du multimédia de l'Université Pierre et Marie Curie. Il présente les bases de XML (notion de document bien formé/valide, syntaxe), les formats permettant de décrire ces fichiers XML (Document Type Definition, Schémas), ainsi que le langage de transformation XSL(T). Il présente également un aperçu des formats graphiques SVG et multimédia SMIL.
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...