Article de référence | Réf : H6008 v1

Approche semi-structurée pure
XML et interopérabilité des systèmes - Applications en Java 1.5 et PHP 5.0

Auteur(s) : Max CHEVALIER, Karen PINEL-SAUVAGNAT

Date de publication : 10 févr. 2010

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

RÉSUMÉ

L'interopérabilité des systèmes (échange d'informations) se confronte aujourd'hui à l'hétérogénéité des architectures des systèmes d'information. En effet, plus l'hétérogénéité est importante, plus l'échange d'informations devient complexe. Dans ce contexte, XML peut simplifier les échanges d'information du fait de son format même (texte brut) et de l'organisation des données (structuration sémantique des données). Dans cet article, différentes solutions permettant de gérer les données issues d'un document XML à des fins d'exploitation, à savoir DOM, SAX, XSL-T, XQuery ou encore les bases de données XML natives, sont présentées. Les exemples fournis reposent sur les langages Java et PHP.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Max CHEVALIER : Maître de conférences en Informatique, Université de Toulouse, UMR 5505

  • Karen PINEL-SAUVAGNAT : Maître de conférences en Informatique, Université de Toulouse, UMR 5505

INTRODUCTION

L'interopérabilité des systèmes vise à permettre une communication simplifiée entre les systèmes, afin de faciliter les échanges. Pour réaliser une telle interopérabilité, surtout dans un contexte hétérogène, XML (eXtensible Markup Language) [H 7 148] [H 3 500] s'impose aujourd'hui comme format d'échange, puisqu'il est indépendant des processus qui le produisent et l'utilisent. Il permet de structurer sémantiquement les données, et de rendre le contenu indépendant de toute mise en forme.

Si XML résout de nombreuses problématiques liées à l'échange de données, d'autres points relatifs à la gestion des contenus échangés sont à considérer. Quelques pistes sont fournies dans [H 3 502]. Notre but est ici de détailler les différents accès possibles aux données XML, en fonction des traitements que l'on souhaite réaliser.

L'accès aux données peut se faire via des outils de parcours de documents XML (parseur) de type DOM (Document Object Model) ou SAX (Simple API for XML), via un langage de transformation tel que XSL-T (eXtensible StyleSheet Language Transformation) ou encore directement via des requêtes XQuery. Le choix de l'accès doit bien sûr se faire en fonction des traitements nécessaires sur les documents, mais aussi en fonction du mode de stockage choisi.

À partir d'un cas d'étude exposé dans la partie 1 du document, nous détaillons trois solutions envisageables pour le stockage et le traitement de données provenant d'un document XML échangé entre deux systèmes (on suppose que la structure du document est connue).

La première serait d'utiliser une approche structurée pure : on stockerait les données XML dans des tables relationnelles, la transformation XML-relationnel se faisant via des approches de type événementiel (SAX), hiérarchique (DOM), ou par transformation (XSL-T) (partie 2).

La seconde serait d'utiliser une approche semi-structurée (XML) pure, et l'accès aux données se ferait directement via des requêtes XQuery (partie 3).

La dernière serait enfin d'adopter une approche mixte (base de données relationnelle avec type natif XML), dans laquelle l'accès aux documents XML utiliserait la puissance des bases de données relationnelles, sans dénaturer les documents, contrairement à la première solution (partie 4).

Pour chacune de ces solutions, nous fournissons des exemples d'implantation reposant sur les langages Java 1.5 et de PHP 5.0.

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h6008


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

3. Approche semi-structurée pure

3.1 Principe de fonctionnement

Dans ce type d'approche, soit les documents XML sont stockés dans une BD XML native, soit directement sur le système de fichiers.

Les possibilités offertes par le premier cas dépendent fortement de la BD XML native considérée. La plupart d'entre elles (comme Berkeley DB XML, eXist ou Xyleme Zone Server) permettent l'interrogation des données stockées via XQuery ou un langage propriétaire.

Afin de rester le plus « généraliste » possible, nous détaillerons ici le cas où les documents XML sont stockés directement sur le système de fichier. L'extraction des informations qu'ils contiennent est alors faite directement via XQuery.

Dans le cadre de notre application, outre les fichiers XML de facture que l'on souhaite traiter, nous disposons d'un fichier XML contenant les descriptions des clients, ainsi que d'un fichier XML contenant les descriptions des produits.

Nos besoins peuvent être traduits de la façon suivante en XQuery :

  • prix de vente moyen de l'article X (PXCC) :

    let $k:= (

    for $i in doc('facture.xml')/factures/facture//ligne[refArticle='PXCC']

    return {$i/prixUHT+ $i/prixUHT*$i/TVA div 100}

    )

    return avg($k)

  • total des commandes du client Y (C005) sur l'année A (2006) :

    let $k:= (

    for $i in doc('facture.xml')/factures/facture[starts-with(@date,"2006") and client/@num='C0005']//ligne

    return {($si/prixUHT + $i/prixUHT*$i/TVA div 100) * $i/qte}

    )

    return sum($k)

  • noms des clients ayant commandé le produit X (FECS) :

    for $i in doc('facture.xml')/factures/facture[.//refArticle='FECS']/client,

    $j in doc('client.xml')/clients/client

    where $i/@num=$j/@num

    return $j

Nota

on trouvera de plus amples informations concernant XQuery dans .

Ces requêtes XQuery peuvent être exécutées directement sur les fichiers à la ligne de commande via des outils tels que Saxon, XQEngine ou XQuark Fusion, ou bien être encapsulées dans des langages hôtes....

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Approche semi-structurée pure
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - Oracle Database 11g XML DB -   Technical Overview.  -  An Oracle White Paper (2007) http://www.oracle.com/technology/tech/xml/xmldb/Current/xmldb_11g_twg.pdf

  • (2) -   XML Query (XQuery) support in Oracle database 10g release 2.  -  An Oracle White Paper (2005) http://www.oracle.com/technology/tech/xml/xquery/pdf/XQuery10gR2v4_1.pdf

  • (3) -   Oracle XML DB Developer's guide. 10g Release 2 (10.2)  -  http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/toc.htm

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS