Premiers pas avec SCENARIbuilderHelloWorld > Structure du modèle > Composants du modèle > Définition de la structure XML du document
page précédentepage suivante

Définition de la structure XML du document

model
item de modélisation .model

Comme dans toute application Scenari, un atelier contient des items et chaque item a : un nom de fichier, un type.

L’item de modélisation doit entre autres définir :

  • un code  : identifiant utilisé en interne par le système SCENARI. Cela doit être une suite de caractères alphabétiques, courte de préférence, où il est d'usage de le faire correspondre au nom du fichier (sauf cas particulier).
  • un name : le nom tel que l'auteur peut le lire dans l'interface d'édition. Il peut contenir des espaces et des caractères accentués.

Cet item sert à spécifier quels champs ou paragraphes de données seront disponibles à l'intérieur de l'éditeur, de les paramétrer et de choisir comment ils seront organisés entre eux (et implicitement quel sera la structure XML des documents écrits par l'auteur lorsqu'ils sont enregistrés).

Vos items

Pour définir la structure de votre premier modèle, vous allez devoir créer 3 items, et faire appel à 2 items du répertoire modelets.

Créer helloworld.model

C'est le moment de choisir un type pour l'item racine.

Dans notre modèle, nous allons permettre à l'auteur de créer des items de type helloworld à partir de l'interface d'édition, nous devons donc créer dans notre atelier un item correspondant qui est listé dans les publicClasses du wspdef.

Se placer sur helloworld.wspdef

Ouvrir sm:publicClasses puis sm:classe par double clic sur ces noms de balise

Faire un clic droit sur l'item vide se situant à côté de la balise <class>

Choisir dans le menu contextuel Créer un nouvel item…

À retenir

Dans le reste de ce tutoriel, cette méthode sera à utiliser pour la plupart des créations d'items.

L'écran de création des items s'ouvre.

Choisir Primitives > Primitives d'organisation > compositionPrim .

Les compositionPrim sont utilisées pour tous les contenus organisés en parties, chapitres, blocs d'informations, sections...

Nommer l’item helloworld.model

Créer

Enregistrer le wspdef

Paramétrer helloworld.model
Objectif

Nous allons reproduire la structure ce cette capture d’écran.

Renseigner les champs obligatoires 

name, le nom affiché dans la fenêtre de création d'items pour votre futur auteur.

namespace, prefix : En plus du code, elles sont mises en commun par un namespace, et sa version abrégée, le préfixe. Dans les cas courants, vous allez déclarer toujours le même namespace et préfixe pour tous les fichiers d'un atelier builder. L'intérêt principal de ces informations est de permettre à différents modélisateurs de partager des modèles avec le même nom. Ces noms sont utilisés en interne dans les fichiers de contenu que l'auteur va enregistrer par les éditeurs SCENARI. Le préfixe doit être court et ne pas commencer par la lettre "s" qui est réservée (s pour scenari).

Enregistrer

Créer un set de part, renseigner tout de suite le code et le name de la part.

set : Un set signifie que l'auteur pourra créer autant de parts qu'il le souhaite (dans l'éditeur, cela déclenche l'ajout d'un bouton * à gauche de la part). En l'absence de set, le document ne pourrait contenir qu'une seule partie.

part : Une "part" est un champ de contenu qui pourrait avoir une sous-structure, en faisant appel par exemple à d'autres compositionPrim.

Compléments
Name différent du code

Le nom de la partie peut être différent de son code. En général les codes sont définis en anglais pour simplifier la transmission du modèle documentaire, et le name est définit dans la langue visée (français pour nous).

Lors de la traduction d’un modèle documentaire, ce sont les champs «name» qui sont traduits pour l’Éditeur.

Modifier les attributs à set : required, part internalized :always.

usage -> optional, usage -> required : Dans l'interface d'édition, l'auteur de contenu devra obligatoirement remplir toutes les parts qui ont été paramétrées par le modélisateur en tant que "required", si ce n'est pas le cas, des croix rouges apparaissent dans le contenu.

internalized : En fonction du choix du modélisateur, l'auteur pourra éventuellement, ou sera obligé de créer les parties en tant qu'item externe[1]. Rappel : il faut aussi que les allowedModel des parts soit déclarées en tant que publicClasses dans le wspdef pour que cette création d'item soit autorisée.

Compléments
Conséquences pour l'auteur

Il ne sera pas possible d’externaliser le contenu de cette part.

Voir aussi

Définir la structure XML que devra suivre la part créée

allowedModel : C'est la liste des modèles que l'auteur va pouvoir placer à l'intérieur de ce champ. Ne créez pas un nouvel item, mais placez-y par glisser-déposer depuis le volet d'exploration l'élément "paragraphe de texte" du modelet /base/sTxt/sTxt.model que vous avez installé au début de ce tutoriel.

Définir une méta pour cette part (astérisque entre sm :part et sm :allowedModel)

meta : Des méta-données associées à la part. Dans notre modèle, les parts peuvent avoir des titres, nous allons donc utiliser dans les modelets : /base/sTitle/sTitle.model

Enregistrer

authoring

Il n’est pas nécessaire de remplir cette partie du .model, elle est essentiellement utilisée pour le stylage de l’éditeur.

namespace et prefix

Dans les cas courants, vous allez déclarer toujours le même namespace et préfixe pour tous les fichiers d'un atelier builder. L'intérêt principal de ces informations est de permettre à différents modélisateurs de partager des modèles avec le même nom. Ces noms sont utilisés en interne dans les fichiers de contenu que l'auteur va enregistrer par les éditeurs Scenari. Le préfixe doit être court et ne pas commencer par la lettre "s" qui est réservée (s pour scenari).

  1. Contenu externalisé

    désigne un contenu faisant l'objet d'un item distinct de l'item utilisé pour structurer un document. L'item correspondant apparaît dans le volet d'exploration et peut être réutilisé dans le document en cours ou dans un autre document.

page précédentepage suivante
A propos...© scenari-platform.org 2011Réalisé avec Scenari