⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soap.cpp

📁 linux下简单对象应用协议的开发库
💻 CPP
字号:
/*soap.cppWSDL/SOAP binding schema--------------------------------------------------------------------------------gSOAP XML Web services toolsCopyright (C) 2001-2006, Robert van Engelen, Genivia Inc. All Rights Reserved.This software is released under one of the following two licenses:GPL or Genivia's license for commercial use.--------------------------------------------------------------------------------GPL license.This program is free software; you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the Free SoftwareFoundation; either version 2 of the License, or (at your option) any laterversion.This program is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along withthis program; if not, write to the Free Software Foundation, Inc., 59 TemplePlace, Suite 330, Boston, MA 02111-1307 USAAuthor contact information:engelen@genivia.com / engelen@acm.org--------------------------------------------------------------------------------A commercial use license is available from Genivia, Inc., contact@genivia.com--------------------------------------------------------------------------------*/#include "wsdlH.h"		// cannot include "schemaH.h"#include "includes.h"extern const char *qname_token(const char*, const char*);////////////////////////////////////////////////////////////////////////////////////	soap:header//////////////////////////////////////////////////////////////////////////////////int soap__header::traverse(wsdl__definitions& definitions){ if (vflag)    cerr << "Analyzing soap header " << endl;  messageRef = NULL;  partRef = NULL;  const char *token = qname_token(message, definitions.targetNamespace);  if (token)  { for (vector<wsdl__message>::iterator message = definitions.message.begin(); message != definitions.message.end(); ++message)    { if ((*message).name && !strcmp((*message).name, token))      { messageRef = &(*message);        if (vflag)	  cerr << "Found header part " << (part?part:"") << " message " << (token?token:"") << endl;        break;      }    }  }  else  { for (vector<wsdl__import>::iterator import = definitions.import.begin(); import != definitions.import.end(); ++import)    { wsdl__definitions *importdefinitions = (*import).definitionsPtr();      if (importdefinitions)      { token = qname_token(message, importdefinitions->targetNamespace);        if (token)        { for (vector<wsdl__message>::iterator message = importdefinitions->message.begin(); message != importdefinitions->message.end(); ++message)          { if ((*message).name && !strcmp((*message).name, token))            { messageRef = &(*message);              if (vflag)	        cerr << "Found header part " << (part?part:"") << " message " << (token?token:"") << endl;              break;            }          }	}      }    }  }  if (messageRef)  { if (part)    { for (vector<wsdl__part>::iterator pt = messageRef->part.begin(); pt != messageRef->part.end(); ++pt)        if ((*pt).name && !strcmp((*pt).name, part))	{ partRef = &(*pt);	  break;        }    }    if (!partRef)      cerr << "Warning: soap header has no matching part in message " << (message?message:"") << " in WSDL definitions " << definitions.name << " namespace " << (definitions.targetNamespace?definitions.targetNamespace:"") << endl;  }  else    cerr << "Warning: could not find header part " << (part?part:"") << " message " << (message?message:"") << " in WSDL definitions " << definitions.name << " namespace " << (definitions.targetNamespace?definitions.targetNamespace:"") << endl;  for (vector<soap__headerfault>::iterator i = headerfault.begin(); i != headerfault.end(); ++i)    (*i).traverse(definitions);  return SOAP_OK;}void soap__header::messagePtr(wsdl__message *message){ messageRef = message;}wsdl__message *soap__header::messagePtr() const{ return messageRef;}void soap__header::partPtr(wsdl__part *part){ partRef = part;}wsdl__part *soap__header::partPtr() const{ return partRef;}////////////////////////////////////////////////////////////////////////////////////	soap:headerfault//////////////////////////////////////////////////////////////////////////////////int soap__headerfault::traverse(wsdl__definitions& definitions){ if (vflag)    cerr << "Analyzing soap headerfault " << endl;  messageRef = NULL;  partRef = NULL;  const char *token = qname_token(message, definitions.targetNamespace);  if (token)  { for (vector<wsdl__message>::iterator message = definitions.message.begin(); message != definitions.message.end(); ++message)    { if ((*message).name && !strcmp((*message).name, token))      { messageRef = &(*message);        if (vflag)	  cerr << "Found headerfault part " << (part?part:"") << " message " << (token?token:"") << endl;        break;      }    }  }  else  { for (vector<wsdl__import>::iterator import = definitions.import.begin(); import != definitions.import.end(); ++import)    { wsdl__definitions *importdefinitions = (*import).definitionsPtr();      if (importdefinitions)      { token = qname_token(message, importdefinitions->targetNamespace);        if (token)        { for (vector<wsdl__message>::iterator message = importdefinitions->message.begin(); message != importdefinitions->message.end(); ++message)          { if ((*message).name && !strcmp((*message).name, token))            { messageRef = &(*message);              if (vflag)	        cerr << "Found headerfault part " << (part?part:"") << " message " << (token?token:"") << endl;              break;            }          }	}      }    }  }  if (messageRef)  { if (part)    { for (vector<wsdl__part>::iterator pt = messageRef->part.begin(); pt != messageRef->part.end(); ++pt)        if ((*pt).name && !strcmp((*pt).name, part))	{ partRef = &(*pt);	  break;        }    }    if (!partRef)      cerr << "Warning: soap headerfault has no matching part in message " << (message?message:"") << " in WSDL definitions " << definitions.name << " namespace " << (definitions.targetNamespace?definitions.targetNamespace:"") << endl;  }  else    cerr << "Warning: could not find headerfault part " << (part?part:"") << " message " << (message?message:"") << " in WSDL definitions " << definitions.name << " namespace " << (definitions.targetNamespace?definitions.targetNamespace:"") << endl;  return SOAP_OK;}void soap__headerfault::messagePtr(wsdl__message *message){ messageRef = message;}wsdl__message *soap__headerfault::messagePtr() const{ return messageRef;}void soap__headerfault::partPtr(wsdl__part *part){ partRef = part;}wsdl__part *soap__headerfault::partPtr() const{ return partRef;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -