IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

EXSLT et XALAN


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Points : 53
    Points
    53
    Par défaut EXSLT et XALAN
    Bonjour,

    J'essaye désespérément d'utiliser les "function" EXSLT avec xalan (http://www.exslt.org/func/index.html), et je rencontre des problèmes, semble-t-il avec les namespace.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" 
    		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    		xmlns:aze="http://test.fr/test"
    		xmlns:func="http://exslt.org/func" >
    	<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
     
     
    	<!-- Test des fonctions d'EXSLT -->
    	<func:function name="aze:maFonction">
    		<func:result select="1" />
    	</func:function>
     
    	<!-- Corps -->
    	<xsl:template match="base">
    		<a>
    		<xsl:if test="aze:maFonction()">
    			<truc />
    		</xsl:if>
    		<essai>X</essai>
    		</a>
    	</xsl:template>
     
    </xsl:stylesheet>
    Et l'erreur :

    ERREUR : 'La classe 'test' est introuvable.'
    ERREUR BLOQUANTE : 'Impossible de compiler la feuille de style'
    Erreur Transformation XSLT
    javax.xml.transform.TransformerConfigurationException: Impossible de compiler la feuille de style
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source)

    (j'ai testé d'autres fonctions exslt, entre autre les fonctions math et je n'ai aucuns soucis avec)
    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    essaie plutôt avec ce namespace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:func="http://exslt.org/functions

  3. #3
    Membre du Club
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    Non ça change rien, de toutes façons les URI des xmlns sont pas vraiment utilisée il me semble... Du reste ça pointe sur rien en général.

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par grumff
    Non ça change rien, de toutes façons les URI des xmlns sont pas vraiment utilisée il me semble... Du reste ça pointe sur rien en général.
    Certes ça ne pointe sur rien, mais l'URI correcte est indispensable pour que l'extension soit bien reconnue comme une extension EXSLT. Ce n'est a priori pas le seul problème, il manque aussi l'attribut extension-element-prefixes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:stylesheet
      ...
      ...
      extension-element-prefixes="func">

  5. #5
    Membre du Club
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    J'avais déjà essayé avec ça, je viens de retester, mais ça change rien au résultat Ce qui m'énerve c'est l'erreur qui veut à peu prêt rien dire... On a l'impression que ça merde sur le namespace que je défini, alors que si je l'utilise pour mettre une balise quelconque ailleurs y'a aucun soucis.

    Et puis d'après le site d'apache ou celui d'exslt ces fonctions devraient pourtant bien être supportées…

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Arf, j'avais pas percuté au début sur le fait que tu utilisais XSLTC...

    Il y a des restrictions sur l'utilisation des extensions EXSLT par XSLTC : http://xml.apache.org/xalan-j/extens...html#exslt_ext

    Pour l'instant, function et result ne sont pas supportés.

  7. #7
    Membre du Club
    Profil pro
    Développeur (web, java, php, c, ...)
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur (web, java, php, c, ...)

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    Ok merci, effectivement ça explique pas mal de choses...

    Reste à comprendre pourquoi en bas de la page ici :
    http://www.exslt.org/func/elements/function/index.html
    ou encore là :
    http://xml.apache.org/xalan-j/extensionslib.html

    C'est marqué le contraire... Soit j'ai raté quelque chose, soit ils ont un peu tendance à se contredire

    Enfin au moins maintenant je suis fixé.

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par grumff
    C'est marqué le contraire... Soit j'ai raté quelque chose, soit ils ont un peu tendance à se contredire
    Non, ce n'est pas contradictoire. Le support de EXSLT est limité si utilises XSLTC, pas si utilises Xalan sans activer la compilation des templates.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [xsl][xalan]Demande d'aide pour un comptage
    Par HomoErectus dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/09/2005, 09h22
  2. [XSLT] [Flux][Xalan] ResultSet vers stdout en passant par un XSLT
    Par B&B dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 02/08/2005, 09h22
  3. [Tomcat]org.apache.xalan.processor.TransformerFactoryImpl
    Par wwave dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/06/2005, 14h29
  4. [XML][Xalan] problem in SAX transform
    Par barberot dans le forum APIs
    Réponses: 2
    Dernier message: 23/05/2005, 07h14
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo