XML pour les sites Internet Les langages XML sont particulièrement bien adaptés aux sites Internet aussi bien pour leur conception que pour leurs mécanismes propres. Les langages et outils pour les manipuler sont maintenant performants et au point : langages 3G tels que Java ou .Net, langages de script tels que PHP v4 ou v5, éditeurs de documents,… XHTML plutôt que HTML Le langage HTML est antérieur aux langages XML et il n’en a pas la rigueur. Il s’en suit que les navigateurs ont tous été contraints de développer des stratégies complexes pour interpréter les codes HTML mal construits. La compatibilité en pâtit et le rendu d’une page HTML varie d’un navigateur à l’autre au point de risquer d’en altérer aussi les fonctionnalités. HTML XHTML <html> <head>…</head> <body> … <img height=120 src="photo.gif"> … <br> … </body> </html> <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML … > <html xmlns="http://www.w3.org/1999/xhtml"> <head>…</head> <body> … <img height="120" src="photo.gif"/> … <br/> … </body> </html> Il existe maintenant une version XML du HTML que l’on appelle XHTML. Les recommandations du consortium W3C à son sujet sont précises : elles n’autorisent pas les simplifications que l’on pouvait se permettre en HTML. Une page XHTML est donc un document XML utilisant un langage clairement spécifié. Un programme de validation peut y être appliqué pour s’assurer de sa conformité parfaite. Développer un navigateur devient plus simple car il ne peut pas y avoir de mauvaise surprise. Plus de fiabilité, voilà ce qu’apporte un langage XML. © <agenceXML> 2007 http://www.agencexml.com [email protected] Pages dynamiques sans base de données relationnelle Les bases de données ont depuis longtemps été jugées incontournables pour le stockage des éléments dynamiques des sites Internet. Pourtant, elles n’ont pas que des avantages : elles sont consommatrices d’espace disque, de mémoire et de puissance processeur. Le modèle relationnel des bases de données modernes a un travers qu’il ne faut pas perdre de vue : regrouper dans des tables toutes les données de même nature. Pour les cas standard, qui sont en fait simples, rajouter des données à une base de données relationnelle consiste, ni plus ni moins, à les mélanger à d’autres données qui, bien que de même nature, n’ont pas de lien fonctionnel avec elles alors qu’extraire des données nécessite d’abord de les reconnaître dans un ensemble plus vaste. Les bases de données relationnelles offrent des performances intéressantes pour les consolidations de données et les statistiques mais elles n’optimisent pas les usages courants qui sont aussi, la plupart du temps, les usages principaux. SGBD XML XML XML Lorsque l’on utilise du XML pour stocker des données, on choisit les regroupements correspondant aux usages principaux : les données sont regroupées selon leurs dépendances, par exemple, toutes les lignes d’une facture avec l’entête de la facture, en un seul et même document. La solution technique est quasi minimaliste car un seul fichier pourra suffire pour mémoriser les données nécessaires à un traitement transactionnel. Grâce à la maturité des langages de manipulation du XML, les performances sont tout à fait bonnes. Le volume global de données n’est pas un critère de choix entre l’utilisation d’une base de données ou l’utilisation de fichiers XML : la granularité des données lues et mises à © <agenceXML> 2007 http://www.agencexml.com [email protected] jour ainsi que les performances attendues pour les transversaux vont permettre d’orienter le développement. traitements Par l’application d’une ou plusieurs transformations XSL-T, des données XML deviennent simplement des pages entières ou des portions de pages XHTML. Avec des possibilités de tris et de filtrages riches, les données sont ainsi formatées pour l’affichage. Si nécessaire, du code Javascript peut également être généré pour accompagner les formulaires. Compilation de pages XHTML, de feuilles de style CSS ou d’images Lorsque les données sous-jacentes d’une page XHTML n’évoluent pas fréquemment, voire jamais, il n’est que rarement opportun de reconstruire la page à chaque appel. Si les volumes le permettent, il est plus intéressant, en terme de performances, de stocker chaque page constituée comme s’il s’agissait d’une page statique alors que sa reconstruction est effectuée seulement après chaque modification. Cette approche s’apparente à une phase de compilation dans laquelle les données et le code dynamique sont compilés une fois pour toute. XHTML CSS XML XML PNG XML JS XHTML Il devient alors simple d’inverser le raisonnement pour sortir du code XHTML de pages statiques des éléments textuels ou graphiques et de les regrouper dans un ou plusieurs documents XML. Les différents styles CSS définis peuvent être reconstruits à partir de paramètres synthétiques, suite à d’éventuels calculs mathématiques simples. Grâce au dessin vectoriel exprimé en XML (SVG) et moyennant un outil de conversion graphique, des éléments habituellement non modifiables, © <agenceXML> 2007 http://www.agencexml.com [email protected] tels que des bannières au format GIF, peuvent être regénérés après modification de leur contenu, là encore, textuel ou graphique. Architecture AJAX En rendant la manipulation XML possible en Javascript, les pages d’un site Internet peuvent maintenant avoir en local plus d’autonomie et de puissance. XHTML + JS SERVEUR NAVIGATEUR XML XML Les échanges avec un serveur Internet ne se limitent plus à du code de page venant remplacer le code précédent : les échanges client-serveur en XML permettent à la fois un échange optimisé et une ergonomie riche où l’utilisateur n’est pas soumis à un rafraîchissement systématique sur son navigateur. Soit des parties de pages, soit des données brutes sont reçues par le navigateur sans que l’utilisateur en soit dérangé et le code Javascript traite ce qui a été reçu. © <agenceXML> 2007 http://www.agencexml.com [email protected]