You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jk...@apache.org on 2001/11/07 15:42:26 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java ResultTreeHandler.java

jkesselm    01/11/07 06:42:26

  Modified:    java/src/org/apache/xalan/transformer
                        ClonerToResultTree.java ResultTreeHandler.java
  Log:
  Bugzilla 4607; allow explicitly cloning namespace nodes rather than
  throwing exception.
  
  Revision  Changes    Path
  1.12      +10 -4     xml-xalan/java/src/org/apache/xalan/transformer/ClonerToResultTree.java
  
  Index: ClonerToResultTree.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/ClonerToResultTree.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ClonerToResultTree.java	2001/10/05 16:33:14	1.11
  +++ ClonerToResultTree.java	2001/11/07 14:42:26	1.12
  @@ -206,7 +206,6 @@
           break;
         case DTM.DOCUMENT_FRAGMENT_NODE :
         case DTM.DOCUMENT_NODE :
  -
           // Can't clone a document, but refrain from throwing an error
           // so that copy-of will work
           break;
  @@ -221,9 +220,9 @@
             }
   
             String ns = dtm.getNamespaceURI(node);
  -	  // JJK SAX apparently expects "no namespace" to be represented
  -	  // as "" rather than null.
  -	  if(ns==null)ns="";
  +          // JJK SAX apparently expects "no namespace" to be represented
  +          // as "" rather than null.
  +          if(ns==null)ns="";
   
             String localName = dtm.getLocalName(node);
   
  @@ -238,6 +237,13 @@
         case DTM.ATTRIBUTE_NODE :
           rth.addAttribute(node);
           break;
  +			case DTM.NAMESPACE_NODE:
  +				// %REVIEW% Normally, these should have been handled with element.
  +				// It's possible that someone may write a stylesheet that tries to
  +				// clone them explicitly. If so, we need the equivalent of
  +				// rth.addAttribute().
  +  			rth.processNSDecls(node,DTM.NAMESPACE_NODE,dtm);
  +				break;
         case DTM.COMMENT_NODE :
           XMLString xstr = dtm.getStringValue (node);
           xstr.dispatchAsComment(rth);
  
  
  
  1.51      +14 -0     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.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- ResultTreeHandler.java	2001/10/11 12:49:44	1.50
  +++ ResultTreeHandler.java	2001/11/07 14:42:26	1.51
  @@ -1193,6 +1193,9 @@
   
     /**
      * Copy <KBD>xmlns:</KBD> attributes in if not already in scope.
  +   * 
  +   * As a quick hack to support ClonerToResultTree, this can also be used
  +   * to copy an individual namespace node.
      *
      * @param src Source Node
      * NEEDSDOC @param type
  @@ -1224,6 +1227,17 @@
             }
           }
         }
  +      else if (type == DTM.NAMESPACE_NODE)
  +			{
  +          String prefix = dtm.getNodeNameX(src);
  +          String desturi = getURI(prefix);
  +          String srcURI = dtm.getNodeValue(src);
  +
  +          if (!srcURI.equalsIgnoreCase(desturi))
  +          {
  +            this.startPrefixMapping(prefix, srcURI, false);
  +          }
  +			}
       }
       catch (org.xml.sax.SAXException se)
       {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org