Gagne de la cryptomonnaie GRATUITE en 5 clics et aide institut numérique à propager la connaissance universitaire >> CLIQUEZ ICI <<

La DTD en pratique

Elément racine. La première ligne de la DTD déclare l’élément racine qui est « ABC » ainsi que les éléments imbriqués dans ABC Plusieurs instances de ces éléments sont autorisées dans le document XML du fait de la présence du signe + suivant chacun des éléments déclarés (client+,..etc..) Elément « client » . L’élément « […]

Le document XML

Nous rédigeons le document XML. Comme nous l’avons déjà évoqué plus haut, la DTD doit être respectée scrupuleusement. Si au lieu de saisir « pcmn », nous saisissons « pmcn », le parseur décèlera l’erreur qui sera une erreur bloquante, c’est à dire qu’aucune opération n’est possible tant qu’il n’y a pas correction. Des deux […]

Les données du document XML

Disposant de la structure du document XML, nous devons y saisir les données comptables que nous déclarions au premier chapitre, ainsi que quelques mesurages et autres données client. Nous distinguons deux types de données au sein du document XML: – les données relevant de la pratique de l’entreprise – les données nécessaires à l’analyse ABC. […]

Les données d\’analyse ABC

Ce sont les données des éléments et , et . Les activités Nous y transcrivons activité par activité quelles familles de coût les composent, et dans quelle proportion. Cela a été défini dans le chapitre consacré à la méthode ABC, et synthétisé par un tableau que nous reproduisons. Pour le premier élément traitant de l’activité […]

Les données d\’exercice de l\’entreprise

Ces données concernent les clients, commandes, mesurages et charges directes et indirectes que nous imputons. Les clients et commandes. Nous avons ouvert trois éléments client. Le premier élément client  a pour attributs: Ce client a passé une commande, que nous lisons dans l’élément commande qui est inclu (dans l’élément client  que nous venons de décrire). […]

Chapitre 6 XQuery, outil de requête

Avant de passer en la partie du mémoire consacrée aux requêtes portant sur le document XML, nous présentons ici XQuery, outil de requête qui sera utilisé. Nous en brossons un bref historique et tentons d’en décrire le fonctionnement, une compréhension du modèle interne pouvant aider à son utilisation. Nb.: nous utiliserons des termes techniques en […]

Historique

Le format XML ayant été largement adopté, une profusion de documents XML, bases de données XML sont apparus. Il est devenu nécessaire de disposer d’un outil permettant d’extraire des données de ces fichiers XML, présenter des résultats, effectuer des recherches au sein de bases de données XML, etc. Le W3C est à l’origine de cette […]

L\’influence de Xpath

Xpath, une recommandation du W3C datant de novembre 1999, était déjà largement utilisé par la communauté XML. Xpath est un outil de recherche simple pour documents XML, permettant la navigation dans le document. L’influence de Xpath se trouve dans l’intégration des « path » au sein de XQuery, un parcours de l’arbre qui retourne les […]

L\’influence de XML Schema

XML SCHEMA est un langage qui crée des schémas de validation pour documents XML. Il comporte de nombreux types (de données), permet d’en créer d’autres. Les données d’un document XML et les types issus du schéma qui leur sont appliqués sont le « Post-Schema Validation Infoset » ou « PSVI ». Le design de XQuery […]

Autres sources

Plusieurs « query languages » existants ont influencé XQuery, des membres du « query work group » ayant auparavant contribué au développement de ces langages. Le plus proche parent de XQuery est QUILT , une proposition de membres du « query work group ». La proposition du langage QUILT comportait un des composants essentiels de […]

XQuery recommandation W3C

Le 23 janvier 2007, soit après neuf années, XQuery est devenu une recommandation du W3C . Page suivante : Fonctionnement de XQueryRetour au menu : Elaboration d’une application de la méthode Activity Based Costing utilisant les technologies XML

Fonctionnement de XQuery

Notre décrivons de façon très simplifiée le processus de traitement de XQuery. Le W3C divise le processus que nous résumons en deux parties: – l’une assimilée à une démarche « externe » à XQuery, traitant le document XML – la seconde « interne » et coeur de XQuery traitant la requête XQuery. Notons que ces […]

Traitement « externe »

Un input, le document XML sur lequel porte la requête XQuery, est traité par un parser. Lors du parsing est créé le « XML Information Set » modélisant le document sous forme d’une hiérarchie de « nodes ». Les « nodes » sont identifiés et notés dans un « document order » complété à chaque […]

Traitement « interne »

