<link href="/assets/64d0ba83aa42c90354ff97799bcfc0c2.css" type="text/css" rel="stylesheet"> <script src="/assets/6fd6663d5303bb7eda3ef7493fc29db6.js"></script> <script> $(document).ready(function() { anchors.options = { visible: 'hover', placement: 'right', truncate: 64 }; anchors.add('#body h2, #body h3, #body h4, #body h5'); }); </script> <script> hljs.initHighlightingOnLoad(); </script>

<h3>XSLT et espaces nominaux</h3> <p>La transformation XSLT de documents XML comportant des éléments associés à des espaces nominaux demande de respecter quelques règles :</p> <ul> <li><em>Les espaces nominaux utilisés dans le document d’entrée et de sortie doivent être déclarés dans la feuille de style</em></li> <li><em>Ils doivent être associées à des préfixes dans cette déclaration :</em></li> <li><em>Dans les expressions XPath, les éléments doivent-être préfixés</em></li> <li><em>Dans les expressions XPath, les attributs d‘élément appartenant à un espace nominal ne doivent pas être préfixés, sauf si leur espace nominal est différent de celui de l‘élément</em></li> </ul> <p>Exemples :</p> <pre><code class="language-xml">&lt;xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rss = "http://purl.org/rss/1.0/" xmlns:sy = "http://purl.org/rss/1.0/modules/syndication/" xmlns:prism = "http://prismstandard.org/namespaces/1.2/basic/" xmlns:dc = "http://purl.org/dc/elements/1.1/"&gt; &lt;xsl:output method = "html"/&gt; &lt;xsl:template match = "/"&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt; &lt;xsl:value-of select = "rss:title"/&gt; &lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;xsl:apply-templates select = "//rss:item"/&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;xsl:template match = "rss:item"&gt; &lt;ol&gt; &lt;xsl:variable name = "url"&gt; &lt;xsl:value-of select = "@rdf:about"/&gt; &lt;/xsl:variable&gt; &lt;xsl:value-of select = "rss:title"/&gt; &lt;a href = "{$url}"&gt; &lt;xsl:value-of select = "dc:source"/&gt; &lt;/a&gt; &lt;xsl:text&gt; &lt;/xsl:text&gt; &lt;/ol&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt;</code></pre> <p><a href="/cours/espaces_nominaux/ns_et_xslt/xslt_ns.xsl">Autre exemple</a></p>