Вы находитесь на странице: 1из 5

http://books.google.fr/books?

id=eCuj_MwwNRQC&pg=PT46&lpg=PT46&dq=les+attributs+Implied+e t+required&source=bl&ots=ZZlnLF5RL_&sig=giHBjE2586_VcKq7H16GiYryGcI&hl=fr&ei=QejjTd2 TAtHB tAaziKX1BQ&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDcQ6AEwAg#v=onepage&q=les%2 0attributs%20Implied%20et%20required&f=false

2.DTD 2.1.Document valide


Un document XML a besoin d'une DTD pour savoir ce qu'il est possible de faire ou pas. Si l'on fait la comparaison avec l'HTML, on sait que thoriquement on doit crire: <html> <head> </head> <body> <table> <tr> <td> </td> </tr> </table> </body> </html> et non pas <html> <head> </head> <table> <td> </td> </table> </html> il y a certaines rgles respecter mme si les navigateurs ont t programms pour comprendre peu prs n'importe quoi. Avec la DTD, on va pouvoir dcrire de manire stricte la structure du fichier XML. Avec des outils on pourra alors vrifier qu'un fichier XML est "valide" pour une DTD donne.

2.2.Un exemple de DTD


Une DTD peut tre dfinie soit l'intrieur d'un document XML soit dans un fichier part. Cette dernire solution est la plus frquente car la plus pratique. Pour dfinir une DTD externe, il suffit d'crire <!DOCTYPE racine SYSTEM "nomdufichier.dtd"> juste aprs <?xml version="1.0" ?> o racine est le nomde la balise racine de l'arbre XML. Reprenons notre fichier XML d'exemple et ajoutons-y cette ligne: <?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE annuaire SYSTEM "annuaire.dtd"> <annuaire> <personne type="tudiant"> <nom>HEUTE</nom> <prenom>Thomas</prenom> <email>webmaster@xmlfacile.com</email> </personne> <personne type="chanteur"> <nom>SOUCHON</nom> <prenom>Alain</prenom> <email>alain@souchon.name</email> </personne> </annuaire> Voici ce que pourrait-tre sa DTD: <?xml version="1.0" encoding="ISO-8859-1"?> <!ELEMENT annnuaire (personne*)> <!ELEMENT personne (nom,prenom,email+)> <!ATTLIST personne type (tudiant | professeur | chanteur | musicien) "tudiant"> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT email (#PCDATA)>
y y y y y y y

Pour chacun des lments, on dfini sa composition par <!ELEMENT nom_element (structure)> Pour chacun des attributs, on dfini sa composition par <!ELEMENT nom_element nom_attribut (structure)> L'attribut type est, ici, dfini comme tant un choix impos entre "tudiant", "professeur", "chanteur" et "musicien", par dfaut on met tudiant (facultatif). personne* signifie que dans un lment annuaire on peut trouver de 0 ou plusieurs lments de type personne. nom,prenom,email+ signifie que dans un lment personne on doit trouver une lment nom, un lment prenom et un ou plusieurs lment(s) email dans cet ordre. nom, prenom et email sont des lments qui peuvent contenir du texte, les contenus #PCDATA sont dits contenus mixtes Deux autres types pour les lments existent, EMPTY et ANY, empty signifie que l'lment est vide (comme <br> en HTML), ANY indique que l'lment peut comporter tout autre lment dclar dans la DTD.

1.XML 1.1.A quoi sert XML ?


La norme XML (eXtensible Markup Language) permet avant tout de stocker dans un fichier des informations structures. On parle alors de document XML.

