Cela ne semble pas se derouler aussi bien que prevu a moins d'avoir rate
quelquechose. J'ai rajoute les namespaces que je souhaite voir apparaitre
dans la racine du document:
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:exsl="http://exslt.org/common"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:html="http://www.w3.org/HTML/1998/html4" xml:lang="en"
xmlns:dc="http://chemin DC/" xmlns:dcterms="http://chemin DCTERMS/"
xmlns:fi="http://chemin FI/">
<xsl:template match="document">
<xsl:element name="fi:DOC" xmlns:dc="http://chemin DC/"
xmlns:dcterms="http://chemin DCTERMS/" xml:lang="fr">
<xsl:element name="fi:DataEntry">
<xsl:element name="fi:Editor">nom</xsl:element>
<xsl:element name="dcterms:Created">
<xsl:value-of select="date:date()"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
En lancant la conversion avec saxon, le resultat XML est:
<?xml version="1.0" encoding="utf-8"?>
<fi:DOC xmlns:fi="http://chemin FI/">
<fi:DataEntry>
<fi:Editor>nom</fi:Editor>
<dcterms:Created xmlns:dcterms="http://chemin
DCTERMS/">2005-10-19</dcterms:Created>
</fi:DataEntry>
</fi:DOC>
Il me rajoute dans ma racine que le namespace correspondant au prefix de mon
noeud, mais il ne rajoute les deux autres namespaces (xmlns:dcterms et
xmlns:dc) et me les rajoute par contre a chaque fois qu il rencontre un
noeud dont le prefix correspond. En definitive, je voudrais avoir:
<?xml version="1.0" encoding="utf-8"?>
<fi:DOC xmlns:fi="http://chemin FI/" xmlns:dcterms="http://chemin DCTERMS/"
xmlns:dc="http://chemin DC/">
<fi:DataEntry>
<fi:Editor>nom</fi:Editor>
<dcterms:Created>2005-10-19</dcterms:Created>
</fi:DataEntry>
</fi:DOC>
Merci d'avance pour votre aide.
Sylvain
<BLOCKQUOTE style='PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #A0C6E5
2px solid; MARGIN-RIGHT: 0px'><font
style='FONT-SIZE:11px;FONT-FAMILY:tahoma,sans-serif'><hr color=#A0C6E5
size=1>
From: <i>Eric van der Vlist <vdv@dyomedea.com></i><br>Reply-To:
<i>xml-tech@xmlfr.org</i><br>To: <i>xml-tech@xmlfr.org</i><br>Subject:
<i>[xml-tech] Re: Namespaces dans l'XML output</i><br>Date: <i>Wed, 19 Oct
2005 16:48:26 +0200</i><br>>Bonjour,<br>><br>>Le mercredi 19
octobre 2005 à 15:33 +0200, sylvain caillot a écrit :<br>> >
Bonjour<br>> ><br>> > Comment peut on rajouter des namespaces au
niveau du root de mon document<br>> > XML en sortie?<br>><br>>Il
suffit de les déclarer dans la transformation et de les utiliser
dans<br>>vos littéraux : le processeur XSLT fera en sorte qu'ils soient
déclarés<br>>dans le document de sortie.<br>><br>> > Je souhaite
en effet rajouter le namespace suivant<br>> >
xsi:schemaLocation="http://test/schema.xsd" et l'info suivante
xml:lang="en"<br>> > a la racine de tous
documents.<br>><br>>Le préfixe "xml" est "magique"
: sa déclaration est facultative!<br>><br>>En pratique, vous pouvez
donc écrire :<br>><br>><xsl:stylesheet ...
xmlns:xsi="..."
.../><br>><br>>.../...<br>><br>> <mon-document
xsi:schemaLocation="http://test/schema.xsd"
xml:lang="fr"><br>>.../...<br>><br>>Cela devrait
suffire.<br>><br>>Cordialement,<br>><br>>Eric van der
Vlist<br>><br>>--<br>>Le premier annuaire des apiculteurs 100%
XML!<br>>
http://apiculteurs.info/<br>>------------------------------------------------------------------------<br>>Eric
van der Vlist http://xmlfr.org
http://dyomedea.com<br>>(ISO) RELAX NG ISBN:0-596-00421-4
http://oreilly.com/catalog/relax<br>>(W3C) XML Schema ISBN:0-596-00252-1
http://oreilly.com/catalog/xmlschema<br>>------------------------------------------------------------------------<br>><br>><br>>--<br>>Devenez
redacteur <XML>fr et contribuez au developpement du<br>>xml
francophone (http://xmlfr.org/infos/redacteurs/) !<br>><br>>Liste de
diffusion "xml-tech@xmlfr.org"
(http://xmlfr.org).<br>><br>>Cette liste est a votre disposition pour
discuter en francais de<br>>tout sujet technique lie a
XML.<br>><br>>Pour resilier votre abonnement, envoyez un message
contenant<br>>la commande "unsubscribe" a
xml-tech-request@xmlfr.org<br>>(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)<br>><br></font></BLOCKQUOTE>
--
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 Wed Oct 19 17:18:49 2005