You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by jb...@sparnord.dk on 2003/03/17 13:53:04 UTC

xmlns:exclude-result-prefixes

Hi...

I am using Xalan 2.5.D1 together with Ant to dynamically create jsp pages.
I am thus using the exclude-result-prefixes to ensure that the jsp
namespace isn't written to the output, but this doesn't seem to work in all
cases.

The following is a simplified version of my stylesheet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0"
                xmlns:jsp="http://java.sun.com/products/jsp/dtd/jsp_1_0.dtd"
                xmlns:form="http://www.sparnord.dk/"
                xmlns:exclude-result-prefixes="jsp form">

  <xsl:output method="html" omit-xml-declaration="yes" encoding="ISO-8859-1"/>

  <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">&lt;%@ taglib uri="/form" prefix="form" %&gt;</xsl:text>
    <xsl:call-template name="rules"/>
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="produkt">
    <jsp:useBean id="someBean1" scope="session" class="dk.sparnord..Bean1"/>
    <html>
      <body>
        <form:form action="action.jsp" method="post">
          <jsp:useBean id="someBean2" scope="session" class="dk.sparnord.Bean2"/>
          <form:input type="text" name="{@navn}"/>
        </form:form>
      </body>
    </html>
  </xsl:template>

  <xsl:template name="rules">
    <jsp:useBean id="someBean3" scope="session" class="dk.sparnord.Bean3"/>
  </xsl:template>

</xsl:stylesheet>

When applied this yields the following result:

<%@ taglib uri="/form" prefix="form" %>
<jsp:useBean xmlns:jsp="http://java.sun.com/products/jsp/dtd/jsp_1_0.dtd" xmlns:exclude-result-prefixes="jsp form" xmlns:form
="http://www.sparnord.dk/" class="dk.sparnord.Bean3" scope="session" id="someBean3"/>
<jsp:useBean xmlns:jsp="http://java.sun.com/products/jsp/dtd/jsp_1_0.dtd" xmlns:exclude-result-prefixes="jsp form" xmlns:form
="http://www.sparnord.dk/" class="dk.sparnord..Bean1" scope="session" id="someBean1"/>
<html xmlns:exclude-result-prefixes="jsp form" xmlns:form="http://www.sparnord.dk/" xmlns:jsp="http://java.sun.com/products/jsp/dtd/jsp_1_0.dtd">
<body>
<form:form method="post" action="action.jsp">
<jsp:useBean class="dk.sparnord.Bean2" scope="session" id="someBean2"/>
<form:input name="kapitalpension" type="text"/>
</form:form>
</body>
</html>

I would expect the following result instead:

<%@ taglib uri="/form" prefix="form" %>
<jsp:useBean class="dk.sparnord.Bean3" scope="session" id="someBean3"/>
<jsp:useBean class="dk.sparnord..Bean1" scope="session" id="someBean1"/>
<html>
<body>
<form:form method="post" action="action.jsp">
<jsp:useBean class="dk.sparnord.Bean2" scope="session" id="someBean2"/>
<form:input name="kapitalpension" type="text"/>
</form:form>
</body>
</html>

It seem that xmlns attribute is only removed for the nested elements.

With version 1 of Xalan I didn't have this problem. What am I doing
wrong???

Thanks Jens