CSI 3525, XML, page 1 - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

CSI 3525, XML, page 1

Description:

Title: PowerPoint Presentation Author: SITE User Last modified by: libre Created Date: 11/1/2001 3:51:24 PM Document presentation format: On-screen Show – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 41
Provided by: SITEU152
Category:
Tags: csi | xml | mosher | page

less

Transcript and Presenter's Notes

Title: CSI 3525, XML, page 1


1
XML sources dinspiration
  • Erik T. Ray, "Learning XML", 1st ed., OReilly
  • Robert Eckstein with Michel Casabianca, "XML
    Pocket Reference", 2nd ed., OReilly
  • Le Web des milliers de sources

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 1978-1986 GML est substantiellement élargie et
    standardisé par ANSI et ISO pour devenir SGML
     Standard Generalized Markup Language .
  • http//www.sgmlsource.com/history/sgmlhist.htm

3
Marquage en SGML
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
    4.01.
  • Les standards HTML sont tenus à jour par le W3C
    (the World-Wide Web Consortium)
  • http//www.w3.org/MarkUp/
  • http//www.w3.org/TR/html401/

5
XML
  • XML  eXtensible Markup Language  fut développé
    en 1996, et standardisé par le W3C en 1998. 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...
  • http//www.w3.org/XML/

6
XML
  • XML permet de structurer des données
  • XML ressemble un peu à HTML
  • XML est du texte, mais sont but nest pas dêtre
    lu
  • XML est clair (en langage naturel)
  • XML est une famille de technologies
  • XML est nouveau, mais pas vraiment
  • XML emmène HTML au XHTML
  • XML est modulaire
  • XML sert de base au RDF et au Web Sémantique
  • XML est indépendant de la plateforme, compatible
    avec plusieurs applications, et ouvertement
    disponible.
  • http//www.w3.org/XML/1999/XML-in-10-points

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).
  • http//www.w3.org/TR/xhtml1

8
Quest-ce que HTML?
9
Les structures dun document HTML
lthtmlgt ltheadgt head elements lt/headgt ltbodygt body
elements lt/bodygt lt/htmlgt
Type de document, titre, descripteurs, ...
  • Identificateurs de ressources
  • URLs
  • texte, images, multimédia
  • Placement déléments
  • fonts, couleurs
  • paragraphes, diviseurs
  • tableaux
  • forms
  • scripts, applets
  • frames

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. lta
href"http//www.google.com/"gt ltimg
src"gifs/Logo_25.gif" border"0"gt lt/agt 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.
11
HTML de près (1)
ltbase href"http//www.site.uottawa.ca/szpak/teac
hing/3125/"gt lthtmlgt ltheadgt lttitlegt CSI 3125, Fall
2002 Concepts of Programming Languages lt/titlegt lt
/headgt ltbody background"gifs/3125.gif"
bgcoloreeeeee text000066 link0066ff
vlink9900cc alinkff0000gt ltTABLE BORDER0
CELLSPACING10 CELLPADDING0 WIDTH384gt ltTRgt ltTD
VALIGNTOP ALIGNLEFT WIDTH"80"gt ltp
alignrightgt ltscript src"Date.js"gtlt/scriptgt nbsp
nbspnbspnbspnbspnbsp ltpgt
Javascript
12
HTML de près (2)
ltcentergt ltfont size2gt Welcome to the ltfont
color"AA3322"gtCSI 3125lt/fontgt Web
site! lt/fontgt ltbrgt lthr width324 size"3"gt ltTABLE
BORDER0 CELLSPACING10 CELLPADDING0
WIDTH352gt ltTRgt lta href"news.html"gt ltimg
src"gifs/news.gif" width136 height34
border0 alt"What's new?"gtlt/agt lt/TRgt
7 boutons commencent ici
13
HTML de près (3)
ltTRgt ltTD VALIGNCENTER ALIGNCENTERgt lta
href"syl3125_ToC.html"gt ltimg src"gifs/syllabus.g
if" width136 height34 border0 alt"The
syllabus"gtlt/agt lt/TDgt ltTD VALIGNCENTER
ALIGNCENTERgt lta href"handouts/"gt ltimg
src"gifs/handouts.gif" width136 height34
border0 alt"The handouts"gtlt/agt lt/TDgt lt/TRgt lt
/TABLEgt
2 autres ranges de boutons
14
HTML de près (4)
lthr width324gt ltpgt The instructor's email
address ltpgt lta href"mailtoszpak_at_site.uottawa.ca
"gtszpak_at_site.uottawa.calt/agt nbspnbsp ltimg
src"gifs/rtarrow.gif" alignbottom border0
alt"To "gt lta href"http//www.site.uottawa.ca/sz
pak/"gt ltimg src"gifs/home.gif" border0
alignbottom alt"my home page"gtlt/agt ltpgt lthr
width324 size"3"gt ltfont size-1gtUpdated on
August 6, 2002lt/fontgt lthr width324gt
15
HTML de près (5)
ltform methodget action"http//www.google.com/se
arch"gt lttable bgcolor"dddddd"gt lttrgt lttdgt lta
href"http//www.google.com/"gt ltimg
src"gifs/Logo_25.gif" border"0"
alt"google"gtlt/agt ltinput typetext nameq
size25 maxlength256 value""gt ltinput
typesubmit namesa value"Go"gt lt/tdgt lt/trgt lt/tabl
egt lt/formgt
Google
16
HTML de près (6)
ltbrgt ltimg src"gifs/macspin.gif" width176
height40 alt"A Spinning Apple"gt lt/centergt lt/
TDgt lt/TRgt lt/TABLEgt lt/bodygt lt/htmlgt
Pas sur le dessin
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, ltheadgt et ltpgt sont
    des éléments de structure, mais ltfontgt et ltigt
    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).

