📋 Plan du Cours
- Vers un langage semi-structuré
- Historique et place de XML
- Définition et structure arborescente XML
- Caractéristiques du XML : séparation données
- Applications du XML
- Exemple de document XML Master STIC
- Feuille de style XSL pour transformer XML
- Avantages et limites du XML
- Prologue XML et déclaration d’encodage
- Document XML bien formé et valide
- Noms, éléments, imbrication et attributs
- DTD : contraintes, types et exemples
📖 1. Vers un langage semi-structuré
🔑 Notions clés & Définitions
- HTML : HTML est un langage de balisage hypertexte conçu pour créer des pages Web et des applications.
- Langage strict : Un langage strict impose un ensemble fini de balises, chacune ayant une utilité prédéfinie et non modifiable.
- XML : XML est un langage de balisage extensible utilisé pour représenter des données structurées sous forme d’arbre.
- W3C : Le W3C est l’organisme qui propose des spécifications comme XML et contribue à leur standardisation.
- SGML : SGML est un langage de balisage général dont XML constitue un sous-ensemble.
📝 Points essentiels
- HTML utilise des balises prédéfinies (comme title, body, br), ce qui limite le champ d’action.
- Dans un langage strict, on ne peut pas modifier les balises, donc la structure reste imposée.
- Si on peut définir/modifier les balises, on obtient un langage plus flexible, donc semi-structuré.
- XML a été proposé comme spécification par le W3C en 1998 et s’est imposé comme standard.
- XML est un format général de documents orientés texte et il est un sous-ensemble de SGML.
- XML s’appuie sur une structure d’arbre déterminée par des balises présentes dans le document.
💡 Astuce mémo
HTML = balises fixes ; XML = balises extensibles (donc semi-structuré).
📖 2. Historique et place de XML
🔑 Notions clés & Définitions
- XML : XML est un langage de balisage générique conçu pour structurer des données sous forme de balises extensibles.
- Langage de balisage extensible : Cette expression désigne un balisage où l’on peut définir ses propres balises pour représenter des informations spécifiques.
- W3C : Le W3C est l’organisme qui recommande des technologies web, dont XML pour exprimer des langages de balisage particuliers.
- SGML : SGML est un langage de balisage dont XML reprend plusieurs principes, notamment la structuration et la validation via des schémas.
- XHTML : XHTML est un exemple de langage de balisage spécifique exprimable avec XML, recommandé par le W3C.
📝 Points essentiels
- XML est un langage de balisage générique utilisé pour exprimer des langages de balisage spécifiques comme XHTML, SVG et XSLT.
- Le W3C recommande XML pour formaliser des langages de balisage particuliers afin de faciliter leur utilisation et leur interopérabilité.
- Objectif initial de XML : permettre l’échange automatisé de contenus entre systèmes d’informations hétérogènes, notamment sur Internet.
- XML est un sous-ensemble de SGML et en conserve plusieurs principes, dont la possibilité de définir la structure via un schéma.
- Un document XML peut être entièrement transformé en un autre document XML, ce qui rend les échanges et traitements plus systématiques.
💡 Astuce mémo
XML = échange + structure : schéma pour valider, transformation pour réutiliser.
📖 3. Définition et structure arborescente XML
🔑 Notions clés & Définitions
- XML : XML est un langage à balises permettant de représenter des contenus de façon indépendante d’une application, grâce à une structure hiérarchique lisible.
- Balises XML : Les balises XML encadrent les éléments du document et servent à organiser l’information sous forme de nœuds dans une structure arborescente.
- Attribut XML : Les attributs XML décrivent des propriétés d’un élément sans changer sa place dans la hiérarchie du document.
- Prologue XML : Le prologue est la partie initiale d’un document XML où figurent des déclarations facultatives, notamment des informations d’encodage.
- Corps du document XML : Le corps contient le contenu principal du document, c’est-à-dire les éléments structurés en arbre.
📝 Points essentiels
- XML vise d’abord la représentation de contenus indépendamment de toute application qui les affichera ou les traitera.
- Un document XML est organisé en structure arborescente composée d’éléments imbriqués.
- Le prologue peut inclure des déclarations facultatives, dont la déclaration XML et l’encodage.
- La déclaration d’en-tête peut préciser une version et un jeu de caractères, par exemple version 1.0 et ISO-8859-1.
- Le corps du document correspond au contenu réel, organisé en éléments et sous-éléments.
- Des commentaires et des instructions de traitement peuvent apparaître dans le prologue comme dans le corps.
💡 Astuce mémo
Arbre XML = Prologue (déclarations) → Corps (contenu) ; le reste (commentaires/instructions) peut se glisser partout.
📖 4. Caractéristiques du XML : séparation données
🔑 Notions clés & Définitions
- Character set : En XML, le character set indique à l’analyseur le jeu de caractères à utiliser pour interpréter le texte du document.
- Déclaration XML : La déclaration XML est la première ligne du document qui précise la version, le codage et le mode autonome du document.
- Autonome standalone : Un document XML est autonome quand il ne contient pas de déclarations d’entités externes.
- Unicode UTF-8 : Le codage par défaut d’un document XML est Unicode, généralement exprimé en UTF-8.
- Document bien formé : Un document XML est bien formé quand sa syntaxe de balises est correcte et que ses éléments sont correctement imbriqués en arbre.
📝 Points essentiels
- Le character set est annoncé dans le prologue et sert à choisir le jeu de caractères pour l’interpréteur XML.
- ISO-8859-1 accepte beaucoup de lettres accentuées pour les francophones, contrairement à certains codages orientés anglais.
- La déclaration XML a la forme générale <?xml version="1.0" encoding="utf-8" standalone="no" ?>.
- La version la plus utilisée de XML est 1.0, datée du 10 février 1998.
- Un document est bien formé si la syntaxe des balises est respectée et si les éléments sont correctement imbriqués.
- Les éléments imbriqués forment une structure en arbre, ce qui correspond à l’imbrication logique du document.
💡 Astuce mémo
Déclaration XML = Version + Codage + Autonomie ; Bien formé = Balises correctes + Imbrication en arbre.
📖 5. Applications du XML
🔑 Notions clés & Définitions
- Noms XML : Les noms XML identifient les balises et doivent respecter des règles de syntaxe pour être acceptés par un parseur.
- Balise ouvrante : Une balise ouvrante marque le début d’un élément et indique son nom XML.
- Balise fermante : Une balise fermante marque la fin d’un élément et reprend le même nom XML que la balise ouvrante.
- Élément vide : Un élément vide représente un élément sans contenu, écrit sous forme de balise autofermée.
- Attribut XML : Un attribut est une paire nom et valeur placée dans une balise ouvrante ou d’élément vide.
📝 Points essentiels
- Les noms XML ne doivent pas contenir d’apostrophe dans le nom de balise (exemple : Driver's_License_Number est incorrect).
- Les noms XML ne doivent pas contenir d’espace (exemple : first name est incorrect).
- Les noms XML ne doivent pas contenir de caractère interdit par la syntaxe du nom ; des lettres accentuées peuvent être acceptées mais peuvent poser problème selon les programmes (exemple corrigé : àçttûä est correct).
- Les noms XML ne doivent pas contenir de caractères comme / (exemple : month/day/year est incorrect).
- Un nom XML ne commence pas par un chiffre (exemple : 4-lane est incorrect).
- Les balises délimitent les éléments : le contenu est situé entre balise ouvrante et balise fermante, ou absent pour un élément vide.
💡 Astuce mémo
Balises = début/fin ; noms = pas d’espace, pas d’apostrophe, pas de /, pas de chiffre au début.
📖 6. Exemple de document XML Master STIC
🔑 Notions clés & Définitions
- xml:lang : Attribut de langue d’un élément, dont la valeur est un code ISO 639 (et éventuellement des sous-codes ISO 3166).
- Commentaire XML : Construction XML qui n’est pas considérée comme des données textuelles du document et sert uniquement à documenter le contenu.
- CDATA : Bloc XML où les balises ne sont plus interprétées comme du balisage, mais comme du texte brut.
- Entité document : Entité correspondant au fichier de départ utilisé par le lecteur XML pour commencer l’analyse du document.
- Appel de caractère : Mécanisme XML permettant d’insérer un caractère Unicode via une écriture numérique suivie d’un point-virgule.
📝 Points essentiels
- La valeur de xml:lang doit être un code de langue ISO 639 (ou privé) éventuellement complété par des sous-codes ISO 3166, par exemple fr-FR ou br-CA.
- Les commentaires s’écrivent avec <!-- ... --> et ne font pas partie des données textuelles du document.
- Dans un commentaire, la séquence -- n’est pas autorisée.
- Une section CDATA s’écrit <![CDATA[ ... ]]> et permet d’inclure des caractères sans que les balises soient reconnues.
- Les données CDATA ne doivent pas contenir la séquence ]]> et les CDATA ne peuvent pas être imbriquées.
- Un document XML contient l’entité document et éventuellement des appels de caractère, des entités internes et des entités externes.
💡 Astuce mémo
xml:lang = « langue » (ISO 639 + pays ISO 3166) ; <!-- --> = « pas des données » ; <![CDATA[ ]]> = « balises ignorées ».
🔑 Notions clés & Définitions
- Entité XML : Une entité XML est un nom symbolique déclaré qui peut être réutilisé dans le document via une référence de la forme &nom;.
- Entité interne : Une entité interne est déclarée dans le même document XML, généralement dans la déclaration de type de document (DOCTYPE).
- Entité externe : Une entité externe est déclarée pour référencer du contenu provenant d’un fichier ou d’une source externe, puis utilisée comme une entité classique avec &nom;.
- DTD : Une DTD est un ensemble de règles qui décrit la structure attendue d’un document XML (éléments, attributs et contraintes de contenu).
- Déclaration DOCTYPE : La déclaration DOCTYPE introduit la DTD associée au document XML et indique si elle est interne ou externe.
📝 Points essentiels
- Une référence d’entité s’écrit avec le caractère '&', le nom de l’entité, puis le caractère ';' (ex. &cie;).
- Les entités internes sont déclarées dans une section DOCTYPE, puis utilisées directement dans le contenu XML comme des morceaux de texte ou de balisage.
- Une entité externe est déclarée via une référence SYSTEM vers un fichier, puis appelée dans le document avec &nom; pour insérer le contenu du fichier.
- Les navigateurs (Mozilla et Internet Explorer à partir de IE 5) peuvent afficher l’arborescence XML, et interprètent une feuille de style si elle est spécifiée (IE à partir de la version 6).
- Une DTD décrit généralement le nom et le contenu de chaque balise ainsi que le contexte où elle peut apparaître.
- La DTD sert notamment à définir les éléments autorisés, la hiérarchie, les attributs autorisés et le modèle de valeur d’un attribut.
💡 Astuce mémo
&nom; = “je réutilise un nom déclaré” ; DTD = “plan de la structure XML”.
📖 8. Avantages et limites du XML
🔑 Notions clés & Définitions
- DTD : Une DTD décrit la structure attendue d’un document XML, en précisant quels éléments existent et comment ils s’emboîtent.
- Déclaration d’élément : Une déclaration d’élément associe un nom d’élément à un type de contenu (texte, vide, séquence, choix, etc.).
- Élément texte : Un élément texte contient principalement des données textuelles, déclarées avec #PCDATA.
- Élément vide : Un élément vide ne contient aucun contenu et se déclare avec le mot-clé EMPTY.
- Contenu mixte : Un élément à contenu mixte peut contenir à la fois du texte (#PCDATA) et des sous-éléments.
📝 Points essentiels
- La forme générale d’une déclaration est <!ELEMENT nom type_element>, où nom est le nom de l’élément et type_element son type de contenu.
- Un élément texte se déclare par <!ELEMENT elt (#PCDATA)>, ce qui autorise uniquement du texte (selon la DTD).
- Un élément vide se déclare par <!ELEMENT elt EMPTY> et s’écrit typiquement sous la forme <elt/>.
- Une séquence impose un ordre précis des enfants, par exemple <!ELEMENT elt0 (elt1, elt2, elt3)> n’accepte pas un ordre différent.
- Un choix d’enfants se fait avec |, par exemple <!ELEMENT elt0 (elt1 | elt2 | elt3)> n’autorise qu’un des éléments listés à cet endroit.
- Les indicateurs d’occurrence ?, +, * s’appliquent aux enfants dans une séquence ou un choix, où ? = au plus une fois, + = au moins une fois, * = zéro ou plusieurs fois.
💡 Astuce mémo
DTD = Décrit l’Ordre et le Type : Texte (#PCDATA), Vide (EMPTY), Séquence (,) Choix (|), Occurrences (?, +, ), Mixte (#PCDATA|enfants).
📖 9. Prologue XML et déclaration d’encodage
🔑 Notions clés & Définitions
- Déclaration d’encodage : Déclaration d’encodage : information placée dans le prologue XML pour indiquer comment les caractères du document doivent être interprétés.
- Prologue XML : Prologue XML : partie initiale du document qui contient les informations générales nécessaires avant le contenu (dont l’encodage et la déclaration de type, si utilisée).
- CDATA : CDATA : type d’attribut qui correspond à une chaîne de caractères sans balises.
- #REQUIRED : #REQUIRED : valeur implicite indiquant qu’un attribut est obligatoire dans l’élément.
- #IMPLIED : #IMPLIED : valeur implicite indiquant qu’un attribut est facultatif et peut être absent.
📝 Points essentiels
- La déclaration d’encodage sert à éviter les erreurs d’interprétation des caractères lors du parsing du document XML.
- Le prologue XML regroupe les informations placées avant les éléments pour guider l’analyse (notamment l’encodage).
- Le type CDATA est le type d’attribut le plus courant pour stocker une chaîne de caractères.
- #REQUIRED impose la présence de l’attribut dans l’élément concerné.
- #IMPLIED autorise l’absence de l’attribut sans rendre le document invalide.
- #FIXED impose une valeur constante pour l’attribut, tandis que une valeur entre guillemets donne une valeur par défaut facultative.
💡 Astuce mémo
Encodage = « comment lire les caractères » ; REQUIRED = « présent obligatoire » ; IMPLIED = « optionnel ».
🔑 Notions clés & Définitions
- Attribut optionnel : Un attribut optionnel est un attribut déclaré dans la DTD qui peut être absent du document sans rendre le XML invalide.
- Valeur fixe d’attribut : Une valeur fixe d’attribut impose qu’un attribut prenne exactement la même valeur à chaque occurrence, telle que déclarée dans la DTD.
- CDATA : CDATA désigne un type d’attribut qui accepte une chaîne de caractères quelconque, y compris des caractères réservés à XML comme <, > et &.
- ID : ID est un type d’attribut qui fournit un identifiant unique, sous forme de nom XML, et ne peut pas se répéter dans un même document.
- IDREF : IDREF est un type d’attribut dont la valeur doit correspondre à un ID déclaré ailleurs dans le document.
📝 Points essentiels
- Un attribut optionnel se déclare avec #IMPLIED dans la DTD, ce qui autorise son absence dans le document.
- Une valeur fixe se déclare avec #FIXED "valeur", ce qui force l’attribut à contenir exactement cette valeur.
- Le type CDATA est le plus général : il accepte du texte libre et peut inclure <, > et & sans échouer sur le type d’attribut.
- Le type ID impose une unicité : une même valeur ne peut pas apparaître deux fois dans le document, et une valeur d’ID doit être un nom XML (donc pas un nombre).
- IDREF doit référencer un ID existant ailleurs dans le document, sinon la validation échoue.
- IDREFS correspond à une suite de valeurs IDREF séparées par des blancs, pour référencer plusieurs éléments.
💡 Astuce mémo
#IMPLIED = absent OK ; #FIXED = valeur imposée ; ID = unique ; IDREF = référence à un ID existant.
📖 11. Noms, éléments, imbrication et attributs
🔑 Notions clés & Définitions
- DTD interne : Une DTD interne est une déclaration de structure XML incluse directement dans le document via une section <!DOCTYPE ... [ ... ]>.
- DTD externe : Une DTD externe est une déclaration de structure XML chargée depuis un fichier ou une URL grâce à une référence SYSTEM dans <!DOCTYPE ...>.
- Déclaration d’élément : Une déclaration d’élément décrit le nom d’un tag XML et son contenu autorisé (données #PCDATA ou imbrication d’autres éléments).
- Attributs DTD : Les attributs DTD précisent des propriétés associées à un élément, avec un type et une valeur par défaut ou une contrainte de présence.
- Déclarations d’entités : Les déclarations d’entités définissent des remplacements réutilisables dans une DTD pour écrire plus facilement des symboles ou des textes.
📝 Points essentiels
- La syntaxe d’une DTD interne suit <!DOCTYPE élément-racine [ déclaration des éléments ]> avec la racine indiquée dans le <!DOCTYPE>.
- Une DTD externe utilise <!DOCTYPE élément-racine SYSTEM "nom_du_fichier.dtd"> pour référencer un fichier DTD.
- La déclaration <!ELEMENT garcon (#PCDATA)> indique que l’élément contient des données texte, tandis que <!ELEMENT parent (garcon,fille)> impose une imbrication précise.
- La déclaration <!ELEMENT DOCUMENT(PERSONNE*)> autorise 0 ou plusieurs occurrences de PERSONNE à l’intérieur de DOCUMENT.
- Les attributs se déclarent avec <!ATTLIST nomElement nomAttribut type valeurParDefaut> et peuvent être requis ou optionnels selon la valeur (#REQUIRED, #IMPLIED).
- Dans l’exemple, PNUM est déclaré ID #REQUIRED pour PERSONNE, tandis que MERE et PERE sont déclarés IDREF #IMPLIED pour référencer d’autres PERSONNE par identifiant.
💡 Astuce mémo
DTD interne = DOCTYPE + crochets; DTD externe = DOCTYPE + SYSTEM; imbrication = parenthèses (enfants) ; texte = #PCDATA ; attributs = ID (référence) vs IDREF (lien).
📖 12. DTD : contraintes, types et exemples
🔑 Notions clés & Définitions
- Déclaration d’entité : Une déclaration d’entité décrit un nom réutilisable dans un document XML, associé soit à du texte, soit à une ressource externe.
- Entité interne : Une entité interne associe un nom à une chaîne de remplacement directement fournie dans la DTD.
- Entité externe : Une entité externe associe un nom à une ressource via un identifiant SYSTEM (fichier ou URL).
- Déclaration d’élément : Une déclaration d’élément fixe la structure autorisée pour un tag XML, via une liste d’enfants et/ou un contenu de type #PCDATA.
- Déclaration d’attribut : Une déclaration d’attribut précise le type, si l’attribut est requis ou optionnel, et éventuellement une valeur par défaut ou un ensemble de valeurs.
📝 Points essentiels
- Une DTD peut définir des entités avec la syntaxe &NomEntité; pour réutiliser facilement du texte ou des références.
- Une entité interne s’écrit avec <!ENTITY nom "texte de remplacement"> et remplace directement le contenu lors de l’usage.
- Une entité externe s’écrit avec <!ENTITY nom SYSTEM "fichier ou URL"> et pointe vers une ressource externe.
- Dans l’exemple bibliographie, biblio autorise une suite de livre ou article via (livre|article)*.
- Dans l’exemple bibliographie, livre contient (titre, auteur+, tome*, edition) : titre unique, au moins un auteur, zéro ou plusieurs tomes, puis edition.
- Dans l’exemple bibliographie, article contient (titre, auteur+, journal) : au moins un auteur et un journal obligatoire.
💡 Astuce mémo
Entité = &Nom; : interne = texte, externe = SYSTEM (fichier/URL).
📅 Repères chronologiques
| Date | Événement |
|---|
| 1998 | XML proposé par le W3C et s’impose comme standard incontournable |
| 10 février 1998 | Version la plus utilisée de XML : 1.0 (10 février 1998) |
| 08 Mai 1945 | Date figurant sur la page de présentation du cours |
📊 Tableaux de synthèse
HTML vs XML (logique du cours)
| Aspect | HTML | XML |
|---|
| Type de langage | Langage strict | Langage extensible (semi-structuré) |
| Balises | Balises prédéfinies, nombre fini | Balises extensibles : on peut définir ses propres balises et attributs |
| Conséquence | Champ d’action limité, balises non modifiables | Plus flexible, structure définissable et validable |
⚠️ Pièges & confusions fréquents
- Confondre langage strict et semi-structuré : en langage strict on ne modifie pas les balises, alors qu’en XML on peut définir ses propres balises et attributs.
- Croire qu’un document XML est valide juste parce qu’il est “bien formé” : bien formé = syntaxe + imbrication correcte, valide = en plus respecte les contraintes de la DTD.
- Mettre des balises dans la valeur d’un attribut : le cours insiste de ne pas mettre de balises dans la valeur d’un attribut.
- Se tromper sur les noms XML : un nom ne doit pas contenir d’espace, ne doit pas commencer par un chiffre, et ne doit pas commencer par “xml/XML/Xml...”.
- Oublier les règles de commentaires : dans un commentaire XML, la séquence “--” n’est pas autorisée et le commentaire ne fait pas partie des données textuelles.
- Confondre CDATA et entités : CDATA désactive l’interprétation des balises jusqu’au “]]>”, alors que les entités s’insèrent via &nom; (et peuvent être internes ou externes).
- Confondre entité document et autres entités : l’entité document correspond au fichier de départ, tandis que les autres entités sont appelées et remplacées par du texte ou du contenu externe.
✅ Checklist Examen
- Expliquer pourquoi HTML est un langage strict et en quoi XML est plus flexible (balises extensibles, possibilité de définir ses propres balises et attributs).
- Donner la place de XML dans l’histoire : proposition W3C en 1998, standard, sous-ensemble de SGML, objectif d’échange automatisé.
- Décrire la structure d’un document XML : données en structure d’arbre déterminée par les balises, et séparation logique entre prologue/corps/commentaires-instructions.
- Identifier les constituants d’un document XML : prologue (déclarations facultatives), corps (contenu), et commentaires/instructions pouvant apparaître partout.
- Reconnaître les conditions de “document bien formé” : syntaxe des balises respectée et éléments correctement imbriqués formant un arbre.
- Expliquer la différence “bien formé” vs “valide” : la validité dépend du respect des contraintes imposées par la DTD.
- Savoir écrire la déclaration XML et interpréter les paramètres : version, encoding, et standalone (autonome si pas d’entités externes).
- Maîtriser les règles de noms XML vues au cours : pas d’espace, pas de début par chiffre, pas de début par “xml/XML/Xml...”, et éviter certains signes pouvant prêter à confusion.
- Décrire la structure logique : balises ouvrantes/fermantes ou balise d’élément vide, contenu entre balises, et imbrication formant l’arborescence.
- Expliquer les attributs XML : nom + valeur entre quotes, et rappeler l’interdiction de mettre des balises dans la valeur d’un attribut.
- Savoir utiliser xml:lang : valeur = code ISO 639 éventuellement complété par sous-codes ISO 3166 (exemples fr-FR, fr-CA, br).
- Maîtriser la DTD : rôle, DTD interne vs externe (DOCTYPE avec crochets vs SYSTEM), et déclarations d’éléments (texte #PCDATA, vide EMPTY, séquence, choix, indicateurs ?, +, *).
- Savoir déclarer des attributs dans la DTD : syntaxe <!ATTLIST ...>, types (CDATA, ID, IDREF, IDREFS, ENTITY, etc.) et valeurs implicites (#REQUIRED, #IMPLIED, #FIXED, valeur par défaut).
- Savoir insérer des entités : appel &nom; ; distinguer entité interne (définie dans la DTD) et entité externe (SYSTEM vers fichier/URL).
Erstelle deine eigenen Lernzettel
Importiere deinen Kurs und die KI erstellt in 30 Sekunden Lernzettel, Quizze und Karteikarten.
Lernzettel-Generator