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

INU3011 Documents structurés

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

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

Questions sur les entités

Questions sur la validité


Création de documents bien formés

Avant de regarder les exemples donnés en réponse, créez votre propre réponse dans oXygen et vérifiez-en le bien-formé. Profitez-en pour sauvegarder votre document et le visualiser en navigateur Web.

  1. En n’utilisant aucun appel d’entité, créez un document à un seul élément, avec une spécification d’attribut et un contenu textuel, dont l’identificateur générique, le nom d’attribut, la valeur d’attribut et le contenu textuel sont tous les quatre constitués exclusivement de caractères arméniens.
    - Réponse

    Une des réponses possibles :

    <ԵՔՖա ՐՎԿԲ="ՈԻԶՏ">ՊԷՃԳ</ԵՔՖա> Rendu en navigateur : 7.png.
  2. À partir du document précédent, remplacez chacun des caractères du contenu textuel par un appel d’entité caractère correspondant. Le document obtenu doit être entièrement équivalent au précédent, et l’affichage obtenu en navigateur devrait être identique à celui obtenu avec le document précédent.
    Conseil : Dans oXygen, sélectionnez le passage à transformer en appels de caractère, puis faites Document → Source → Échapper la sélection. Cette fenêtre s’ouvre :
    echapper.png
    Cochez Échapper les caractères Unicode commençant par et inscrivez 255 dans la boîte de saisie. Quand vous cliquerez OK, les caractères spéciaux seront transformés en appels de caractère équivalents.
    - Réponse

    Réponse correspondant au document de la réponse précédente :

    <ԵՔՖա ՐՎԿԲ="ՈԻԶՏ">&#x54a;&#x537;&#x543;&#x533;</ԵՔՖա>
  3. À partir du document précédent, remplacez maintenant chacun des caractères de la valeur d’attribut par l’appel d’entité caractère correspondant. Le document obtenu doit être entièrement équivalent au précédent, et l’affichage obtenu en navigateur web devrait être identique à celui obtenu avec le document précédent.
    - Réponse

    Réponse correspondant au document de la réponse précédente :

    <ԵՔՖա ՐՎԿԲ="&#x548;&#x53b;&#x536;&#x54f;">&#x54a;&#x537;&#x543;&#x533;</ԵՔՖա>
  4. Pouvez-vous créer un document équivalent à votre document de la question précédente, qui ne contienne, en tant que fichier texte, aucun caractère arménien ? Expliquez votre réponse.
    - Réponse

    Non, ce n’est pas possible. L’identificateur générique dans les balises de début et de fin, de même que le nom d’attribut, doivent être inscrits en caractères arméniens, puisqu’un nom d’élément ou d’attribut ne peut pas contenir d’appel d’entité caractère. Notez qu’il est possible de le faire en utilisant une entité générale déclarée, mais ce type de construction n’est pas inclus dans notre Premier tour d’horizon de XML.

  5. En n’utilisant aucun appel d’entité, créez un document qui s’affiche ainsi en navigateur web (« flèche » se dit arrow en anglais) :

    1.png

    - Réponse

    <Upwards_Arrow>↑</Upwards_Arrow>

    Rappel : Dans oXygen, le caractère « ↑ » peut être inséré en faisant ÉditerInsérer à partir de la table de caractères…. Sélectionner l’onglet Détails, puis taper « arrow » dans la boîte Rechercher:. Faire dérouler la liste de caractères vers le bas jusqu’à ce que le caractère voulu soit visible. Cliquer dessus, puis sur Insérer.

  6. En n’utilisant aucun appel d’entité, créez un document qui s’affiche ainsi en navigateur web (pensez à comment se disent mâle et femelle en anglais) :

    2.png

    - Réponse

    <question énoncé = " ou ?" />

  7. En utilisant le moins possible d’appels d’entité, créez un document qui s’affiche ainsi en navigateur web :

    3.png

    - Réponse

    Une des réponses possibles :

    <message>
       Si x &lt; 9 &amp; que x > 0, est-ce que x &lt; 10 ?
    </message>
  8. Sachant que le numéro Unicode décimal du « é » est 233, créez un document qui ne contient aucun caractère accentué et s’affiche ainsi en navigateur web :

    4.png

    - Réponse

    <adage>Les &#233;toiles &#233;hont&#233;es nous &#233;berluent.</adage>

  9. Créez un document dans lequel les cinq entités prédéfinies sont utilisées.
    - Réponse

    Une des réponses possibles :

    <exemple exemple="&gt;&apos;"> &lt; &amp;
    &quot;</exemple>

    Pas très intéressant, comme document, mais les cinq entités prédéfinies y sont utilisées. Voici son rendu en navigateur web : 6.png.


