Extensible Markup Language ou XML est un langage permettant le balisage de documents. A l’origine est le SGML (Standard Generalized Markup Language) qui a été développé par IBM dans les années 70 et est devenu un standard ISO. Le principe de base du SGML est de dissocier la structure d’un document de sa présentation. SGML […]
Nous définirons un document XML comme un ensemble d’informations balisées ou « encapsulées » dans des tags décrivant leur contenu. Ces informations peuvent être un texte, un catalogue, des images, des données comptables dans ce cas précis,… Le terme de document XML est utilisé pour décrire une telle structure. Un exemple pour illustrer notre propos, […]
Nous voyons apparaître une structure hiérarchique. Très logiquement, « mémoire » se trouve hiérarchiquement au-dessus de « chapitre ». Un élément « mémoire » comporte un ou plusieurs élément(s) « chapitre(s) ». Nous obtenons une notion parent-enfant(s): un élément « chapitre » est enfant d’un élément « mémoire ». De cette représentation hiérarchique de XML […]
Pour être plus précis, nous indiquons que « ABC et XML » est le titre du mémoire, que « Explication de XML » est le titre du chapitre. En XML, nous utiliserons la notion d’« élément » et d’« attribut ». Les éléments sont: memoire et chapitre. Les attributs sont: titre_memoire qui est attribut de […]
Afin de déterminer le rôle de chaque composant et son niveau hiérarchique au sein d’un document XML, une validation est nécessaire. Un document XML peut être validé par une DTD ou bien par un schéma XML. Nous présenterons brièvement la DTD ayant choisi cette alternative pour la suite du développement de ce travail. Page suivante […]
Une Data Type Definition (DTD) est un document qui peut être externe au document XML, ou bien en faire partie intégrante. Une DTD est rédigée dans un formalisme et une syntaxe précise, définie par le W3C. Elle défini le vocabulaire du document XML, et décrit quels en sont les éléments, quels sont les attributs de […]
Elément est décrit dans une DTD par: . Les attributs peuvent être de différents types. – ID, IDREF: identificateurs uniques, qui peuvent être mis en relation par référence (IDREF). – LIST (ou ENUMERATION): choix d’attributs imposé. – ENTITY, ENTITIES: entité(s) déclarée(s) et non analysée de la DTD. – NMTOKEN, NMTOKENS: unité(s) lexicale nominale XML. – […]
Nous avons au fil du chapitre précédent décrit l’application de la méthode Activity Based Costing que nous souhaitons développer dans ce mémoire; dans ce chapitre, nous avons brièvement présenté XML. Nous relierons ces deux matières au sein de ce travail, en développant notre application ABC en utilisant les technologies XML du W3C. Ce choix est […]
Un des objectifs de ce travail est d’utiliser des solutions logicielles issues du monde du libre. Nous devons examiner les logiciels libres disponibles en matière de XML et les évaluer. Défini sommairement: un logiciel libre est livré en Open Source, c’est à dire avec son code source, la plupart du temps gratuitement, sans pour autant […]
L’intégralité de ce mémoire, de la recherche d’information à la rédaction sans oublier le traitement XML, sera réalisée sous l’ Operating System Linux en version Mandriva 2008. En partie rédactionnelle, nous utiliserons OpenOffice.org Writer, pour la réalisations de schémas: OpenOffice.org Draw, les saisies d’écran proviennent de Ksnapshot, sans oublier Mozilla Firefox comme navigateur Web, et […]
La création de la DTD et du fichier XML peut être réalisée avec un simple éditeur. Nous avons utilisé Kate, éditeur disponible sous Mandriva Linux. La validation de la syntaxe XML1.0 et de la conformité à la DTD est possible en ligne via une page de la Brown University. Nous voyons déjà apparaître une division […]
L’installation sous Linux de logiciels peu répandus révèle une caractéristique des Linux du début: la technique de « l’essai-erreur » est de mise, on travaille en ligne de commande dans une console, il manque toujours une librairie que l’on doit trouver en ligne, et qui quand elle est partiellement installée, réclame une autre librairie, etc. […]
Une première tentative a été menée avec un des logiciels de base du monde XQuery et XML: Saxon. Saxon développé par Michael Kay, est une suite comprenant un processeur XSLT2.0, un processeur Xpath2.0, un processeur XQuery 1.0, un processeur XmlSchema1.0 . Saxon est multi-plateformes, java, .NET . Saxon utilise des parseurs DOM et SAX qui […]
En 2004, Michael Kay après avoir quitté Software AG qui contribuait au développement de Saxon, a fondé la société Saxonica où il continue de développer Saxon. A partir de 2004 et Saxonica, Saxon 8 a été décliné en deux versions: SaxonB et Saxon SA. SaxonB est en « Mozilla Public Licence » qui est une […]
Face à ces déconvenues, les ressources temps étant limitées et trop de temps ayant été consacré à cette recherche partiellement vaine, la décision a été prise de renoncer à une solution libre, pour une suite commerciale afin de pouvoir continuer à aller de l’avant. Plusieurs solutions existent, celle qui paraissait être la plus attrayante « […]
XML est un éditeur complet dédié à XML. L’auteur en est la société roumaine SyncRO Soft. Outre un éditeur XML DTD, nous y trouvons des outils Xpath et XQuery avec fonction débogueur ( XML intègre SaxonSA) XSLT, XSL-FO et d’autres possibilités dont nous ne ferons pas usage comme XML Schema, Relax NG, SOAP; XML peut […]
Sans vouloir transformer ce chapitre en saga, nous revenons sur MxQuery. MxQuery est un outil XQuery issu d’un projet de l’ETH Zurich. Ce projet consiste à créer un « XQuery engine » nécessitant une faible mémoire afin de le porter sur des supports mobiles. Les participants de ce projet sont actifs dans le monde W3C. […]
Nous notons la remarque de Monsieur Fischer: « It seems that MXQuery is probably a fairly low-level solution to your problems ». N’étant pas à même de mesurer la portée de la remarque, nous en prenons note et poursuivons notre démarche. Page suivante : Echec de la solution libreRetour au menu : Elaboration d’une application […]
Pour conclure cette partie logicielle, nous avons dû renoncer à utiliser des logiciels libres par manque de connaissance probablement, par manque de documentation. Linux n’a pas simplifié la démarche, il est possible qu’un Operating System plus répandu aurait ouvert d’autres possibilités en matière d’installation logicielle. Nous utiliserons donc une solution commerciale: Oxygen. Page suivante : […]
En cette partie consacrée à la modélisation, nous devons transposer la description technique de la méthode Activity Based Costing en concepts XML, servant de base à la création du document XML reprenant les informations ABC. Nous l’avons déjà évoqué: XML a une structure hiérarchique. La modélisation des données se fera à l’aide d’un Entity Relationship […]
Nous représentons les données et les relations qui les lient au moyen d’un modèle Entity Relationship Diagram (ERD). Nous créerons des tables et attributs nécessaires; un attribut ayant un rôle index et noté « id_ … » sera créé pour chaque table. Nous prenons comme convention de ne pas utiliser, tant pour nommer les tables […]
Nous devons établir des relations entre ces tables de base du système. C’est-à-dire une relation entre « pcmn » et « charge_indirecte », entre « charge_indirecte » et « famille_cout », entre « famille_cout » et « activite », entre « activite » et « commande », entre « client » et « commande », […]
Comme nous l’avons évoqué plus haut, XML propose une représentation hiérarchique des données, qui forme un arbre XML. Un élément racine est le point de départ obligatoire d’une modélisation hiérarchique. Nous ne disposons pas parmi les tables du modèle ERD que nous venons de développer, d’élément racine (ou parent) de tous les autres éléments (tables). […]
Notre représentation hiérarchique ne serait pas complète sans les éléments ayant des parents multiples. Il s’agit des trois tables descendantes de plus de une table. Nous voyons que « composition_activite » a pour parent « activite » comme nous venons de le voir, mais également « famille_cout »: à une « famille_cout » correspond 1 […]
Ayant modélisé hiérarchiquement l’application ABC, nous devons la transposer sous forme de document XML. Lors d’une première étape, nous créerons la DTD qui comme nous l’avons vu plus avant, validera notre document XML. Ensuite, la seconde étape consistera à élaborer le document XML correspondant, et à y saisir de l’information. Page suivante : La DTDRetour […]
Dans la DTD, nous devons traduire les tables issues des modélisations ERD et Hiérarchiques. XML retient la notion d’élément, nos tables deviendront des éléments. Le terme d’attribut restera, un élément comportant des attributs, tout comme une table comporte des attributs. Hormis le fait de créer des éléments et leurs attributs, nous devons également définir dans […]
En examinant le modèle hiérarchique, nous distinguons que les tables se répartissent en quatre « colonnes » distinctes, qui sont quatre relations parent/enfants d’éléments. Ces quatre relations sont reliées entre elles par les trois éléments ayant deux parents, « mesurage », « composition_activite » et « pcmn » comme nous l’avons vu dans la modélisation […]
L’imbrication d’éléments consiste à inclure l'(es) élément(s) enfant(s) dans l’élément parent. Le défaut de cette méthode est une lourdeur du document due à la redondance de l’information. XML est par nature verbeux, ce n’est donc pas anormal. Nous imbriquerons les quatre « colonnes » du modèle hiérarchique. – L’élément racine (vide) « ABC » inclut […]
Les pointeurs utilisent généralement les types ID IDREF(S) pour mettre des éléments en relation. Pour établir la relation entre les éléments pointés par les attributs ID IDREF(S) situé dans des éléments distincts, l’outil de requête compare la valeur de ces attributs. Exemple: si l’attribut IDREF d’un élément « livre » prend pour valeur « memoire1 […]
Nous devons choisir l’ordre dans lequel apparaîtront ces éléments imbriqués. Nous optons une représentation lisible. A savoir: partir de client et de sa commande qui fait l’objet de mesurages ayant trait à des activités constituées de familles de coûts elles mêmes composées de charges indirectes. Page suivante : La DTD en pratiqueRetour au menu : […]