• Aucun résultat trouvé

Gestion de Contenus Web

N/A
N/A
Protected

Academic year: 2022

Partager "Gestion de Contenus Web"

Copied!
26
0
0

Texte intégral

(1)

Introduction à la gestion de contenus web et XML

Valeur C - Module Données et Services sur le Web Bernd Amann

2003/04

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Plan du cours

XML et bases de données:

Introduction à la gestion de données sur le Web

Rappel XML: syntaxe, DTD, DOM/SAX, espaces de noms XPath, XSLT

Interrogation XML : XQuery

Stockage de données XML dans une base de données relationnel

Typage de données XML : grammaires d’arbres, DTD et XML Schema

Web sémantique:

RDF, RDF Schéma, OWL

Interrogation de métadonnées RDF

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann 2

Objectifs du cours

Comprendre

le problème de la gestion de d’informations/ressources sur le Web

le rôle de XML et des bases de données

Apprendre les technologies de base pour la gestion de données sur le Web :

entrepôts XML services web web sémantique

4

Services Web:

SOAP et WSDL ActiveXML

(2)

Gestion de Contenus Web

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Web : Publication et échange d’informations

Le Web est un outil universel pour publier et échanger des informations :

Le trio de base : HTML+URL+HTTP

L’information est gérée sous forme de bases de données, documents XML, annuaires LDAP, etc.

On peut distinguer entre

l’information à la surface, qui est accessible par navigation et l’information en profondeur, qui est “cachée” derrière des applications.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Contenu du Web 6

Contenu du Web

Contenu du Web 8

Web de surface et contenu

Applications

Informations HTML

Source: BrightPlanet

(3)

Le contenu du Web

La taille du Web (surface et profond) est estimée à 7 500 téra-octets dont seulement 19 (0.02%) sont accessibles par les moteurs de recherche.

Il existe plus que 200 000 serveurs de contenu dont les soixante premiers contiennent environs 750 téra-octets d’informations.

Les serveurs de contenu supportent cinquante à soixante fois plus de traffic que les serveurs de surface.

Plus que 50% du contenu se trouve dans des bases de données spécialisées.

Extrait de l’étude de Brightplanet sur des données collectées pendant 15 jours en 2000.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Gestion d’informations sur le Web

Exemples d’applications web :

Commerce électronique : catalogue/achat en-ligne (B2C), échanges commerciales (B2B)

Éducation : formation/enseignement à distance Recherche : organisation de conférences, journaux électroniques

Médias : information en directe, archivage

Archivage, veille technologique (entrepôts thématiques) Comment utiliser le Web pour distribuer son information ? Comment utiliser le Web pour échanger des informations ? Comment exploiter les informations disponibles sur le Web ?

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Gestion d’informations sur le Web (WCM) 10

Gestion d’informations sur le Web (WCM)

Gestion d’informations sur le Web (WCM) 12

Composants et fonctions d’une application web

Contenu

Mise−à−jour

Gestion

Transactions Sessions

Web

Integration

Acquisition

Souscription Exploration Transformation

Distribution

Publication

Entrepot

Recherche Formulaires Services

IInteraction

Requetes

(4)

Les “dimensions” du Web

Autonomie des composants

Publication et distribution de l’information (ouverture) Passage à l’échelle :

taille des données nombre d’utilisateurs nombre de services ....

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Problème général

Prendre en compte les dimensions du Web et les besoins des applications :

Ouverture vs. sécurité et protection Autonomie vs. intégration

Échelle vs. performance

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Gestion d’informations sur le Web (WCM) 14

Les “besoins” d’une application Web

Sécurité et protection des données Performance

Intégration des données ...

Gestion d’informations sur le Web (WCM) 16

Autonomie et Hétérogénéité

L’autonomie des ressources (et des personnes qui les produisent) a comme résultat une hétérogénéité à différents niveaux.

Format et structure :

l’information est représentée sous différents formats et structures

Connaissances :

l’information est produite et interprêtée avec des connaissances/contextes différents.

Outils :

l’information est gérée et produite par des outils différents.

(5)

Autonomie et Adaptation

