XPath. Cours Document et Web Sémantique. Nicolas Malandain et Nicolas Delestre. Path - v / 15

Documents pareils
Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

DMP1 DSFT des Interfaces DMP des LPS Annexe : complément de spécification sur l impression des documents à remettre au patient

Outils logiciels pour l'ingénierie documentaire

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

OCL - Object Constraint Language

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Approche Contract First

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Les bases de données

Introduction à MATLAB R

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Utiliser un tableau de données

BD et XML : Exercices

SQL Parser XML Xquery : Approche de détection des injections SQL

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

OpenText StreamServe Cours Customer Communication Management L essentiel

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

L exclusion mutuelle distribuée

OASIS Date de publication

Acronymes et abréviations. Acronymes / Abbréviations. Signification

INTRODUCTION À PYRAMID Gaël Bearstech. Crédits: Blaise Laflamme

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

La base de données XML exist. A. Belaïd

Devenez un véritable développeur web en 3 mois!

4. SERVICES WEB REST 46

Générer du code à partir d une description de haut niveau

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Mysql avec EasyPhp. 1 er mars 2006

Apprentissage Automatique

Systèmes d information et bases de données (niveau 1)

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Publication sur serveur distant

Une introduction à Java

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Programmation Internet Cours 4

Chapitre 1 Qu est-ce qu une expression régulière?

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Eole - gestion des dictionnaires personnalisés

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

! Text Encoding Initiative

Plan... as Architecture des Systèmes d Information. Constats. as Architecture des Systèmes d Information

Java et les bases de données

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

TP1 : Initiation à l algorithmique (1 séance)

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

STAGE IREM 0- Premiers pas en Python

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

Découverte de Python

Sommaire. 2 LINQ to Objects

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Plateforme PAYZEN. Définition de Web-services

Learning Object Metadata

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Programme Compte bancaire (code)

Object Constraint Language (OCL)

Production de documents avec XSLT. Production de documents p.1/??

Vincent Augusto

Évaluation d une architecture de stockage RDF distribuée

Initiation à la Programmation en Logique avec SISCtus Prolog

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Problème physique. CH5 Administration centralisée

bbc Launch Pad Juillet 2011 Version 10.0

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Grammaires d unification

Raisonnement probabiliste

Aide-Mémoire unix. 9 février 2009

TD 1 - Structures de Traits et Unification

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

SP1 : Intégration d'une vidéo dans une mardi 21/01/2014. page web, fonction du format vidéo et 3 mercredi 22/01/2014

Intelligence Artificielle Planification

Rappel sur les bases de données

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

TABLEAU CROISE DYNAMIQUE

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Excel avancé. Frédéric Gava (MCF)

Document Object Model (DOM)

TP3 : Manipulation et implantation de systèmes de fichiers 1

Master d Informatique Corrigé du partiel novembre 2010

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

Mobyt Intégration par Webservice TABLE DES MATIERES

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

Création d objet imbriqué sous PowerShell.

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Transcription:

XPath Cours Document et Web Sémantique Nicolas Malandain et Nicolas Delestre Path - v1.2.1 1 / 15

XPath : un langage d adressage XPath est un langage non-xml permettant de sélectionner des nœuds dans l arborescence d un document XML. Les 7 types de nœuds d un document XML : le nœud racine, les nœuds d élément, les nœuds de texte, les nœuds de commentaire, Remarques : les nœuds d attributs, les nœuds d instruction de traitement, les nœuds d espace de noms. le nœud racine / contient tout le document XML et donc inclut l élément racine les appels d entités, et les sections CDATA ne sont pas adressables XPath - v1.2.1 2 / 15

Représentation graphique du XML du TD / racine attribut element commentaire Informations du prologue La version XML L'encodage... contratsdetudes texte contenu annee contrats ecs enseignants 2015-2016...... enseignant... Internes au département ID departement url nom prenom NicolasDelestre ASI http://... Delestre Nicolas XPath - v1.2.1 3 / 15

Syntaxe des chemins XPath Un chemin est une suite de termes sélectionnant un nœud ou ensemble de nœuds. Les termes sont séparés par /. Chaque terme sélectionne un nœud, le terme suivant s y applique pour ajouter une nouvelle condition de sélection. Syntaxe générale d un terme indicateur de relation::filtre[prédicat1][prédicat2]... Exemple descendant::enseignant[position()=2] Sélectionne le deuxième élément du type étudiant descendant du nœud courant XPath - v1.2.1 4 / 15

