D.U. 2003-0 4 1 Introduction à XML Université Paris II & LRI Michel de Rougemont [email protected]http://www.lri.fr/ ~mdr 1. Introduction à XML 2.DTD 3. XSL : style généralisant CSS 4. XSLT : transformations d’arbres 5. Propriétés régulières et automates d’arbres
37
Embed
D.U. 2003-041 Introduction à XML Université Paris II & LRI Michel de Rougemont [email protected] mdr 1.Introduction à XML 2.DTD 3.XSL : style.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.
• 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.
• 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.
<!–- 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.
• 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