dbertoni    01/01/29 16:38:01

  Modified:    c/src/XSLT ElemElement.cpp
  Log:
  We should no longer generate prefixes.
  
  Revision  Changes    Path
  1.16      +22 -54    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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ElemElement.cpp   2001/01/29 20:47:02     1.15
  +++ ElemElement.cpp   2001/01/30 00:38:00     1.16
  @@ -179,10 +179,6 @@
   
        const bool                              haveNamespace = indexOfNSSep == 
len ? false : true;
   
  -     bool                                    outputNSDecl = false;
  -
  -     const XalanDOMString*   ns = 0;
  -
        if(haveNamespace == true)
        {
                if (indexOfNSSep + 1 == len ||
  @@ -206,16 +202,27 @@
        }
        else if (haveNamespace == true)
        {
  -             ns = &getNamespaceForPrefixInternal(substring(elemName, 0, 
indexOfNSSep), false);
  -     }
  +             StylesheetExecutionContext::GetAndReleaseCachedString   
prefixGuard(executionContext);
  +
  +             XalanDOMString&         prefix = prefixGuard.get();
   
  -     const unsigned int      nsLength = ns == 0 ? 0 : length(*ns);
  +             prefix = substring(elemName, 0, indexOfNSSep);
  +
  +             const XalanDOMString&   theNamespace = 
executionContext.getResultNamespaceForPrefix(prefix);
  +
  +             if (length(theNamespace) == 0 && 
length(m_namespacesHandler.getNamespace(prefix)) == 0)
  +             {
  +                     executionContext.warn("Could not resolve prefix: " + 
prefix, this);
  +             }
  +     }
   
  -     if (len != 0 && (haveNamespace == false || nsLength != 0))
  +     if (len != 0)
        {
                if(0 == m_namespaceAVT)
                {
                        executionContext.startElement(toCharArray(elemName));   
  +
  +                     
m_namespacesHandler.outputResultNamespaces(executionContext);
                }
                else
                {
  @@ -228,67 +235,28 @@
                        if(isEmpty(elemNameSpace) == true)
                        {
                                
executionContext.startElement(toCharArray(elemName));   
  +
  +                             
m_namespacesHandler.outputResultNamespaces(executionContext);
                        }
                        else
                        {
  -                             if(indexOfNSSep < len)
  -                             {
  -                                     assign(elemName, substring(elemName, 
indexOfNSSep + 1));
  -                             }
  +                             
executionContext.startElement(toCharArray(elemName));
   
  -                             const XalanDOMString&   prefix = 
executionContext.getResultPrefixForNamespace(elemNameSpace);
  +                             
m_namespacesHandler.outputResultNamespaces(executionContext);
   
  -                             if(isEmpty(prefix) == false)
  +                             if(indexOfNSSep == len)
                                {
  -                                     reserve(
  -                                             elemName,
  -                                             length(elemName) + 
DOMServices::s_XMLNamespaceSeparatorStringLength + length(prefix) + 1);
  -
  -                                     insert(elemName, 0, 
DOMServices::s_XMLNamespaceSeparatorString);
  -                                     insert(elemName, 0, prefix);
  -                     
  -                                     
executionContext.startElement(toCharArray(elemName));   
  +                                     
executionContext.addResultAttribute(DOMServices::s_XMLNamespace, elemNameSpace);
                                }
  -                             else
  -                             {
  -                                     
StylesheetExecutionContext::GetAndReleaseCachedString   
newPrefixGuard(executionContext);
  -
  -                                     XalanDOMString&         newPrefix = 
newPrefixGuard.get();
  -
  -                                     
executionContext.getUniqueNamespaceValue(newPrefix);
  -
  -                                     
StylesheetExecutionContext::GetAndReleaseCachedString   
nsDeclGuard(executionContext);
  -
  -                                     XalanDOMString&         nsDecl = 
nsDeclGuard.get();
  -
  -                                     reserve(nsDecl, 
DOMServices::s_XMLNamespaceWithSeparatorLength + length(newPrefix) + 1);
  -
  -                                     assign(nsDecl, 
DOMServices::s_XMLNamespaceWithSeparator);
  -
  -                                     append(nsDecl, newPrefix);
  -
  -                                     reserve(
  -                                             elemName,
  -                                             length(elemName) + 
DOMServices::s_XMLNamespaceSeparatorStringLength + length(newPrefix) + 1);
  -
  -                                     insert(elemName, 0, 
DOMServices::s_XMLNamespaceSeparatorString);
  -                                     insert(elemName, 0, newPrefix);
  -
  -                                     
executionContext.startElement(toCharArray(elemName));   
  -
  -                                     
executionContext.addResultAttribute(nsDecl, elemNameSpace);
  -                             }
                        }
                }
        }
   
        ElemUse::execute(executionContext, sourceTree, sourceNode, mode);
   
  -     m_namespacesHandler.outputResultNamespaces(executionContext);
  -
        executeChildren(executionContext, sourceTree, sourceNode, mode);
   
  -     if (len != 0 && (haveNamespace == false || nsLength != 0))
  +     if (len != 0)
        {
                executionContext.endElement(toCharArray(elemName));
        }
  
  
  

Reply via email to