Indicateurs de relation (Axes) Par rapport au nœud courant : self lui-même child sélectionne les nœuds fils descendant sélectionne les nœuds descendants descendant-or-self équivalent à descendant et self parent sélectionne le nœud racine ou le nœud d élément parent ancestor sélectionne les ascendants dans l ordre inverse d apparition dans le document ancestor-or-self équivalent à ancestor et self following-sibling sélectionne les nœuds frères suivants preceding-sibling sélectionne les nœuds frères précédents following tous les nœuds suivant preceding tous les nœuds précédents attribute sélectionne ses attributs namespace sélectionne les espaces nominaux attachés XPath - v1.2.1 5 / 15

Filtres (Tests de nœuds) Filtres pouvant suivre l indicateur de relation (axe) : nom d élément sélectionne le ou les éléments reliés au nœud courant par la relation indiquée nom d attribut sélectionne l attribut du nœud courant (axe attribute) * sélectionne les nœuds d éléments de même nature (axe) prefixe :* sélectionne les nœuds d éléments ayant le même préfixe d espace de noms node() sélectionne tous types de nœuds comment() sélectionne les nœuds de type commentaire processing-instruction(nom ) sélectionne les instructions de traitement, si le nom n est pas spécifié les sélectionne toutes text() sélectionne les nœuds textuels fils du nœud courant XPath - v1.2.1 6 / 15

Prédicats and, or et not() combinaison de prédicats opérateurs =,!=, <, >, <=, >= ; les termes de ces opérateurs peuvent être des nombres, des chaînes de caractères, des expressions arithmétiques (+, -, *, div, mod), ou encore des fonctions @attribut vérifie la présence de l attribut élément vérifie la présence de l élément not(élément ) vérifie l absence de l élément XPath - v1.2.1 7 / 15

Fonctions sur les nœuds last() : position du dernier nœud dans le contexte courant position() : numéro d ordre du nœud courant dans la liste de nœuds contextuelle count(liste-nœuds ) : nombre de nœuds inclus dans la liste de nœuds (expression XPath) id("liste-identifiants ") : éléments contenants un des identifiants présents dans la liste local-name(liste-nœuds ) : nom (string) du premier nœud rencontré dans le document appartenant à la liste, s il n y a pas d argument nom du nœud courant. Le nom est retourné sans préfixe namespace-uri(liste-nœuds ) : idem mais retourne uniquement le préfixe name(liste-nœuds ) : idem mais retourne le nom complet XPath - v1.2.1 8 / 15

Fonctions sur les chaînes de caractères string(objet ) : retourne l objet sous forme de chaîne de caractères (ex : s il s agit d un élément, convertit tout le contenu de l élément) concat(ch1, ch2,...) : retourne la concaténation des chaînes de caractères starts-with(ch1, ch2 ) : est évalué à vrai si ch1 commence par ch2 contains(ch1, ch2 ) : est évalué à vrai si ch1 contient ch2 substring-before(ch1, ch2 ), substring-after(ch1, ch2 ) : retourne la partie de ch1 située avant/après ch2... XPath - v1.2.1 9 / 15

Fonctions booléennes boolean(objet ) : retourne vrai si l objet est un nombre non nul, une liste non vide de nœuds, ou une chaîne de caractères non vide true() : retourne toujours vrai false() : retourne toujours faux... XPath - v1.2.1 10 / 15

Fonctions numériques number(objet ) : retourne l objet sous forme de nombre sum(liste-nœuds ) : retourne la somme des valeurs des nœuds floor(nbr ), ceiling(nbr ), round(nbr ) : fonctions d arrondis XPath - v1.2.1 11 / 15

Quelques abbréviations self::node(). parent::node().. child::nom nom /descendant-or-self::nom //nom attribute::nom @nom [position()=x ] [x ] Tout chemin commençant par / est absolu (commence à la racine) //@id sélectionne tous les attributs id du document.//@id sélectionne tous les attributs id à partir du nœud courant XPath - v1.2.1 12 / 15

Jokers et sélection multiple Jokers * tout nœud d élément ne sélectionne pas les attributs, les nœuds de texte, les commentaires ou les instructions de traitement @* tout nœud d attribut Sélections multiples L opérateur permet de sélectionner plus d un nœud cheminxpath1 cheminxpath2... Exemple : /personne/nom /animal/nom XPath - v1.2.1 13 / 15

Un outil sous Linux xmllint permet de faire de la validation (dtd, xsd, relaxng), options : dtdvalid, schema, relaxng noout, xmlout permet de rechercher des nœuds via des XPath, option : xpath propose un mode interactif (option shell), commandes : cat, cd, dir, ls, etc. XPath - v1.2.1 14 / 15

Quelques références XML in a Nutshell, O Reilly (Elliotte Rusty Harold & W. Scott Means) Introduction à XML, O Reilly (Erik T. Ray) XML langage et applications, Eyrolles (Alain Michard) XPath - v1.2.1 15 / 15