Ce dernier est alors compos de texte libre et de balises ( la manire de ce que vous pouvez connatre avec l'HTML) possdant ventuellement des attributs. L'utilisation du XML permet entre autre: D'changer des informations entre diverses applications. De gnrer des documents (HTML par exemple) ayant diffrents aspect selon l'utilisateur final. D'exporter et importer vers/de bases de donnes. etc. Les donnes sont indpendantes de l'affichage ainsi partir d'un seul fichier XML, on pourra crer des documents sonores, pour tlphones portables, pour des appareils brailles, et bien sr des pages HTML.

1.2.Quel est le principe d'XML ?


En HTML, toutes les balises sont dfinies, elles sont recenses et on s'en sert comme bon nous semble (ex: <b>,<i>...). En XML il n'existe aucune balise prdf inie, c'est nous de les dfinir en mettant l'accent sur la signification de la donnes, ce n'est qu'ensuite que cela pourra tre traduit par un affichage en gras, en bleu, en italique et en Arial la fois. En XML, les donnes sont spares de l'affichage. Les fichiers XML sont souvent trs simples, voici un exemple de fichier XML: <?xml version="1.0" encoding="ISO-8859-1"?> <annuaire> <personne> <nom>HEUTE</nom> <prenom>Thomas</prenom> <email>webmaster@xmlfacile.com</email> </personne> <personne> <nom>CANTAT</nom> <prenom>Bertrand</prenom> <email>noir@desir.fr</email> </personne> </annuaire> Avec ce fichier, on n'a pas dfini comment sera crit cet annuaire mais on y a dj mis des informations. Pour l'affichage, on utilisera des fichiers CSS et XSL.

1.3.Ecrire un fichier XML bien-form


Un document XML bien-form est un document XML qui respecte certaines rgles simples. Il ne doit exister qu'une seule balise racine (le bloc de l'ensemble des balises du document doit tre compris entre et ) Toute balise ouverte doit tre referme (a <balise> doit tre associ </balise>) Les noms des balises doivent commencer par une lettre ou "_", les autres caractres peuvent tre des chiffres, des lettres, "_", "." ou "-". Les noms des balises ne doivent pas commencer par xml Par convention, les balises sont en minuscules. Quand un lment est vide, les balises peuvent tre simplifies <balise></balise> est identique <balise/>

3.XSLT 3.1.Introduction XSLT


Maintenant que l'on a un fichier XML et qu'il est valide, on va en faire quelque chose. Dans les pages qui vont suivre, nous allons tenter de voir ce que l'on peut faire simplement avec XSLT. XSLT est relativement complexe mais il est aussi trs puissant. Avec XSLT on peut faire beaucoup de choses a condition de savoir l'utiliser. Dans ces pages nous n'allons pas entrer dans les dtails simplement parce que nous ne parlerons que de ce que nous connaissons et avons test. Ceci dit il est trs simple d'assimiler les bases qui permettent dj de faire des choses intressantes. Par exemple, sur ce site, les cours sont crit une seule fois en XML. Deux feuilles de styles diffrentes permettent de formater les cours page par page ou bien en version imprimable sur une seule page HTML. Dans les pages suivantes nous allons formater l'annuaire en XML que nous avions dans les chapitres prcdents.

3.2.Objectif
Reprenons le fichier XML sur lequel nous avons travaill. <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE annuaire SYSTEM "annuaire.dtd"> <annuaire> <personne type="tudiant"> <nom>HEUTE</nom> <prenom>Thomas</prenom> <email>webmaster@xmlfacile.com</email> </personne> <personne type="chanteur"> <nom>SOUCHON</nom> <prenom>Alain</prenom> <email>alain@souchon.name</email> </personne> </annuaire> Nous aimerions transformer ce fichier XML en fichier HTML suivant: Qui a le code source suivant:

<html> <head> <title>Annuaire</title> </head> <body> <table border="1"> <tr><th>Nom</th><th>Prenom</th><th>email</th></tr> <tr><td>HEUTE</td><td>Thomas</td><td>webmaster@xmlfacile.com</td></tr> <tr><td>SOUCHON</td><td>Alain</td><td>alain@souchon.name</td></tr> </table> </body> </html>

Вам также может понравиться