ilene 2002/11/08 13:11:37
Modified: java/src/org/apache/xalan/transformer ResultTreeHandler.java
java/src/org/apache/xalan/templates ElemTemplateElement.java
ElemElement.java
Log:
Committing Gordon Chiu's ([EMAIL PROTECTED]) patches for
namespace bugs #13774,13775,13414
Revision Changes Path
1.59 +5 -4
xml-xalan/java/src/org/apache/xalan/transformer/ResultTreeHandler.java
Index: ResultTreeHandler.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/ResultTreeHandler.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- ResultTreeHandler.java 25 Sep 2002 18:42:37 -0000 1.58
+++ ResultTreeHandler.java 8 Nov 2002 21:11:36 -0000 1.59
@@ -986,7 +986,8 @@
n = dtm.getNextSibling(n))
{
flushPending(true); // I think.
- startPrefixMapping("","");
+ if (dtm.getNamespaceURI(n) == null)
+ startPrefixMapping("","");
dtm.dispatchToEvents(n, this);
}
}
@@ -1108,6 +1109,9 @@
{
String prefix = (String) prefixes.nextElement();
String uri=m_nsSupport.getURI(prefix);
+
+ if (null == uri)
+ uri = "";
// Send event
handler.startPrefixMapping(prefix, uri);
@@ -1123,9 +1127,6 @@
}
else
name = "xmlns:" + prefix;
-
- if (null == uri)
- uri = "";
m_attributes.addAttribute("http://www.w3.org/2000/xmlns/",
prefix, name, "CDATA", uri);
1.55 +31 -3
xml-xalan/java/src/org/apache/xalan/templates/ElemTemplateElement.java
Index: ElemTemplateElement.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemTemplateElement.java,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- ElemTemplateElement.java 3 Oct 2002 19:08:44 -0000 1.54
+++ ElemTemplateElement.java 8 Nov 2002 21:11:37 -0000 1.55
@@ -1217,6 +1217,20 @@
*/
void executeNSDecls(TransformerImpl transformer) throws
TransformerException
{
+ executeNSDecls(transformer, null);
+ }
+
+ /**
+ * Send startPrefixMapping events to the result tree handler
+ * for all declared prefix mappings in the stylesheet.
+ *
+ * @param transformer non-null reference to the the current transform-time
state.
+ * @param ignorePrefix string prefix to not startPrefixMapping
+ *
+ * @throws TransformerException
+ */
+ void executeNSDecls(TransformerImpl transformer, String ignorePrefix)
throws TransformerException
+ {
try
{
@@ -1229,7 +1243,7 @@
{
XMLNSDecl decl = (XMLNSDecl) m_prefixTable.elementAt(i);
- if (!decl.getIsExcluded())
+ if (!decl.getIsExcluded() && !(null != ignorePrefix &&
decl.getPrefix().equals(ignorePrefix)))
{
rhandler.startPrefixMapping(decl.getPrefix(), decl.getURI(),
true);
}
@@ -1243,7 +1257,7 @@
}
/**
- * Send startPrefixMapping events to the result tree handler
+ * Send endPrefixMapping events to the result tree handler
* for all declared prefix mappings in the stylesheet.
*
* @param transformer non-null reference to the the current transform-time
state.
@@ -1252,6 +1266,20 @@
*/
void unexecuteNSDecls(TransformerImpl transformer) throws
TransformerException
{
+ unexecuteNSDecls(transformer, null);
+ }
+
+ /**
+ * Send endPrefixMapping events to the result tree handler
+ * for all declared prefix mappings in the stylesheet.
+ *
+ * @param transformer non-null reference to the the current transform-time
state.
+ * @param ignorePrefix string prefix to not endPrefixMapping
+ *
+ * @throws TransformerException
+ */
+ void unexecuteNSDecls(TransformerImpl transformer, String ignorePrefix)
throws TransformerException
+ {
try
{
@@ -1264,7 +1292,7 @@
{
XMLNSDecl decl = (XMLNSDecl) m_prefixTable.elementAt(i);
- if (!decl.getIsExcluded())
+ if (!decl.getIsExcluded() && !(null != ignorePrefix &&
decl.getPrefix().equals(ignorePrefix)))
{
rhandler.endPrefixMapping(decl.getPrefix());
}
1.27 +6 -2
xml-xalan/java/src/org/apache/xalan/templates/ElemElement.java
Index: ElemElement.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemElement.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- ElemElement.java 10 Jul 2002 16:06:31 -0000 1.26
+++ ElemElement.java 8 Nov 2002 21:11:37 -0000 1.27
@@ -403,7 +403,9 @@
else
{
// Add namespace declarations.
- executeNSDecls(transformer);
+ // Bugzilla 13414: do not startPrefixMapping on 'prefix'
+ // as it is handled below
+ executeNSDecls(transformer, prefix);
if (null != prefix)
{
@@ -429,7 +431,9 @@
{
rhandler.endPrefixMapping(prefix);
}
- unexecuteNSDecls(transformer);
+ // Bugzilla 13414: do not endPrefixMapping on 'prefix'
+ // as it is handled above
+ unexecuteNSDecls(transformer, prefix);
}
}
catch (SAXException se)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]