L’autonomie des sources et l’échelle du Web modifie le problème de la conception d’une application.

Les données et les applications qui les utilisent sont séparées : Il n’est pas possible de concevoir en même temps une application et les données dont elle a besoin.

On est obligé d’adapter les données à l’application.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Architecture Trois-Tiers

Médiateur, Portail, Entrepot

Client Client Client

Serveur Serveur Serveur

Serveur

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Gestion d’informations sur le Web (WCM) 18

Évolution du traitement des données

Système de Fichiers :

stockage et traitement sont fortement liés SGBD :

séparation entre modèle physique et modèle logique architectures client-serveur

Web :

séparation entre modèles de sources et modèle global architectures à trois niveaux (three-tier)

architectures pair-à-pair (peer-to-peer)

Gestion d’informations sur le Web (WCM) 20

Architecture Peer-to-Peer

Pair Pair Pair

Pair Pair Pair Pair

Pas de différence entre serveur et client

(6)

Modélisation de l’information sur le Web

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Exemple

Deux sources de données sur le cinéma:

Base de données relationnelle :

Roles acteur film

Brando Apocalypse Now Brando Le Parrain

... ...

Page HTML :

<html>

Le cinéma <bf>Action Christine</bf> montre actuellement le film <i>Apocalypse Now</i>

(place: 6 Euros).

</html>

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 22

Modèles de Données Semi-structurées

Objectif : Modèle pour représenter des informations hétérogènes, partiellement structurées et évolutives.

Besoin : On à besoin d’un modèle

générique : représenter une table, une page HTML, un objet Java

puissant : sans perte d’information

ouvert : sans se restreindre à un format ou une représentation

flexible : facile à comprendre et à manipuler

Modélisation de l’information sur le Web 24

Interrogation

On veut répondre à des questions diverses : Films avec Marlon Brando : requête SQL

select film from Roles where acteur = ’Brando’

Le film projeté au cinéma Action Christine : Google Google(‘‘cinéma action christine’’)

Où est-ce que je peux voir des films avec Marlon Brando :

?

Pour répondre à la dernière question, on cherche un représentation uniforme qui est indépendante de la syntaxe d’échange et facile à inspecter et à traiter par un programme.

Arbres et Graphes

(7)

Table = arbre

"Brando" "Le Parrain"

film film

Roles

"Brando" "Apocalypse Now "

acteur role role

acteur

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Format d’échange

Un format d’échange définit une représentation textuelle d’une information structurée :

Sérialisation : création d’une représentation textuelle d’une donnée structurée ;

Parsing : reconstitution de la donnée structurée à partir de sa représentation sérialisée (processus inverse) ;

XML

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 26

Document HTML = arbre

"(place: 6 euros)"

"Action Christine"

"Le cinéma"

"montre actuellement le film"

"Apocalypse Now"

bf i

html

Modélisation de l’information sur le Web 28

Films avec Marlon Brando

Requête SQL : select film from Roles

where acteur = ’Brando’

Requête XQuery (XML) : FOR $r IN Roles/role

WHERE $r/acteur = ’Brando’

RETURN $r/film

(8)

Films au cinéma Action Christine

<html>

Le cinéma <bf>Action Christine</bf> montre actuellement le film <i>Apocalypse Now</i>

(place: 6 Euros).

</html>

Requête XQuery : FOR $a IN html

WHERE $a/bf = ’Action Christine’

RETURN $a/i

Rien ne me garantit que$a/iretourne le titre du film...

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

XML-isation de HTML

Traduction (XSLT) :

remplacer racine html par Cinema remplacer bf par nom

remplacer i par film ajouter une balise prix

<?xml version=’1.0’ encoding=’iso-8859-1’ ?>

<Cinéma>

Le cinéma <nom>Action Christine</nom> montre actuellement le film <film>Apocalypse Now</film>

(place: <prix unite=’euros’>6</prix>).

</Cinéma>

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 30

Enrichissement sémantique

<html>

Le cinéma <bf>Action Christine</bf> montre actuellement le film <i>Apocalypse Now</i>

(place: 6 Euros).

</html>

Pout intérprêter les informations, il faut savoir que

“Action Christine” est un cinéma

