bonjour

Ma transformation XSLT nécessite la prise en compte des namespaces.

je génère mon Document XML dynamiquement.
Après je crée un Transformer associé à une feuille de style
j'applique la feuille de style

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
 
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
 
        // Create the document //
        doc = factory.newDocumentBuilder().newDocument();
 
        // Creation elements, etc... //
        doc.createElement("page");
        //...
        DOMSource xmlSource = new DOMSource(doc);
 
        // Create a transformer //
        //...
        Transformer transformer = templates.newTransformer();
 
        // Transform input XML doc in HTML stream //
        transformer.transform(xmlSource, new StreamResult(htmlStreamResult));
mais les namespaces ne sont pas pris en compte, bien que j'ai créé mon Document à partir d'un builder les prenant en compte.

par contre, si je serialise le Document dans un fichier en dur sur le disque & qu'après je le parse avec le meme builder, là ça marche ! Faisant une application web (WAR), je ne peux pas générer des fichiers xml en dur.

je ne vois pas la subtilité, avez vous déjà eu à faire à ce problème ?
existe t il une solution pour prendre en charge les namespaces dans ce cas là ?

je suis parti sur la piste suivante : j'ai voulu (meme si ce n'est pas très élégant) parser le Document sans le créer en dur mais je ne vois pas comment passer du type Document aux types nécessaires à la méthode parse().
vous voyez par où prendre le problème ?

http://java.sun.com/j2se/1.4.2/docs/...ntBuilder.html
http://java.sun.com/j2se/1.4.2/docs/.../Document.html

merci d'avance