Copyright © 2023 Yves MARCOUX; dernière modification de cette page : 2023-02-20.
« Hypothèses de documents valides »
Yves MARCOUX – EBSI – Université de Montréal
Préalables : Cours 6 et 7.
Cet exercice consiste à transcrire en un document XML bien formé un document présenté sous forme traditionnelle. Pour chaque document donné, on imagine que l’on est en train de modéliser les documents de ce type et qu’on en est à rédiger en XML bien formé des « hypothèses de documents valides ». On porte attention au respect des principes de modélisation.
<lettre-personnelle>
<titre>Mes dernières vacances</titre>
<paragraphe>J’ai mangé de la dinde, <emphase>beaucoup</emphase> de dinde,
et j’ai bu du café, <emphase>beaucoup</emphase> de café !</paragraphe>
<signature>Le Goinfre</signature>
</lettre-personnelle>
Le contenu propre du message se résume à ce qui apparaît en vert.
Avant de regarder la transcription proposée, prenez quelques moments pour réfléchir à comment ce message pourrait être représenté en XML bien formé de façon à ce que ses principales parties constitutives soient bien identifiables, que toute l’information soit représentée, et qu’elle soit découpée assez finement pour qu’un simple positionnement géométrique ou style de présentation des éléments permette de reconstituer l’apparence « standard » ci-dessus.
<message-téléphonique>
<entête>
<date>2024-02-01</date>
<heure>13:48</heure>
<pour>Jean Dion</pour>
</entête>
<message-de>
<nom>Jeanne Dupont</nom>
<no-téléphone>514-567-8901</no-téléphone>
</message-de>
<détails>
<a-appelé/>
<rappelera/>
</détails>
<message>
<paragraphe>Demande de préparer le dossier Dupuis.</paragraphe>
<paragraphe>Vous souhaite aussi <em>bonne fête</em>!</paragraphe>
</message>
<message-pris-par>Luc Roy</message-pris-par>
</message-téléphonique>
Discussion:
Nous avons adopté un structure générale qui découpe le message en cinq sections
qui correspondent grosso modo à une division verticale de la forme
papier : entête, message-de, détails,
message et message-pris-par.
La section détails est constituée exclusivement d’éléments vides,
chacun correspondant à une case à cocher. En effet, ces éléments d’information
ne demandent aucune qualification additionnelle autre que leur présence ou
absence, qui correspondent respectivement au fait que la case correspondante est
cochée ou non.
Notez que la partie message
doit être subdivisée en sous-éléments puisque, comme l’exemple le
montre bien, son contenu ne consiste pas en un seul bloc de texte, mais bien en
une suite de blocs séparés, que nous avons appelés paragraphes.
L’exemple montre aussi un passage mis en évidence (par soulignement), que
nous avons traduit dans la transcription par un élément em (pour
« emphase »). Utiliser souligné ou quelque
chose du genre comme nom d’élément aurait été contraire à la philosophie du
balisage logique, puisque alors le balisage aurait traduit la mise en
forme du contenu, et non le pourquoi de cette mise en forme. Le
pourquoi de la mise en forme (pourquoi l’information est soulignée) est ici
qu’il s’agit d’un passage sur lequel on désire attirer
l’attention. Le nom d’élément em traduit donc la
nature de l’élément de contenu, alors que souligné
aurait traduit le formatage désiré.
Nous avons choisi d’utiliser des identificateurs génériques en français, sous l’hypothèse que les documents seraient principalement utilisés dans un environnement francophone, mais cela n’empêcherait pas d’utiliser des intitulés en anglais (ou dans n’importe quelle autre langue) au moment du stylage.
Le contenu propre du chèque se résume à ce qui apparaît en écriture cursive et aux informations encerclées sur l’image.
<chèque-BoM>
<payeur>
<nom>Paul Prudhomme</nom>
<adresse>
<adresse1>1234, Rue des Pins</adresse1>
<adresse2>Montréal, Qc</adresse2>
<code-postal>H3K 1A9</code-postal>
</adresse>
</payeur>
<numéro>001</numéro>
<date><année>2025</année><mois>02</mois><jour>28</jour></date>
<payer-à>Jean Trudel</payer-à>
<montant>
<dollars>234</dollars>
<cents>56</cents>
</montant>
<motif-du-paiement>Abonnement au journal</motif-du-paiement>
<transit>27861001</transit>
<numéro-de-compte>1234567</numéro-de-compte>
<signature-présente/>
</chèque-BoM>
Discussion:
Plusieurs questions sont soulevées dans cet exercice. Notamment : comment représenter la signature manuscrite qui figure sur le chèque ? Mais d’autres questions plus subtiles se posent : les deux premiers chiffres de l’année, qui sont déjà imprimés sur le blanc de chèque doivent-ils être inscrits comme information spécifique au chèque ? Jusqu’à quel niveau de détail modéliser l’adresse du payeur ? Le numéro du chèque et le montant, qui figurent à deux endroits sur le chèque physique, doivent-ils être dupliqués dans le document numérique ?
Voyons, élément par élément, quelles réponses sont sous-jacentes à la solution présentée ci-dessus :
chèque-BoMmontant et numéroadressedatesignature-présentemotif-du-paiement