doc:adsillh:dev-app:wed-donnees
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| doc:adsillh:dev-app:wed-donnees [2024/07/29 21:10] – [Arbre XML] pizzacoca | doc:adsillh:dev-app:wed-donnees [2024/07/29 21:56] (Version actuelle) – [Avènement du web] pizzacoca | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| * Du fait de la prolifération des « providers Internet » qui ont aussi contribué à la démocratisation des technologies dites « web ». | * Du fait de la prolifération des « providers Internet » qui ont aussi contribué à la démocratisation des technologies dites « web ». | ||
| + | ---- | ||
| ===== HTTP ===== | ===== HTTP ===== | ||
| ==== Définition ==== | ==== Définition ==== | ||
| + | {{ : | ||
| Ainsi le protocole HTTP s’est imposé comme fondement « réseau » de la plupart des échanges entre application. | Ainsi le protocole HTTP s’est imposé comme fondement « réseau » de la plupart des échanges entre application. | ||
| Ligne 21: | Ligne 23: | ||
| HTTP est un protocole de la couche application. Il peut fonctionner sur n' | HTTP est un protocole de la couche application. Il peut fonctionner sur n' | ||
| - | {{ : | + | |
| La version actuelle de http est la version 1.1. Elle a été publié par IETF en Février 2014 dans les RFC 7230 à 7237. | La version actuelle de http est la version 1.1. Elle a été publié par IETF en Février 2014 dans les RFC 7230 à 7237. | ||
| Ligne 264: | Ligne 266: | ||
| Un document JSON représente un Objet Javascript. | Un document JSON représente un Objet Javascript. | ||
| + | |||
| + | === Représentation === | ||
| Le type MIME application/ | Le type MIME application/ | ||
| Ligne 273: | Ligne 277: | ||
| var data = JSON.parse(json_data); | var data = JSON.parse(json_data); | ||
| </ | </ | ||
| + | |||
| + | === Exploitation === | ||
| + | La structuration de l’information est importante mais il est aussi nécessaire de pouvoir « comprendre » la structure d’un document. | ||
| + | |||
| + | Pour cela il est nécessaire de définir la grammaire de notre document. | ||
| + | |||
| + | Il existe deux modes de définition de celle-ci : | ||
| + | * Les DTD définition « historique » | ||
| + | * Les schémas XML basés sur une définition XML | ||
| + | |||
| + | |||
| + | ==== DTD ==== | ||
| + | |||
| + | === Définition === | ||
| + | |||
| + | DTD = Document Type Definition | ||
| + | |||
| + | La DTD fournit : | ||
| + | * la liste des éléments, | ||
| + | * la liste des attributs, | ||
| + | * des notations et | ||
| + | * des entités du document XML associé ainsi que | ||
| + | * les règles des relations qui les régissent. | ||
| + | |||
| + | Résumé des spécifications : | ||
| + | * Une DTD (grammaire) permet de déclarer : | ||
| + | * un type d’élément, | ||
| + | * une liste d’attributs d’un élément, | ||
| + | * une entité | ||
| + | * Chaque balise du langage doit faire l’objet d’une et d’une seule déclaration | ||
| + | Un document XML est dit “valide” s’il possède une DTD et si sa syntaxe est conforme aux règles de la DTD | ||
| + | |||
| + | Un document “valide” est obligatoirement « bien formé » | ||
| + | |||
| + | La DTD est déclarée dans le document XML par la balise !DOCTYPE | ||
| + | |||
| + | Elle peut être : | ||
| + | * incluse dans le code source du fichier XML, ou DTD interne : | ||
| + | <code dtd> | ||
| + | < | ||
| + | </ | ||
| + | * décrite dans un fichier externe, ou DTD externe : | ||
| + | <code dtd> | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | === Exemple === | ||
| + | |||
| + | == DTD interne == | ||
| + | |||
| + | <code xml> | ||
| + | <?xml version=" | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | exprimées en chiffres ou en lettres. Idem pour l' | ||
| + | |||
| + | ]> | ||
| + | <!--Fin de la DTD--> | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | == DTD externe == | ||
| + | |||
| + | **fichier XML** | ||
| + | <code xml> | ||
| + | <?xml version=" | ||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | <!--Fin du document XML--> | ||
| + | </ | ||
| + | |||
| + | **Fichier parent.dtd** | ||
| + | <code xml> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <!-- | ||
| + | #PCDATA indique au Parser XML que | ||
| + | l' | ||
| + | exprimées en chiffres ou en lettres. | ||
| + | Idem pour l' | ||
| + | --> | ||
| + | </ | ||
| + | |||
| + | La DTD contient : | ||
| + | |||
| + | Une ou plusieurs définitions d’éléments introduites par la balise !ELEMENT : | ||
| + | <code xml> | ||
| + | < | ||
| + | </ | ||
| + | Une ou plusieurs listes d’attributs introduites par la balise !ATTLIST : | ||
| + | <code xml> | ||
| + | < | ||
| + | </ | ||
| + | Une ou plusieurs définitions d’entité introduites par la balise !ENTITY : | ||
| + | <code xml> | ||
| + | <!ENTITY nom-entité " | ||
| + | </ | ||
| + | ou | ||
| + | <code xml> | ||
| + | <!ENTITY nom-entité SYSTEM " | ||
| + | </ | ||
| + | |||
| + | Espaces de nom | ||
| + | * XML Namespaces est une recommandation permettant d’utiliser le vocabulaire (les balises) de 2 DTD distinctes sans risque d’ambigüité. | ||
| + | |||
| + | Inconvénients des DTD : | ||
| + | * Une DTD est difficile à lire | ||
| + | * Une DTD est non extensible (ce n’est pas un document XML). | ||
| + | * Une DTD ne permet pas de typer les données | ||
| + | * Une DTD ne peut prendre en compte qu’un seul espace de nom (Namespace). | ||
| + | |||
| + | ==== XML schema ==== | ||
| + | |||
| + | En réponse aux lacunes des DTD, une alternative a été proposée comme recommandation : il s’agit de XML-Data dont XML-Schema est un sous-ensemble. | ||
| + | |||
| + | Cette nouvelle norme achève de faire d’XML | ||
| + | |||
| + | La version 1.1 de XML Schema (datée de mai 2001) se compose de 3 normes : | ||
| + | * XML Schema tome 0 : Introduction | ||
| + | * XML Schema tome 1 : Structures | ||
| + | * XML Schema tome 2 : Types de données | ||
| + | |||
| + | Les documents XML-Schema sont des documents qui : | ||
| + | * espectent la syntaxe XML, | ||
| + | * peuvent décrire la structure d’un document XML d’une façon beaucoup plus complète que les DTD. | ||
| + | XML-Schema permet en effet de : | ||
| + | * spécifier la typologie des données que va contenir le document XML décrit par le XML-Schema, | ||
| + | * gérer une quarantaine de types de données simples, | ||
| + | * gérer des types complexes, | ||
| + | * gérer les occurrences des données. | ||
| + | |||
| + | === Exemple === | ||
| + | |||
| + | **Document XML** | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **Document XML-schema correspondant** | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **Référence à un XML-Schema dans un document XML** | ||
| + | |||
| + | <code xml> | ||
| + | <entree xmlns=" | ||
| + | | ||
| + | | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | L’espace de nommage xsi correspond aux instances de documents XML respectant les contraintes définies dans un document XML-Schema. Le W3C a défini une librairie de balises et attributs pouvant être utilisés par ces documents. | ||
| + | |||
| + | La DTD permet de définir facilement et rapidement des grammaires simples. | ||
| + | |||
| + | XML-Schema permet de définir de manière plus formelle et complète une grammaire mais c’est au prix d’une complexité accrue. | ||
| + | |||
| + | Un document XML-Schema respecte la syntaxe XML. | ||
| + | |||
| + | Un document XML-Schema est généralement plus volumineux et plus difficile à lire qu’une DTD (pour un opérateur humain). | ||
| + | |||
| + | === Exemple de XML-XSD === | ||
| + | |||
| + | <code xml> | ||
| + | <?xml version=" | ||
| + | <cave xmlns: | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== TRANSFORMATION D’UN DOCUMENT XML ==== | ||
| + | |||
| + | Les outils destinés à transformer les documents XML représentent ceux-ci comme un arbre de nœuds XML. | ||
| + | |||
| + | XSL est le langage qui permet d’écrire des feuilles de style. | ||
| + | |||
| + | XPath est le langage qui permet d’adresser une partie ou plusieurs parties d’un document, c’est à dire un ou plusieurs nœuds du document XML. | ||
| + | |||
| + | Transformation effectuée par un processeur XSL Selon http:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ===== XSL ===== | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | XSL : eXtensible Stylesheet Language. | ||
| + | |||
| + | Objectifs : Ce langage déclaratif permet de transformer un document XML en : | ||
| + | * un autre document XML, HTML, WML, SMIL | ||
| + | * un document papier: PDF, LaTeX | ||
| + | * du texte | ||
| + | |||
| + | |||
| + | |||
| + | ==== Principes ==== | ||
| + | |||
| + | Le langage XSLT décrit des règles pour transformer un document XML. | ||
| + | |||
| + | Ces règles de transformations s’appliquent chacune à un ou plusieurs nœuds de l’arbre et spécifient la transformation à effectuer sur un nœud pour le transformer en un nouveau nœud de l’arbre résultat. | ||
| + | |||
| + | Un processeur XSLT applique à un document XML les transformations décrites dans un document XSLT et génère un nouveau document (XML, HTML, texte) | ||
| + | |||
| + | Fonctions de base (transformations) offertes par une feuille de style XSLT : | ||
| + | * extraction de données | ||
| + | * génération de texte | ||
| + | * suppression de contenu (noeuds) | ||
| + | * déplacement de contenu (noeuds) | ||
| + | * duplication de contenu (noeuds) | ||
| + | * tri de données | ||
| + | |||
| + | Site de référence : | ||
| + | * http:// | ||
| + | * http:// | ||
| + | |||
| + | === Exemple === | ||
| + | |||
| + | Exemple Processeur côté serveur : un processeur installé sur le serveur envoie, après traitement le document résultant au client déploiement des servlets de transformation sous tomcat). | ||
| + | |||
| + | Dans l’exemple qui suit, on souhaite transformer un document XML en document HTML : | ||
| + | |||
| + | **XML source** | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | **HTML cible** | ||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | **XSLT correspondant** | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <p> | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === Résumé === | ||
| + | |||
| + | XSL est un langage XML permettant de définir des feuilles de style | ||
| + | |||
| + | Les composants d’un document XSL sont : | ||
| + | * XSLT : pour manipuler les documents | ||
| + | * XPath : pour naviguer dans la structure hiérarchique des documents | ||
| + | * XSL Formatting Objects : pour définir la mise en forme des documents | ||
| + | |||
| + | === Conclusion === | ||
| + | |||
| + | Avantages d’XSLT : | ||
| + | * A partir d’un même document XML, on peut générer plusieurs formats en sortie (HTML, WML…) | ||
| + | Inconvénients d’XSLT : | ||
| + | * Bien que la version 1.0 ait été stabilisée, | ||
| + | XSLT versus CSS : | ||
| + | * XSLT peut tout à fait être utilisé de manière combinée avec les CSS, en particulier quand la cible est du HTML4 ou du XHTML1. | ||

doc/adsillh/dev-app/wed-donnees.1722287437.txt.gz · Dernière modification : de pizzacoca
