You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@locus.apache.org on 2000/06/01 17:25:56 UTC

cvs commit: xml-xalan/c/src/XSLT ElemTemplateElement.cpp

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;