You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2003/08/12 02:52:50 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler PageDataImpl.java

kinman      2003/08/11 17:52:50

  Modified:    jasper2/src/share/org/apache/jasper/compiler
                        PageDataImpl.java
  Log:
  - When including a JSP document (written in the XML syntax),
    in the resulting XML View of the translation unit the
    root element of the included segment must have the default
    namespace reset to "".
  
  Revision  Changes    Path
  1.32      +19 -3     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java
  
  Index: PageDataImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- PageDataImpl.java	11 May 2003 22:54:47 -0000	1.31
  +++ PageDataImpl.java	12 Aug 2003 00:52:50 -0000	1.32
  @@ -271,6 +271,7 @@
   	private StringBuffer buf;
   	private Compiler compiler;
   	private String jspIdPrefix;
  +	private boolean resetDefaultNS = false;
   
   	// Current value of jsp:id attribute
   	private int jspId;
  @@ -295,7 +296,12 @@
   		appendXmlProlog();
   		appendTag(n);
   	    } else {
  +		boolean resetDefaultNSSave = resetDefaultNS;
  +		if (n.isXmlSyntax()) {
  +		    resetDefaultNS = true;
  +		}
   		visitBody(n);
  +		resetDefaultNS = resetDefaultNSSave;
   	    }
   	}
   
  @@ -400,11 +406,15 @@
           }
   
   	public void visit(Node.CustomTag n) throws JasperException {
  +	    boolean resetDefaultNSSave = resetDefaultNS;
   	    appendTag(n);
  +	    resetDefaultNS = resetDefaultNSSave;
   	}
   
   	public void visit(Node.UninterpretedTag n) throws JasperException {
  +	    boolean resetDefaultNSSave = resetDefaultNS;
   	    appendTag(n);
  +	    resetDefaultNS = resetDefaultNSSave;
   	}
   
   	public void visit(Node.JspText n) throws JasperException {
  @@ -690,10 +700,16 @@
   	     */
   	    attrs = n.getNonTaglibXmlnsAttributes();
   	    len = (attrs == null) ? 0 : attrs.getLength();
  +	    boolean defaultNSSeen = false;
   	    for (int i=0; i<len; i++) {
   		String name = attrs.getQName(i);
   		String value = attrs.getValue(i);
   		buf.append("  ").append(name).append("=\"").append(value).append("\"\n");
  +		defaultNSSeen = "xmlns".equals(name);
  +	    }
  +	    if (resetDefaultNS && !defaultNSSeen) {
  +		buf.append("  xmlns=\"\"\n");
  +		resetDefaultNS = false;
   	    }
   
   	    /*