bonjour à tous ,
Lors d'une transformation xslt d'un document Xml ( en l'occurence Svg )
l'auteur recopie les elements et attributs (définis comme espace de nom par défaut dans le document svg à transformer) dans un espace de nom préfixé
Voici le début de la euille de style :
Je vois bien ce qu'il fait mais je ne comprends pas ce qu'il fait , puisque au départ aucun élément n'est déclaré svg:rect ou svg:circle ...
Mais en appliquent "ce principe" les parties svg incluses dans des éléments d'espace de nom "privé" sont alors affiché ...
Et j'essaie de comprendre pourquoi depuis hier soir
Voilà un exemple relativement simple (dans mon exemple kzone:graphic est une extension de la DTD du svg)
Pourquoi recopier tous les éléments dans une espace préfixé :
par contre sans recopier cela le rectangle vert inclus dans kzone:graphic n'est pas afficher
merci de votre aide (en espérant que j'ai été un peu plus clair que d'habitude ) .... qui a dit faut pas rêver
Modifié par kzone (07 Mar 2007 - 12:56)
Lors d'une transformation xslt d'un document Xml ( en l'occurence Svg )
l'auteur recopie les elements et attributs (définis comme espace de nom par défaut dans le document svg à transformer) dans un espace de nom préfixé
Voici le début de la euille de style :
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:tb="http://www.treebuilder.de/SVGEXT" >
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="svg:*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<xsl:copy/>
</xsl:template>
<xsl:template match="tb:rect">
<rect x="0" y="0" width="50" height="50"/>
</xsl:template>
</xsl:stylesheet>
Je vois bien ce qu'il fait mais je ne comprends pas ce qu'il fait , puisque au départ aucun élément n'est déclaré svg:rect ou svg:circle ...
Mais en appliquent "ce principe" les parties svg incluses dans des éléments d'espace de nom "privé" sont alors affiché ...
Et j'essaie de comprendre pourquoi depuis hier soir
Voilà un exemple relativement simple (dans mon exemple kzone:graphic est une extension de la DTD du svg)
Pourquoi recopier tous les éléments dans une espace préfixé :
<xsl:template match="svg:*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
par contre sans recopier cela le rectangle vert inclus dans kzone:graphic n'est pas afficher
merci de votre aide (en espérant que j'ai été un peu plus clair que d'habitude ) .... qui a dit faut pas rêver
Modifié par kzone (07 Mar 2007 - 12:56)