You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by su...@apache.org on 2003/09/11 14:24:47 UTC

cvs commit: xml-axis/c/src/wsdd WSDDDocument.cpp WSDDDocument.h WSDDKeywords.cpp

susantha    2003/09/11 05:24:47

  Modified:    c/src/common AxisUtils.cpp AxisUtils.h GDefine.h
               c/src/soap XMLStreamHandler.cpp XMLStreamHandler.h
               c/src/wsdd WSDDDocument.cpp WSDDDocument.h WSDDKeywords.cpp
  Log:
  Code base completely reverted to using "char" for AxisChar instead of "unsigned short" which gave trouble in compiling and running Axis C++ on Linux
  
  Revision  Changes    Path
  1.5       +7 -5      xml-axis/c/src/common/AxisUtils.cpp
  
  Index: AxisUtils.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/common/AxisUtils.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AxisUtils.cpp	9 Sep 2003 12:53:00 -0000	1.4
  +++ AxisUtils.cpp	11 Sep 2003 12:24:47 -0000	1.5
  @@ -89,9 +89,10 @@
   
   }
   
  -AxisXMLCh* AxisUtils::ToAxisXMLCh(const AxisChar* pch)
  +const AxisXMLCh* AxisUtils::ToAxisXMLCh(const AxisChar* pch)
   {
  -	return XMLString::transcode(pch); //this is ok as long as we use xerces library.
  +//	return XMLString::transcode(pch); //this is ok as long as we use xerces library.
  +	return pch;
   }
   
   void AxisUtils::Initialize()
  @@ -106,8 +107,9 @@
   //for initialization purposes.
   const AxisXMLCh* AxisUtils::Convert(const AxisChar* pch)
   {
  -	if (XMLString::transcode(pch, m_Buffer, CONVERT_BUFFER_SIZE))
  -		return m_Buffer;
  -	return NULL;
  +//	if (XMLString::transcode(pch, m_Buffer, CONVERT_BUFFER_SIZE))
  +//		return m_Buffer;
  +//	return NULL;
  +	return pch;
   }
   
  
  
  
  1.5       +1 -1      xml-axis/c/src/common/AxisUtils.h
  
  Index: AxisUtils.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/common/AxisUtils.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AxisUtils.h	9 Sep 2003 12:53:00 -0000	1.4
  +++ AxisUtils.h	11 Sep 2003 12:24:47 -0000	1.5
  @@ -78,7 +78,7 @@
   	friend class URIMapping;
   public:
   	static void Initialize();
  -	static AxisXMLCh* ToAxisXMLCh(const AxisChar* pch);
  +	static const AxisXMLCh* ToAxisXMLCh(const AxisChar* pch);
   	AxisUtils();
   	virtual ~AxisUtils();
   	// any usefull static const AxisXMLCh strings. 
  
  
  
  1.8       +2 -1      xml-axis/c/src/common/GDefine.h
  
  Index: GDefine.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/common/GDefine.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- GDefine.h	5 Sep 2003 10:48:50 -0000	1.7
  +++ GDefine.h	11 Sep 2003 12:24:47 -0000	1.8
  @@ -62,6 +62,7 @@
    */
   
   #pragma warning (disable : 4786)
  +#pragma warning (disable : 4530)
   
   #if !defined(__GDEFINE_INCLUDED__)
   #define __GDEFINE_INCLUDED__
  @@ -75,7 +76,7 @@
   #define AxisChar char //Charactor used in Axis
   #define AxisString basic_string<char> //String used in Axis
   
  -#define AxisXMLCh	unsigned short //Xerces uses 16 bit char always.
  +#define AxisXMLCh char //Xerces uses 16 bit char always.
   #define AxisXMLString basic_string<AxisXMLCh>
   
   #ifdef WIN32
  
  
  
  1.13      +44 -38    xml-axis/c/src/soap/XMLStreamHandler.cpp
  
  Index: XMLStreamHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/XMLStreamHandler.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- XMLStreamHandler.cpp	9 Sep 2003 12:53:01 -0000	1.12
  +++ XMLStreamHandler.cpp	11 Sep 2003 12:24:47 -0000	1.13
  @@ -69,8 +69,6 @@
   #include "CharacterElement.h"
   #include "../common/AxisUtils.h"
   
  -#define __XTRC(X) (true == XMLString::transcode(X, m_Buffer, TRANSCODE_BUFFER_SIZE-1))? m_Buffer : "" 
  -
   XMLStreamHandler::XMLStreamHandler()
   {
   	m_pEnv = NULL;
  @@ -113,7 +111,7 @@
   	switch (m_PL0)
   	{
   	case SOAP_UNKNOWN:
  -	if(XMLString::equals(localname,SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_ENVELOPE]))
  +	if(XMLString::equals(__XTRC(localname),SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_ENVELOPE]))
   	{
   		m_PL0 = SOAP_ENVELOP;
   		m_pEnv = new SoapEnvelope();
  @@ -122,21 +120,21 @@
   	}
   	break;
   	case SOAP_ENVELOP:
  -	if(XMLString::equals(localname,SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_BODY]))
  +	if(XMLString::equals(__XTRC(localname),SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_BODY]))
   	{
   		m_PL0 = SOAP_BODY;
   		m_pBody = new SoapBody();
   		//set all attributes of SoapBody
   		FillBody(uri,localname,qname,attrs);	
   	}
  -	else if (XMLString::equals(localname,SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_HEADER]))
  +	else if (XMLString::equals(__XTRC(localname),SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_HEADER]))
   	{
   		m_PL0 = SOAP_HEADER;
   		m_pHead = new SoapHeader();
   		//set all attributes of SoapHeader
   		FillHeader(uri,localname,qname,attrs);
   	}
  -	else if (XMLString::equals(localname,SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_FAULT]))
  +	else if (XMLString::equals(__XTRC(localname),SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_FAULT]))
   	{
   		//m_PL0 = SOAP_FAULT;
   		//m_pFault = SoapFault::getSoapFault(1);
  @@ -159,9 +157,9 @@
   		switch (m_PL1)
   		{
   		case SOAP_UNKNOWN:
  -			if (XMLString::equals(localname,SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_MULTIREF]))
  +			if (XMLString::equals(__XTRC(localname),SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_MULTIREF]))
   			{
  -				m_sLastElement = localname;
  +				m_sLastElement = __XTRC(localname);
   				SetParamType(attrs); 
   				m_PL1 = SOAP_PARAM;
   			}
  @@ -175,18 +173,18 @@
   		case SOAP_METHOD: //now comes parameters
   			//Get Param name and type
   			//m_Param.m_sName = localname;
  -			m_sLastElement = localname;
  +			m_sLastElement = __XTRC(localname);
   			SetParamType(attrs); 
   			m_PL1 = SOAP_PARAM;
   			m_nParamNestingLevel++;
   			break;
   		case SOAP_PARAM: //Custom types
  -			if (!(m_sLastElement == localname))
  +			if (m_sLastElement != (const char*)__XTRC(localname))
   			{
   				m_Params.push_back(new Param(m_Param)); //parent param
   			}
   			//m_Param.m_sName = localname;
  -			m_sLastElement = localname;
  +			m_sLastElement = __XTRC(localname);
   			SetParamType(attrs); 
   			m_nParamNestingLevel++;
   			break;
  @@ -215,7 +213,7 @@
   		break;
   	case SOAP_PARAM: //end of a parameter
   		//Add parameter to list
  -		if (m_sLastElement == localname)
  +		if (m_sLastElement == __XTRC(localname))
   		{
   			m_Params.push_back(new Param(m_Param)); //current param
   		}
  @@ -284,12 +282,12 @@
   
   void XMLStreamHandler::startPrefixMapping(const XMLCh* const prefix, const XMLCh* const uri)
   {
  -	m_NsStack[prefix] = uri; //I think the same prifix cannot repeat ???
  +	m_NsStack[__XTRC(prefix)] = __XTRC(uri); //I think the same prifix cannot repeat ???
   }
   
   void XMLStreamHandler::endPrefixMapping(const XMLCh* const prefix)
   {
  -	m_NsStack.erase(prefix); //I think the same prifix cannot repeat ???
  +	m_NsStack.erase(__XTRC(prefix)); //I think the same prifix cannot repeat ???
   }
   
   void XMLStreamHandler::warning(const SAXParseException& exception)
  @@ -319,14 +317,14 @@
   	AxisXMLString sValue, sPrefix, sType, sDimensions;
   	for (int i = 0; i < attrs.getLength(); i++) 
   	{
  -		const AxisXMLCh* URI = attrs.getURI(i); 
  -		const AxisXMLCh* local = attrs.getLocalName(i);
  -		sValue = attrs.getValue(i);
  -		URITYPE urit = URIMapping::Map(URI);
  +		AxisXMLString URI = __XTRC(attrs.getURI(i)); 
  +		AxisXMLString local = __XTRC(attrs.getLocalName(i));
  +		sValue = __XTRC(attrs.getValue(i));
  +		URITYPE urit = URIMapping::Map(URI.c_str());
   		switch (urit)
   		{
   		case URI_XSI: //xsi:type="xsd:int"
  -			if (XMLString::equals(local, SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_TYPE]))
  +			if (XMLString::equals(local.c_str(), SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_TYPE]))
   			{
   				int colonindex = sValue.find(AxisUtils::m_strColon); 
   				if (colonindex != AxisXMLString::npos) 
  @@ -345,8 +343,8 @@
   							//custom data type
   							m_Param.m_Type = USER_TYPE;
   							m_Param.m_Value.pCplxObj = &m_CplxObj; //ArrayBean can be used as an AccessBean;
  -							m_Param.m_Value.pCplxObj->m_TypeName = __XTRC(sType.c_str());
  -							m_Param.m_Value.pCplxObj->m_URI = __XTRC(m_NsStack[sPrefix].c_str());
  +							m_Param.m_Value.pCplxObj->m_TypeName = sType.c_str();
  +							m_Param.m_Value.pCplxObj->m_URI = m_NsStack[sPrefix].c_str();
   						}
   					}
   					else
  @@ -365,7 +363,7 @@
   			}
   			break;
   		case URI_ENC: //enc:arrayType="xs:string[6]"
  -			if (XMLString::equals(local, SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_ARRAYTYPE]))
  +			if (XMLString::equals(local.c_str(), SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_ARRAYTYPE]))
   			{
   				m_Param.m_Type = XSD_ARRAY;
   				m_Param.m_Value.pArray = &m_ArrayBean;
  @@ -391,8 +389,8 @@
   						}
   						else
   						{
  -							m_Param.m_Value.pArray->m_TypeName = __XTRC(sType.c_str());
  -							m_Param.m_Value.pArray->m_URI = __XTRC(m_NsStack[sPrefix].c_str());
  +							m_Param.m_Value.pArray->m_TypeName = sType.c_str();
  +							m_Param.m_Value.pArray->m_URI = m_NsStack[sPrefix].c_str();
   							m_Param.m_Value.pArray->m_type = USER_TYPE;
   							//array of custom data types
   						}
  @@ -418,12 +416,12 @@
   			break;
   		case URI_UNKNOWN:
   			//check for accessors for multiref values
  -			if (XMLString::equals(local, SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_HREF]))
  +			if (XMLString::equals(local.c_str(), SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_HREF]))
   			{
   				m_Param.m_Type = ACCESSOR;
   				//m_Param.m_sValue = sValue.substr(sValue.find('#')+1);
   			}
  -			else if (XMLString::equals(local, SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_ID]))
  +			else if (XMLString::equals(local.c_str(), SoapKeywordMapping::Map(m_nSoapVersion).pchWords[SKW_ID]))
   			{
   				//m_Param.m_sName = sValue;
   			}
  @@ -443,7 +441,7 @@
   	{
   		si = sDimensions.find(AxisUtils::m_strLeftSqBracket, ei);
   		ei = sDimensions.find(AxisUtils::m_strLeftSqBracket, si);
  -		m_Param.m_Value.pArray->m_size.push_back(XMLString::parseInt(sDimensions.substr(si+1,ei).c_str()));
  +		m_Param.m_Value.pArray->m_size.push_back(atoi(sDimensions.substr(si+1,ei).c_str()));
   	} while (sDimensions.find(AxisUtils::m_strLeftSqBracket, ei) != string::npos);
   	return SUCCESS;
   }
  @@ -500,22 +498,22 @@
   {
   	AxisXMLString str;
   	Attribute* pAttr;
  -	str = qname;
  +	str = __XTRC(qname);
   	pAttr = new Attribute();
   	if (str.find(AxisUtils::m_strColon) != AxisXMLString::npos) 
   	{
   		str = str.substr(0, str.find(AxisUtils::m_strColon));
  -		m_pEnv->setPrefix(__XTRC(str.c_str()));
  -		pAttr->setPrefix(__XTRC(str.c_str()));
  +		m_pEnv->setPrefix(str.c_str());
  +		pAttr->setPrefix(str.c_str());
   	}
   	pAttr->setValue(__XTRC(uri));
   	m_pEnv->addNamespaceDecl(pAttr);
   
  -	if (XMLString::equals(uri, SoapKeywordMapping::Map(SOAP_VER_1_1).pchNamespaceUri))
  +	if (XMLString::equals(__XTRC(uri), SoapKeywordMapping::Map(SOAP_VER_1_1).pchNamespaceUri))
   	{
   		m_nSoapVersion = SOAP_VER_1_1;
   	}
  -	else if (XMLString::equals(uri, SoapKeywordMapping::Map(SOAP_VER_1_2).pchNamespaceUri))
  +	else if (XMLString::equals(__XTRC(uri), SoapKeywordMapping::Map(SOAP_VER_1_2).pchNamespaceUri))
   	{
   		m_nSoapVersion = SOAP_VER_1_2;
   	}
  @@ -554,13 +552,13 @@
   
   void XMLStreamHandler::FillMethod(const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const Attributes &attrs)
   {
  -	AxisXMLString str = qname;
  +	AxisXMLString str = __XTRC(qname);
   	if (str.find(AxisUtils::m_strColon) != AxisXMLString::npos) 
   	{
   		str = str.substr(0, str.find(AxisUtils::m_strColon));
  -		m_pMethod->setPrefix(__XTRC(str.c_str()));
  -		str = uri;
  -		m_pMethod->setUri(__XTRC(str.c_str()));
  +		m_pMethod->setPrefix(str.c_str());
  +		str = __XTRC(uri);
  +		m_pMethod->setUri(str.c_str());
   	}
   	m_pMethod->setLocalName(__XTRC(localname));
   }
  @@ -568,12 +566,20 @@
   void XMLStreamHandler::createHeaderBlock(const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const Attributes &attrs)
   {
   	m_pHeaderBlock= new HeaderBlock();
  -	AxisXMLString str = qname;	
  +	AxisXMLString str = __XTRC(qname);	
   	if (str.find(AxisUtils::m_strColon) != AxisXMLString::npos) 
   	{
   		str = str.substr(0, str.find(AxisUtils::m_strColon));
  -		m_pHeaderBlock->setPrefix(__XTRC(str.c_str()));		
  +		m_pHeaderBlock->setPrefix(str.c_str());		
   	}
   	m_pHeaderBlock->setLocalName(__XTRC(localname));
   	m_pHeaderBlock->setUri(__XTRC(uri));
  +}
  +
  +const AxisChar* XMLStreamHandler::__XTRC(const XMLCh *pChar)
  +{
  +	if (true == (XMLString::transcode(pChar, m_Buffer, TRANSCODE_BUFFER_SIZE-1)))
  +		return m_Buffer;
  +	else 
  +		return ""; 
   }
  
  
  
  1.7       +1 -0      xml-axis/c/src/soap/XMLStreamHandler.h
  
  Index: XMLStreamHandler.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/XMLStreamHandler.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XMLStreamHandler.h	5 Sep 2003 10:48:51 -0000	1.6
  +++ XMLStreamHandler.h	11 Sep 2003 12:24:47 -0000	1.7
  @@ -126,6 +126,7 @@
   	AxisXMLString m_sLastElement;
   	HeaderBlock* m_pHeaderBlock;
   private:
  +	const AxisChar* __XTRC(const XMLCh* pChar);
   	void createHeaderBlock(const XMLCh *const uri,const XMLCh *const localname,const XMLCh *const qname,const Attributes &attrs);
   	int m_nParamNestingLevel;
   	int SetArrayDimensions(AxisXMLString& sDimensions);
  
  
  
  1.15      +76 -70    xml-axis/c/src/wsdd/WSDDDocument.cpp
  
  Index: WSDDDocument.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/wsdd/WSDDDocument.cpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- WSDDDocument.cpp	9 Sep 2003 12:53:01 -0000	1.14
  +++ WSDDDocument.cpp	11 Sep 2003 12:24:47 -0000	1.15
  @@ -67,8 +67,6 @@
   #include <string>
   //#include "../common/AxisTrace.h"
   
  -#define __XTRC(X) (true == XMLString::transcode(X, m_Buffer, TRANSCODE_BUFFER_SIZE-1))? m_Buffer : ""
  -
   WSDDDocument::WSDDDocument()
   {
   	m_lev0 = WSDD_UNKNOWN;
  @@ -113,7 +111,7 @@
   
   void  WSDDDocument::endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
   {
  -	if (!XMLString::equals(localname, kw_param)) //just neglect endElement of parameter
  +	if (!XMLString::equals(__XTRC(localname), kw_param)) //just neglect endElement of parameter
   	{
   		if (m_lev1 == WSDD_UNKNOWN) //not inside a requestFlow or responseFlow elements
   		{
  @@ -126,7 +124,7 @@
   				m_lev0 = WSDD_DEPLOYMENT;
   				break;
   			case WSDD_SERVICE:
  -				if (XMLString::equals(localname, kw_srv))
  +				if (XMLString::equals(__XTRC(localname), kw_srv))
   				{
   					//add service object to Deployment object
   					m_pDeployment->AddService(m_pService);
  @@ -153,7 +151,7 @@
   		}
   		else // inside a requestFlow or responseFlow elements
   		{
  -			if(XMLString::equals(localname, kw_hdl))
  +			if(XMLString::equals(__XTRC(localname), kw_hdl))
   			{
   				m_lev2 = WSDD_UNKNOWN;
   				//add handler in m_pHandler to the corresponding container.
  @@ -180,11 +178,11 @@
   					default: ; //this cannot happen ?? 
   				}
   			}
  -			else if(XMLString::equals(localname, kw_rqf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rqf))
   			{  
   				m_lev1 = WSDD_UNKNOWN;
   			}
  -			else if(XMLString::equals(localname, kw_rsf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rsf))
   			{  
   				m_lev1 = WSDD_UNKNOWN;
   			}						
  @@ -196,18 +194,18 @@
   {
   	for (int i = 0; i < attrs.getLength(); i++) 
   	{
  -		const AxisXMLCh* local = attrs.getLocalName(i);
  -		const AxisXMLCh* value = attrs.getValue(i);
  +		AxisXMLString local = __XTRC(attrs.getLocalName(i));
  +		AxisXMLString value = __XTRC(attrs.getValue(i));
   		switch(ElementType)
   		{
   		case WSDD_SERVICE: //add this attribute to current service object
  -			if (XMLString::equals(local, kw_name))
  +			if (XMLString::equals(local.c_str(), kw_name))
   			{
  -				m_pService->SetServiceName(__XTRC(value));
  +				m_pService->SetServiceName(value.c_str());
   			}
  -			else if (XMLString::equals(local, kw_prv))
  +			else if (XMLString::equals(local.c_str(), kw_prv))
   			{
  -				m_pService->SetProvider(__XTRC(value));
  +				m_pService->SetProvider(value.c_str());
   			}
   			else
   			{
  @@ -215,22 +213,22 @@
   			}
   			break;
   		case WSDD_HANDLER: //add this attribute to current handler object
  -			if (XMLString::equals(local, kw_name))
  +			if (XMLString::equals(local.c_str(), kw_name))
   			{
   				//usefull ? ignore for now .. //TODO
   			}
  -			else if (XMLString::equals(local, kw_type))
  +			else if (XMLString::equals(local.c_str(), kw_type))
   			{
   				//we get the libname for the hanlder here ???
  -				m_pHandler->SetLibName(__XTRC(value));
  -				if (m_pLibNameIdMap->find(__XTRC(value)) != m_pLibNameIdMap->end()) //libray name already in the map
  +				m_pHandler->SetLibName(value.c_str());
  +				if (m_pLibNameIdMap->find(value.c_str()) != m_pLibNameIdMap->end()) //libray name already in the map
   				{
  -					m_pHandler->SetLibId((*m_pLibNameIdMap)[__XTRC(value)]);
  +					m_pHandler->SetLibId((*m_pLibNameIdMap)[value.c_str()]);
   				}
   				else
   				{
  -					(*m_pLibNameIdMap)[__XTRC(value)] = ++m_nLibId;
  -					m_pHandler->SetLibId((*m_pLibNameIdMap)[__XTRC(value)]);
  +					(*m_pLibNameIdMap)[value.c_str()] = ++m_nLibId;
  +					m_pHandler->SetLibId((*m_pLibNameIdMap)[value.c_str()]);
   				}
   			}
   			else
  @@ -240,7 +238,7 @@
   			break;
   		case WSDD_REQFLOW:
   		case WSDD_RESFLOW:
  -			if (XMLString::equals(local, kw_name))
  +			if (XMLString::equals(local.c_str(), kw_name))
   			{
   				//usefull ? ignore for now .. //TODO
   			}
  @@ -250,12 +248,12 @@
   			}
   			break;
   		case WSDD_TRANSPORT:
  -			if (XMLString::equals(local, kw_name))
  +			if (XMLString::equals(local.c_str(), kw_name))
   			{
   				//get tranport type
  -				if (XMLString::equals(value, kw_http))
  +				if (XMLString::equals(value.c_str(), kw_http))
   					m_CurTrType = APTHTTP;
  -				else if (XMLString::equals(value, kw_smtp))
  +				else if (XMLString::equals(value.c_str(), kw_smtp))
   					m_CurTrType = APTSMTP;
   				else
   				{
  @@ -273,26 +271,32 @@
   
   void WSDDDocument::GetParameters(WSDDLevels ElementType, const Attributes &attrs)
   {
  +	AxisXMLString sName, sValue, sType;
   	const AxisXMLCh *name, *value, *type;
   	bool locked;
  -	const AxisXMLCh *Localname, *Value;
  +	AxisXMLString Localname, Value;
   	for (int i = 0; i < attrs.getLength(); i++) 
   	{
  -		Localname = attrs.getLocalName(i);
  -		Value = attrs.getValue(i);
  -		if (XMLString::equals(Localname, kw_name))
  +		Localname = __XTRC(attrs.getLocalName(i));
  +		Value = __XTRC(attrs.getValue(i));
  +		if (XMLString::equals(Localname.c_str(), kw_name))
   		{
  -			name = Value;
  +			sName = Value.c_str();
   		}
  -		else if (XMLString::equals(Localname, kw_value))
  +		else if (XMLString::equals(Localname.c_str(), kw_value))
   		{
  -			value = Value;
  +			sValue = Value.c_str();
   		}
  -		else if (XMLString::equals(Localname, kw_type))
  +		else if (XMLString::equals(Localname.c_str(), kw_type))
   		{
  -			type = Value;
  +			sType = Value.c_str();
   		}
   	}
  +	
  +	name = sName.c_str();
  +	value = sValue.c_str();
  +	type = sType.c_str();
  +
   	switch(ElementType)
   	{
   	case WSDD_GLOBCONF: //parameters just inside globalConfiguration
  @@ -305,20 +309,20 @@
   		}
   		else if(XMLString::equals(name, kw_cn))
   		{
  -			m_pService->SetLibName(__XTRC(value));
  -			if (m_pLibNameIdMap->find(__XTRC(value)) != m_pLibNameIdMap->end()) //libray name already in the map
  +			m_pService->SetLibName(value);
  +			if (m_pLibNameIdMap->find(value) != m_pLibNameIdMap->end()) //libray name already in the map
   			{
  -				m_pService->SetLibId((*m_pLibNameIdMap)[__XTRC(value)]);
  +				m_pService->SetLibId((*m_pLibNameIdMap)[value]);
   			}
   			else
   			{
  -				(*m_pLibNameIdMap)[__XTRC(value)] = ++m_nLibId;
  -				m_pService->SetLibId((*m_pLibNameIdMap)[__XTRC(value)]);
  +				(*m_pLibNameIdMap)[value] = ++m_nLibId;
  +				m_pService->SetLibId((*m_pLibNameIdMap)[value]);
   			}
   		}
   		else if (XMLString::equals(name, kw_scope))
   		{
  -			m_pService->SetScope(__XTRC(value));
  +			m_pService->SetScope(value);
   		}
   		else if (XMLString::equals(name, kw_ar))
   		{
  @@ -326,23 +330,17 @@
   		}
   		else
   		{
  -			//following is because __XTRC(X) cannot be used for 2 transcodes simultaneously
  -			//because it uses the same m_Buffer.
  -			AxisString sName = __XTRC(name);
  -			m_pService->AddParameter(sName.c_str(), __XTRC(value));
  +			m_pService->AddParameter(name, value);
   		}
   		break;
   	case WSDD_HANDLER:
   		if (XMLString::equals(name, kw_scope))
   		{
  -			m_pHandler->SetScope(__XTRC(value));
  +			m_pHandler->SetScope(value);
   		}
   		else
   		{
  -			//following is because __XTRC(X) cannot be used for 2 transcodes simultaneously
  -			//because it uses the same m_Buffer.
  -			AxisString sName = __XTRC(name);
  -			m_pHandler->AddParameter(sName.c_str(), __XTRC(value));
  +			m_pHandler->AddParameter(name, value);
   		}
   		break;
   	}
  @@ -350,7 +348,7 @@
   
   void WSDDDocument::AddAllowedRolesToService(const AxisXMLCh* value)
   {
  -	AxisString sValue = __XTRC(value);
  +	AxisString sValue = value;
   	int prepos = 0, pos = 0;
   	if (sValue.find('*') == AxisString::npos)
   	{
  @@ -366,7 +364,7 @@
   
   void WSDDDocument::AddAllowedMethodsToService(const AxisXMLCh* value)
   {
  -	AxisString sValue = __XTRC(value);
  +	AxisString sValue = value;
   	int prepos = 0, pos = 0;
   	if (sValue.find('*') == AxisString::npos)
   	{
  @@ -387,33 +385,33 @@
   		switch(m_lev0)
   		{
   		case WSDD_UNKNOWN:
  -			if(XMLString::equals(localname, kw_depl))
  +			if(XMLString::equals(__XTRC(localname), kw_depl))
   			{  
   				m_lev0 = WSDD_DEPLOYMENT;
   				//nothing to get
   			}
   			break;
   		case WSDD_DEPLOYMENT:
  -			if(XMLString::equals(localname, kw_glconf))
  +			if(XMLString::equals(__XTRC(localname), kw_glconf))
   			{  
   				m_lev0 = WSDD_GLOBCONF;
   				//nothing to get
   			}
  -			else if(XMLString::equals(localname, kw_srv))
  +			else if(XMLString::equals(__XTRC(localname), kw_srv))
   			{  
   				m_lev0 = WSDD_SERVICE;
   				m_pService = new WSDDService();
   				//get service name and proider if any
   				ProcessAttributes(WSDD_SERVICE, attrs);
   			}
  -			else if(XMLString::equals(localname, kw_hdl))
  +			else if(XMLString::equals(__XTRC(localname), kw_hdl))
   			{  
   				m_lev0 = WSDD_HANDLER;
   				m_pHandler = new WSDDHandler();
   				ProcessAttributes(WSDD_HANDLER, attrs);
   				//get handler name and type if any
   			}
  -			else if(XMLString::equals(localname, kw_tr))
  +			else if(XMLString::equals(__XTRC(localname), kw_tr))
   			{  
   				m_lev0 = WSDD_TRANSPORT;
   				ProcessAttributes(WSDD_TRANSPORT, attrs);
  @@ -424,16 +422,16 @@
   			}
   			break;
   		case WSDD_GLOBCONF:
  -			if(XMLString::equals(localname, kw_param))
  +			if(XMLString::equals(__XTRC(localname), kw_param))
   			{  
   				GetParameters(WSDD_GLOBCONF, attrs);
   			}
  -			else if(XMLString::equals(localname, kw_rqf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rqf))
   			{  
   				m_lev1 = WSDD_REQFLOW;
   				ProcessAttributes(WSDD_REQFLOW, attrs);
   			}
  -			else if(XMLString::equals(localname, kw_rsf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rsf))
   			{  
   				m_lev1 = WSDD_RESFLOW;
   				ProcessAttributes(WSDD_RESFLOW, attrs);
  @@ -444,16 +442,16 @@
   			}
   		break; 
   		case WSDD_SERVICE:
  -			if(XMLString::equals(localname, kw_param))
  +			if(XMLString::equals(__XTRC(localname), kw_param))
   			{  
   				GetParameters(WSDD_SERVICE, attrs);
   			}
  -			else if(XMLString::equals(localname, kw_rqf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rqf))
   			{  
   				m_lev1 = WSDD_REQFLOW;
   				ProcessAttributes(WSDD_REQFLOW, attrs);
   			}
  -			else if(XMLString::equals(localname, kw_rsf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rsf))
   			{  
   				m_lev1 = WSDD_RESFLOW;
   				ProcessAttributes(WSDD_RESFLOW, attrs);
  @@ -464,19 +462,19 @@
   			}
   		break;
   		case WSDD_HANDLER:
  -			if(XMLString::equals(localname, kw_param))
  +			if(XMLString::equals(__XTRC(localname), kw_param))
   			{  
   				GetParameters(WSDD_HANDLER, attrs);
   			}
   
   		break;
   		case WSDD_TRANSPORT:
  -			if(XMLString::equals(localname, kw_rqf))
  +			if(XMLString::equals(__XTRC(localname), kw_rqf))
   			{  
   				m_lev1 = WSDD_REQFLOW;
   				ProcessAttributes(WSDD_REQFLOW, attrs);
   			}
  -			else if(XMLString::equals(localname, kw_rsf))
  +			else if(XMLString::equals(__XTRC(localname), kw_rsf))
   			{  
   				m_lev1 = WSDD_RESFLOW;
   				ProcessAttributes(WSDD_RESFLOW, attrs);
  @@ -486,19 +484,19 @@
   	}
   	else // inside a requestFlow or responseFlow elements
   	{
  -		if(XMLString::equals(localname, kw_param))
  +		if(XMLString::equals(__XTRC(localname), kw_param))
   		{  
   			GetParameters(m_lev2, attrs); //must be parameters of a handler or a chain
   		}
   
  -		else if(XMLString::equals(localname, kw_hdl))
  +		else if(XMLString::equals(__XTRC(localname), kw_hdl))
   		{  
   			m_lev2 = WSDD_HANDLER;
   			m_pHandler = new WSDDHandler();
   			ProcessAttributes(WSDD_HANDLER, attrs);
   			//get handler name and type if any
   		}
  -		else if(XMLString::equals(localname, kw_chain))
  +		else if(XMLString::equals(__XTRC(localname), kw_chain))
   		{
   
   		}
  @@ -512,16 +510,24 @@
   
   void WSDDDocument::startPrefixMapping(const XMLCh* const prefix, const XMLCh* const uri)
   {
  -	m_NsStack[prefix] = uri; //I think the same prifix cannot repeat ???
  +	m_NsStack[__XTRC(prefix)] = __XTRC(uri); //I think the same prifix cannot repeat ???
   }
   
   void WSDDDocument::endPrefixMapping(const XMLCh* const prefix)
   {
   //	string sPrifix = prefix;
  -	m_NsStack.erase(prefix); //I think the same prifix cannot repeat ???
  +	m_NsStack.erase(__XTRC(prefix)); //I think the same prifix cannot repeat ???
   }
   
   void  WSDDDocument::characters (const XMLCh *const chars, const unsigned int length)
   {
   	//cout<<"==="<<XMLString::transcode(chars)<<"==="<<endl;
  -}
  \ No newline at end of file
  +}
  +
  +const AxisChar* WSDDDocument::__XTRC(const XMLCh *pChar)
  +{
  +	if (true == (XMLString::transcode(pChar, m_Buffer, TRANSCODE_BUFFER_SIZE-1)))
  +		return m_Buffer;
  +	else 
  +		return ""; 
  +}
  
  
  
  1.7       +1 -0      xml-axis/c/src/wsdd/WSDDDocument.h
  
  Index: WSDDDocument.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/wsdd/WSDDDocument.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- WSDDDocument.h	5 Sep 2003 10:48:51 -0000	1.6
  +++ WSDDDocument.h	11 Sep 2003 12:24:47 -0000	1.7
  @@ -107,6 +107,7 @@
   	AxisChar m_Buffer[TRANSCODE_BUFFER_SIZE]; //used to transcode XMLCh to AxisChar
   
   private:
  +	const AxisChar* __XTRC(const XMLCh* pChar);
   	void ProcessAttributes(WSDDLevels ElementType, const Attributes &attrs);
   	void GetParameters(WSDDLevels ElementType, const Attributes &attrs);
   	void AddAllowedRolesToService(const AxisXMLCh* value);
  
  
  
  1.3       +1 -1      xml-axis/c/src/wsdd/WSDDKeywords.cpp
  
  Index: WSDDKeywords.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/wsdd/WSDDKeywords.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WSDDKeywords.cpp	9 Sep 2003 12:53:01 -0000	1.2
  +++ WSDDKeywords.cpp	11 Sep 2003 12:24:47 -0000	1.3
  @@ -12,7 +12,7 @@
   // Construction/Destruction
   //////////////////////////////////////////////////////////////////////
   
  -#define AX_DELETE(X) delete const_cast<unsigned short*>(X)
  +#define AX_DELETE(X) delete const_cast<AxisXMLCh*>(X)
   
   const AxisXMLCh* kw_depl;
   const AxisXMLCh* kw_srv;