Download XML

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
XML : concours d’acronymes
ou futur standard ?
Bilan de l’école FrancoMaghré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.
2.
3.
4.
5.
6.
Commencer par une déclaration XML
Balisage sensible à la casse
La valeur des attributs doit être quotée
Balises non vides appariées
<br></br>
Balises vides fermées
<br/>
Les élèments ne doivent pas se chevaucher
<jour> <mois> </jour> </mois> interdit
7.
8.
Un élément doit encapsuler tous les autres
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)
(ELT)
(ELT1,ELT2)
(ELT1|ELT2|…)
ELT?
ELT+
ELT*
()
ANY
EMPTY
Parsed Character DATA
1 fois ELT
Séquence
Choix
0 ou 1 fois ELT
au moins 1 fois ELT
0 ou plusieurs fois ELT
groupe de sous éléments
n’importe quoi
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
Arbre de noël
txt : fr
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
txt : cheminée
23
localisation

Chemin relatif/absolu


Axe de localisation


self, child, desecendant, parent, ancestor, …
Test de nœuds


/memo/body/lieu
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
XML
IE
Netscape
Feuille
XSLT
Processeur XSLT
Analyseur XML
HTML
Servlet ou CGI
Serveur web
35
XML et le Web (2)
Doc
XML
IE
Netscape
Opera
Téléphones
WAP
Feuille
XSLT
Processeur XSLT
Analyseur XML
HTML
HTML
+CSS
Servlet ou CGI
WML
Serveur web
36
XML et le Web (3)
Doc
XML
IE
Netscape
Opera
Téléphones
WAP
Feuille
XSLT
Processeur XSLT
HTML
+PDF
Analyseur XML
Feuille
XSLFO
Processeur XSLFO
HTML
+CSS
Servlet ou CGI
WML
Serveur web
37
XML et le Web (4)
Doc
XML
(Big) Browser
Feuille
XSLT
Processeur XSLT
Processeur XSLFO
Feuille
XSLFO
XML
XSLT
XSLFO
Serveur web
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