Rappel (très) succint d’éléments techniques (XML, DTD, XSL, PHP) Cyril Rebetez Staf2x Mai 04
XML Pour définir des « markup language » et donc structurer du contenu « well formed » Déclarations au début du document Hiérarchie (début/fin, imbrication, élément racine unique) Syntaxe (attributs vides, casse, guillemets) « Valid » Respecte une grammaire prédéfinie DTD
XML (exemple) <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="simple.xsl"?> <!DOCTYPE breakfast_menu SYSTEM "breakfast.dtd" > <breakfast_menu> <food> <name>Belgian Waffles</name> <price currency=" USD" >$5.95</price> <description> two of our famous Belgian Waffles</description> <calories>650</calories> </food> </breakfast_menu> http://www.w3schools.com/xml/default.asp http://tecfa.unige.ch/guides/tie/tie.html#subtitle2.10
DTD Grammaire du xml, c’est la structure de notre contenu On définit les différents « tags », leur ordre, leur hiérarchie, et leur type de contenu On définit les attributs des « tags » et ce qu’ils peuvent contenir
DTD (exemple) <?xml version="1.0" encoding="ISO-8859-1"?> <!ELEMENT dvdtheque (dvd)+> <!ELEMENT dvd (titre,duree?, acteur*, categorie?)> <!ELEMENT titre (#PCDATA)> <!ELEMENT duree (#PCDATA)> <!ELEMENT acteur (#PCDATA)> <!ELEMENT categorie EMPTY> <!ATTLIST categorie type (science-fiction|suspens|comedie|documentaire|guerre|autre) #IMPLIED>
XSL Règles de transformation de xml en autre chose, par exemple en xhtml On peut lier un fichier xml à du xsl dans le fichier xml : <?xml-stylesheet type="text/xsl" href=« nomdufichier.xsl"?> On peut aussi associer avec php (par exemple): $xslt = xslt_create(); $resultat = xslt_process($xslt, ‘fichier.xml’, ‘stye.xsl’);
XSL(t) <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="dvdtheque"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title><xsl:value-of select="titre" /></title></head> <body> <h1>Voici la liste des dvds :</h1> <xsl:apply-templates/> </body> </html> </xsl:template>
PHP Peut nous servir à associer xml et xsl (on l’a vu) Peut surtout nous aider à écrire le xml grâce aux sympathiques fonctions fopen et fwrite… Peut nous servir de liaison et de ciment entre ces différents langages.
Quelques exemples PHP fopen($filename, ‘w‘) fwrite($filename, '<?xml version="1.0" encoding="ISO-8859-1" ?>'."\n"); … fwrite ($filename, '<'.$champ.'>'.$_POST[$champ].'</'.$champ.'>'."\n");