Questions sur les entités

  1. Soulignez les appels d’entité dans le document suivant :
    <MÉMO>
      <AUTEUR>Julia Royer</AUTEUR>
      <DESTINATAIRES>
         <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
         <NOM>&#201;milie Dugr&#233;</NOM>
      </DESTINATAIRES>
      <SUJET>Invitation</SUJET>
      <PAR>Veuillez noter que la prochaine r&#233;union du CA
         se tiendra chez Barton &amp; Guestier.</PAR>
    </MÉMO>
    - Réponse
    <MÉMO>
      <AUTEUR>Julia Royer</AUTEUR>
      <DESTINATAIRES>
         <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
         <NOM>&#201;milie Dugr&#233;</NOM>
      </DESTINATAIRES>
      <SUJET>Invitation</SUJET>
      <PAR>Veuillez noter que la prochaine r&#233;union du CA
         se tiendra chez Barton &amp; Guestier.</PAR>
    </MÉMO>
  2. Sachant que le numéro Unicode décimal du « é » est 233 (E9 en hexadécimal), les deux documents suivants produisent-ils le même affichage en navigateur web?

    <doc>Récrée-toi bien, Gédéon.</doc>

    <doc>Ré&#233;cré&#233;e-toi bien, Gé&#233;dé&#233;on.</doc>

    - Réponse

    Non, dans le second document, les appels d’entité caractère (&#233;) ont été ajoutés à côté des « é », au lieu de les remplacer. Le rendu en navigateur sera donc 5.png.

  3. Sachant que le numéro Unicode décimal du « é » est 233 (E9 en hexadécimal), les deux documents suivants produisent-ils le même affichage en navigateur web?

    <doc>R&#233;cr&#233;e-toi bien, G&#233;d&#233;on.</doc>

    <doc>Récr&#xe9;e-toi bien, G&#xE9;d&#233;on.</doc>

    - Réponse

    Oui.

  4. Soulignez les appels d’entité dans le document suivant :
    <DESTINATAIRES>
       <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
    <!--   <NOM>&#201;milie Dugr&#233;</NOM>  -->
    </DESTINATAIRES>
    - Réponse
    <DESTINATAIRES>
       <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
    <!--   <NOM>&#201;milie Dugr&#233;</NOM>  -->
    </DESTINATAIRES>

    Il n’y en a qu’un seul, puisque les chaînes &#201; et &#233; ne sont pas reconnues comme des appels d’entité dans un commentaire.

  5. Soulignez les appels d’entité prédéfinie dans le document suivant :
    <DESTINATAIRES>
       Mme <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
       &amp; Mme <NOM>&#201;milie Dugr&#233;</NOM>.
    </DESTINATAIRES>
    - Réponse
    <DESTINATAIRES>
       Mme <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
       &amp; Mme <NOM>&#201;milie Dugr&#233;</NOM>.
    </DESTINATAIRES>

    Il n’y en a qu’un seul. Pour information, voici un rendu typique en navigateur web de ce document : 8.png

  6. Soulignez les appels d’entité caractère dans le document suivant :
    <DESTINATAIRES>
       Mme <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
       &amp; Mme <NOM>&#201;milie Dugr&#233;</NOM>.
    </DESTINATAIRES>
    - Réponse
    <DESTINATAIRES>
       Mme <NOM COURRIEL="sp&#x40;picard.com">Sylvie Picard</NOM>
       &amp; Mme <NOM>&#201;milie Dugr&#233;</NOM>.
    </DESTINATAIRES>
  7. Sachant que le numéro Unicode décimal du « é » est 233, le document suivant est-il bien formé?

    <&#233;clairage>néon standard</&#233;clairage>

    - Réponse

    Non, un appel d’entité ne peut pas se trouver dans un nom d’élément.

  8. Sachant que le numéro Unicode décimal du « é » est 233, le document suivant est-il bien formé?

    <équipement type="&#233;clairage">néon standard</équipement>

    - Réponse

    Oui, un appel d’entité peut se trouver dans une valeur d’attribut.

  9. Sachant que le numéro Unicode décimal du « é » est 233 (E9 en hexadécimal), le document suivant est-il bien formé?

    <plante cat&#xE9;gorie="hévéa" />

    - Réponse

    Non, un appel d’entité ne peut pas se trouver dans un nom d’attribut.

  10. Sachant que le numéro Unicode décimal du « é » est 233 (E9 en hexadécimal), le document suivant est-il bien formé?

    <plante catégorie="h&#E9;v&#E9;a" />

    - Réponse

    Non, pour utiliser le numéro de caractère en hexadécimal dans un appel d’entité caractère, il faut inscrire un x après le #.

  11. Sachant que le numéro Unicode décimal du « é » est 233 (E9 en hexadécimal), le document suivant est-il bien formé?

    <plante catégorie='hév&#233;a' />

    - Réponse

    Oui.

  12. Sachant que le numéro Unicode décimal du « é » est 233 (E9 en hexadécimal), le document suivant est-il bien formé?

    <plante catégorie='h&eacute;v&eacute;a' />

    - Réponse

    Non, les entités HTML ne peuvent pas être utilisées en XML. Les applications (navigateur Web ou autres) donneront un message d’erreur du genre : L’entité "eacute" n’a pas été déclarée.


Questions sur la validité

  1. Quelles informations une gestionnaire d’information doit-elle transmettre à des auteurs potentiels pour qu’ils puissent créer des documents valides selon la DTD qu’elle a établie ?
    - Réponse

    Elle doit leur fournir l’adresse informatique de la DTD (par exemple, son URL sur le Web) et le nom de l’élément de plus haut niveau qu’ils doivent utiliser.

  2. Vrai ou faux. Un document valide n’est pas nécessairement bien formé.
    - Réponse

    Faux. Un document valide est d’abord et avant tout bien formé, en plus de respecter des règles syntaxiques additionnelles exprimées dans une DTD.

  3. Si rédiger un document bien formé est un peu comme écrire des informations sur une feuille blanche, à quoi peut-on comparer la rédaction d’un document valide ?
    - Réponse

    À remplir un formulaire. Les règles de la DTD agissent un peu comme les différentes zones du formulaire pour orienter l’auteur à inscrire les informations aux bons endroits et sous la bonne forme.

  4. Vrai ou faux. Une application XML non validante refuse les documents valides.
    - Réponse

    Pas forcément. Elle peut accepter des documents valides, mais ne vérifie pas que les documents respectent les règles additionnelles exprimées dans la DTD. Les navigateurs Web sont des applications non validantes, mais elles ne refusent aucun document bien formé, valide ou non.