The metadata DC.subject is multiple then it should be managed like this :
<meta name="DC.subject">
<xsl:attribute name="content">
<xsl:choose>
<xsl:when test="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name = 'DC.subject']">
<xsl:for-each select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name = 'DC.subject']">
<xsl:value-of select="@content"/><xsl:if test="not(position()=last())"><xsl:text>, </xsl:text></xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise><xsl:text>Ametys V3, Cms Open source, Cms Java, Java, JCR, JackRabbit, Cocoon, extJS</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</meta>
<!-- Copy Dublin Core metadata. -->
<xsl:copy-of select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[starts-with(@name, 'DC.') and not(@name='DC.subject')]"/>