35size_t storeResults(
void * buf,
size_t sz,
size_t nmemb,
void* userdata);
49 serializeMode_(false),
59 m_buildXmlTree( false),
60 m_xmlTreeProduced( false)
73 serializeMode_(false),
82 m_buildXmlTree( false),
83 m_xmlTreeProduced( false)
86 wParser_ =
new WsdlParser(input,logger_, schemaPath);
100 logger_<<
"An exception occurred at "<<we.
line
101 <<
":"<<we.
col<<std::endl;
107 logger_<<
"An exception occurred at "<<spe.
line
108 <<
":"<<spe.
col<<std::endl;
114 logger_<<
"An exception occurred at "<<xpe.
line
115 <<
":"<<xpe.
col<<std::endl;
130 serializeMode_(false),
139 m_buildXmlTree( false),
140 m_xmlTreeProduced( false)
142 parseWsdl(url, schemaPath);
147WsdlInvoker::parseWsdl(
const std::string & url,
const std::string & schemaPath)
150 wParser_ =
new WsdlParser(url,logger_, schemaPath);
151 ourParser_= wParser_;
162 catch (WsdlException we)
164 logger_<<
"An exception occurred at "<<we.line
165 <<
":"<<we.col<<std::endl;
166 logger_<<we.description<<std::endl;
171 logger_<<
"An exception occurred at "<<spe.
line
172 <<
":"<<spe.
col<<std::endl;
178 logger_<<
"An exception occurred at "<<xpe.
line
179 <<
":"<<xpe.
col<<std::endl;
186WsdlInvoker::init(WsdlParser* parser)
190 status_ = wParser_->
status();
201 (*p1)->getOperations(op1,op2);
212 opMap_[(*op1)->getName()]=*op1;
220 catch (WsdlException we)
222 logger_<<
"A WSDL exception occurred at"<<we.line
223 <<
":"<<we.col<<std::endl;
224 logger_<<we.description<<std::endl;
229 logger_<<
"A Schema Parser exception occurred at "<<spe.
line
230 <<
":"<<spe.
col<<std::endl;
236 logger_<<
"An Xml Parsing exception occurred at row:col "<<xpe.
line
237 <<
":"<<xpe.
col<<std::endl;
249 std::map<std::string,const Operation*>::iterator it =
254 operations.push_back(it->first);
262 std::stringstream result;
271 std::map<std::string,const Operation*>::iterator it =
274 if (it != opMap_.end()){
276 return it->second->getDocumentation();
286 messageType_ = mType;
287 std::map<std::string,const Operation*>::iterator it =
290 if (it != opMap_.end()){
294 getOperationDetails(op_);
316 std::map<std::string,const Operation*>::iterator it =
319 if (it != opMap_.end()){
323 getOperationDetails(op);
330WsdlInvoker::getOperationDetails(
const Operation* op)
349 if (location_.empty()){
351 logger_<<
"No service location specified for SOAP binding "<<bnSoap->
getName()<<std::endl;
356 const int *bindings = 0;
359 int soapOpBindingId = bindings[0];
366 for (
int x=0;x<nBindings;x++){
383WsdlInvoker::serializeHeader()
390 const Message* hMessage;
393 const int *bindings = 0;
395 int nBindings=bnSoap->getInputBinding(opIndex,bindings);
397 for (
int x=0;x<nBindings;x++){
405 if (hMessage->getPartRefType(hPartId)==
Part::Elem){
407 name = hMessage->getMessagePart(hPartId)->element()->getName();
408 pType = (
Schema::Type)hMessage->getMessagePart(hPartId)->element()->getType();
412 name = hMessage->getPartName(hPartId);
413 pType = (
Schema::Type)hMessage->getMessagePart(hPartId)->type();
415 std::vector<std::string> parents;
416 parents.push_back(name);
420 1,1,parents,hnsp_,
true);
423 iHeaders_ = elems_.size();
433WsdlInvoker::serialize()
435 const Message * m = op_->
getMessage(messageType_);
439 for (
int i = 0 ;i<m->getNumParts();i++){
442 const Part * p = m->getMessagePart(i);
446 std::vector<std::string> parents;
449 const Element * e = p->element();
454 serializeType((
Schema::Type)p->type(),p->name(),sParser,1,1,parents,nsp,
true);
461 const std::string &tag,
465 std::vector<std::string> parents,
466 const std::string nsp,
478 for (
size_t z=0;z<avoidrecurse_.size();z++){
480 if (avoidrecurse_[z] == pType)
484 avoidrecurse_.push_back(pType);
490 if (serializeMode_ ==
false){
492 parents.push_back(tag);
493 Parameter p(typeId,t,minimum,maximum,sParser,parents);
505 serializeParam(n_++,t,sParser,nsp,isRoot);
524 xmlStream_->
setPrefix(getPrefix(nsp),nsp);
540 if(isSoapArray(ct,sParser)){
542 std::string arrayName = ct->
getName();
543 arrayName =
"ns:"+arrayName+
"[1]";
574 if (serializeMode_ ==
false){
576 std::vector<std::string> attparents(parents);
577 attparents.push_back(tag);
578 attparents.push_back(
"#" + at->
getName() +
"#");
596 if (serializeMode_ ==
false){
598 parents.push_back(tag);
604 serializeParam(n_++,t,sParser,nsp,isRoot);
610 if (baseType && !baseType->
isSimple()){
616 parents.push_back(tag);
617 serializeContentModel(bCm,sParser,parents);
623 parents.push_back(tag);
624 serializeContentModel(cm,sParser,parents);
644 xmlStream_->
endTag(nsp,t);
659 avoidrecurse_.pop_back();
665 std::vector<std::string> parents)
682 for (ci=cit_b;ci!=cit_e;ci++){
685 ci->first.e->getMax() > 0){
693 if (!ci->first.e->getTypeNamespace().empty() &&
694 sParser->
isImported(ci->first.e->getTypeNamespace()) &&
695 sParser->
getNamespace() != ci->first.e->getTypeNamespace()) {
703 if(ci->first.e->getNamespace() != s1Parser->
getNamespace()){
711 ci->first.e->getName(),
713 ci->first.e->getMin(),
714 ci->first.e->getMax(),
722 serializeContentModel(ci->first.c,
730 serializeContentModel(ci->first.g->getContents(),
742WsdlInvoker::serializeParam(
int n,
const std::string & tag,
744 const std::string nsp,
752 for (
int i = 0 ;i<elems_[n].n_;i++){
762 xmlStream_->
setPrefix(getPrefix(nsp),nsp);
782 xmlStream_->
text(elems_[n].data_[i]);
784 xmlStream_->
endTag(nsp,t);
797 if (occurs < elems_[param].min_ ||
798 occurs > elems_[param].max_)
802 for (
unsigned int i = 0 ;i < occurs ;i++){
805 elems_[param].type_);
810 std::ostringstream oss;
812 elems_[param].data_.push_back(oss.str());
817 elems_[param].n_ = occurs;
826 if (values.size() < elems_[param].min_ ||
827 values.size() > elems_[param].max_)
832 for (
size_t i = 0 ;i < values.size() ;i++){
835 elems_[param].type_);
840 elems_[param].data_.push_back(values[i]);
845 elems_[param].n_ = values.size();
871 if (elems_[param].data_.size() == 0)
872 elems_[param].data_.push_back(val);
874 elems_[param].data_[0]=val;
880 elems_[param].n_ = 1;
908 std::ostringstream oss;
910 if (elems_[param].data_.size() == 0)
911 elems_[param].data_.push_back(oss.str());
913 elems_[param].data_[0]=oss.str();
916 elems_[param].n_ = 1;
923 for (
size_t s = 0;s<elems_.size();s++){
925 if (elems_[s].tag_ == param)
935 for (
size_t s = 0;s<elems_.size();s++){
937 if (elems_[s].tag_ == param)
946 for (
size_t s = 0;s<elems_.size();s++){
948 if (elems_[s].tag_ == param)
957 for (
size_t s = 0;s<elems_.size();s++){
959 if (elems_[s].tag_ == param)
972 return soapstr_->str();
996 if (!strResults_.empty()){
1001 for (
size_t x = 0;x<outputs_.size();x++)
1002 delete outputs_[x].second;
1006 soapstr_ =
new std::ostringstream();
1009 serializeMode_ =
true;
1016 xmlStream_->
setPrefix(getPrefix(nsp_),nsp_);
1046 xmlStream_->
flush();
1061 if (!strResults_.empty()){
1063 if (processResponse)
1066 m_xmlTreeProduced =
false;
1068 if( m_buildXmlTree ==
true) {
1070 std::istringstream l_respstr( strResults_);
1080 m_xmlTreeProduced =
true;
1091 logger_<<
"Couldnt connect to "<<location_;
1097 logger_<<
"A WSDL exception occurred at"<<we.
line
1098 <<
":"<<we.
col<<std::endl;
1104 logger_<<
"A Schema Parser exception occurred at "<<spe.
line
1105 <<
":"<<spe.
col<<std::endl;
1111 logger_<<
"An Xml Parsing exception occurred at row:col "<<xpe.
line
1112 <<
":"<<xpe.
col<<std::endl;
1121 std::vector<std::string> parents;
1122 return getNextInput(param, type, minimum, maximum, parents);
1127 std::vector<std::string> & parents)
1129 if (n_ < elems_.size()){
1131 param = elems_[n_].tag_;
1132 type = elems_[n_].type_;
1133 minimum = elems_[n_].min_;
1134 parents = elems_[n_].parents_;
1135 maximum = elems_[n_].max_;
1145 int & minimum,
int & maximum)
1148 std::vector<std::string> parents;
1154 int & minimum,
int & maximum,
1155 std::vector<std::string> & parents)
1159 param = elems_[h].tag_;
1160 type = elems_[h].type_;
1161 minimum = elems_[h].min_;
1162 maximum = elems_[h].max_;
1163 parents = elems_[h].parents_;
1173WsdlInvoker::processResults()
1179 std::istringstream respstr(strResults_);
1192 xpp->
getName() ==
"Envelope" &&
1203 if (elemName.getLocalName() ==
"Fault"){
1209 else if (elemName.getLocalName() ==
"Header"){
1213 else if (elemName.getLocalName() ==
"Body"){
1223 catch (WsdlException we)
1226 logger_<<
"A WSDL exception occurred while parsing the response at line "<<we.line
1227 <<
":"<<we.col<<std::endl;
1228 logger_<<we.description<<std::endl;
1230 if (xpp)
delete xpp;
1234 logger_<<
"A Schema Parser exception occurred while parsing the response at line "<<spe.
line
1235 <<
":"<<spe.
col<<std::endl;
1238 if (xpp)
delete xpp;
1242 logger_<<
"An Xml Parsing exception occurred while parsing the response at line "<<xpe.
line
1243 <<
":"<<xpe.
col<<std::endl;
1246 if (xpp)
delete xpp;
1268 curl_easy_cleanup(ctx) ;
1276 n_ = iHeaders_ = oHeaders_ = 0;
1279 for (
size_t x = 0;x<outputs_.size();x++)
1280 delete outputs_[x].second;
1283 serializeMode_ =
false;
1292 if (status_ && n_ < outputs_.size()){
1294 name = outputs_[n_].first;
1295 tc = outputs_[n_].second;
1307 for (
unsigned int i = 0 ;status_ && i <outputs_.size();i++){
1309 if ( name == outputs_[i].first)
1310 return outputs_[i].second;
1320 name = outputs_[j].first;
1321 tc = outputs_[j].second;
1334 for (
unsigned int i = 0 ;status_ && i <outputs_.size();i++){
1336 if (outputs_[i].second!=0){
1337 outputs_[i].second->rewind();
1338 void * tmp= outputs_[i].second->getValue(name,t);
1348WsdlInvoker::getAsStringFromXPath(
const std::string &p_xpath,
1350 std::vector<std::string> *p_array)
1353 if( status_ && !strResults_.empty()){
1355 if( p_xpath.empty())
1358 if( m_xmlTreeProduced ==
true) {
1360 std::vector< std::string> l_results;
1361 m_xmlDoc.
xpath( p_xpath, l_results, p_index);
1363 if( p_array == NULL) {
1365 if( l_results.empty() ==
false)
1366 return l_results[ 0];
1371 *p_array = l_results;
1376 std::vector< std::string> l_xpathList;
1378 size_t l_xpathTotalLevels = 0;
1379 bool l_matchFromRoot =
false;
1380 bool l_doubleSlashMatch =
false;
1381 size_t l_matchAllAtXPathLevel = 0;
1382 bool l_matchAttribute =
false;
1386 std::string l_tmpElementText;
1387 bool l_seenSlash =
false;
1388 for(
size_t l_i = 0; l_i < p_xpath.size(); l_i++) {
1390 if( p_xpath[ l_i] ==
'/') {
1393 if( l_seenSlash ==
false) {
1397 if( l_tmpElementText.empty() ==
false) {
1400 l_xpathList.push_back( l_tmpElementText);
1401 l_tmpElementText.clear();
1407 l_doubleSlashMatch =
true;
1408 l_matchAllAtXPathLevel = l_xpathList.size();
1411 l_seenSlash =
false;
1418 if( l_i == 1 && l_seenSlash ==
true)
1419 l_matchFromRoot =
true;
1422 l_seenSlash =
false;
1424 l_tmpElementText.append( 1, p_xpath[ l_i]);
1429 if( l_tmpElementText.empty() ==
false)
1430 l_xpathList.push_back( l_tmpElementText);
1433 l_xpathTotalLevels = l_xpathList.size();
1435 if( l_xpathList[ l_xpathTotalLevels - 1][ 0] ==
'@') {
1437 l_matchAttribute =
true;
1439 l_xpathTotalLevels--;
1444 std::istringstream respstr( strResults_);
1451 size_t l_xpathLevel = 0;
1452 size_t l_xmlLevel = 0;
1453 size_t l_failedXpathMatchAtXmlLevel = 0;
1455 bool l_textWasRetrieved =
false;
1456 std::string l_retrievedText;
1457 std::string l_xmlTagName;
1462 l_xmlPullEvent = l_xpp.nextToken();
1466 l_xmlTagName = l_xpp.getName();
1469 if( l_xmlLevel == 0 && ( l_xmlTagName ==
"Envelope" || l_xmlTagName ==
"Body"))
1478 if( l_xmlTagName == l_xpathList[ l_xpathLevel] &&
1479 ( l_failedXpathMatchAtXmlLevel == 0 ||
1480 ( l_doubleSlashMatch ==
true && l_xpathLevel >= l_matchAllAtXPathLevel))
1486 if( l_matchFromRoot ==
true)
1487 if( l_xpathLevel == 0 && l_xmlLevel != 1)
1493 if( l_xpathLevel < l_xpathTotalLevels)
1505 if( l_matchAttribute ==
false) {
1508 l_retrievedText.clear();
1512 l_xmlPullEvent = l_xpp.nextToken();
1513 l_retrievedText += l_xpp.getText();
1518 l_textWasRetrieved =
true;
1523 l_retrievedText = l_xpp.getAttributeValue(
"", l_xpathList[ l_xpathLevel].substr( 1));
1525 l_textWasRetrieved =
true;
1528 if( l_textWasRetrieved ==
true) {
1530 if( p_array == NULL)
1531 return l_retrievedText;
1534 p_array->push_back( l_retrievedText);
1539 l_textWasRetrieved =
false;
1542 else if( l_xpathLevel > 0 && l_failedXpathMatchAtXmlLevel == 0) {
1547 l_failedXpathMatchAtXmlLevel = l_xmlLevel;
1554 if( l_failedXpathMatchAtXmlLevel == l_xmlLevel) {
1555 l_failedXpathMatchAtXmlLevel = 0;
1557 else if( l_failedXpathMatchAtXmlLevel == 0) {
1558 if( l_xpathLevel > 0 && l_xpp.getName() == l_xpathList[ l_xpathLevel - 1])
1565 if( l_xmlLevel == 0)
1576 WsdlException we(
"Attempted to extract response when web service invocation did not succeed");
1586WsdlInvoker::post(
long timeout, std::string username, std::string passwd)
1588 const std::string postData = soapstr_->str();
1591 std::ofstream ofs(
"request.log",std::ios::app);
1599 std::string strCurlBuffer =
"";
1601 ctx=curl_easy_init();
1606 curl_easy_setopt( ctx , CURLOPT_URL, location_.c_str()) ;
1608 curl_easy_setopt( ctx , CURLOPT_NOPROGRESS , 1 ) ;
1610 curl_easy_setopt( ctx ,CURLOPT_TIMEOUT, timeout);
1611 curl_easy_setopt( ctx , CURLOPT_CONNECTTIMEOUT, timeout);
1615 curl_easy_setopt( ctx , CURLOPT_VERBOSE,1);
1616 curl_easy_setopt( ctx , CURLOPT_NOPROGRESS , 0 ) ;
1619 curl_easy_setopt( ctx , CURLOPT_POST , 1 );
1620 curl_easy_setopt( ctx , CURLOPT_POSTFIELDS , postData.c_str()) ;
1621 curl_slist* responseHeaders = NULL ;
1622 std::string tmp=
"SOAPAction: ";
1626 responseHeaders = curl_slist_append( responseHeaders , tmp.c_str());
1627 responseHeaders = curl_slist_append( responseHeaders ,
"Content-Type: text/xml; charset=UTF-8");
1628 responseHeaders = curl_slist_append( responseHeaders ,
"Accept: text/xml;");
1629 curl_easy_setopt( ctx , CURLOPT_HTTPHEADER , responseHeaders ) ;
1632 tmp=tmp+
"/"+VERSION;
1634 curl_easy_setopt( ctx,CURLOPT_USERAGENT,tmp.c_str());
1635 curl_easy_setopt( ctx,CURLOPT_POSTFIELDSIZE,postData.length());
1640 curl_easy_setopt(ctx,CURLOPT_PROXYUSERPWD,tmp.c_str());
1642 curl_easy_setopt(ctx, CURLOPT_WRITEDATA, &strCurlBuffer) ;
1643 curl_easy_setopt( ctx ,CURLOPT_WRITEFUNCTION,storeResults) ;
1646 curl_easy_setopt(ctx, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
1647 std::string tmp = sAuthUser +
":" + sAuthPass;
1648 curl_easy_setopt(ctx, CURLOPT_USERPWD, tmp.c_str());
1650 curl_easy_setopt(ctx, CURLOPT_COOKIEFILE,
"");
1652 res=curl_easy_perform(ctx);
1655 curl_slist_free_all( responseHeaders ) ;
1656 strResults_ = strCurlBuffer;
1661 XmlUtils::winPost(location_,username,passwd,postData,action_,sResults);
1662 strResults_ = std::string(sResults);
1665 if(verbose_ && !strResults_.empty()){
1667 std::ofstream ofs(
"response.log",std::ios::app);
1689 if( p_pendingEvent ==
false) {
1690 l_xmlPullEvent = p_xmlPullParser.
nextToken();
1692 p_pendingEvent =
false;
1698 if( p_xmlNode.
empty() ==
true) {
1702 size_t l_numAttributes =
static_cast< size_t>( p_xmlPullParser.
getAttributeCount());
1703 for(
size_t l_i = 0; l_i < l_numAttributes; l_i++) {
1715 ::std::string l_tmpTxt;
1717 l_tmpTxt += p_xmlPullParser.
getText();
1718 l_xmlPullEvent = p_xmlPullParser.
nextToken();
1725 p_pendingEvent =
true;
1750 logger_ <<
"SOAP Fault Code: " << sFaultCode << std::endl;
1758 sFaultSubCode = xpp->
getText();
1759 logger_ <<
"SOAP Fault SubCode: " << sFaultSubCode << std::endl;
1771 sFaultString = xpp->
getText();
1772 logger_ <<
"SOAP Fault String: " << sFaultString << std::endl;
1783 xpp->
getName() ==
"faultcode"){
1787 logger_<<
"SOAP Fault Code: "<<sFaultCode<<std::endl;
1791 xpp->
getName() ==
"faultstring"){
1794 sFaultString = xpp->
getText();
1795 logger_<<
"SOAP Fault String: "<<sFaultString<<std::endl;
1798 xpp->
getName() ==
"faultactor"){
1802 logger_<<
"SOAP Fault Actor: "<<sFaultActor<<std::endl;
1810WsdlInvoker::processBody(
const Message* m,
1814 if (xpp->
getName() ==
"Fault") {
1838 typ.getLocalName() ==
"Array"))
1848 const Part * p = m->getMessagePart(xpp->
getName ());
1858 if (sParser && typeId !=0){
1861 std::string tag = xpp->
getName();
1863 outputs_.push_back(std::pair<std::string,TypeContainer*>(tag,t));
1870 logger_<<
"Unknown element "<<xpp->
getName()<<std::endl;
1879 while (!(xpp->
getName() ==
"Body" &&
1892 logger_<<
"Unknown element "<<elemName<<std::endl;
1901 std::pair<std::string,TypeContainer*> pr(elemName.getLocalName(),t);
1902 outputs_.push_back(pr);
1906 std::cerr<<
"Unknown element "<<elemName.getLocalName()<<std::endl;
1923 std::string tag = xpp->
getName();
1949 outputs_.push_back(std::pair<std::string,TypeContainer*>(tag,t));
1982 m_buildXmlTree = p_buildXmlTree;
1988 return m_buildXmlTree;
2029 std::ostringstream oss;
2030 oss<<host<<
":"<<port;
2036WsdlInvoker::getPrefix(
const std::string & nsp)
2041 while (i<prefixes_.size()) {
2042 if (prefixes_[i] == nsp)
2047 std::string tmp(
"ns");
2048 tmp.append(1,prefix+i);
2049 if (i == prefixes_.size())
2050 prefixes_.push_back(nsp);
2060storeResults(
void * buf,
size_t sz,
size_t nmemb,
void* userdata)
2062 char* sBuffer = (
char*) buf;
2063 std::string* strCurlBuffer = (std::string*) userdata;
2066 if (strCurlBuffer) {
2067 strCurlBuffer->append(sBuffer, sz * nmemb);
2068 result = sz * nmemb;
#define FEATURE_PROCESS_NAMESPACES
void setNamespace(std::string uri)
std::string getPrefix(void) const
std::string getNamespace(void) const
std::string getName() const
ContentModel * getContents() const
int getNumAttributes() const
const Attribute * getAttribute(const std::string &name) const
int getContentType() const
Schema::Compositor getCompositor() const
std::list< ContentHolder >::iterator ContentsIterator
std::string getName() const
bool getElementQualified() const
std::string getNamespace(void) const
std::string getTypeName(Schema::Type t) const
const XSDType * getType(const Qname &type, bool checkImports=true)
const SchemaParser * getImportedSchemaParser(const std::string &ns) const
bool isImported(const std::string &ns) const
const Element * getElement(const Qname &element, bool checkImports=true) const
int getTypeId(const Qname &, bool create=false)
bool isBasicType(int sType) const
TypeContainer * validate(XmlPullParser *xpp, int typeId, TypeContainer *ipTc=0)
static bool printTypeNames_
void print(std::ostream &os)
bool isValueValid() const
std::string getNamespace() const
int getBaseTypeId() const
std::string getName() const
virtual bool isSimple() const =0
Schema::ContentModelType getContentModel() const
int getServiceExtId() const
int getOpBinding(int index, const int *&bindings) const
int getOperationIndex(const Qname &name) const
int getInputBinding(int index, const int *&bindings) const
std::vector< Operation * >::const_iterator cOpIterator
const Message * getMessage(WsdlPull::MessageType type) const
const PortType * portType() const
const Binding * binding(const std::string &nsp) const
int getOperationIndex(const Qname &name) const
std::list< PortType * >::const_iterator cPortTypeIterator
bool getServiceLocation(int elemId, std::string &location)
void getSoapOperationInfo(int elemId, std::string &soapAction, Soap::Style &style)
std::string getEncodingUri(void) const
void getSoapBodyInfo(int elemId, std::string &ns, Soap::Encoding &use, std::string &encodingStyle)
void getSoapHeaderInfo(int elemId, std::string &ns, int &partId, const Message *&m)
bool isSoapHeader(int id)
static const std::string soapBindingUri11
std::string getEnvelopeUri(void) const
std::string getNamespace() const
static const std::string soapBindingUri12
SoapVersion getSoapVersion() const
std::string getName() const
bool setInputValue(const int param, void *val)
void * getValue(const std::string ¶m, Schema::Type &t)
bool setValue(const std::string ¶m, void *val)
sets the param value for an operation by name of the parameter
int getOperations(std::vector< std::string > &operations)
return names of operations (only for the SOAP binding portType)
void buildXmlTree(XmlPullParser &p_xmlPullParser, XmlNode_t &p_xmlNode, bool p_notScannedEventAvail=false)
TypeContainer * getOutput(const std::string &name)
void setCredentials(const std::string &user, const std::string &pass)
bool getBuildXmlTree(void) const
bool getNextOutput(std::string &name, TypeContainer *&tc)
void setAuth(const std::string &user, const std::string &pass)
bool getLazyRelativeMatch(void) const
void setProxy(const std::string &host, int port=80)
void printTypeNames(bool f)
int getNextHeaderInput(std::string ¶m, Schema::Type &type, int &minimum, int &maximum)
int getNextInput(std::string ¶m, Schema::Type &type, int &minimum, int &maximum)
void setProcessEnvAndBody(bool p_processEnvAndBody)
std::string getDocumentation()
bool invoke(long timeout=0, bool processResponse=true)
void setBuildXmlTree(bool p_buildXmlTree)
bool getNextHeaderOutput(std::string &name, TypeContainer *&tc)
std::string getXMLResponse()
bool getProcessEnvAndBody(void) const
std::string getOpDocumentation(const std::string &n)
void setLazyRelativeMatch(bool p_lazyRelativeMatch)
std::string getSoapMessage()
std::string getServiceEndPoint(const std::string &opname)
bool setOperation(const std::string &operation, WsdlPull::MessageType mType=WsdlPull::Input)
set the operation to invoke
WsdlExtension * getExtensibilityHandler(const std::string &ns)
const std::string * getDocumentation()
std::string getNamespace(void)
const SchemaParser * getSchemaParser(std::string targetNamespace) const
bool getPortTypes(PortType::cPortTypeIterator &begin, PortType::cPortTypeIterator &end) const
void setLazyRelativeMatch(bool p_lazyRelativeMatch)
void setProcessEnvAndBody(bool p_processEnvAndBody)
bool getLazyRelativeMatch(void) const
XmlNode_t & getRootNode(void)
bool getProcessEnvAndBody(void) const
bool xpath(const std::string &p_xpath, std::vector< std::string > &p_results, size_t p_index=0)
void setText(const std::string &p_text)
void addAttribute(const std::string &p_name, const std::string &p_value)
XmlNode_t & addNode(XmlNode_t *p_xmlNode=NULL)
void setName(const std::string &p_name, bool p_empty=XmlNode_t::EMPTY_NODE)
void require(int type, std::string ns, std::string name)
std::string getNamespace(std::string prefix)
std::string getAttributeValue(int index)
std::string getAttributeName(int index)
void setFeature(std::string feature, bool value)
XmlSerializer & startTag(std::string nsp, std::string name)
XmlSerializer & text(std::string txt)
void setPrefix(std::string prefix, std::string nsp)
void startDocument(std::string encoding, bool standalone)
XmlSerializer & attribute(std::string nsp, std::string name, std::string value)
XmlSerializer & endTag(std::string nsp, std::string name)
const std::string SchemaUri
const std::string SchemaInstaceUri
bool WSDLPULL_EXPORT getProxy()
std::string WSDLPULL_EXPORT getProxyHost()
void WSDLPULL_EXPORT setProxyPass(const std::string &sProxyPass)
void WSDLPULL_EXPORT setProxy(const bool bProxy)
std::string WSDLPULL_EXPORT getProxyUser()
void WSDLPULL_EXPORT setProxyUser(const std::string &sProxyUser)
std::string WSDLPULL_EXPORT getProxyPass()
void WSDLPULL_EXPORT setProxyHost(const std::string &sProxyHost)
std::ostream & dbsp(std::ostream &str)