Simple API for XML
# Simple API for XML

Simple API for XML ou SAX est une interface de programmation pour de nombreux langages permettant de lire et de traiter des documents XML.

L’API SAX est originellement spécifique au langage de programmation Java qui l'utilise pour lire une portion ou la totalité d'un document XML. Elle a pu par la suite être adoptée par la plupart des langages de programmation actuels.

## Origine de l'API SAX

L'API SAX est développée pour la première fois par le développeur David Megginson en janvier 1998. Il publie dans le groupe de discussion (mailing list) xml-dev la première version de cette API, SAX 1.0, qui a eu un bon retour de la part des membres de ce groupe de discussion et un bon écho chez les industriels de l'informatique et les développeurs de logiciels. Depuis l'API SAX a évolué en dehors de son développeur initial et on en est aujourd'hui à la version SAX 2.0 qui est disponible depuis 2004.

## Petite comparaison entre DOM et SAX

Les méthodes SAX et DOM adoptent chacune une stratégie très différente pour analyser la syntaxe des documents XML, elles s'utilisent donc dans des contextes différents. DOM charge l'intégralité d'un document XML dans une structure de données, qui peut alors être manipulée puis reconvertie en XML. Cependant pour cela, il faut que la taille de la structure représentant le document XML ne soit pas supérieure (ou pas trop) à ce que peut contenir la mémoire vive. La méthode SAX apporte alors une alternative dans les cas de figure où les documents XML sont de taille très importante (on parle alors d'adaptation au volume de données, en anglais scalability).

## L'API SAX techniquement

SAX traite les documents, élément par élément, au fur et à mesure qu'ils sont rencontrés. Pour chaque élément (balise, commentaire, texte), la fonction de rappel correspondante est appelée. C'est pourquoi ce mode d'interprétation des documents XML utilise moins de mémoire, car SAX n'accumule aucune donnée dans une structure. Cependant le programmeur peut très bien recueillir les données qui l'intéressent dans les structures de son choix, ou bien réaliser directement des opérations correspondant aux éléments rencontrés dans le document.

## Livres sur l'API SAX

* (en) W. Scott Means et Michael A. Bodie, The Book of Sax : The Simple Api for Xml, 2002, 312 p. (ISBN 978-1-886411-77-7).
* (en) Elliote Rusty Harold, Processing XML with Java : A Guide to SAX, DOM, JDOM, JAXP, and TrAX, Addison-Wesley Professional, 2002, 1120 p. (ISBN 978-0-201-77186-2, lire en ligne).
