le langage xml : fonctionnalités et standards associés

100
1 Antoine Rizk, XML 2005 Le langage XML : fonctionnalités et standards associés Antoine Rizk

Upload: chace

Post on 11-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Le langage XML : fonctionnalités et standards associés. Antoine Rizk. La problèmatique. Création de l’information : 20% du PNB 90% de l’information sont des documents Traitement de texte et PAO traditionnels 30% du temps sur le formattage 30% du temps sur la recherche d’informations - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Le langage XML :   fonctionnalités et standards associés

1

Anto

ine R

izk, X

ML

200

5

Le langage XML :

fonctionnalités et standards associés

Antoine Rizk

Page 2: Le langage XML :   fonctionnalités et standards associés

2

Anto

ine R

izk, X

ML

200

5

La problèmatique

Création de l’information : 20% du PNB

90% de l’information sont des documents

Traitement de texte et PAO traditionnels

- 30% du temps sur le formattage

- 30% du temps sur la recherche d’informations

La technologie change tous les 18 mois

US : nombre de documents produits/an = 92 Mds

Page 3: Le langage XML :   fonctionnalités et standards associés

3

Anto

ine R

izk, X

ML

200

5

XML : Les besoins

Productivité

Réutilisabilité

Perrenité

Integrité

Partage

Portabilité

Page 4: Le langage XML :   fonctionnalités et standards associés

4

Anto

ine R

izk, X

ML

200

5

Les origines

1960

1986

1992

1998 XML

HTML

SGML

GM

Internet

WWW

Page 5: Le langage XML :   fonctionnalités et standards associés

5

Anto

ine R

izk, X

ML

200

5

Historique

1996 : un groupe de 80 experts SGML se réunit

durant 11 semaines

Nov 1996 : 1er Draft XML du W3C à la conférence

SGML à Boston

Fév 1998 : XML adopté par le W3C comme

recommandation

Page 6: Le langage XML :   fonctionnalités et standards associés

6

Anto

ine R

izk, X

ML

200

5

Rappel des concepts

M. MorelSEML, Promopole12 av des Prés78180 Montigny le BretonneuxSt-Quentin en Yvelines le 21/9/1995

Monsieur,

Conformément au contrat de bail signé entre la SEML et notre société XMLSys le 26/5/1993, jesouhaite vous informer de mon intention de mettre fin à ce bail et de donner congé à l'expirationde cette période triennale, soit au 31/5/1996.

Restant à votre disposition pour accomplir les formalités nécessaires, je vous prie d'agréer,Monsieur, l'expression de ma parfaite considération.

M. Dupont (Gérant)

Page 7: Le langage XML :   fonctionnalités et standards associés

7

Anto

ine R

izk, X

ML

200

5

XML demain

A partir du deuxième semestre de l’an 2000 :

le volume des données XML sera plus important que celui des données HTML.

- Gartner Group

47% des entreprises utiliseront XML

47% des entreprises utiliseront Linux

90% des entreprises utiliseront Java

- Java Web Panel survey, IBM 12/98

Page 8: Le langage XML :   fonctionnalités et standards associés

8

Anto

ine R

izk, X

ML

200

5

Generalised Markup

Generalised ou descriptive Markup

- n’inclut pas les instructions de formattage- décrit uniquement le rôle logique d’un élément- le formattage est décrit séparément par une feuille de style

\par

Ce document est une introduction à XML

ou bien

<par>

Ce document est une introduction à XML

</par>

Page 9: Le langage XML :   fonctionnalités et standards associés

9

Anto

ine R

izk, X

ML

200

5

Le balisage (Markup)

Exemple RTF:

\par\pard\sb240\sl-264\b0\hyphpar0

Ce document est une introduction à XML

\par Starts a new paragraph

\pard Restores the default paragraph properties

\sb240 Twelve-point space before the paragraph

\sl-264 Puts a 13.2 point space between lines.

\b0 Switches bold off

\hyphpar0 Switches off automatic hyphenation for the paragraph

Page 10: Le langage XML :   fonctionnalités et standards associés

10

Anto

ine R

izk, X

ML

200

5

HTML

<body bgcolor=«#FFFFFF» text =«#000000» link=«#054BBB» vlink=«#054BBB» background=«/Images/backshadow2.gif»>

<a name=«top»></a>

<img src=«/Images/ec.gif» border=0 width=50 height=5 align=left>

HTML 2.0, HTML 3.2 et HTML 4.0 sont des DTD SGML

Page 11: Le langage XML :   fonctionnalités et standards associés

11

Anto

ine R

izk, X

ML

200

5

HTML

L'affichage de très longues pages

- Frames, DIV, découpage en plusieurs pages

Contôle de la présentation

- CSS

Les liens hypertextes

- IMG, HREF

Un nombre prédéfini de balises

Page 12: Le langage XML :   fonctionnalités et standards associés

12

Anto

ine R

izk, X

ML

200

5

HTML

La diffusion d'informations structurées- La charge sur le serveur- Aucune interprétation côté client

• problème de mise-à-jour de fragments de pages

- Recherche d'informations pauvre

Format de données non perenne Format d'échange de données

nonretraitables

Page 13: Le langage XML :   fonctionnalités et standards associés

