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

Post on 11-Jan-2016

26 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

1

Anto

ine R

izk, X

ML

200

5

Le langage XML :

fonctionnalités et standards associés

Antoine Rizk

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

3

Anto

ine R

izk, X

ML

200

5

XML : Les besoins

Productivité

Réutilisabilité

Perrenité

Integrité

Partage

Portabilité

4

Anto

ine R

izk, X

ML

200

5

Les origines

1960

1986

1992

1998 XML

HTML

SGML

GM

Internet

WWW

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

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)

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

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>

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

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

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

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

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>

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

15

Anto

ine R

izk, X

ML

200

5

Documents valides

Un document valide doit

être bien formé

ET

se conformer à une grammaire (DTD)

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

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>

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) >

]>

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) >]>

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>

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>

]>

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 ..

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

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)

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

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

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>

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

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

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

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}

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

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

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

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)

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

37

Anto

ine R

izk, X

ML

200

5

Liens simplesLiens simples

Document BDocument A

Link element Linkresource

38

Anto

ine R

izk, X

ML

200

5

XpathXpath

Document BDocument A

39

Anto

ine R

izk, X

ML

200

5

Liens étendusLiens étendus

Document B

Link elements

Document A

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

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

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

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>

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

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

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)

48

Anto

ine R

izk, X

ML

200

5

ZOOM sur XML

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

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>

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

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

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)

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>

55

Anto

ine R

izk, X

ML

200

5

Les déclarations (1)

Instructions au parser/XML processor

Forme simple : <! ... >

Forme groupée : <! ... [

<! ... >

<! ... >

]>

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[ ...]] >

57

Anto

ine R

izk, X

ML

200

5

Processing instruction

<? ... ?>

<P> un saut de page ici

<?Adepteditor (newpage) ?>

<?FrameMaker (np) ?>

serait bien

<P>

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

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

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

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

62

Anto

ine R

izk, X

ML

200

5

La DTD

External subset vs. Internal subset

Internal subset

External subset

document instance

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

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

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

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

67

Anto

ine R

izk, X

ML

200

5

Le texte

<!ELEMENT article (#PCDATA)>

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

contenu mixte

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) )

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;

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)

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.

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.

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é

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) >

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">

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>

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>

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

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) >

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

81

Anto

ine R

izk, X

ML

200

5

La DTD

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

Internal subset

External subset

standalone = "yes" standalone="no"

82

Anto

ine R

izk, X

ML

200

5 XPath

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>

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

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]

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

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.

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

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

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

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

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

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

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

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

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

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

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 »

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

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

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]

top related