“Euro” est une unité monétaire ...

Ontologies, métadonnées

Modélisation de l’information sur le Web 32

Intégration = Graphe

cinema film

Officiel

nom prix titre

acteur

"Apocalypse Now" "M. Brando"

"Action Christine"6

film

f76

HTML BD Relationnelle

(9)

Document XML integré

<?xml version=’1.0’ encoding=’iso-8859-1’ ?>

<Officiel>

<cinema film="f76">

<nom>Action Christine</nom>

<prix unite=’euros’>6</prix>

</cinema>

<film id="f76">

<titre>Apocalypse Now</titre>

<acteur>M. Brando</acteur>

</film>

</Officiel>

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Gestion de Contenus Web : le rôle de XML

La technologie XML (dans le sens très large) intervient à tous les niveaux dans la gestion de contenu Web.

XML

Contenu

Mise−à−jour

Gestion

Transactions Sessions

Web

Interface

Exploration Recherche Formulaires

Integration

Acquisition

Souscription Exploration Transformation

Distribution

Publication

Entrepot

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 34

Cinéma montrant un film avec Marlon Brando

FOR $c in Officiel/cinema,

$f in Officiel/film[@id=$c/@film]

WHERE $f/acteur = ’M. Brando’

RETURN $c/nom

Modélisation de l’information sur le Web 36

Gestion de Contenus Web : technologie XML

Interrogation : XQuery

Stockage : base de données/entrepôts XML Transformation : XSLT

Ontologies, métadonnées : RDF, RDFS, OWL Integration, adaptation : médiateurs/wrappers XML

(10)

Bibliographie

S. Abiteboul, P. Buneman, D. Suciu: Data on the Web - from relations to semi-structured data and XML

R. Bourret, http://www.rpbourret.com/xml/XMLDBLinks.htm B. Amann et P. Rigaux, Comprendre XSLT, O’Reilly

G. Gardarin, XML: des bases de données aux services Web S. Munch, Building Oracle XML Applications

A. Doucet et G. Jomier (eds.), Bases de données et Internet, Hermes.

Sites du W3C, IBM, Microsoft,...

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

W3C et XML

Le World Wide Web Consortium (W3C) http://www.w3.org

400 partenaires industriels, parmi lesquels les plus grands comme Oracle, IBM, Compaq, Xerox, Microsoft

Laboratoires de recherche: MIT pour les États Unis, INRIA pour l’Europe, université Keio (Japon) pour l’Asie

XML : recommendation W3C pour

les documents Web (généralisation de HTML),

mais aussi pour l’échange, la transformation, l’intégration et l’interrogation des données sur le Web.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 38

Rappel XML (eXtensible Markup Language)

Modélisation de l’information sur le Web 40

Notion de balisage structurel

Principe clé de XML :

séparer la structure d’un document de sa présentation documents structurés

structurer l’information données (semi-)structurées Avantages:

transformation : indépendance entre les outils de présentation (clients) et les outils de gestion de l’information (serveurs);

différentes présentations sont possibles pour le même document

interrogation : requêtes plein-texte et (semi-)structurées

(11)

Document XML (forme sérialisée)

<?xml version="1.0" encoding="ISO-8859-1"?>

<CINEMA>

<NOM>

Epée de Bois

</NOM>

<ADRESSE>

100, rue Mouffetard

</ADRESSE>

<METRO>

Censier-Daubenton

</METRO>

</CINEMA>

Cette représentation facilite l’échange de l’information.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Document XML (arbre DOM)

Les noeuds dans un document XML sont typés. Le modèle DOM distingue entre la racine du documents, les éléments, le text, les commentaires, ... :

Document -

Element CINEMA

Element NOM

Texte - Epée de Bois

Element ADRESSE

Texte - 100, rue Mouffetard

Element METRO

Texte - Censier-Daubenton

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 42

Document XML (forme arborescente)

Un arbre :

/

CINEMA

NOM

Épée de bois

ADRESSE

100, rue Mouffetard

METRO

Censier-Daubenton

Modélisation de l’information sur le Web 44

La syntaxe XML

La syntaxe XML définit la représentation sérialisée d’un arbre DOM :

