Upload
jeannine-peltier
View
104
Download
0
Tags:
Embed Size (px)
Citation preview
D.U. 2003-04 1
Introduction à XML
Université Paris II & LRI
Michel de Rougemont
http://www.lri.fr/~mdr
1. Introduction à XML 2. DTD3. XSL : style généralisant CSS4. XSLT : transformations d’arbres5. Propriétés régulières et automates
d’arbres
D.U. 2003-04 2
XML
• eXtensible Markup Language
• "successeur" de HTML
• héritier de SGML
• Standard d’échange (EDI)
• Documents structurés
• Principe de base. Séparer– Structure d ’un document: DTD– Contenu: arbre d’éléments– Affichage de ce que l’on souhaite
• XSL,XSLT, XQuery
D.U. 2003-04 3
Le monde XML
• Historique– "successeur" de HTML– héritier de SGML
• Structure DTD– Espaces Nominaux
• Contenu du document• XSL: style d’affichage
– XSLT – XPATH
• Permet de rechercher une information en utilisant la structure.
• Valeur du document?
Exemple de document
Saint Pétaouchnoque,Le 30 nivose 2004
Editions Duschmol,12 rue SchmurzYT123 Rapis
WindStar 2000Les rosières en bugetAB562 Saint Pétaouchnoque
Tel: 012133564Fax: 879765426
Objet: ben quoi?
Monsieur,
Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v
Veuillez agréer patati patata vachement sincères.
signature
Pied de page
Logo
Date
Destinataire
Corps
Pied de page
En-tête
Objet
Salutation
Formule depolitesse
Signature
Représentation XML
…<date> 30 Nivose 2004 </date>
<salutation> Monsieur, </salutation>
<corps> <para> Premier paragraphe </para> <para> et là le deuxième </para></corps>
</lettre>
<lettre><entete> <logo loc="logo-graph.vml"/> <adresse> &abrev-adresse; </adresse></entete><destinataire> <nom> Mr Schnock </nom> <adresse> <rue> rue des églantiers </rue> <ville> Saint Glin </ville> </adresse></destinataire><objet> bla bla </objet>…
D.U. 2003-04 6
Points importants
• La représentation de cette lettre en XML ne comporte aucune indication sur sa mise en page.
• De nombreuses propriétés graphiques ou typographiques sont absentes du source XML.
• Ces propriétés seront définies par l'intermédiaire d'une feuille de style.
• Une feuille de style est un ensemble de règles pour spécifier la réalisation concrète d'un document sur un média particulier.
D.U. 2003-04 7
Exemples de documents XML
<?xml version="1.0" standalone="yes" ?> <document> <salutation> Bonjour! </salutation> </document>
<document> <salutation> Bonjour! </salutation> </document>
<document> </document>
<d/>
<document> Bonjour! </document>
D.U. 2003-04 8
Structure d’un document
• Un document XML se compose– d’un prologue, éventuellement
vide
– d’un arbre d’éléments
– de commentaires et d’instructions de traitement, facultatifs
<?xml version="1.0" standalone="yes" ?>
<document> <salutation> Bonjour! </salutation> </document>
D.U. 2003-04 9
Prologue
• Une déclaration XML, facultative– de la forme:<?xml version="1.0" encoding="ISO-8859-1"
standalone="yes">
– indique au processeur qui va traiter le document:
• la version du langage XML utilisée• le codage de caractères utilisé• l'existence de déclarations extérieures au
document
• Une déclaration de type de document, facultative– de la forme<!DOCTYPE exemple SYSTEM "exemple.dtd"
[ déclarations ]>
– indique la structure particulière à laquelle doit se conformer un document
D.U. 2003-04 10
Structure d'une DTD
• Une DTD peut comprendre deux parties– une partie externe
• la partie externe est définie en dehors du document. Elle est référencée par une référence DTD, le plus souvent un URL. Ce mécanisme permet d'assurer une réutilisation de DTDs souvent utilisées.
– une partie interne• utilisée pour spécialiser une DTD
externe générique ou redéfinir certains types d'éléments
D.U. 2003-04 11
Structure d'un élément (1)
• Un élément est de la forme:<nom attr='valeur'> contenu </nom>
• <nom> est la balise d'ouverture• </nom> est la balise de fermeture. Sa présence est
obligatoire, à l'exception très particulière des éléments vides, notés indifféremment <nom> </nom> ou <nom/> .
• contenu est le contenu d'un élément . Il peut s'agir:
• attr='valeur' représente un ensemble éventuellement vide d'attributs, c'est à dire de paires (nom,valeur). Un élément ne peut posséder qu'un seul attribut de nom donné.
– de vide
– de texte
– d'autres éléments
– d'une imbrication de texte et d'éléments
– d'instructions de traitement
– de commentaires
D.U. 2003-04 12
Structure d'un élément (2)
• Un nom d'élément est une suite non vide de caractères pris parmi
– les caractères alphanumériques– le tiret-souligné (undescore)– le signe moins– le point– le caractère deux-points (:) est utilisable, mais il a un sens
particulier
• qui doit satisfaire les contraintes suivantes– le premier caractère doit être alphabétique ou un tiret-
souligné– les trois premiers caractères ne doivent pas former une
chaîne dont la représentation en lettres minuscules est "xml".
Exemples de noms d'éléments
corrects incorrects
_toto
Nom_société
xsl:rule
X.11
1998-catalogue
XmlSpécifification
nom société
D.U. 2003-04 13
Syntaxe des attributs
• Un attribut est une paire nom='valeur' qui permet de caractériser un élément. Un élément peut avoir plusieurs attributs. Dans ce cas, les paires nom='valeur' seront séparées par un espace.
• Exemples– <rapport langue='fr' dern-modif='08/07/99'>
– <annuaire generator='SQL2XML V2.0' last-update="07.08.99">
• Le nom d'un attribut obéit aux mêmes règles que le nom d'un élément
• La valeur d'un attribut est une chaîne encadrée par des guillemets (") ou des apostrophes simples (').
D.U. 2003-04 14
Arbre d'éléments
Dire qu'un document XML contient un arbre d'éléments, c'est imposer les contraintes suivantes:– Il existe dans un document un et
un seul élément père qui contient tous les autres. C'est l'élément racine du document.
– Tout élément distinct de la racine est totalement inclus dans son père. Il ne peut donc y avoir recouvrement partiel. Ainsi:
<p> <b> bla bla </p> bla </b>
n'est pas une structure XML.
D.U. 2003-04 15
Documents bien formés
• Un document est dit bien formé si:– son prologue ne contient pas de
déclaration de type de document– il contient un arbre d'éléments– Exemple
<?xml version="1.0" standalone="yes" ?>
<document>
<salutation>
Bonjour!
</salutation>
</document>
D.U. 2003-04 16
Documents valides
• Un document est dit valide si:– son prologue contient une déclaration de type de
document
– son arbre d'éléments respecte la structure définie par la déclaration de type
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!DOCTYPE document [ <!ELEMENT document (salutation)> <!ELEMENT salutation (#PCDATA)>]><document> <salutation> Bonjour! </salutation>
</document>
D.U. 2003-04 17
Notion de DTD
• Un document valide doit contenir une Déclaration de Type de Document ou DTD. Cette déclaration peut faire référence, par l'intermédiaire d'une URL à un fichier externe.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <!DOCTYPE document SYSTEM "accueil.dtd"><document> <salutation> Bonjour! </salutation> </document>
<!–- fichier accueil.dtd. Exemple de DTD simple --><!–- Auteur: --><!–- Date: -->
<!–- la déclaration XML n'est pas obligatoire dans une DTD --><!–- permet de s'assurer que les documents qui la référence --> <!–- utilisent la même version de XML --> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<!–- Définition de l'élément racine --><!ELEMENT document (salutation)>
<!–- Un élément salutation ne contient que du texte --><!ELEMENT salutation (#PCDATA)>
D.U. 2003-04 18
Contenu d'une DTD
• Une DTD peut contenir des déclarations– d'éléments– de listes d'attributs– d'entités générales– d'entités paramètres– de notations
• ainsi que des commentaires
D.U. 2003-04 19
Déclaration d'élément
• Une déclaration d'élément est de la forme<!ELEMENT nom modèle>– ELEMENT est un mot-clef et s'écrit
impérativement en majuscules– nom est un nom valide d'un élément– modèle est le modèle de contenu de
cet élément. On distingue cinq modèles de contenu
• éléments• données• mixte• libre• vide
D.U. 2003-04 20
Modèle de contenu éléments (1/2)
• Séquence d'éléments fils ( .., .., ..)– Exemple
<!ELEMENT chapitre (titre,intro,section)>
• Un élément chapitre doit contenir, impérativement et dans cet ordre, un sous-élément titre, intro et section.
• Alternative ( ..| ..| ..)– Exemple
<!ELEMENT chapitre (titre,intro,(section|sections))>
• Indicateurs d'occurrence *,+,?Un nom d'élément apparaissant dans le modèle d'un élément
père peut-être suffixé par un indicateur d'occurrence.p* : p peut apparaître zéro, une ou plusieurs fois dans le
contenu d'une instance
p+ : p peut apparaître une ou plusieurs fois
p? : p peut apparaître zéro ou une fois
D.U. 2003-04 21
Exemple simple
Livre.dtd.<?xml version='1.0' ?>
<!ELEMENT livre (chapitre*,titre,auteur)><!ELEMENT chapitre (titre,para*)><!ELEMENT titre (#PCDATA)><!ELEMENT para (#PCDATA)><!ELEMENT auteur (#PCDATA)
s1.xml<?xml version='1.0' ?><!DOCTYPE livre SYSTEM 'livre.dtd' [ <!ENTITY ionesco SYSTEM 'ionesco.xml'>]><?xml:stylesheet type="text/xsl" href="s1.xsl"?
><livre>&ionesco;</livre>
s1.xsl <?xml version='1.0' ?><xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'version='1.0'>
<xsl:template match='/'> <xsl:apply-templates/></xsl:template><xsl:template match='chapitre/titre'> <h1><xsl:value-of select='.'/></h1></xsl:template></xsl:stylesheet>
D.U. 2003-04 22
Modèle de contenu éléments (2/2)
• Exemples<!ELEMENT chapitre (
titre,
intro?,
section+ ) >
<!ELEMENT section (
titre-section,
texte-section ) >
<!ELEMENT texte-section (p|a)* >
D.U. 2003-04 23
Modèle de contenu données
• La présence de données dans le contenu d'un élément est spécifiée par le mot-clé #PCDATA
• Exemple<!ELEMENT p (#PCDATA) >
D.U. 2003-04 24
Modèle de contenu mixte
• Ce modèle permet de définir des modèles de contenu autorisant de mêler données et éléments
• Forme du modèle(#PCDATA | nom1 | …|nomn)*
• Exemples de déclarations<!ELEMENT p
(#PCDATA | em | exposant | indice | renvoi)* >
<!ELEMENT em (#PCDATA|exposant|indice)* >
<!ELEMENT exposant (#PCDATA) >
<!ELEMENT indice (#PCDATA) >
• Exemple d'utilisation <p> un paragraphe peut contenir du
texte <em> mis en évidence </em> ou en <exposant> exposant </exposant></p>
D.U. 2003-04 25
Modèle de contenu libre (1/2)
• Un élément peut être défini comme ayant un contenu quelconque, sous réserve que ce contenu respecte les règles générales du langage XML.
• Exemple<!ELEMENT foo ANY>
• Pour que le contenu d'un élément de modèle de contenu libre soit valide, il faut que, s'il contient des éléments, ceux-ci soient déclarés dans la DTD
D.U. 2003-04 26
Modèle de contenu libre (2/2)
• Utilité: ce modèle de contenu est particulièrement utile lors de la création d'un DTD complexe
• Exemple<!ELEMENT rapport ANY>
<!ELEMENT chapitre ANY>
<!ELEMENT section ANY>
<!ELEMENT titre-section ANY>
<!ELEMENT illustration ANY>
<!ELEMENT bibliographie ANY>
<!ELEMENT table-matieres ANY>
<!ELEMENT index ANY>
<!ELEMENT p ANY>
<!ELEMENT em (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (prenom+,nom)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
Saint Pétaouchnoque,Le 30 nivose 2004
Editions Duschmol,12 rue SchmurzYT123 Rapis
WindStar 2000Les rosières en bugetAB562 Saint Pétaouchnoque
Tel: 012133564Fax: 879765426
Objet: ben quoi?
Monsieur,
Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v
Veuillez agréer patati patata vachement sincères.
signature
Pied de page
<lettre> <entete> . . . </entete>
<corps> . . . </corps></lettre>
Si lettre alors enfantsSi entete alors …Si corps alors
enfants paraSi para alors
Police new roman,
taille 12, décaler
première ligne
Si … alors …
Principe de fonctionnement desfeuilles de style
D.U. 2003-04 28
CSS et XSL
<style type="text/css"><!--A:link{ COLOR: #B90000;TEXT-DECORATION: none}A:visited{COLOR: #B90000; TEXT-DECORATION: none}A:active{COLOR: #B90000;TEXT-DECORATION: none}
.textredcenter{ FONT-FAMILY: Verdana, Helvetica, arial, Geneva, SansSerif;FONT-SIZE:
11px;LINE-HEIGHT: 14px;TEXT-ALIGN: center;COLOR: #B90000;font-style: normal; font-weight: normal}
#layerinfo { position:absolute; height:235px; left:10px;top: 80px; z-index:10 }
AUTEUR { FONT-FAMILY: Verdana, Helvetica, arial, Geneva, SansSerif;FONT-SIZE: 11px;
• .
XSL, règles: (extrait de s3.xsl )<xsl:template mode='sommaire' match='chapitre'> <h2> <xsl:number/> - <xsl:value-of select="titre" /> </h2></xsl:template>
D.U. 2003-04 29
XML généralise de HTML
• HTML Hypertext Markup Language.• Un ensemble prédéfini et limité de balises,
défini par une norme (HTML 2.0, 3.2, 4.0).
• Ces balises ont des sémantiques variées:– h1,..,h6, title, address, … donnent des
indications structurelles– center,hr,b,i,big,small,… ne servent
qu'à décrire une mise en page.
• XSL permet de modifier l’ordre d’affichage
D.U. 2003-04 30
Transformation de documents
• Le Web présente de multiples cas de transformation– Formatage
– Réutilisation de document
– Adaptation aux appareils de présentation
– Conversion de format, par exemple XML vers HTML
• Trois approches– Des programmes utilisant le DOM
– Les feuilles de transformation XSLT
– Le langage de requêtes XQuery
D.U. 2003-04 31
XSLT
• Langage de transformation• « le Perl de XML »• Une feuille de transformation XSLT
contient un ensemble de règles pattern/template
• Pattern – Contexte structurel dans l'arbre source – Expression XPath
• Template – Un fragment du résultat à produire pour le
pattern correspondant
• Principe– Quand le pattern est reconnu dans le document
source, le template correspondant est engendré dans le document résultat
D.U. 2003-04 32
XQuery
• « le SQL de XML »• Un modèle de données pour les
documents XML • Un ensemble d'opérateurs sur ce
modèle (algèbre) • Un langage de requête fondé sur ces
opérateurs (syntaxe) • Les requêtes XQuery
– Peuvent sélectionner des documents entiers ou des sous-arbres qui répondent à la requête
– Peuvent construire des documents nouveaux fondés sur ce qui est sélectionné
D.U. 2003-04 33
• Tree-automata• Logical definability on trees• Tree grammar• Regular expression
A DTD is a special tree regular expression.
A parser (Xerces for example) is a special tree automaton.
A query language is a formal language on classes of structured trees. Monadic Second-Order Logic captures the regular trees.
Open problem: robustness, typing (schemas) …..
Foundations of XML
D.U. 2003-04 34
• Tree-automata• Logical definability on trees• Tree grammar• Regular expression
Tree properties
r(a,b(a,b(a,b(a,b(a,b(a,b)....) r(a(a,b(a,b(a(a,b),b)....),b)
D.U. 2003-04 35
• (q0, q0) q1• (q0,q1) q1
Tree automata
q0 q0
q0
q0
q0
q0
q1
q1
q1
q1
q1
q0 q0
q0q1
q2
(q1,q1)q2
(q1,q0)q2
(q2,-) q2
(-,q2) q2)1,,0,( qqQA
D.U. 2003-04 36
• Logical definability on a class K of trees
Tree properties
),,
)],,(),([(
)],([(,
tztrEzrEtz
tztyEzyEtzzyEzyEzyxE
zyEzyEzyxEyx
ba
babab
baa
),,,,( rEEDT ba
Equivalence of :•Automata definable•Monadic Second-order•Regular
D.U. 2003-04 37
Conclusion
• XML : standard pour les documents WEB
• Manipulation d’arbres réguliers– DTD=Automate=Expression
régulière.
• Arbres:– Les arbres réguliers sont testables– On peut les corriger et fonder une
notion de valeur relative.