You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Kin-Man Chung <Ki...@Eng.Sun.COM> on 2001/09/06 00:02:15 UTC
[PATCH] Jsp XML document produces invlaid XML
This patch fixes 3174 and 3351. This fix was supplied by the submitter
mark.abbott@openwave.com. This fix looks good.
Index: XmlOutputter.java
===================================================================
RCS file:
/home/cvspublic/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/X
mlOutputter.java,v
retrieving revision 1.15
diff -u -r1.15 XmlOutputter.java
--- XmlOutputter.java 2001/07/25 01:49:10 1.15
+++ XmlOutputter.java 2001/09/05 20:48:36
@@ -94,7 +94,7 @@
/*
* Tells the nesting level of <jsp:root> tags encountered
- * in the translation unit.
+ * in the translation unit. This is currently unused.
*/
private int jspRootLevel = 0;
@@ -121,15 +121,16 @@
* A translation unit (JSP source file and any files included via
* the include directive) may encounter multiple <jsp:root>
* tags. This method cumulates all attributes for the
- * <jsp:root> tag.
+ * <jsp:root> tag. It also ignores any xmlns:jsp and version
+ * attributes, in favor of the one generated by the compiler.
*/
void addRootAttrs(Attributes attrs) {
jspRootLevel++;
int attrsLength = attrs.getLength();
for (int i = 0; i < attrsLength; i++) {
String qName = attrs.getQName(i);
- if (attrs.getQName(i).startsWith("xmlns:jsp")
- && jspRootLevel > 1) continue;
+ if ((qName.startsWith("xmlns:jsp") ||
+ qName.equals("version"))) continue;
rootAttrs.addAttribute(attrs.getURI(i), attrs.getLocalName(i),
attrs.getQName(i), attrs.getType(i), attrs.getValue(i));
}
@@ -149,9 +150,6 @@
*/
void rootEnd() {
jspRootLevel--;
- if (jspRootLevel == 0) {
- append("jsp:root");
- }
}
/**
@@ -263,7 +261,6 @@
StringBuffer buff = new StringBuffer();
AttributesImpl attrs = new AttributesImpl();
-
append("jsp:root", rootAttrs, buff, false);
buff.append(sb.toString());
buff.append("</jsp:root>");