Ecriture de document XML

 

 

 

 

Gérard LY

 

 

 

Choix du document

 

 

Le corpus que nous allons écrire correspond à un document de type scénario sous la forme d’une continuité dialoguée.

Un scénario désigne une histoire ainsi qu’un ensemble de documents écrit pour la réalisation d’un film. Le scénario peut prendre entre autres la forme d’un séquencier, d’un découpage technique ou d’une continuité dialoguée. Un scénariste écrit généralement son scénario selon ces différents formats.

 

 

 

Création d’une DTD pour la continuité dialoguée

 

 

Pour créer la DTD, il nous faut au préalable réfléchir sur la structure du document XML. Nous appellerons « scenario » la racine du document XML à laquelle nous donnerons deux éléments fils conventionnels. Le premier que nous appellerons « entete » contiendra toutes les informations concernant le texte et sur le corpus. Le deuxième que nous appellerons « continuite_dialoguee » contiendra le texte de la continuité dialoguée.

 

 

a) Élément entete

 

L’élément « entete » contiendra les informations concernant le scenario que nous appellerons « info_scenario » et les informations sur le corpus que nous appellerons « info_corpus »

 

 

1) Les informations sur le scenario sont :

 

- Le nom de la série, que nous appellerons « serie »

- Le titre du scénario, que nous appellerons « titre »

- La date d’écriture du scénario, que nous appellerons « date »

- Les auteurs que nous appellerons « auteurs » : « noms » et « contact »

 

 

2) Les informations sur le corput sont :

 

- La date

- Les auteurs nom et contact (comme pour les auteurs du scénario)

 

 

b) Élément continuite_dialoguee

 

L’élément « continuite_dialoguee » contiendra le corps de la continuité dialoguée.

Le corps d’une continuité dialoguée est divisé plusieurs séquences, que nous appellerons « sequence ». Chaque séquence se présente comprends les éléments suivant :

 

 

1) Un intitulé de séquence, que nous appellerons « intitule »

 

L’intitulé de séquence permet de délimiter les séquences. Il indique le numéro de la séquence, le lieu suivit parfois d’un sous-lieu, et des indications pour le tournage : intérieur (int) ou extérieur (ext), ainsi que le moment de la journée (jour, nuit, matin...).

 

Voici un exemple d’intitulé :

1 - ILPGA - LABO C / INT - JOUR

 

Nous choisirons d’utiliser le numéro de la séquence comme un attribut de l’élément séquence. Cela pourra permettre de retrouver plus facilement les séquences.

 

 

2) Des descriptions, que nous appellerons « description »

 

Une description est simplement un texte au présent qui décrit le lieu, les personnages et l’action. Il peur y avoir plusieurs descriptions dans une même séquence, entrecoupées par les dialogues.

 

Comme une description peut contenir des sauts de lignes, nous choisirons de considérer les sauts de lignes comme introduisant des nouvelles descriptions et les retours à la ligne comme introduisant des paragraphes, que nous appellerons « paragraphe ».

 

 

3) Des dialogues, que nous appellerons « dialogue »

 

Un dialogue se présente comme ceci :

- Le nom du personnage qui parle (toujours en majuscules), que nous appellerons « personnage »

- Une éventuelle didascalie entre parenthèses, que nous appellerons « didascalie »

- La réplique du personnage (qui peut contenir des didascalies), que nous appellerons « replique »

 

Il peut y avoir un ou plusieurs personnages pour un dialogue.

 

L’intérêt consiste donc à conserver l’ordre des éléments mais en les hiérarchisant pour pouvoir travailler plus facilement sur le corpus ou le scénario.

 

 

c) Autres éléments

 

Nous choisirons par ailleurs de ne pas traiter les commentaires ou les notes sur le scénario et de les mettre dans les balises commentaires.

En effet, ce sont des informations destinées uniquement aux scénaristes pour les modifications du scénario. Ces annotations peuvent apparaître à n’importe quel endroit du scénario, et les baliser rendrait le document XML plus confus.

 

Nous choisissons aussi de mettre chacun des mots contenus dans les descriptions et les dialogues entre des balises <mot></mot> pour des éventuelles analyses d’occurrences.

 

Nous créons une DTD en fonction des éléments et de la structure définie ci-dessus et nous enregistrerons notre DTD dans un fichier nommé ScenarioCD.dtd.

 

 

 

Formatage du document en XML selon la DTD

 

 

Pour des raisons pratiques, nous travaillerons sur un extrait de scénario (BdP_Scenario1_extrait.rtf) plutôt que d’en créer un nouveau. Cet extrait contient les 5 premières séquences du scénario d’un épisode de la série Boulevard du Palais intitulé Des secrets bien Gardés, écrit par les scénaristes Robin Barataud et Jean Reynard.

 

La première page contient toutes les informations concernant le scénario, la page suivante contient quelques commentaires sur le scénario, et les autres pages contiennent la continuité dialoguée.

 

Dans un premier temps, nous allons copier le contenu textuel du document source dans un fichier au format texte BdPalais.txt.

 

Les modifications que nous apporterons seront faites à l’aide de l’éditeur de textes UltraEdit-32 version 9.20b (http://www.ultraedit.com/downloads/index.html). Cet éditeur applique la coloration syntaxique pour les documents XML, il permet d’utiliser les expressions régulières de type Unix, d’exécuter des applications externes, et de créer des macros.

 

 

a) Racine, entête et commentaires

 

Nous ouvrons maintenant le document BdPalais.txt et nous commençons par ajouter la balise de document XML ainsi que les balises racine <scenario> et </scenario> au début et à la fin du document.

 

