CSI 3125, Automne 2001 - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

CSI 3125, Automne 2001

Description:

Robert Eckstein with Michel Casabianca, 'XML Pocket Reference', 2nd ... Il y a deux liens ici: une ancre (pointant a une location sur le Web) et ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 37
Provided by: siteUo
Category:
Tags: csi | ancre | automne

less

Transcript and Presenter's Notes

Title: CSI 3125, Automne 2001


1
  • CSI 3125, Automne 2001
  • Une introduction au XML
  • par Stan Szpakowicz,
  • based sur les sources et inspirations suivantes
  • Erik T. Ray, "Learning XML", 1st ed., OReilly
  • Robert Eckstein with Michel Casabianca, "XML
    Pocket Reference", 2nd ed., OReilly
  • the World-Wide Webthousands of places

Go O'Reilly!
---------------- Et a plein dautres acronymes ?
2
GML et SGML
  • Tout a commence avec le GMLGeneralized Markup
    Language, invente en 1969 par Goldfarb, Mosher et
    Lorie dIBM afin de permettre aux sous-processus
    dedition de texte, de mise en page et
    dextraction dinformation le partage de
    documents.
  • En 1978-1986 GML a ete substantivement elargi,
    puis standardise par ANSI et ISO en tant que
    SGMLStandard Generalized Markup Language.
  • http//www.sgmlsource.com/history/sgmlhist.htm
  • http//www.oasis-open.org/cover/general.html

3
Annotations en SGML
http//www.arbortext.com/data/getting_started_with
_SGML/getting_started_with_sgml.html
4
HTML
  • SGML nest pas seulement un langage dannotation
    (markup language). Cest un standard pour la
    creation de langages dannotation.
  • HTML (HyperText Markup Language) est lun de ces
    langages. HTML a eu un debut modeste. En 1993,
    Tim Berners-Lee a base son premier systeme de
    browsing et d authoring pour le Web avec un
    tout petit nombre de markup tags. La version
    presente de HTML (version 4.01) a ete grandement
    elargie, mais HTML est reste un seul langage.
  • Les standards de HTML sont maintenus par W3C (the
    World-Wide Web Consortium)
  • http//www.w3.org/MarkUp/
  • http//www.w3.org/TR/REC-html40/

5
XML
  • XML (Extensible Markup Language) a ete developpe
    en 1996, et standardise par W3C en 1998. Cest un
    sous-ensemble du SGML. Le XML fait partie dune
    grande (et grandissante) famille de langages
    interconnectes et cooperatifs DTD, XSL, XSTL,
    CSS, XPath, XPointers, XLinks, XML Schema... Et
    ce nest que le debut! ?. Mais que serait la vie
    dun programmateur sans acronymes?
  • http//www.w3.org/XML/

6
XML en 7 points
  • XML est une methode qui permet de mettre des
    donnees structurees dans un fichier de texte.
  • XML ressemble a lHTML mais ce nest pas de
    lHTML.
  • XML est du texte, mais il na pas ete concu pour
    etre lu
  • XML est une famille de technologies
  • XML engendre de tres grand fichiers, mais ce
    nest pas un probleme.
  • XML est nouveau, mais pas si nouveau.
  • XML est gratuit, plateforme-independent et bien
    supporte.
  • http//www.w3.org/XML/1999/XML-in-10-points

7
XHTML
  • Lappatition du XML a incite la re-reflexion du
    HTML. Le nouveau "best thing since sliced bread"
    est le XHTML 1.0 The Extensible HyperText Markup
    Language, Une Reformulation du HTML 4 en XML 1.0.
  • Le nouveau document (en progres) du W3C (2nd ed.)
    du standard XHTML 1.0 est appearu le 4 Oct.,
    2001. Cest donc tout nouveau!
  • http//www.w3.org/TR/2001/WD-xhtml1-20011004/

8
Mais quest ce que le HTML?
9
La structure des documents HTML
lthtmlgt ltheadgt head elements lt/headgt ltbodygt body
elements lt/bodygt lt/htmlgt
document type, title, content descriptors, ...
O P T I O N A L
  • A quick checklist
  • text, images, multimedia
  • resource identifiers, URLs
  • element placement
  • fonts, colours
  • paragraphs, divisors
  • tables
  • forms
  • scripts, applets
  • frames