13

Anto

ine R

izk, X

ML

200

5

Introduction à XML

Petit exemple

<?xml version="1.0" standalone="yes"?>

<IdentityCard>

<FirstName>Antoine</FirstName>

<LastName>Rizk</LastName>

<CardNumber>11437398</CardNumber>

<Photo url="ar.gif"/>

</IdentityCard>

Page 14: Le langage XML :   fonctionnalités et standards associés

14

Anto

ine R

izk, X

ML

200

5

Documents bien formés

A chaque balise ouvrante doit correspondre une balise fermante

Balisage spécifique pour les éléments vides

<IMG SRC="picture.gif"/>

<IMG SRC="picture.gif"></IMG>

Les balises doivent s’imbriquer correctement

Une racine doit exister

Un élément ne peut avoir des attributs vides

<DL COMPACT>

incorrecte

<DL COMPACT="">

correcte

Page 15: Le langage XML :   fonctionnalités et standards associés

15

Anto

ine R

izk, X

ML

200

5

Documents valides

Un document valide doit

être bien formé

ET

se conformer à une grammaire (DTD)

Page 16: Le langage XML :   fonctionnalités et standards associés

16

Anto

ine R

izk, X

ML

200

5

La DTD

Document Type Definition - Structure générique logique

- Grammaire de la structure du document Etablit les règles de structure de documents Définit les noms d'éléments Définit les relations entre éléments Déclare les attributs ainsi que leurs types

Documentparser

validant

DTD

erreurs

sortie

Page 17: Le langage XML :   fonctionnalités et standards associés

17

Anto

ine R

izk, X

ML

200

5

Exemple (1)

<memo>

<to>M. Bonnard</to>

<from>A. Rizk</from>

<date>4 Septembre 2000</date>

<subject>Présentation XSL </subject>

<para>La présentation XSL suivra celle sur XML</para>

</memo>

Page 18: Le langage XML :   fonctionnalités et standards associés

18

Anto

ine R

izk, X

ML

200

5

DTD memo

