Introduction

1 XML : aussi pour programmer

XML est un standard pour représenter des informations. Il est un support pour mémoriser des informations, mais aussi pour échanger ces informations. Définir des schémas bien construits est nécessaire, bien sûr, mais il faut aussi des outils performants pour traiter ces informations.

Selon le type et le volume des données et selon le contexte de traitement, plusieurs mécanismes sont disponibles :

Dans ce chapitre, nous allons nous intéresser au dernier cas. Nous chercherons à répondre à la question suivante : comment exploiter des ressources XML dans le cadre d'applications Java ou PHP ? En effet, XML est présent à tous les niveaux d'une application : fichiers d'initialisation et de paramétrage, échange d'informations entre services web, échange avec le client (AJAX), accès à des données, etc. Il convient donc d'être capable de choisir l'outil adapté en prenant en compte l'espace mémoire occupé, le type de traitement à effectuer, les temps de réponse attendus, etc.

2 API et langages de programmation

Pour cette présentation, nous allons nous appuyer sur deux manières très classiques de programmer avec XML : Document Object Model (DOM, section DOM, utilisation en PHP et en Java) d'une part et Simple API for XML (SAX, section SAX) d'autre part. Le premier propose des structures de données en arbre n-aire, très classiques, selon un standard indépendant du langage de programmation. Le second est une API demandant un style de programmation particulier : la programmation événementielle. Nous étudierons les caractéristiques de ces méthodes aussi bien dans le cadre de Java que dans celui de PHP. Nous aborderons aussi les avantages et les inconvénients de chacun selon le contexte d'utilisation.

3 D'autres API ?

Nous terminerons ce chapitre par le reste ! Plus exactement, nous évoquerons, très succinctement, sous la forme d'un tour d'horizon, différentes autres "API" pour traiter XML dont essentiellement : JDOM ([JDOM]) et SimpleXML ([S-XML]).

4 Exemple "fil-rouge"

Afin de présenter les différentes API (les classes présentes dans DOM, les méthodes pour les manipuler, événements SAX, etc.), nous allons utiliser un même exemple "fil-rouge". Notre document XML de référence (ci-contre) décrit un auteur de la littérature. Ici, nous présentons Isaac Asimov et trois de ses oeuvres.

Exemple de base aux exemples

Ce document, structuré en mémoire, donnera l'arbre ci-dessous. Cet arbre servira de base pour illustrer les différentes classes du standard DOM présentées dans la suite de ce chapitre. Les différents codes graphiques de cet arbre sont les suivants :

Exemple de base aux exemples

5 Descriptif pédagogique complémentaire

5.1 Pré-requis

Pour bien aborder ce chapitre, il est nécessaire d'avoir les pré-requis suivants :

  • ♥♥♥ - Syntaxe XML
  • ♥♥ - DTD
  • ♥ - XPath
  • ♥♥♥ - Algorithmique de base
  • ♥♥ - Algorithmique avancée (récursivité)
  • ♥ - Programmation événementielle
  • ♥ - Programmation Client/Serveur
  • ♥♥ - Programmation Orientée Objet
  • ♥♥♥ - Structures de données en arbre
  • ♥♥ - Structures de données classiques (listes, tableaux associatifs, etc.)
  • ♥♥♥ - Langage PHP 5
  • ♥♥♥ - Langage Java

Légende :

  • ♥♥♥ - bonne maîtrise ;
  • ♥♥ - connaissance des bases ;
  • ♥ - quelques notions.

5.2 Connaissances et compétences

Cet enseignement a pour objectifs que l'étudiant soit capable d'aborder diverses architectures logicielles et divers environnements de programmation utilisant XML. Ils seront capables de choisir les bons outils de programmation en fonction du contexte de développement, des contraintes techniques et des contraintes d'utilisation. Pour cela, il devra maîtriser correctement les principaux outils pour programmer avec XML et être capable de choisir, en le justifiant, le plus adapté au contexte.