10
Liens en HTML
Le pouvoir du HTML reside, naturellement, dans
les liens dHyperText. Un click sur un lien est
une requete pour un contenu specifique une
chaine, une image, un nouveau document, un
endroit spcial dans un document. lta
href"http//www.google.com/"gt ltimg
src"gifs/Logo_25.gif" border"0"gt lt/agt Il y a
deux liens ici une ancre (pointant a une
location sur le Web) et laddresse dune image
(pointant a un fichier local). XML generalise
les liensvoir un peu plus loin.
11
HTML de plus pres (1)
ltbase href"http//www.site.uottawa.ca/szpak/teac
hing/3125/"gt lthtmlgt ltheadgt lttitlegt CSI 3125, Fall
2001 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 plus pres (2)
ltcentergt ltfont size2gt Welcome to the ltfont
color"AA3322"gtCSI 3125/3125Blt/fontgt Web
site! lt/fontgt ltbrgt lthr width324 size"3"gt ltTABLE
BORDER0 CELLSPACING10 CELLPADDING0
WIDTH352gt ltTRgt ltTD VALIGNCENTER
ALIGNCENTERgt lta href"news.html"gt ltimg
src"gifs/news.gif" width136 height34
border0 alt"What's new?"gtlt/agt lt/TDgt
eight buttons start here
13
HTML de plus pres (3)
ltTD VALIGNCENTER ALIGNCENTERgt lta
href"http//groups.yahoo.com/group/CSI3125Fall200
1/"gt ltimg src"gifs/forum.gif" width136
height34 border0 alt"Discussion
forum"gtlt/agt lt/TDgt lt/TRgt ltTRgt ltTD
VALIGNCENTER ALIGNCENTERgt lta href"syl3125_ToC.h
tml"gt ltimg src"gifs/syllabus.gif" width136
height34 border0 alt"The syllabus"gtlt/agt lt/T
Dgt 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
and two other rows of buttons
14
HTML de plus pres (4)
lthr width324gt ltpgt Instructors' email
addresses 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 lta href
"mailtoawilliam_at_site.uottawa.ca"gtawilliam_at_site.uo
ttawa.calt/agt ltpgt
15
HTML de plus pres (5)
lthr width324 size"3"gt ltfont size-1gtUpdated on
September 13, 2001lt/fontgt lthr width324gt ltform
methodget action"http//www.google.com/search"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 plus pres (6)
ltbrgt ltimg src"gifs/macspin.gif" width176
height40 alt"A Spinning Apple"gt lt!-- lthr
width300gt ltapplet alignbottom
code"gifs/rotate.class" height"72"
width"72"gtlt/appletgt ltbrgt --gt lt/centergt lt/TDgt lt/TR
gt lt/TABLEgt lt/bodygt lt/htmlgt
commented out
17
De retour au XML
  • Le HTML melange, en un langage, deux des aspects
    principaux du SGML lannotation procedurale dun
    document (sa structure) et son annotation
    descriptive (sa presentation). Par exemple,
    ltheadgt et ltpgt sont des elements de structure,
    alors que ltfontgt et ltigt decrivent le format.
  • Dans le monde du XML, les deux aspects ont ete de
    nouveau separes. Un DTD (Document Type
    Definition) definie le langage dannotation, et
    un document dXML valide doit etre de ce type.
    DTD existe depuis le debut du SGML. XML Schema
    est une nouvelle alternative, pas encore
    standardisee.

18
Un tout petit document en 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
  • lt/trackgt

structure
formatting (discussed later)
cd.xml
19
... son 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
... Et sa validation
  • Il y a trois etapes toutes simples pour valider
    un document XML
  • Log in to any Linux machine
  • Have the document and its DTD in the same
    directory.
  • Invoke the XML validator xmlvalid.
  • rebel1szpak(1) ls cd.
  • cd.dtd cd.xml
  • rebel1szpak(2) xmlvalid cd.xml
  • cd.xml is valid
  • (Vous aussi, vous devrez valider un ou deux
    documents de XML ?)

