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]

Reply via email to