représentation des noeuds (document, élements, texte, commentaires, attributs, ...)

représentation de la structure (eg. imbrication des balises)

(12)

Éléments

Dans la forme sérialisée, un élément est une balise ouvrante avec un nom, puis un contenu, puis une balise fermante Dans la forme arborescente, un élément est un noeud

qui a un nom et

qui est la racine de l’arbre représentant son contenu.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Commentaires et instructions de traitement

Les commentaires :

<!-- Ceci est un commentaire -->

Instructions de traitement : Exemple :

<?xml-stylesheet href="prog.xslt" type="text/xslt">

L’instruction de traitementxml-stylesheetest utilisé par les navigateurs web pour appliquer un programme de transformation (prog.xslt) aux document XML.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Modélisation de l’information sur le Web 46

Attributs

Les attributs constituent un autre moyen de représenter de l’information.

<A att1=’1’ att2=’2’>

l’ordre des attributs n’est pas important

il doit toujours y avoir une valeur, encadrée par des quotes simples ou double-quotes (différent de HTML)

il ne peut pas y avoir deux attributs avec le même nom dans un élément.

Modélisation de l’information sur le Web 48

Les sections littérales CDATA

On veut placer dans le contenu d’un document XML des caractères comme ’<’, ’>’, ou ’&’.

Incorrecte :

<?xml version=’1.0’?>

<PROGRAMME>

if ((i < 5) && (j > 6)) printf("error");

</PROGRAMME>

Correcte : utilisation d’une section CDATA

<?xml version=’1.0’?>

<PROGRAMME>

<![CDATA[if ((i < 5) && (j > 6)) printf("error"); ]]>

</PROGRAMME>

CDATASection -

if ((i < 5) && (j > 6)) printf("error");

(13)

Résumé : structure d’un document XML

Un document XML comprend trois parties :

le prologue, avec la déclaration XML, la DTD, des

commentaires, des instructions de traitements (optionnels) un élément racine avec son contenu

un épilogue avec des commentaires, ou des instructions de traitements (optionnels)

Le contenu du document proprement dit est le contenu de l’élément racine.

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Documents XML valides et bien-formés

Document XMLbien-formé:

la structure est imbriquée (arborescence) Document XMLvalide:

le document respecte une DTD qui décrit pour chaque élément la structure de son contenu et ses attributs

intégrité référentielle :

toutes les valeurs d’attributs de type ID sont distinctes toutes les références sont valides

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Déclaration du Type de Document (DTD) 50

Déclaration du Type de Document (DTD)

Déclaration du Type de Document (DTD) 52

Exemples

Un cinéma a

un nom, une adresse optionnelle et une suite de séances.

<!ELEMENT cinéma (nom,adresse?,(séance)*)>

Une personne a

un nom, plusieurs numéros de téléphone et au moins une adresse email

(14)

DTD: Exemple