Nous mettons ensuite en forme les informations sur le scénario qui se trouvent au début du document, puis nous rajoutons les informations concernant le corpus.

 

Enfin, nous passons en commentaires les annotations faites par les scénaristes.

 

Nous enregistrons nos modifications dans le fichier BdPalais1.xml.

 

 

 

b) continuité dialoguée

 

Dans cette étape, nous mettons en forme le contenu de la continuité dialoguée en utilisant des expressions régulières pour gagner du temps.

 

Nous commençons par remplacer le caractère de ponctuation « … » par trois points « ... » cela sera plus facile lorsque l’on voudra travailler sur la ponctuation du corpus.

 

Le remplacement de ([1-9]) - \t([0-9\w \-\'\"]+)/ ([A-Z]+) ([A-Z ]+) par :

\r\n\r\n\t\t<sequence numero="\1">\r\n\t\t\t<intitule>\r\n\t\t\t\t<lieu>\2</lieu

>\r\n\t\t\t\t<int_ext>\3</int_ext>\r\n\t\t\t\t<moment>\4</moment>\r\n\t\t\t</intitule>

nous permet de baliser les débuts de séquences avec les intitulés. Nous baliserons les sous-lieux dans un deuxième temps car il ne sont optionnels.

 

Le remplacement de <lieu>([0-9\w \'\"]+)- ([0-9\w \-\'\"]+)</lieu> par :

<lieu>\1</lieu>\r\n\t\t\t\t<sous_lieu>\2</sous_lieu>

nous permet de baliser les sous-lieux.

 

Le remplacement de ([A-Z]+)\r\n\((.[^\)]+)\)\r\n(.+)\r\n\r\n par :

\t\t\t\t<personnage nom="\1">\r\n\t\t\t\t\t<didascalie>\2</didascalie>\r\n\t\t\t

\t\t<replique>\3</replique>\r\n\t\t\t\t</personnage>\r\n

nous permet de baliser les dialogues des personnages dont le nom est suivit par une didascalie.

 

Le remplacement de ([A-Z]+)\r\n(.+)\r\n\r\n par :

\t\t\t\t<personnage nom="\1">\r\n\t\t\t\t\t<replique>\2</replique>\r\n\t\t\t\t</

personnage>\r\n\r\n

nous permet de baliser les autres dialogues des personnages.

 

Le remplacement de \r\n([\"\.\w].+)\r\n par :

\r\n\t\t\t\t<paragraphe>\1</paragraphe>\r\n

nous permet de baliser les paragraphes.

 

Le remplacement de \r\n(\r\n\t\t\t\t<paragraphe>.+</paragraphe>) par :

\r\n\r\n\t\t\t<description>\1 et de

(</paragraphe>\r\n)\r\n par \1\t\t\t</description>\r\n\r\n

nous permet de baliser les descriptions comportant plusieurs paragraphes.

 

Le remplacement de (</description>\r\n\r\n)(\t\t\t\t<personnage) par :

\1\t\t\t<dialogue>\r\n\2 de </personnage>(\r\n\r\n\t\t\t<description) par :

</personnage>\r\n\t\t\t</dialogue>\1 et de

</personnage>(\r\n\r\n\r\n\t\t<sequence) par :

</personnage>\r\n\t\t\t</dialogue>\1.

nous permet d’ajouter des balises de dialogues autour de chaque suite de répliques qui se trouvent entre des descriptions ou debut de séquences.

 

Enfin, le remplacement de (\r\n\r\n<sequence) par \t\t</sequence>\1

Nous permet de délimiter les fin de séquences.

 

 

Nous enregistrons nos modifications dans le fichier BdPalais2.xml.

 

 

 

c) séparation des mots et didascalies dans les répliques

 

 

Dans un premier temps, nous mettons les mots entre les balises <mot> et </mot> en remplaçant les \s contenus entre les balises descriptions et dialogues par : </mot>\r\n\t\t\t\t\t<mot>.

 

Nous plaçons ensuite des balises de mot devant et derrière les mots qui n’étaient pas séparé par des espaces car ils étaient directement collés à des balises. Nous utilisons pour cela les remplacements suivant :

<paragraphe> par <paragraphe>\r\n\t\t\t\t\t<mot>

</paragraphe> par </mot>\r\n\t\t\t\t</paragraphe>

<replique> par <replique>\r\n\t\t\t\t\t\t<mot>

</replique> par </mot>\r\n\t\t\t\t\t</replique>

<didascalie> par <didascalie>\r\n\t\t\t\t\t\t<mot>

</didascalie> par </mot>\r\n\t\t\t\t\t</didascalie>

 

Nous maintenant pouvons traiter les didascalies contenues dans les répliques puisque nous avons délimité les répliques et les mots. Pour cela, nous remplaçons les chaînes de caractères suivantes :

<mot>\( par <didascalie>\r\n\t\t\t\t\t\t\t<mot>

\)</mot> par </mot>\r\n\t\t\t\t\t\t</didascalie>

 

Enfin, nous ajoutons le lien à la DTD ScenarioCD.dtd et nous enregistrons nos modifications dans le fichier BdPalais3.xml.

 

 

 

Validation du document XML

 

 

Pour finir, nous vérifions la validité de notre document avec le logiciel XML Spy version 4.3 (http://www.xmlspy.com/).

 

Le logiciel ne nous signale aucunes erreurs à l’ouverture du document. En appuyant successivement sur la touche F7 et sur la touche F8, XML Spy nous indique que notre document est bien formé et valide.

BdPalais3.xml respecte donc le format XML et est conforme à sa DTD ScenarioCD.dtd.