Copyright © 2023 Yves MARCOUX; dernière modification de cette page: 2023-01-05.

INU3011 Documents structurés

Exercices auto-évalués à faire après le Cours 2

Yves MARCOUXEBSIUniversité de Montréal

Préalables :

Sauf s’il est demandé d’identifier des erreurs, tous les documents présentés sont bien formés.


Table des matières

Création de documents bien formés

Identification de constructions syntaxiques

Ce fichier texte est-il un document XML bien formé ?

Questions générales


Création de documents bien formés

Avant de regarder les exemples donnés en réponse, créez vos propres documents dans oXygen, tel qu’expliqué dans cette section de Comment lire ce Tour d’horizon ?, et vérifiez-en le bien-formé (Ctrl+Maj+W).

  1. Créez un document ne comportant qu’un seul élément.
    - Réponse

    Quelques-unes des réponses possibles :

    • <a/>

    • <accès>P</accès>

    • <suggestion type="farfelue">Changer le nom XML en ZML !
      <!-- C’est n’importe quoi, non ? -->
      </suggestion>

  2. Créez un document dont le contenu textuel est vide.
    - Réponse

    Quelques-unes des réponses possibles :

    • <a />

    • <accès><clé valeur="3K47" /></accès>

    • <suggestion type="discrète"><!--Aucune idée…--></suggestion>

  3. Créez un document incluant quelque part au moins une spécification d’attribut.
    - Réponse

    Quelques-unes des réponses possibles :

    • <a a="a"/>

    • <repas breuvage="café" dessert="tarte">Délicieux !</repas>

    • <conseils>
        <conseil important="oui">Don't do drugs</conseil>
      </conseils>

    • <slogan portée='public'><fort>Un pour tous</fort></slogan>

  4. Créez un document comportant une balise auto-fermante avec au moins une spécification d’attribut.
    - Réponse

    Quelques-unes des réponses possibles :

    • <monDoc><a a = "a" b = 'b' /></monDoc>

    • <essai sel="poivre" />

  5. Créez un document comportant au moins un commentaire.
    - Réponse

    Une des réponses possibles :

    <monDoc>
      Contrairement à ce qu'on pourrait penser,
      ce document contient <emph>un seul sous-élément</emph>
      <!-- <emph>et non deux</emph> -->!
    </monDoc>

    Rappelons qu’en aucun cas un commentaire ne peut survenir à l’intérieur d’une balise; ainsi, ceci est mal formé :

    <roman <!-- ébauche --> >
      À rédiger
    </roman>
  6. Créez un document comportant exactement trois éléments, portant tous le nom joker.
    - Réponse

    Réponse minimaliste :

    <joker><joker/><joker/></joker>

    Une autre des réponses possibles :

    <joker>
      Comme si ce n’était pas assez d’avoir un joker, ou
      même deux, comme dans un <joker>jeu de cartes</joker>,
      nous, on en a <joker>trois</joker>!
    </joker>

Identification de constructions syntaxiques

  1. Soulignez le prologue dans le document suivant :

    <!-- Petit document --> <doc>
      Rien à signaler.
    </doc><!-- C’était très court. -->

    - Réponse

    <!-- Petit document --> <doc>
      Rien à signaler.
    </doc><!-- C’était très court. -->

    Le prologue est tout ce qui vient avant l’élément-document, incluant les blancs.

  2. Soulignez l’élément-document dans le document suivant :

    <!-- Petit document --> <doc>
      Rien à signaler.
    </doc><!-- C’était très court. -->

    - Réponse

    <!-- Petit document --> <doc>
      Rien à signaler.
    </doc>
    <!-- C’était très court. -->

    L’élément-document est tout le document, sauf le prologue et l’épilogue.

  3. Soulignez le contenu de l’élément-document dans le document suivant :

    <doc>  Rien à signaler. </doc>

    - Réponse
    <doc>  Rien à signaler. </doc>

    Tout ce qu’il y a entre les balises d’un élément est son contenu, y compris les espaces et autres blancs.

  4. Soulignez le contenu textuel de l’élément-document dans le document suivant :

    <doc>  Rien à signaler. </doc>

    - Réponse
    <doc>  Rien à signaler. </doc>

    Le contenu textuel est identique au contenu, car l’élément-document n’a aucun élément descendant.

  5. Soulignez le contenu textuel de l’élément-document dans le document suivant :

    <doc>Problème <!--Rien--> à signaler. </doc>

    - Réponse
    <doc>Problème <!--Rien--> à signaler. </doc> </doc>

    Les commentaires sont exclus du contenu textuel d’un élément.

  6. Soulignez les identificateurs génériques (ou noms d’élément) dans le document suivant :

    <para>
      <excl>Pas facile</excl> de rédiger un document
      qui contient &amp;lt;.
    </para>

    - Réponse

    Il ne faut pas oublier les noms d’élément que l’on retrouve dans les balises de fin.

    <para>
      <excl>Pas facile</excl> de rédiger un document
      qui contient &amp;lt;.
    </para>

  7. Soulignez les balises de fin dans le document suivant :

    <para>
      <excl>Pas facile</excl> de rédiger un document
      qui contient &amp;amp;.
    </para>

    - Réponse

    <para>
      <excl>Pas facile</excl> de rédiger un document
      qui contient &amp;amp;.
    </para>

  8. Soulignez les balises auto-fermantes dans le document suivant :

    <MEMO>
      <CONFIDENTIEL/> <PERSONNEL />
      <AUTEUR>Julien</AUTEUR><DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MEMO>

    - Réponse

    <MEMO>
      <CONFIDENTIEL/> <PERSONNEL />
      <AUTEUR>Julien</AUTEUR><DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MEMO>

  9. Soulignez les balises de début dans le document suivant :

    <MESSAGE>
      <PERSONNEL/><CONFIDENTIEL/>
      <AUTEUR>Julien</AUTEUR>
      <DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MESSAGE>

    - Réponse

    Les balises auto-fermantes ne sont pas des balises de début (ni des balises de fin, d’ailleurs).

    <MESSAGE>
      <PERSONNEL/><CONFIDENTIEL/>
      <AUTEUR>Julien</AUTEUR>
      <DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MESSAGE>

  10. Dans le document suivant, soulignez les éléments qui ne contiennent aucun sous-élément :

    <MESSAGE>
      <PERSONNEL/> <CONFIDENTIEL/>
      <AUTEUR>Linda</AUTEUR>
      <DESTINATAIRE>Francesca</DESTINATAIRE>
      <SUJET>As-tu hâte aux <EM>vacances</EM> ?</SUJET>
    </MESSAGE>

    - Réponse

    <MESSAGE>
      <PERSONNEL/> <CONFIDENTIEL/>
      <AUTEUR>Linda</AUTEUR>
      <DESTINATAIRE>Francesca</DESTINATAIRE>
      <SUJET>As-tu hâte aux <EM>vacances</EM> ?</SUJET>
    </MESSAGE>

  11. Soulignez les éléments vides dans le document suivant :

    <MESSAGE>
      <CONFIDENTIEL/> <PERSONNEL />
      <AUTEUR>Julien</AUTEUR><DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MESSAGE>

    - Réponse

    Un élément vide s’exprime par une balise auto-fermante ou par une balise de début et une balise de fin collées.

    <MESSAGE>
      <CONFIDENTIEL/> <PERSONNEL />
      <AUTEUR>Julien</AUTEUR><DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MESSAGE>

  12. Soulignez les appels d’entité prédéfinie dans le document suivant :

    <para>Pas facile de rédiger un document
    qui contient &amp;amp;.</para>

    - Réponse

    Il n’y en a qu’un.

    <para>Pas facile de rédiger un document
    qui contient &amp;amp;.</para>

  13. Soulignez les commentaires dans le document suivant :

    <para>Pas facile de <!--rédiger-->créer un<!-- document
    qui contient--> fichier contenant &amp;amp;!</para>

    - Réponse

    Il y en a deux, dont un qui s’étend sur deux lignes.

    <para>Pas facile de <!--rédiger-->créer un<!-- document
    qui contient-->
    fichier contenant &amp;amp;!</para>

  14. Soulignez les appels d’entité prédéfinie dans le document suivant :

    <para>J’aimerais bien inscrire un &lt; <!-- et un &amp; -->
    dans mon document, mais je ne peux pas le faire directement.</para>

    - Réponse

    Il n’y en a qu’un. Le &amp; contenu dans le commentaire est ignoré et ne compte donc pas.

    <para>J’aimerais bien inscrire un &lt; <!-- et un &amp; -->
    dans mon document, mais je ne peux pas le faire directement.</para>

  15. Soulignez les spécifications d’attribut dans le document suivant :

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

    - Réponse

    Il y en a trois en tout, dont deux sur le même élément.

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

  16. Soulignez les balises qui contiennent au moins une spécification d’attribut dans le document suivant :

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

    - Réponse

    Une balise commence toujours par < et se poursuit jusqu’au prochain >, même si elle contient des spécifications d’attribut.

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

  17. Soulignez les noms d’attribut dans le document suivant :

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

    - Réponse

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

  18. Soulignez les valeurs d’attribut dans le document suivant :

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

    - Réponse

    <anecdote type = 'humour' cote ="PG" >
      <intro type="classique">Une fois,</intro> c’est un gars…</anecdote>

  19. Soulignez le contenu textuel de l’élément intro dans le document suivant :

    <anec><intro type="1F" >Une fois,</intro> c’t’un gars…</anec>

    - Réponse

    <anec><intro type="1F" >Une fois,</intro> c’t’un gars…</anec>

  20. Soulignez le contenu textuel du document suivant :

    <anec><intro type="1F" >Une fois,</intro> c’t’un gars…</anec>

    - Réponse

    <anec><intro type="1F" >Une fois,</intro> c’t’un gars…</anec>

  21. Soulignez le contenu de l’élément anec dans le document suivant :

    <anec><intro type="1F" >Une fois,</intro> c’t’un gars…</anec>

    - Réponse

    <anec><intro type="1F" >Une fois,</intro> c’t’un gars…</anec>


