Migration à Scenaribuilder 5 - Générateur en échec

Bonjour
Après avoir migrer mon modèle vers ScenariBuilder 5 et avoir retrouver mes feuilles d’édition et de publication, je suis confronter à un nouveau problème, la génération de me documents est en erreur.
Voici la copie d’un rapport :

Est-ce grave docteur ?
merci pour votre aide :slightly_smiling_face:
Christophe

Re bonjour @xtof :slight_smile: ,
Le namespace « sp » n’a pas du être déclaré dans une xsl du générateur. Il y a des fragments XSL libres dans le générateur (une xsl ou une xpath qui exploité un élément de code rqeee) ?
Antoine
Kelis

Oui dans mon XSL Free j’ai ça :

<xsl:template match="*">
		<xsl:text>"Type","Title","Correct","Choice","Choice","Choice","Choice"
</xsl:text>
		<!-- on attaque le sous model 'rubrique' -->
		<xsl:apply-templates select="sp:rqeee"/>
	</xsl:template>
	<!-- template associé au model 'rubrique' -->
	<xsl:template match="sp:rqeee">
		<xsl:value-of select="getContent(gotoSubModel(),'')" disable-output-escaping="yes"/>
	</xsl:template>

Ce qui me surprend c’est que ça fonctionne en version 4.2

On peut avoir toute la XSL ?

la voici :slightly_smiling_face:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="sc sp">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
	<xsl:param name="vDialog"/>
	<xsl:param name="vAgent"/>
	<xsl:template match="*">
		<xsl:text>"Type","Title","Correct","Choice","Choice","Choice","Choice"
</xsl:text>
		<!-- on attaque le sous model 'rubrique' -->
		<xsl:apply-templates select="sm:rqeee"/>
	</xsl:template>
	<!-- template associé au model 'rubrique' -->
	<xsl:template match="sm:rqeee">
		<xsl:value-of select="getContent(gotoSubModel(),'')" disable-output-escaping="yes"/>
	</xsl:template>
</xsl:stylesheet>

Si c’est plus simple voici l’archive du modèle : EEE_2022-3-13.scwsp (84,3 Ko)
Merci

Alors…
On parle bien ici d’un freeXslTransf ?

Dans le premier fragment on avait <xsl:apply-templates select="sp:rqeee"/> et en effet la xsl:stylesheet ne défini pas le namespace sp donc l’erreur est normale.

Dans le deuxième fragment on trouve <xsl:apply-templates select="sm:rqeee"/> ce qui est impossible dans un transf : le préfix sm (Scenari Modeling) est le préfix des sources d’un modèle (manipulé par SCENARIbuilder)

Dans un Transformer on peut être amené à travailler avec :

  • le namesame sp (Senari Primitive) - pour des éléments définis par le paramétrage d’une primitive (une part d’une compositionPrim par exemple)
  • le namespace sc (Senari Core) - pour les éléments définis par le cœur de modeling (les éléments de la textPrim par exemple
  • les namespaces du modèle documentaire en question (Dokiel, Opale)

Quand on pose une XSL pour une freeXslTransf, il est conseillé de systématiquement déclarer au moins les namespaces sp, sc, et celui du modèle au niveau de la balise <xsl:stylesheet/> comme dans cet exemple pour Opale :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive" 
       xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" 
       xmlns:op="utc.fr:ics/opale3" 
       exclude-result-prefixes="sc sp op">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
	<xsl:param name="vDialog"/>
	<xsl:param name="vAgent"/>
	<xsl:template match="*">
		<xsl:if test="op:webRootM/sp:searchSettings/sp:searchEngine">...</xsl:if>
	</xsl:template>
</xsl:stylesheet>

Je ne pense, pas, pas en l’état.
Une XSL qui utilise un namespace sans le définir ne peut pas être valide, c’est la norme.

1 « J'aime »

Oui pardon :face_with_hand_over_mouth:, le « sm:rqeee » était un test que j’ai effectué entre l’envoi des 2 fragments. J’ai bien « sp:rqeee » dans mon fichier XSL.
Déclarations des namespaces ajoutées, la publication n’est plus en échec.
Un grand Merci :+1:
PS. En 4.2 sans les déclarations ça fonctionne, je vous l’assure :slight_smile: