910 likes | 1.1k Views
Introduction et Concepts : De SGML à XML. 1. Origines et Objectifs 2. SGML et HTML 3. Introduction à XML 4. XML pour quoi faire ?. Au commencement…. SGML Standard Generalized Markup Language Langage à balises pour représenter des documents structurés Complexe, difficile à apprendre
E N D
Introduction et Concepts : De SGML à XML 1. Origines et Objectifs 2. SGML et HTML 3. Introduction à XML 4. XML pour quoi faire ?
Au commencement… • SGML • Standard Generalized Markup Language • Langage à balises pour représenter des documents structurés • Complexe, difficile à apprendre • Réservé aux professionnels de la documentation • Difficilement extensible au Web • HTML ! (dérive de SGML) • Conçu dans l’optique d’afficher des « pages webs » • C’est ce qui a fait son succès • Problème de ces langages • Un document peut se définir par le fondet par la forme. • Forme = structure + présentation • Fond = structure + sémantique
SGML • 1969 C. Goldfarb, E. Mosher, R. Lorie inventent GML chez IBM • GML a été créé pour éditer des documents, les mettre en page et les partager au sein de systèmes de gestion éditoriaux • 1978 Goldfarb prend la tête d’un comité « Computer Language for the Processing of Text » au sein de l’American National Standards Institute (ANSI). SGML
Qu'est-ce que SGML ? • Une norme internationale : • Standard Generalized Markup Language • ISO 8879 - 1989 • Un métalangage de balisage de documents • lisible par l’être humain et traitable par une machine • permet de définir des langages de balisage • Les documents sont balisés conformément à une grammaire (la DTD Document Type Definition) • permet un balisage sémantique du fond. • Implique la notion de validité d'un document SGML
SGML : objectifs • Séparation du fond et de la forme • possibilité de multiples présentations • un seul document en SGML • plusieurs formats : Postcript, HTML, etc. • Support de traitements sur le contenu des documents sans prise en compte de la forme • Proposition d’un cadre défini pour l’expression des modèles documentaires (validité, contrôle) • Intégration d'un format de stockage et d’échange normalisé SGML
SGML : critiques • Très lourd et complexe pour la mise en œuvre de documents respectant ce format • Une grande rigueur est demandée à l'entrée des documents • Standard complexe et complet pour le traitement des documents • Liens hypertextes possibles mais complexes SGML
HTML : présentation • Proposé par le W3C comme format de documents sur le Web. • Langage simple avec des balises standardisées permettant la mise en forme d’un texte. • Standard reconnu par tous les navigateurs. • Langage très populaire sur le Web <HTML> <HEAD> <TITLE> Exemple </TITLE> </HEAD> <BODY> <H1>Contenu du document</H1> <A HREF = "http://www.server.fr/Info /dir/test.html"> une référence externe </A> </BODY> </HTML> HTML
HTML : inconvénients • Normalisation des différentes balises difficile : • les constructeurs ont eu tendance à définir leurs propres balises pour répondre à leurs besoins (incompatibilité) • HTML 4.0 • boutons, tables, applets, objects, graphiques, maths, ... • styles, frames, protections, ... • Mises à jour difficiles : • Données utiles et mises en forme ; • restructuration ou remise en forme de l’ensemble des pages du site fastidieux. • Pas de vérification syntaxique • Mélange le fond et la forme • méta-données avec la présentation • La sémantique du contenu est perdue • Pages conçues pour 1 type de terminal HTML
Feuilles de style • Introduite pour diversifier les présentations • CSS (Cascading Style Sheet) • mécanisme d'héritage entre nœuds • une balise hérite de la parente • seulement ce qu'elle spécifie est redéfini • Recommandation W3C en décembre 1996 • Mécanisme simple pour ajouter un style aux documents Web • fonte, taille, couleur, etc. • Utilisables avec XML HTML
XML : objectifs • XML= un nouveau langage d'échange basé sur le balisage • XML= plus simple que SGML • XML= plus complexe et performant que HTML • XML = développé par XML Working Group dirigé par le W3C (depuis 1996) • XML 1.0 = recommandation officielle du W3C depuis le 10 février 1998 Origines
les 10 objectifs d ’XML • XML doit pouvoir être utilisé sans difficulté sur Internet • XML doit soutenir une grande variété d'applications • XML doit être compatible avec SGML et HTML • Il doit être facile d'écrire des programmes traitant les documents XML • Le nombre d'options dans XML doit être réduit au minimum, idéalement à aucune Origines
les 10 objectifs D ’XML • Les documents XML doivent être lisibles par l'homme et raisonnablement clairs • La spécification de XML doit être disponible rapidement • La conception de XML doit être formelle et concise • Il doit être facile de créer des documents XML • La concision dans le balisage de XML est peu importante Origines
Introduction à XML • XML est un méta-langage universel pour les données sur le Web qui permet au développeur de délivrer du contenu depuis les applications à d'autres applications ou aux browsers • XML promet de standardiser la manière dont l'information est : • Échangée (XML) • Personnalisée (XSL) • Retrouvée (XQuery) • Sécurisée (Encryption, Signature) • Liée (XLink) • ... XML
Document bien formé: <a> <b>…</b> <c> <d>Bourgogne</d> <e>Dijon</e> </c> </a> SGML XML HTML XHTML XML : la base Les utilisateurs peuvent définir leurs propres tags Il est possible d'imposer une grammaire spécifique (DTD, Schéma) Les tags indiquent la signification des sections marquées XML
Concepts de base • Balise (ou tag ou label) • Marque de début et fin permettant de repérer un élément textuel • Forme: <balise> de début, </balise> de fin • Elément de données • Texte encadré par une balise de début et une de fin • Les éléments de données peuvent être imbriquées <producteur> <adresse> <rue>A. Briand</rue> <ville>Dijon</ville> </adresse> </producteur> • Attribut • Doublet nom="valeur" qualifiant une balise • <producteur no="160017" region="Bourgogne"> XML
Pourquoi utiliser XML? • Définir vos propres langages d’échange • Lisible : texte balisé avec marquage • Clair : séparation du fond et de la forme • Extensible : supporte les évolutions applicatives • Publier des informations • Commande, facture, bordereau de livraison, etc. • neutre du point de vue format • mise en forme avec des feuilles de style • Archiver des données (auto-description des archives) • Développé par le W3C • Pour le Web (Internet, Intranet) • S'étend à l'entreprise et ses partenaires • Supporté par les grands constructeurs • IBM, Microsoft .net, SUN, BEA, etc. • Des outils génériques et ouverts Pourquoi XML ?
Publication multi-supports Middleware XMLizer XML Application de publication (XSL) Base de Données TV Numérique Pourquoi XML ?
Échange de données Mapper Extractor JDBC JDBC BD relationnelle Datawarehouse Datamining Pourquoi XML ?
Gestion documents semistructurés Amendement Serveur d’Applications HTTP GET Requêtes Requêtes HTTP POST Mapping XML-SQL SGBDR Feuille de style XSL Feuille de style XSL Processeur XSL Feuille de style XSL HTML généré Interface avec les applications bureautiques Pourquoi XML ?
Échange B2B XML EDI XML EDI XMLizer Donneur d’ordre Internet (SOAP) Fournisseur Pourquoi XML ?
Forces et faiblesses de XML • Une technologie structurante • Clarifie tous les échanges • Des standards internes et externes • Transversale à l'entreprise • Échanges de données • Bureautique • GED • Sites Web • EDI • Bases de données • Intégration e-business • … • Une syntaxe bavarde • Un méta-langage, mais de nombreux langages • Coûteux en CPU • Parsing • Coûteux en mémoire • Instanciation Pourquoi XML ?
Plan • De HTML à XML • Documents bien formés • Documents valides • Liens • Feuilles de style • Traitement de documents XML • Applications
de HTML à XML Généralités
HTML • Langage à balises • Balises obligatoires (head, body, …) • Balises à valeur sémantique (h1, meta, …) • Balises à valeur d’habillage (center, small, ..) • Nombre fini de balises • Balises différentes suivant les navigateurs Pas d’évolution possible pour l’utilisateur
HTML • Aucune séparation de la forme et du fond • Balises de fond (Meta, Head, …) • Balises de forme (center, small, …) • Balises de fond & forme (h1, h2, …) Durée de vie limitée à la durée de vie des outils capables de visionner ces documents.
L’apport de XML • Ensemble non fini de balises • L’utilisateur peut créer de nouvelles balises • Séparation de la forme et du fond • Un document XML sera constitué d’au moins deux entités (le fond et la forme) • Séparation du contenu et de la grammaire • Permet la validation des documents
Historique • XML est un standard un W3C (World Wide Web Consortium) • XML est basé sur le standard SGML • Les travaux de XML ont commencé en 1996 • En 1999, XML est considéré comme étant le standard d’échange d’information du futur
Documents bien formés règles syntaxiques de XML
Un document XML bien formé • Exemple de document XML : <livre> <titre> le super livre </titre> <chapitre> <numero> 1 </numero> <titre> titre du chapitre 1 </titre> <contenu> blabla blabla </contenu> </chapitre> <chapitre> … </chapitre></livre>
Documents XML bien formés • Un document XML bien formé est un document qui est conforme aux règles syntaxiques du langage XML. • Un document bien formé pourra être traité par un parseur XML sans générer d’exception. • Un document XML bien formé pourra être associé avec une feuille de style.
Règles syntaxiques XML • Un document XML est constitué de : • Un prologue : qui contient un ensemble d’informations sur le document • Un ensemble d’éléments avec leurs contenus : les éléments et leurs contenus sont les données du document • Des commentaires qui peuvent être inclus n’importe où dans le document
Le prologue • La déclaration XML<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?> • Permet de préciser la version du document • Permet de préciser l’encodage utilisé • Permet de savoir si le document est autonome ou pas (lien vers d’autres documents)
Le prologue • XML permet de définir des types de documents. • Un type de documents est une sorte de grammaire, on peut alors valider un document par rapport à une grammaire. • Le prologue permet de déclarer le type d’un document.<!DOCTYPE livre SYSTEM "livre.dtd" >
Ensemble d’éléments • Les éléments des documents XML sont composés d’une balise d’ouverture, d’un contenu et d’une balise de clôture. <nom> contenue de l’élément </nom> • Le nom d’une balise est composé de caractères alphanumériques, du tiret-souligné, du signe moins ou du point. Il ne faut pas qu’il soit composé d’espaces. Un nom doit commencer par un caractère alphabétique ou du caractère tiret-souligné. Un nom ne doit pas commencer par XML/Xml/xML/...
Ensemble d’éléments • Une balise d’ouverture peut avoir un ensemble d’attributs. Ex : <livre date=‘ 01-01-2000 ’> … • Un attribut est une paire nom=valeur • Les noms des attributs suivent les mêmes règles que les noms des éléments • La valeur est une chaîne de caractères encadrée par les caractères guillemets ou apostrophe • L’attribut xml:lang est prédéfini et sa valeur représente le langage utilisé dans le document Ex : <p xml:lang=‘ fr ’> ...
Ensemble d’éléments • Le contenu d’un élément peut être : • un ensemble d’éléments • et/ou des données sous forme de chaînes de caractères ne contenant pas les caractères & et < • et/ou des références
Ensemble d’éléments • Une référence peut être : • une référence à un caractère alphanumérique, elle doit commencer par &#x, puis inclure le numéro du caractère et finir par ; Ex : 8 est une référence vers & • une référence prédéfinie comme par exemple & ou ' qui sont deux références vers & et ‘ • une référence vers quelque chose défini dans la DTD (Data Type Definition). Elle commence alors par &, puis par le nom de la référence, et finit par ; Ex : &ma_reference; (avec ma-reference=‘ texte long … ’ • Ce couple (nom, valeur) est appelé une entité
Ensemble d’éléments • Les balises de clôture sont composées des noms correspondant aux balises d’ouvertures précédés du caractère / Ex : </livre> • En élément peut être vide (sans contenu), dans ce cas, il n’a qu’une seule balise (composée du nom suivi du caractère /) Ex : <Element_vide/>
Sections littérales • Lorsque le parseur scanne un élément, il remplace toutes les références par leurs valeurs. • Pour empêcher cela, il faut utiliser une section littérale. Une section littérale est encadrée par <![CDATA[ et par ]]>Ex : <![CDATA[ <auteurs> Dupond & ]]>
Instructions de traitement • Il est possible d’inclure des instructions de traitement dans un document XML • La déclaration d’une instruction de traitement se fait de la facon suivante :<?nom arg1 arg2 .. ?> • nom est le nom de l’application cible • arg1, arg2, … sont les arguments de l ’application • Les noms XML, XmL, … sont réservés
Commentaire • Des commentaires peuvent être inclus dans le contenu d’un élément XML. Ils doivent être encadrés par les marques <!-- et --> • Un commentaire est une chaîne de caractères quelconque qui ne contient pas la chaîne -- • Exemple :<!-- un commentaire --><!-- un commentaire qui n’est -- pas bien formé -->
Documents bien formés • Le plus petit :<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?><livre/> • Un autre :<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?><livre date=‘ 01-01-2000 ’> <chapitre> XML & HTML </chapitre> <!-- préciser la version de HTML--></livre>
Documents valides XML et grammaire
Document Type Definition • En XML, un type de document représente une structure (une grammaire) Ex : le type livre précise qu’un livre est composé de chapitres, qui sont composés de parties … • Un type de document est défini dans une DTD (Document Type Definition) • Une DTD peut être inclue ou référencée par un document XML
Document Type Definition • On peut vérifier la validité d’un document par rapport à la DTD qu’il référence ou qu’il inclut. On parlera alors de document XML valide • Un document XML valide est donc un document XML bien formé qui a une DTD et qui est conforme à cette DTD • Il existe déjà de nombreuses DTD, il est alors possible de les utiliser pour construire des documents XML valides Ex : La DTD MathML pour les équations
Document Type Definition • Pour associer un document XML à une DTD, il faut le faire avec l’élément <!DOCTYPE>Ex : <!DOCTYPE livre SYSTEM "livre.dtd" > • On considère qu’un document XML est constitué de deux choses : La DTD et la donnée. • Un document XML bien formé peut ne pas être composé de DTD • Un document XML valide doit avoir une DTD
Data Type Definition • Une DTD est définie dans l’élément<!DOCTYPE name SYSTEM "fichier.dtd" [delaration] > • name est le nom du type de document • SYSTEM "fichier.dtd" est une référence vers le fichier.dtd. Ce fichier contient tout ou une partie de la DTD. C’est la partie externe de la DTD • [declaration] permet de définir tout ou une partie de la DTD. C ’est la partie interne de la DTD
Contenu d’une DTD • Déclarations des entités • Déclarations des éléments et de leurs contenus • Déclarations des attributs des éléments • Commentaires