Ce fichier texte est-il un document XML bien formé ?

Pour chaque fichier texte montré, dites s’il s’agit ou non d’un document XML bien formé et sinon, décrivez le problème.

  1. Fichier texte :
    <employés>
      <employé no="1">
        <nom>Roy, Lucie</nom>
        <adresse>2, rue Bray</adresse>
      </employé>
      <employé no="2">
        <nom>Bray, Luc</nom>
      </employé>
    </employés>
    - Réponse

    Bien formé.

  2. Fichier texte :
    <saga durée='2 siècles' auteur = "Thor">
      À venir…
    </saga>
    - Réponse

    Bien formé.

  3. Fichier texte :
    <saga durée='2 siècles' auteur = "Thor">
      À venir…
    </saga ouf="enfin">
    - Réponse

    Mal formé : Une balise de fin ne peut pas contenir de spécification d’attribut.

  4. Fichier texte :
    <saga longue-durée auteur = "Thor">
      À venir…
    </saga>
    - Réponse

    Mal formé : longue-durée sera interprété comme un nom d’attribut et alors, il devrait être suivi du signe = puis d’une valeur d’attribut entre guillemets (simples ou doubles).

  5. Fichier texte :
    <scpd action="3" action="4" />
    - Réponse

    Mal formé : le même attribut (action) est spécifié plus d’une fois sur le même élément.

  6. Fichier texte :

    <étapes>
      <1>Commencer la recette</1>
      <2>Terminer la recette</2>
    </étapes>

    - Réponse

    Mal formé : un nom d’élément ne peut pas commencer par un chiffre, il doit commencer par une lettre ou le caractère de soulignement « _ ».

  7. Fichier texte :

    <slogan>En recherche & développement, nous sommes #1 !</slogan>

    - Réponse

    Mal formé : l’esperluette (&) ne peut être inscrite directement comme texte dans un élément (ni dans une valeur d’attribut, d’ailleurs).

  8. Fichier texte :

    <slogan type="<hourra>">
      Numéro un cette année encore !
    </slogan>

    - Réponse

    Mal formé : le caractère (<) ne peut être inscrit directement dans une valeur d’attribut (ni comme texte dans un élément, d’ailleurs).

  9. Fichier texte :

    <slogan type="{hourra}">
      Est-on 100% @ votre service pour vos [$$$] ? Oui !
    </slogan>

    - Réponse

    Bien formé : les seuls caractères qu’on ne peut pas inscrire directement comme texte dans un élément (ou dans une valeur d’attribut) sont le plus-petit-que < et l’esperluette &. Tous les autres caractères, « spéciaux » ou non, peuvent être inscrits directement.

  10. Fichier texte :

    <étape>Casser les œufs.</étape>
    <étape>Brasser les œufs.</étape>
    <étape>Cuire les œufs.</étape>

    - Réponse

    Mal formé : il n’y a pas d’élément de plus haut niveau.

  11. Fichier texte :

    <para>
      <emph>Jamais !</emph> s'écria-t-il.
    </para>

    - Réponse

    Bien formé. Le document contient directement à la fois un sous-élément et un bout de texte, ce qui est tout à fait correct.

  12. Fichier texte :

    <citation>
      Quand l’inspiration vient à manquer, il faut se tourner vers les classiques.
    <citation />

    - Réponse

    Mal formé. La balise finale n’est pas une balise de fin, mais une balise auto-fermante.

