dbertoni    00/06/01 08:25:56

  Modified:    c/src/XSLT ElemTemplateElement.cpp
  Log:
  Updated code so that an empty prefix isn't an error.
  
  Revision  Changes    Path
  1.23      +37 -24    xml-xalan/c/src/XSLT/ElemTemplateElement.cpp
  
  Index: ElemTemplateElement.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTemplateElement.cpp,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- ElemTemplateElement.cpp   2000/05/29 22:33:47     1.22
  +++ ElemTemplateElement.cpp   2000/06/01 15:25:55     1.23
  @@ -78,6 +78,10 @@
   
   
   
  +#include <DOMSupport/DOMServices.hpp>
  +
  +
  +
   #include <XMLSupport/FormatterToText.hpp>
   
   
  @@ -1365,37 +1369,46 @@
   {
       XalanDOMString   nameSpace;
   
  -    if(m_finishedConstruction == true)
  -    {
  -              if(!isEmpty(prefix))
  -              {
  -                      ElemTemplateElement*  elem = 
const_cast<ElemTemplateElement *>(this);
  +     if (isEmpty(prefix) == false)
  +     {
  +             bool                    fEmptyIsError = true;
   
  -                      while(isEmpty(nameSpace) && elem != 0)
  +             if(m_finishedConstruction == true)
  +             {
  +                      if (equals(prefix, DOMServices::s_XMLString) == true)
                         {
  -                              const NamespaceVectorType&             
nsVector = elem->getNameSpace();
  +                              nameSpace = DOMServices::s_XMLNamespaceURI;
  +                      }
  +                      else if (equals(prefix, DOMServices::s_XMLNamespace) 
== true)
  +                      {
  +                              fEmptyIsError = false;
  +                      }
  +                      else
  +                      {
  +                              ElemTemplateElement*  elem = 
const_cast<ElemTemplateElement *>(this);
  +
  +                              while(isEmpty(nameSpace) && elem != 0)
  +                              {
  +                                      const NamespaceVectorType&             
nsVector = elem->getNameSpace();
   
  -                              nameSpace = 
QName::getNamespaceForPrefix(nsVector, prefix);
  +                                      nameSpace = 
QName::getNamespaceForPrefix(nsVector, prefix);
   
  -                              if (!isEmpty(nameSpace))
  -                                      break;
  +                                      if (!isEmpty(nameSpace))
  +                                              break;
   
  -                              elem = elem->getParentNodeElem();
  +                                      elem = elem->getParentNodeElem();
  +                              }
                         }
  -              }
  -              else
  -              {
  -                      nameSpace = 
getStylesheet().getNamespaceForPrefixFromStack(prefix);
  -              }
  -    }
  -    else
  -    {
  -             nameSpace = 
getStylesheet().getNamespaceForPrefixFromStack(prefix);
  -    }
  +             }
  +             else
  +             {
  +                     nameSpace = 
getStylesheet().getNamespaceForPrefixFromStack(prefix);
  +             }
   
  -    if(fReportError == true && isEmpty(nameSpace) == true)
  -     {
  -             error("Can not resolve namespace prefix: " + prefix);
  +             if(fReportError == true && fEmptyIsError == true && 
isEmpty(nameSpace) == true)
  +             {
  +                     error("Can not resolve namespace prefix: " + prefix);
  +             }
        }
   
       return nameSpace;
  
  
  

Reply via email to