1 <!ELEMENT Officiel (#PCDATA | cinéma | film)*>

2 <!ELEMENT cinéma (nom, adresse, (séance)*)>

3 <!ELEMENT nom (#PCDATA) >

4 <!ELEMENT adresse (ville, rue, (numéro)?)>

5 <!ELEMENT séance EMPTY>

6 <!ATTLIST séance heure NMTOKEN #REQUIRED

7 ref_film IDREF #REQUIRED>

8 <!ELEMENT film (titre, année>

9 <!ATTLIST film film_id ID #REQUIRED>

10 acteurs IDREFS #IMPLIED>

11 <!ELEMENT titre (#PCDATA) >

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

DTD: Pourquoi Validation?

Une DTD est une description de l’interface entre le producteurs et les consommateurs des données/documents XML :

le producteur peut contrôler la qualité des données/documents produits

le consommateur peut séparer la vérification syntaxique des données/documents (parseur) de la logique de l’application

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Déclaration du Type de Document (DTD) 54

DTD: Utilisation

On ajoute au début du document XML la clause DOCTYPE.

Définition locale:

<!DOCTYPE Officiel [

<!ELEMENT Officiel (#PCDATA|cinéma|film)*>

<!ELEMENT cinéma (nom, adresse, (séance)*)>

...]>

Définition externe :

<!DOCTYPE Officiel SYSTEM "officiel.dtd">

Définition mixte :

<!DOCTYPE Officiel SYSTEM "officiel.dtd" [

<!ELEMENT Officiel (#PCDATA|cinéma|film)*> ]>

Déclaration du Type de Document (DTD) 56

ELEMENT : Déclaration du Type de Élément

Un élément est défini par un nom et un modèle de contenu : Expression régulière sur l’alphabet des noms d’éléments;

EMPTY= élément vide;

ANY= toute combinaison de tous les éléments;

#PCDATA= texte

Contenu mixte : (#PCDATA | A | B ...)*

(15)

Expressions régulières (rappel)

Expressions régulières sur un alphabet :

Chaque symbol est une expression régulière (e.r.);

Si est une expression régulière, alors

,

et

sont

des expressions régulières;

Si et sont des expressions régulières, alors

et

sont des expressions régulières;

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Langages réguliers (2)

: tous les mots composés de mots dans

;

; Exemples :

,

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Déclaration du Type de Document (DTD) 58

Langages réguliers (1)

Chaque expression régulière sur un alphabet définit un ensemble de mots (langages)

sur :

pour tous les dans ;

: désigne le mot vide;

: tous les mots composés d’un mot dans

suivi d’un mot dans

: tous les mots dans

et dans

(union)

Déclaration du Type de Document (DTD) 60

ATTLIST : Déclaration des Attributs

<!ATTLIST élément nom type mode [defaut]>

Les éléments de typeséanceont un attributheureet un attribut ref_film:

<!ATTLIST séance heure NMTOKEN #REQUIRED ref_film IDREF #REQUIRED>

Les éléments de typefilmont un attributfilm_idet un attribut acteurs:

(16)

Types d’attributs

Chaînes de caractères :CDATA

Énumérations : séquences de valeurs alternatives séparées par

ID, IDREF, IDREFS : identifiants et références ENTITY/ENTITIES : entité(s)

NMTOKEN/NMTOKENS : chaîne(s) de caractères sans blancs NOTATION : notation

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Attribut ou element?

Souvent on a le choix entre l’utilisation d’un attribut ou d’un élément pour représenter une information.

Il est conseillé d’utiliser des éléments quand l’information est structurée (un arbre)

répétitive (une séquence d’éléments)

grande (eg. une chaîne de caractères de plusieurs KO)

“affichable”

Il est conseillé d’utiliser des attributs comme identificateurs ou références

“paramètres” (eg. pour l’affichage)

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Déclaration du Type de Document (DTD) 62

ATTLIST : Mode

Modes d’attributs:

#REQUIRED: la valeur doit être définie

#IMPLIED: la valeur est optionnelle

#FIXED: la valeur est constante

<!ATTLIST séance heure NMTOKEN #REQUIRED ref_film IDREF #REQUIRED>

<!ATTLIST film film_id ID #REQUIRED acteurs IDREFS #IMPLIED

langue (AN|FR|AL|ES|IT) #IMPLIED>

<!ATTLIST adresse ville CDATA #IMPLIED ’Paris’>

Déclaration du Type de Document (DTD) 64

Entités

<!DOCTYPE Officiel [

<!ENTITY copyright ’Copyright B. Amann’>

<!ELEMENT Officiel (p, année) >

<!ELEMENT p (#PCDATA) >

<!ENTITY % text ’#PCDATA’>

<!ELEMENT année (%text;) >

]>

<Officiel>

<p> &copyright; </p>

<année>2000</année>

</Officiel>

Les entités paramètres (ENTITY %) peuvent seulement être utilisées dans la DTD.

(17)

Entités externes

Segmentation du document en plusieurs sous-documents Réutilisation de DTDs et de déclarations

Références vers données non-XML (NOTATION) Adressage:

URL :<!ENTITY pariscope SYSTEM ’http://pariscope.fr/ext.xml’ >

FPI (formal public identifier) :

<!ENTITY planning PUBLIC ’-//CNAM//Texte libre//FR’>

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Résumé sur les DTDs

Une DTD décrit la structure d’un ensemble de documents XML valides ;

Tous les parseurs XML permettent de valider un document XML par rapport à une DTD ;

Une DTD n’est pas un document XML ;

Il existent des langages plus riches pour la description d’un document XML : XML Schema, Relax NG grammaires d’arbres régulières

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Déclaration du Type de Document (DTD) 66

Entités caractères

Déclaration entité Référence Car.

<!ENTITY lt "&#60;"> &lt; <

<!ENTITY gt "&#62;"> &gt; >

<!ENTITY amp "&#38;"> &amp; &

<!ENTITY apos "&#39;"> &apos; ’

<!ENTITY quot "&#34;"> &quot "

Table 1:

Document Object Model (DOM) 68

Document Object Model (DOM)

(18)

Le modèle DOM

DOM est décomposé en plusieurs niveaux ; Le niveau 1 fournit

une définition de la structure logique d’un document sous forme d’une arborescence

des interfaces, méthodes, attributs et objets pour la création et modification de documents XML (DOM core) et HTML (DOM HTML)

Il ne fournit pas de notions d’événement, de persistance, d’interrogation etc. niveaux 2 ou plus

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Le modèle DOM

Un parseur DOM prend en entrée un document XML et construit un arbre formé d’objets :

chaque objet appartient à une sous-classe deNode des opérations sur ces objets permettent de créer de nouveaux nœuds, ou de naviguer dans le document

= éditeurs XML, processeurs XSLT

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Document Object Model (DOM) 70

Passage de la forme sérialisée à la représentation DOM

Le document sérialisé est analysé pour créer une représentation arborescente :

le nœud racine est de type Document

les catégories syntaxiques (commentaires, balises, texte) se traduisent par différents types de nœuds (Comment, Element, Text)

les nœuds constituent un arbre qui reflète l’imbrication des éléments dans la forme sérialisée

Document Object Model (DOM) 72

Les types de noeuds DOM

Leaf

Processing Instruction

Text

CData Section Comment

Entity

Reference Element Document Document Type

Entity

Attribute TreeNode

Node

Data Character

Container

Notation

(19)

Types de noeuds DOM

Type de Nœuds Catégorie syntaxique XML Document document XML (racine) DocumentType type du document (DTD) ProcessingInstruction instruction de traitement

Element élément XML

Attribute attribut XML Entity déclaration d’entité

Table 2: Types de nœuds DOM

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Propriétés d’un noeud

Propriété Type

nodeType unsigned short nodeName DOMString nodeValue DOMString attributes NamedNodeMap

Table 4: Propriétés du type Node

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Document Object Model (DOM) 74

Types de noeuds DOM (suite)

Type de Nœuds Catégorie syntaxique XML EntityReference référence vers entité

Comment commentaire

CharacterData commentaire et section de texte

Text section de texte

CDataSection section CDATA

DocumentFragment fragment de document XML Notation notation

Document Object Model (DOM) 76

Propriétés d’un node (structure)

Propriété Type parentNode Node firstChild Node

lastChild Node

childNodes NodeList previousSibling Node nextSibling Node

Table 5: Propriétés du type Node

(20)

Programmation XML avec les APIs DOM et SAX

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Les API XML

L’API DOM :

Construit une représentation du document en mémoire sous forme d’arbre

Adaptée aux applications qui modifient ou traitent dans leur globalité un document.

L’API SaX :

Définit des triggers qui se déclenchent sur certaines balises.

Adaptée aux applications qui extraient de l’information d’un document

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Programmation XML avec les APIs DOM et SAX 78

Programmer avec XML

Les deux principales interfaces de programmation XML :

DOM (Document Object Model), basé sur une représentation arborescente

SaX (Simple API for XML), basé sur des déclencheurs

“événement/action”

Programmation XML avec les APIs DOM et SAX 80

DOM et SaX

Toutes les applications XML passent par une phase préalable d’analyse

Parseur SaX DOM Parseur

Document XML

Processeur XSLT Editeur XML

...

flux de données

Base de données Déclenchement

d’opérations

(21)

DOM : opérations du type Node

Résultat Méthode Paramètres

Node insertBefore() Node nouv, Nodefils Node replaceChild() Node nouv,

Nodeanc Node removeChild() Nodefils

Node appendChild() Nodenouv boolean hasChildNodes()

Node cloneNode() booleanprof

Table 6: Opérations du type Node

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Architecture SAX

Associer des événements aux balises : Document

XML

Fonctions

<ELT1> </ELT1> <ELT2> ...

Parseur SAX Evénements

Accumulateur Données

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Programmation XML avec les APIs DOM et SAX 82

DOM : Exemple de code

Ajoute

<adventure type="epic">&adventure1;</adventure>

avant le 4e élément du document :

var racine = myDocument.documentElement;

var enfants = racine.childNodes;

var el_nouv = createElement("adventure") ;

var ent_ref = createEntityReference("adventure1");

el_nouv.setAttribute("type", "epic");

el_nouv.appendChild(ent_ref)

insertBefore(el_nouv, enfants.item(3));

Programmation XML avec les APIs DOM et SAX 84

Les événements SAX

Un parseur SAX génère un événement à chaque fois qu’il rencontre

le début et la fin de document, le début et la fin d’un élément, une instruction de traitements un commentaire, ...

Les fonctions s’exécutent indépendamment = il faut leur faire partager une zone mémoire (« accumulateur »)

(22)

Les événements SAX: exemple

import java.io.*;

import org.xml.sax.*;

import org.xml.sax.helpers.*;

import org.apache.xerces.parsers.SAXParser;

public class Trace extends DefaultHandler { // début de document

public void startDocument() {

System.out.println("start document");

}

// fin de document

public void endDocument() {

System.out.println("end document");

}

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Exemple programmation SAX

// texte

public void characters(char[] ch, int start, int length){

System.out.println("character data, length " + length);

}

// procédure principale

public static void main(String[] args) { Trace t = new Trace();

SAXParser p = new SAXParser();

p.setContentHandler(t);

try { p.parse(args[0]); }

catch (Exception e) {e.printStackTrace();}

}

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Programmation XML avec les APIs DOM et SAX 86

Exemple programmation SAX

// balise d’ouverture

public void startElement(String uri, String localName, String qName, Attributes attributes) {

System.out.println("starting element: " + qName);

}

// balise de fermeture

public void endElement(String uri, String localName, String qName) {

System.out.println("end element: " + qName);

}

Programmation XML avec les APIs DOM et SAX 88

Exemple type : insertion dans une BD

À partir d’un flux XML contenant des films :

<FILMS>

...<FILM>

<TITRE>Alien</TITRE>

<ANNEE>1979</ANNEE>

<AUTEUR>Ridley Scott</AUTEUR>

<GENRE>Science-fiction</GENRE

<PAYS>USA</PAYS>

</FILM>

...

</FILMS>

(23)

Les événements

Début de document : connexion à la base et début de transaction

Balise FILM : création d’un enregistrement Film Balise TITRE : on affecte Film.titre

Balise ANNEE : on affecte Film.annee etc..

Balise /FILM : insertion de l’enregistrement dans la base, destruction de Film

Fin de document : fin de transaction et déconnexion de la base

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

XML = le modèle de données pour le Web

La technologie XML peut contribuer à tous les niveaux d’une application Web :

Modèle de données : entrepôts/BD XML, XML Schéma, XQuery

Pogrammation d’applications : XPath/XQuery (interrogation), DOM/SAX (programmation), XSLT (transformation)

Format d’échange entre applications : services Web (SOAP) Format de publication de données : XHTML, SMIL, SVG, RDF...

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Programmation XML avec les APIs DOM et SAX 90

XML comme modèle de données pour les applications Web

Un document XML

peut être échangé facilement (format ASCII) ;

permet de représenter pratiquement toute information structurée ;

n’est pas lié à un mode d’utilisation : chacun peut se définir ses propres « structures » ;

peut être stocké, transformé, interrogé “facilement”

Programmation XML avec les APIs DOM et SAX 92

Espaces de noms

(24)

Espaces de noms (namespace)

Un espace de noms XML (namespace) est une collection de noms d’éléments ou noms d’attributs (identifiée par un URI).

Utilisation: éviter les conflits de noms

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Règles d’attribution d’un espace de nom

Deux cas:

Noms qualifiés sans préfixe:

élémént: espace de nom définit par l’attributxmlnsde l’ancêtre le ’plus près’;

Noms qualifiés avec un préfixepre:

élémént et attribut: espace de nom définit par l’attribut xmlns:prede l’ancêtre le ’plus près’;

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Programmation XML avec les APIs DOM et SAX 94

Espace de noms: Exemple

<?xml version=’1.0’?>

<document>

<art:film xmlns:art=’http://www.pariscope.fr/’>

<com:acteur xmlns:com=’www.comedie.fr/:acteur’

com:nom=’Juliette Binoche’ />

</art:film>

</document>

Noms qualifiés Noms ’universels’

art:film http://www.pariscope.fr/:film com:acteur http://www.comedie.fr/:acteur

com:nom http://www.comedie.fr/:nom

Programmation XML avec les APIs DOM et SAX 96

Exemple 1

<?xml version="1.0"?>

<A>

<B/>

<C xmlns="http://a.b.c/">

<D/>

</C>

</A>

Document -

Element A

Element B

Element C http://a.b.c/

Element D http://a.b.c/

(25)

Exemple 2

<?xml version="1.0"?>

<p:A xmlns:p="http://a.b.c/">

<B attr1="val1"

p:attr1="val2"/>

<p:C/>

</p:A>

Document -

Element A http://a.b.c/

Element B

Attr attr1

val1

Attr attr1 http://a.b.c/

val2

Element C http://a.b.c/

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Exemple 4

<?xml version="1.0"?>

<A xmlns="http://a.b.c/">

<B/>

<B xmlns="">

<C/>

</B>

</A>

Document -

Element A http://a.b.c/

Element B http://a.b.c/

Element B

Element C

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Programmation XML avec les APIs DOM et SAX 98

Exemple 3

<?xml version="1.0"?>

<A xmlns:p="http://a.b.c/">

<p:B/>

<p:B xmlns:p="http://x.y.z/">

<p:C/>

</p:B>

</A>

Document -

Element A

Element B http://a.b.c/

Element B http://x.y.z/

Element C http://x.y.z/

Programmation XML avec les APIs DOM et SAX 100

Exemple 5

<?xml version="1.0" ?>

<A xmlns:p="http://a.b.c/"

xmlns:q="http://a.b.c/">

<p:B/>

<q:B/>

</A>

Document -

Element A

Element B http://a.b.c/

Element B http://a.b.c/

(26)

Exemple 6

<?xml version="1.0" ?>

<A xmlns="http://a.b.c/"

xmlns:vide="">

<B/>

<vide:B>

<C/>

</vide:B>

</A>

Document -

Element A http://a.b.c/

Element B http://a.b.c/

Element B

Element C http://a.b.c/

Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Références

Documents relatifs

 Une valeur peut être un entier seul (séquence à un élément) ou encore une collection de large documents XML (où chaque document est désigné par son nœud racine). 

 Tout objet d’une classe qui hérite de Pobjet est persistant.. Persistance

SQL (sigle de Structured Query Language, en français langage de requête structurée) est un langage informatique normalisé servant à exploiter des bases de données

SELECT DISTINCT ( ACCESSOIRE ) FROM UTLISATION WHERE ( SELECT COUNT ( DISTINCT ( TITRE DE NUMERO ) ) FROM UTILISATION GROUP BY ACCESSOIRE

Donnez des droits de consultation de toutes les tables de la BD biblio aux bibliothécaires ainsi que des droits de consultation, d’insertion sur les tables des emprunts,

C'est un ensemble de tables et de vues dans lesquelles sont stockées les descriptions des objets de la base, et qui sont tenues à jour automatiquement par le système de gestion de

En bas du formulaire, le bouton Visualisation produits permet d’afficher la liste des produits du fournis- seur ; le bouton Ajouter produits sert à afficher le formulaire Produits

La phase logique ou organisationnelle : dans cette phase, la base de données est re- présentée sous une forme logique plus proche de sa représentation réelle au