<?xml version="1.0" encoding="ISO-8859-1"?><DOCUMENTATION>
<TITRE>Comment créer un langage XML et son éditeur en 5 minutes</TITRE>

<SECTION>
<TITRE>Introduction</TITRE>
<PARAGRAPHE>
Cette documentation explique comment créer un fichier de configuration pour Jaxe incluant la définition des menus d'insertion des éléments XML, la méthode d'affichage des éléments, et le langage XML. Il donne aussi un exemple de feuille de style XSLT. L'exemple donné a permis de créer ce <LIEN href="en_cinq_minutes.xml">fichier</LIEN> que vous êtes en train de lire.
</PARAGRAPHE>
</SECTION>

<SECTION>
<TITRE>Création du fichier de configuration de Jaxe</TITRE>
<PARAGRAPHE>
Les fichiers de configuration se situent dans le dossier <CODE>config</CODE> de Jaxe, et leur nom se termine en <CODE>_Jaxe_cfg.xml</CODE>. Par exemple, le fichier de configuration des fichiers de configuration (dont l'élément racine est <CODE>JAXECFG</CODE>), se nomme <CODE>JAXECFG_Jaxe_cfg.xml</CODE>. On commence donc par lancer Jaxe, choisir le bouton "Nouveau" et sélectionner "JAXECFG - Fichier de configuration de Jaxe".
</PARAGRAPHE>
<PARAGRAPHE>
Il existe deux options possibles pour la création d'un fichier de configuration de Jaxe:
</PARAGRAPHE>
<LISTE>
<EL>Utiliser un fichier de schéma XML pour définir le langage XML à utiliser, et définir juste les menus et la méthode d'affichage des éléments dans le fichier de configuration.</EL>
<EL>Définir un langage XML en utilisant une syntaxe simplifiée à l'intérieur du fichier de configuration.</EL>
</LISTE>
<PARAGRAPHE>
On utilisera ici la syntaxe simplifiée, qui se contente de définir les éléments, leurs attributs, les sous-éléments, et quels éléments peuvent contenir du texte. Si on utilisait un schéma XML, il ne faudrait par contre pas donner de règle sur le langage XML dans le fichier de configuration.
</PARAGRAPHE>
<PARAGRAPHE>
Pour commencer la construction du fichier de configuration, on insère un descriptif qui sera affiché dans le dialogue de création des nouveaux documents.
</PARAGRAPHE>
<EXEMPLE>
JAXECFG&gt;
<ESPACE/>DESCRIPTION&gt;Démo pour les fichiers de config&lt;DESCRIPTION
&lt;JAXECFG
</EXEMPLE>
<PARAGRAPHE>
On définit ensuite l'élément racine du langage, <CODE>DOCUMENTATION</CODE>. Chaque nouveau document intégrera cet élément dès le départ.
</PARAGRAPHE>
<EXEMPLE>
JAXECFG&gt;
<ESPACE/>DESCRIPTION&gt;Démo pour les fichiers de config&lt;DESCRIPTION
<ESPACE/>RACINE&gt;
<ESPACE/><ESPACE/>BALISE 'DOCUMENTATION'&gt;
<ESPACE/><ESPACE/>&lt;BALISE
<ESPACE/>&lt;RACINE
&lt;JAXECFG
</EXEMPLE>
</SECTION>

<SECTION>
<TITRE>Création des menus</TITRE>
<PARAGRAPHE>
On définit ensuite les menus d'insertion des éléments. Tous les éléments du langage XML doivent avoir un menu correspondant. Pour notre langage de documentation, on utilisera les menus "Organisation", "Liste" et "Texte".
</PARAGRAPHE>
<EXEMPLE>
MENU 'Organisation'&gt;
&lt;MENU 'Organisation'

MENU 'Liste'&gt;
&lt;MENU 'Liste'

MENU 'Texte'&gt;
&lt;MENU 'Texte'
</EXEMPLE>
</SECTION>

<SECTION>
<TITRE>Définition des éléments du langage</TITRE>
<PARAGRAPHE>
Commençons par l'élément <CODE>TITRE</CODE>. Comme on l'insérera avec le menu "Organisation", on va le définir ici. On choisi les attributs <CODE>nom='TITRE'</CODE>, <CODE>titre='Titre'</CODE> (qui sera utilisé pour le menu), et <CODE>type='string'</CODE>. L'attribut <CODE>type</CODE> correspond au type d'élément Jaxe, c'est à dire la façon d'afficher et d'éditer l'élément. Ici, avec <CODE>'string'</CODE>, Jaxe l'affichera comme une simple chaîne de caractères avec des balises de début et de fin. Les types d'éléments sont détaillés dans la <LIEN href="doc_config_fr.html">documentation sur la syntaxe</LIEN>.
</PARAGRAPHE>
<PARAGRAPHE>
On pourra trouver <CODE>TITRE</CODE> par exemple sous l'élément racine, <CODE>DOCUMENTATION</CODE>. 
Pour spécifier cela, on ajoute un élément <CODE>SOUSBALISE</CODE> sous <CODE>DOCUMENTATION</CODE>, avec l'attribut <CODE>nom='TITRE'</CODE>.
</PARAGRAPHE>
<PARAGRAPHE>
Comme on veut avoir du texte dans les titres, on ajoute cette information avec l'élément <CODE>TEXTE</CODE> dans la définition de l'élément.
</PARAGRAPHE>
<EXEMPLE>
RACINE&gt;
<ESPACE/>BALISE 'DOCUMENTATION'&gt;
<ESPACE/><ESPACE/>SOUSBALISE 'TITRE'
<ESPACE/>&lt;BALISE
&lt;RACINE

MENU 'Organisation'&gt;
<ESPACE/>BALISE 'TITRE'&gt;
<ESPACE/><ESPACE/>TEXTE
<ESPACE/>&lt;BALISE 'TITRE'
&lt;MENU 'Organisation'
</EXEMPLE>
</SECTION>

<SECTION>
<TITRE>Plus d'options d'affichage</TITRE>
<PARAGRAPHE>
Des attributs <CODE>type</CODE> très utilisés sont <CODE>division</CODE>, <CODE>zone</CODE> et <CODE>string</CODE>. <CODE>division</CODE> affiche un élément sous la forme de deux grandes barres horizontales dans le texte, ce qui est pratique pour bien séparer de grandes zones dans le texte. On l'utilisera dans l'exemple pour l'élément <CODE>SECTION</CODE>. <CODE>zone</CODE> affiche un élément en sautant aussi des lignes, mais en prenant moins de place. On l'utilisera pour les éléments <CODE>PARAGRAPHE</CODE> et <CODE>EXEMPLE</CODE>, que l'on trouve sous <CODE>SECTION</CODE>. Enfin, <CODE>string</CODE> affiche aussi l'élément avec <CODE>ELEMENT&gt;</CODE> et <CODE>&lt;ELEMENT</CODE>, mais sans sauter de ligne. On s'en servira ici pour tous les autres éléments.
</PARAGRAPHE>
<PARAGRAPHE>
Il est possible de rendre l'édition dans Jaxe plus agréable en spécifiant par exemple des styles. Pour un titre, on aimerais avoir un affichage en gras, ce qui s'obtient avec un paramètre. Il suffit d'ajouter <CODE>PARAMETRE</CODE> sous <CODE>BALISE 'TITRE'</CODE>, avec les attributs <CODE>nom='style'</CODE> et <CODE>valeur='GRAS'</CODE>. La liste complète des paramètres possibles est donnée dans la <LIEN href="doc_config_fr.html">documentation sur la syntaxe</LIEN>.
</PARAGRAPHE>
<EXEMPLE>
BALISE 'TITRE'&gt;
<ESPACE/>PARAMETRE 'style'
<ESPACE/>TEXTE
&lt;BALISE 'TITRE'
</EXEMPLE>
</SECTION>

<SECTION>
<TITRE>Ensembles d'éléments</TITRE>
<PARAGRAPHE>
Plutôt que de remettre plusieurs fois les mêmes <CODE>SOUSBALISE</CODE>, on peut les rassembler en ensembles et utiliser ensuite <CODE>SOUSBALISE ensemble='nomensemble'</CODE> à chaque fois que l'on veut mettre un ensemble de <CODE>SOUSBALISE</CODE>. Par exemple, on veut ici utiliser les éléments <CODE>EMPHASE</CODE>, <CODE>CODE</CODE> et <CODE>LIEN</CODE> dans le texte. Il suffit de créer un ensemble sous <CODE>JAXECFG</CODE>, et ensuite d'utiliser à chaque fois que l'on utiliser du texte avec tous ces éléments <CODE>SOUSBALISE ensemble='texte'</CODE> au lieu d'utiliser simplement <CODE>TEXTE</CODE>.
</PARAGRAPHE>
<EXEMPLE>
<ESPACE/>ENSEMBLE 'texte'&gt;
<ESPACE/><ESPACE/>TEXTE
<ESPACE/><ESPACE/>SOUSBALISE 'EMPHASE'
<ESPACE/><ESPACE/>SOUSBALISE 'CODE'
<ESPACE/><ESPACE/>SOUSBALISE 'LIEN'
<ESPACE/>&lt;ENSEMBLE 'texte'

&lt;JAXECFG
</EXEMPLE>
</SECTION>

<SECTION>
<TITRE>Fichier de l'exemple</TITRE>
<PARAGRAPHE>
Voici le fichier de configuration complet: <LIEN href="DOC_Jaxe_cfg.xml">DOC_Jaxe_cfg.xml</LIEN>.
</PARAGRAPHE>
<PARAGRAPHE>
Si l'on avait utilisé un fichier de schéma XML séparé du fichier de configuration Jaxe, il aurait fallu donner le chemin vers le fichier avec l'élément <CODE>FICHIERSCHEMA</CODE>. On aurait aussi défini les menus, mais on n'aurait par contre pas utilisé les éléments de définition du langage : <CODE>SOUSBALISE, ATTRIBUT, VALEUR, TEXTE, ENSEMBLE</CODE>.
</PARAGRAPHE>
<PARAGRAPHE>
Voici le même exemple, en utilisant un fichier de schéma XML séparé du fichier de configuration Jaxe, en séparant le langage de la façon dont il est présenté dans Jaxe: <LIEN href="DOC2_Jaxe_cfg.xml">DOC2_Jaxe_cfg.xml</LIEN> - <LIEN href="DOC2.xsd">DOC2.xsd</LIEN>.
</PARAGRAPHE>
</SECTION>

<SECTION>
<TITRE>Création de la feuille de style</TITRE>
<PARAGRAPHE>
Il ne reste plus qu'à définir un affichage pour les documents créés avec ce nouveau langage XML. Jaxe utilise pour cela des feuilles de style XSLT qui transforment les documents XML en HTML.
</PARAGRAPHE>
<PARAGRAPHE>
On crée un document XSLT en choisissant le menu "Nouveau" et en choisissant "stylesheet - XSLT". Les fichiers XSLT mélangent plusieurs langages XML dans un document. On voit donc ici des menus pour XSLT et des menus pour XHTML.
</PARAGRAPHE>
<PARAGRAPHE>
Il faut commencer par préciser la version de XSLT que l'on utilise en mettant la valeur "1.0" à l'attribut <CODE>version</CODE> de la racine. On précise ensuite quelle sortie on veut obtenir pour la transformation. Par exemple, pour obtenir du XHTML, on utilise <CODE>xsl:output</CODE> avec les attributs <CODE>doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" encoding="ISO-8859-1" indent="yes" method="xml"</CODE>.
</PARAGRAPHE>
<PARAGRAPHE>
De manière générale, il suffit ensuite d'indiquer pour chaque élément un équivalent HTML. Par exemple, pour que <CODE>CODE</CODE> soit affiché comme avec <CODE>tt</CODE> en HTML, on écrit:
</PARAGRAPHE>
<EXEMPLE>
<ESPACE/>&lt;xsl:template match="CODE"&gt;
<ESPACE/><ESPACE/>&lt;tt&gt;&lt;xsl:apply-templates/&gt;&lt;/tt&gt;
<ESPACE/>&lt;/xsl:template&gt;
</EXEMPLE>
<PARAGRAPHE>
Une fois créé, le <LIEN href="DOC.xsl">fichier XSL</LIEN> doit être indiqué dans le fichier de configuration, au début. Il doit aussi être placé dans le dossier config de Jaxe.
</PARAGRAPHE>
<EXEMPLE>
JAXECFG&gt;
<ESPACE/>FICHIERXSL 'DOC.xsl'&gt;
<ESPACE/>&lt;FICHIERXSL 'DOC.xsl'
</EXEMPLE>
</SECTION>

<SECTION>
<TITRE>Top chrono!</TITRE>
<PARAGRAPHE>
Finalement, il ne reste plus qu'à choisir le menu "Ouvrir la configuration..." et choisir notre fichier de configuration, <CODE>DOC_Jaxe_cfg.xml</CODE>, pour créer un nouveau document avec. On peut aussi placer le fichier de configuration dans le dossier <CODE>config</CODE> de Jaxe afin qu'il apparaisse dans la liste quand on crée un nouveau document avec le menu "Nouveau".
</PARAGRAPHE>
</SECTION>
</DOCUMENTATION>