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

INU3011 Documents structurés

Travailler avec un modèleXML3011

Yves MARCOUXEBSIUniversité de Montréal


Table des matières

Introduction

Créer un modèleXML3011

Choisir le mode d’édition

Conseils valables pour les deux modes d’édition

Conseil pour le mode Auteur

Conseil pour le mode Texte

Rédaction du modèle

Éléments

Attributs

Commentaires de modélisation

Produire les fichiers dérivés (DTD et tableau navigable)

Annexe – Exemple de modèle et de fichiers dérivés

Le modèleXML3011

La DTD dérivée

Le tableau HTML navigable dérivé


Introduction

Un modèleXML3011 est une représentation d’un modèle XML suffisamment riche pour qu’il soit possible d’en dériver automatiquement une DTD commentée et un tableau HTML navigable (i.e., contenant des liens internes) des différents éléments du modèle. La DTD inclut des commentaires doc: qu’un éditeur XML (comme oXygen) est capable d’utiliser comme infobulles d’aide à la saisie.

Un modèleXML3011 est lui-même un fichier XML valide selon une DTD. Travailler avec un modèleXML3011 est donc faire du XML au « deuxième degré », dans le sens qu’il s’agit d’un document XML – lui-même conforme à une DTD préexistante spécifique – décrivant le modèle XML que vous êtes en train de mettre au point.


Créer un modèleXML3011

Avant de créer un modèleXML3011, vous devriez d’abord créer un dossier à l’emplacement de votre choix, qui contiendra tous les fichiers gravitant autour de votre modèle. Nous utilisons D:\monModele comme exemple.

Une fois ce dossier créé, il faut y créer à l’aide d’oXygen un nouveau document XML. Pour ce faire, lancez oXygen, puis effectuez les étapes suivantes :

  1. Faites Fichier → Nouveau, puis choisissez Document XML.

  2. Cochez la boîte Enregistrer sous et, comme emplacement de sauvegarde, inscrivez l’URL (dérivée du chemin d’accès) du dossier que vous venez de créer, suivie du nom de fichier EPHN.xml, où vous remplacerez EPHN par le nom de l’élément de plus haut niveau que vous envisagez pour votre modèle, par exemple memo.xml.

    Puisqu’il sert ici de nom de fichier, on s’assure d’inscrire le nom de l’élément sans signe diacritique (accents, cédille, etc.). Ainsi, si nous comptons utiliser l’élément mémo comme élément de plus haut niveau dans notre modèle, nous inscrivons file:/D:/monModele/memo.xml comme emplacement de sauvegarde :

    1.jpg

  3. Cliquez Personnaliser.

  4. Vis-à-vis URL du schéma, collez l’adresse suivante :

    https://cours.ebsi.umontreal.ca/INU3011/modeleXML3011-horiz/modeleXML3011.dtd

  5. Vis-à-vis Élément racine, choisissez modèleXML3011.

    Assurez-vous aussi que la boîte Ajouter du contenu optionnel est décochée et Ajouter la première particule de choix est cochée :

    2.jpg

  6. Enfin, cliquez Créer.

Le fichier de votre modèleXML3011 est maintenant créé (D:\monModele\memo.xml dans notre exemple).

Si vous voulez que le correcteur orthographique français d’oXygen soit actif pendant la rédaction de votre modèleXML3011, ajoutez la spécification d’attribut xml:lang="fr" à la balise de début de l’élément de plus haut niveau (modèleXML3011). La balise complète se lira donc comme suit :

<modèleXML3011 xml:lang="fr">


Choisir le mode d’édition

Vous pouvez travailler à la rédaction de votre modèle dans oXygen en mode Auteur ou en mode Texte. Le mode Texte vous fait voir le XML brut de votre modèle, alors que le mode Auteur offre une présentation plus conviviale.

Si vous prévoyez travailler en mode Auteur, associez à votre document la feuille de style CSS appropriée, en faisant :

