dbertoni    02/05/15 17:48:20

  Modified:    c/src/XSLT ElemElement.cpp ElemLiteralResult.cpp
                        ElemLiteralResult.hpp
  Log:
  Avoid mucking with default namespace unless necessary.
  
  Revision  Changes    Path
  1.38      +11 -2     xml-xalan/c/src/XSLT/ElemElement.cpp
  
  Index: ElemElement.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemElement.cpp,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ElemElement.cpp   6 May 2002 05:31:57 -0000       1.37
  +++ ElemElement.cpp   16 May 2002 00:48:20 -0000      1.38
  @@ -277,9 +277,18 @@
                                        {
                                                if (namespaceLen > 0)
                                                {
  -                                                     
outputResultNamespaces(executionContext, hasUnresolvedPrefix);
  +                                                     
outputResultNamespaces(executionContext, hasUnresolvedPrefix, true);
   
  -                                                     
executionContext.addResultAttribute(DOMServices::s_XMLNamespace, elemNameSpace);
  +                                                     const XalanDOMString* 
const             theDefaultNamespace =
  +                                                             
executionContext.getResultNamespaceForPrefix(s_emptyString);
  +
  +                                                     if (theDefaultNamespace 
== 0 ||
  +                                                             
equals(*theDefaultNamespace, elemNameSpace) == false)
  +                                                     {
  +                                                             
executionContext.addResultAttribute(
  +                                                                     
DOMServices::s_XMLNamespace,
  +                                                                     
elemNameSpace);
  +                                                     }
                                                }
                                                else
                                                {
  
  
  
  1.49      +20 -16    xml-xalan/c/src/XSLT/ElemLiteralResult.cpp
  
  Index: ElemLiteralResult.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemLiteralResult.cpp,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- ElemLiteralResult.cpp     6 May 2002 05:31:57 -0000       1.48
  +++ ElemLiteralResult.cpp     16 May 2002 00:48:20 -0000      1.49
  @@ -101,7 +101,8 @@
                        columnNumber,
                        xslToken),
        m_elementName(name),
  -     m_avts()
  +     m_avts(),
  +     m_hasPrefix(indexOf(name, XalanUnicode::charColon) < length(name) ? 
true : false)
   {
        const unsigned int      nAttrs = atts.getLength();
   
  @@ -296,24 +297,27 @@
   
        m_namespacesHandler.outputResultNamespaces(executionContext);
   
  -     // OK, let's check to make sure we don't have to change the default 
namespace...
  -     const XalanDOMString* const             theCurrentDefaultNamespace =
  -                             
executionContext.getResultNamespaceForPrefix(s_emptyString);
  -
  -     if (theCurrentDefaultNamespace != 0)
  +     if (m_hasPrefix == false)
        {
  -             const XalanDOMString* const             
theElementDefaultNamespace =
  -                                             
m_namespacesHandler.getNamespace(s_emptyString);
  +             // OK, let's check to make sure we don't have to change the 
default namespace...
  +             const XalanDOMString* const             
theCurrentDefaultNamespace =
  +                                     
executionContext.getResultNamespaceForPrefix(s_emptyString);
   
  -             if (theElementDefaultNamespace == 0)
  -             {
  -                     // There was no default namespace, so we have to turn 
the
  -                     // current one off.
  -                     
executionContext.addResultAttribute(DOMServices::s_XMLNamespace, s_emptyString);
  -             }
  -             else if (equals(*theCurrentDefaultNamespace, 
*theElementDefaultNamespace) == false)
  +             if (theCurrentDefaultNamespace != 0)
                {
  -                     
executionContext.addResultAttribute(DOMServices::s_XMLNamespace, 
*theElementDefaultNamespace);
  +                     const XalanDOMString* const             
theElementDefaultNamespace =
  +                                                     
m_namespacesHandler.getNamespace(s_emptyString);
  +
  +                     if (theElementDefaultNamespace == 0)
  +                     {
  +                             // There was no default namespace, so we have 
to turn the
  +                             // current one off.
  +                             
executionContext.addResultAttribute(DOMServices::s_XMLNamespace, s_emptyString);
  +                     }
  +                     else if (equals(*theCurrentDefaultNamespace, 
*theElementDefaultNamespace) == false)
  +                     {
  +                             
executionContext.addResultAttribute(DOMServices::s_XMLNamespace, 
*theElementDefaultNamespace);
  +                     }
                }
        }
   
  
  
  
  1.24      +5 -0      xml-xalan/c/src/XSLT/ElemLiteralResult.hpp
  
  Index: ElemLiteralResult.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemLiteralResult.hpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- ElemLiteralResult.hpp     4 Jan 2002 01:59:49 -0000       1.23
  +++ ElemLiteralResult.hpp     16 May 2002 00:48:20 -0000      1.24
  @@ -188,6 +188,11 @@
         * A vector to keep track of the attribute elements.
         */
        AVTVectorType                   m_avts;
  +
  +     /**
  +      * If true, the literal result element has a namespace prefix...
  +      */
  +     const bool                              m_hasPrefix;
   };
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to