Le Jeudi 3 Novembre 2005 14:45, Robin Berjon a écrit :
>
> Il faut bien distinguer l'objet DOM de sa sérialisation XML. L'objet
> importé a bel et bien le bon namespace, ainsi qu'un préfixe
> correspondant et tout ce qu'il faut (pareil pour ses attributs et
> descendants quand l'option deep est à true). Par contre ton
> implémentation DOM peut ne pas rendre celà évident si tu fais un
> toString sur un élément isolé, et peut parfois se tromper dans sa
> sérialisation du document en entier. Dans ce dernier cas c'est un bug
> (ou une limitation) de l'implémentation, et non pas de la spec.
Encore une fois le problème semble bien venir du serializer, et plus
précisément de la transformation identité de jaxp. J'ai fait la manip de
remplacer la transformation identité implicite par une transformation
identité explicite, située dans une xslt à moi, et là je retrouve bien mes
espaces de noms.
J'ai fait :
t = tf.newTransformer(new StreamSource(new StringReader(
"<xsl:stylesheet version=\"1.0\"
xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">"+
"<xsl:template match=\"@*|node()\"><xsl:copy><xsl:apply-templates
select=\"@*|node()\"/></xsl:copy></xsl:template>"+
"</xsl:stylesheet>"
)));
Sur le site de Sun, il y a au moins un bug report qui semble correspondre :
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4981389
On y apprends que "For JDK 1.4, using JAXP identity transforms for namespaced
documents is too buggy to consider, and no DOM3 LS is available." !!
Cela n'arrange pas du tout mes petites affaires : j'ai peur que la
transformation identité par un xslt source prenne un
temps fou. Et quelle usine à gaz !
Enfin, s'il n'y avait pas des bugs, on s'ennuierait. Merci.
--
SARL diaam informatique - 04 77 25 43 28
Ingenierie, développements de systèmes d'information
http://www.diaam-informatique.com
--
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 Fri Nov 4 08:14:28 2005