Document → Document XML → Associer une feuille de style XSLT/CSS

puis en sélectionnant l’onglet CSS et en collant l’adresse suivante comme URL :

https://cours.ebsi.umontreal.ca/INU3011/modeleXML3011-horiz/modeleXML3011.css

Une fois cette association faite, vous pouvez passer au mode Auteur en faisant :

Document → Mode Édition → Auteur

Vous pouvez en tout temps pendant la rédaction de votre modèle passer d’un mode d’édition à l’autre grâce à cet item de menu.

Conseils valables pour les deux modes d’édition

L’édition d’un modèleXML3011 n’est pas différente de l’édition de n’importe document XML valide. Tous les trucs et fonctions explorés lors du TP 2 peuvent être utilisés, notamment :

De plus, vous pourrez trouver utile d’ouvrir la vue « Sommaire », qui vous permettra de naviguer plus facilement dans votre modèle :

Fenêtre → Afficher la vue → Sommaire

Conseil pour le mode Auteur

Le réglage suivant est recommandé en mode Auteur. Faites d’abord :

Options → Préférences → Éditeur → Modes d’édition → Auteur

puis, à la section Balises, comme « Mode d’affichage des balises », choisissez Toutes les balises, et cochez la boîte « Agencement compact des balises ».

Conseil pour le mode Texte

Faites très régulièrement ré-indenter le code XML de votre document selon la structure hiérarchique des éléments, pour plus de clarté, en cliquant sur l’icône indenter.png dans la barre d’outils (ou en faisant Ctrl+Maj+P).


Rédaction du modèle

La première chose à faire est de renseigner un élément membre, sous équipe au début du document, avec vos prénom, nom et matricule UdeM. Inscrivez ces informations dans les sous-éléments appropriés de membre. Si vous travaillez en équipe, ajoutez un deuxième élément membre à la suite du premier et renseignez-le avec les informations du coéquipier.

Dans l’élément contexteDuModèle, inscrivez une courte description du contexte de création du modèle : pour le compte de qui il a été développé, dans quel but, quelles en sont les principales caractéristiques. Même si le contexte est fictif, vous le présentez ici comme réel. Vous pouvez structurer la description en paragraphes (para) si nécessaire. Vous pouvez aussi utiliser des listes (liste), mettre l’emphase sur certains passages (em) et inclure des URL (url), qui seront transformées en liens externes cliquables dans le tableau navigable.

Dans l’élément EPHN, inscrivez le nom de l’élément de plus haut niveau de votre modèle. Normalement, ce nom sera identique au nom du fichier XML que vous venez de créer (moins l’extension .xml et sans éliminer d’éventuels signes diacritiques). Dans notre exemple, ce sera mémo.

Éléments

Ensuite, pour chaque élément de votre modèle, renseignez un élément élément. Les informations doivent être fournies dans les sous-éléments suivants, qui sont clairement identifiés et documentés par des infobulles :

Attributs

Les attributs de l’élément, s’il y en a, sont décrits dans le dernier sous-élément (facultatif) de l’élément élément. Ce dernier sous-élément s’appelle attributs. Les informations pour chaque attribut sont inscrites dans un sous-élément attribut, contenant lui-même les sous-éléments suivants, qui sont clairement identifiés et documentés par des infobulles :

Commentaires de modélisation

Tant pour un élément que pour un attribut, vous avez la possibilité d’inscrire des commentaires de modélisation, à l’intention de quiconque doit comprendre votre modèle (notamment, dans le cadre du cours, le correcteur), dans le sous-élément facultatif commentairesDeModélisation. Ces commentaires peuvent être utiles, par exemple, pour expliquer une décision de modélisation. Vous pouvez structurer ces commentaires en paragraphes (para) si nécessaire. Vous pouvez aussi utiliser des listes (liste), mettre l’emphase sur certains passages (em) et inclure des URL (url), qui seront transformées en liens externes cliquables dans le tableau navigable.


Produire les fichiers dérivés (DTD et tableau navigable)