XQuery procède ensuite à deux phases. Un input qui est la requête XQUERY, est parsé durant la « phase d’analyse statique ». Si l’ « analyse statique » valide la requête, intervient la « phase d’évaluation dynamique », au cours de laquelle les valeurs des expressions sont traitées . Enfin intervient la sérialisation (la seconde […]

Le processeur XQuery

XQuery a un processeur, solution logicielle qui effectue l’ « analyse syntaxique », l’ « évaluation dynamique » et l’exécution de la requête. Ce processeur se charge également de « parser » le document XML, en créer le « XML Infoset » et le « XQuery data model ». Le processeur retourne un résultat soit […]

Le datamodel

Le data model est une représentation formelle des données d’un document XML qui fera l’objet d’un traitement XQuery. XQuery est défini comme une transformation d’une instance du query data model en une autre instance du data model. Cette représentation défini chaque donnée, tant en position au sein du document qu’en termes de type. Cette définition […]

Les Expressions XQuery

L’outil essentiel de XQuery pour l’évaluation est l’ expression. Plusieurs catégories d’expressions existent. Nous ne les citons pas toutes, simplement celles qui seront utilisées pour la suite de ce travail. – Path: une expression path permet de naviguer dans le document sur lequel porte la requête. – Comparaisons: =,, !, etc permet de comparer les […]

Expression Path

Une « expression path » permet de naviguer dans le document sur lequel porte la requête. La fonction d’appel « doc » retourne le « document node » du document XML à transformer. doc (“/home/Memoireulb/abc.xml”) //ABC/client/commande Le « document node » de abc.xml est retourné à l’appel de la fonction « doc », « premier […]

Les requêtes FLWOR

XQuery utilise des variables, qui sont précédées du signe $. Ex: $var. Une variable reçoit une valeur précise lors de l’évaluation XQuery. FOR: associe une valeur à une variable de façon itérative. FOR suivi d’un PATH comme dans l’exemple suivant: for $in in doc (“/home/Memoireulb/abc.xml”)//ABC/activite associe à la variable $in de façon itérative une « […]

Chapitre 7 Requêtes XQuery

Dans cette partie consacrée aux requêtes XQuery, qui devront fournir des résultats ABC, nous nous proposons de présenter notre travail de façon graduelle. Nous débuterons par une requête élémentaire et tenterons de terminer en fin de chapitre par une requête fournissant un résultat ABC. Nous utiliserons des requêtes de type FLWOR. Page suivante : Produire […]

Produire une liste de clients

Une première requête simple consiste à produire la liste des clients. Dans la première ligne, nous déclarons la variable « client » en la faisant précéder par le signe $, soit « $client ». La variable « $client » est précédée de la clause FOR. FOR lance une itération qui permet à la requête FLWOR […]

Les liens

Nous devons pouvoir établir des liens entre éléments du document XML, liens équivalents à ceux définis dans les représentations par modèle hiérarchique ou ERD. But de la requête: afficher pour chaque « activite » les « familles_cout » qui la composent. Un lien est à établir entre les « éléments » « activite » et […]

Effectuer des opérations arithmétiques

Nous devons effectuer, pour obtenir des résultats ABC, des opérations de calcul. Ce sont des opérations élémentaires, sommer, multiplier et diviser. – Sommer fait usage de la fonction « SUM », qui est une fonction d’agrégation portant sur une séquence de résultats. – La multiplication est liée à l’opérateur « * » – La division […]

Sommer les charges

Cette requête devrait nous retourner la somme des « montant_htva_total ». Nous reproduisons le fragment de document XML ci-dessous. La requête: Cette requête comporte une erreur. Nous la présentons car le résultat, qui n’est pas celui attendu, illustre très bien la notion de séquence de résultats. Fonctionnement de la requête. La variable « $chargeind » […]

Calculer le coût d\’une unité d\’oeuvre (d\’activité)

Dans cette nouvelle requête, nous voulons calculer le coût d’une unité d’oeuvre pour une activité déterminée. Nous choisissons l’activité5, « act5_production ». La démarche suivie. 1) Calculer le coût total de l’activité choisie. – Filtrer les éléments « activite ». – Les lier aux éléments « famille_cout ». – Lier les éléments « famille_cout » […]

Calculer le coût indirect d\’une commande déterminée

Nous souhaitons obtenir le coût indirect pour une commande précise. La démarche suivie. Nous réutilisons la démarche précédente, mais le point de départ est une commande choisie. 1) Sélectionner une commande et calculer le coût total des activités utilisées. – Filtrer les éléments « commande ». – Sélectionner les éléments « activite » utilisés par […]

Calculer le coût indirect de la commande « com003 »

Nous traiterons l’exemple qui consiste à afficher le coût indirect de la commande dont la valeur de « id_commande » est « com003 ». Nous reproduisons le fragment du document XML ci-dessous. Nous utilisons comme base la requête précédente de calcul d’une unité d’oeuvre pour une activité donnée. Nous y avons ajouté le prédicat nécessaire […]

IF THEN ELSE

Lorsque nous examinons les mesurages de « com003 », nous voyons qu’ils sont deux. Le premier 42 unités (kilomètres) pour l’activité4 (transport). Le second 2 unités (heure_production) pour l’activité5 (production). Afin que ces deux activités soient traitées individuellement, nous avons utilisé IF THEN ELSE. Nous avons 7 activités qui doivent être traitées individuellement, et devons […]

Les « function »

En procédant de la sorte, nous obtenons un résultat différent, mais au prix d’une requête longue (121 lignes) et complexe à lire. Nous utiliserons les « functions » ou fonctions proposées par XQuery afin d’alléger le code. Le bloc suivant calculant la somme des mesurages pour une activité se répète à sept reprises. Nous le […]

Vérification du résultat

Nous avons à nouveau souhaité vérifier le résultat. Ayant déjà vérifié le coût d’une unité d’oeuvre pour l’activité5, nous vérifions celle de l’activité 4. Commande « com003 » utilise 42 unités d’oeuvre de l’activité4 (mesurage « mes022 »). La somme de tous les mesurages se rapportant à l’activité4 est de 483 unités d’oeuvre. Nous obtenions […]