Bonjour !
J'essaie d'utiliser les objets SAXResult conjointement à des
TransformerHandler, pour obtenir le résultat d'une transformation XSL en tant
qu'événements SAX. J'ai quelques problèmes concernant les commentaires et les
espaces vides. J'utilise actuellement Xalan 2.6.0.
J'ai configuré un TransformerHandler, utilisant des événements SAX en entrée,
et renvoyant dans un objet SAXResult les événements SAX de sortie. Voici le
code (simplifié) utilisé (MyHandler implements au moins les interfaces
ContentHandler et LexicalHandler) :
SAXTransformerFactory factory =
((SAXTransformerFactory)TransformerFactory.newInstance());
TransformerHandler transform;
try {
transform = factory.newTransformerHandler(new
StreamSource("mysheet.xsl"));
}
catch (TransformerConfigurationException problem) {
problem.printStackTrace();
}
MyHandler out = new MyHandler();
SAXResult result = new SAXResult(out);
result.setLexicalHandler(out);
transform.setResult(result);
Dans la feuille de style mysheet.xsl, je traite les événements d'entrée, et au
sein d'un template particulier, je génère des commentaires XML au moyen de la
balise <xsl:comment>. Durant l'utilisation, tout se passe correctement, sauf en
ce qui concerne les fameux commentaires : les événements SAX que je récupère
dans MyHandler correspondent bien au résultat de la transformation, mais la
méthode comment(...), implémentée à partir de l'interface LexicalHandler, n'est
jamais appelée. Est-ce que quelqu'un pourrait m'indiquer d'où provient mon
erreur ?
Dans le même ordre d'idée, j'aurais voulu être notifié des espaces non
significatifs produits par le résultat : cependant, cela ne fonctionne pas. En
effet, la méthode ignorableWhitespace(...) implémentée à partir de l'interface
ContentHandler n'est jamais appelée non plus. Aurais-je oublié de positionner
une option dans la feuille de style ou dans le TransformerHandler ?
Merci d'avance pour toute aide appréciable !
Jean-Luc
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Sep 20 16:10:22 2004