Nous avons modifié la structure du modèle, mais les transformeurs utilisent toujours les anciennes données : résultat, le générateur ne fonctionne plus du tout ou ne publie presque rien. Il faut donc aussi modifier les transformeurs, les "réparer" pour que les publications fonctionnent à nouveau.
Que ce soit en HTML ou en OD, le transformeur est toujours partiellement exact, avec juste une différence : le titre est intégré dans les metas du sous modèle, et non intégré à la part.
Placez vous dans le transformer web universe.transf contenu dans l'espace web,
La règles for peut s’appliquer à toutes les parts si on lui met comme codes le jocker *
Le titre présent dans chacune des parties n’est plus un partTitle, mais un subModelTitle
En effet le titre n’est plus définit directement sous le sm:part mais dans la composition accessible via le allowedModel (qu’on appelle « sous-modèle »)

Comme dans SCENARIchain, il est possible de désactiver des lignes en les passant en commentaire par clic droit -> passer en commentaire. Les lignes en commentaire sont alors affichées en vert dans l'éditeur.
Lorsque vous créez un transformer (
universe.transf) pour faire de l'HTML, il y a 2 possibilités principales de contexte :
universe.model (et helloworld.model) est notre item racine de la publication et nous devons commencer en mode navigation. Nous y avons défini une page, et n'en définirons aucune autre à l'avenir, donc dans les transformers des submodels, nous devons utiliser le mode content.
sm:page permet de créer physiquement les fichiers html qui constitueront le site web.
Le transformer pour astrobj.model pourrait être réalisé de manière très simple :
for code="*" > WHeadingBlock > (title > subModelTitle) | callSubModel
Mais nous voulons que chaque partie "Atmosphère", "Surface"... ait un titre par défaut si l'auteur ne le précise pas.
créez ce nouveau transformer en faisant un clic droit dans l'atelier helloworld sur l'espace web puis choisissez Ajouter un item et sélectionnez l'item de type Publication -> Générateurs 'web' -> Transformers Web -> compositionXhtmlTransf que vous nommerez astrobj.transf.
Faites ensuite les modifications suivantes :
On sélectionne avec plusieurs for chaque part une par une grâce au code. Lorsque vous précisez plusieurs title à la suite l'un de l'autre, c'est le premier existant qui est choisi : si le subModelTitle existe, le titre de l'auteur sera utilisé. Pour les parties libres nous ne leur donnons pas de titre si l'auteur ne le spécifie pas.
Cette fois-ci, c'est plus simple : il s'agit juste de transférer le travail de transformation à la primitive texte : for code="*" > callSubModel :

Mettez à jour le fichier .transflist du générateur HTML, ajoutez-y les 2 nouveaux transformers.

Il n’y a plus d’erreur…

En cas d'erreur, pensez toujours à vérifier :
.model et .transf ;.models sont uniques ;navigation ou content dans les XhtmlTransf (l'écran de contrôle peut vous aider sur ce point) ;callSubModelTitle et callPartTitle par exemple ;