1 xml : concours dacronymes ou futur standard ? bilan de lécole franco- maghrébine in2p3...
TRANSCRIPT
1
XML : concours d’acronymes ou futur standard ?
Bilan de l’école Franco-Maghrébine IN2P3
Jean-Michel Gallone7.12.2001
2
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, …
3
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
4
M comme Markup Tous les éléments sont repérés au
moyen de balises Les balises servent à structurer le
document
5
L comme Language Langage de description de
documents Règles à respecter
6
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
7
É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
8
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>
9
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>
10
…et aussi <!-- des commentaires --> Des entités externes/internes, analysables
ou non& " > <
<![CDATA […tout et n’importe quoi……
0x01265423deadbeef49653453462…]]>
11
Règles syntaxiques1. Commencer par une déclaration XML2. Balisage sensible à la casse3. La valeur des attributs doit être quotée4. 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 autres8. Ne pas utiliser les caractères < et & seuls
12
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
13
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">
]>
14
Spécifications éléments(#PCDATA) Parsed Character DATA(ELT) 1 fois ELT(ELT1,ELT2) Séquence(ELT1|ELT2|…) ChoixELT? 0 ou 1 fois ELTELT+ au moins 1 fois ELTELT* 0 ou plusieurs fois ELT() groupe de sous élémentsANY n’importe quoiEMPTY rien
15
Spécifications d’attributsCDATA données textuellesNMTOKEN nom XML valideNMTOKENS noms XML valides(val-1|val-2|…val-n) liste de valeursID identificateur uniqueIDREF valeur d’un IDIDREFS valeurs d’IdsENTITY entité externe non analysableENTITIES entités externes non
analysables
16
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 …
17
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>
18
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
19
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
20
…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
21
http://www.xml.org
22
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
23
Arbre de noëltxt : fr
attr : langue
txt : m axim ale
attr : urgence
txt : Enfants Sages
elt : to
txt : Père N oël
elt : from
txt : 7/12/01
elt : date
txt : L ivraison confirm ée
txt : 25/12
elt : jour
txt : 0h00
elt : heure
txt : chem inée
elt : lieu
elt : B ody
rac: m em o
24
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"]
25
eXtensible Style Language Transformation
Processeur XSLT XMLXML
XSL
Ou texteOu HTML
26
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 …
27
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…)
28
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
29
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…
30
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 …
31
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…
32
XPointer But : adresser un fragment de
ressource Même arbre que processeur XSL Utilisation de XPath En cours de stabilisation…
33
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++
34
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
35
XML et le Web (1)
IENetscape
IENetscape
Serveur web
Servlet ou CGI
Processeur XSLT Analyseur XML
DocXML
FeuilleXSLT
HTML
36
XML et le Web (2)
IENetscape
IENetscape
OperaOpera
TéléphonesWAP
TéléphonesWAP
Serveur web
Servlet ou CGI
Processeur XSLT Analyseur XML
DocXML
FeuilleXSLT
HTML
HTML+CSS
WML
37
XML et le Web (3)
IENetscape
IENetscape
OperaOpera
TéléphonesWAP
TéléphonesWAP
Serveur web
Servlet ou CGI
Processeur XSLT Analyseur XML
DocXML
FeuilleXSLT
HTML+PDF
HTML+CSS
WML
Processeur XSLFO
FeuilleXSLFO
38
XML et le Web (4)
Serveur web
Processeur XSLT
Analyseur XML
DocXML
FeuilleXSLT
XMLXSLTXSLFO
Processeur XSLFO
FeuilleXSLFO
(Big) Browser
39
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…
40
Interro XML W3C DTD XSD XPATH XSLT CSS URI XSL-FO XLINK XPOINTE
R API DOM IDL
eXtensible Markup LanguageWorld Wide Web ConsortiumDéfinition de Type de DocumentXML Schema Document XML PatheXtensible Style Language Transformation Cascading Style SheetUniversal Ressource Information eXtensible Style Language Formatting
ObjectsXML Link XML PointerApplication Programming InterfaceDocument Object Model Interface Definition Language