18
Un document XML
  • lt?xml version"1.0"?gt
  • lt?xml-stylesheet type"text/xsl"
  • href"cd.xsl"?gt
  • lt!DOCTYPE cd SYSTEM "cd.dtd"gt
  • ltcd type"single"gt
  • lttitlegtRevolver, top twolt/titlegt
  • ltbandgtThe Beatleslt/bandgt
  • lttrackgt
  • ltsonggtEleanor Rigbylt/songgt
  • lttimegt245lt/timegt
  • lt/trackgt
  • lttrackgt
  • ltsong author"Paul and John"gt
  • For No One
  • lt/songgt

formatage (voir plus loin dans les notes)
structure
cd.xml
19
... le DTD...
  • lt!-- Compact Disk DTD --gt
  • lt!ELEMENT cd (title, band, track)gt
  • lt!ATTLIST cd type (single regular)
  • REQUIREDgt
  • lt!ELEMENT title (PCDATA)gt
  • lt!ELEMENT band (PCDATA)gt
  • lt!ELEMENT track (song, time?)gt
  • lt!ELEMENT song (PCDATA)gt
  • lt!ELEMENT time (PCDATA)gt
  • lt!ATTLIST song author CDATA "Paul"gt

cd.dtd
20
... 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.
  • szpaksite2-1 ls cd.
  • cd.dtd cd.xml
  • szpaksite2-2 xmllint --valid --noout cd.xml
  • szpaksite2-3
  • (vous allez devoir valider pas mal de documents
    XML dans ce cours ?)

21
Éléments et attributs
Contenant déléments ltname attr1 "val1" attr2
"val2" ... gt content lt/namegt ltsong author"Paul
and John"gt For No One lt/songgt
Éléments vide ltname attr1 "val1" attr2 "val2"
... /gt ltprice amount"11.98" /gt
22
Explication du DTD
  • lt!ELEMENT cd (title, band, track)gt
  • UN cd icontient ces elements, dans cet ordre, et
    il peut y avoir plus dun track.
  • lt!ELEMENT title (PCDATA)gt
  •  Parsed-character data  item ou les références
    sont résolue.
  • lt!ELEMENT track (song, time?)gt
  • time est optionnel.
  • lt!ATTLIST cd type (single regular)
    REQUIREDgt
  • Lune des deux valeurs doit être présente.
  • lt!ATTLIST song author CDATA "Paul"gt
  •  Character data  - avec comme valeur par
    défaut Paul.
  • lt!ATTLIST song lyricist NMTOKEN IMPLIEDgt
  • Un identificateur (plus ou moin), optionnel, pas
    de valeur par défaut.

23
XML est plus stricte quHTML
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.
  • 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

24
Un document est un arbre
  • ltcd type"single"gt
  • lttitlegtRevolver, top twolt/titlegt
  • ltbandgtThe Beatleslt/bandgt
  • lttrackgt
  • ltsonggtEleanor Rigbylt/songgt
  • lttimegt245lt/timegt
  • lt/trackgt
  • lttrackgt
  • ltsong author"Paul and John"gt
  • For No One
  • lt/songgt
  • lt/trackgt
  • lt/cdgt

25
Entités en HTML
HTML permet de référer aux caractères spéciaux
avec le nbsp espace euml ë 097 a
agrave à eacute é 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.
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 amp apos ' gt gt lt
lt quot "
27
Entités in XML (2)
Entité paramètre
  • lt!-- Compact Disk DTD --gt
  • lt!ENTITY basiccontent "(PCDATA)"gt
  • lt!ENTITY bestever "The Beatles"gt
  • lt!ELEMENT cd (title, band, track)gt
  • lt!ATTLIST cd type (single regular)
  • REQUIREDgt
  • lt!ELEMENT title basiccontentgt
  • lt!ELEMENT band basiccontentgt
  • lt!ELEMENT track (song, time?)gt
  • lt!ELEMENT song basiccontentgt
  • lt!ELEMENT time basiccontentgt
  • lt!ATTLIST song author CDATA "Paul"gt

Entité générale
références
cd3.dtd
28
Entités in XML (3)
  • lt?xml version"1.0"?gt
  • lt!DOCTYPE cd SYSTEM "cd3.dtd"
  • lt!ENTITY favourite "For No One"gt
  • gt
  • ltcd type"single"gt
  • lttitlegtRevolver, top twolt/titlegt
  • ltbandgtbesteverlt/bandgt
  • lttrackgt
  • ltsonggtEleanor Rigbylt/songgt
  • lttimegt245lt/timegt
  • lt/trackgt
  • lttrackgt
  • ltsong author"Paul and John"gt
  • favourite
  • lt/songgt
  • lt/trackgt
  • lt/cdgt

Entité locale
référence
référence
cd3.xml
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)

30
Une stylesheet (1)
lt?xml version"1.0"?gt ltxslstylesheet id"cds"
version"1.0" xmlnsxsl"http//www.w3.org/1999/X
SL/Transform"gt ltxsloutput method"html"/gt ltxslt
emplate match"cd"gt lthtmlgt ltbodygt
ltxslapply-templates/gt lt/bodygt
lt/htmlgt lt/xsltemplategt
ltcd type"single"gt ...... lt/cdgt
lthtmlgt ltbodygt ------ lt/bodygt lt/htmlgt
cd.xls
Ceci est un document XML!
31
Une stylesheet (2)
ltxsltemplate match"title"gt lth3gtltxslapply-temp
lates/gtlt/h3gt ltbr /gtltbr /gt lt/xsltemplategt ltxsl
template match"band"gt lth4gtltxslapply-templates/
gtlt/h4gt lthr /gt lt/xsltemplategt ltxsltemplate
match"track"gt ltpgtltxslapply-templates/gtlt/pgt lt/x
sltemplategt
ltbandgt .... lt/bandgt
lth4gt ---- lt/h4gt lthr /gt
cd.xls
32
Une stylesheet (3)
ltxsltemplate match"track"gt ltpgtltxslapply-templ
ates/gtlt/pgt lt/xsltemplategt ltxsltemplate
match"song"gt ltbgtltxslapply-templates/gtlt/bgt
ltbr /gt lt/xsltemplategt ltxsltemplate
match"time"gt ltigtltxslapply-templates/gtlt/igt
ltbr /gt lt/xsltemplategt lt/xslstylesheetgt
ltsonggt ... lt/songgt
ltbgt --- lt/bgt ltbr /gt
cd.xls
33
Liens en XML, un exemple
ltelementname xlinktype "simple" xlinkhref
"target" xlinkshow "showhow"
xlinkactuate "showwhen" gtsome
content lt/elementnamegt
/gt si lélément est vide
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.
34
exemple checkbook
Un exemple, venant dErik T. Ray ("Learning
XML"), trouvé sur le site web du
cours checkbook.dtd checkbook.xml checkbook.xs
l Visitez http//www.site.uottawa.ca/szpak/teachi
ng/3125/handouts/other/perl_xml.html
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

36
Validation XML
Outils XML/XSL en Linux
  • 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.xmlcd.xml
is valid(il y aura des messages derreur, sinon
J)
37
XML parsing
Outils XML/XSL en Linux
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
xmllintPour encore plus doptions, taper man
xmllint
  • 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.

38
Statistiques XML
Outils XML/XSL en Linux
dbstat cd.xmlNode frequency 2 PI
nodes 8 element nodes 0 comment
nodes 2 attribute nodes 19 text nodes
0 CDMS nodes 32 total nodesElement
frequency 1 ltbandgt 1 ltcdgt 2
ltsonggt 1 lttimegt 1 lttitlegt 2
lttrackgt
  • 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.

39
Traitement XSL
Outils XML/XSL en Linux
  • Et puis il y a le processeur XSL xsltproc, qui a
    aussi beaucoup doptions. Pour les voirs, taper
  • xsltprocEt 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)
40
Traitement XSL
xsltproc cd.xmllthtmlgtltbodygt lth3gtRevolver,
top twolt/h3gtltbrgtltbrgt lth4gtThe
Beatleslt/h4gtlthrgt ltpgt ltbgtEleanor
Rigbylt/bgtltbrgt ltigt245lt/igtltbrgt lt/pgt ltpgt
ltbgt For No One lt/bgtltbrgt
lt/pgtlt/bodygtlt/htmlgt
  • Vous pouvez aussi exécuter le processeur XSL sur
    un fichier XML, selon un stylesheet, et obtenir
    le résultatpar exemple, un fichier HTML.
Write a Comment
User Comments (0)
About PowerShow.com