Pour d’autres exemples de documents mal formés, avec explications, voir le dossier 007-malformes dans les exemples du cours.


Questions générales

  1. Vrai ou faux : Dans un fichier texte qui est aussi un document XML, les caractères ont chacun une couleur distinctive, selon leur rôle dans la syntaxe de XML.
    - Réponse

    Faux Un document XML est un fichier texte, dans lequel les notions de couleur ou de police de caractères n’existent pas. Plusieurs outils qui comprennent le format XML appliquent une coloration syntaxique lorsqu’ils affichent un document XML, ce qui permet d’identifier facilement la plupart des constructions syntaxiques de XML, mais cela ne change rien au fait que dans le document XML lui-même, il n’y a aucune notion de couleur du texte.

  2. Vrai ou faux : XML est une recommandation de l’organisation internationale de normalisation ISO.
    - Réponse

    Faux XML est une recommandation du W3C (World Wide Web Consortium).

  3. Vrai ou faux : Il existe une version 1.1 de XML.
    - Réponse

    Vrai Cependant, elle est peu utilisée.

  4. Pour une organisation productrice d’information, rendre le XML publiquement accessible est (choisir tout ce qui s’applique) :
    1. une façon de faire de l’argent avec son information.
    2. un signe d’ouverture à la collaboration avec des partenaires potentiels.
    3. une façon de maximiser la diffusion de son information.
    4. une sérieuse brèche de sécurité.
    - Réponse

    2 et 3

  5. Vrai ou faux : Le bien-formé est un ensemble de règles sémantiques permettant d’interpréter correctement le contenu d’un document XML.
    - Réponse

    Faux Le bien-formé est un ensemble de règles syntaxiques.

  6. Complétez l’énoncé en choisissant une seule continuation. À l’heure actuelle, XML est :
    1. très utilisé dans à peu près tous les domaines de la gestion de l’information.
    2. très utilisé dans quelques créneaux très précis.
    3. de façon générale, assez peu utilisé.
    - Réponse

    1

  7. Vrai ou faux : Si on connaît l’URL d’un document XML auquel on a accès sur le Web, on peut l’ouvrir directement dans oXygen.
    - Réponse

    Vrai

  8. Complétez l’énoncé en choisissant une seule continuation. Les navigateurs Web redisposent les documents XML sans égard aux espaces et sauts de ligne dans le but premier de :
    1. optimiser l’utilisation de l’espace d’affichage.
    2. dynamiser la consultation du document par l’utilisateur.
    3. mettre en évidence la structure hiérarchique de l’information.
    - Réponse

    3 La dynamisation de la consultation du document (pliage et dépliage des éléments) s’appuie sur la mise en évidence de la structure hiérarchique et serait impossible sans elle.

  9. Vrai ou faux : Créer un document XML dans un simple éditeur de texte est une tâche à laquelle seule une informaticienne chevronnée peut penser s’attaquer.
    - Réponse

    Faux

  10. Comment nomme-t-on des caractères qui ne produisent aucune trace visible à l’écran.
    - Réponse

    Des caractères blancs, ou simplement blancs.

  11. Vrai ou faux : Il est possible que le nom d’un document XML n’ait pas l’extension .xml.
    - Réponse

    Vrai Par exemple, les images en format SVG ont habituellement un nom avec l’extension .svg, même s’il s’agit de fichiers XML (parce que le format SVG est basé sur XML).

  12. Vrai ou faux : Historiquement, le développement de XML s’est appuyé, entre autres, sur les deux normes pré-existantes Universal Business Language (UBL) et Universal Plug and Play (UPnP).
    - Réponse

    Faux Ces deux normes sont basées sur XML et ont donc été développées après XML.

  13. Vrai ou faux : XML est dérivé d’une norme antérieure appelée SGML (ISO 8879).
    - Réponse

    Vrai

  14. Vrai ou faux : Comparées à celles de HTML, les règles de syntaxe de XML sont plus strictes.
    - Réponse

    Vrai Par exemple, les guillemets entourant les valeurs d’attribut peuvent être omis dans certains cas en HTML, mais jamais en XML.

  15. Vrai ou faux. En XML, tous les éléments commencent par le caractère "<" et se terminent par le caractère ">".
    - Réponse
    Vrai
  16. Vrai ou faux. En XML, toutes les balises commencent par le caractère "<" et se terminent par le caractère ">".
    - Réponse
    Vrai
  17. Selon les conventions de présentation des exemples utilisées dans le cours, combien de caractères le document XML suivant comporte-t-il (un saut de ligne compte comme un caractère) ?
    <ok¤>¤⤶
    Ça¤va</ok¤>⤶
    - Réponse

    19 caractères.

  18. Quels éléments ont un contenu mixte dans le document suivant ?

    <para>
      <excl>Pas facile</excl> de rédiger un document
      qui contient &amp;lt;.
    </para>

    - Réponse

    L’élément para est le seul élément à avoir un contenu mixte (rappel : un contenu mixte est composé d’au moins un caractère de contenu textuel direct non blanc et d’au moins un sous-élément).

  19. Combien d’éléments le document suivant compte-t-il ?

    <MESSAGE>
      <CONFIDENTIEL/> <PERSONNEL />
      <AUTEUR>Julien</AUTEUR><DESTINATAIRE>Viateur</DESTINATAIRE>
      <SUJET>On s’appelle et on déjeune ?</SUJET>
      <CORPS></CORPS>
    </MESSAGE>

    - Réponse

    Le nombre d’éléments dans un document XML est toujours égal au nombre de balises de début + le nombre de balises auto-fermantes. La réponse est donc 7.

  20. Dans le même document, quel nom l’élément-document porte-t-il ?
    - Réponse

    MESSAGE

  21. Toujours dans le même document, combien d’éléments sont aussi un sous-élément ?
    - Réponse

    Un sous-élément est un élément imbriqué (i.e. contenu) dans un autre élément plus long. Dans tout document XML, seul l’élément-document n’est pas aussi un sous-élément. La réponse est donc 6.

  22. Toujours dans le même document, comment s’appellent les éléments enfants de MESSAGE ? Parmi eux, lesquels sont respectivement l’aîné et le cadet ?
    - Réponse

    Les éléments enfants de MESSAGE sont CONFIDENTIEL, PERSONNEL, AUTEUR, DESTINATAIRE, SUJET et CORPS. L’aîné et le cadet sont respectivement CONFIDENTIEL et CORPS.

  23. Combien d’éléments sont descendants de MESSAGE dans le document suivant ?

    <MESSAGE>
      <!-- <PERSONNEL/><CONFIDENTIEL/> -->
      <AUTEUR>Linda</AUTEUR>
      <DESTINATAIRE>Francesca</DESTINATAIRE>
      <SUJET>As-tu hâte aux <EM>vacances</EM> ?</SUJET>
    </MESSAGE>

    - Réponse

    Quatre : AUTEUR, DESTINATAIRE, SUJET et EM. Le commentaire lui-même n’est pas un élément, et son contenu, même s’il ressemble à une suite de deux éléments, est ignoré et ne peut donc en aucun cas comporter des éléments.