21
Simple statistiques
  • Vous pouvez aussi voir un certain nombre d
    informations sur un document XML valide. Le
    program dbstat (en Perl et poste sur le site Web
    du cours) le fait pour vous

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 1 ltbandgt 1 ltcdgt
2 ltsonggt 1 lttimegt 1 lttitlegt 2
lttrackgt
22
Elements et attributs
Container elements ltname attr1 "val1" attr2
"val2" ... gt content lt/namegt ltsong author"Paul
and John"gt For No One lt/songgt Empty
elements ltname attr1 "val1" attr2 "val2" ...
/gt ltprice amount"11.98" /gt
23
Petits Elements de la Syntaxe du DTD
  • lt!ELEMENT cd (title, band, track)gt
  • Elements of cd in this order, with one or more
    track.
  • lt!ELEMENT title (PCDATA)gt
  • Parsed-character data entity references
    resolved.
  • lt!ELEMENT track (song, time?)gt
  • time is optional.
  • lt!ATTLIST cd type (single regular)
  • REQUIREDgt
  • One of these two values must be present.
  • lt!ATTLIST song author CDATA "Paul"gt
  • Character data, default is Paul.
  • lt!ATTLIST song lyricist NMTOKEN IMPLIEDgt
  • An identifier (more or less), optional, no
    default.

24
Le XML est plus strict que le HTML
Un document XML est un peu comme un document HTML
mais avec des tags sur-mesure (et bien plus,
comme vous allez le voir ci-dessous) , mais
souvenez-vous du fait que le XML est beaucoup
plus controlle que le HTML.
  • XML est sensible aux majuscule/minuscules.
  • Les valeurs dattributs doivent etre entre
    guillemets.
  • Un element a contenu (non vide) doivent avoir un
    tag douverture et de fermeture.
  • Un element vide doit avoir une bar oblique
    finale.
  • Les tags doivent etre correctement encapsules
    (voir la page suivante)
  • Dans le contenu dun element, les espaces sont
    preserves.

25
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

26
Entites en HTML
HTML nous permet de referer a des caracteres qui
napparaissent pas sur le clavier en utilisant la
convention . Par example nbsp non-breaking
space euml ë 097 a agrave à eacute é
Ceci a ete grandement etendu en XML. Une entite
est une cellule pour contenu une entite peut
denoter nimporte quoi meme un fragment
dannotation. Les entites sont resolues ou
remplaces de la meme facon que les macros.
27
Entites en XML (1)
Nous avons des entites generales (ou bien
definies localement, ou bien externes et
disponibles publiquement) et des entites
parametriques utilisees dans les DTDs. Nous avons
aussi des entites de caracteres predefinies,
dont 5 necessaires pour eviter la confusion avec
la syntaxe dannotation amp apos ' gt
gt lt lt quot "
28
Entites en XML (2)
parameter entity
  • 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

general entity
references
cd3.dtd
29
Entites en 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
local entity
reference
reference
cd3.xml
30
La philosophie du stylesheet
La presentation des documents XML se fait de
maniere elegante et generale par transformation
de structure. Un stylesheet definie des
templates qui peuvent transformer les elements
dun document XML valide en une autre structure.
Par example, en HTML. Laccess aux elements est
facilite par XPath, un langage riche qui nous
permet le deplacement a linterieur dun document
et lapplication de nombreuses conditions
(malheureusement, nous nauront pas le temps de
voir le Xpath dans ce cours. ?)
31
Un simple 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
This is an XML document!
32
Un simple 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
33
Un simple 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
34
Liens en XML, sur un exemple
ltelementname xlinktype "simple" xlinkhref
"target" xlinkshow "showhow"
xlinkactuate "showwhen" gtsome
content lt/elementnamegt target is any local or
public resource. showhow is new, embed or
replace. (In HTML open a new window, embed a
graphic, follow a link in the same
window.) showwhen is onLoad or onRequest.
/gt if element empty
35
Un plus grand exemple checkbook
Cet exemple, ecrit par Erik T. Ray ("Learning
XML"), se trouve sur le Web dans les fichiers
checkbook.dtd checkbook.xml checkbook.xsl Visi
ter http//www.site.uottawa.ca/szpak/teaching/312
5/handouts/other/perl_xml.html Et amusez vous
bien. Et maintenant...
36
Dans un autre cours ?
  • XML Schema (encore plus de controle sur le format
    des donnees quavec les DTDs)
  • CSS (Cascading Style Sheetsplus ancien mais
    utile)
  • XSLBeaucoup de details
  • Namespaces
  • XSLT (Extensible Style Language for
    Transformations)
  • XPath (trouver des objects dans des documents)
  • XLink, XPointer (liens entre documents)
  • XML tools (parsers, verificateurs de syntaxe,
    validateurs, processeurs darbres, etc.)
  • Standards, documents publiques, ressources sur le
    Web
Write a Comment
User Comments (0)
About PowerShow.com