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 :
javax.xml.transform.TransformerException: org.xml.sax.SAXException: Compile xpath failed: sp:rqeee javax.xml.transform.TransformerException: Prefix must resolve to a namespace: sp
Est-ce grave docteur ?
merci pour votre aide
Christophe
Re bonjour @xtof ,
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
<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
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 :
Oui pardon , 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
PS. En 4.2 sans les déclarations ça fonctionne, je vous l’assure