CSI 3525, XML, page 1 XML sources dinspiration: Erik T. Ray, "Learning XML", 1 st ed., OReilly Robert Eckstein with Michel Casabianca, "XML Pocket Reference", 2 nd ed., OReilly Le Web des milliers de sources
CSI 3525, XML, page 2 GML et SGML Lhistoire commence avec GML « Generalized Markup Language », développé en 1969 par Goldfarb, Mosher et Lorie dIBM comme une façon de permettre aux sous- systèmes dédition de texte, de formatage (formating), et de recherche de linformation (information retrieval) de partager des documents. En GML est substantiellement élargie et standardisé par ANSI et ISO pour devenir SGML « Standard Generalized Markup Language ».
CSI 3525, XML, page 3 Marquage en SGML Procedural markup Section One aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa 1 16 pt. Helvetica Bold 12 pt. Helvetica 12 pt. Times Italic 10 pt. Palatino 12 pt. Courier Descriptive markup Section One aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa 1 chapter head section head lead paragraph paragraph page number
CSI 3525, XML, page 4 HTML SGML nest pas un seul langage de marquage. Cest un standard pour créer des langages de marquage. HTML « HyperText Markup Language » est un tel langage qui a eu des débuts modestes. En 1993, Tim Berners-Lee a basé son premier système de furetage et de composition pour le Web sur quelque balises de marquage « markup tags ». Cette première version a été augmenté pour devenir HTML, dont la version courante est HTML Les standards HTML sont tenus à jour par le W3C (the World- Wide Web Consortium): – –
CSI 3525, XML, page 5 XML XML « eXtensible Markup Language » fut développé en 1996, et standardisé par le W3C en Cest un sous-ensemble de SGML. XML est lun des membres dune grande et grandissante famille de langages connexes et coopérant qui inclue: DTD, XSL, XSTL, CSS, XPath, XPointers, XLinks, XML Schema...
CSI 3525, XML, page 6 XML 1.XML permet de structurer des données 2.XML ressemble un peu à HTML 3.XML est du texte, mais sont but nest pas dêtre lu 4.XML est clair (en langage naturel) 5.XML est une famille de technologies 6.XML est nouveau, mais pas vraiment 7.XML emmène HTML au XHTML 8.XML est modulaire 9.XML sert de base au RDF et au Web Sémantique 10.XML est indépendant de la plateforme, compatible avec plusieurs applications, et ouvertement disponible.
CSI 3525, XML, page 7 XHTML Lémergence dXML a induit une reformulation dHTML. XHTML 1.0 « eXtensible HyperText Markup Language » est maintenant en vogue: La reformulation dHTML 4 en XML 1.0. La plus récente recommandation: 1er août, 2002 : XHTML 1.0, « Extensible HyperText Markup Language » (Deuxième édition). –
CSI 3525, XML, page 8 Quest-ce que HTML?
CSI 3525, XML, page 9 Les structures dun document HTML head elements body elements Identificateurs de ressources URLs texte, images, multimédia Placement déléments fonts, couleurs paragraphes, diviseurs tableaux forms scripts, applets frames Type de document, titre, descripteurs,... OPTIONELOPTIONEL
CSI 3525, XML, page 10 Liens en HTML La puissance dHTML, se trouve dans les liens hypertextes. Un click sur un lien est une requête pour du contenu: une chaîne de caractères, une image, un document complet, ou un endroit particulier dans un document. Cet exemple contient deux liens: une ancre (qui pointe sur un endroit sur le Web) et une image (pointant sur un fichier dimage). XML généralise les liensvoir plus loin dans les notes.
CSI 3525, XML, page 11 HTML de près (1) CSI 3125, Fall 2002: Concepts of Programming Languages <body background= "gifs/3125.gif" bgcolor= #eeeeee text= # link= #0066ff vlink= #9900cc alink= #ff0000 > Javascript
CSI 3525, XML, page 12 HTML de près (2) Welcome to the CSI 3125 Web site! <TABLE BORDER= 0 CELLSPACING= 10 CELLPADDING= 0 WIDTH= 352 > <img src= "gifs/news.gif" width= 136 height= 34 border= 0 alt= "[What's new?]" > 7 boutons commencent ici
CSI 3525, XML, page 13 HTML de près (3) <img src= "gifs/syllabus.gif" width= 136 height= 34 border= 0 alt= "[The syllabus]" > <img src= "gifs/handouts.gif" width= 136 height= 34 border= 0 alt= "[The handouts]" > 2 autres ranges de boutons
CSI 3525, XML, page 14 HTML de près (4) The instructor's address: <a <img src= "gifs/rtarrow.gif" align= bottom border= 0 alt= "To " > <img src= "gifs/home.gif" border= 0 align= bottom alt= "my home page" > Updated on August 6, 2002
CSI 3525, XML, page 15 HTML de près (5) <form method= get action= " > <img src= "gifs/Logo_25.gif" border= "0" alt= "google" > <input type= text name= q size= 25 maxlength= 256 value= "" > Google
CSI 3525, XML, page 16 HTML de près (6) <img src="gifs/macspin.gif" width=176 height=40 alt="[A Spinning Apple]"> Pas sur le dessin
CSI 3525, XML, page 17 De retours à XML... HTML englobe, en un seul langage, deux aspects de SGML: le marquage procédurale dun document (sa structure) et son marquage descriptif (sa présentation). Par exemple, et sont des éléments de structure, mais et décrivent son format. En XML, les deux aspects sont séparés à nouveau. Un DTD (Document Type Définition) défini le langage de marquage, et un document valide XML doit être de ce type. Les DTD existent depuis les débuts de SGML. Les XML Schema sont une autre alternative, standardisé en mai 2001 (version 1.0).
CSI 3525, XML, page 18 Un document XML <?xml-stylesheet type="text/xsl" href="cd.xsl"?> Revolver, top two The Beatles Eleanor Rigby 2:45 For No One formatage (voir plus loin dans les notes) structure cd.xml
CSI 3525, XML, page le DTD... <!ATTLIST cd type (single | regular) #REQUIRED> cd.dtd
CSI 3525, XML, page la validation La validation dun document XML peut se faire ainsi: –Sur une machine Linux –Placez le document et son DTD dans le même répertoire –Invoquez le valideur XML xmllint. szpak|site2-1: ls cd.* cd.dtd cd.xml szpak|site2-2: xmllint --valid --noout cd.xml szpak|site2-3: (vous allez devoir valider pas mal de documents XML dans ce cours )
CSI 3525, XML, page 21 Éléments et attributs Éléments vide Contenant déléments content For No One
CSI 3525, XML, page 22 Explication du DTD UN cd icontient ces elements, dans cet ordre, et il peut y avoir plus dun track. « Parsed-character data »: item ou les références sont résolue. time est optionnel. L[une des deux valeurs doit être présente. « Character data » - avec comme valeur par défaut: Paul. Un identificateur (plus ou moin), optionnel, pas de valeur par défaut.
CSI 3525, XML, page 23 XML est plus stricte quHTML XML est sensible à la casse (case sensitive). Les valeurs des attributs doivent être entre guillemets. Un contenant (non-vide) doit avoir une balise de début et de fin. Un élément vide doit avoir un « slash » de terminaison. Les balises doivent être imbriquées correctement. Les espaces blancs contenu dans les éléments sont préservés On peut voir un document XML comme un document HTML ou les balises sont défini par lauteur (et plus comme nous allons voir). Cependant XML est beaucoup plus stricte quHTML.
CSI 3525, XML, page 24 Un document est un arbre Revolver, top two The Beatles Eleanor Rigby 2:45 For No One
CSI 3525, XML, page 25 Entités en HTML HTML permet de référer aux caractères spéciaux avec le & : espace ëë aa àà éé Ceci est étendu par XML. Une entité est un « paramètre substituable par du contenu"; elle peut dénoter nimporte quoi, même un fragment de marquage. Les Entités sont résolues, ou remplacées, comme des macros.
CSI 3525, XML, page 26 Entités en XML (1) Il y a des entités générales (définie localement, ou de façon externe et disponible publiquement) et des entités paramètres utilisées dans les DTDs. Il y a aussi des entités prédéfinies pour des caractères, comme celles pour les caractères réservés de XML: && '' >> << ""
CSI 3525, XML, page 27 Entités in XML (2) <!ATTLIST cd type (single | regular) #REQUIRED> cd3.dtd Entité générale références Entité paramètre
CSI 3525, XML, page 28 Entités in XML (3) <!DOCTYPE cd SYSTEM "cd3.dtd" [ ] > Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entité locale référence
CSI 3525, XML, page 29 La philosophie des stylesheet Laspect de la présentation, en XML, est implémenté de façon élégante et générale par la transformation des structures. Une stylesheet définie un modèle qui permet de transformer les éléments dun document XML valide en dautre structures, par exemple, en HTML. Laccès aux éléments est facilité par XPath, un langage qui permet de se déplacer dans un document en appliquant diverse conditions. (Nous ne pourrons en parler plus dans ce cours)
CSI 3525, XML, page 30 Une stylesheet (1) <xsl:stylesheet id="cds" version="1.0" xmlns:xsl= " > cd.xls Ceci est un document XML!
CSI 3525, XML, page 31 Une stylesheet (2) cd.xls
CSI 3525, XML, page 32 Une stylesheet (3) cd.xls
CSI 3525, XML, page 33 Liens en XML, un exemple target est une ressource privée ou publique. showhow est new, embed ou replace. (En HTML: ouvrir un nouvelle fenêtre, englobe une image,suit un lien dans la même fenêtre.) showwhen est onLoad ou onRequest. /> si lélément est vide <elementname xlink:type = "simple" xlink:href = "target" xlink:show = "showhow" xlink:actuate = "showwhen" >some content
CSI 3525, XML, page 34 exemple: checkbook Un exemple, venant dErik T. Ray ("Learning XML"), trouvé sur le site web du cours: checkbook.dtd checkbook.xml checkbook.xsl Visitez her/perl_xml.html
CSI 3525, XML, page 35 Ce quil reste à apprendre… XML Schema (permet plus de contrôle sur le format que les DTDs) CSS « Cascading Style Sheets » XSL Les « Namespaces » XSLT « Extensible Style Language for Transformations » XPath (situer des objets dans un document) XLink, XPointer (liens entre documents) Outils XML(analyseur syntaxiques, validateurs, Standards, documents publiques sur XML,ressources Web
CSI 3525, XML, page 36 Validation XML Trois étapes simples pour valider un document XML: ssh dans la machine Linux site2. Mettez le document et son DTD dans le même dossier. Invoquer le validateur XML xmlvalid. % ls cd.* cd.dtd cd.xml % xmlvalid cd.xml cd.xml is valid (il y aura des messages derreur, sinon ) Outils XML/XSL en Linux
CSI 3525, XML, page 37 XML parsing Un autre outil XML en Linux: ssh dans la machine Linux site2. Mettez le document et son DTD dans le même dossier. Invoquer le processeur XML xmllint. % ls cd.* cd.dtd cd.xml % xmllint cd.xml (il y aura des messages derreur si le document nest pas valide) xmllint a beaucoup doptions. Afin de les decouvrir, taper: % xmllint Pour encore plus doptions, taper % man xmllint Outils XML/XSL en Linux
CSI 3525, XML, page 38 Vous pouvez aussi avoir des informations sur les documents XML valides. Le programme Perl dbstat, poste sur le site web du cours le fait pour nous. Souvenez- vous quil faut rendre le programme exécutable. % dbstat cd.xml Node frequency: 2 PI nodes 8 element nodes 0 comment nodes 2 attribute nodes 19 text nodes 0 CDMS nodes 32 total nodes Element frequency: Statistiques XML Outils XML/XSL en Linux
CSI 3525, XML, page 39 Et puis il y a le processeur XSL xsltproc, qui a aussi beaucoup doptions. Pour les voirs, taper: % xsltproc Et pour encore plus doptions, taper: % man xsltproc Vous pouvez parser (et valider) un fichier XSL: % xsltproc cd.xsl (il y aura des messages derreur si le fichier nest pas valide) Traitement XSL Outils XML/XSL en Linux
CSI 3525, XML, page 40 Vous pouvez aussi exécuter le processeur XSL sur un fichier XML, selon un stylesheet, et obtenir le résultat par exemple, un fichier HTML. % xsltproc cd.xml Revolver, top two The Beatles Eleanor Rigby 2:45 For No One Traitement XSL