1 XML : concours dacronymes ou futur standard ? Bilan de lécole Franco- Maghrébine IN2P3...

Post on 04-Apr-2015

106 views 0 download

Transcript of 1 XML : concours dacronymes ou futur standard ? Bilan de lécole Franco- Maghrébine IN2P3...

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&amp &quot &gt &lt

<![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