Un des avantages de travailler avec un modèleXML3011 est qu’il est possible, à partir de cette source unique, de produire automatiquement une DTD commentée et un tableau navigable (i.e., contenant des liens internes) des éléments du modèle.

Pour dériver ces fichiers :

  1. Récupérez d’abord le projet oXygen modeleXML3011.xpr à partir de ce lien. Sauvegardez-le directement dans votre dossier de modèle (D:\monModele dans nos exemples). Assurez-vous que le fichier est sauvegardé avec l’extension .xpr (certains navigateurs jouent des tours avec les extensions de fichiers sauvegardés); renommez-le au besoin.

  2. Ouvrez ensuite le projet dans oXygen en faisant :

    Projet → Ouvrir le projet

    puis en choisissant le fichier modeleXML3011.xpr tout juste téléchargé.
  3. Une fois le projet modeleXML3011.xpr ouvert, pour produire les fichiers dérivés correspondant à votre modèle, sélectionnez l’onglet d’oXygen où se trouve votre modèleXML3011, puis cliquez sur l’outil config_scenar_transfo.png. La fenêtre de configuration des scénarios de transformation s’ouvre :

    3.jpg

    Cochez la ou les cases correspondant au(x) fichier(s) dérivé(s) que vous voulez produire : DTD pour la DTD et/ou Table pour le tableau HTML navigable; puis cliquez sur Appliquer le/les scénario(s) associé(s).

Les fichiers dérivés sont créés dans le même dossier que le modèleXML3011 (c’est-à-dire D:\monModele dans nos exemples). Le nom de fichier est le même que le modèleXML3011 (memo dans nos exemples), mais avec l’extension .dtd pour la DTD et .html pour le tableau navigable. La DTD s’ouvre automatiquement dans un nouvel onglet d’oXygen et le tableau, dans un nouvel onglet de votre navigateur Web.

Erreurs dans les modèles de contenu

C’est au moment où la DTD s’ouvre dans oXygen que les modèles de contenu inscrits dans les éléments modèleContenuXML sont validés. Si une erreur est détectée, oXygen affichera un message d’erreur au bas de l’onglet d’édition de la DTD. Cliquer sur le message d’erreur pour aller à l’emplacement de l’erreur. Certaines erreurs sont aussi signalées (en rouge) dans le tableau navigable, mais plusieurs types d’erreur ne sont détectés que par oXygen, alors il vaut mieux se fier aux messages d’oXygen.

Si des erreurs sont signalées, il faut les corriger dans les éléments modèleContenuXML correspondants, puis relancer la production automatique des fichiers dérivés.

Tant que le projet modeleXML3011.xpr est ouvert, vous pouvez relancer autant de fois que vous voulez les scénarios de transformation DTD et/ou Table. Si jamais ces scénarios ne sont plus visibles, il suffit de rouvrir le projet modeleXML3011.xpr.


Annexe – Exemple de modèle et de fichiers dérivés

Le modèleXML3011

Cet exemple se trouve au memo.xml (faites afficher la source pour voir le XML brut) :

<!DOCTYPE modèleXML3011 SYSTEM
  "https://cours.ebsi.umontreal.ca/INU3011/modeleXML3011-horiz/modeleXML3011.dtd">
<?xml-stylesheet type="text/css"
  href="https://cours.ebsi.umontreal.ca/INU3011/modeleXML3011-horiz/modeleXML3011.css"?>