<!DOCTYPE memo [

<!ELEMENT memo (to, from, date, subject?, para*) >

<!ELEMENT para (#PCDATA) >

<!ELEMENT to (#PCDATA) >

<!ELEMENT from (#PCDATA) >

<!ELEMENT date (#PCDATA) >

<!ELEMENT subject (#PCDATA) >

]>

Page 19: Le langage XML :   fonctionnalités et standards associés

19

Anto

ine R

izk, X

ML

200

5

DTD memo (2)

<!DOCTYPE memo [

<!ELEMENT memo (to, from, date, subject?, (para|figure)+ >

<!ELEMENT figure (graphic, caption?) >

<!ELEMENT graphic EMPTY >

<!ELEMENT para (#PCDATA|citation|figref)+ >

<!ELEMENT to (#PCDATA) ><!ELEMENT from (#PCDATA) ><!ELEMENT date (#PCDATA) ><!ELEMENT subject (#PCDATA) ><!ELEMENT citation (#PCDATA) ><!ELEMENT figref (#PCDATA) > <!ELEMENT caption (#PCDATA) >]>

Page 20: Le langage XML :   fonctionnalités et standards associés

20

Anto

ine R

izk, X

ML

200

5

Exemple (2)

<?xml version="1.0" ?>

<Book Author=”Anonyme"> <Title>Un livre exemplaire</Title> <Chapter id="1"> Ceci est le chapitre 1. Pas très intéressant </Chapter> <Chapter id="2"> Ceci est le chapitre 2.

Il est plus long, mais il n’est pas plus intéressant.

</Chapter>

</Book>

Page 21: Le langage XML :   fonctionnalités et standards associés

21

Anto

ine R

izk, X

ML

200

5

DTD Book

<!DOCTYPE Book [

<!ELEMENT Book (Title, Chapter+)>

<!ATTLIST Book Author CDATA #REQUIRED>

<!ELEMENT Title (#PCDATA)>

<!ELEMENT Chapter (#PCDATA)>

<!ATTLIST Chapter id ID #REQUIRED>

]>

Page 22: Le langage XML :   fonctionnalités et standards associés

22

Anto

ine R

izk, X

ML

200

5

Un document est un arbre

<chapitre>

<titre>ceci est un fragment d'un livre</titre>

<note>

<par> cette note contient deux paragraphes

</par>

<par> un autre paragraphe

</par>

</note>

</chapitre>

chapitre

titrenote

par parceci est un ..

cette note.. un autre ..

Page 23: Le langage XML :   fonctionnalités et standards associés

23

Anto

ine R

izk, X

ML

200

5

Les parsers

Modèle événementiel (SAX)- Callback appelé pour chaque événement :- début balise, attribut, fin document etc..

Peut être efficace sur les gros documents- L’arbre n’est jamais construit entièrement en mémoire

Page 24: Le langage XML :   fonctionnalités et standards associés

24

Anto

ine R

izk, X

ML

200

5

Les parsers (API DOM)

Un modèle d’arbre est construit en mémoire (arbres

abstraits)

L’application accède par API à l’arbre pour le

manipuler

API DOM est normalisée (recommandation W3C)

Page 25: Le langage XML :   fonctionnalités et standards associés

25

Anto

ine R

izk, X

ML

200

5

Limites d’une DTD

Un langage différent de celui des instances Limité à la structure d’arbre, différent du modèle R Pas de typage de contenu Pas d’héritage

=> possibilité d’utiliser des schémas : XML-Schema

Page 26: Le langage XML :   fonctionnalités et standards associés

26

Anto

ine R

izk, X

ML

200

5

Données/documents

dept postelabo

compta

322

456

postenomRizk

Courtaud

322

322

Parigot 456

<telephone poste="322">

<dept>labo</dept>

<person>Rizk</person>

<person>Courtaud</person>

</telephone>

LABO 322

RIZK,Courtaud

Page 27: Le langage XML :   fonctionnalités et standards associés

27

Anto

ine R

izk, X

ML

200

5

Données ou documents ?

<chapitre>

<titre>ceci est un fragment d'un livre</titre>

<note>

<par> cette note contient deux paragraphes

</par>

<par> un autre paragraphe

</par>

</note>

</chapitre><transaction>

<time date="19980509"/>

<amount>123</amount>

<currency type="pounds"/>

<from id="X3543>G.Dupont</from>

<to id="X7987>J.Smith</to>

</transaction>

Page 28: Le langage XML :   fonctionnalités et standards associés

28

Anto

ine R

izk, X

ML

200

5

Les EIP

Presentation ServicesPresentation Services

Access and Integration ServicesAccess and Integration Services

Application ServicesApplication ServicesCollaboration ServicesCollaboration Services

Classification

Metadata

Content Integration

Personalization

SecurityNetwork

Messaging Workflow

Application Integration

SystemManagement

Annotations, Recommendations

Access, HostingWrapping

Multiple Style SheetsVirtual Documents

Information ServicesInformation ServicesDescription, SearchDocs Repositories

Page 29: Le langage XML :   fonctionnalités et standards associés

29

Anto

ine R

izk, X

ML

200

5

Le “ Virtual XML Warehouse “

Description, organisation et recherche dans des ressources hétérogènes

Unique Point

d’ AccèsArchives

Virtual XML Warehouse

Documents

Bases de données

Web

RDF

Page 30: Le langage XML :   fonctionnalités et standards associés

30

Anto

ine R

izk, X

ML

200

5

Traitement XML

Parsing et traitement applicatif- import dans un SGBD

Regénération : export d’un SGBD

Fusion de données, génération d’arbre,

transformation- XSL

Présentation - CSS, XSL

Page 31: Le langage XML :   fonctionnalités et standards associés

31

Anto

ine R

izk, X

ML

200

5

XSL

XSL

Transformer

Sortie (x)FO

Interpreter

(x)

FO

Interpreter

(y)

Sortie (y)

FO

Interpreter

(z)

Sortie (z)

Feuille de style XSL

SourceXML

W3C XSL

RésultatFO

<date>décembre, 1997</date>

<xsl:template match="date"> <fo:block font-style="italic" color="green"> <xsl:apply-templates/> </fo:block></xsl:template>

<fo:block font-style= "italic" color="green" xmlns:fo="http://www.w3.org/TR/WD-xsl/FO">décembre, 1997</fo:block>

<P STYLE="font-style:italic;color:green">décembre, 1997</P>

...

{\c6\f12\i décembre, 1997\par}

Page 32: Le langage XML :   fonctionnalités et standards associés

32

Anto

ine R

izk, X

ML

200

5

Portail/Serveur d’intermédiation

Internet/Intranet

Terminal XML

Terminal HTML

Terminal

WAP

XSL

XML + XSL

SGBDR

SGBDO

Fichiers

XML

Page 33: Le langage XML :   fonctionnalités et standards associés

33

Anto

ine R

izk, X

ML

200

5

XML+XSL

SGBD-R

labo

compta

322

456

SGBD-ORizk

Israel

322

322

Parigot 456

<telephone poste="322">

<dept>labo</dept>

<person>Rizk</person>

<person>Israel</person>

</telephone>

Données XML

Plus feuilles XSLInternet/Intranet

Terminal XML

Terminal HTML

Terminal HTML/XML

Page 34: Le langage XML :   fonctionnalités et standards associés

34

Anto

ine R

izk, X

ML

200

5

XML + XSL architecture type

Browser HTML/XML:CSS / XSL

XSL

Serveurs HTTP Middle-tier

XML

OO XML Repository

R-DBMS

XML+HTML XMLR-DBMS

GXML

SQLTraitement de requêtesXSL ou DOM côté serveur

XML-QL

XSL côté client

Page 35: Le langage XML :   fonctionnalités et standards associés

35

Anto

ine R

izk, X

ML

200

5

Ex. 2 : ré-ingénierie de données

R-DBMS-1 DBMS-2(IR) DBMS-3

XML XML XML XML statique

Processeur XSLT Feuille XSLT

XML données fusionnées Script python

DB-RESULTAT

DB2XML DB2XML DB2XML

Impression catalogue

Transformations (scripts)

Page 36: Le langage XML :   fonctionnalités et standards associés

36

Anto

ine R

izk, X

ML

200

5

Les limites

XML reste au niveau syntaxique Pas de typage Pas de sémantique Pas de relations/rôles entre concepts => Les liens hypertextes : XLL (Xlink+Xpath) Les métadonnées : RDF spec et RDF schema Les schémas typés : XML-Schema Les topic maps

Page 37: Le langage XML :   fonctionnalités et standards associés

37

Anto

ine R

izk, X

ML

200

5

Liens simplesLiens simples

Document BDocument A

Link element Linkresource

Page 38: Le langage XML :   fonctionnalités et standards associés

38

Anto

ine R

izk, X

ML

200

5

XpathXpath

Document BDocument A

Page 39: Le langage XML :   fonctionnalités et standards associés

39

Anto

ine R

izk, X

ML

200

5

Liens étendusLiens étendus

Document B

Link elements

Document A

Page 40: Le langage XML :   fonctionnalités et standards associés

40

Anto

ine R

izk, X

ML

200

5

Liens étendus “out of line”Liens étendus “out of line”

Link elementsDocument C

Document BDocument A

Page 41: Le langage XML :   fonctionnalités et standards associés

41

Anto

ine R

izk, X

ML

200

5

L’enjeu

Définir une ontologie par domaine Organiser les schémas de navigation

DTD + concepts + roles + sémantique = ontologie ontologie + thesaurus = RDF schema RDF schema => RDF specifications => métadonnées

Augmenter le taux de précision Diminuer le taux de rappel

Page 42: Le langage XML :   fonctionnalités et standards associés

42

Anto

ine R

izk, X

ML

200

5

L’évolution documentaire

ASCII, JPEG, MPEG...

XML,XSLXQL,XLL, SMIL...

Formats monomédia

Structure syntaxique

Structure sémantique RDFOntologie,Thesauru

s

Intermédiation

ProductionPublication

Page 43: Le langage XML :   fonctionnalités et standards associés

43

Anto

ine R

izk, X

ML

200

5

Intégration par les Métadonnées

Ontologies

Vocabulaires

Descriptionde ressources

Métadonnées

Données

Informationset Ressources

Organisationdes Connaissances

<tag1> <tag2> <tag3></tag1>

<tag1> <tag2> <tag3></tag1>

Page 44: Le langage XML :   fonctionnalités et standards associés

44

Anto

ine R

izk, X

ML

200

5

L’état actuel

XML : recommandation 10 fév 1998

DOM : DOM1 (1er oct 1998), DOM2 (recommandation nov 00), DOM3..

Xlink : recommandation 27 Juin 2001

Xpointer : WD 16 août 2002

SVG 1.1 : Recommendation 14 janv 2003

SMIL 2.1 : recommandation 13 déc 2005

XSLT + Xpath : recommandation 16 nov 1999

XSLT2 : candidate recommendation on June 2006

XSL FO : recommendation 15 oct 2001

MathML : V1 (recommandation Avr 1998), V1.1 (Juil. 99), V2 (WD)

XML Schema , XMLQuery RDF : Model&syntax (recommandation fév 1999), Puis 10 fév 2004

XHTML Xforms : Recommendation 14 Mars 2006

Page 45: Le langage XML :   fonctionnalités et standards associés

46

Anto

ine R

izk, X

ML

200

5

Core Architecture

Query Engine

Session Manager

URL ResolverMetadataStore

Painter

Museum

Painting

XML Wrapper

ResourcesXMLXML

Logical Middle Tier

CWEB/Application Server

Other docs

news, reports

on the Intranete.g. mails,

Well-formedXML docson the Web

XML

XML enabledDBMS

Client Tier

SchemaGenerator

RDF/XMLLoader

XML/XSLProcessor

ResourceDescription

Interface

Query BrowsingInterface

Artist

XML/XSL

Middleware APIs

http

http

Artist

URL

RDF/XMLSchema

RDF/XMLDescriptions

Page 46: Le langage XML :   fonctionnalités et standards associés

47

Anto

ine R

izk, X

ML

200

5

Pour aller plus loin ..

www.w3.org

www.xmlfr.org

www.oasis-open.org/cover

Livre : A.Michard (chez Eyrolles)

Page 47: Le langage XML :   fonctionnalités et standards associés

48

Anto

ine R

izk, X

ML

200

5

ZOOM sur XML

Page 48: Le langage XML :   fonctionnalités et standards associés

49

Anto

ine R

izk, X

ML

200

5

Les éléments

<chapitre>

<titre>ceci est un fragment d'un livre</titre>

<note>

cette note contient deux paragraphes

<par>un paragraphe

</par>

<par> un autre paragraphe

</par>

</note>

<image f="image1.gif"/>

<image f="image2.gif"></image>

</chapitre>

start-tag

end-tag

sensible à la casse

start-tag=end-tag

< = &lt;

> = &gt;

mixed content

emptyelement

data content

Page 49: Le langage XML :   fonctionnalités et standards associés

50

Anto

ine R

izk, X

ML

200

5

Créer des spans (étendus)

<chapitre>

<titre>ceci est un fragment d'un livre</titre>

<note>

cette note contient <rev/>deux paragraphes

<par>un paragraphe

</par>

<par> un autre <endrev/> paragraphe

</par>

</note>

<image f="image1.gif"/>

<image f="image2.gif"></image>

</chapitre>

Page 50: Le langage XML :   fonctionnalités et standards associés

51

Anto

ine R

izk, X

ML

200

5

Les attributs

<transaction>

<time date=”04092000" hour="0945"/>

<amount>123</amount>

<currency type="pounds"/>

<from id="X3543”>G.Dupont</from>

<to id="X7987”>J.Smith</to>

</transaction>

AttName/Attvalue sensibles à la casse

Attvalue peut contenir des espaces

" ou ' mais pas les deux à la fois

ex. <vis dimension='2" '/>

ou bien &quot; pour le "

&apos; pour le '

l'omission du nom d'attribut n'est pas permise

Page 51: Le langage XML :   fonctionnalités et standards associés

52

Anto

ine R

izk, X

ML

200

5

Les attributs réservés

Xml:lang<para xml:lang="en">this is English text</para>

<instruction xml:lang="en-GB">..lift...</instruction>

<instruction xml:lang="en-US">..elevator...</instruction>

<para xml:lang="i-yi"></para>

<para xml:lang="x-verlan"></para>

code ISO 639

code ISO 3166

code IANAInternet Assigned Numbers Authority

défini par l'utilisateur

Page 52: Le langage XML :   fonctionnalités et standards associés

53

Anto

ine R

izk, X

ML

200

5

Attributs ou éléments?

Attributs quand :

- Typage est nécessaire- Information ne fait pas partie du contenu (ex. version)

Page 53: Le langage XML :   fonctionnalités et standards associés

54

Anto

ine R

izk, X

ML

200

5

Les attributs réservés

Xml:space- deux valeurs possibles : 'preserve' et 'default'

<note xml:space="preserve">

cette note contient deux paragraphes

<par> un paragraphe

</par>

<par> un autre paragraphe

</par>

</note>

<note>cette note contient deux paragraphes

<par>un paragraphe </par> <par> un autre paragraphe </par>

</note>

Page 54: Le langage XML :   fonctionnalités et standards associés

55

Anto

ine R

izk, X

ML

200

5

Les déclarations (1)

Instructions au parser/XML processor

Forme simple : <! ... >

Forme groupée : <! ... [

<! ... >

<! ... >

]>

Page 55: Le langage XML :   fonctionnalités et standards associés

56

Anto

ine R

izk, X

ML

200

5

Les déclarations(2)

<!DOCTYPE myDTD> ou

<!DOCTYPE myDTD [ définition de la DTD ici

]> <!-- ceci est un commentaire--> Character data section

<![CDATA[<exemple> est une balise XML. &lt; remplace le <]]> <!ENTITY ... > <!NOTATION ... > <!ELEMENT ... > <!ATTLIST ... > <![IGNORE[ ...]] > <![INCLUDE[ ...]] >

Page 56: Le langage XML :   fonctionnalités et standards associés

57

Anto

ine R

izk, X

ML

200

5

Processing instruction

<? ... ?>

<P> un saut de page ici

<?Adepteditor (newpage) ?>

<?FrameMaker (np) ?>

serait bien

<P>

Page 57: Le langage XML :   fonctionnalités et standards associés

58

Anto

ine R

izk, X

ML

200

5

La déclaration XML

<?XML version="1.0" encoding="UTF-8" standalone="yes" ?>

Les attributs sont optionnels

Les valeurs ci-dessus sont les valeurs par défaut

Page 58: Le langage XML :   fonctionnalités et standards associés

59

Anto

ine R

izk, X

ML

200

5

Les entités

Document

Entité A

Entité B

Le document entier = 3 entités :

Le document entity (sans nom)

Entité A

Entité B

Page 59: Le langage XML :   fonctionnalités et standards associés

60

Anto

ine R

izk, X

ML

200

5

L'usage des entités

Eviter la duplication de certaines informations (factorisation)

Différenciation des informations pour des plateformes incompatibles

Diviser des gros documents en unités gérables Utilisation de données non XML

Page 60: Le langage XML :   fonctionnalités et standards associés

61

Anto

ine R

izk, X

ML

200

5

La DTD

Document Type Definition - Structure générique logique

- Grammaire de la structure du document Etablit les règles de structure de documents Définit les noms d'éléments Définit les relations entre éléments Déclare les attributs ainsi que leurs types

Documentparser

validant

DTD

erreurs

sortie

Page 61: Le langage XML :   fonctionnalités et standards associés

62

Anto

ine R

izk, X

ML

200

5

La DTD

External subset vs. Internal subset

Internal subset

External subset

document instance

Page 62: Le langage XML :   fonctionnalités et standards associés

63

Anto

ine R

izk, X

ML

200

5

Structure de la DTD

Ensemble de déclarations au format <! .... >

selon 4 classes - ELEMENT- ATTLIST- ENTITY- NOTATION

Page 63: Le langage XML :   fonctionnalités et standards associés

64

Anto

ine R

izk, X

ML

200

5

Document type declaration

<!DOCTYPE mybook [

<!-- la DTD mybook est déclarée ici -->

<!ELEMENT ... >

<!ENTITY ... >

...

]>

<!DOCTYPE mybook SYSTEM "/mydir/DTDS/mybook.dtd" [

<!-- la partie interne de la DTD mybook est déclarée ici -->

<!ELEMENT ... >

<!ENTITY % parlist "par | list ">

...

]>

partie externe

lu en premierdéclaration retenue

Page 64: Le langage XML :   fonctionnalités et standards associés

65

Anto

ine R

izk, X

ML

200

5

Les éléments

<!ELEMENT image EMPTY>

<!ELEMENT p ANY>

<!ELEMENT article (par*, section+)>

nom

modèle de contenumodel group

alphanumérique. - _ : ex: P, X:2, A-3

Page 65: Le langage XML :   fonctionnalités et standards associés

66

Anto

ine R

izk, X

ML

200

5

Modèle de contenu

<!ELEMENT article (par, section)>

<!ELEMENT article (par | section)>

<!ELEMENT article (par* | section)>

<!ELEMENT article (par, section?)>

<!ELEMENT article (par, section+)>

connecteur de séquence

connecteur de choix

indicateurs d'occurence

Page 66: Le langage XML :   fonctionnalités et standards associés

67

Anto

ine R

izk, X

ML

200

5

Le texte

<!ELEMENT article (#PCDATA)>

<!ELEMENT article (#PCDATA | par |section) *>

contenu mixte

Page 67: Le langage XML :   fonctionnalités et standards associés

68

Anto

ine R

izk, X

ML

200

5

Les ambiguités

(item?, item)

à remplacer par

(item, item?)

((nom,prof) | (nom,eleve))

à remplacer par

(nom, (prof | eleve) )

Page 68: Le langage XML :   fonctionnalités et standards associés

69

Anto

ine R

izk, X

ML

200

5

Les entités

Internal entities function as typing shortcuts or macros. External entities allow you to incorporate content from other files. Parameter entities, which can be internal or external, are only

available within the internal and external subsets (the DTD).

Internal Entities : remplacement d’un texte déclaré dans la DTD

Forme suivante:

<!ENTITY entityname "replacement text">

Ex:

<!ENTITY yoyo 'Yoyodyne Industries, Inc.'>

Remplacement de texte dans l’instance par &yoyo;

Page 69: Le langage XML :   fonctionnalités et standards associés

70

Anto

ine R

izk, X

ML

200

5

Entités (suite)

External Entities : référence à du texte XML ou autre notation dans un fichier externe. D’où usage de SYSTEM

<!ENTITY entityname [PUBLIC "public-identifier"] SYSTEM "system-identifier"> - system identifier est une URI, souvent un nom de fichier. Le public

identifier, s’il est présent, peut être utilisé comme raccourci vers la ressource externe par certains parsers.

Ex: <!ENTITY chap1 SYSTEM "chap1.xml"> - &chap1; Incorpore le contenu du fichier chap1.xml

<!ENTITY entityname [PUBLIC "public-identifier"] SYSTEM "system-identifier" notation>

Ex: <!ENTITY mypicture SYSTEM "pic01.gif" GIF> - GIF doit être déclaré comme NOTATION (voir plus loin)

Page 70: Le langage XML :   fonctionnalités et standards associés

71

Anto

ine R

izk, X

ML

200

5

Entités (suite)

Parameter entities <!ENTITY % pentityname1 "replacement

text"> <!ENTITY % pentityname2 SYSTEM "URI">

Le fichier dans URI ne peut qu’être XML. Pas une notation autre.

Page 71: Le langage XML :   fonctionnalités et standards associés

72

Anto

ine R

izk, X

ML

200

5

Entities : qqes infos

External entities can be further classified as either "parsed" or "unparsed". Entities which refer to external files that contain XML are called "parsed entities;" entities which refer to other types of data, identified by a notation, are "unparsed."

The parser inserts the replacement text of a parsed entity into the document wherever a reference to that entity occurs. It is an error to insert an entity reference to an unparsed entity directly into the flow of an XML document. Unparsed entities can only be used as attribute values on elements with ENTITY attributes.

Unparsed entities are used most frequently on XML elements that incorporate graphics into a document.

Page 72: Le langage XML :   fonctionnalités et standards associés

73

Anto

ine R

izk, X

ML

200

5

Entities

<!DOCTYPE doc [<!ELEMENT doc (para|graphic)+><!ELEMENT para (#PCDATA)><!ELEMENT graphic EMPTY><!ATTLIST graphic image ENTITY #REQUIRED alt CDATA #IMPLIED>

<!NOTATION GIF SYSTEM "CompuServe Graphics Interchange Format 87a"><!ENTITY mypicture SYSTEM "normphoto.gif" GIF><!ENTITY norm "Norman Walsh">]><doc><para>The following element incorporates the image declared as

"mypicture":</para><graphic image="mypicture" alt="A picture of &norm;"/></doc>

Le nom de l’entité

Référence à l’entité

Page 73: Le langage XML :   fonctionnalités et standards associés

74

Anto

ine R

izk, X

ML

200

5

Déclarations d'attributs

<!ATTLIST nomélément nomattribut typeattribut valdefault>

Exemple

<!ELEMENT chapitre (titre,intro,sec*) >

<!ATTLIST chapitre nivsecurite CDATA

date CDATA

version NMTOKEN

type (corps | annexe) >

Page 74: Le langage XML :   fonctionnalités et standards associés

75

Anto

ine R

izk, X

ML

200

5

Les types d'attributs

CDATA- chaîne de caractères (équiv.DTD absente)- <chapitre auteur="A. Rizk">

NMTOKEN, NMTOKENS- <picture boundary = '5 12 35 55'> <doc size="A4">

ENTITY, ENTITIES<!ENTITY logoEVE SYSTEM "/mondir/images/eve.gif">

<!ELEMENT entete EMPTY>

<!ATTLIST entete file ENTITY ..>

<entete file="logoEVE">

Page 75: Le langage XML :   fonctionnalités et standards associés

76

Anto

ine R

izk, X

ML

200

5

Les types d'attributs

ID, IDREF, IDREFS<p>voir <link target="x123"> chapitre 2 </link> pour plus

d'info</p>

<chap ident="x123"> etc etc </chap>

<!ELEMENT link (#PCDATA)>

<!ATTLIST link target IDREF #REQUIRED>

<!ELEMENT chap (#PCDATA)>

<!ATTLIST chap ident ID #REQUIRED>

Page 76: Le langage XML :   fonctionnalités et standards associés

77

Anto

ine R

izk, X

ML

200

5

La valeur par défaut

<!ATTLIST a att1 NMTOKEN #REQUIRED

att2 NMTOKEN #IMPLIED

att3 NMTOKEN "A4"

att4 (x | y) "y"

att5 NMTOKEN>

Page 77: Le langage XML :   fonctionnalités et standards associés

78

Anto

ine R

izk, X

ML

200

5

Déclaration de NOTATION

<!NOTATION TIFF SYSTEM "C:\programfiles\show_TIF.exe">

<!NOTATION TEX PUBLIC "-//MyCorp//NOTATION Tex Help File//EN" "C:\programfiles\show_TIF.exe">

SYSTEM

Page 78: Le langage XML :   fonctionnalités et standards associés

79

Anto

ine R

izk, X

ML

200

5

Les types d'attributs

NOTATION<!ATTLIST code langage NOTATION (C | C++ | JAVA)>

<code langage="C"> main() {....} </code>

NAME GROUP

<!ATTLIST list type (bulleted | indented | numbered) >

Page 79: Le langage XML :   fonctionnalités et standards associés

80

Anto

ine R

izk, X

ML

200

5

Référence à une NOTATION

A l'aide d'une entité <!NOTATION TIFF SYSTEM "C:\programfiles\show_TIF.exe">

<!ENTITY logoEVE "C:\mesimages\eve.tif" NDATA TIFF><p> je mets le logo ici &logoEVE; </p>

A l'aide d'un attribut

<!NOTATION C SYSTEM "C:\programfiles\gcc.exe"><!ATTLIST code langage NOTATION (C | C++ | JAVA)>

<code langage="C"> main() {....} </code>gcc

2

4

31

Page 80: Le langage XML :   fonctionnalités et standards associés

81

Anto

ine R

izk, X

ML

200

5

La DTD

<?XML ... standalone="yes"?>

Internal subset

External subset

standalone = "yes" standalone="no"

Page 81: Le langage XML :   fonctionnalités et standards associés

82

Anto

ine R

izk, X

ML

200

5 XPath

Page 82: Le langage XML :   fonctionnalités et standards associés

83

Anto

ine R

izk, X

ML

200

5

Arbre XML<livre parution="12.09.66">

<entete>

<auteur><prenom>Boris</prenom><nom>Vian</nom>

</auteur><titre>L'automne à Pékin</titre>

</entete><corps><chapitre>

<titre>Voyage en Exopotamie</titre>

<para>Amadis Dudu suivait...</para>

<para>Il y avait du soleil...</para>

</chapitre></corps></livre>

Page 83: Le langage XML :   fonctionnalités et standards associés

84

Anto

ine R

izk, X

ML

200

5 self

parent

Ancestor-or-self

ancestor

following

following-sibling

preceding-sibling

preceding

child

descendant

descendant-or-self

Page 84: Le langage XML :   fonctionnalités et standards associés

85

Anto

ine R

izk, X

ML

200

5

Le vocabulaire XPath

Exprime la notion d'axe : parent, enfant, ancêtre, descendant pour identifier des sous-ensembles de noeuds au sein d'un document XML.

Permet d'exprimer des conditions dans la sélection des noeuds d'un document XML, ce sont les predicats,

Expression formelle d'une requête Xpath : axe::noeud[predicat]

Page 85: Le langage XML :   fonctionnalités et standards associés

86

Anto

ine R

izk, X

ML

200

5

Xpath un langage orienté contexte

La syntaxe axe::noeud[prédicat] est répétable à la manière de la notation d'un système de fichier :

- Le séparateur est le /- Chaque expression est dépendante du résultat (ensemble de

noeuds ou NodeSet) de la précédente

Page 86: Le langage XML :   fonctionnalités et standards associés

87

Anto

ine R

izk, X

ML

200

5

Xpath un langage orienté contexte

Un axe est une direction dans le document, il pose la base de la requête en pré-sélectionnant le premier sous-ensemble de noeuds XML à tester,

Puis vient l'expression du/des noeud(s) qui peut avoir deux formes dans la requêtes :

- Générique : *, child- Explicite : le nom du noeud XML lui-même.

Page 87: Le langage XML :   fonctionnalités et standards associés

88

Anto

ine R

izk, X

ML

200

5

Xpath un langage orienté contexte

Quelques axes :- Parent, child- Descendant, descendant-or-self- Ancestor, ancestor-or-self- Following, following-sibbling- Preceding, preceding-sibbling

Page 88: Le langage XML :   fonctionnalités et standards associés

89

Anto

ine R

izk, X

ML

200

5

Xpath un langage orienté contexte

Il existe une syntaxe simplifiée qui permet d'exprimer des chemins d'une manière plus condensée,

Rapprochement encore plus fort vers la syntaxe de type « Système de fichiers »

Attention cependant, il est préférable de l'utiliser dans un contexte relatif

Page 89: Le langage XML :   fonctionnalités et standards associés

90

Anto

ine R

izk, X

ML

200

5

Xpath un langage orienté contexte

Les expressions précédentes peuvent s'écrire aussi :- .. *- //*- ../.. ainsi de suite pour remonter au noeud ancêtre

Page 90: Le langage XML :   fonctionnalités et standards associés

91

Anto

ine R

izk, X

ML

200

5

Xpath un langage orienté contexte

Un prédicat est une condition à satisfaire afin de rendre le contexte valide,

S'exprime entre crochets juste après l'expression du noeud

Permet de filtrer les noeuds :- Par leur nom,- Leur attribut,- Par leur valeur

Grace à des fonctions/opérateurs classiques

Page 91: Le langage XML :   fonctionnalités et standards associés

92

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

child::para● Element para, enfant du noeud courant

child::*● Tous les noeuds enfants du noeud courant

child::text()● Tous les noeuds de type textuel enfants du noeud courant

Page 92: Le langage XML :   fonctionnalités et standards associés

93

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

child::node()- Tous les noeuds enfants du noeud courant quel que soit leur

type

attribute::name- Selectionne l'attribut du noeud courant nommé name

Attribute::*- Tous les attributs du noeud courant

Page 93: Le langage XML :   fonctionnalités et standards associés

94

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

descendant::para- Tous les elements para, descendants du noeud courant

ancestor::div- Tous les elements div, ancetres du noeud courant

ancestor-or-self::div- Tous les elements div, ancetres du noeud courant et lui

meme eventuellement

Page 94: Le langage XML :   fonctionnalités et standards associés

95

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

descendant-or-self::para- Tous les elements para descendants du noeud courant

self::para- Sélectionne le noeud courant s'il se nomme para

child::chapter/descendant::para- Tous les noeuds para descendants des noeuds chapter

enfants du noeud courant

Page 95: Le langage XML :   fonctionnalités et standards associés

96

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

child::*/child::para- Tous les noeuds para petits enfants du noeud courant

/ Sélectionne le noeud racine /descendant::para

- Selectionne tous les noeud para du document

/descendant::olist/child::item- Tous les élements item enfants des élements olist du

document

Page 96: Le langage XML :   fonctionnalités et standards associés

97

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

child::para[position()=1]- Le premier enfant para du noeud courant

child::para[position()=last()]- Le dernier enfant para du noeud courant

following-sibling::chapter[position()=1]- Sélectionne le prochain élement chapter au noeud courant

Page 97: Le langage XML :   fonctionnalités et standards associés

98

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

preceding-sibling::chapter[position()=1]- Sélectionne le précédent élement chapter au noeud courant

/descendant::figure[position()=42]- Sélectionne le quarante deuxième élement figure dans le

document

child::para[attribute::type="warning"]- Sélectionne tous les noeuds para qui ont un attribut nommé

type possédant la valeur « warning »

Page 98: Le langage XML :   fonctionnalités et standards associés

99

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

/child::doc/child::chapter[position()=5]/child::section[position()=2]

- Tous les élements section situés en deuxième position et enfants des élements chapter situés en cinquième position des élements doc enfants du noeud racine

child::para[attribute::type='warning'][position()=5]- Sélectionne les élements para enfants du noeud courant s'ils

ont un attribut type égal à « warning » et s'ils sont en cinquième position

Page 99: Le langage XML :   fonctionnalités et standards associés

100

Anto

ine R

izk, X

ML

200

5

Exemples de requêtes XPath

child::chapter[child::title]- Séléctionne les élements chapter s'ils ont un enfant nommé

title

child::*[self::chapter or self::appendix]- Tous les enfants du noeud courant à condition qu'ils se

nomment chapter ou appendix

child::*[self::chapter or self::appendix][position()=last()]- Idem. Et à condition qu'ils soient en dernière position

Page 100: Le langage XML :   fonctionnalités et standards associés

101

Anto

ine R

izk, X

ML

200

5

Equivalences

Syntaxe complète- Self

- Attribute

- N[position()=5]

- Parent

- N/descendant::para

- N[attribute::a1][attribute::a2]

Syntaxe simplifiée- .

- @

- N[5]

- ..

- N//para

- N[@a1 and @a2]