Sie sind auf Seite 1von 40

XML : concours d’acronymes

ou futur standard ?

Bilan de l’école Franco-


Maghrébine IN2P3
Jean-Michel Gallone
7.12.2001

1
XML : la famille
 Né : fin 96
 Père : W3C
 Petit-fils de SGML (ISO-1986)
 Cousin d’HTML
 Reconnu le : 10/02/98 – version 1.0
 Descendance – XHMTL, MathML, …

2
X comme eXtensible
 HTML : nombre fini de balises
 XML : possibilité de définir les balises

 HTLM : balises pour formater


 XML : balises pour structurer

 DTD ou Schéma pour définir les balises


3
M comme Markup
 Tous les éléments sont repérés au
moyen de balises
 Les balises servent à structurer le
document

4
L comme Language
 Langage de description de documents
 Règles à respecter

5
Document XML
 Données binaires
 Données textuelles
 Norme Unicode
 Marques :
 Balises de début, de fin, références,
commentaires, instructions de traitement
 Définition de Type de Document

6
Élément
 Composant de base
 Identifié par un nom
 Délimité par une balise ouvrante et une
balise fermante
<AUTEUR> Victor Hugo </AUTEUR>
 Ou élément vide
<PHOTO Source= "victor.gif" />
 Contenu textuel, éléments ou mixte

7
Les attributs
 Inclus dans la balise ouvrante d’un
élément
 Composé d’un nom et d’une valeur

<AUTEUR NE="1802" MORT="1885" > Victor Hugo </AUTEUR>

8
Exemple XML
<?xml version="1.0" Encoding= "ISO-8859-1" ? >
<memo langue="fr" urgence= "maximale">
<to> Enfants Sages </to>
<from> Père Noël </from>
<date> 7/12/2001 </date>
<body> Livraison confirmée
<jour>25/12</jour>
<heure>0h00</heure>
<lieu> cheminée</lieu>
</body>
</memo>
9
…et aussi
 <!-- des commentaires -->
 Des entités externes/internes, analysables ou
non
&amp &quot &gt &lt
 <![CDATA [
…tout et n’importe quoi…
…0x01265423deadbeef49653453462…
]]>

10
Règles syntaxiques
1. Commencer par une déclaration XML
2. Balisage sensible à la casse
3. La valeur des attributs doit être quotée
4. Balises non vides appariées <br></br>
5. Balises vides fermées <br/>
6. Les élèments ne doivent pas se chevaucher
<jour> <mois> </jour> </mois> interdit

7. Un élément doit encapsuler tous les autres


8. Ne pas utiliser les caractères < et & seuls

11
Type de document (Doctype)
 Permet de valider un document XML
 Grammaire
 Définir la DTD
<!DOCTYPE … >

 Interne / externe
<?xml version= "1.0" standalone = "yes" >

 Publique / privée

12
Exemple de DTD
<?xml version="1.0" Encoding= "ISO-8859-1" ? >
<!DOCTYPE memo [
<!ELEMENT memo (to, from, date, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT body (#PCDATA|jour|heure|lieu)>
<!ELEMENT jour (#PCDATA)>
<!ELEMENT heure (#PCDATA)>
<!ELEMENT lieu (#PCDATA)>
<!ATTLIST memo langue CDATA "Alsacien">
<!ATTLIST memo urgence CDATA "normal">
]>
13
Spécifications éléments
(#PCDATA) Parsed Character DATA
(ELT) 1 fois ELT
(ELT1,ELT2) Séquence
(ELT1|ELT2|…) Choix
ELT? 0 ou 1 fois ELT
ELT+ au moins 1 fois ELT
ELT* 0 ou plusieurs fois ELT
() groupe de sous éléments
ANY n’importe quoi
EMPTY rien

14
Spécifications d’attributs
CDATA données textuelles
NMTOKEN nom XML valide
NMTOKENS noms XML valides
(val-1|val-2|…val-n) liste de valeurs
ID identificateur unique
IDREF valeur d’un ID
IDREFS valeurs d’Ids
ENTITY entité externe non analysable
ENTITIES entités externes non analysables
15
Limites des DTD
 Syntaxe non XML
 Pas de type (entier/réel/chaînes…)

 Pas de notion d’espace de nom

 …

Mai 2001, le W3C défini les Schémas XML


 Syntaxe XML

 types (entier/réel/chaînes…)

 Notion d’espace de nom

 …

16
XSD « poupées russes »
<?xml version="1.0" Encoding= "ISO-8859-1" ? >
<xsd:element name="memo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="to" type="xsd:string" />
<xsd:element name="from" type="xsd:string" />
<xsd:element name="date" type="xsd:date" />
<xsd:element name="body" type="xsd:string" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="jour" type="xsd:date" />
<xsd:element name="heure" type="xsd:time" />
<xsd:element name="lieu" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="langue" type="xsd:string" use="optional" />
<xsd:attribute name="urgence" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
17
XSD « catalogue »
 Définition des éléments (classe)
<xsd:element name="to" type="xsd:string" />

 Référence à l’élément (instance)


<xsd:element name="memo">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref ="to"/>
…etc

 Permet de factoriser

18
XSD « types nommés »
 Définir de nouveaux types
 Restrictions
<xsd:simpleType name="TypeISBN">
<xsd:restriction base = "xsd:string" >
<xsd:pattern value = "[0-9]{10}" />
</xsd:restriction>
</xsd:simpleType>

 Union : autre type de dérivation


 Groupes : définir des types complexes
19
…vers l’orientation objet
 Groupe de substitution
 Éléments abstraits (classes abstraites)
 Dérivation de type (heritage)
 Restriction, extension (surcharge)
 Modularité des schémas
 Gestion des espaces de noms

20
http://www.xml.org

21
Le langage XPATH
 Syntaxe et sémantique partagées par d’autres
outils (XSLT, Xpointer…)
 But : adresser les différentes parties d’un
document XML
 Représentation en forme d’arbre
 Type de nœuds :
Racine, éléments, texte, attributs, espace de noms, instruction
de traitement, commentaires
 Adressage type système de fichiers
22
rac: memo

attr : langue

txt : fr

Arbre de noël attr : urgence

txt : maximale
elt : to

txt : Enfants Sages


elt : from

txt : Père Noël


elt : date

txt : 7/12/01
elt : Body

txt : Livraison confirmée


elt : jour

txt : 25/12
elt : heure

txt : 0h00
elt : lieu
23
txt : cheminée
localisation
 Chemin relatif/absolu
 /memo/body/lieu
 Axe de localisation
 self, child, desecendant, parent, ancestor, …
 Test de nœuds
 text(), comment(), …
 Prédicats
 last(), position(), count(), name(), …

/memo//[lieu="cheminée"]
24
eXtensible Style Language Transformation

XSL

XML Processeur XSLT XML

Ou texte
Ou HTML

25
Feuille de style XSLT
 Transformer un arbre
 Feuille de style = ensemble de règles
 Association motif / modèles
 Objectif :
 Production de texte
 Personnalisation d’un document
 Réorganisation
 …

26
Feuille de style CSS
 Cascading Style Sheet
 Langage très simple (non XML)
 CSS1 : décembre 96 CSS2 : mars 98
 Encore mal supporté par les browsers (sauf Opera 4.02)
 Liste de règles qui décrit les éléments
 Pour chaque élément
 Couleurs et image
 Polices de caractère
 Textes
 Boites
 Classification (style de listes, affichage par bloc…)

27
CSS dans XML (ou HMTL)
 But : présentation vers browser
 Via instruction de traitement
<?xml-stylesheet type = "text/css" href="styleCD.css"
?>
 href désigne l’URI de la feuille

28
XSL-FO (Formatting Objects)
 Langage XML pour formater
 Finalisé par W3C fin Octobre 2001
 Similaire à HTML/CSS mais beaucoup
plus puissant
 Outils permettant de générer PDF (FOP)
 Devrait plaire aux utilisateurs Latex…

29
Principe de XSL-FO
 Découpage par pages
 Notion de boites
 Contenu (texte, espace, images, objets…)
 Type (région, bloc, ligne, boite en-ligne,…)
 Hiérarchie
 Caractéristiques (position, fontes…)
 Pages maîtres
 Séquences de pages
 Numérotation
 …
30
XLINK
 Lien externe vers autre document
 Lien simple HREF classique
 Lien étendu Personnaliser les liens
 Localisation des ressources distantes
 Mécanisme de traversée
 Texte facilitant l’emploi
 Ressources locales associées
 En cours de stabilisation…
31
XPointer
 But : adresser un fragment de
ressource
 Même arbre que processeur XSL
 Utilisation de XPath
 En cours de stabilisation…

32
API SAX
 Application Programming Interface
 Mécanismes standardisés de manipulation de
documents XML
 API événementielle
 Processeur analysant le document
 Association d’un gestionnaire de document
 Activation des méthodes durant l’analyse
 Simple et efficace
 Implémentations JAVA (Xerces), C, C++

33
API DOM - Document Object Model

 SAX simple mais parfois limité


(modification de structure impossible)
 Analyse puis création d’une structure
 Adaptable (mais plutôt orienté objet…)
 Spécification en IDL (OMG)
 Implémentations en Java, javascript

34
XML et le Web (1)
Doc Feuille
XML XSLT

IE
Netscape Processeur XSLT Analyseur XML
HTML

Servlet ou CGI
Serveur web

35
XML et le Web (2)
Doc Feuille
XML XSLT

IE
Netscape Processeur XSLT Analyseur XML
HTML

Opera HTML
+CSS Servlet ou CGI
Téléphones WML
Serveur web
WAP

36
XML et le Web (3)
Doc Feuille
XML XSLT

IE Feuille
Netscape Processeur XSLT Analyseur XML
XSLFO
HTML
+PDF
Processeur XSLFO
Opera HTML
+CSS Servlet ou CGI
Téléphones WML
Serveur web
WAP

37
XML et le Web (4)
Doc Feuille
XML XSLT
(Big) Browser

Processeur XSLT
Feuille
XSLFO

Processeur XSLFO XML Serveur web


XSLT
XSLFO

Analyseur XML

38
Futur standard ?
 Adopté par Microsoft et IBM…
 Interface avec nombreux logiciels
 Oracle servlet XSQL, IFS
 Serveur Apache cocoon
 Framemaker génère CSS+XML
 Nombreux schémas à succès MathML,
SVG
 Déjà beaucoup d’applications…

39
Interro
 XML eXtensible Markup Language
 W3C World Wide Web Consortium
 DTD Définition de Type de Document
 XSD XML Schema Document
 XPATH XML Path
 XSLT eXtensible Style Language Transformation
 CSS Cascading Style Sheet
 URI Universal Ressource Information
 XSL-FO eXtensible Style Language Formatting Objects
 XLINK XML Link
 XPOINTER XML Pointer
 API Application Programming Interface
 DOM Document Object Model
 IDL Interface Definition Language

40

Das könnte Ihnen auch gefallen