<modèleXML3011 xml:lang="fr">
  <équipe>
    <membre>
      <prénom>Charles</prénom>
      <nomFamille>Goldenfarb</nomFamille>
      <matriculeUdeM>12345</matriculeUdeM>
    </membre>
    <membre>
      <prénom>John</prénom>
      <nomFamille>Bozak</nomFamille>
      <matriculeUdeM>23456</matriculeUdeM>
    </membre>
  </équipe>
  <contexteDuModèle>
    <para>Ce modèle définit une structure de mémos pour un système de rédaction, d’envoi
      et de gestion de mémos à l’EBSI <url>https://ebsi.umontreal.ca/</url>.</para>
  </contexteDuModèle>
  <EPHN>mémo</EPHN>
  <éléments>
    <élément>
      <idGen>mémo</idGen>
      <descriptionPourInfobulle>Un mémo de l’EBSI.</descriptionPourInfobulle>
      <modèleContenuXML>(priorité, auteur, date?, destinataires, sujet, cc?, corps?)
        </modèleContenuXML>
      <attributs>
        <attribut>
          <nom>statut</nom>
          <descriptionPourInfobulle>Statut du mémo: en détermine la visibilité. Si omis,
            la valeur "interne" est sous-entendue.</descriptionPourInfobulle>
          <énuméré>
            <valeurPossible>confidentiel</valeurPossible>
            <valeurPossible>interne</valeurPossible>
            <valeurPossible>public</valeurPossible>
          </énuméré>
          <IMPLIED/>
          <commentairesDeModélisation>Nous avons hésité entre "statut" et "visibilité"
            comme nom d’attribut, mais avons opté pour "statut" car c’est l’appellation la
            plus courante à l’EBSI.</commentairesDeModélisation>
        </attribut>
        <attribut>
          <nom>pj</nom>
          <descriptionPourInfobulle>Nom de fichier d’une éventuelle pièce
            jointe.</descriptionPourInfobulle>
          <CDATA/>
          <IMPLIED/>
          <exemplesValeurAttendue>
            <exemple>rapport.pdf</exemple>
            <exemple>photo-2019.jpeg</exemple>
          </exemplesValeurAttendue>
        </attribut>
      </attributs>
    </élément>
    <élément>
      <idGen>priorité</idGen>
      <descriptionPourInfobulle>Priorité d’envoi du mémo.</descriptionPourInfobulle>
      <modèleContenuXML>( normal | urgent | vrac )</modèleContenuXML>
    </élément>
    <élément>
      <idGen>normal</idGen>
      <descriptionPourInfobulle>Priorité normale d’envoi.</descriptionPourInfobulle>
      <modèleContenuXML>EMPTY</modèleContenuXML>
    </élément>
    <élément>
      <idGen>urgent</idGen>
      <descriptionPourInfobulle>Priorité maximale, pour messages
        urgents.</descriptionPourInfobulle>
      <modèleContenuXML>EMPTY</modèleContenuXML>
    </élément>
    <élément>
      <idGen>vrac</idGen>
      <descriptionPourInfobulle>Priorité minimale, pour envois en
        lot.</descriptionPourInfobulle>
      <modèleContenuXML>EMPTY</modèleContenuXML>
    </élément>
    <élément>
      <idGen>destinataires</idGen>
      <descriptionPourInfobulle>Liste des destinataires directs du
        mémo.</descriptionPourInfobulle>
      <modèleContenuXML>(nom+)</modèleContenuXML>
    </élément>
    <élément>
      <idGen>cc</idGen>
      <descriptionPourInfobulle>Liste des récipiendaires d’une copie conforme du
        mémo.</descriptionPourInfobulle>
      <modèleContenuXML>(nom+)</modèleContenuXML>
    </élément>
    <élément>
      <idGen>corps</idGen>
      <descriptionPourInfobulle>Corps du mémo (peut être omis si la ligne sujet
        suffit).</descriptionPourInfobulle>
      <modèleContenuXML>(par+)</modèleContenuXML>
    </élément>
    <élément>
      <idGen>auteur</idGen>
      <descriptionPourInfobulle>Nom de l’auteur du mémo, sous la forme Prénom Nom,
        sans ponctuation finale.</descriptionPourInfobulle>
      <modèleContenuXML>(#PCDATA)</modèleContenuXML>
      <exemplesContenuAttendu>
        <exemple>Jean K. Vanier</exemple>
        <exemple>Marie Hélène Vanier</exemple>
        <exemple>Gilles-A. Tremblay</exemple>
      </exemplesContenuAttendu>
      <attributs>
        <attribut>
          <nom>courriel</nom>
          <descriptionPourInfobulle>Adresse courriel de
            l’auteur.</descriptionPourInfobulle>
          <CDATA/>
          <REQUIRED/>
          <exemplesValeurAttendue>
            <exemple>jack.rabbit@ebsi.com</exemple>
            <exemple>jean_valjean@victor.hugo.net</exemple>
          </exemplesValeurAttendue>
          <commentairesDeModélisation>
            <para>L’adresse courriel est exigée pour l’auteur d’un mémo, de sorte que le
              système de gestion des mémos puisse procéder à l’envoi par courriel aux
              récipiendaires dont l’adresse est précisée.</para>
            <para>En effet, les systèmes d’acheminement du courriel <em>exigent</em> de
              connaître l’adresse de l’expéditeur. L’adresse courriel de l’auteur est donc
              essentielle.</para>
          </commentairesDeModélisation>
        </attribut>
      </attributs>
    </élément>
    <élément>
      <idGen>date</idGen>
      <descriptionPourInfobulle>Date de rédaction du mémo, forme
        AAAA-MM-JJ.</descriptionPourInfobulle>
      <modèleContenuXML>(#PCDATA)</modèleContenuXML>
      <exemplesContenuAttendu>
        <exemple>2020-09-30</exemple>
        <exemple>1970-01-01</exemple>
      </exemplesContenuAttendu>
    </élément>
    <élément>
      <idGen>sujet</idGen>
      <descriptionPourInfobulle>Sujet du mémo (habituellement sans ponctuation
        finale).</descriptionPourInfobulle>
      <modèleContenuXML>(#PCDATA)</modèleContenuXML>
      <exemplesContenuAttendu>
        <exemple>Convocation à l’assemblée générale</exemple>
        <exemple>Nouvelle recrue</exemple>
        <exemple>Party de Noël !</exemple>
      </exemplesContenuAttendu>
    </élément>
    <élément>
      <idGen>nom</idGen>
      <descriptionPourInfobulle>Nom d’un récipiendaire du mémo, sous la forme Prénom Nom,
        sans ponctuation finale.</descriptionPourInfobulle>
      <modèleContenuXML>(#PCDATA)</modèleContenuXML>
      <exemplesContenuAttendu>
        <exemple>Jean K. Vanier</exemple>
        <exemple>Marie Hélène Vanier</exemple>
        <exemple>Gilles-A. Tremblay</exemple>
      </exemplesContenuAttendu>
      <attributs>
        <attribut>
          <nom>courriel</nom>
          <descriptionPourInfobulle>Adresse courriel de la
            personne.</descriptionPourInfobulle>
          <CDATA/>
          <IMPLIED/>
          <exemplesValeurAttendue>
            <exemple>jack.rabbit@ebsi.com</exemple>
            <exemple>jean_valjean@victor.hugo.net</exemple>
          </exemplesValeurAttendue>
        </attribut>
      </attributs>
    </élément>
    <élément>
      <idGen>par</idGen>
      <descriptionPourInfobulle>Un paragraphe de texte; peut contenir des passages en
        emphase (sous-élément &lt;em>).</descriptionPourInfobulle>
      <modèleContenuXML>(#PCDATA | em)*</modèleContenuXML>
      <exemplesContenuAttendu>
        <exemple>L’Université s’est démarquée aux derniers Jeux du commerce.</exemple>
        <exemple>La situation est jugée &lt;em>très&lt;/em> préoccupante.</exemple>
      </exemplesContenuAttendu>
    </élément>
    <élément>
      <idGen>em</idGen>
      <descriptionPourInfobulle>Passage en emphase.</descriptionPourInfobulle>
      <modèleContenuXML>(#PCDATA)</modèleContenuXML>
      <exemplesContenuAttendu>
        <exemple>ATTENTION :</exemple>
        <exemple>très</exemple>
        <exemple>sans prévenir le registrariat !</exemple>
      </exemplesContenuAttendu>
    </élément>
  </éléments>
</modèleXML3011>

La DTD dérivée

Cet exemple se trouve au memo.dtd :

<?xml version="1.0" encoding="UTF-8"?>
<!-- Modèle XML développé dans le cadre du cours INU3011 Documents structurés -->
<!-- EBSI - Université de Montréal -->

<!-- Équipe: John Bozak (23456), Charles Goldenfarb (12345). -->
<!-- Élément de plus haut niveau: mémo -->

<!--
Les commentaires commençant par "doc:" sont utilisés par oXygen comme documentation d’aide à la
saisie. Ils sont affichés en infobulles pendant l’édition de documents conformes à la DTD lorsque le
curseur survole un nom d’élément ou d’attribut.
-->

<!-- doc: Un mémo de l’EBSI. -->
<!ELEMENT mémo (priorité, auteur, date?, destinataires, sujet, cc?, corps?)>

<!-- doc: Nom de fichier d’une éventuelle pièce jointe. Exemples:
  rapport.pdf
  photo-2019.jpeg -->
<!ATTLIST mémo pj CDATA #IMPLIED>

<!-- doc: Statut du mémo: en détermine la visibilité. Si omis, la valeur "interne" est sous-entendue. -->
<!ATTLIST mémo statut (confidentiel | interne | public) #IMPLIED>

<!-- doc: Priorité d’envoi du mémo. -->
<!ELEMENT priorité ( normal | urgent | vrac )>

<!-- doc: Priorité normale d’envoi. -->
<!ELEMENT normal EMPTY>

<!-- doc: Priorité maximale, pour messages urgents. -->
<!ELEMENT urgent EMPTY>

<!-- doc: Priorité minimale, pour envois en lot. -->
<!ELEMENT vrac EMPTY>

<!-- doc: Liste des destinataires directs du mémo. -->
<!ELEMENT destinataires (nom+)>

<!-- doc: Liste des récipiendaires d’une copie conforme du mémo. -->
<!ELEMENT cc (nom+)>

<!-- doc: Corps du mémo (peut être omis si la ligne sujet suffit). -->
<!ELEMENT corps (par+)>

<!-- doc: Nom de l’auteur du mémo, sous la forme Prénom Nom, sans ponctuation finale. Exemples:
  Jean K. Vanier
  Marie Hélène Vanier
  Gilles-A. Tremblay -->
<!ELEMENT auteur (#PCDATA)>

<!-- doc: Adresse courriel de l’auteur. Exemples:
  jack.rabbit@ebsi.com
  jean_valjean@victor.hugo.net -->
<!ATTLIST auteur courriel CDATA #REQUIRED>

<!-- doc: Date de rédaction du mémo, forme AAAA-MM-JJ. Exemples:
  2020-09-30
  1970-01-01 -->
<!ELEMENT date (#PCDATA)>

<!-- doc: Sujet du mémo (habituellement sans ponctuation finale). Exemples:
  Convocation à l’assemblée générale
  Nouvelle recrue
  Party de Noël ! -->
<!ELEMENT sujet (#PCDATA)>

<!-- doc: Nom d’un récipiendaire du mémo, sous la forme Prénom Nom, sans ponctuation finale. Exemples:
  Jean K. Vanier
  Marie Hélène Vanier
  Gilles-A. Tremblay -->
<!ELEMENT nom (#PCDATA)>

<!-- doc: Adresse courriel de la personne. Exemples:
  jack.rabbit@ebsi.com
  jean_valjean@victor.hugo.net -->
<!ATTLIST nom courriel CDATA #IMPLIED>

<!-- doc: Un paragraphe de texte; peut contenir des passages en emphase (sous-élément <em>). Exemples:
  L’Université s’est démarquée aux derniers Jeux du commerce.
  La situation est jugée <em>très</em> préoccupante. -->
<!ELEMENT par (#PCDATA | em)*>

<!-- doc: Passage en emphase. Exemples:
  ATTENTION :
  très
  sans prévenir le registrariat ! -->
<!ELEMENT em (#PCDATA)>

Le tableau HTML navigable dérivé

Cet exemple se trouve au memo.html :

ModèleXML3011 : mémo

Équipe : John Bozak (23456), Charles Goldenfarb (12345)


Ce modèle définit une structure de mémos pour un système de rédaction, d’envoi et de gestion de mémos à l’EBSI <https://ebsi.umontreal.ca/>.


Modèle mémo

Éléments et attributs
élément:    Nom (idGen) Modèle de contenu Infobulle: courte description et, si applicable, règles d’écriture et au moins 2 exemples de contenus attendus Commentaires de modélisation
attribut: Nom de l’attribut Type et obligatoire ou non
élément: mémo (priorité, auteur, date?, destinataires, sujet, cc?, corps?) Un mémo de l’EBSI.
attribut: pj CDATA #IMPLIED Nom de fichier d’une éventuelle pièce jointe. Exemples:
  rapport.pdf
  photo-2019.jpeg
attribut: statut (confidentiel | interne | public) #IMPLIED Statut du mémo: en détermine la visibilité. Si omis, la valeur "interne" est sous-entendue. Nous avons hésité entre "statut" et "visibilité" comme nom d’attribut, mais avons opté pour "statut" car c’est l’appellation la plus courante à l’EBSI.
élément: priorité ( normal | urgent | vrac ) Priorité d’envoi du mémo.
élément: normal EMPTY Priorité normale d’envoi.
élément: urgent EMPTY Priorité maximale, pour messages urgents.
élément: vrac EMPTY Priorité minimale, pour envois en lot.
élément: destinataires (nom+) Liste des destinataires directs du mémo.
élément: cc (nom+) Liste des récipiendaires d’une copie conforme du mémo.
élément: corps (par+) Corps du mémo (peut être omis si la ligne sujet suffit).
élément: auteur (#PCDATA) Nom de l’auteur du mémo, sous la forme Prénom Nom, sans ponctuation finale. Exemples:
  Jean K. Vanier
  Marie Hélène Vanier
  Gilles-A. Tremblay
attribut: courriel CDATA #REQUIRED Adresse courriel de l’auteur. Exemples:
  jack.rabbit@ebsi.com
  jean_valjean@victor.hugo.net

L’adresse courriel est exigée pour l’auteur d’un mémo, de sorte que le système de gestion des mémos puisse procéder à l’envoi par courriel aux récipiendaires dont l’adresse est précisée.

En effet, les systèmes d’acheminement du courriel exigent de connaître l’adresse de l’expéditeur. L’adresse courriel de l’auteur est donc essentielle.

élément: date (#PCDATA) Date de rédaction du mémo, forme AAAA-MM-JJ. Exemples:
  2020-09-30
  1970-01-01
élément: sujet (#PCDATA) Sujet du mémo (habituellement sans ponctuation finale). Exemples:
  Convocation à l’assemblée générale
  Nouvelle recrue
  Party de Noël !
élément: nom (#PCDATA) Nom d’un récipiendaire du mémo, sous la forme Prénom Nom, sans ponctuation finale. Exemples:
  Jean K. Vanier
  Marie Hélène Vanier
  Gilles-A. Tremblay
attribut: courriel CDATA #IMPLIED Adresse courriel de la personne. Exemples:
  jack.rabbit@ebsi.com
  jean_valjean@victor.hugo.net
élément: par (#PCDATA | em)* Un paragraphe de texte; peut contenir des passages en emphase (sous-élément <em>). Exemples:
  L’Université s’est démarquée aux derniers Jeux du commerce.
  La situation est jugée <em>très</em> préoccupante.
élément: em (#PCDATA) Passage en emphase. Exemples:
  ATTENTION :
  très
  sans prévenir le registrariat !